提交 6f0bba7e authored 作者: 刘旭's avatar 刘旭

更新ui

上级 760da05b
<template> <template>
<div class="policy flx-column-center-between"> <div class="policy flx-column-center-between">
<div class="policy-top">{{ title }}</div> <div class="policy-top">{{ title }}</div>
<div class="policy-content card"> <div class="policy-content card" :style="{ minHeight: minHeight + 'px' }">
<div v-for="(item, index) in list" :key="index" class="policy-item"> <div
v-for="(item, index) in list"
:key="index"
class="policy-item"
@click="handleChange(item)"
>
<span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{ <span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{
index + 1 index + 1
}}</span> }}</span>
...@@ -35,6 +40,12 @@ defineProps({ ...@@ -35,6 +40,12 @@ defineProps({
default: 200 default: 200
} }
}) })
const emits = defineEmits(['change'])
const handleChange = (row: any) => {
emits('change', row)
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -51,7 +62,6 @@ defineProps({ ...@@ -51,7 +62,6 @@ defineProps({
} }
.policy-content { .policy-content {
width: 100%; width: 100%;
min-height: 200px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: start; align-items: start;
......
...@@ -8,9 +8,12 @@ ...@@ -8,9 +8,12 @@
> >
<template #prefix> <template #prefix>
<el-select v-model="selectValue" placeholder=""> <el-select v-model="selectValue" placeholder="">
<el-option label="找工作" value="1" /> <el-option
<el-option label="找企业" value="2" /> v-for="(item, index) in selectOptions"
<el-option label="找人才" value="3" /> :key="index"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</template> </template>
<template #suffix> <template #suffix>
...@@ -25,11 +28,19 @@ defineProps({ ...@@ -25,11 +28,19 @@ defineProps({
placeholder: { placeholder: {
type: String, type: String,
default: '请输入搜索关键字' default: '请输入搜索关键字'
} },
selectOptions: {
type: Array,
default: () => [
{ label: '找工作', value: 1 },
{ label: '找企业', value: 2 },
{ label: '找人才', value: 3 }
]
} as any
}) })
const searchValue = ref() const searchValue = ref()
const selectValue = ref('1') const selectValue = ref(1)
const emits = defineEmits(['searchChange']) const emits = defineEmits(['searchChange'])
const handleSearch = () => { const handleSearch = () => {
......
...@@ -32,6 +32,14 @@ const routes = [ ...@@ -32,6 +32,14 @@ const routes = [
component: () => import('@/views/recruitmentManagement/enterpriseRecruitment.vue') component: () => import('@/views/recruitmentManagement/enterpriseRecruitment.vue')
}, },
{ {
path: '/recruitmentManagement/editCompany',
component: () => import('@/views/recruitmentManagement/editCompany.vue')
},
{
path: '/recruitmentManagement/addAdministrator',
component: () => import('@/views/recruitmentManagement/addAdministrator.vue')
},
{
path: '/specialRecruitment', path: '/specialRecruitment',
component: () => import('@/views/specialRecruitment/index.vue') component: () => import('@/views/specialRecruitment/index.vue')
}, },
...@@ -90,6 +98,10 @@ const routes = [ ...@@ -90,6 +98,10 @@ const routes = [
{ {
path: '/commonDetail', path: '/commonDetail',
component: () => import('@/components/commonDetail.vue') component: () => import('@/components/commonDetail.vue')
},
{
path: '/jobDetail',
component: () => import('@/views/flexibleEmploym/details.vue')
} }
] ]
}, },
......
...@@ -8,6 +8,13 @@ export const getSkillTraining = (data: any) => { ...@@ -8,6 +8,13 @@ export const getSkillTraining = (data: any) => {
) )
} }
export const getSkillTrainingList = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeSkillTraining,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
export const getPolicyList = (data: any) => { export const getPolicyList = (data: any) => {
return request.post( return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc', '/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SePolicyNotice,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
......
import request from '@/services'
// 查询
export const getSpecialRecruitment = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SeSubjectRecruit,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
)
}
import { defineStore } from 'pinia' import piniaPersistConfig from '../helper/piniaPersist'
export const usejobStore = defineStore('jobStore', { export const useJobDetailStore = defineStore('jobDetailStore', {
// 相当于data // 相当于data
state: () => { state: () => {
return { return {
jobDetail: null jobDetail: {} as any
} }
}, },
// 相当于计算属性 // 相当于计算属性
...@@ -15,5 +15,6 @@ export const usejobStore = defineStore('jobStore', { ...@@ -15,5 +15,6 @@ export const usejobStore = defineStore('jobStore', {
setJobDetail(jobDetail: any) { setJobDetail(jobDetail: any) {
this.jobDetail = jobDetail this.jobDetail = jobDetail
} }
} },
persist: piniaPersistConfig('globalStore')
}) })
...@@ -26,6 +26,11 @@ ...@@ -26,6 +26,11 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.flx-center-column {
display: flex;
align-items: center;
flex-direction: column;
}
.flx-column-center-between { .flx-column-center-between {
display: flex; display: flex;
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</div> </div>
<div v-else-if="index === 5" class="live-broadcast"> <div v-else-if="index === 5" class="live-broadcast">
<div v-for="col in 6" :key="col" class="live-broadcast-item"> <div v-for="col in 6" :key="col" class="live-broadcast-item">
<img src="@/assets/img/Frame690(3).png" height="214" /> <img src="@/assets/img/Frame377.png" height="214" />
<p> <p>
有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的 有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的
有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的 有时候,上天没有给你想要的,不是因为你不配,而是你值得更好的
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
</div> </div>
<div v-else-if="index === 6" class="flx-direction-column"> <div v-else-if="index === 6" class="flx-direction-column">
<div v-for="col in 5" :key="col" class="entrepreneurship-item"> <div v-for="col in 5" :key="col" class="entrepreneurship-item">
<img src="@/assets/img/Frame690(3).png" /> <img src="@/assets/img/Frame379.png" />
<div class="entrepreneurship-item-rg"> <div class="entrepreneurship-item-rg">
Lorem ipsum dolor sit amet, consectetur adipiscingelit. Aenean euismod bibendum Lorem ipsum dolor sit amet, consectetur adipiscingelit. Aenean euismod bibendum
laoreet. Proin gravidadolor sit amet lacus accumsan et viverra justocommodo. Proin laoreet. Proin gravidadolor sit amet lacus accumsan et viverra justocommodo. Proin
......
...@@ -2,12 +2,14 @@ ...@@ -2,12 +2,14 @@
<div class="flexible flx-column-center-between"> <div class="flexible flx-column-center-between">
<div class="flexible-top">{{ title }}</div> <div class="flexible-top">{{ title }}</div>
<div class="flexible-content card"> <div class="flexible-content card">
<div v-for="(item, index) in list" :key="index" class="flexible-item"> <div>
<span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{ <div v-for="(item, index) in list" :key="index" class="flexible-item">
index + 1 <span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{
}}</span> index + 1
<el-link>{{ item.FTITLE }}</el-link> }}</span>
<img v-show="index < 3" src="@/assets/img/icon-new.png" width="28" height="15" alt="" /> <el-link>{{ item.FTITLE }}</el-link>
<img v-show="index < 3" src="@/assets/img/icon-new.png" width="28" height="15" alt="" />
</div>
</div> </div>
<div v-show="isMore" class="flexible-footer"> <div v-show="isMore" class="flexible-footer">
查看更多<el-icon><i-ep-DArrowRight /></el-icon> 查看更多<el-icon><i-ep-DArrowRight /></el-icon>
...@@ -55,6 +57,7 @@ defineProps({ ...@@ -55,6 +57,7 @@ defineProps({
color: #ffffff; color: #ffffff;
} }
.flexible-content { .flexible-content {
min-height: 401px;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -62,6 +65,9 @@ defineProps({ ...@@ -62,6 +65,9 @@ defineProps({
padding: 0 20px; padding: 0 20px;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 16px; padding-bottom: 16px;
display: flex;
flex-direction: column;
justify-content: space-between;
.flexible-item { .flexible-item {
display: flex; display: flex;
......
<template>
<div class="container">
<div class="details-header">
<div class="content">
<div>
<div class="details-header-top">
<div>装卸</div>
<div class="salary-range">{{ detailData?.salaryRange }}</div>
</div>
<div class="details-header-center">
{{ detailData?.cityName }}/{{
detailData?.workingLife ? detailData?.workingLife : '经验不限'
}}/{{ detailData?.academicRequirement ? detailData?.academicRequirement : '学历不限' }}
</div>
<div class="details-header-bottom">
<img src="https://rms.junrunrenli.com/static/img/money02.df9ff2d6.png" class="icon" />
推荐金额
<div>{{ detailData?.rewards }}</div>
</div>
</div>
<div class="submit">
<el-button @click="show = !show">立即投递</el-button>
<div v-if="show" class="popupbox">
<img src="https://rms.junrunrenli.com/static/img/popup02.691d38c2.png" />
</div>
</div>
</div>
</div>
<div class="details-content">
<div class="content">
<div class="title">职位描述:</div>
<div class="text">
{{ detailData?.positionDescribe }}
</div>
<div class="title">工作地点</div>
<div class="text">
<img :src="locationIcon" class="address" />
{{ detailData?.workingplaceAddress }}
</div>
<div class="title">公司信息</div>
<div class="text">
<img :src="companyIcon" class="comp" />
{{ detailData?.customerName }}
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { companyIcon, locationIcon } from '@/utils/index'
import { useJobDetailStore } from '@/stores/modules/jobDetails'
const globalStore = useJobDetailStore()
const detailData = computed(() => globalStore.getJobDtail)
const show = ref(false)
</script>
<style lang="scss" scoped>
.container {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
box-sizing: border-box;
.details-header {
background-color: #f5f5f5;
width: 100%;
height: 238px;
display: flex;
justify-content: center;
.content {
padding-top: 40px;
width: 1316px;
display: flex;
justify-content: space-between;
.details-header-top {
display: flex;
font-size: 18px;
color: #242424;
margin-bottom: 25px;
align-items: flex-end;
.salary-range {
font-size: 16px;
color: #f3911d;
margin-left: 20px;
}
}
.details-header-center {
color: #666;
font-size: 15px;
display: inline-block;
margin-bottom: 25px;
}
.details-header-bottom {
font-size: 16px;
display: flex;
align-items: flex-end;
.icon {
width: 18px;
height: 18px;
margin-right: 10px;
}
div {
margin-left: 10px;
color: #f3911d;
}
}
.submit {
position: relative;
.el-button {
width: 140px;
height: 48px;
line-height: 48px;
background-color: #f3911d;
border-radius: 4px;
color: #fff;
padding: 0;
font-size: 20px;
}
.popupbox {
position: absolute;
z-index: 20;
right: -5px;
top: 50px;
img {
height: 171px;
width: 170px;
}
}
}
}
}
.details-content {
width: 100%;
background-color: #ffffff;
padding-top: 40px;
display: flex;
justify-content: center;
.content {
width: 1316px;
.title {
font-size: 18px;
margin-bottom: 16px;
color: #242424;
font-weight: 700;
}
.text {
font-size: 13px;
color: #666;
margin-bottom: 30px;
vertical-align: middle;
display: flex;
align-items: center;
.address {
width: 18px;
height: 20px;
display: inline-block;
margin-right: 10px;
vertical-align: middle;
padding-bottom: 2px;
}
.comp {
width: 50px;
height: 50px;
margin-right: 20px;
display: inline-block;
vertical-align: middle;
}
}
}
}
}
</style>
...@@ -27,7 +27,12 @@ ...@@ -27,7 +27,12 @@
class="hot-position-tab-pane" class="hot-position-tab-pane"
> >
<div v-if="positionList.length" class="position-list"> <div v-if="positionList.length" class="position-list">
<div v-for="col in positionList" :key="col.id" class="position-item"> <div
v-for="col in positionList"
:key="col.id"
class="position-item"
@click="toJobDetail(col)"
>
<div class="flx-justify-between" style="margin-bottom: 20px"> <div class="flx-justify-between" style="margin-bottom: 20px">
<div class="position-title nowrap-ellipsis"> <div class="position-title nowrap-ellipsis">
{{ col.postName }} {{ col.postName }}
...@@ -61,8 +66,11 @@ ...@@ -61,8 +66,11 @@
<span>{{ col.recruitingType }}</span> <span>{{ col.recruitingType }}</span>
<el-divider v-show="col.recruitingType" direction="vertical" /> <el-divider v-show="col.recruitingType" direction="vertical" />
<span v-show="col.ageRequirement">招聘{{ col.ageRequirement }}人</span> <span v-show="col.ageRequirement">招聘{{ col.ageRequirement }}人</span>
<el-divider v-show="col.ageRequirement" direction="vertical" /> <el-divider
<span>餐饮</span> v-show="col.ageRequirement && col.industryType"
direction="vertical"
/>
<span>{{ col.industryType }}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -78,8 +86,11 @@ ...@@ -78,8 +86,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { baseURL } from '@/services' import { baseURL } from '@/services'
import { getPositionList, getFlexibleEmploym } from '@/services/api/flexibleEmploym' import { getPositionList, getFlexibleEmploym } from '@/services/api/flexibleEmploym'
import { useJobDetailStore } from '@/stores/modules/jobDetails'
import flexible from '@/views/flexibleEmploym/components/flexible.vue' import flexible from '@/views/flexibleEmploym/components/flexible.vue'
const jobDetailStore = useJobDetailStore()
const router = useRouter()
const tabsList = [ const tabsList = [
{ label: '安保', name: 0 }, { label: '安保', name: 0 },
{ label: '技术', name: 1 }, { label: '技术', name: 1 },
...@@ -88,9 +99,10 @@ const tabsList = [ ...@@ -88,9 +99,10 @@ const tabsList = [
{ label: '保洁', name: 4 }, { label: '保洁', name: 4 },
{ label: '快递', name: 5 }, { label: '快递', name: 5 },
{ label: '促销员', name: 6 }, { label: '促销员', name: 6 },
{ label: '店', name: 7 }, { label: '店', name: 7 },
{ label: '服务', name: 8 } { label: '服务', name: 8 }
] ]
const listQuery = reactive({ const listQuery = reactive({
obj: { obj: {
postName: tabsList[0].label postName: tabsList[0].label
...@@ -113,28 +125,20 @@ const flexibleNameList = [ ...@@ -113,28 +125,20 @@ const flexibleNameList = [
{ name: '新闻', field: 'XwData' } { name: '新闻', field: 'XwData' }
] ]
const flexibleList = [
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }
]
const handleChange = (name: number) => { const handleChange = (name: number) => {
listQuery.obj.postName = tabsList[name].label listQuery.obj.postName = tabsList[name].label
initPosition() initPosition()
} }
const toJobDetail = (row: any) => {
jobDetailStore.setJobDetail(row)
router.push({ path: 'jobDetail' })
}
const search = () => { const search = () => {
initPosition() initPosition()
// console.log(searchValue.value)
} }
const initPosition = async () => { const initPosition = async () => {
flexibleLoading.value = true flexibleLoading.value = true
const res: any = await getPositionList(listQuery) const res: any = await getPositionList(listQuery)
......
import Frame690 from '@/assets/img/Frame690.png'
import Frame691 from '@/assets/img/Frame690(1).png'
import Frame692 from '@/assets/img/Frame690(2).png'
import Frame693 from '@/assets/img/Frame690(3).png'
import Frame694 from '@/assets/img/Frame690(4).png'
import Frame695 from '@/assets/img/Frame690(5).png'
import Frame696 from '@/assets/img/Frame690(6).png'
import Frame697 from '@/assets/img/Frame690(7).png'
import gonggao from '@/assets/img/icon-gonggao.png' import gonggao from '@/assets/img/icon-gonggao.png'
import zhengnc from '@/assets/img/icon-zhengnc.png' import zhengnc from '@/assets/img/icon-zhengnc.png'
import xinwen from '@/assets/img/icon-xinwen.png' import xinwen from '@/assets/img/icon-xinwen.png'
...@@ -17,17 +9,6 @@ import tui from '@/assets/img/icon-tui.png' ...@@ -17,17 +9,6 @@ import tui from '@/assets/img/icon-tui.png'
import jia from '@/assets/img/icon-jia.png' import jia from '@/assets/img/icon-jia.png'
import can from '@/assets/img/icon-can.png' import can from '@/assets/img/icon-can.png'
export const imgList = [
{ name: '粤海街道专题', url: Frame690 },
{ name: '南头街道专题', url: Frame691 },
{ name: '西丽街道专题', url: Frame692 },
{ name: '沙河街道专题', url: Frame693 },
{ name: '南山街道专题', url: Frame694 },
{ name: '蛇口街道专题', url: Frame695 },
{ name: '招商街道专题 ', url: Frame696 },
{ name: '桃源街道专题 ', url: Frame697 }
]
export const employmentList = [ export const employmentList = [
{ name: '公告', url: gonggao }, { name: '公告', url: gonggao },
{ name: '政策', url: zhengnc }, { name: '政策', url: zhengnc },
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
<div class="home-tp flx-direction-column"> <div class="home-tp flx-direction-column">
<div class="n-title">公共就业服务政策</div> <div class="n-title">公共就业服务政策</div>
<div class="flx-justify-between policy-bottom"> <div class="flx-justify-between policy-bottom">
<policy title="南山就业政策公告" :list="homeData?.GgData" /> <policy title="南山就业政策公告" :list="homeData?.GgData" @change="handleChange" />
<policy title="南山就业活动" :list="homeData?.HdData" /> <policy title="南山就业活动" :list="homeData?.HdData" @change="handleChange" />
</div> </div>
</div> </div>
<div class="home-tp"> <div class="home-tp">
...@@ -111,9 +111,15 @@ import { getHome } from '@/services/api/home' ...@@ -111,9 +111,15 @@ import { getHome } from '@/services/api/home'
import { employmentList, sceneList } from './index' import { employmentList, sceneList } from './index'
import policy from '../../components/policy.vue' import policy from '../../components/policy.vue'
const router = useRouter()
const loading = ref(true) const loading = ref(true)
const homeData = ref() const homeData = ref()
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'B', FTITLE: row.FTITLE } })
}
const init = async () => { const init = async () => {
loading.value = false loading.value = false
const res: any = await getHome() const res: any = await getHome()
......
...@@ -12,8 +12,20 @@ ...@@ -12,8 +12,20 @@
</template> </template>
</el-input> </el-input>
<div class="flx-justify-between" style="margin-bottom: 64px"> <div class="flx-justify-between" style="margin-bottom: 64px">
<policy title="南山就业政策公告" :list="policyData?.GgData" is-more /> <policy
<policy title="南山就业活动" :list="policyData?.HdData" is-more /> title="南山就业政策公告"
:list="policyData?.GgData"
is-more
:min-height="401"
@change="handleChange"
/>
<policy
title="南山就业活动"
:list="policyData?.HdData"
is-more
:min-height="401"
@change="handleChange"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -24,6 +36,8 @@ import { baseURL } from '@/services' ...@@ -24,6 +36,8 @@ import { baseURL } from '@/services'
import { getPolicy } from '@/services/api/policy' import { getPolicy } from '@/services/api/policy'
import policy from '@/components/policy.vue' import policy from '@/components/policy.vue'
const router = useRouter()
const searchValue = ref() const searchValue = ref()
const loading = ref(true) const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10 }) const queryList = ref({ pageIndex: 1, pageSize: 10 })
...@@ -32,6 +46,9 @@ const policyData: any = ref() ...@@ -32,6 +46,9 @@ const policyData: any = ref()
const search = () => { const search = () => {
console.log(searchValue.value) console.log(searchValue.value)
} }
const handleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'B', FTITLE: row.FTITLE } })
}
const init = async () => { const init = async () => {
const res: any = await getPolicy(queryList.value) const res: any = await getPolicy(queryList.value)
......
<template>
<div class="administrator">
<div class="container">
<div class="content">
<div class="title">添加管理员</div>
<el-form :model="state.form" label-width="70px" label-position="left">
<el-form-item label="姓名:">
<span>货拉拉</span>
</el-form-item>
<el-form-item label="手机号:">
<span>18000875009</span>
</el-form-item>
<el-form-item label="职位:">
<span>经理</span>
</el-form-item>
</el-form>
</div>
<div class="confirm">
<span>确定</span>
</div>
</div>
</div>
</template>
<script setup lang="ts">
const state = reactive({
form: {} as any
})
</script>
<style lang="scss" scoped>
@import url(./style/addAdministrator.scss);
</style>
<template>
<div style="margin-bottom: 15px">
<div class="position-header">
<el-button type="primary" :icon="CirclePlusFilled">发布职位</el-button>
<div class="tag-list">
<el-tag
v-for="item in positionList"
:key="item.type"
:type="tagActive === item.name ? '' : 'info'"
@click="tagChange(item)"
>{{ item.name }}</el-tag
>
</div>
</div>
<div class="position-list">
<div v-for="(item, index) in 6" :key="index" class="position-item flx-justify-between">
<div>
<div class="position-title">销售经理</div>
<div>
<span class="position-label">大专</span>
<el-divider direction="vertical" />
<span class="position-label">1-3年</span>
<el-divider direction="vertical" />
<span class="position-label">招聘2人</span>
<el-divider direction="vertical" />
<span class="position-label">6K-8K.13薪</span>
<el-divider direction="vertical" />
<span class="position-label">全职</span>
</div>
</div>
<div class="options">
<span class="open"><span class="round open-round" /> 开放中</span>
<span>关闭</span>
<span>编辑</span>
<span>预览</span>
<span>删除</span>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { CirclePlusFilled } from '@element-plus/icons-vue'
import { positionList } from '../config/index'
const tagActive = ref('全部职位')
const tagChange = (row: any) => {
tagActive.value = row.name
}
</script>
<style lang="scss" scoped>
.position-header {
padding: 26px 58px;
background: #ffffff;
border-radius: 12px;
margin-bottom: 16px;
.tag-list {
margin-top: 20px;
.el-tag {
cursor: pointer;
margin-right: 20px;
}
}
}
.position-list {
.position-item {
padding: 24px 58px;
background: #ffffff;
border-radius: 12px;
margin-bottom: 16px;
.position-title {
font-size: 18px;
font-weight: 500;
color: #222222;
margin-bottom: 16px;
}
.position-label {
font-size: 16px;
font-weight: 400;
color: #666666;
}
.options {
display: flex;
font-size: 16px;
font-weight: 400;
color: #222222;
span {
cursor: pointer;
margin-left: 24px;
}
.open {
// background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
// color: #177cfa;
}
.round {
display: inline-block;
width: 8px;
height: 8px;
background: #666666;
border-radius: 50%;
}
// .open-round {
// background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
// color: #177cfa;
// }
}
}
}
</style>
<template>
<div class="resume">
<search style="margin-bottom: 24px" @search-change="searchChange" />
<div class="resume-filter">
<div v-for="item in list" :key="item.name" class="filter-item">
<span class="filter-title">{{ item.name }}</span>
<span class="filter-item-label filter-item-active">不限</span>
<span class="filter-item-label">不限</span>
<span class="filter-item-label">不限</span>
</div>
<div class="clear-filter">
<span>清空筛选</span>
</div>
</div>
<div class="resume-list">
<div v-for="item in 3" :key="item" class="resume-item">
<div style="display: flex; padding: 20px 0 20px 40px">
<div class="flx-center-column">
<el-avatar
src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
style="width: 64px; height: 64px"
/>
<div class="salary">30-35k</div>
</div>
<div class="user-info">
<div class="user-name">陈琳</div>
<div style="margin: 10px 0">
<span>27岁</span>
<el-divider direction="vertical" />
<span></span>
<el-divider direction="vertical" />
<span>1年</span>
<el-divider direction="vertical" />
<span>硕士</span>
<el-divider direction="vertical" />
<span>离职-随时到岗</span>
</div>
<div class="flx-justify-between" style="width: 838px">
<p>
强目标导向,并基于当下战略目标持续发现问题,定义问题,输出了解增长拉新有效策略解决问题成功的0-1及1-10经历,深入.
强目标导向,并基于当下战略目标持续发现问题,定义问题,输出了解增长拉新有效策略解决问题成功的0-1及1-10经历,深入.
</p>
<div class="flx-direction-column" style="font-size: 14px">
<div class="flx-align-center" style="margin-bottom: 6px">
<div style="color: #999999">职位:</div>
<span>华熙海御</span>
<div
style="
width: 4px;
height: 4px;
background: #cccccc;
border-radius: 50%;
margin: 0 4px;
"
></div>
<span>运营经理/主管</span>
</div>
<div class="flx-align-center">
<div style="color: #999999">职位:</div>
<span>华熙海御</span>
<div
style="
width: 4px;
height: 4px;
background: #cccccc;
border-radius: 50%;
margin: 0 4px;
"
></div>
<spa>运营经理/主管</spa>
</div>
</div>
</div>
</div>
</div>
<div class="flx-direction-column" style="padding: 14px 40px 14px 0">
<div class="resume-btn flx-center">简历待定</div>
<div class="resume-btn flx-center">人才库</div>
<div class="resume-btn flx-center">人才储备</div>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import search from '@/components/search.vue'
const list = [
{ name: '学历要求' },
{ name: '院校要求' },
{ name: '经验要求' },
{ name: '年龄要求' }
]
const searchChange = (searchValue: string) => {}
</script>
<style lang="scss" scoped>
.resume {
display: flex;
align-items: center;
flex-direction: column;
.resume-filter {
width: 100%;
box-sizing: border-box;
background: #ffffff;
border-radius: 12px;
padding: 16px 24px;
margin-bottom: 24px;
.filter-item {
font-size: 16px;
font-weight: 400;
color: #222222;
margin-bottom: 16px;
display: flex;
flex-wrap: wrap;
align-items: center;
box-sizing: border-box;
.filter-title {
font-size: 16px;
font-weight: 400;
color: #909090;
margin-right: 32px;
}
.filter-item-label {
cursor: pointer;
padding: 4px 12px;
border-radius: 4px;
margin-right: 16px;
}
.filter-item-active {
background: #dcecff;
color: #177cfa;
}
}
.clear-filter {
font-size: 16px;
font-weight: 400;
color: #666666;
display: flex;
justify-content: flex-end;
cursor: pointer;
}
}
.resume-list {
width: 100%;
.resume-item {
margin-bottom: 16px;
background: #ffffff;
border-radius: 12px;
display: flex;
justify-content: space-between;
box-sizing: border-box;
.salary {
background: #ff3333;
border-radius: 28px;
margin-top: 7px;
font-size: 16px;
font-weight: 400;
color: #ffffff;
padding: 2px 7px;
}
.user-info {
margin-left: 16px;
color: #222222;
.user-name {
font-size: 18px;
font-weight: 400;
span {
font-size: 16px;
}
}
p {
width: 467px;
font-size: 16px;
font-weight: 400;
color: #666666;
line-height: 19px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
}
.resume-btn {
cursor: pointer;
border-radius: 4px;
border: 1px solid #177cfa;
padding: 5px 17px;
font-size: 14px;
font-weight: 400;
color: #177cfa;
margin-bottom: 15px;
&:last-child {
margin-bottom: 0;
}
}
}
}
}
</style>
<template>
<el-tabs v-model="activeName" stretch>
<el-tab-pane
v-for="(item, index) in recruitStatus"
:key="index"
:label="item.statu"
:name="item.statu"
>
<div v-for="(col, colIndex) in 4" :key="colIndex" class="tab-item">
<div class="tab-item-tp">
<div class="tab-item-tp-lf">
<el-avatar :src="can" size="large" />
<div class="user-info">
<div>龙昌萍</div>
<div class="flx-align-center">
<span>未知</span>
<el-divider direction="vertical" style="margin-bottom: 0" />
<span>20岁</span>
</div>
<div class="flx-align-center">
<el-icon><i-ep-OfficeBuilding /></el-icon>
<span style="margin-left: 3px">在职求职中</span>
</div>
<div class="flx-align-center">
<el-icon><i-ep-OfficeBuilding /></el-icon>
<span style="margin-left: 3px">2021-09至2024-07</span>
</div>
</div>
</div>
<div class="tab-item-tp-rg">
<div class="flx-align-center">
<span class="info-label">简历待定</span>
<span class="info-label">安排面试</span>
<el-dropdown>
<span class="info-label">更多</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>已面试</el-dropdown-item>
<el-dropdown-item>已录用</el-dropdown-item>
<el-dropdown-item>已入职</el-dropdown-item>
<el-dropdown-item>人才库</el-dropdown-item>
<el-dropdown-item>黑名单</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="recommend flx-align-center">
推荐指数
<el-rate v-model="rateValue" style="margin-left: 8px" />
</div>
</div>
</div>
<div class="tab-item-bt flx-justify-between">
<div>
<span class="user-label">大专</span>
<el-divider direction="vertical" />
<span class="user-label">长江工程职业技术学校</span>
<el-divider direction="vertical" />
<span class="user-label">计算机软件技术</span>
</div>
<div>
<span class="user-label">抖音运营</span>
<el-divider direction="vertical" />
<span class="user-label">2023/07/10投递</span>
<el-divider direction="vertical" />
<span class="user-label">3323234</span>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
</template>
<script setup lang="ts">
import { recruitStatus } from '../config/index'
import can from '@/assets/img/icon-can.png'
const activeName = ref('简历未查看')
const rateValue = ref(4)
</script>
<style lang="scss" scoped>
.tab-item {
background: #ffffff;
border-radius: 12px;
margin-bottom: 16px;
.tab-item-tp {
padding: 16px 24px;
display: flex;
justify-content: space-between;
.tab-item-tp-lf {
display: flex;
.user-info {
display: flex;
flex-direction: column;
margin-left: 8px;
div {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
}
span {
font-size: 14px;
font-weight: 400;
color: #666666;
}
}
}
.tab-item-tp-rg {
display: flex;
flex-direction: column;
justify-content: space-between;
.recommend {
font-size: 16px;
font-weight: 400;
color: #222222;
}
:deep(.el-dropdown) {
line-height: normal;
}
}
}
.tab-item-bt {
background: linear-gradient(90deg, #e3f0ff 0%, rgba(227, 240, 255, 0.15) 100%);
border-radius: 0px 0px 12px 12px;
padding: 15px 26px 15px 86px;
.user-label {
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
}
:deep(.el-tabs__active-bar) {
background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
}
.info-label {
padding: 4px 8px;
background: #c0dcff;
border-radius: 4px;
font-size: 14px;
font-weight: 400;
color: #177cfa;
margin-right: 8px;
cursor: pointer;
&:focus {
outline: 0 !important;
}
}
</style>
...@@ -173,10 +173,8 @@ export const recruitStatus = [ ...@@ -173,10 +173,8 @@ export const recruitStatus = [
{ statu: '黑名单', value: '10份' } { statu: '黑名单', value: '10份' }
] ]
export const talentList = [ export const positionList = [
{ name: '人才储备', value: '' }, { name: '全部职位', type: 0 },
{ name: '业绩优秀', value: '' }, { name: '开放中', type: 1 },
{ name: '背景优秀', value: '' }, { name: '已关闭', type: 2 }
{ name: '销售', value: '' },
{ name: '技术', value: '' }
] ]
<template>
<div class="edit-company">
<div class="container">
<div class="content">
<div class="title">编辑公司信息</div>
<el-form :model="state.form" label-width="90px" label-position="left">
<el-form-item label="公司LOGO" class="flx-align-center">
<img src="@/assets/img/icon-chuang.png" width="54" height="54" />
</el-form-item>
<el-form-item label="公司名称">
<span>货拉拉科技</span>
</el-form-item>
<el-form-item label="公司类型">
<div class="flx-direction-column">
<div
class="info-collapse flx-justify-between"
@click="state.companyTypeAcive = !state.companyTypeAcive"
>
<div>请选择</div>
<el-icon v-show="state.companyTypeAcive"><i-ep-CaretTop /></el-icon>
<el-icon v-show="!state.companyTypeAcive"><i-ep-CaretBottom /></el-icon>
</div>
<div v-show="state.companyTypeAcive" class="info-list">
<span v-for="(item, index) in 20" :key="index">不限酒水</span>
</div>
</div>
</el-form-item>
<el-form-item label="公司规模">
<div class="flx-direction-column">
<div
class="info-collapse flx-justify-between"
@click="state.companyTypeAcive = !state.companyTypeAcive"
>
<div>请选择</div>
<el-icon v-show="state.companyTypeAcive"><i-ep-CaretTop /></el-icon>
<el-icon v-show="!state.companyTypeAcive"><i-ep-CaretBottom /></el-icon>
</div>
<div v-show="state.companyTypeAcive" class="info-list">
<span v-for="(item, index) in 20" :key="index">不限酒水</span>
</div>
</div>
</el-form-item>
<el-form-item label="融资情况">
<div class="flx-direction-column">
<div
class="info-collapse flx-justify-between"
@click="state.companyTypeAcive = !state.companyTypeAcive"
>
<div>请选择</div>
<el-icon v-show="state.companyTypeAcive"><i-ep-CaretTop /></el-icon>
<el-icon v-show="!state.companyTypeAcive"><i-ep-CaretBottom /></el-icon>
</div>
<div v-show="state.companyTypeAcive" class="info-list">
<span v-for="(item, index) in 20" :key="index">不限酒水</span>
</div>
</div>
</el-form-item>
<el-form-item label="公司地址">
<span>深圳市南山区南山街道办1109号7-6楼</span>
</el-form-item>
<el-form-item label="所在街道办">
<div class="flx-direction-column">
<div
class="info-collapse flx-justify-between"
@click="state.companyTypeAcive = !state.companyTypeAcive"
>
<div>请选择</div>
<el-icon v-show="state.companyTypeAcive"><i-ep-CaretTop /></el-icon>
<el-icon v-show="!state.companyTypeAcive"><i-ep-CaretBottom /></el-icon>
</div>
<div v-show="state.companyTypeAcive" class="info-list">
<span v-for="(item, index) in 20" :key="index">不限酒水</span>
</div>
</div>
</el-form-item>
<el-form-item label="公司介绍">
<el-input v-model="state.form.desc" type="textarea" :rows="4" />
</el-form-item>
</el-form>
</div>
<div class="confirm">
<span>确定</span>
</div>
</div>
</div>
</template>
<script setup lang="ts">
const state = reactive({
form: {} as any,
companyTypeAcive: false,
companyType: ''
})
</script>
<style lang="scss" scoped>
@import url(./style/editCompany.scss);
</style>
...@@ -27,7 +27,9 @@ ...@@ -27,7 +27,9 @@
</template> </template>
<el-descriptions-item v-for="item1 in 4" :key="item1"> <el-descriptions-item v-for="item1 in 4" :key="item1">
<template #default> <template #default>
<el-link :underline="false" href="/job">销售业务</el-link> <router-link :to="{ path: '#' }" style="text-decoration: none">
<el-link :underline="false">销售业务</el-link>
</router-link>
</template> </template>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
......
.administrator {
display: flex;
justify-content: center;
padding: 24px 0 46px;
.container {
width: 1316px;
.content {
padding: 24px 36px;
background: #ffffff;
box-shadow: 0px 1px 25px 0px rgba(0, 0, 0, 0.05);
border-radius: 8px;
.title {
font-size: 24px;
font-weight: 500;
color: #177cfa;
text-align: center;
margin-bottom: 16px;
}
}
.confirm {
display: flex;
justify-content: center;
text-align: center;
margin-bottom: 20px;
span {
display: block;
font-size: 20px;
font-weight: 500;
color: #ffffff;
margin-top: 36px;
width: 160px;
height: 52px;
line-height: 52px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
border-radius: 8px;
cursor: pointer;
}
}
}
}
.edit-company {
display: flex;
justify-content: center;
padding: 24px 0 46px;
.container {
width: 1316px;
.content {
padding: 24px 36px;
background: #ffffff;
box-shadow: 0px 1px 25px 0px rgba(0, 0, 0, 0.05);
border-radius: 8px;
}
.title {
font-size: 24px;
font-weight: 500;
color: #177cfa;
text-align: center;
margin-bottom: 16px;
}
.info-collapse {
cursor: pointer;
padding: 6px 8px;
height: 32px;
width: 140px;
background: #dcecff;
border-radius: 4px;
box-sizing: border-box;
font-size: 14px;
font-weight: 400;
color: #177cfa;
margin-bottom: 8px;
}
.info-list {
display: flex;
flex-wrap: wrap;
margin-bottom: 8px;
span {
cursor: pointer;
display: inline-block;
height: 20px;
font-size: 14px;
font-weight: 400;
color: #666666;
margin-bottom: 8px;
margin-right: 16px;
&:hover {
color: #177cfa;
}
}
}
:deep(.el-textarea__inner) {
background: #f8f8f8;
}
.confirm {
display: flex;
justify-content: center;
text-align: center;
span {
display: block;
font-size: 20px;
font-weight: 500;
color: #ffffff;
margin-top: 36px;
width: 160px;
height: 52px;
line-height: 52px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
border-radius: 8px;
cursor: pointer;
}
}
}
}
...@@ -5,19 +5,12 @@ ...@@ -5,19 +5,12 @@
width: 1316px; width: 1316px;
padding-top: 24px; padding-top: 24px;
.enterprise-header { .enterprise-header {
margin-bottom: 48px; margin-bottom: 24px;
display: flex; display: flex;
height: 462px;
.enterprise-header-lf { .enterprise-header-lf {
width: 869px; width: 869px;
margin-right: 24px; margin-right: 24px;
.el-input {
height: 62px;
margin-bottom: 24px;
:deep(.el-input__wrapper) {
border-radius: 29px;
padding: 0 45px;
}
}
img { img {
border-radius: 12px; border-radius: 12px;
display: block; /* 将图片设置为块级元素 */ display: block; /* 将图片设置为块级元素 */
...@@ -33,12 +26,44 @@ ...@@ -33,12 +26,44 @@
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
} }
.manage-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
text-align: center;
background-color: #ffffff;
.manage-item {
cursor: pointer;
flex: 0 0 25%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(1) {
border-radius: 8px 0 0 8px;
}
&:nth-child(4) {
border-radius: 0 8px 8px 0;
border-right: 0;
}
}
.active {
background-color: #177cfa;
color: #ffffff;
// border-radius: 8px 0 0 8px;
}
}
} }
.enterprise-header-rg { .enterprise-header-rg {
flex: 1; flex: 1;
background: #ffffff; background: #ffffff;
border-radius: 12px; border-radius: 12px;
padding: 20px 16px 32px; padding: 20px 16px;
box-sizing: border-box;
.company-tp { .company-tp {
display: flex; display: flex;
img { img {
...@@ -62,40 +87,16 @@ ...@@ -62,40 +87,16 @@
} }
.company-detail { .company-detail {
width: 391px; width: 391px;
height: 80px; height: 243px;
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
margin: 24px 0 20px;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 5; -webkit-line-clamp: 15;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
margin-top: 25px;
}
.recruit-status {
margin-bottom: 12px;
.status-item {
&:nth-child(2n) {
display: flex;
justify-content: flex-end;
}
.label {
width: 70px;
font-size: 14px;
font-weight: 400;
color: #222222;
text-align: justify;
-moz-text-align-last: justify;
text-align-last: justify;
}
span {
font-size: 14px;
font-weight: 400;
color: #666666;
margin-left: 12px;
}
}
} }
.btn { .btn {
display: block; display: block;
...@@ -112,92 +113,6 @@ ...@@ -112,92 +113,6 @@
} }
} }
} }
.talent-list {
width: 222px;
min-height: 20px;
background: #ffffff;
box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.05);
margin-right: 24px;
border-radius: 8px;
.talent-item {
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
&:first-child {
border-radius: 8px 8px 0 0;
}
&:last-child {
border-radius: 0 0 8px 8px;
}
&:hover {
background: #f8f8f8;
}
}
}
.tab-item {
background: #ffffff;
border-radius: 12px;
margin-bottom: 16px;
.tab-item-tp {
padding: 16px 24px;
display: flex;
justify-content: space-between;
.tab-item-tp-lf {
display: flex;
.user-info {
display: flex;
flex-direction: column;
margin-left: 8px;
div {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
}
span {
font-size: 14px;
font-weight: 400;
color: #666666;
}
}
}
.tab-item-tp-rg {
display: flex;
flex-direction: column;
justify-content: space-between;
.recommend {
font-size: 16px;
font-weight: 400;
color: #222222;
}
:deep(.el-dropdown) {
line-height: normal;
}
}
}
.tab-item-bt {
background: linear-gradient(90deg, #e3f0ff 0%, rgba(227, 240, 255, 0.15) 100%);
border-radius: 0px 0px 12px 12px;
padding: 15px 26px 15px 86px;
.user-label {
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
}
:deep(.el-tabs__active-bar) {
background: linear-gradient(90deg, #a5cdff 0%, #177cfa 100%);
}
} }
.info-label { .info-label {
padding: 2px 8px; padding: 2px 8px;
...@@ -207,10 +122,5 @@ ...@@ -207,10 +122,5 @@
font-weight: 400; font-weight: 400;
color: #177cfa; color: #177cfa;
margin-right: 8px; margin-right: 8px;
cursor: pointer;
&:focus {
outline: 0 !important;
}
} }
} }
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
border: 1px solid #177cfa; border: 1px solid #177cfa;
border-radius: 8px; border-radius: 8px;
.train-item { .train-item {
cursor: pointer;
flex: 0 0 20%; flex: 0 0 20%;
height: 58px; height: 58px;
line-height: 58px; line-height: 58px;
...@@ -25,6 +26,10 @@ ...@@ -25,6 +26,10 @@
&:nth-child(5) { &:nth-child(5) {
border-right: 0; border-right: 0;
} }
.active {
background-color: #177cfa;
}
} }
} }
} }
......
...@@ -16,20 +16,22 @@ ...@@ -16,20 +16,22 @@
<script setup lang="ts"> <script setup lang="ts">
import { baseURL } from '@/services' import { baseURL } from '@/services'
import { getSkillTraining } from '@/services/api/skillTraining' import { getSkillTraining, getSkillTrainingList } from '@/services/api/skillTraining'
import contentBlock from '@/components/contentBlock.vue' import contentBlock from '@/components/contentBlock.vue'
const loading = ref(true) const loading = ref(true)
const queryList = ref({ pageIndex: 1, pageSize: 10 }) const queryList = ref({ pageIndex: 1, pageSize: 10, type: 'A' })
const skillTrainData: any = ref() const skillTrainData: any = ref()
const trainList = [ const trainList = [
{ name: '基础安全培训' }, { name: '基础安全培训', type: 'A' },
{ name: '专业技能培训' }, { name: '专业技能培训', type: 'B' },
{ name: '专业知识培训' }, { name: '专业知识培训', type: 'C' },
{ name: '职业发展培训' }, { name: '职业发展培训', type: 'D' },
{ name: '团队管理培训' } { name: '团队管理培训', type: 'E' }
] ]
const handleChange = (row: any) => {}
const init = async () => { const init = async () => {
const res: any = await getSkillTraining(queryList.value) const res: any = await getSkillTraining(queryList.value)
if (res.code === 200) { if (res.code === 200) {
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
} }
.special-tag { .special-tag {
cursor: pointer;
width: 88px; width: 88px;
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;
......
<template> <template>
<div class="special-container"> <div v-loading="loading" class="special-container">
<div class="special-list"> <div class="special-list">
<div v-for="(item, index) in 9" :key="index" class="special-item"> <div v-for="(item, index) in specialRecruitmentData" :key="index" class="special-item">
<img src="@/assets/img/Frame690(7).png" width="398" height="280" /> <img :src="baseURL + '/' + item.PICTURE" width="398" height="280" />
<div class="special-title">招商街道海上世界&南海意库“三新”专场</div> <div class="special-title">{{ item.FNAME }}</div>
<div class="special-detail">劳务对接,携手并肩</div> <div class="special-detail">{{ item.FSUBTITLE }}</div>
<div class="flx-justify-between"> <div class="flx-justify-between">
<span class="special-tag">进入专题</span> <span class="special-tag">进入专题</span>
<span class="special-date">2024.06.07</span> <span class="special-date">{{ item.FDATE }}</span>
</div> </div>
<span class="piece">招聘</span> <span class="piece">招聘</span>
</div> </div>
...@@ -18,7 +18,25 @@ ...@@ -18,7 +18,25 @@
</div> </div>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts">
import { baseURL } from '@/services'
import { getSpecialRecruitment } from '@/services/api/specialRecruitment'
const queryList = ref({ pageIndex: 1, pageSize: 10 })
const specialRecruitmentData = ref()
const loading = ref(true)
const init = async () => {
const res: any = await getSpecialRecruitment(queryList.value)
if (res.code === 200) {
console.log(res)
specialRecruitmentData.value = res.data
loading.value = false
}
}
init()
</script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './index.scss'; @import './index.scss';
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="container"> <div class="container">
<div class="street-card"> <div class="street-card">
<div style="position: relative"> <div style="position: relative">
<img src="@/assets/img/Frame690(1).png" width="850" /> <img src="@/assets/img/Frame377.png" width="850" />
<div class="street-card-triangle"></div> <div class="street-card-triangle"></div>
</div> </div>
<div class="street-card-content flx-center"> <div class="street-card-content flx-center">
......
...@@ -15,8 +15,13 @@ declare module 'vue' { ...@@ -15,8 +15,13 @@ declare module 'vue' {
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer'] ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
...@@ -36,11 +41,16 @@ declare module 'vue' { ...@@ -36,11 +41,16 @@ declare module 'vue' {
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRate: typeof import('element-plus/es')['ElRate'] ElRate: typeof import('element-plus/es')['ElRate']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
IEpArrowRight: typeof import('~icons/ep/arrow-right')['default'] IEpArrowRight: typeof import('~icons/ep/arrow-right')['default']
IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default'] IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
IEpCaretTop: typeof import('~icons/ep/caret-top')['default'] IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论