Browse Source

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 7 months ago
parent
commit
03696ab1f2

+ 3 - 3
src/components/Enterprise/components/positions.vue

@@ -11,9 +11,9 @@
         >{{ k.id === -1 ? `${k.label}` : `${k.label} (${k.number})` }}</span>
       </div>
     </div>
-    <div class="d-flex mt-3">
+    <div class="d-flex mt-1">
       <conditionFilter v-if="show" ref="conditionFilterRef" :showFilterList="showFilterList" @reset="handleReset" @change="handleQueryChange"></conditionFilter>
-      <div style="width: 300px;">
+      <div style="width: 300px;" class="mt-2">
         <v-text-field
           v-model="query.content"
           variant="outlined" 
@@ -121,7 +121,7 @@ getDictData()
 
 const show = ref(false)
 const showFilterList = ref([
-  { key: 'expType', isSingle: false },
+  { key: 'expType', isSingle: true },
   { key: 'eduType', isSingle: true },
   { key: 'payScope', isSingle: true },
 ])

+ 1 - 1
src/components/Upload/img.vue

@@ -41,7 +41,7 @@ const src = ref('')
 
 watch(() => props.value, (newVal) => {
   src.value = newVal
-})
+}, { immediate: true }, { deep: true })
 
 // 选择文件
 const fileInput = ref()

+ 4 - 0
src/styles/index.scss

@@ -72,6 +72,10 @@
   cursor:pointer;
   // text-decoration: underline;
 }
+.defaultLink-i {
+  color:#008978 !important;
+  cursor:pointer !important;
+}
 
 // 高亮
 .default-active {

+ 4 - 4
src/views/recruit/entRegister/inReview.vue

@@ -1,7 +1,7 @@
 <!-- 注册企业进度 -->
 <template>
   <div class="my-5">
-    <div :class="isMobile? 'mobileBox' : 'default-width'">
+    <div v-if="!isMobile">
       <v-btn v-if="query?.noLogin" class="my-2" color="primary" variant="text" size="large" @click="router.push('/login')">{{ `<< 回到登录页` }}</v-btn>
       <v-btn v-else class="my-2" color="primary" variant="text" size="large" @click="router.push('/recruitHome')">{{ `<< 回到首页` }}</v-btn>
     </div>
@@ -44,9 +44,9 @@
         <div v-else-if="applyInfo.status === '1'">
           <span>审核通过</span>
         </div>
-        <div class="text-center" v-if="!isMobile">
-          <v-btn class="mt-16 buttons" color="primary" to="/recruitHome">{{ $t('common.toHome') }}</v-btn>
-          <v-btn v-if="applyInfo.status === '2'" class="mt-16 ml-12 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
+        <div class="text-center">
+          <v-btn v-if="!isMobile" class="mt-16 mr-12 buttons" color="primary" to="/recruitHome">{{ $t('common.toHome') }}</v-btn>
+          <v-btn v-if="applyInfo.status === '2'" class="mt-16 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
         </div>
       </div>
     </v-card>

+ 11 - 10
src/views/recruit/entRegister/register.vue

@@ -2,7 +2,7 @@
   <div class="login-box py-5">
     <v-card class="pa-5" :class="isMobile? 'mobileBox' : 'default-width'" :elevation="isMobile? '0' : '3'">
       <!-- 标题 -->
-      <div class="mt-3">
+      <div class="mt-3" v-if="!isMobile">
         <v-btn v-if="pageType !== 'noLoginToRegister'" color="primary" variant="text" @click="router.push('/recruitHome')">{{ `<< 回到首页` }}</v-btn>
         <div v-else style="height: 30px;"></div>
       </div>
@@ -13,7 +13,7 @@
           <span>原因:{{ failureReason }}</span>
         </div>
         <!-- 标题 -->
-        <div class="mb-10 mt-n8" style="font-size: 22px; font-weight: bold; text-align: center;">{{ $t('enterprise.registeringNewEnterprise') }}</div>
+        <div class="mb-10" :class="isMobile ? 'mt-0': 'mt-n8'" style="font-size: 22px; font-weight: bold; text-align: center;">{{ $t('enterprise.registeringNewEnterprise') }}</div>
         <CtForm ref="CtFormRef" :items="formItems" style="width: 100%;">
           <template #businessLicense>
             <!-- 上传照片 -->
@@ -26,8 +26,8 @@
               <div class="file-box">
                 <Img 
                   class="mt-3" 
-                  v-model="licenseUrl" 
                   tips="上传图片" 
+                  :value="licenseUrl" 
                   :showSnackbar="false" 
                   @imgClick="showPreview = !showPreview" 
                   :showCursor="true" 
@@ -149,21 +149,21 @@ const formItems = ref({
     {
       type: 'text',
       key: 'contactName',
-      value: '林小姐',
+      value: '',
       label: '联系人姓名 *',
       rules: [v => !!v || '请输入联系人姓名']
     },
     {
       type: 'phoneNumber',
       key: 'phone',
-      value: '13229740091',
+      value: '',
       label: '联系电话 *',
       rules: [v => !!v || '请输入联系电话']
     },
     {
       type: 'text',
       key: 'email',
-      value: email ? email : 'lin@qq.com',
+      value: email ? email : '',
       label: '企业邮箱 *',
       rules: [
         value => {
@@ -179,7 +179,7 @@ const formItems = ref({
     {
       type: 'password',
       key: 'password',
-      value: 'Citu123456',
+      value: '',
       appendInnerIcon: 'mdi-eye-off-outline',
       label: '账户登录密码 *',
       placeholder: '请输入账户登录密码',
@@ -198,7 +198,7 @@ const formItems = ref({
     {
       type: 'password',
       key: 'passwordConfirm',
-      value: 'Citu123456',
+      value: '',
       appendInnerIcon: 'mdi-eye-off-outline',
       label: '请再次输入账户登录密码 *',
       placeholder: '请再次输入账户登录密码',
@@ -290,11 +290,11 @@ if (info && Object.keys(info).length && info.status === '2') {
   failureReason.value = info?.reason || ''
   licenseUrl.value = info?.businessLicenseUrl
   // prepareValue.value = info?.prepare || false
-  isPrepareChange()
   formItems.value.options.forEach(e => {
     if (e.key === 'passwordConfirm') e.value = info.password
     else e.value = info[e.key]
   })
+  isPrepareChange()
 }
 
 </script>
@@ -352,7 +352,8 @@ if (info && Object.keys(info).length && info.status === '2') {
   margin-left: 32px;
 }
 .mobileBox {
-  width: 100vw;
+  width: calc(100vw - 16px);
+  margin: 0 auto;
   .resume-header {
     margin-bottom: 12px;
   }

+ 3 - 1
src/views/recruit/personal/position/components/conditionFilter/commonPath.vue

@@ -90,8 +90,10 @@ const handle = (item, value) => {
     if (selectIdArr.value.includes(value)) {
       selectIdArr.value = selectIdArr.value.filter(i => i !== value)
     } else {
+      //
       if (props.idName === 'expType') selectIdArr.value = value === '2' ? [value] : (selectIdArr.value.push(value) && selectIdArr.value.filter(i => i !== '2')) // 选中经验不限时清空其它选中项,选中其他的咬去掉经验不限
-      else if (props.isSingle) selectIdArr.value = [value] // 单选
+      //
+      if (props.isSingle) selectIdArr.value = [value] // 单选
       else selectIdArr.value.push(value)
     }
   }

+ 0 - 3
src/views/recruit/personal/recommend/components/item.vue → src/views/recruit/personal/recommend/components/positionList.vue

@@ -83,9 +83,6 @@ const handleClick = (item, index) => {
   list.value.forEach((e, i) => e.active = i === index )
   emit('selectChange', item)
 }
-// const handleEnterprise = (item) => {
-//   window.open(`/recruit/personal/company/details/${item.id}?key=briefIntroduction`)
-// }
 </script>
 
 <style lang="scss" scoped>

+ 31 - 35
src/views/recruit/personal/recommend/index.vue

@@ -3,20 +3,21 @@
     <div style="background-color: #fff; position: sticky;">
       <buttons :current="0"></buttons>
     </div>
-    <Empty v-if="!items.length" message="暂无职位推荐,请前往职位查看其他职位~" class="mt-3 py-15"></Empty>
+    <Empty v-if="!items.length" :message="loadingType === 1 ? loadingText[loadingType] : '暂无职位推荐,请前往职位查看其他职位~'" class="mt-3 py-15"></Empty>
     <template v-else>
       <div class="d-flex">
         <div class="mt-3">
-          <PositionList v-if="items.length" :items="items" @selectChange="selectChange"></PositionList>
+          <positionList :items="items" @selectChange="selectChange"></positionList>
+          <div :class="['loading', {'defaultLink-i': !loadingType}]" @click="handleChangePage">{{ loadingText[loadingType] }}</div>
         </div>
         <div class="position-details ml-1" style="flex: 1; overflow: hidden;">
           <div class="position-content">
-            <recommendDetails 
+            <positionItemDetail 
               v-if="showRecommendDetails && jobId"
               :defaultWidth="false"
               :showContentRight="false"
               :propJobId="jobId"
-            ></recommendDetails>
+            ></positionItemDetail>
           </div>
         </div>
       </div>
@@ -31,8 +32,8 @@ import { ref, reactive, nextTick } from 'vue'
 // import { getJobAdvertisedSearch } from '@/api/position'
 import { getPromotedPosition } from '@/api/position'
 import { dealDictArrayData } from '@/utils/position'
-import PositionList from './components/item'
-import recommendDetails from '@/views/recruit/personal/position/components/details.vue'
+import positionList from './components/positionList'
+import positionItemDetail from '@/views/recruit/personal/position/components/details.vue'
 
 const jobId = ref('')
 const showRecommendDetails = ref(false)
@@ -46,43 +47,32 @@ const query = reactive({
   pageNum: 1,
   pageSize: 10
 })
+
 const items = ref([])
+const loadingText = ['加载更多', '加载中...', '没有更多数据了']
+const loadingType = ref(0)
 
 const getList = async () => {
+  loadingType.value = 1
   const { list } = await getPromotedPosition(query)
-  if (!list.length) return items.value = []
-  items.value = list.map(e=> {
-    const id = e?.id || ''
-    if (!id) return ''
-    jobId.value = id
-  })
-  // 处理数据
-  items.value = dealDictArrayData([], list)
-  if (items.value?.length) showRecommendDetails.value = true
-  else {
-    // if (query.pageNum> 3) return
-    // query.pageNum++
-    // getList()
+  if (list.length) {
+    let data = dealDictArrayData([], list) // 处理数据
+    items.value = items.value.concat(data)
+    if (query.pageNum === 1) jobId.value = items.value[0].id
+    if (jobId.value) showRecommendDetails.value = true
+    loadingType.value = list.length  === query.pageSize ? 0 : 2
+  } else {
+    loadingType.value = 2
   }
 }
 getList()
 
-// const getData = async () => {
-//   const { list } = await getJobAdvertisedSearch(query)
-//   if (!list.length) return
-//   items.value = list.map((e, index) => {
-//     const id = e?.job?.id || ''
-//     if (!id) return ''
-//     jobId.value = id
-//     showRecommendDetails.value = true
-//     e.job = { ...e.job, ...dealDictObjData({}, e.job) }
-//     e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise) }
-//     e.active = index ? false : true
-//     return e
-//   }).filter(Boolean)
-//   console.log('personalPositionRecommend-data', items.value)
-// }
-// getData()
+const handleChangePage = () => {
+  if (loadingType.value) return
+  // 加载更多
+  query.pageNum++
+  getList()
+}
 
 </script>
 
@@ -103,6 +93,12 @@ getList()
     overflow-y: auto;
   }
 }
+.loading {
+  margin-top: 8px;
+  text-align: center;
+  font-size: 13px;
+  color: gray;
+}
 ::-webkit-scrollbar {
   width: 4px;
   height: 10px;

+ 3 - 2
src/views/register/company.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="box">
+  <div class="box" style="overflow-x: hidden;">
     <PhonePage v-if="!valid" :isCompany="true" @success="handleValidate" :isLogin="query.login ? true : false"></PhonePage>
   </div>
 </template>
@@ -24,10 +24,11 @@ const handleValidate = async () => {
   } 
   // 查看用户是否有在申请中的数据
   const data = await getUserRegisterEnterpriseApply()
-  const bool = data && Object.keys(data).length // 已经有数据说明已经申请过了
+  const bool = data && Object.keys(data).length && data.status !== '1' // 已经有数据说明已经申请过了 且申请状态如果为已通过,则跳转到注册页面让用户可以注册新的企业
   const path = bool ? '/recruit/entRegister/inReview' : '/recruit/entRegister'
   router.push({ path, query: { type: 'noLoginToRegister' } })
 }
+// handleValidate() // 测试
 
 </script>