47 8 months ago
parent
commit
53f9c0b4cd

+ 5 - 1
src/api/system/userAchievement/index.ts

@@ -21,7 +21,11 @@ export const UserAchievementApi = {
     getSelfAchievementPage: async (params: any) => {
       return await request.get({ url: `/system/user-achievement/selfPage`, params })
     },
-  
+
+    // 个人查询成果分页
+    getOneUserAchievementPage: async (id: number) => {
+      return await request.get({ url: `/system/user-achievement//oneUserPage?id=` + id })
+    },
 
   // 查询成果详情
   getUserAchievement: async (id: number) => {

+ 1 - 1
src/views/system/graduateStudent/UserImportForm.vue

@@ -132,7 +132,7 @@ const handleExceed = (): void => {
 
 /** 下载模板操作 */
 const importTemplate = async () => {
-  const res = await UserApi.importGraduateStudentTemplate()
+  const res = await UserApi.importUserTemplate()
   download.excel(res, '用户导入模版.xls')
 }
 </script>

+ 30 - 20
src/views/system/studentAttendanceManage/studentFaceManage/StudentFaceForm.vue

@@ -81,27 +81,37 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 // };
 
 /** 提交表单 */
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-const submitForm = async () => {
-  // 校验表单
-  // await formRef.value.validate()
-  // 提交请求
-  formLoading.value = true
+const emit = defineEmits(['success','error'])
+ // 定义 success 事件,用于操作成功后的回调
+ const submitForm = async () => {
+  formLoading.value = true;
   try {
-    const data = formData.value as unknown as UserVO
-      console.log(data,'data');
-      // const message = await UserApi.updateStudentImg(data.userNumber, data.photoUrl)
-      await UserApi.updateStudentImg(data.userNumber, data.photoUrl)
-      message.success('修改成功')
-    
-    dialogVisible.value = false
-    // 发送操作成功的事件
-    emit('success')
-    // 通知父组件重新加载数据
-    
-  } finally {
-    formLoading.value = false
-  }
+    const data = formData.value as unknown as UserVO;
+    console.log(data, 'data');
+    const msg = await UserApi.updateStudentImg(data.userNumber, data.photoUrl);
+    console.log(msg, 'msg');
+
+    // 假设 msg 包含操作结果的信息
+    if (msg === '更新照片成功' || msg === '删除照片成功') {
+      // 显示成功提示
+      message.success('修改成功');
+     dialogVisible.value = false;
+      // 发送操作成功的事件
+     emit('success');
+     // 通知父组件重新加载数据
+    } else {
+     // 显示错误提示
+     message.error(msg);
+      // 发送错误事件
+      emit('error');
+    }
+  } catch (error) {
+    console.error(error);
+    message.error('提交失败,请稍后重试');
+    emit('error');
+  } finally {
+    formLoading.value = false;
+  }
 }
 
 /** 重置表单 */

+ 56 - 43
src/views/system/studentAttendanceManage/studentFaceManage/StudentFaceImport.vue

@@ -147,49 +147,62 @@ const submitForm = async () => {
 /** 文件上传成功 */
 const emits = defineEmits(['success'])
 const submitFormSuccess = (response: any) => {
-  if (response.data.code !== 0) {
-    console.log(response.data.code,'code');   
-    message.error(response.msg)
-    formLoading.value = false
-    return
-  }
-  // 拼接提示语
-  const data = response.data.data;
-  console.log(data,'data');
-  // let text = data;
-  let text = '图片上传成功数量:' + data.imageImportResult.createImages.length + ';'
-  for (let username of data.imageImportResult.createImages) {
-    text += '< ' + username + ' >'
-  }
-  text += '图片错误数量:' + data.imageImportResult.errorImages.length + ';'
-  for (const username of data.imageImportResult.errorImages) {
-    text += '< ' + username + ' >'
-  }
-  text += '图片上传失败数量:' + data.imageImportResult.failureImages.length + ';'
-  for (const username of data.imageImportResult.failureImages) {
-    text += '< ' + username + ' >'
-  }
-  text += '找不到用户数量:' + data.imageImportResult.nullUsers.length + ';'
-  for (const username of data.imageImportResult.nullUsers) {
-    text += '< ' + username + ' >'
-  }
-  text += '文件上传成功数量:' + data.userImportResult.createUsernames.length + ';'
-  for (let username of data.userImportResult.createUsernames) {
-    text += '< ' + username + ' >'
-  }
-  text += '文件更新数量:' + data.userImportResult.updateUsernames.length + ';'
-  for (const username of data.userImportResult.updateUsernames) {
-    text += '< ' + username + ' >'
-  }
-  text += '文件上传失败数量:' + Object.keys(data.userImportResult.failureUsernames).length + ';'
-  for (const username in data.userImportResult.failureUsernames) {
-    text += '< ' + username + ': ' + data.userImportResult.failureUsernames[username] + ' >'
-  }
-  message.alert(text)
-  formLoading.value = false
-  dialogVisible.value = false
-  // 发送操作成功的事件
-  emits('success')
+  if (response.data.code !== 0) {
+    console.log(response.data.code,'code');   
+    message.error(response.msg)
+    formLoading.value = false
+    return
+  }
+  // 拼接提示语
+  const data = response.data.data;
+  console.log(data,'data');
+  // let text = data;
+  let text = '上传结果:\n';
+
+// 检查 imageImportResult 是否存在
+if (data.imageImportResult) {
+  text += '图片上传成功数量:' + data.imageImportResult.createImages.length + ';';
+  for (let username of data.imageImportResult.createImages) {
+    text += '< ' + username + ' >';
+  }
+  text += '图片错误数量:' + data.imageImportResult.errorImages.length + ';';
+  for (const username of data.imageImportResult.errorImages) {
+    text += '< ' + username + ' >';
+  }
+  text += '图片上传失败数量:' + data.imageImportResult.failureImages.length + ';';
+  for (const username of data.imageImportResult.failureImages) {
+    text += '< ' + username + ' >';
+  }
+  text += '找不到用户数量:' + data.imageImportResult.nullUsers.length + ';';
+  for (const username of data.imageImportResult.nullUsers) {
+    text += '< ' + username + ' >';
+  }
+} else {
+  text += '图片上传结果为空';
+}
+
+// 检查 userImportResult 是否存在
+if (data.userImportResult) {
+  text += '用户上传成功数量:' + data.userImportResult.createUsernames.length + ';';
+  for (let username of data.userImportResult.createUsernames) {
+    text += '< ' + username + ' >';
+  }
+  text += '用户存在数量:' + data.userImportResult.existUsernames.length + ';';
+  for (const username of data.userImportResult.existUsernames) {
+    text += '< ' + username + ' >';
+  }
+  text += '用户上传失败数量:' + Object.keys(data.userImportResult.failureUsernames).length + ';';
+  for (const username in data.userImportResult.failureUsernames) {
+    text += '< ' + username + ': ' + data.userImportResult.failureUsernames[username] + ' >';
+  }
+} else {
+  text += '用户上传结果为空';
+}
+  message.alert(text)
+  formLoading.value = false
+  dialogVisible.value = false
+  // 发送操作成功的事件
+  emits('success')
 }
 
 const submitZipSuccess = (response: any) => {

+ 2 - 0
src/views/system/studentAttendanceManage/studentFaceManage/index.vue

@@ -105,6 +105,7 @@
       <el-table-column label="详情" align="center" prop="photoUrl">
         <template #default="scope">
           <el-image
+            v-if="scope.row.photoUrl"
             lazy
             class="h-80px w-80px"
             :src="scope.row.photoUrl"
@@ -116,6 +117,7 @@
             :initial-index="4"
             fit="cover"
           />
+          <div v-else class="h-80px w-80px bg-black"></div>
           <!-- <img :src="scope.row.photoUrl" alt="详情图片" style="width: 50px; height: 50px;" /> -->
         </template>
       </el-table-column>

+ 4 - 2
src/views/system/workroomTeacher/user/student.vue

@@ -237,6 +237,7 @@ const getList = async () => {
   loading.value = true
   try {
     const data = await UserApi.getDeptStudentPage(queryParams)
+    console.log(data)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -245,10 +246,11 @@ const getList = async () => {
 }
 
 const router = useRouter()
-const openUserAchievement = (userId) => {
-  router.push({ name: 'UserAchievement', query: { id: userId } });
+const openUserAchievement = (id) => {
+  router.push({ name: 'UserAchievement', query: { id: id} });
 }
 
+
 /** 搜索按钮操作 */
 const handleQuery = () => {
   queryParams.pageNo = 1

+ 3 - 20
src/views/system/workroomTeacher/userAchievement/index.vue

@@ -157,7 +157,6 @@ import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievem
 import UserAchievementForm from './UserAchievementForm.vue'
 import * as UserApi from '@/api/system/user'
 import { useRoute } from 'vue-router'
-import { getUserProfile } from '@/api/system/user/profile'
 
 /** 成果 列表 */
 defineOptions({ name: 'UserAchievement' })
@@ -166,22 +165,7 @@ const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 
 const route = useRoute()
-const userId = ref() // 用于存储用户 ID
-const userDetail = ref({}) // 用于存储用户详情
-
-// 根据 ID 获取用户详情
-const fetchUserDetail = async () => {
-  if (userId) {
-    const data = await getUserProfile() // 假设你有这个 API 方法
-    userDetail.value = data
-  }
-}
-// const userInfo = ref({} as ProfileVO)
-// const getUserInfo = async () => {
-//   const users = await getUserProfile()
-//   console.log(users)
-//   userInfo.value = users
-// }
+const userId = ref(route.query.id);
 
 const loading = ref(true) // 列表的加载中
 const list = ref<UserAchievementVO[]>([]) // 列表的数据
@@ -189,7 +173,7 @@ const total = ref(0) // 列表的总页数
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
-  userId: undefined,
+  userId: userId.value,
   achievementName: undefined,
   achievementType: undefined,
   userName: undefined,
@@ -214,6 +198,7 @@ const getDeptUser = async () => {
 const getList = async () => {
   loading.value = true
   try {
+    queryParams.userId = userId.value;
     const data = await UserAchievementApi.getUserAchievementPage(queryParams)
     console.log(data,'890');
     list.value = data.list
@@ -263,7 +248,5 @@ const handleExport = async () => {
 onMounted( () => {
   getList()
   getDeptUser()
-  userId.value = route.query.userId // 从路由查询参数中获取 ID
-  fetchUserDetail() // 获取用户详情
 })
 </script>