Forráskód Böngészése

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

lifanagju_citu 2 hónapja
szülő
commit
a9bcb3a87d

+ 0 - 5
components.d.ts

@@ -31,9 +31,7 @@ declare module 'vue' {
     CtTextField: typeof import('./src/components/CtVuetify/CtTextField/index.vue')['default']
     DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
-    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
-    ElTree: typeof import('element-plus/es')['ElTree']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
     HeadSearch: typeof import('./src/components/headSearch/index.vue')['default']
@@ -77,7 +75,4 @@ 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']
-  }
 }

+ 27 - 3
src/api/school.js

@@ -2,15 +2,15 @@ import request from '@/config/axios'
 
 // 获取学校基本信息
 export const getSchoolInformation = async () => {
-	return await request.post({
-		url: '/app-api/flames/school/information'
+	return await request.get({
+		url: '/app-api/menduner/system/teacher/info/get'
 	})
 }
 
 // 注册学校账号
 export const schoolRegister = async (data) => {
 	return await request.post({
-		url: '/app-api/flames/school/register',
+		url: '/app-api/menduner/system/teacher/info/register',
 		data
 	})
 }
@@ -102,3 +102,27 @@ export const internshipCompanyList = async (data) => {
 		data
 	})
 }
+
+// 学校列表
+export const flameSchoolList = async (params) => {
+	return await request.get({
+		url: '/app-api/menduner/system/school/list',
+		params
+	})
+}
+
+// 更新老师信息
+export const updateTeacherInfo = async (data) => {
+	return await request.post({
+		url: '/app-api/menduner/system/teacher/info/update',
+		data
+	})
+}
+
+// 更新学校信息
+export const updateSchoolInfo = async (data) => {
+	return await request.post({
+		url: '/app-api/menduner/system/teacher/school/update',
+		data
+	})
+}

+ 3 - 1
src/hooks/web/useDictionaries.js

@@ -9,6 +9,7 @@ import {
   getAreaTreeData,
   getPositionData
 } from '@/api/common/index'
+import { flameSchoolList } from '@/api/school'
 import { getSecondNodes } from '@/utils/dealData'
 
 // const setDict = (type, val, cacheTime = 7200) => {
@@ -47,7 +48,8 @@ export const getDict = (type, params, apiType = 'dict') => {
         areaList: getAreaListData,
         areaMap: getAreaMapData,
         positionData: getPositionData,
-        positionSecondData: getPositionTreeData
+        positionSecondData: getPositionTreeData,
+        schoolList: flameSchoolList
       }
       apiFn[apiType](query).then(data => {
         if (type === 'areaTreeData') {

+ 5 - 2
src/layout/personal/navBar.vue

@@ -38,7 +38,9 @@
         
         <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">{{ $t('login.loginOrRegister') }}</v-btn>
+            <v-btn color="primary" style="color: #fff !important; background-color: #00B760;" @click="handleLogin">
+              {{ route.path === '/flame' ? '老师登录/注册' : '登录/注册' }}
+            </v-btn>
           </div>
           
           <!-- 头像用户名 -->
@@ -304,7 +306,8 @@ userStore.$subscribe((mutation, state) => {
 })
 
 const handleLogin = () => {
-  router.push({ path: '/login' })
+  const path = route.path === '/flame' ? '/flameLogin' : '/login'
+  router.push(path)
 }
 
 // 语言切换

+ 2 - 2
src/layout/teacher/navBar.vue

@@ -14,10 +14,10 @@
               <template v-slot:activator="{ props }">
                 <div class="d-flex ml-3 pl-2 align-center cursor-pointer" v-bind="props">
                   <v-avatar>
-                    <v-img alt="" :src="getUserAvatar(schoolInfo?.school?.headImg, schoolInfo?.school?.teacherSex)"></v-img>
+                    <v-img alt="" :src="getUserAvatar(schoolInfo?.avatar, schoolInfo?.sex)"></v-img>
                   </v-avatar>
                   <div class="ml-2 commonHover">
-                    {{ formatName(schoolInfo?.school?.schoolName) + ' - ' + schoolInfo?.school?.teacherNickname ?? schoolInfo?.school?.phone }}
+                    {{ formatName(schoolInfo?.school?.name) + ' - ' + schoolInfo?.name ?? schoolInfo?.phone }}
                   </div>
                 </div>
               </template>

+ 5 - 5
src/store/user.js

@@ -278,27 +278,27 @@ export const useUserStore = defineStore('user',
       // 获取学校基本信息
       async getSchoolInfo (isRegister = false) {
         const data = await getSchoolInformation()
-        this.schoolInfo = data
+        this.schoolInfo = data || {}
         localStorage.setItem('schoolInfo', data ? JSON.stringify(data) : '{}')
 
         // 注册时执行下方内容
         if (!isRegister) return
 
-        if (!data || !data.school || !Object.keys(data.school).length) {
+        if (!data || !Object.keys(data).length) {
           console.log('没有注册过,直接跳转到学校注册页面')
           router.push({ path: '/register/schoolIndex' })
         }
-        else if (data.school?.authStatus === '0') {
+        else if (data?.authStatus === '0') {
           console.log('审核中,等待审核')
           localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
           router.push({ path: '/register/school/inReview' })
         }
-        else if (data.school?.authStatus === '1') {
+        else if (data?.authStatus === '1') {
           localStorage.setItem('schoolInfo', JSON.stringify(data))
           console.log('审核通过直接进入老师页面')
           router.push('/recruit/teacher') 
         }
-        else if (data.school?.authStatus === '2') {
+        else if (data?.authStatus === '2') {
           console.log('审核不通过,重新填写信息提交')
           localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
           router.push({ path: '/register/school/inReview' })

+ 6 - 5
src/views/flame/index.vue

@@ -1,14 +1,15 @@
 <template>
-	<div class="pa-5">
-		<v-btn color="primary" to="/flameLogin">老师登录/注册</v-btn>
+	<div class="pa-3 default-width">
+		<!-- <div 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>
+		<v-img class="mt-3" src="https://minio.menduner.com/dev/95502df43c2155c457c485e869066536566d5f58ae80313567f81e7215f7eb77.png"></v-img>
 	</div>
 </template>
 
 <script setup>
 defineOptions({ name: 'Flame'})
-
-
-const handleToLogin = () => {}
 </script>
 
 <style scoped lang="scss">

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

@@ -109,8 +109,8 @@ const schoolInfo = ref(localStorage.getItem('schoolInfo') ? JSON.parse(localStor
 const schoolDepartmentItem = ref({ width: 300, items: [], clearable: false, hideDetails: true, label: '请选择院系' })
 
 // 列表
-const getSchoolDepartmentItemItem = async () => {
-  const schoolId = schoolInfo.value?.school?.schoolId || null
+const getYuanXiItem = async () => {
+  const schoolId = schoolInfo.value?.schoolId || null
   if (!schoolId) return Snackbar.warning('获取学校信息失败!')
   
   const { data } = await schoolOrganization({ schoolId })
@@ -123,7 +123,7 @@ const getSchoolDepartmentItemItem = async () => {
     getData()
   }
 }
-getSchoolDepartmentItemItem()
+getYuanXiItem()
 
 const studentDetails = (id) => {
   if (id) window.open(`/recruit/teacher/studentList/detail/${id}`)

+ 12 - 17
src/views/recruit/teacher/teacherCertification/schoolInfo.vue

@@ -21,8 +21,7 @@ import { ref, onMounted } from 'vue'
 import { useI18n } from '@/hooks/web/useI18n'
 import { useUserStore } from '@/store/user'
 import Snackbar from '@/plugins/snackbar'
-import { cloneDeep } from 'lodash'
-import { schoolBaseInfoEdit } from '@/api/school'
+import { updateSchoolInfo } from '@/api/school'
 
 const overlay = ref(false)
 const CtFormRef = ref()
@@ -30,9 +29,10 @@ const formItems = ref({
   options: [
     {
       type: 'text',
-      key: 'schoolName',
+      key: 'name',
       value: '',
       col: 6,
+      disabled: true,
       label: '学校名称 *',
       flexStyle: 'mr-3',
       rules: [v => !!v || '请输入您所在的学校名称']
@@ -46,17 +46,8 @@ const formItems = ref({
     },
     {
       type: 'text',
-      key: 'site',
+      key: 'address',
       value: '',
-      col: 6,
-      flexStyle: 'mr-3',
-      label: '学校官网'
-    },
-    {
-      type: 'text',
-      key: 'schoolAdderss',
-      value: '',
-      col: 6,
       label: '学校地址'
     },
     {
@@ -71,7 +62,8 @@ const formItems = ref({
     {
       slotName: 'photos',
       key: 'photos',
-      value: []
+      value: [],
+      defaultValue: [],
     }
   ]
 })
@@ -88,7 +80,7 @@ onMounted(async () => {
 	await userStore.getSchoolInfo()
 
 	formItems.value.options.forEach(item => {
-		item.value = schoolInfo.value?.school[item.key]
+		item.value = schoolInfo.value?.school[item.key] || item?.defaultValue
 	})
 })
 
@@ -99,13 +91,16 @@ const handleSubmit = async () => {
 
   overlay.value = true
 
-  let obj = cloneDeep(schoolInfo.value?.school)
+  let obj = {
+    id: schoolInfo.value?.school.id,
+    schoolId: schoolInfo.value.schoolId
+  }
 	formItems.value.options.forEach(item => {
 		obj[item.key] = item.value
 	})
 
   try {
-		await schoolBaseInfoEdit(obj)
+		await updateSchoolInfo(obj)
 
 		setTimeout(async () => {
 			await userStore.getSchoolInfo()

+ 31 - 24
src/views/recruit/teacher/teacherCertification/teacherInfo.vue

@@ -1,10 +1,10 @@
 <template>
 	<div class="d-flex flex-column align-center">
 		<CtForm ref="CtFormRef" :items="formItems" style="width: 700px;">
-			<template #headImg="{ item }">
+			<template #avatar="{ item }">
         <div style="color: #7a7a7a;">头像</div>
         <div class="avatarsBox" @mouseover="showIcon = true" @mouseleave="showIcon = false">
-          <v-avatar class="elevation-5" size=80 :image="getUserAvatar(item.value, baseInfo?.sex)"></v-avatar>
+          <v-avatar class="elevation-5" size=80 :image="getUserAvatar(item.value, schoolInfo?.sex)"></v-avatar>
           <div v-show="showIcon" @click="openFileInput" v-bind="$attrs" class="mdi mdi-camera-outline">
             <input
               type="file"
@@ -17,14 +17,14 @@
         </div>
         <div style="font-size: 14px; color: var(--color-999);">只支持JPG、JPEG、PNG类型的图片,大小不超过20M</div>
       </template>
-			<template #department>
+			<template #organizationList>
 				<div class="pa-5 mb-3" style="width: 100%; border: 1px dashed #ccc; border-radius: 4px;">
 					<p class="color-999 font-size-14 mb-3">
 						<span class="color-error">*</span>
 						负责院系
 					</p>
 					<div v-for="(k, index) in departmentList" :key="index" class="d-flex align-center mb-5">
-						<TextInput v-model="k.departmentTitle" :item="textItem" />
+						<TextInput v-model="k.name" :item="textItem" />
 						<v-icon v-if="index > 0" class="ml-3 cursor-pointer" @click="handleDeleteDepartment(index)" color="error">mdi-close-circle</v-icon>
 					</div>
 					<v-btn class="mt-3" color="primary" prepend-icon="mdi-plus" size="small" @click="handleAddDepartment">添加院系</v-btn>
@@ -45,17 +45,16 @@ import { getUserAvatar } from '@/utils/avatar'
 import { getDict } from '@/hooks/web/useDictionaries'
 import { useI18n } from '@/hooks/web/useI18n'
 import { useUserStore } from '@/store/user'
-import { cloneDeep } from 'lodash'
 import { uploadFile } from '@/api/common'
 import Snackbar from '@/plugins/snackbar'
-import { schoolBaseInfoEdit, schoolDepartmentEdit } from '@/api/school'
+import { updateTeacherInfo } from '@/api/school'
 
 const showIcon = ref(false)
 const CtFormRef = ref()
-const departmentList = ref([{ departmentTitle: '' }])
+const departmentList = ref([{ name: '' }])
 const textItem = {
 	type: 'text',
-  key: 'departmentTitle',
+  key: 'name',
 	width: 450,
   label: '院系名称 *',
 	hideDetails: true,
@@ -64,14 +63,14 @@ const textItem = {
 const formItems = ref({
   options: [
 		{
-      slotName: 'headImg',
-      key: 'headImg',
+      slotName: 'avatar',
+      key: 'avatar',
       value: '',
       flexStyle: 'align-center'
     },
 		{
       type: 'ifRadio',
-      key: 'teacherSex',
+      key: 'sex',
       value: '1',
 			defaultValue: '1',
       label: '性别 *',
@@ -82,7 +81,7 @@ const formItems = ref({
     },
     {
       type: 'text',
-      key: 'teacherNickname',
+      key: 'name',
       value: '',
       label: '昵称 *',
       rules: [v => !!v || '请输入您的昵称']
@@ -95,8 +94,14 @@ const formItems = ref({
       rules: [v => !!v || '请输入您的联系电话']
     },
     {
-			slotName: 'department',
-      key: 'departmentTitle',
+      type: 'text',
+      key: 'email',
+      value: '',
+      label: '电子邮箱'
+    },
+    {
+			slotName: 'organizationList',
+      key: 'organizationList',
 			noParam: true,
       label: '负责院系 *',
       rules: [v => !!v || '请填写您在学校负责的院系']
@@ -116,22 +121,22 @@ onMounted(async () => {
 	await userStore.getSchoolInfo()
 
 	// 获取性别字典数据
-	const sexItem = formItems.value.options.find(e => e.key === 'teacherSex')
+	const sexItem = formItems.value.options.find(e => e.key === 'sex')
 	if (!sexItem || !Object.keys(sexItem).length) return
 	const { data } = await getDict(sexItem.dictTypeName)
 	sexItem.items = data || []
 
 	formItems.value.options.forEach(item => {
-		if (!item.noParam) item.value = schoolInfo.value?.school[item.key] || item.defaultValue
+		if (!item.noParam) item.value = schoolInfo.value[item.key] || item.defaultValue
 		else {
-			departmentList.value = schoolInfo.value?.schoolDepartments && schoolInfo.value.schoolDepartments.length ? schoolInfo.value.schoolDepartments : [{ departmentTitle: '' }]
+			departmentList.value = schoolInfo.value?.organizationList && schoolInfo.value.organizationList.length ? schoolInfo.value.organizationList : [{ name: '' }]
 		}
 	})
 })
 
 // 添加院系
 const handleAddDepartment = () => {
-	departmentList.value.push({ departmentTitle: '' })
+	departmentList.value.push({ name: '' })
 }
 // 删除院系
 const handleDeleteDepartment = (index) => {
@@ -177,6 +182,7 @@ const handleUploadFile = async (e) => {
   }
 }
 
+// 头像裁剪
 const handleHideCopper = (data) => {
   isShowCopper.value = false
   if (data) {
@@ -188,7 +194,7 @@ const handleHideCopper = (data) => {
     formData.append('path', 'img')
     uploadFile(formData).then(async ({ data }) => {
       if (!data) return
-      formItems.value.options.find(e => e.key === 'headImg').value = data
+      formItems.value.options.find(e => e.key === 'avatar').value = data
     })
   }
 }
@@ -198,21 +204,22 @@ const handleSubmit = async () => {
   const { valid } = await CtFormRef.value.formRef.validate()
   if (!valid) return
 
-	const isCheck = departmentList.value.every(item => item.departmentTitle)
+	const isCheck = departmentList.value.every(item => item.name)
 	if (!isCheck) return Snackbar.warning('请将院系信息填写完整')
 
   overlay.value = true
 
-	let obj = cloneDeep(schoolInfo.value?.school)
+  let obj = {
+    id: schoolInfo.value.id,
+    organizationList: departmentList.value?.length ? departmentList.value.map(e => { return { name: e.name } }) : []
+  }
 	formItems.value.options.forEach(item => {
 		if (item.noParam) return
 		obj[item.key] = item.value
 	})
 
 	try {
-		await schoolBaseInfoEdit(obj)
-		// 院系编辑
-		await schoolDepartmentEdit(departmentList.value)
+		await updateTeacherInfo(obj)
 
 		setTimeout(async () => {
 			await userStore.getSchoolInfo()

+ 48 - 59
src/views/register/schoolForm.vue

@@ -6,14 +6,14 @@
 				{{ isUpdate ? '注册信息修改' : '老师注册'}}
 			</div>
 			<CtForm class="mt-5" ref="CtFormRef" :items="formItems">
-				<template #department>
+				<template #authDept>
 					<div class="pa-5 mb-3" style="width: 100%; border: 1px dashed #ccc; border-radius: 4px;">
 						<p class="color-999 font-size-14 mb-3">
 							<span class="color-error">*</span>
 							负责院系
 						</p>
 						<div v-for="(k, index) in departmentList" :key="index" class="d-flex align-center mb-5">
-							<TextInput v-model="k.departmentTitle" :item="textItem" />
+							<TextInput v-model="k.name" :item="textItem" />
 							<v-icon v-if="index > 0" class="ml-3 cursor-pointer" @click="handleDeleteDepartment(index)" color="error">mdi-close-circle</v-icon>
 						</div>
 						<v-btn class="mt-3" color="primary" prepend-icon="mdi-plus" size="small" @click="handleAddDepartment">添加院系</v-btn>
@@ -22,7 +22,7 @@
 				<template #tips>
 					<p class="font-size-14 color-warning mb-3">图片上传提示:支持jpg、jpeg、png格式,图片大小不得超过20M</p>
 				</template>
-				<template #jobImg="{ item }">
+				<template #employmentCertificate="{ item }">
 					<div class="d-flex flex-column">
 						<p class="color-999 font-size-14 mb-3">
 							<span class="color-error">*</span>
@@ -40,7 +40,7 @@
 						/>
 					</div>
 				</template>
-				<template #schoolLegalPersonIdCardImg1="{ item }">
+				<template #idCardFront="{ item }">
 					<div class="d-flex flex-column">
 						<p class="color-999 font-size-14 mb-3">
 							<span class="color-error">*</span>
@@ -58,7 +58,7 @@
 						/>
 					</div>
 				</template>
-				<template #schoolLegalPersonIdCardImg2="{ item }">
+				<template #idCardBack="{ item }">
 					<div class="d-flex flex-column">
 						<p class="color-999 font-size-14 mb-3">
 							<span class="color-error">*</span>
@@ -93,7 +93,7 @@ import { webContentStore } from '@/store/webContent'
 import { getDict } from '@/hooks/web/useDictionaries'
 import Snackbar from '@/plugins/snackbar'
 import navBar from '@/layout/personal/navBar.vue'
-import { schoolRegister, schoolUpdate } from '@/api/school'
+import { schoolRegister } from '@/api/school'
 import { useRouter } from 'vue-router'
 
 const router = useRouter()
@@ -101,10 +101,10 @@ const webContent = webContentStore()
 
 const previewUrl = ref('')
 const showPreview = ref(false)
-const departmentList = ref([{ departmentTitle: '' }])
+const departmentList = ref([{ name: '' }])
 const textItem = {
 	type: 'text',
-  key: 'departmentTitle',
+  key: 'name',
 	width: 450,
   label: '院系名称 *',
 	hideDetails: true,
@@ -117,7 +117,7 @@ const formItems = ref({
   options: [
     {
       type: 'text',
-      key: 'teacherNickname',
+      key: 'name',
       value: '',
       label: '昵称 *',
 			col: 6,
@@ -126,7 +126,7 @@ const formItems = ref({
     },
     {
       type: 'ifRadio',
-      key: 'teacherSex',
+      key: 'sex',
       value: '1',
 			defaultValue: '1',
       label: '性别 *',
@@ -147,25 +147,21 @@ const formItems = ref({
       rules: [v => !!v || '请填写您的联系电话']
     },
     {
-      type: 'text',
-      key: 'schoolName',
-      value: '',
+      type: 'autocomplete',
+      key: 'schoolId',
+      value: null,
       label: '所在学校 *',
 			col: 6,
+			itemText: 'name',
+			itemValue: 'id',
 			flexStyle: 'ml-5',
       outlined: true,
-      rules: [v => !!v || '请填写您所在的学校名称']
-    },
-		{
-      type: 'text',
-      key: 'schoolAdderss',
-      value: '',
-      label: '学校地址',
-      outlined: true
+			items: [],
+      rules: [v => !!v || '请选择您所在的学校名称']
     },
     {
-			slotName: 'department',
-      key: 'departmentTitle',
+			slotName: 'authDept',
+      key: 'authDept',
 			noParam: true,
       label: '负责院系 *',
       rules: [v => !!v || '请填写您在学校负责的院系']
@@ -175,22 +171,22 @@ const formItems = ref({
 			noParam: true
 		},
 		{
-			slotName: 'jobImg',
-			key: 'jobImg',
+			slotName: 'employmentCertificate',
+			key: 'employmentCertificate',
 			value: '',
 			col: 4,
 			rules: [v => !!v || '请上传您的在岗证明图片']
 		},
 		{
-			slotName: 'schoolLegalPersonIdCardImg1',
-			key: 'schoolLegalPersonIdCardImg1',
+			slotName: 'idCardFront',
+			key: 'idCardFront',
 			value: '',
 			col: 4,
 			rules: [v => !!v || '请上传您的身份证正面图片']
 		},
 		{
-			slotName: 'schoolLegalPersonIdCardImg2',
-			key: 'schoolLegalPersonIdCardImg2',
+			slotName: 'idCardBack',
+			key: 'idCardBack',
 			value: '',
 			col: 4,
 			rules: [v => !!v || '请上传您的身份证背面图片']
@@ -203,19 +199,25 @@ onMounted(async () => {
   await webContent.getSystemWebContent()
 
 	// 获取性别字典数据
-	const sexItem = formItems.value.options.find(e => e.key === 'teacherSex')
+	const sexItem = formItems.value.options.find(e => e.key === 'sex')
 	if (!sexItem || !Object.keys(sexItem).length) return
 	const { data } = await getDict(sexItem.dictTypeName)
 	sexItem.items = data || []
 
-	// 重新提交
+	// 获取学校列表
+	const schoolItem = formItems.value.options.find(e => e.key === 'schoolId')
+	if (!schoolItem || !Object.keys(schoolItem).length) return
+	getDict('schoolList', {}, 'schoolList').then(({ data }) => {
+		schoolItem.items = data || []
+	})
+
+	// 重新提交,数据回显
 	formData.value = localStorage.getItem('registerSchoolInfo') ? JSON.parse(localStorage.getItem('registerSchoolInfo')) : {}
-	if (formData.value && formData.value.school && formData.value.school?.authStatus === '2') {
+	if (formData.value && formData.value && formData.value?.authStatus === '2') {
 		isUpdate.value = true
-		departmentList.value = formData.value.schoolDepartments || [{ departmentTitle: '' }]
+		departmentList.value = formData.value?.authDept || [{ name: '' }]
 		formItems.value.options.forEach(item => {
-			if (item.type) item.value = formData.value.school[item.key] || item?.defaultValue
-			if (item.slotName && !item.noParam) item.value = formData.value.schoolQualificaions[item.key]
+			if (item.key !== 'authDept' && !item.noParam) item.value = formData.value[item.key] || item?.defaultValue
 		})
 	}
 })
@@ -228,7 +230,7 @@ const handlePreview = (url) => {
 
 // 添加院系
 const handleAddDepartment = () => {
-	departmentList.value.push({ departmentTitle: '' })
+	departmentList.value.push({ name: '' })
 }
 // 删除院系
 const handleDeleteDepartment = (index) => {
@@ -239,40 +241,27 @@ const handleDeleteDepartment = (index) => {
 const handleSubmit = async () => {
 	const { valid } = await CtFormRef.value.formRef.validate()
 	if (!valid) return
-	const isCheck = departmentList.value.every(item => item.departmentTitle)
+	const isCheck = departmentList.value.every(item => item.name)
 	if (!isCheck) return Snackbar.warning('请将院系信息填写完整')
 
-	let obj = {}
+	let obj = {
+		authDept: departmentList.value
+	}
 	formItems.value.options.forEach(item => {
 		if (item.noParam) return
 		obj[item.key] = item.value
 	})
 
-	const params = {
-		school: {
-			schoolName: obj.schoolName,
-      schoolAdderss: obj.schoolAdderss,
-      userId: JSON.parse(localStorage.getItem('userInfo'))?.id,
-      teacherNickname: obj.teacherNickname,
-      teacherSex: obj.teacherSex,
-      phone: obj.phone
-		},
-		schoolQualificaions: {
-			jobImg: obj.jobImg,
-			schoolLegalPersonIdCardImg1: obj.schoolLegalPersonIdCardImg1,
-			schoolLegalPersonIdCardImg2: obj.schoolLegalPersonIdCardImg2,
-		},
-		schoolDepartments: departmentList.value
-	}
-
 	// 修改信息需提交原始数据
-	if (isUpdate.value) params.school = Object.assign(formData.value.school, params.school)
+	if (isUpdate.value) obj = Object.assign(formData.value, obj)
 
 	try {
-		const data = isUpdate.value ? await schoolUpdate(params) : await schoolRegister(params)
-		console.log(data, 'submit-data提交成功,等待系统管理员审核')
+		await schoolRegister(obj)
+		console.log(obj, 'submit-data提交成功,等待系统管理员审核')
+
 		Snackbar.success('提交成功,等待系统管理员审核!')
-		localStorage.setItem('registerSchoolInfo', JSON.stringify(data))
+		// 重新提交审核的需将authStatus改为0(待审核状态)
+		localStorage.setItem('registerSchoolInfo', JSON.stringify(isUpdate.value ? { ...obj, authStatus: '0' } : obj))
 		isUpdate.value = false
 		router.push('/register/school/inReview')
 	} catch {}

+ 5 - 22
src/views/register/schoolInReview.vue

@@ -3,7 +3,7 @@
     <v-card class="default-width" elevation="10">
       <div style="margin: 70px auto; width: 600px;">
         <!-- 提交老师注册以后跳转显示页面 -->
-        <div v-if="applyInfo && applyInfo?.school?.authStatus === '0'" class="d-flex flex-column align-center">
+        <div v-if="applyInfo && applyInfo?.authStatus === '0'" class="d-flex flex-column align-center">
           <svg-icon name="submit" size="300"></svg-icon>
           <div><strong class="color-primary font-size-20">已收到您的老师账号注册申请,</strong>审核时间预计在1~3个工作日内,申请结果会以短信方式通知到您的手机上,请注意查收。</div>
           <div style="width: 100%;">
@@ -16,13 +16,13 @@
         </div>
 
         <!-- 审核不通过 -->
-        <div v-else-if="applyInfo?.school?.authStatus === '2'"> 
+        <div v-else-if="applyInfo?.authStatus === '2'"> 
           <div class="mb-3" style="color: red;">
             您的老师账号注册申请<strong class="color-error font-size-20"> 审核不通过,</strong>
-            具体原因如下:{{ reason }}
+            具体原因如下:{{ applyInfo?.authMessage }}
           </div>
           <div class="mt-5">
-            <span>审核时间:{{ createTime }}</span>
+            <span>审核时间:{{ timesTampChange(applyInfo?.authTime) }}</span>
           </div>
           <div style="width: 100%;">
             <div class="mt-5 mb-1">如有疑问请扫码添加下方企业微信联系我们:</div>
@@ -35,7 +35,7 @@
 
         <div class="text-center">
           <v-btn class="mt-16 mr-3 buttons" color="primary" @click="handleBackToFlame">回到火苗儿校企</v-btn>
-          <v-btn v-if="applyInfo?.school?.authStatus === '2'" class="mt-16 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
+          <v-btn v-if="applyInfo?.authStatus === '2'" class="mt-16 buttons" color="primary" @click="handleConfirm">{{ $t('common.resubmit') }}</v-btn>
         </div>
       </div>
     </v-card>
@@ -46,10 +46,8 @@
 defineOptions({ name: 'register-schoolForm'})
 import { ref, onMounted } from 'vue'
 import { webContentStore } from '@/store/webContent'
-import Snackbar from '@/plugins/snackbar'
 // import navBar from '@/layout/personal/navBar.vue'
 import { useRouter } from 'vue-router'
-import { getSchoolAuditById } from '@/api/school'
 import { timesTampChange } from '@/utils/date'
 import { useUserStore } from '@/store/user'
 
@@ -57,21 +55,6 @@ const userStore = useUserStore()
 const applyInfo = ref(localStorage.getItem('registerSchoolInfo') ? JSON.parse(localStorage.getItem('registerSchoolInfo')) : {})
 console.log(applyInfo.value, '注册审核信息')
 
-const reason = ref('')
-const createTime = ref('')
-
-const getRefuseInfo = async () => {
-  try {
-    const data = await getSchoolAuditById({ schoolId: applyInfo.value.school.schoolId })
-    reason.value = data.message
-    createTime.value = data?.createDate ? timesTampChange(data.createDate) : ''
-  } catch {}
-}
-// 获取申请被拒绝的原因
-if (applyInfo.value && applyInfo.value?.school?.authStatus === '2') {
-  getRefuseInfo()
-}
-
 const router = useRouter()
 const webContent = webContentStore()