Переглянути джерело

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

lifanagju_citu 2 місяців тому
батько
коміт
caf7619039
31 змінених файлів з 129 додано та 59 видалено
  1. 3 0
      components.d.ts
  2. 0 0
      src/api/mall1.js
  3. 2 1
      src/components/CtFilter/index.vue
  4. 32 11
      src/layout/personal/navBar.vue
  5. 1 0
      src/plugins/dialogExtend/components/necessaryInfoDialog.vue
  6. 1 1
      src/router/modules/recruit.js
  7. 6 11
      src/store/user.js
  8. 1 1
      src/version.js
  9. 2 1
      src/views/flame/index.vue
  10. 0 0
      src/views/mall1/components/table.vue
  11. 1 1
      src/views/mall1/exchange.vue
  12. 1 1
      src/views/mall1/exchangeRecords.vue
  13. 0 0
      src/views/mall1/index.vue
  14. 0 0
      src/views/mall1/purchasePackage/components/packageList.js
  15. 0 0
      src/views/mall1/purchasePackage/components/packageList.vue
  16. 0 0
      src/views/mall1/purchasePackage/index.vue
  17. 8 1
      src/views/recruit/entRegister/register.vue
  18. 2 2
      src/views/recruit/enterprise/resume/components/table.vue
  19. 8 1
      src/views/recruit/enterprise/search/recommend/index.vue
  20. 7 4
      src/views/recruit/enterprise/student/InternshipSituation/index.vue
  21. 1 1
      src/views/recruit/personal/PersonalCenter/resume/online/components/selfEvaluation.vue
  22. 2 1
      src/views/recruit/personal/PersonalCenter/student/information/index.vue
  23. 3 2
      src/views/recruit/personal/PersonalCenter/student/intershipCompany/index.vue
  24. 1 0
      src/views/recruit/personal/components/studentDeliveryForm.vue
  25. 2 2
      src/views/recruit/personal/position/components/details.vue
  26. 1 0
      src/views/recruit/teacher/organization/index.vue
  27. 12 3
      src/views/recruit/teacher/studentList/index.vue
  28. 1 1
      src/views/register/person.vue
  29. 0 6
      src/views/register/school.vue
  30. 1 1
      src/views/register/schoolForm.vue
  31. 30 6
      src/views/register/schoolInReview.vue

+ 3 - 0
components.d.ts

@@ -73,4 +73,7 @@ declare module 'vue' {
     VerifySlide: typeof import('./src/components/Verifition/Verify/VerifySlide.vue')['default']
     WangEditor: typeof import('./src/components/FormUI/wangEditor/index.vue')['default']
   }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+  }
 }

+ 0 - 0
src/api/mall copy.js → src/api/mall1.js


+ 2 - 1
src/components/CtFilter/index.vue

@@ -21,7 +21,8 @@
 					<div class="pa-3">
 						<v-btn color="primary" class="elevation-5 half-button" @click="search">查 询</v-btn>
             <v-btn color="primary" variant="outlined" v-if="showResetBtn" class="elevation-5 half-button ml-3" @click="reset">重 置</v-btn>
-					</div>
+            <slot name="appendBtn"></slot>
+          </div>
 				</template>
 				<slot name="btn"></slot>
 			</div>

+ 32 - 11
src/layout/personal/navBar.vue

@@ -38,14 +38,13 @@
         
         <div class="d-flex" style="height: 50px;">
           <div class="btns d-flex align-center" v-if="!isLogin && showLoginBtn">
-            <v-btn color="primary" style="color: #fff !important; background-color: #00B760;" @click="handleLogin">
-              {{ route.path === '/flame' ? '老师登录/注册' : '登录/注册' }}
-            </v-btn>
+            <v-btn color="primary" style="color: #fff !important; background-color: #00B760;" to="/login">{{ t('login.loginOrRegister') }}</v-btn>
           </div>
           
           <!-- 头像用户名 -->
           <div class="d-flex align-center color-333" v-if="isLogin">
-            <span class="cursor-pointer mr-5 commonHover" @click="handleSwitch">我要招聘</span>
+            <span class="cursor-pointer mr-5 commonHover" v-if="showTeacherLogin" @click="handleSwitchTeacher">切换为老师</span>
+            <span class="cursor-pointer mr-5 commonHover" v-else @click="handleSwitchEnterprise">我要招聘</span>
             <span class="cursor-pointer commonHover" @click="router.push({ path: paths[6] })">
               <span>
                 现金:{{ userAccount?.balance && userAccount?.balance > 0 ? (userAccount?.balance / 100.0).toFixed(2) : 0 }}
@@ -138,6 +137,7 @@ import MessageNotification from '../message.vue'
 import { getUserAvatar } from '@/utils/avatar'
 import defineListPage from '@/views/entrances/navBar/components/defineListPage'
 import { formatName } from '@/utils/getText'
+import { getSchoolInformation } from '@/api/school'
 
 defineOptions({ name: 'personal-navbar' })
 
@@ -153,10 +153,23 @@ defineProps({
 })
 
 const showBall = ref(false)
+const showTeacherLogin = ref(false)
+
+// 获取老师注册信息
+const schoolInfo = ref({})
+const getSchoolInfo = async () => {
+  const data = await getSchoolInformation()
+  if (data && Object.keys(data).length > 0) {
+    schoolInfo.value = data
+    showTeacherLogin.value = true
+  }
+}
 
-onMounted(() => {
+onMounted(async () => {
   if (getToken()) {
     showBall.value = true
+
+    await getSchoolInfo()
   }
 })
 
@@ -225,7 +238,7 @@ const show = ref(false)
 const radios = ref(null)
 const enterpriseList = ref([])
 // 切换为招聘者
-const handleSwitch = async () => {
+const handleSwitchEnterprise = async () => {
   await getApplyInfo() // 查询申请信息(注册进度)
   const data = await getUserBindEnterpriseList() // 申请通过才有数据,否则空数组
   enterpriseList.value = data || []
@@ -267,6 +280,19 @@ const newRegistering = () => {
   router.replace({ path })
 }
 
+// 跳转老师页面
+const statusList = [
+  { status: '0', path: '/register/school/inReview', key: 'registerSchoolInfo' }, // 审核中
+  { status: '1', path: '/recruit/teacher/studentList/index', key: 'schoolInfo' }, // 审核通过
+  { status: '2', path: '/register/school/inReview', key: 'registerSchoolInfo' }, // 审核不通过
+]
+const handleSwitchTeacher = () => {
+  const obj = statusList.find(item => item.status === schoolInfo.value?.authStatus)
+  if (!obj || !schoolInfo.value) return
+  localStorage.setItem(obj.key, JSON.stringify(schoolInfo.value))
+  router.push({ path: obj.path })
+}
+
 const handleToPersonalCenter = () => {
   router.push({ path: paths[5] })
 }
@@ -305,11 +331,6 @@ userStore.$subscribe((mutation, state) => {
   updatePage()
 })
 
-const handleLogin = () => {
-  const path = route.path === '/flame' ? '/flameLogin' : '/login'
-  router.push(path)
-}
-
 // 语言切换
 // const handleChangeLocale = (item) => {
 //   localeStore.setCurrentLocale(item)

+ 1 - 0
src/plugins/dialogExtend/components/necessaryInfoDialog.vue

@@ -89,6 +89,7 @@ const simpleInfoSubmit = async () => {
     dialog.value = false
     overlay.value = false
     props.sure()
+    if (isStudent.value) router.push('/recruit/personal/personalCenter/student/information')
   } catch (error) {
     console.error('error', error)
   }

+ 1 - 1
src/router/modules/recruit.js

@@ -103,7 +103,7 @@ const recruit = [
     children: [
       {
         path: '/pointsExchange',
-        component: () => import('@/views/mallCopy/index.vue'),
+        component: () => import('@/views/mall1/index.vue'),
         name: 'pointsExchange',
         meta: {
           title: '门墩儿商城'

+ 6 - 11
src/store/user.js

@@ -268,6 +268,7 @@ export const useUserStore = defineStore('user',
         const data = await getStudentInfo()
         this.studentInfo = data
         localStorage.setItem('studentInfo', data ? JSON.stringify(data) : '{}')
+        router.push('/recruit/personal/personalCenter/student/information')
       },
 
       // 获取学校基本信息
@@ -280,23 +281,17 @@ export const useUserStore = defineStore('user',
         if (!isRegister) return
 
         if (!data || !Object.keys(data).length) {
-          console.log('没有注册过,直接跳转到学校注册页面')
+          // console.log('没有注册过,直接跳转到学校注册页面')
           router.push({ path: '/register/schoolIndex' })
         }
-        else if (data?.authStatus === '0') {
-          console.log('审核中,等待审核')
+        else if (data?.authStatus === '0' || data?.authStatus === '2') {
+          // console.log('审核中,等待审核  || 审核不通过,重新填写信息提交', data.authStatus)
           localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
           router.push({ path: '/register/school/inReview' })
         }
         else if (data?.authStatus === '1') {
-          localStorage.setItem('schoolInfo', JSON.stringify(data))
-          console.log('审核通过直接进入老师页面')
-          router.push('/recruit/teacher') 
-        }
-        else if (data?.authStatus === '2') {
-          console.log('审核不通过,重新填写信息提交')
-          localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
-          router.push({ path: '/register/school/inReview' })
+          // console.log('审核通过直接进入老师页面')
+          router.push('/recruit/teacher/studentList/index') 
         }
       }
     }

+ 1 - 1
src/version.js

@@ -1,2 +1,2 @@
 // 版本号
-export const vue_version = 'v25.03.11.1831'
+export const vue_version = 'v25.03.19.1914'

+ 2 - 1
src/views/flame/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="pa-3 default-width">
-		<div class="text-end mb-5">
+		<div v-if="!getToken()" class="text-end mb-5">
 			<v-btn color="primary" to="/flameLogin">老师登录/注册</v-btn>
 		</div>
 		<v-img src="https://minio.menduner.com/dev/108ff7690ab0773374138568fd0a3a166ee45df1f39b78ff0b2cdaeddbf71261.png"></v-img>
@@ -10,6 +10,7 @@
 
 <script setup>
 defineOptions({ name: 'Flame'})
+import { getToken } from '@/utils/auth'
 </script>
 
 <style scoped lang="scss">

+ 0 - 0
src/views/mallCopy/components/table.vue → src/views/mall1/components/table.vue


+ 1 - 1
src/views/mallCopy/exchange.vue → src/views/mall1/exchange.vue

@@ -33,7 +33,7 @@ import { ref } from 'vue'
 import { getToken } from '@/utils/auth'
 import Dialog from '@/components/CtDialog'
 import Snackbar from '@/plugins/snackbar'
-import { redeemSubmit } from '@/api/mallCopy'
+import { redeemSubmit } from '@/api/mall1'
 import { useUserStore } from '@/store/user'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { checkPersonBaseInfo } from '@/utils/check'

+ 1 - 1
src/views/mallCopy/exchangeRecords.vue → src/views/mall1/exchangeRecords.vue

@@ -21,7 +21,7 @@
 <script setup>
 defineOptions({name: 'mall-exchangeRecords'})
 import { ref } from 'vue'
-import { getRedeemPage } from '@/api/mallCopy'
+import { getRedeemPage } from '@/api/mall1'
 import { getToken } from '@/utils/auth'
 
 const total = ref(0)

+ 0 - 0
src/views/mallCopy/index.vue → src/views/mall1/index.vue


+ 0 - 0
src/views/mallCopy/purchasePackage/components/packageList.js → src/views/mall1/purchasePackage/components/packageList.js


+ 0 - 0
src/views/mallCopy/purchasePackage/components/packageList.vue → src/views/mall1/purchasePackage/components/packageList.vue


+ 0 - 0
src/views/mallCopy/purchasePackage/index.vue → src/views/mall1/purchasePackage/index.vue


+ 8 - 1
src/views/recruit/entRegister/register.vue

@@ -4,7 +4,7 @@
       <!-- 标题 -->
       <div class="mt-3" v-if="!isMobile">
         <v-btn v-if="pageType !== 'noLoginToRegister'" color="primary" variant="text" @click="router.push('/recruitHome')">{{ `<< 回到首页` }}</v-btn>
-        <v-btn v-else color="primary" variant="text" @click="router.push('/login')">{{ `<< 回到登录页` }}</v-btn>
+        <v-btn v-else color="primary" variant="text" @click="handleToLogin">{{ `<< 回到登录页` }}</v-btn>
       </div>
       <!-- 表单 -->
       <div class="CtFormClass" :style="{width: isMobile ? '' : '600px'}">
@@ -117,7 +117,9 @@ import { webContentStore } from '@/store/webContent'
 import Confirm from '@/plugins/confirm'
 import TextUI from '@/components/FormUI/TextInput'
 import { findFirstDuplicateWithIndices } from '@/utils/dealData'
+import { useUserStore } from '@/store/user'
 
+const userStore = useUserStore()
 const webContent = webContentStore()
 const { t } = useI18n()
 const CtFormRef = ref()
@@ -150,6 +152,11 @@ contactList[0].phone = bossPhone // 管理员手机号不能改
 
 const contactCopy = ref([])
 
+const handleToLogin = async () => {
+  await userStore.userLogout(1)
+  router.push('/login')
+}
+
 // 注册信息保存
 const enterpriseRegisterInfo = ref(localStorage.getItem('enterpriseRegisterInfo') ? JSON.parse(localStorage.getItem('enterpriseRegisterInfo')) : {})
 const saveRegisterInfo = () => {

+ 2 - 2
src/views/recruit/enterprise/resume/components/table.vue

@@ -220,13 +220,13 @@ const handlePreviewResume = async ({ url, id }) => {
 // 邀请面试
 const itemData = ref({})
 const handleInterviewInvite = (item) => {
-  if (item?.jobClosed) return // 职位已关闭
+  if (item?.jobClosed) return Snackbar.warning('职位已关闭') // 职位已关闭
   itemData.value = item
   showInvite.value = true
 }
 
 const handleToCommunicate = async (item) => {
-  if (item?.jobClosed) return // 职位已关闭
+  if (item?.jobClosed) return Snackbar.warning('职位已关闭') // 职位已关闭
   const userId = item.userId
   await talkToUser({userId, text: defaultTextEnt})
   let url = `/recruit/enterprise/chatTools?id=${userId}`

+ 8 - 1
src/views/recruit/enterprise/search/recommend/index.vue

@@ -31,6 +31,12 @@
           <span class="defaultLink ml-3 mt-2">{{ item?.name }}</span>
         </div>
       </template>
+      <template #interestedPositions="{ item }">
+        <div style="max-width: 200px" v-ellipse-tooltip>{{ item.position?.positionNames }}</div>
+      </template>
+      <template #lastWorkExp="{ item }">
+        {{ item?.lastWorkExp && Object.keys(item?.lastWorkExp).length > 0 ? `${item.lastWorkExp?.enterpriseName ? item.lastWorkExp?.enterpriseName + ' - ' : ''}${item.lastWorkExp.positionName}` : '' }}
+      </template>
       <template #actions="{ item }">
         <v-btn color="primary" variant="text" @click="handleInvite(item)">邀请面试</v-btn>
         <v-btn color="primary" variant="text" @click="handleCommunicate(item)">立即沟通</v-btn>
@@ -79,7 +85,8 @@ const loading = ref(false)
 const headers = ref([
   { title: '姓名', key: 'name', sortable: false },
   { title: '求职状态', key: 'jobStatusName', sortable: false },
-  { title: '感兴趣职位', key: 'position.positionNames', sortable: false },
+  { title: '感兴趣职位', key: 'interestedPositions', sortable: false },
+  { title: '最近一份工作经历', key: 'lastWorkExp', sortable: false },
   { title: '工作年限', key: 'expName', sortable: false },
   { title: '最高学历', key: 'eduName', sortable: false },
   { title: '所在城市', key: 'areaName', sortable: false },

+ 7 - 4
src/views/recruit/enterprise/student/InternshipSituation/index.vue

@@ -13,7 +13,7 @@
 			</div>
 			<!-- 时间范围筛选 -->
 			<div class="d-flex align-center ml-7">
-        <span class="color-666">实习日期</span>
+        <span class="color-666">到岗日期</span>
         <div class="ml-5">
           <date-picker 
 						v-model="date"
@@ -49,6 +49,9 @@
             <span class="ml-3">{{ item?.person?.name }}</span>
           </div>
         </template>
+				<template #status="{ item }">
+					{{ statistics.find(e => e.value === item?.status)?.label }}
+				</template>
         <template #actions="{ item }">
           <v-btn v-if="!item?.recommendationLetter" color="primary" variant="text" @click="handleUploadLetter(item.id)">上传推荐信</v-btn>
           <v-btn v-if="!item?.evaluate" color="#00897B" variant="text" @click="handleIssueCertificate(item.id)">颁发实习证书</v-btn>
@@ -97,9 +100,9 @@ const tableData = ref([])
 
 const headers = [
   { title: '学生姓名', key: 'studentName', sortable: false },
-  { title: '就读学校', key: 'student.schoolName', sortable: false },
-  { title: '所属院系', key: 'student.schoolDepartmentName', sortable: false },
-  { title: '所属专业', key: 'student.majorName', sortable: false },
+  { title: '学生院系', key: 'student.schoolDept.name', sortable: false },
+  { title: '所学专业', key: 'student.major.nameCn', sortable: false },
+	{ title: '实习状态', key: 'status', sortable: false },
   { title: '应聘职位', key: 'job.name', sortable: false, value: item => formatName(item.job.name) },
   { title: '到岗日期', key: 'startTime', sortable: false, value: item => timesTampChange(item.startTime, 'Y-M-D') },
   { title: '结束日期', key: 'endTime', sortable: false, value: item => timesTampChange(item.endTime, 'Y-M-D') },

+ 1 - 1
src/views/recruit/personal/PersonalCenter/resume/online/components/selfEvaluation.vue

@@ -48,7 +48,7 @@ const getData = async () => {
   emit('complete', { status: Boolean(advantage.value), id: 'selfEvaluation' })
 }
 getData()
-
+ 
 const advantageRules = ref([
   value => {
     if (value) return true

+ 2 - 1
src/views/recruit/personal/PersonalCenter/student/information/index.vue

@@ -177,7 +177,7 @@ const getDepartmentList = async (id, key, type, isRefreshValue = false) => {
 
 // 获取学生基本信息
 const studentInfoFun = async () => {
-  await userStore.getStudentInformation()
+  // await userStore.getStudentInformation()
   const data = JSON.parse(localStorage.getItem('studentInfo') || '{}')
   if (data.schoolId) getDepartmentList(data.schoolId, 'schoolDeptId', 0)
   if (data?.schoolClassId) getDepartmentList(data.schoolDeptId, 'schoolClassId', 2)
@@ -217,6 +217,7 @@ const handleSubmit = async () => {
 
   await saveStudentSimpleInfo(params)
   setTimeout(async () => {
+    await userStore.getStudentInformation()
     studentInfoFun()
     Snackbar.success(t('common.submittedSuccessfully'))
     overlay.value = false

+ 3 - 2
src/views/recruit/personal/PersonalCenter/student/intershipCompany/index.vue

@@ -21,8 +21,8 @@
 			<img src="https://minio.citupro.com/dev/static/bgc.jpg" width="500" height="700" cover />
 			<div class="cer-introduce">
 				兹有
-				<span class="cer-text">{{ itemData?.student?.schoolName }}</span>
-        <span class="cer-text">{{ itemData?.student?.majorName }}</span>
+				<span class="cer-text">{{ studentInfo?.schoolInfo?.name }}</span>
+        <span class="cer-text">{{ studentInfo?.major?.nameCn }}</span>
         专业<span class="cer-text">{{ itemData?.person?.name }}</span>
         同学于<span class="cer-text">{{ itemData?.startTime ? timesTampChange(itemData?.startTime, 'Y-M-D') : '' }}</span>
         至<span class="cer-text">{{ itemData?.endTime ? timesTampChange(itemData?.endTime, 'Y-M-D') : '' }}</span>
@@ -66,6 +66,7 @@ const query = ref({
 	status: ''
 })
 const itemData = ref({})
+const studentInfo = ref(localStorage.getItem('studentInfo') ? JSON.parse(localStorage.getItem('studentInfo')) : {})
 
 const getList = async () => {
 	query.value.status = tabList.value[tab.value]?.value

+ 1 - 0
src/views/recruit/personal/components/studentDeliveryForm.vue

@@ -9,6 +9,7 @@
 // 学生-实习到岗信息表单
 defineOptions({ name: 'studentDeliveryForm'})
 import { ref, nextTick } from 'vue'
+import Snackbar from '@/plugins/snackbar'
 
 const CtFormRef = ref()
 

+ 2 - 2
src/views/recruit/personal/position/components/details.vue

@@ -116,7 +116,7 @@
       @close="showUploadDialog = false"
       @submit="handleUploadSubmit"
     >
-      <div class="color-warning mb-3" style="font-size: 13px;">* 仅支持.doc, .docx, .pdf文件且大小不能超过20MB</div>
+      <div class="color-warning my-5" style="font-size: 13px;">* 仅支持.doc, .docx, .pdf文件且大小不能超过20MB</div>
       <CtForm ref="CtFormRef" :items="formItems">
         <template #uploadFile="{ item }">
           <TextInput v-model="item.value" :item="item" @click="openFileInput"></TextInput>
@@ -124,7 +124,7 @@
         </template>
       </CtForm>
       <!-- 学生-实习到岗信息 -->
-      <studentDeliveryForm v-if="baseInfo?.type && Number(baseInfo.type) === 1" ref="studentDeliveryFormRef" />
+      <studentDeliveryForm style="margin-top: 70px;" v-if="baseInfo?.type && Number(baseInfo.type) === 1" ref="studentDeliveryFormRef" />
     </CtDialog>
 
     <!-- 选择简历 -->

+ 1 - 0
src/views/recruit/teacher/organization/index.vue

@@ -76,6 +76,7 @@ const query = ref({
 const pageInfo = ref({
   pageNo: 1,
   pageSize: 10,
+  schoolId: JSON.parse(localStorage.getItem('schoolInfo'))?.schoolId,
   type: 0
 })
 

+ 12 - 3
src/views/recruit/teacher/studentList/index.vue

@@ -7,7 +7,8 @@
         <Autocomplete class="mr-3" v-model="query.schoolDeptId" :item="schoolDepartmentItem"></Autocomplete>
         <TextInput class="mr-3" v-model="query.name" :item="studentNameItem" @enter="handleSearch()"></TextInput>
         <v-btn color="primary" class="half-button ml-3" @click="handleSearch()">查 询</v-btn>
-        <v-btn class="half-button ml-3" prepend-icon="mdi-refresh" variant="outlined" color="primary" @click="handleSearch(true)">刷 新</v-btn>
+        <v-btn class="half-button ml-3" prepend-icon="mdi-refresh" variant="outlined" color="primary" @click="handleReset">重 置</v-btn>
+        <v-btn class="half-button ml-3" prepend-icon="mdi-refresh" variant="outlined" color="warning" @click="handleSearch(true)">刷 新</v-btn>
       </div>
       <!-- <v-btn :loading="exportLoading" prepend-icon="mdi-export-variant" color="primary" variant="tonal" class="ml-3" @click="null">导出</v-btn> -->
     </div>
@@ -40,7 +41,7 @@
     </div>
 
     <v-navigation-drawer v-model="showDetail" absolute location="right" rounded temporary width="700" class="pa-5">
-    <div class="resume-header" style="height: 50px;">
+    <div class="resume-header" style="height: 60px;">
       <div class="resume-title">{{ itemData?.person?.name }} - 实习报告</div>
       <Autocomplete v-model="enterpriseId" :item="enterpriseItem" @change="handleEnterprise"></Autocomplete>
     </div>
@@ -87,7 +88,7 @@ const studentNameItem = ref({
   type: 'text',
   width: 300,
   label: '请输入学生姓名搜索',
-  clearable: true,
+  clearable: false,
   hideDetails: true
 })
 const enterpriseId = ref(null)
@@ -134,6 +135,14 @@ const handleSearch = (refresh = false) => {
   getData(refresh)
 }
 
+// 重置
+const handleReset = () => {
+  query.value.pageNo = 1
+  query.value.name = null
+  query.value.schoolDeptId = null
+  getData()
+}
+
 const schoolInfo = ref(localStorage.getItem('schoolInfo') ? JSON.parse(localStorage.getItem('schoolInfo')) : {})
 const schoolDepartmentItem = ref({ width: 300, items: [], clearable: false, hideDetails: true, label: '请选择院系', itemText: 'name', itemValue: 'id' })
 

+ 1 - 1
src/views/register/person.vue

@@ -73,7 +73,7 @@ const handleRegister = async () => {
     await userStore.handleSmsLogin({ 
       ...phoneRef.value.loginData,
       autoRegister: true,
-      chooseRole: props.isSchool ? false : true,
+      chooseRole: props.isCompany || props.isSchool ? false : true,
       schoolRegister: props.isSchool
     })
     // autoRegister 自动注册登录

+ 0 - 6
src/views/register/school.vue

@@ -9,12 +9,8 @@ defineOptions({ name: 'register-school'})
 import { ref, onMounted } from 'vue'
 import PhonePage from './person.vue'
 import { webContentStore } from '@/store/webContent'
-import { useUserStore } from '@/store/user'
-import { useRouter } from 'vue-router'
 
-const router = useRouter()
 const webContent = webContentStore()
-const userStore = useUserStore()
 const isMobile = ref(false)
 onMounted(async () => {
   await webContent.getSystemWebContent()
@@ -24,9 +20,7 @@ onMounted(async () => {
 
 // 手机验证码效验通过
 const handleValidate= async () => {
-	// 验证通过,跳转到学校信息填写页面
 	localStorage.setItem('necessaryInfoReady', 'ready')
-	// await userStore.handleSmsLogin()
 }
 </script>
 

+ 1 - 1
src/views/register/schoolForm.vue

@@ -261,7 +261,7 @@ const handleSubmit = async () => {
 
 		Snackbar.success('提交成功,等待系统管理员审核!')
 		// 重新提交审核的需将authStatus改为0(待审核状态)
-		localStorage.setItem('registerSchoolInfo', JSON.stringify(isUpdate.value ? { ...obj, authStatus: '0' } : obj))
+		localStorage.setItem('registerSchoolInfo', JSON.stringify({ ...obj, authStatus: '0' }))
 		isUpdate.value = false
 		router.push('/register/school/inReview')
 	} catch {}

+ 30 - 6
src/views/register/schoolInReview.vue

@@ -32,11 +32,11 @@
             <div class="text-center ml-5">潘青海先生(Peter Pan)</div>
           </div>
         </div>
-
-        <div class="text-center">
-          <v-btn class="mt-16 mr-3 buttons" color="primary" @click="handleBackToFlame">回到火苗儿校企</v-btn>
-          <v-btn v-if="applyInfo?.authStatus === '2'" class="mt-16 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
-        </div>
+      </div>
+      <div class="text-center mb-15">
+        <v-btn class="mt-16 mr-3 buttons" color="primary" @click="handleBackToFlame">回到火苗儿校企</v-btn>
+        <v-btn v-if="getToken()" class="mt-16 mr-3 buttons" color="primary" @click="handleRefreshApproved">刷新审核进度</v-btn>
+        <v-btn v-if="applyInfo?.authStatus === '2'" class="mt-16 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
       </div>
     </v-card>
   </div>
@@ -46,10 +46,12 @@
 defineOptions({ name: 'register-schoolForm'})
 import { ref, onMounted } from 'vue'
 import { webContentStore } from '@/store/webContent'
-// import navBar from '@/layout/personal/navBar.vue'
 import { useRouter } from 'vue-router'
 import { timesTampChange } from '@/utils/date'
 import { useUserStore } from '@/store/user'
+import { getToken } from '@/utils/auth'
+import { getSchoolInformation } from '@/api/school'
+import Snackbar from '@/plugins/snackbar'
 
 const userStore = useUserStore()
 const applyInfo = ref(localStorage.getItem('registerSchoolInfo') ? JSON.parse(localStorage.getItem('registerSchoolInfo')) : {})
@@ -72,6 +74,28 @@ const handleBackToFlame = async () => {
 const handleConfirm = async () => {
   router.push('/register/schoolIndex')
 }
+
+// 刷新审核状态
+const handleRefreshApproved = async () => {
+  const data = await getSchoolInformation()
+  if (!data) return
+  localStorage.setItem('schoolInfo', data ? JSON.stringify(data) : '{}')
+  
+  if (data?.authStatus === '1') {
+    Snackbar.success('您的账号审核已通过')
+    router.push('/recruit/teacher/studentList/index')
+  }
+  if (data?.authStatus === '0') {
+    Snackbar.warning('您的账号还在审核中,请耐心等待')
+  }
+  if (data?.authStatus === '2') {
+    Snackbar.warning('您的账号审核未通过,请重新提交')
+  }
+  
+  applyInfo.value = data
+  localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
+  console.log('刷新审核状态', applyInfo.value)
+}
 </script>
 
 <style scoped lang="scss">