ソースを参照

学生-实习报告

Xiao_123 2 ヶ月 前
コミット
4368467485

+ 2 - 2
src/api/recruit/personal/student.js

@@ -41,10 +41,10 @@ export const getStudentPracticePage = async (params) => {
 }
 
 // 获取学生实习报告列表
-export const getStudentReportList = async (enterpriseId) => {
+export const getStudentReportList = async (params) => {
 	return await request.get({
 		url: '/app-api/menduner/system/student/get/report/list',
-		params: { enterpriseId }
+		params
 	})
 }
 

+ 11 - 12
src/views/recruit/personal/PersonalCenter/student/InternshipReport/index.vue

@@ -3,14 +3,14 @@
 	<div class="pa-3 d-flex justify-space-between align-center">
 		<Autocomplete v-model="enterpriseId" @change="getList" :item="selectItems" style="width: 300px;" />
 		<div>
-			<v-btn color="primary" elevation="5" prepend-icon="mdi-refresh" @click="handleRefresh">刷 新</v-btn>
+			<v-btn color="primary" elevation="5" prepend-icon="mdi-refresh" @click="getList">刷 新</v-btn>
 			<v-btn color="#00897B" class="ml-5" elevation="5" prepend-icon="mdi-plus" @click="handleAddReport">新增报告</v-btn>
 		</div>
 	</div>
 	<v-divider class="ma-3"></v-divider>
 	<!-- 实习报告 -->
 	<div class="pa-3">
-		<div v-if="enterpriseId && items && items.length > 0">
+		<div v-if="items && items.length > 0">
 			<div v-for="item in items" :key="item.date" class="mb-3">
 				<div class="title-date">{{ item.date }}</div>
 				<div class="d-flex flex-wrap">
@@ -25,7 +25,7 @@
 				</div>
 			</div>
 		</div>
-		<div v-else class="color-666 text-center" style="line-height: 60vh;">请选择要查看的实习企业</div>
+		<Empty v-else :elevation="false" />
 	</div>
 
 	<CtDialog :visible="showDialog" :widthType="2" titleClass="text-h6" :footer="true" title="新增实习报告" @close="handleClose" @submit="handleSubmit">
@@ -77,10 +77,15 @@ const formItems = ref({
   ]
 })
 
+// 实习报告列表
 const getList = async () => {
+	items.value = []
 	try {
-		const data = await getStudentReportList(enterpriseId.value)
-		console.log(data, '实习报告')
+		const data = await getStudentReportList(enterpriseId.value ? { enterpriseId: enterpriseId.value } : {})
+		if (!data || !Object.keys(data).length) return
+		for (let item in data) {
+			items.value.push({ date: item, arr: data[item].map(e => e.url) })
+		}
 	} catch {}
 }
 
@@ -88,15 +93,9 @@ onMounted(() => {
 	const { id } = route.query
 	if (id) {
 		enterpriseId.value = id
-		getList()
 	}
-})
-
-// 刷新
-const handleRefresh = () => {
-	if (!enterpriseId.value) return Snackbar.warning('请先选择要查看的实习企业')
 	getList()
-}
+})
 
 const selectItems = ref({
   label: '请选择要查看的企业',

+ 12 - 3
src/views/recruit/personal/PersonalCenter/student/information/index.vue

@@ -129,11 +129,15 @@ items.value.options.forEach((e, index) => {
 })
 
 // // 学校下拉列表
-const getSchoolListData = async () => {
+const getSchoolListData = async (schoolId) => {
   const item = items.value.options.find(e => e.key === 'schoolId')
   if (!item) return
-  const { records } = await schoolList({current: 1,size: 9999})
+  const { records } = await schoolList({ current: 1,size: 9999 })
   item.items = records || []
+
+  if (schoolId) {
+    item.value = records.find(e => e.schoolId === schoolId)
+  }
 }
 getSchoolListData()
 
@@ -155,7 +159,12 @@ const studentInfoFun = async () => {
   if (data.schoolId) getDepartmentList(data.schoolId)
   // 回显
   items.value.options.forEach(e => {
-    if (data[e.key]) e.value = data[e.key]
+    if (data[e.key]) {
+      if (e.key === 'schoolId') {
+        getSchoolListData(data[e.key])
+      }
+      else e.value = data[e.key]
+    }
   })
 }
 studentInfoFun()