提交 3f677b28 authored 作者: 刘旭's avatar 刘旭

修改细节bug

上级 ca2001b3
......@@ -52,7 +52,17 @@
class="flx-align-center"
style="color: #177cfa"
>
<el-avatar :src="baseURL + '/' + personalInfo?.FPHOTOS" />
<el-avatar
v-if="personalInfo?.FPHOTOS"
:src="baseURL + '/' + personalInfo?.FPHOTOS"
/>
<img
v-else
src="@/assets/img/icon-head.png"
width="40"
height="40"
style="margin: 0"
/>
<span
style="margin-left: 8px; width: 95px"
class="nowrap-ellipsis"
......
......@@ -7,10 +7,10 @@
:value-key="valueKey"
:fetch-suggestions="querySearchAsync"
@select="handleSelect"
@change="handleChange"
@keyup.enter="handleChange"
>
<template #prefix>
<el-select v-model="selectValue" placeholder="">
<el-select v-model="selectValue" placeholder="" @change="selectChange">
<el-option
v-for="(item, index) in selectOptions"
:key="index"
......@@ -39,8 +39,8 @@ const props = defineProps({
selectOptions: {
type: Array,
default: () => [
{ label: '找工作', value: 1 },
{ label: '找企业', value: 2 }
{ label: '找工作', value: '1' },
{ label: '找企业', value: '2' }
]
} as any,
list: {
......@@ -51,23 +51,31 @@ const props = defineProps({
let timeout: ReturnType<typeof setTimeout>
const searchValue = ref()
const selectValue = ref(1)
const selectValue = ref('1')
const emits = defineEmits(['searchChange', 'querySearchAsync'])
const emits = defineEmits(['searchChange', 'querySearchAsync', 'update:list', 'update:valueKey'])
const querySearchAsync = async (queryString: string, cb: (arg: any) => void) => {
emits('querySearchAsync', searchValue.value)
clearTimeout(timeout)
timeout = setTimeout(() => {
cb(props.list)
setTimeout(() => {
emits('querySearchAsync', searchValue.value, selectValue.value)
clearTimeout(timeout)
timeout = setTimeout(() => {
cb(props.list)
}, 200)
}, 100)
}
const handleSelect = (item: Record<string, any>) => {
emits('searchChange', item.JobName)
emits('searchChange', selectValue.value === '1' ? item.JobName : item.FirmName, selectValue.value)
}
const handleChange = () => {
emits('searchChange', searchValue.value)
emits('searchChange', searchValue.value, selectValue.value)
}
const selectChange = () => {
emits('update:list', [])
emits('update:valueKey', selectValue.value === '1' ? 'JobName' : 'FirmName')
}
defineExpose({ searchValue })
......
......@@ -12,8 +12,8 @@
class="child"
frameborder="0"
:src="
// 'http://view.xdocin.com/xdoc?_xdoc=' + encodeURIComponent('http://192.168.1.168' + url)
'http://view.xdocin.com/xdoc?_xdoc=' + encodeURIComponent('http://14.29.230.199:84' + url)
'http://view.xdocin.com/xdoc?_xdoc=' + encodeURIComponent('http://192.168.1.168' + url)
// 'http://view.xdocin.com/xdoc?_xdoc=' + encodeURIComponent('http://14.29.230.199:84' + url)
"
/>
<vue-office-pdf
......
......@@ -17,7 +17,7 @@ const initMap = (address: string) => {
address: address.replace('/', ''),
key: '3M5BZ-SFCRJ-AHSF7-XRA5Q-Y6NIJ-DXBH4'
}).then((res: any) => {
console.log(res, 'addr')
// console.log(res, 'addr')
if (res.status === 0) {
const { lat, lng } = res.result.location
const center = new windows.TMap.LatLng(lat, lng) //设置中心点坐标
......
......@@ -134,6 +134,10 @@ const routes = [
]
},
{
path: '/specialRecruitment/home',
component: () => import('@/views/specialRecruitment/home.vue')
},
{
path: '/RichTextEditor',
component: () => import('@/views/editor/index.vue')
}
......
......@@ -180,7 +180,7 @@ export const setTalentPool = (data: any) => {
)
}
// 简历搜索/简历推荐
export const genCompanyList = (data: any) => {
export const getCompanyList = (data: any) => {
return request.post(
'/LQKJ.K3.NSJYBSystem.WebApi.WebApiService.SearchEnterprise,LQKJ.K3.NSJYBSystem.WebApi.common.kdsvc',
data
......
......@@ -86,7 +86,6 @@ class RequestHttp {
this.service.interceptors.response.use(
(response: AxiosResponse) => {
const { data, config } = response // 解构
console.log(data, 'response')
const globalStore = useGlobalStore()
const userInfoStore = useUserInfoStore()
if (data.code === 501) {
......@@ -114,7 +113,6 @@ class RequestHttp {
},
(error: AxiosError) => {
const { response } = error
console.log(response, 'response')
// 请求超时 && 网络错误单独判断,没有 response
if (error.message.indexOf('timeout') !== -1) ElMessage.error('请求超时!请您稍后重试')
if (error.message.indexOf('Network Error') !== -1)
......
<template>
<div class="student-container">
<div class="container">
<img :src="baseURL + '/' + commonData?.HbData?.[0].FPOSTERPICTURE" height="560" />
<img :src="baseURL + '/' + posterList?.[0].FPOSTERPICTURE" height="560" />
<div class="student">
<el-tabs v-model="activeName" class="student-tabs" stretch @tab-change="tabChange">
<el-tab-pane
......@@ -241,7 +241,7 @@
<script setup lang="ts">
import { baseURL } from '@/services'
import { getCommon } from '@/services/api/common'
import { getPoster } from '@/services/api/common'
import { getUserPostionList, getHotCompany } from '@/services/api/recruitmentManagement'
import { getPolicyList } from '@/services/api/policy'
import customPagination from '@/components/customPagination.vue'
......@@ -281,7 +281,7 @@ const state = reactive({
})
const loading = ref(true)
const commonData = ref()
const posterList = ref()
const userPostionList: any = ref([])
const policyList: any = ref([])
const hotCompanyList: any = ref([])
......@@ -390,9 +390,9 @@ watch(
)
const init = async () => {
const res: any = await getCommon({ pageIndex: 1, pageSize: 10, FormType: 'I' })
const res: any = await getPoster({ Type: 'H' })
if (res.code === 200) {
commonData.value = res.data
posterList.value = res.data || []
loading.value = false
}
}
......
......@@ -18,15 +18,22 @@
margin-right: 0;
}
}
.el-input {
:deep(.el-autocomplete) {
width: 869px;
height: 62px;
margin-bottom: 24px;
:deep(.el-input__wrapper) {
border-radius: 29px;
padding: 0 45px;
.el-input {
width: 848px;
height: 62px;
margin-bottom: 24px;
.el-input__wrapper {
border-radius: 29px;
padding: 0 45px;
}
}
}
.hot-position {
width: 1316px;
text-align: center;
......
......@@ -14,11 +14,17 @@
@see-more="seeMore(item.field)"
/>
</div>
<el-input v-model="searchValue" placeholder="搜索关键词" @change="search">
<el-autocomplete
v-model="searchValue"
value-key="postName"
:fetch-suggestions="querySearchAsync"
placeholder="搜索职位、公司"
@change="search"
>
<template #suffix>
<el-icon size="24" style="cursor: pointer" @click="search"><i-ep-Search /></el-icon>
</template>
</el-input>
</el-autocomplete>
<div class="hot-position">
<el-tabs v-model="activeName" class="hot-position-tabs" stretch @tab-change="handleChange">
<el-tab-pane
......@@ -143,6 +149,8 @@ const flexibleNameList = [
{ name: '新闻', field: 'XwData' }
]
let timeout: ReturnType<typeof setTimeout>
const flexibleChange = (row: any) => {
router.push({ path: '/commonDetail', query: { FID: row.FID, FormType: 'D', FTITLE: row.FTITLE } })
}
......@@ -170,6 +178,23 @@ const seeMore = (Type: string) => {
}
}
const querySearchAsync = async (queryString: string, cb: (arg: any) => void) => {
const res: any = await getPositionList({
obj: {
postName: searchValue.value
},
currentPage: 1,
pageSize: 10
})
if (res.code === 200) {
let results = res.data.obj || []
clearTimeout(timeout)
timeout = setTimeout(() => {
cb(results)
}, 500)
}
}
const handleChange = (name: number) => {
listQuery.obj.postName = tabsList[name].label
initPosition()
......@@ -201,7 +226,7 @@ const initFlexibleEmploymList = async (params: any) => {
paramsData.XwData.total = res.total
break
}
console.log(paramsData)
// console.log(paramsData)
}
}
const initPosition = async () => {
......
......@@ -88,7 +88,7 @@ const state = reactive({
loginForm: {
Phone: '18874693873',
Code: '3123',
Company: '货拉拉公司'
Company: '货拉拉科技'
},
loginRules: {
Phone: [
......@@ -113,6 +113,7 @@ const switchUsers = () => {
if (state.userType === '企业用户') state.userType = '个人用户'
else state.userType = '企业用户'
}
let timer: ReturnType<typeof setInterval>
const sendCode = () => {
formRef.value?.validateField(['Phone'], async (valid: boolean) => {
......@@ -120,13 +121,13 @@ const sendCode = () => {
// 发送验证码请求
const res: any = await getCode(state.loginForm.Phone)
if (res.code === 200) {
console.log(res)
// console.log(res)
state.EnCode = res.data
// 请求成功后将 sended 设为 true,按钮禁用,并显示倒计时
state.sended = true
state.buttonText = '已发送'
let countDown = 60
const timer = setInterval(() => {
timer = setInterval(() => {
if (countDown > 0) {
state.buttonText = `${countDown}s 后重试`
} else {
......@@ -193,7 +194,11 @@ const open = () => {
}
const handleClose = () => {
clearInterval(timer)
formRef.value?.resetFields()
loading.value = false
state.sended = false
state.buttonText = '获取验证码'
emits('update:show', false)
}
</script>
......
<template>
<div v-loading="loading" class="detail-container flx-center">
<div class="detail-container flx-center">
<div class="container">
<div class="detail-filter">
<div class="detail-header">
......@@ -184,6 +184,7 @@
<morePosition
v-if="positionList.length"
ref="morePositionRef"
v-loading="loading"
:positionList="positionList"
:queryList="queryList"
@current-change="currentChange"
......@@ -208,7 +209,7 @@ const route = useRoute()
const router = useRouter()
const morePositionRef = ref()
const mapRef = ref()
const loading = ref(false)
const loading = ref(true)
const expandShow = ref(false)
const businessShow = ref(true)
const activeName = ref(true)
......@@ -317,10 +318,12 @@ const initCompanyDetail = async () => {
}
const initCompanyPosition = async () => {
loading.value = true
const res: any = await getCompanyPosition(queryList.value)
if (res.code === 200) {
positionList.value = res.data || []
queryList.value.total = res.total
loading.value = false
// morePositionRef.value?.init()
}
}
......
......@@ -13,7 +13,7 @@
<div class="personal-info-bt">
<div class="personal-info-bt-item">
<div class="personal-info-label">求职状态</div>
<span>{{ personalInfo?.FDEPARTREMAIN }}</span>
<span>{{ selectDepartRemain }}</span>
</div>
<div class="personal-info-bt-item">
<div class="personal-info-label">已投递</div>
......@@ -33,13 +33,19 @@
<script setup lang="ts">
import { useUserInfoStore } from '@/stores/modules/userInfo'
import { useGlobalStore } from '@/stores/modules/global'
const personalInfo = computed(() => userInfoStore.getPersonalInfo)
import { jobStatus } from '../config'
const globalStore = useGlobalStore()
const userInfoStore = useUserInfoStore()
const router = useRouter()
const personalInfo = computed(() => userInfoStore.getPersonalInfo)
const selectDepartRemain = computed(() => {
let row = jobStatus.find((item: any) => item.value === personalInfo.value.FDEPARTREMAIN)
return row ? row.label : jobStatus[3].label
})
const toEditResume = () => {
router.push('/recruitmentManagement/editResume')
}
......
......@@ -152,14 +152,17 @@ const mapFlag = ref(false)
watch(
() => props.positionList,
() => {
mapFlag.value = true
mapFlag.value = false
setTimeout(() => {
if (props.positionList.length) {
activeName.value = props.positionList[0].FID
positionDetail.value = props.positionList[0]
mapRef.value?.initMap(props.positionList[0].FWORKPLACE)
mapFlag.value = true
setTimeout(() => {
activeName.value = props.positionList[0].FID
positionDetail.value = props.positionList[0]
mapRef.value?.initMap(props.positionList[0].FWORKPLACE)
}, 300)
}
}, 300)
}, 100)
},
{ immediate: true, deep: true }
)
......@@ -194,7 +197,7 @@ const currentChange = (pageIndex: number) => {
const submitResume = async () => {
const res: any = await sendResume({ JobID: positionDetail.value?.FID })
if (res.code === 200) {
console.log(res)
// console.log(res)
ElNotification.success({
title: '投递简历',
message: '投递成功'
......
......@@ -121,6 +121,10 @@
}}</span
>
</div>
<div v-show="item.FSchoolExperience_Tag" style="margin: 24px 0">
<span style="display: block; font-size: 18px; margin-bottom: 12px">在校经历:</span>
<pre>{{ item.FSchoolExperience_Tag }}</pre>
</div>
</div>
</div>
</div>
......
......@@ -120,8 +120,8 @@
style="padding: 14px 40px 14px 0; justify-content: center"
>
<!-- <div class="resume-btn flx-center">简历待定</div> -->
<div class="resume-btn flx-center" @click="talentPool('H', item.FID)">人才库</div>
<div class="resume-btn flx-center" @click="talentPool('G', item.FID)">人才储备</div>
<div class="resume-btn flx-center" @click="talentPool('G', item.FID)">人才库</div>
<div class="resume-btn flx-center" @click="talentPool('H', item.FID)">人才储备</div>
</div>
</div>
<customPagination
......@@ -221,7 +221,7 @@ const talentPool = async (Type: string, FID: number) => {
if (res.code === 200) {
ElNotification.success({
title: '添加',
message: Type === 'H' ? '添加人才库成功' : '添加人才储备成功'
message: Type === 'G' ? '添加人才库成功' : '添加人才储备成功'
})
}
}
......
......@@ -6,6 +6,13 @@
:label="item.status + ' ' + item.value"
:name="item.type"
>
<div v-if="index === 6" style="display: flex; justify-content: center">
<el-input v-model="searchValue" placeholder="搜索关键字" @change="search">
<template #suffix>
<el-icon size="24" style="cursor: pointer" @click="search"><i-ep-Search /></el-icon>
</template>
</el-input>
</div>
<div v-if="talentList.length">
<div v-for="col in talentList" :key="col.DeliverFID" class="tab-item">
<div class="tab-item-tp">
......@@ -36,29 +43,45 @@
</div>
<div class="tab-item-tp-rg">
<div class="flx-align-center">
<span class="info-label" @click="talentStatusChange('B', col.DeliverFID)"
<span
v-show="index < 1 || index == 6 || index === 7"
class="info-label"
@click="talentStatusChange('B', col.DeliverFID)"
>简历待定</span
>
<span class="info-label" @click="talentStatusChange('C', col.DeliverFID)"
<span
v-show="index < 2 || index == 6 || index === 7"
class="info-label"
@click="talentStatusChange('C', col.DeliverFID)"
>安排面试</span
>
<el-dropdown>
<el-dropdown v-show="index !== 5">
<span class="info-label">更多</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="talentStatusChange('D', col.DeliverFID)"
<el-dropdown-item
v-if="index < 3 || index === 6 || index === 7"
@click="talentStatusChange('D', col.DeliverFID)"
>已面试</el-dropdown-item
>
<el-dropdown-item @click="talentStatusChange('E', col.DeliverFID)"
<el-dropdown-item
v-if="index < 4"
@click="talentStatusChange('E', col.DeliverFID)"
>已录用</el-dropdown-item
>
<el-dropdown-item @click="talentStatusChange('F', col.DeliverFID)"
<el-dropdown-item
v-if="index < 5"
@click="talentStatusChange('F', col.DeliverFID)"
>已入职</el-dropdown-item
>
<el-dropdown-item @click="talentStatusChange('G', col.DeliverFID)"
>人才库</el-dropdown-item
<el-dropdown-item
v-if="index < 6"
@click="talentStatusChange('G', col.DeliverFID)"
>人才库{{ index }}</el-dropdown-item
>
<el-dropdown-item @click="talentStatusChange('H', col.DeliverFID)"
<el-dropdown-item
v-if="index < 7"
@click="talentStatusChange('H', col.DeliverFID)"
>人才储备</el-dropdown-item
>
</el-dropdown-menu>
......@@ -117,6 +140,7 @@ import {
import customPagination from '@/components/customPagination.vue'
import previewResume from './previewResume.vue'
const searchValue = ref('')
const activeName = ref('A')
const loading = ref(true)
const previewResumeShow = ref(false)
......@@ -156,6 +180,8 @@ const handleClick = (tab: any) => {
init()
}
const search = () => {}
const talentStatusChange = async (Type: string, DeliverFID: number) => {
const data = {
DeliverFID, //投递记录id
......@@ -268,4 +294,14 @@ defineExpose({
outline: 0 !important;
}
}
:deep(.el-input) {
width: 848px;
height: 62px;
margin-bottom: 24px;
.el-input__wrapper {
border-radius: 29px;
padding: 0 45px;
}
}
</style>
......@@ -109,6 +109,7 @@
<script setup lang="ts">
import { updateResume } from '@/services/api/recruitmentManagement'
import { jobStatus } from '../config'
import { useUserInfoStore } from '@/stores/modules/userInfo'
defineProps({
show: {
......@@ -119,6 +120,8 @@ defineProps({
const emits = defineEmits(['update:show', 'init'])
const userInfoStore = useUserInfoStore()
const form: any = ref({
NeedUpDateFields: [
'FName',
......@@ -185,6 +188,12 @@ const onConfirm = async () => {
if (valid) {
const res: any = await updateResume({ Parmeter: form.value })
if (res.code === 200) {
const { Jbdata } = res.data
userInfoStore.personalInfo.AGE = Jbdata.Age
userInfoStore.personalInfo.FEDUCATIONBACKGROUND = Jbdata.FEducationBackground
userInfoStore.personalInfo.FNAME = Jbdata.FName
userInfoStore.personalInfo.FGOWORKCOUNT = Jbdata.FGoWorkCount
userInfoStore.personalInfo.FDEPARTREMAIN = Jbdata.FDepartRemain
ElNotification.success({
title: '更新个人信息',
message: '更新成功'
......
......@@ -44,13 +44,7 @@
<el-row>
<el-col class="user-label flx-align-center" :span="8">
<img src="@/assets/img/icon-resume8.png" width="16" />
<span>{{
state.resumeData?.Jbdata?.FGoWorkCount
? state.resumeData?.Jbdata?.FGoWorkCount < 10
? `工作${state.resumeData?.Jbdata?.FGoWorkCount}年`
: '10年以上经验'
: ''
}}</span>
<span>{{ experience }}</span>
</el-col>
<el-col class="user-label flx-align-center" :span="8">
<img src="@/assets/img/icon-resume.png" width="16" />
......@@ -222,7 +216,11 @@
<span>{{ item.FPosition }}</span>
</div>
<div>
<span :id="'work-date' + index" style="color: #666666">{{ experience }}</span>
<span :id="'work-date' + index" style="color: #666666"
>{{ dayjs(item.FStartDate).format('YYYY.MM') }}-{{
dayjs(item.FEndDate).format('YYYY.MM')
}}</span
>
<div
:id="'edit-work' + index"
class="flx-align-center"
......@@ -291,7 +289,7 @@
<div>
<span :id="'project-date' + index" style="color: #666666"
>{{ dayjs(item.FProjectStartDate).format('YYYY.MM') }}-{{
dayjs(item.FProjectStartDate).format('YYYY.MM')
dayjs(item.FProjectEndDate).format('YYYY.MM')
}}</span
>
<div
......@@ -795,7 +793,7 @@ const userInfoClick = () => {
...state.resumeData?.Jbdata,
FEmail: FEmail.replace(/(\d{2})\d+(\d{3}@)/, '$1****$2'),
FUserPhone: FUserPhone.substring(0, 3) + '****' + FUserPhone.substring(7),
FWechat: FWechat.substring(0, 3) + '****'
FWechat: FWechat?.trim() ? FWechat.substring(0, 3) + '****' : ''
}
state.userInfoShow = true
}
......
......@@ -41,7 +41,7 @@
</div>
</div>
<div style="width: 391px">
<p class="company-detail">{{ userInfoStore.companyInfo?.FCOMPANYPROFILE }}</p>
<pre class="company-detail">{{ userInfoStore.companyInfo?.FCOMPANYPROFILE }}</pre>
</div>
<div class="flx-align-center">
<span class="btn" @click="toEditCompany">编辑公司信息</span>
......
<template>
<div class="main-container">
<div v-loading="loading" class="main-container">
<el-carousel height="560px" style="width: 100%">
<el-carousel-item v-for="item in posterList" :key="item">
<img :src="baseURL + '/' + item.FPOSTERPICTURE" style="width: 100%; height: 100%" />
</el-carousel-item>
</el-carousel>
<autocomplete
style="margin: 25px 0"
:list="querySearch"
v-model:list="querySearch"
v-model:valueKey="valueKey"
placeholder="搜索职位、公司"
:selectOptions="[
{ label: '找工作', value: '1' },
{ label: '找企业', value: '2' }
]"
style="margin: 25px 0"
@search-change="searchChange"
@query-search-async="querySearchAsync"
/>
......@@ -67,6 +72,8 @@
v-for="(item, index) in streetList"
:key="index"
:src="baseURL + '/' + item.FCOVERPICTURE"
style="cursor: pointer"
@click="toStreet(item)"
/>
</div>
</div>
......@@ -196,6 +203,7 @@ import {
import { getStreet } from '@/services/api/streetOfficeSpecialTopic'
import { getPoster } from '@/services/api/common'
import { useUserInfoStore } from '@/stores/modules/userInfo'
import { getCompanyList } from '@/services/api/recruitmentManagement'
import autocomplete from '@/components/autocomplete.vue'
const router = useRouter()
......@@ -203,11 +211,13 @@ const userInfoStore = useUserInfoStore()
const menuList = ref([] as any)
const FDATAVALUE = ref()
const loading = ref(true)
const streetList = ref()
const posterList: any = ref([])
const hotPositionList: any = ref([])
const hotCompanyList: any = ref([])
const querySearch = ref([])
const valueKey = ref('JobName')
const tabsList = [
{ label: '市场', name: 'LevelJob_18' },
......@@ -239,19 +249,32 @@ const handleClick = (tab: any, e: any) => {
initHotPosition()
}
const querySearchAsync = async (searchVal: string) => {
const res: any = await getUserPostionList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
const querySearchAsync = async (searchVal: string, selectType: string) => {
if (selectType === '1') {
const res: any = await getUserPostionList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
}
} else {
const res: any = await getCompanyList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
}
}
}
const searchChange = (searchValue: string) => {
router.push({ path: '/recruitmentManagement/personal', query: { searchValue } })
const searchChange = (searchValue: string, selectType: string) => {
if (selectType === '1')
router.push({ path: '/recruitmentManagement/personal', query: { searchValue } })
else router.push({ path: '/recruitmentManagement/seeMoreCompany', query: { searchValue } })
}
const toSeeMorePosition = () => {
......@@ -262,6 +285,10 @@ const toSeeMoreCompany = () => {
router.push({ path: '/recruitmentManagement/seeMoreCompany' })
}
const toStreet = (row: any) => {
router.push({ path: '/streetOfficeSpecialTopic', query: { FID: row.FID } })
}
const subMenuList = computed(() => {
if (!FDATAVALUE.value) return []
const list = JSON.parse(JSON.stringify(menuList.value)) || []
......@@ -327,7 +354,7 @@ const init = async () => {
posterList.value = poster.data || []
}
await initHotPosition()
await initHotCompany()
await initHotCompany().then(() => (loading.value = false))
}
onMounted(() => {
......
......@@ -5,9 +5,10 @@
<div class="personal-header">
<autocomplete
ref="autocompleteRef"
style="margin-bottom: 22px"
:list="querySearch"
v-model:list="querySearch"
v-model:valueKey="valueKey"
placeholder="搜索关键字"
style="margin-bottom: 22px"
@search-change="searchChange"
@query-search-async="querySearchAsync"
/>
......@@ -121,7 +122,11 @@
import { filterList } from './config/index'
import { getStreet } from '@/services/api/streetOfficeSpecialTopic'
import { getInformation } from '@/services/api/common'
import { getUserPostionList, sendResume } from '@/services/api/recruitmentManagement'
import {
getUserPostionList,
sendResume,
getCompanyList
} from '@/services/api/recruitmentManagement'
import { baseURL } from '@/services'
import customSelect from '@/components/customSelect.vue'
import info from './components/info.vue'
......@@ -136,6 +141,7 @@ const filterLoading = ref(true)
const streetList = ref([] as any)
const informationData = ref()
const querySearch = ref([])
const valueKey = ref('JobName')
const queryList = ref({
pageIndex: 1,
......@@ -155,20 +161,33 @@ const total = ref(0)
const userPostionList: any = ref([])
const querySearchAsync = async (searchVal: string) => {
const res: any = await getUserPostionList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
const querySearchAsync = async (searchVal: string, selectType: string) => {
if (selectType === '1') {
const res: any = await getUserPostionList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
}
} else {
const res: any = await getCompanyList({
pageIndex: 1,
pageSize: 10,
Filter: { FNAME: searchVal }
})
if (res.code === 200) {
querySearch.value = res.data || []
}
}
}
const searchChange = (searchValue: string) => {
queryList.value.Filter.FNAME = searchValue
initUserPostionList()
const searchChange = (searchValue: string, selectType: string) => {
if (selectType === '1') {
queryList.value.Filter.FNAME = searchValue
initUserPostionList()
} else router.push({ path: '/recruitmentManagement/seeMoreCompany', query: { searchValue } })
}
const streetChange = (index: number) => {
......
......@@ -202,7 +202,7 @@ const init = async () => {
const res: any = await getUserPostionDetail({ FID: route.query.FID })
if (res.code === 200) {
detailData.value = res.data
console.log(detailData.value?.FWORKPLACE)
// console.log(detailData.value?.FWORKPLACE)
mapRef.value.initMap(detailData.value?.FWORKPLACE)
loading.value = false
......
......@@ -87,7 +87,7 @@
</div>
</div>
<div v-if="item.JobS && item.JobS?.length" class="company-bt-btn">
<span @click="toSeeMorePosition">查看更多职位</span>
<span @click="toCompanyDetail(item.FirmFID)">点击查看更多</span>
</div>
</div>
</div>
......@@ -107,10 +107,11 @@
<script setup lang="ts">
import { getInformation } from '@/services/api/common'
import { getStreet } from '@/services/api/streetOfficeSpecialTopic'
import { genCompanyList } from '@/services/api/recruitmentManagement'
import { getCompanyList } from '@/services/api/recruitmentManagement'
import { baseURL } from '@/services'
import customPagination from '@/components/customPagination.vue'
const route = useRoute()
const router = useRouter()
const queryList = ref({
......@@ -192,7 +193,7 @@ const clear = () => {
}
const querySearchAsync = async (queryString: string, cb: (arg: any) => void) => {
const res: any = await genCompanyList({
const res: any = await getCompanyList({
pageIndex: 1,
pageSize: 10,
Filter: {
......@@ -210,7 +211,7 @@ const querySearchAsync = async (queryString: string, cb: (arg: any) => void) =>
const initCompanyList = async () => {
loading.value = true
const res: any = await genCompanyList(queryList.value)
const res: any = await getCompanyList(queryList.value)
if (res.code === 200) {
companyList.value = res.data || []
queryList.value.total = res.total
......@@ -219,6 +220,8 @@ const initCompanyList = async () => {
}
const init = async () => {
const { searchValue } = route.query
if (searchValue) queryList.value.Filter.FNAME = searchValue
const res: any = await getInformation({
AuxiliaryS: ['Trade', 'Member', 'Financing']
})
......
......@@ -23,7 +23,7 @@
{{ item.FDATAVALUE }}
</div>
<div
v-show="expectedPositionList.length > 3"
v-show="!expectedPositionList.length || expectedPositionList.length > 3"
class="flx-align-center"
style="padding-left: 24px; border-left: 1px solid #cccccc"
@click="toEditResume"
......
......@@ -87,16 +87,17 @@
}
.company-detail {
width: 391px;
height: 243px;
height: 245px;
font-size: 14px;
font-weight: 400;
color: #666666;
margin: 24px 0 20px;
display: -webkit-box;
-webkit-line-clamp: 15;
-webkit-line-clamp: 13;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
white-space: pre-wrap;
}
.btn {
display: block;
......
<template>
<div class="container">
<div class="header">
<div style="width: 1316px; justify-content: space-between" class="flx-align-center">
<div class="flx-align-center">
<span class="title">东西部协作就业平台</span>
<span class="link" @click="router.push('/')">首页</span>
</div>
<span class="link" @click="show = true">登录/注册</span>
</div>
</div>
</div>
<loginVue v-model:show="show" />
</template>
<script lang="ts" setup>
import loginVue from '@/views/login/index.vue'
const router = useRouter()
const show = ref(false)
</script>
<style lang="scss" scoped>
.container {
// display: flex;
// flex-direction: column;
// align-items: center;
.header {
height: 80px;
background: #022756;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
.title {
height: 42px;
font-size: 28px;
font-weight: 500;
color: #ffffff;
margin-right: 50px;
}
.link {
cursor: pointer;
color: #177cfa;
}
}
}
</style>
......@@ -6,7 +6,13 @@
<div class="special-title nowrap-ellipsis" :title="item.FNAME">{{ item.FNAME }}</div>
<div class="special-detail">{{ item.FSUBTITLE }}</div>
<div class="flx-justify-between">
<span v-show="!item.FSTATE" class="special-tag" style="cursor: pointer">进入专题</span>
<span
v-show="!item.FSTATE"
class="special-tag"
style="cursor: pointer"
@click="toSpecialHome"
>进入专题</span
>
<span v-show="item.FSTATE" class="special-tag" style="color: #666666; background: #f8f8f8"
>专题已结束</span
>
......@@ -25,10 +31,15 @@
import { baseURL } from '@/services'
import { getSpecialRecruitment } from '@/services/api/specialRecruitment'
const router = useRouter()
const queryList = ref({ pageIndex: 1, pageSize: 10 })
const specialRecruitmentData = ref()
const loading = ref(true)
const toSpecialHome = () => {
router.push('/specialRecruitment/home')
}
const init = async () => {
const res: any = await getSpecialRecruitment(queryList.value)
if (res.code === 200) {
......
......@@ -120,7 +120,7 @@
</div>
</div>
</div>
<span class="n-more">查看更多</span>
<span class="n-more" @click="toSeeMoreCompany">查看更多</span>
</div>
</div>
</div>
......@@ -188,6 +188,10 @@ const toCompanyDetail = (FID: number) => {
router.push({ path: '/recruitmentManagement/companyDetail', query: { FID } })
}
const toSeeMoreCompany = () => {
router.push({ path: '/recruitmentManagement/seeMoreCompany' })
}
const change = (FID: string) => {
streetActive.value = FID
initStreetPosition()
......
......@@ -75,8 +75,8 @@ export default defineConfig({
// 设置代理
proxy: {
'/K3Cloud': {
// target: 'http://192.168.1.168',
target: 'http://14.29.230.199:84/',
target: 'http://192.168.1.168',
// target: 'http://14.29.230.199:84/',
changeOrigin: true
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论