47 5 miesięcy temu
rodzic
commit
744c1b4876
34 zmienionych plików z 644 dodań i 719 usunięć
  1. 0 1
      src/api/system/dept/index.ts
  2. 58 4
      src/api/system/user/index.ts
  3. 5 5
      src/views/Profile/Index.vue
  4. 106 0
      src/views/Profile/components/Achievement.vue
  5. 2 1
      src/views/Profile/components/index.ts
  6. 2 2
      src/views/system/graduateStudent/UserAssignRoleForm.vue
  7. 47 61
      src/views/system/graduateStudent/UserForm.vue
  8. 4 4
      src/views/system/graduateStudent/index.vue
  9. 1 1
      src/views/system/selfAchievement/UserAchievementForm.vue
  10. 2 2
      src/views/system/selfAchievement/index.vue
  11. 4 4
      src/views/system/studentAttendanceManage/studentAttendance/StudentAttendanceForm.vue
  12. 2 2
      src/views/system/studentAttendanceManage/studentAttendance/index.vue
  13. 2 2
      src/views/system/studentAttendanceManage/studentAttendanceError/StudentAttendanceForm.vue
  14. 3 4
      src/views/system/studentAttendanceManage/studentAttendanceError/index.vue
  15. 2 2
      src/views/system/studentAttendanceManage/studentFaceManage/index.vue
  16. 13 3
      src/views/system/workroomCollege/dept/DeptForm.vue
  17. 102 120
      src/views/system/workroomCollege/deptInfo/index.vue
  18. 88 0
      src/views/system/workroomCollege/deptInfo/student.vue
  19. 85 0
      src/views/system/workroomCollege/deptInfo/teacher.vue
  20. 2 2
      src/views/system/workroomCollege/user/UserAssignRoleForm.vue
  21. 30 22
      src/views/system/workroomCollege/user/UserForm.vue
  22. 4 4
      src/views/system/workroomCollege/user/index.vue
  23. 4 4
      src/views/system/workroomCollege/user/student.vue
  24. 6 6
      src/views/system/workroomCollege/user/teacher.vue
  25. 9 5
      src/views/system/workroomCollege/userAchievement/index.vue
  26. 0 149
      src/views/system/workroomCollege/userAchievementcopy/UserAchievementForm.vue
  27. 0 260
      src/views/system/workroomCollege/userAchievementcopy/index.vue
  28. 2 2
      src/views/system/workroomTeacher/user/UserAssignRoleForm.vue
  29. 31 19
      src/views/system/workroomTeacher/user/UserForm.vue
  30. 4 4
      src/views/system/workroomTeacher/user/index.vue
  31. 7 7
      src/views/system/workroomTeacher/user/student.vue
  32. 9 9
      src/views/system/workroomTeacher/user/teacher.vue
  33. 3 3
      src/views/system/workroomTeacher/userAchievement/UserAchievementForm.vue
  34. 5 5
      src/views/system/workroomTeacher/userAchievement/index.vue

+ 0 - 1
src/api/system/dept/index.ts

@@ -37,7 +37,6 @@ export const getDept = async (id: number) => {
   return await request.get({ url: '/system/dept/get?id=' + id })
 }
 
-// 查询部门详情
 
 // 查询登录导师的工作间详情
 export const getUserDept = async () => {

+ 58 - 4
src/api/system/user/index.ts

@@ -38,13 +38,13 @@ export const getStudentPage = (params: PageParam) => {
 }
 
 // 查询当前工作间下老师管理列表
-export const getDeptTeacherPage = (params: PageParam) => {
-  return request.get({ url: '/system/user/DeptTeacherPage', params })
+export const getUserPage0 = (params: PageParam) => {
+  return request.get({ url: '/system/user/page0', params })
 }
 
 // 查询当前工作间下学生管理列表
-export const getDeptStudentPage = (params: PageParam) => {
-  return request.get({ url: '/system/user/DeptStudentPage', params })
+export const getUserPage1 = (params: PageParam) => {
+  return request.get({ url: '/system/user/page1', params })
 }
 
 // 查询当前工作间下用户
@@ -52,6 +52,11 @@ export const getDeptUser = () => {
   return request.get({ url: '/system/user/DeptUser'})
 }
 
+// 查询工作间下的导师
+export const getDeptsupervisor = (deptId: number) => {
+  return request.get({ url: '/system/user/DeptSupervisor' + deptId })
+}
+
 // 查询毕业生管理列表(学院)
 export const getGraduateStudentPage = (params: PageParam) => {
   return request.get({ url: '/system/user/graduateStudentPage',params })
@@ -72,6 +77,10 @@ export const updateStudentImg = (employeeNo: string, photoUrl: string) => {
   return request.post({ url: `/md/acs/teacher-updateUserImage?employeeNo=${employeeNo}&photoUrl=${photoUrl}` })
 }
 
+// 用户自己上传(考勤信息也可上传照片)
+export const importUserData = (photoUrl: string) => {
+  return request.post({ url: '/md/acs/import-selfData', photoUrl })
+}
 
 // 查询所有用户列表
 export const getAllUser = () => {
@@ -118,6 +127,51 @@ export const importGraduateStudentTemplate = () => {
   return request.download({ url: '/system/user/get-import-GraduateStudentTemplate' })
 }
 
+// 导出教师
+export const exportTeacherList = () => {
+  return request.get({ url: '/system/user/exportTeacher' })
+}
+
+// 导出在校生
+export const exportStudentList = () => {
+  return request.get({ url: '/system/user/exportStudent' })  
+}
+
+// 导出毕业生
+export const exportGraduateList = () => {
+  return request.get({ url: '/system/user/exportGraduate' })
+}
+
+// 获得用户模板
+export const importTemplate = () => {
+  return request.download({ url: '/system/user/get-import-template' })
+}
+
+// 获得毕业生模板
+export const importGraduateTemplate = () => {
+  return request.download({ url: '/system/user/get-import-graduateTemplate' })
+}
+
+// 获得导师模板
+export const importTeacherTemplate = () => { 
+  return request.download({ url: '/system/user/get-import-teacherTemplate' })
+}
+
+// 导入导师
+export const importTeacherExcel = (data) => {
+  return request.post({ url: '/system/user/importTeacher', data })
+}
+
+// 导入毕业生
+export const importGraduateExcel = (data) => {
+  return request.post({ url: '/system/user/importGraduateStudent', data })
+}
+
+// 导入在校生
+export const importSchoolStudentExcel = (data) => {
+  return request.post({ url: '/system/user/importSchoolStudent', data })
+}
+
 // 用户密码重置
 export const resetUserPwd = (id: number, password: string) => {
   const data = {

+ 5 - 5
src/views/Profile/Index.vue

@@ -22,12 +22,12 @@
           <el-tab-pane :label="t('profile.info.resetPwd')" name="resetPwd">
             <ResetPwd />
           </el-tab-pane>
-          <el-tab-pane label='人脸信息' name="faceInfo" v-if="userType === 1">
-            <FaceInfo />
+          <el-tab-pane label='成果提交' name="achievement" v-if="userType === 1">
+            <Achievement />
           </el-tab-pane>
-          <el-tab-pane :label="t('profile.info.userSocial')" name="userSocial">
+          <!-- <el-tab-pane :label="t('profile.info.userSocial')" name="userSocial">
             <UserSocial v-model:activeName="activeName" />
-          </el-tab-pane>
+          </el-tab-pane> -->
         </el-tabs>
       </div>
     </el-card>
@@ -35,7 +35,7 @@
 </template>
 <script lang="ts" setup>
 import { ref, onMounted } from 'vue'
-import { BasicInfo, ProfileUser, ResetPwd, UserSocial, FaceInfo } from './components'
+import { BasicInfo, ProfileUser, ResetPwd, UserSocial, FaceInfo, Achievement } from './components'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 
 const userType = ref(0)

+ 106 - 0
src/views/Profile/components/Achievement.vue

@@ -0,0 +1,106 @@
+<template>
+  <div>
+    <el-form
+      ref="formRef"
+      :model="formData"
+      :rules="formRules"
+      v-loading="formLoading"
+      :label-width="200"
+    >
+      <el-form-item label="成果名称" prop="achievementName">
+        <el-input v-model="formData.achievementName" placeholder="请输入成果名称" />
+      </el-form-item>
+
+      <el-form-item label="成果类型" prop="achievementType">
+        <el-select v-model="formData.achievementType" placeholder="请选择成果类型">
+          <el-option
+            v-for="option in achievementTypes"
+            :key="option.value"
+            :label="option.label"
+            :value="option.value"
+          />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="图片材料" prop="detail">
+        <UploadImg v-model="formData.detail" />
+      </el-form-item>
+    </el-form>
+
+    <div style="text-align: center; margin-top: 20px;">
+      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
+      <el-button @click="resetForm" type="danger">重置</el-button>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievement'
+
+
+defineOptions({ name: 'Achievement' })
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+const formData = ref({
+  id: undefined,
+  userId: undefined,
+  achievementName: undefined,
+  achievementType: undefined,
+  userName: undefined,
+  detail: undefined,
+})
+
+const formRules = reactive({
+  userId: [{ required: true, message: '用户id不能为空', trigger: 'blur' }],
+  achievementName: [{ required: true, message: '成果名称不能为空', trigger: 'blur' }],
+  achievementType: [{ required: true, message: '成果类型不能为空', trigger: 'change' }],
+  userName: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
+  detail: [{ required: true, message: '图片材料不能为空', trigger: 'blur' }],
+})
+
+const formRef = ref() // 表单 Ref
+
+// 成果类型选项
+const achievementTypes = ref([
+  { label: '论文', value: "1" },
+  { label: '专利', value: "2" },
+  { label: '著作', value: "3" },
+]);
+
+/** 提交表单 */
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+const submitForm = async () => {
+  // 校验表单
+  await formRef.value.validate()
+  // 提交请求
+  formLoading.value = true
+  try {
+    const data = formData.value as unknown as UserAchievementVO
+    await UserAchievementApi.createSelfAchievement(data)
+    // 发送操作成功的事件
+    emit('success')
+  } finally {
+    formLoading.value = false
+  }
+}
+
+/** 重置表单 */
+const resetForm = () => {
+  formData.value = {
+    id: undefined,
+    userId: undefined,
+    achievementName: undefined,
+    achievementType: undefined,
+    userName: undefined,
+    detail: undefined,
+  }
+  formRef.value?.resetFields()
+}
+</script>
+
+<style lang="scss" scoped>
+/* 可在此处添加样式 */
+</style>

+ 2 - 1
src/views/Profile/components/index.ts

@@ -4,5 +4,6 @@ import ResetPwd from './ResetPwd.vue'
 import UserAvatarVue from './UserAvatar.vue'
 import UserSocial from './UserSocial.vue'
 import FaceInfo from './FaceInfo.vue'
+import Achievement from './Achievement.vue'
 
-export { BasicInfo, ProfileUser, ResetPwd, UserAvatarVue, UserSocial, FaceInfo }
+export { BasicInfo, ProfileUser, ResetPwd, UserAvatarVue, UserSocial, FaceInfo, Achievement }

+ 2 - 2
src/views/system/graduateStudent/UserAssignRoleForm.vue

@@ -1,10 +1,10 @@
 <template>
   <Dialog v-model="dialogVisible" title="分配角色">
     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
-      <el-form-item label="用户名称">
+      <el-form-item label="账号">
         <el-input v-model="formData.username" :disabled="true" />
       </el-form-item>
-      <el-form-item label="用户昵称">
+      <el-form-item label="姓名">
         <el-input v-model="formData.nickname" :disabled="true" />
       </el-form-item>
       <el-form-item label="角色">

+ 47 - 61
src/views/system/graduateStudent/UserForm.vue

@@ -9,22 +9,17 @@
     >
       <el-row>
         <el-col :span="12">
-          <el-form-item label="用户昵称" prop="nickname">
-            <el-input v-model="formData.nickname" placeholder="请输入用户昵称" />
+          <el-form-item label="姓名" prop="nickname">
+            <el-input v-model="formData.nickname" placeholder="请输入姓名" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="工作间" prop="deptId" v-if="userInfo.userType === '4'">
-            <el-tree-select
-              v-model="formData.deptId"
-              :data="deptList"
-              :props="defaultProps"
-              check-strictly
-              node-key="id"
-              placeholder="请选择归属工作间"
-            />
+        <el-form-item label="用户类型" prop="userType">
+            <span style="margin-left: 10px;">毕业生</span>
+            <input v-model="formData.userType" value="2" hidden />          
           </el-form-item>
         </el-col>
+        
       </el-row>
       <el-row>
         <el-col :span="12">
@@ -59,8 +54,8 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
-            <el-input v-model="formData.username" placeholder="请输入用户名称" />
+          <el-form-item v-if="formData.id === undefined" label="账号" prop="username">
+            <el-input v-model="formData.username" placeholder="请输入账号" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -76,48 +71,17 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item label="用户性别">
-            <el-select v-model="formData.sex" placeholder="请选择">
-              <el-option
-                v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <!-- <el-form-item label="岗位">
-            <el-select v-model="formData.postIds" multiple placeholder="请选择">
-              <el-option
-                v-for="item in postList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id!"
-              />
-            </el-select>
-          </el-form-item> -->
-          <el-form-item label="用户类型" prop="userType">
-            <el-select v-model="formData.userType" placeholder="请选择用户类型">
-              <el-option
-                v-for="option in userTypes"
-                :key="option.value"
-                :label="option.label"
-                :value="option.value"
-                />
-            </el-select>
-          </el-form-item>
-        </el-col>
-      </el-row>
-
-      <el-row>
-        <el-col :span="12">
-          <el-form-item label="工作地点" prop="workPlace">
-            <el-input v-model="formData.workPlace" maxlength="11" placeholder="请输入工作地点" />
+          <el-form-item label="工作间" prop="deptId" v-if="userInfo.userType === '4'">
+            <el-tree-select
+              v-model="formData.deptId"
+              :data="deptList"
+              :props="defaultProps"
+              check-strictly
+              node-key="id"
+              placeholder="请选择归属工作间"
+            />
           </el-form-item>
         </el-col>
-
         <el-col :span="12">
               <el-form-item label="导师名称" prop="supervisorId" v-if="userInfo.userType === '4'">
                   <el-select
@@ -138,6 +102,28 @@
           </el-form-item>
         </el-col>
       </el-row>
+
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="用户性别">
+            <el-select v-model="formData.sex" placeholder="请选择">
+              <el-option
+                v-for="dict in getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="工作地点" prop="workPlace">
+            <el-input v-model="formData.workPlace" maxlength="11" placeholder="请输入工作地点" />
+          </el-form-item>
+        </el-col>
+
+      
+      </el-row>
       <el-row>
         <el-col :span="24">
           <el-form-item label="导师电话" prop="supervisorMobile" v-if="userInfo.userType === '4'">
@@ -209,8 +195,8 @@ const formData = ref({
   workPlace:""
 })
 const formRules = reactive<FormRules>({
-  username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
-  nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
+  username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
+  nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   email: [
     {
@@ -233,12 +219,12 @@ const postList = ref([] as PostApi.PostVO[]) // 岗位列表
 
 
 //用户类型
-const userTypes = ref([
-  { label: '本校生', value: "1" },
-  { label: '毕业生', value: "2" },
-  // { label: '导师', value: "3" },
-  // { label: '学院', value: "4" }
-]);
+// const userTypes = ref([
+//   { label: '本校生', value: "1" },
+//   { label: '毕业生', value: "2" },
+//   // { label: '导师', value: "3" },
+//   // { label: '学院', value: "4" }
+// ]);
 
 const currentYear = new Date().getFullYear(); // 获取当前年份
 const gradeOptions = computed(() => {

+ 4 - 4
src/views/system/graduateStudent/index.vue

@@ -12,10 +12,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户昵称" prop="nickname">
+          <el-form-item label="姓名" prop="nickname">
             <el-input
               v-model="queryParams.nickname"
-              placeholder="请输入用户昵称"
+              placeholder="请输入姓名"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -109,13 +109,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <!-- <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"   
           /> -->
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"

+ 1 - 1
src/views/system/selfAchievement/UserAchievementForm.vue

@@ -57,7 +57,7 @@ const formRules = reactive({
   userId: [{ required: true, message: '用户id不能为空', trigger: 'blur' }],
   achievementName: [{ required: true, message: '成果名称不能为空', trigger: 'blur' }],
   achievementType: [{ required: true, message: '成果类型不能为空', trigger: 'change' }],
-  userName: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
+  userName: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
 })
 const formRef = ref() // 表单 Ref
 

+ 2 - 2
src/views/system/selfAchievement/index.vue

@@ -70,7 +70,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="Id" align="center" prop="id" />
       <!-- <el-table-column label="用户 Id" align="center" prop="userId" v-if="false" /> -->
-      <!-- <el-table-column label="用户名称" align="center" prop="userName" /> -->
+      <!-- <el-table-column label="账号" align="center" prop="userName" /> -->
       <el-table-column label="成果名称" align="center" prop="achievementName" />
       <el-table-column label="成果类型" align="center" prop="achievementType">
         <template #default="rowData">
@@ -94,7 +94,7 @@
         :formatter="dateFormatter"
         width="180px"
       />
-      <el-table-column label="照片详情 url" align="center">
+      <el-table-column label="图片材料" align="center">
         <!-- #default获取当前·行数据 -->
         <template #default="{ row }">
           <a :href="row.detail" target="_blank" v-if="row.detail">{{ row.detail }}</a>

+ 4 - 4
src/views/system/studentAttendanceManage/studentAttendance/StudentAttendanceForm.vue

@@ -7,7 +7,7 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="学生id" prop="studentId">
+      <!-- <el-form-item label="学生id" prop="studentId">
         <el-input v-model="formData.studentId" placeholder="请输入学生id" />
       </el-form-item>
       <el-form-item label="学生名称" prop="studentName">
@@ -22,14 +22,14 @@
       <el-form-item label="工作间名称" prop="deptName">
         <el-input v-model="formData.deptName" placeholder="请输入工作间名称" />
       </el-form-item>
-      <!-- <el-form-item label="日期" prop="date">
+      <el-form-item label="日期" prop="date">
         <el-date-picker
           v-model="formData.date"
           type="date"
           value-format="x"
           placeholder="选择日期"
         />
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item label="打卡时间" prop="clockInTime">
         <el-date-picker
           v-model="formData.clockInTime"
@@ -38,7 +38,7 @@
           placeholder="选择打卡时间"
         />
       </el-form-item>
-      <!-- <el-form-item label="打卡状态 0正常,1迟到、2早退、3缺勤、4请假" prop="clockInStatus">
+      <el-form-item label="打卡状态 0正常,1迟到、2早退、3缺勤、4请假" prop="clockInStatus">
         <el-radio-group v-model="formData.clockInStatus">
           <el-radio label="1">请选择字典生成</el-radio>
         </el-radio-group>

+ 2 - 2
src/views/system/studentAttendanceManage/studentAttendance/index.vue

@@ -8,9 +8,9 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="用户昵称" prop="studentName">
+      <el-form-item label="姓名" prop="studentName">
             <el-input
-              placeholder="请输入用户昵称 "
+              placeholder="请输入姓名 "
               v-model="queryParams.studentName"
               clearable
                @keyup.enter="handleQuery"

+ 2 - 2
src/views/system/studentAttendanceManage/studentAttendanceError/StudentAttendanceForm.vue

@@ -7,7 +7,7 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="学生id" prop="studentId">
+      <!-- <el-form-item label="学生id" prop="studentId">
         <el-input v-model="formData.studentId" placeholder="请输入学生id" />
       </el-form-item>
       <el-form-item label="学生名称" prop="studentName">
@@ -21,7 +21,7 @@
       </el-form-item>
       <el-form-item label="工作间名称" prop="deptName">
         <el-input v-model="formData.deptName" placeholder="请输入工作间名称" />
-      </el-form-item>
+      </el-form-item> -->
       <!-- <el-form-item label="日期" prop="date">
         <el-date-picker
           v-model="formData.date"

+ 3 - 4
src/views/system/studentAttendanceManage/studentAttendanceError/index.vue

@@ -8,9 +8,9 @@
       :inline="true"
       label-width="68px"
     >
-        <el-form-item label="用户昵称" prop="studentName">
+        <el-form-item label="姓名" prop="studentName">
             <el-input
-              placeholder="请输入用户昵称 "
+              placeholder="请输入姓名 "
               v-model="queryParams.studentName"
               clearable
                @keyup.enter="handleQuery"
@@ -70,7 +70,6 @@
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="Id" align="center" prop="id" />
-
       <el-table-column label="学生名称" align="center" prop="studentName" />
       <!-- <el-table-column
         label="打卡时间"
@@ -92,6 +91,7 @@
           <dict-tag :type="DICT_TYPE.SYSTEM_STUDENT_ATTENDANCE_TYPE" :value="scope.row.clockInStatus" />  
         </template>
       </el-table-column>
+      <el-table-column label="日期" align="center"  prop="date" width="150"/>
       <!-- <el-table-column label="打卡状态 " align="center" prop="clockInStatus" >
         <template #default="rowData">
           <span :class="getStatusClass(rowData.row.clockInStatus)">
@@ -111,7 +111,6 @@
           </span>
         </template>
       </el-table-column> -->
-     
       <el-table-column label="备注原因" align="center" prop="remark" />
       <el-table-column label="操作" align="center" min-width="120px">
         <template #default="scope">

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

@@ -8,9 +8,9 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="用户昵称" prop="nickname">
+      <el-form-item label="姓名" prop="nickname">
             <el-input
-              placeholder="请输入用户昵称 "
+              placeholder="请输入姓名 "
               v-model="queryParams.nickname"
               clearable
                @keyup.enter="handleQuery"

+ 13 - 3
src/views/system/workroomCollege/dept/DeptForm.vue

@@ -66,6 +66,9 @@
           />
         </el-select>
       </el-form-item> -->
+      <el-form-item label="工作间地址" prop="address">
+          <el-input v-model="formData.address" placeholder="请输入工作间地址" />
+        </el-form-item>
       <el-form-item label="创建时间" prop="createTime">
         <el-date-picker
           v-model="formData.createTime"
@@ -74,6 +77,9 @@
           placeholder="选择打卡时间"
         />
       </el-form-item>
+      <el-form-item label="简介" prop="description">
+        <el-input type="textarea" v-model="formData.description" placeholder="请输入简介" />
+      </el-form-item>
     </el-form>
     <template #footer>
       <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -82,7 +88,7 @@
   </Dialog>
 </template>
 <script lang="ts" setup>
-import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
+// import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { defaultProps, handleTree } from '@/utils/tree'
 import * as DeptApi from '@/api/system/dept'
 import * as UserApi from '@/api/system/user'
@@ -108,7 +114,9 @@ const formData = ref({
   phone: undefined,
   email: undefined,
   status: CommonStatusEnum.ENABLE,
-  createTime: undefined
+  createTime: undefined,
+  address: undefined,
+  description: undefined
 })
 const formRules = reactive<FormRules>({
   parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
@@ -202,7 +210,9 @@ const resetForm = () => {
     phone: undefined,
     email: undefined,
     status: CommonStatusEnum.ENABLE,
-    createTime: undefined
+    address: undefined,
+    createTime: undefined,
+    description: undefined
   }
   formRef.value?.resetFields()
 }

+ 102 - 120
src/views/system/workroomCollege/deptInfo/index.vue

@@ -6,109 +6,89 @@
       </div>
     </div>
   </el-card> -->
-  <div class="flex">
-    <el-card class="workspace-info w-1/3">
-      <template #header>
-        <div class="card-header">
-          <span>工作间信息</span>
-        </div>
-      </template>
-      <ul class="user-info">
-        <li class="info-item">
-          <Icon class="mr-5px" icon="ep:user" />
-          <span class="info-label">负责人名称:</span>
-          <span class="pull-right">{{ userInfo.user?.map(user => user.nickname).join(', ') }}</span>
-        </li>
+  <div>
+    <div class="flex mb-3">
+      <el-card class="workspace-info w-1/3">
+        <template #header>
+          <div class="card-header">
+            <span>工作间信息</span>
+          </div>
+        </template>
+        <ul class="user-info">
+          <li class="info-item">
+            <Icon class="mr-5px" icon="ep:user" />
+            <span class="info-label">负责人名称:</span>
+            <span class="pull-right">{{ userInfo.user?.map(user => user.nickname).join(', ') }}</span>
+          </li>
+          <li class="info-item">
+            <Icon class="mr-5px" icon="fontisto:email" />
+            <span class="info-label">邮箱:</span>
+            <span class="pull-right">{{ userInfo.email }}</span>
+          </li>
+          <li class="info-item">
+            <Icon class="mr-5px" icon="ep:phone" />
+            <span class="info-label">联系电话:</span>
+            <span class="pull-right">{{ userInfo.phone }}</span>
+          </li>
+          <li class="info-item">
+            <Icon class="mr-5px" icon="fontisto:email" />
+            <span class="info-label">导师人数:</span>
+            <span class="pull-right">{{ userInfo.supervisorNum }}</span>
+          </li>
+          <li class="info-item">
+            <Icon class="mr-5px" icon="ep:user" />
+            <span class="info-label">学生人数:</span>
+            <span class="pull-right">{{ userInfo.studentNum }}</span>
+          </li>
+        </ul>
+      </el-card>
 
-
-        <li class="info-item">
-          <Icon class="mr-5px" icon="fontisto:email" />
-          <span class="info-label">工作室邮箱:</span>
-          <span class="pull-right">{{ userInfo.email }}</span>
-        </li>   
-        <li class="info-item">
-          <Icon class="mr-5px" icon="ep:phone" />
-          <span class="info-label">工作室号码:</span>
-          <span class="pull-right">{{ userInfo.phone }}</span>
-        </li>
-        <li class="info-item">
-          <Icon class="mr-5px" icon="fontisto:email" />
-          <span class="info-label">导师人数:</span>
-          <span class="pull-right">{{ userInfo.supervisorNum }}</span>
-        </li>   
-        <li class="info-item">
-          <Icon class="mr-5px" icon="ep:user" />
-          <span class="info-label">学生人数:</span>
-          <span class="pull-right">{{ userInfo.studentNum }}</span>
-        </li>   
-        <!-- <li class="info-item" v-for="(url, index) in userAchievements.value.datil" :key="index">
-          <Icon class="mr-5px" icon="fontisto:email" />
-          <span class="info-label">成果展示:</span>
-          <span class="pull-right">{{ userInfo.achievement }}</span>
-          <img :src="url" alt="成就展示图片" class="user-image" />
-        </li> -->
-      </ul>
-    </el-card>
-    <el-card class="workspace-info ml-3 w-2/3">
-      <template #header>
-        <div class="card-header">
-          <span>{{ userInfo.name }}</span>
-        </div>
-      </template>
-      <el-form ref="formRef" :model="form" label-width="100px" :rules="rules" style="margin-left: 5%; margin-right: 5%;;">
-        <!-- <el-form-item>
-          <template #label>
-            <span style="font-weight: bold;">负责人信息</span>
-          </template>
-          <span style="font-weight: bold;">------</span>
-        </el-form-item>
-        <el-form-item label="负责人名称" prop="leaderUserId">
-          <el-select
-          v-model="form.leaderUserId"
-          @change="handleSupervisorChange"
-          placeholder="请选择负责人"
-          clearable
-          filterable
-          multiple
-          :disabled="!isEditMode"
-        >
-          <el-option
-            v-for="user in users"
-            :key="user.id"
-            :label="user.nickname"
-            :value="user.id"
-          />
-        </el-select>
-        </el-form-item> -->
-        <el-form-item>
-          <template #label>
-            <span style="font-weight: bold;">工作间信息</span>
-          </template>
-          <span style="font-weight: bold;">------</span>
-        </el-form-item>
-        <el-form-item label="工作室号码" prop="phone">
-          <el-input v-model="form.phone" :disabled="!isEditMode"/>
-        </el-form-item>
-        <el-form-item label="工作室邮箱" prop="email">
-          <el-input v-model="form.email" :disabled="!isEditMode"/>
-        </el-form-item>
-        
-        <el-form-item label="工作间地址" prop="address">
-          <el-input v-model="form.address" :disabled="!isEditMode"/>
-        </el-form-item>
-        <el-form-item label="工作间名称" prop="name">
-          <el-input v-model="form.name" :disabled="!isEditMode"/>
-        </el-form-item>
-        <el-form-item label="工作间简介" prop="description">
-          <el-input type="textarea" v-model="form.description" :disabled="!isEditMode"/>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="toggleEditMode">{{ isEditMode ? '保存' : '修改' }}</el-button>
-          <!-- <el-button type="primary" @click="submit">保存</el-button> -->
-          <!-- <el-button type="danger" @click="init">重置</el-button> -->
-        </el-form-item>
-      </el-form>
-    </el-card>
+      <el-card class="workspace-info ml-3 w-2/3">
+        <template #header>
+          <div class="card-header">
+            <span>{{ userInfo.name }}</span>
+          </div>
+        </template>
+        <el-form ref="formRef" :model="form" label-width="100px" :rules="rules" style="margin-left: 5%; margin-right: 5%;">
+          <el-form-item label="联系电话" prop="phone">
+            <el-input v-model="form.phone" :disabled="!isEditMode"/>
+          </el-form-item>
+          <el-form-item label="邮箱" prop="email">
+            <el-input v-model="form.email" :disabled="!isEditMode"/>
+          </el-form-item>
+          <el-form-item label="工作间地址" prop="address">
+            <el-input v-model="form.address" :disabled="!isEditMode"/>
+          </el-form-item>
+          <el-form-item label="工作间名称" prop="name">
+            <el-input v-model="form.name" :disabled="!isEditMode"/>
+          </el-form-item>
+          <el-form-item label="工作间简介" prop="description">
+            <el-input type="textarea" v-model="form.description" :disabled="!isEditMode"/>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="toggleEditMode">{{ isEditMode ? '保存' : '修改' }}</el-button>
+          </el-form-item>
+        </el-form>
+      </el-card>
+    </div>
+    <div class="flex flex-col">
+       <el-card class="teacher-info w-full">
+        <template #header>
+          <div class="card-header">
+            <span>导师信息</span>
+          </div>
+        </template>
+        <teacher />
+      </el-card>
+      <el-card class="student-info w-full mb-3">
+        <template #header>
+          <div class="card-header">
+            <span>学生信息</span>
+          </div>
+        </template>
+        <student />
+      </el-card>
+    </div>
   </div>
 </template>
 
@@ -121,6 +101,8 @@ import { useMessage } from '@/hooks/web/useMessage';
 import { updateDept, DeptVO, getUserDept } from '@/api/system/dept/index';
 import { getDept } from '@/api/system/dept/index';
 import * as UserApi from '@/api/system/user';
+// import student from './student.vue';
+// import teacher from './teacher.vue';
 
 export default defineComponent({
   setup() {
@@ -185,21 +167,21 @@ export default defineComponent({
         // name: users.user[0].nickname // 提取 nickname
     };
 
-  //获取所有导师
-const users = ref()
-const getSupervisor= async () => {
-  try {
-    const response = await UserApi.getSupervisor()
-    users.value = response
-  } catch (error) {
-    console.error('Error fetching user data:', error)
-  }
-}
+//   //获取工作间下的导师
+// const users = ref()
+// const getDeptsupervisor= async (id) => {
+//   try {
+//     const response = await UserApi.getDeptsupervisor(id)
+//     users.value = response
+//   } catch (error) {
+//     console.error('Error fetching user data:', error)
+//   }
+// }
 
-//传supervisorId给form.leaderUserId
-const handleSupervisorChange = (values) => {
-  form.leaderUserId = values;  // values 是选择的用户ID数组
-}
+// //传supervisorId给form.leaderUserId
+// const handleSupervisorChange = (values) => {
+//   form.leaderUserId = values;  // values 是选择的用户ID数组
+// }
 
 const isEditMode = ref(false);
 
@@ -249,7 +231,7 @@ const toggleEditMode = () => {
       if (id.value) {
         await fetchUserInfo(id.value); // 传入获取到的 ID
       }
-      getSupervisor();
+      // getDeptsupervisor(id);
     });
 
     return {
@@ -262,9 +244,9 @@ const toggleEditMode = () => {
       init,
       rules,
       formRef,
-      users,
-      handleSupervisorChange,
-      getSupervisor,
+      // users,
+      // handleSupervisorChange,
+      // getDeptsupervisor,
     };
   }
 });

+ 88 - 0
src/views/system/workroomCollege/deptInfo/student.vue

@@ -0,0 +1,88 @@
+<template>
+      <ContentWrap>
+        <el-table v-loading="loading" :data="list">
+          <el-table-column label="用户编号" align="center" key="id" prop="id" />
+          <el-table-column
+            label="账号"
+            align="center"
+            prop="username"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="姓名"
+            align="center"
+            prop="nickname"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="工作间"
+            align="center"
+            key="deptName"
+            prop="deptName"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column label="手机号码" align="center" prop="mobile" width="120" />
+          <el-table-column label="是否达成毕业条件" align="center" prop="isGraduate">
+            <template #default="scope">
+              <dict-tag :type="DICT_TYPE.SYSTEM_STUDENT_GRADUATE_STATUS" :value="scope.row.isGraduate" />  
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="创建时间"
+            align="center"
+            prop="createTime"
+            :formatter="dateFormatter"
+            width="180"
+          />
+        
+        </el-table>
+        <Pagination
+          :total="total"
+          v-model:page="queryParams.pageNo"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </ContentWrap>
+
+</template>
+<script lang="ts" setup>
+import { DICT_TYPE } from '@/utils/dict'
+import { dateFormatter } from '@/utils/formatTime'
+import * as UserApi from '@/api/system/user'
+import { useRoute } from 'vue-router'
+
+defineOptions({ name: 'SystemUser' })
+
+const route = useRoute()
+const id = route.query.id 
+
+const loading = ref(true) // 列表的加载中
+const total = ref(0) // 列表的总页数
+const list = ref([]) // 列表的数
+const queryParams = reactive({
+  pageNo: 1,
+  pageSize: 10,
+  username: undefined,
+  mobile: undefined,
+  status: undefined,
+  deptId: id,
+  createTime: [],
+})
+
+/** 查询列表 */
+const getList = async () => {
+  loading.value = true
+  try {
+    queryParams.deptId = id
+    const data = await UserApi.getStudentPage(queryParams)
+    list.value = data.list
+    total.value = data.total
+  } finally {
+    loading.value = false
+  }
+}
+/** 初始化 */
+onMounted(() => {
+  getList()
+})
+</script>

+ 85 - 0
src/views/system/workroomCollege/deptInfo/teacher.vue

@@ -0,0 +1,85 @@
+<template>
+      <ContentWrap>
+        <el-table v-loading="loading" :data="list">
+          <el-table-column label="用户编号" align="center" key="id" prop="id" />
+          <el-table-column
+            label="账号"
+            align="center"
+            prop="username"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="姓名"
+            align="center"
+            prop="nickname"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="工作间"
+            align="center"
+            key="deptName"
+            prop="deptName"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column label="手机号码" align="center" prop="mobile" width="120" />
+          <el-table-column
+            label="创建时间"
+            align="center"
+            prop="createTime"
+            :formatter="dateFormatter"
+            width="180"
+          />
+        <Pagination
+          :total="total"
+          v-model:page="queryParams.pageNo"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-table>
+    </ContentWrap>
+</template>
+<script lang="ts" setup>
+import { dateFormatter } from '@/utils/formatTime'
+import * as UserApi from '@/api/system/user'
+import { useRoute } from 'vue-router'
+
+defineOptions({ name: 'SystemUser' })
+
+const route = useRoute()
+const id = route.query.id 
+
+const loading = ref(true) // 列表的加载中
+const total = ref(0) // 列表的总页数
+const list = ref([]) // 列表的数
+const queryParams = reactive({
+  pageNo: 1,
+  pageSize: 10,
+  username: undefined,
+  mobile: undefined,
+  status: undefined,
+  deptId: id,
+  createTime: []
+})
+
+const showIsGraduate = ref(false);
+
+/** 查询列表 */
+const getList = async () => {
+  loading.value = true
+  try {
+    queryParams.deptId = id
+    const data = await UserApi.getTeacherPage(queryParams)
+    console.log(data, 'data');
+    list.value = data.list
+    total.value = data.total
+    showIsGraduate.value = data.list.some(user => user.hasOwnProperty('isGraduate'));
+  } finally {
+    loading.value = false
+  }
+}
+
+/** 初始化 */
+onMounted(() => {
+  getList()
+})
+</script>

+ 2 - 2
src/views/system/workroomCollege/user/UserAssignRoleForm.vue

@@ -1,10 +1,10 @@
 <template>
   <Dialog v-model="dialogVisible" title="分配角色">
     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
-      <el-form-item label="用户名称">
+      <el-form-item label="账号">
         <el-input v-model="formData.username" :disabled="true" />
       </el-form-item>
-      <el-form-item label="用户昵称">
+      <el-form-item label="姓名">
         <el-input v-model="formData.nickname" :disabled="true" />
       </el-form-item>
       <el-form-item label="角色">

+ 30 - 22
src/views/system/workroomCollege/user/UserForm.vue

@@ -9,8 +9,8 @@
     >
       <el-row>
         <el-col :span="12">
-          <el-form-item label="用户昵称" prop="nickname">
-            <el-input v-model="formData.nickname" placeholder="请输入用户昵称" />
+          <el-form-item label="姓名" prop="nickname">
+            <el-input v-model="formData.nickname" placeholder="请输入姓名" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -40,8 +40,8 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
-            <el-input v-model="formData.username" placeholder="请输入用户名称" />
+          <el-form-item v-if="formData.id === undefined" label="账号" prop="username">
+            <el-input v-model="formData.username" placeholder="请输入账号" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
-          <el-form-item label="用户类型" prop="userType">
+          <!-- <el-form-item label="用户类型" prop="userType">
             <el-select v-model="formData.userType" placeholder="请选择用户类型">
               <el-option
                 v-for="option in userTypes"
@@ -78,10 +78,14 @@
                 :value="option.value"
                 />
             </el-select>
+          </el-form-item> -->
+          <el-form-item label="用户类型" prop="userType">
+            <span style="margin-left: 10px;">在校生</span>
+            <input type="hidden" v-model="formData.userType" value="1" /> <!-- 固定为在校生 -->
           </el-form-item>
         </el-col>
         <el-col :span="12" v-if="formType === 'create-T' || formType === 'update-T'">
-          <el-form-item label="用户类型" prop="userType">
+          <!-- <el-form-item label="用户类型" prop="userType">
             <el-select v-model="formData.userType" placeholder="请选择用户类型">
               <el-option
                 v-for="option in userTypes"
@@ -90,12 +94,16 @@
                 :value="option.value"
                 />
             </el-select>
+          </el-form-item> -->
+          <el-form-item label="用户类型" prop="userType">
+            <span style="margin-left: 10px;">导师</span> <!-- 无法选择,直接显示 -->
+            <input type="hidden" v-model="formData.userType" value="3" /> <!-- 固定为导师 -->
           </el-form-item>
         </el-col>
       </el-row>
 
-      <el-row  v-if="formType === 'create-S' || formType === 'update-S'">
-        <el-col :span="12">
+      <el-row>
+        <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
           <el-form-item label="导师名称" prop="supervisorId">
             <el-select
                v-model="formData.supervisor"
@@ -115,7 +123,7 @@
           </el-form-item>
         </el-col>
 
-        <el-col :span="12">
+        <el-col :span="12" v-if="formType === 'update-S'">
           <el-form-item label="毕业条件" >
             <el-select 
               v-model="formData.isGraduate" 
@@ -187,8 +195,8 @@ const formData = ref({
   isGraduate: 0,
 })
 const formRules = reactive<FormRules>({
-  username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
-  nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
+  username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
+  nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   email: [
     {
@@ -210,17 +218,17 @@ const deptList = ref<Tree[]>([]) // 树形结构
 const postList = ref([] as PostApi.PostVO[]) // 岗位列表
 
 //用户类型
-const userTypes = computed(() => {
-  const types = [];
-  if (formType.value === 'create-S' || formType.value === 'update-S') {
-    types.push({ label: '在校生', value: "1" });
-    types.push({ label: '毕业生', value: "2" });
-  }
-  if (formType.value === 'create-T' || formType.value === 'update-T') {
-    types.push({ label: '导师', value: "3" });
-  }
-  return types;
-});
+// const userTypes = computed(() => {
+//   const types = [];
+//   if (formType.value === 'create-S' || formType.value === 'update-S') {
+//     types.push({ label: '在校生', value: "1" });
+//     types.push({ label: '毕业生', value: "2" });
+//   }
+//   if (formType.value === 'create-T' || formType.value === 'update-T') {
+//     types.push({ label: '导师', value: "3" });
+//   }
+//   return types;
+// });
 
 
 //获取所有导师

+ 4 - 4
src/views/system/workroomCollege/user/index.vue

@@ -20,10 +20,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -98,13 +98,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"

+ 4 - 4
src/views/system/workroomCollege/user/student.vue

@@ -17,10 +17,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -104,13 +104,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"

+ 6 - 6
src/views/system/workroomCollege/user/teacher.vue

@@ -17,10 +17,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -96,13 +96,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"
@@ -143,9 +143,9 @@
                 >
                   <Icon icon="ep:edit" />修改
                 </el-button>
-                <el-button type="text" @click="openUserAchievement(scope.row.id)">
+                <!-- <el-button type="text" @click="openUserAchievement(scope.row.id)">
                   成果详情
-                </el-button>
+                </el-button> -->
                 <el-button
                   link
                   type="danger"

+ 9 - 5
src/views/system/workroomCollege/userAchievement/index.vue

@@ -8,10 +8,10 @@
       :inline="true"
       label-width="68px"
     >
-          <!-- <el-form-item label="用户名称" prop="userName">
+          <!-- <el-form-item label="账号" prop="userName">
         <el-select
           v-model="queryParams.userName"
-          placeholder="请选择用户名称"
+          placeholder="请选择账号"
           clearable
           filterable
           class="!w-240px"
@@ -86,7 +86,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="Id" align="center" prop="id" />
       <el-table-column label="用户 Id" align="center" prop="userId" v-if="false" />
-      <el-table-column label="用户名称" align="center" prop="userName" />
+      <el-table-column label="账号" align="center" prop="userName" />
       <el-table-column label="成果名称" align="center" prop="achievementName" />
       <el-table-column label="成果类型" align="center" prop="achievementType">
         <template #default="rowData">
@@ -110,7 +110,7 @@
         :formatter="dateFormatter"
         width="180px"
       />
-      <el-table-column label="照片详情 url" align="center">
+      <el-table-column label="图片材料" align="center">
         <!-- #default获取当前·行数据 -->
         <template #default="{ row }">
           <a :href="row.detail" target="_blank" v-if="row.detail">{{ row.detail }}</a>
@@ -156,6 +156,7 @@ import download from '@/utils/download'
 import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievement'
 import UserAchievementForm from './UserAchievementForm.vue'
 import * as UserApi from '@/api/system/user'
+import { useRoute } from 'vue-router'
 
 /** 成果 列表 */
 defineOptions({ name: 'UserAchievement' })
@@ -163,13 +164,16 @@ defineOptions({ name: 'UserAchievement' })
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 
+const route = useRoute()
+const id = route.query.id 
+
 const loading = ref(true) // 列表的加载中
 const list = ref<UserAchievementVO[]>([]) // 列表的数据
 const total = ref(0) // 列表的总页数
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
-  userId: undefined,
+  userId: id,
   achievementName: undefined,
   achievementType: undefined,
   userName: undefined,

+ 0 - 149
src/views/system/workroomCollege/userAchievementcopy/UserAchievementForm.vue

@@ -1,149 +0,0 @@
-<template>
-  <Dialog :title="dialogTitle" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      :model="formData"
-      :rules="formRules"
-      label-width="100px"
-      v-loading="formLoading"
-    >
-      <!-- <el-form-item label="用户名称" prop="userName">
-        <el-select v-model="formData.userName" placeholder="请输入用户名称" @change="handleUserChange" filterable>
-          <el-option
-            v-for="user in users"
-            :key="user.id"
-            :label="user.nickname"
-            :value="user.nickname"
-          />
-           隐藏的输入框用于存储 userId
-          <el-input type="hidden" v-model="formData.userId" />
-        </el-select>
-      </el-form-item> -->
-      <el-form-item label="成果名称" prop="achievementName">
-        <el-input v-model="formData.achievementName" placeholder="请输入成果名称" />
-      </el-form-item>
-      <el-form-item label="成果类型" prop="achievementType">
-        <el-select v-model="formData.achievementType" placeholder="请选择成果类型">
-          <el-option :label="'论文'" :value="1" />
-          <el-option :label="'专利'" :value="2" />
-          <el-option :label="'著作'" :value="3" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="图片材料" prop="detail">
-        <UploadImg v-model="formData.detail" />
-      </el-form-item>
-    </el-form>
-    <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
-      <el-button @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
-</template>
-<script setup lang="ts">
-import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievement'
-import * as UserApi from '@/api/system/user'
-
-
-/** 成果 表单 */
-defineOptions({ name: 'UserAchievementForm' })
-
-const { t } = useI18n() // 国际化
-const message = useMessage() // 消息弹窗
-
-const dialogVisible = ref(false) // 弹窗的是否展示
-const dialogTitle = ref('') // 弹窗的标题
-const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
-const formType = ref('') // 表单的类型:create - 新增;update - 修改
-const formData = ref({
-  id: undefined,
-  userId: undefined,
-  achievementName: undefined,
-  achievementType: undefined,
-  userName: undefined,
-  detail: undefined,
-})
-const formRules = reactive({
-  userId: [{ required: true, message: '用户id不能为空', trigger: 'blur' }],
-  achievementName: [{ required: true, message: '成果名称不能为空', trigger: 'blur' }],
-  achievementType: [{ required: true, message: '成果类型不能为空', trigger: 'change' }],
-  userName: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
-})
-const formRef = ref() // 表单 Ref
-
-/** 获取用户列表 */
-// const users = ref();
-// const getDeptUser = async () => {
-//     try {
-//         const response = await UserApi.getDeptUser();
-//         console.log(response);
-//         users.value = response;
-//     } catch (error) {
-//         console.error("Error fetching user data:", error);
-//     }
-// };
-
-/** 打开弹窗 */
-const open = async (type: string, id?: number) => {
-  dialogVisible.value = true
-  dialogTitle.value = t('action.' + type)
-  formType.value = type
-  resetForm()
-  // 修改时,设置数据
-  if (id) {
-    formLoading.value = true
-    try {
-      formData.value = await UserAchievementApi.getUserAchievement(id)
-    } finally {
-      formLoading.value = false
-    }
-  }
-}
-defineExpose({ open }) // 提供 open 方法,用于打开弹窗
-
-/** 用户id更新 */
-// const handleUserChange = (selectedNickname: string) => {
-//   const selectedUser = users.value.find((user: any) => user.nickname === selectedNickname);
-//   formData.value.userId = selectedUser? selectedUser.id : undefined;
-// };
-
-/** 提交表单 */
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-const submitForm = async () => {
-  // 校验表单
-  await formRef.value.validate()
-  // 提交请求
-  formLoading.value = true
-  try {
-    const data = formData.value as unknown as UserAchievementVO
-    if (formType.value === 'create') {
-      await UserAchievementApi.createUserAchievement(data)
-      message.success(t('common.createSuccess'))
-    } else {
-      await UserAchievementApi.updateUserAchievement(data)
-      message.success(t('common.updateSuccess'))
-    }
-    dialogVisible.value = false
-    // 发送操作成功的事件
-    emit('success')
-  } finally {
-    formLoading.value = false
-  }
-}
-
-/** 重置表单 */
-const resetForm = () => {
-  formData.value = {
-    id: undefined,
-    userId: undefined,
-    achievementName: undefined,
-    achievementType: undefined,
-    userName: undefined,
-    detail: undefined,
-  }
-  formRef.value?.resetFields()
-}
-
-onMounted(() => {
-  // getDeptUser();
-})
-</script>

+ 0 - 260
src/views/system/workroomCollege/userAchievementcopy/index.vue

@@ -1,260 +0,0 @@
-<template>
-  <ContentWrap>
-    <!-- 搜索工作栏 -->
-    <el-form
-      class="-mb-15px"
-      :model="queryParams"
-      ref="queryFormRef"
-      :inline="true"
-      label-width="68px"
-    >
-      <!-- <el-form-item label="用户名称" prop="userName">
-        <el-select
-          v-model="queryParams.userName"
-          placeholder="请选择用户名称"
-          clearable
-          filterable
-          class="!w-240px"
-        >
-          <el-option
-            v-for="user in users"
-            :key="user.id"
-            :label="user.nickname"
-            :value="user.nickname"
-          />
-        </el-select>
-      </el-form-item> -->
-      <!-- <el-form-item label="用户名称" prop="userName">
-        <el-input
-          v-model="queryParams.userName"
-          clearable
-          disabled
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item> -->
-
-      <el-form-item label="成果名称" prop="achievementName">
-        <el-input
-          v-model="queryParams.achievementName"
-          placeholder="请输入成果名称"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="成果类型" prop="achievementType">
-        <el-select
-          v-model="queryParams.achievementType"
-          placeholder="请选择成果类型"
-          clearable
-          class="!w-240px"
-        >
-          <el-option :label="'论文'" :value="1" />
-          <el-option :label="'专利'" :value="2" />
-          <el-option :label="'著作'" :value="3" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
-        <el-date-picker
-          v-model="queryParams.createTime"
-          value-format="YYYY-MM-DD HH:mm:ss"
-          type="daterange"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
-          class="!w-220px"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
-        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
-        <el-button
-          type="primary"
-          plain
-          @click="openForm('create')"
-          v-hasPermi="['system:user-achievement:create']"
-        >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          @click="handleExport"
-          :loading="exportLoading"
-          v-hasPermi="['system:user-achievement:export']"
-        >
-          <Icon icon="ep:download" class="mr-5px" /> 导出
-        </el-button>
-      </el-form-item>
-    </el-form>
-  </ContentWrap>
-
-  <!-- 列表 -->
-  <ContentWrap>
-    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="Id" align="center" prop="id" />
-      <el-table-column label="用户 Id" align="center" prop="userId" v-if="false" />
-      <el-table-column label="用户名称" align="center" prop="userName" />
-      <el-table-column label="成果名称" align="center" prop="achievementName" />
-      <el-table-column label="成果类型" align="center" prop="achievementType">
-        <template #default="rowData">
-          <span>
-            {{
-              rowData.row.achievementType == 1
-               ? '论文'
-                : rowData.row.achievementType ==2
-               ? '专利'
-                : rowData.row.achievementType == 3
-               ? '著作'
-                : '未知类型'
-            }}
-          </span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        :formatter="dateFormatter"
-        width="180px"
-      />
-      <el-table-column label="照片详情 url" align="center">
-        <!-- #default获取当前·行数据 -->
-        <template #default="{ row }">
-          <a :href="row.detail" target="_blank" v-if="row.detail">{{ row.detail }}</a>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" min-width="120px">
-        <template #default="rowData">
-          <el-button
-            link
-            type="primary"
-            @click="openForm('update', rowData.row.id)"
-            v-hasPermi="['system:user-achievement:update']"
-          >
-            编辑
-          </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="handleDelete(rowData.row.id)"
-            v-hasPermi="['system:user-achievement:delete']"
-          >
-            删除
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 分页 -->
-    <Pagination
-      :total="total"
-      v-model:page="queryParams.pageNo"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-  </ContentWrap>
-
-  <!-- 表单弹窗:添加/修改 -->
-  <UserAchievementForm ref="formRef" @success="getList" />
-</template>
-
-<script setup lang="ts">
-import { dateFormatter } from '@/utils/formatTime'
-import download from '@/utils/download'
-import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievement'
-import UserAchievementForm from './UserAchievementForm.vue'
-import * as UserApi from '@/api/system/user'
-import { useRoute } from 'vue-router'
-
-/** 成果 列表 */
-defineOptions({ name: 'UserAchievement' })
-
-const message = useMessage() // 消息弹窗
-const { t } = useI18n() // 国际化
-
-const route = useRoute()
-const userId = ref(route.query.id);
-
-const loading = ref(true) // 列表的加载中
-const list = ref<UserAchievementVO[]>([]) // 列表的数据
-const total = ref(0) // 列表的总页数
-const queryParams = reactive({
-  pageNo: 1,
-  pageSize: 10,
-  userId: userId.value,
-  achievementName: undefined,
-  achievementType: undefined,
-  userName: undefined,
-  createTime: [],
-  detail: undefined,
-})
-const queryFormRef = ref() // 搜索的表单
-const exportLoading = ref(false) // 导出的加载中
-
-const users = ref()
-const getDeptUser = async () => {
-  try {
-    const response = await UserApi.getDeptUser()
-    console.log(response,'567');
-    users.value = response
-  } catch (error) {
-    console.error('Error fetching user data:', error)
-  }
-}
-
-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
-    total.value = data.total
-  } finally {
-    loading.value = false
-  }
-}
-
-const handleQuery = () => {
-  queryParams.pageNo = 1
-  getList()
-}
-
-const resetQuery = () => {
-  queryFormRef.value.resetFields()
-  handleQuery()
-}
-
-const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
-}
-
-const handleDelete = async (id: number) => {
-  try {
-    await message.delConfirm()
-    await UserAchievementApi.deleteUserAchievement(id)
-    message.success(t('common.delSuccess'))
-    await getList()
-  } catch {}
-}
-
-const handleExport = async () => {
-  try {
-    await message.exportConfirm()
-    exportLoading.value = true
-    const data = await UserAchievementApi.exportUserAchievement(queryParams)
-    download.excel(data, '成果.xls')
-  } catch {
-  } finally {
-    exportLoading.value = false
-  }
-}
-
-
-onMounted( () => {
-  getList()
-  getDeptUser()
-})
-</script>

+ 2 - 2
src/views/system/workroomTeacher/user/UserAssignRoleForm.vue

@@ -1,10 +1,10 @@
 <template>
   <Dialog v-model="dialogVisible" title="分配角色">
     <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
-      <el-form-item label="用户名称">
+      <el-form-item label="账号">
         <el-input v-model="formData.username" :disabled="true" />
       </el-form-item>
-      <el-form-item label="用户昵称">
+      <el-form-item label="姓名">
         <el-input v-model="formData.nickname" :disabled="true" />
       </el-form-item>
       <el-form-item label="角色">

+ 31 - 19
src/views/system/workroomTeacher/user/UserForm.vue

@@ -9,8 +9,8 @@
     >
       <el-row>
         <el-col :span="12">
-          <el-form-item label="用户昵称" prop="nickname">
-            <el-input v-model="formData.nickname" placeholder="请输入用户昵称" />
+          <el-form-item label="姓名" prop="nickname">
+            <el-input v-model="formData.nickname" placeholder="请输入姓名" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -40,8 +40,8 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item v-if="formData.id === undefined" label="用户名称" prop="username">
-            <el-input v-model="formData.username" placeholder="请输入用户名称" />
+          <el-form-item v-if="formData.id === undefined" label="账号" prop="username">
+            <el-input v-model="formData.username" placeholder="请输入账号" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
-          <el-form-item label="用户类型" prop="userType">
+          <!-- <el-form-item label="用户类型" prop="userType">
             <el-select v-model="formData.userType" placeholder="请选择用户类型">
               <el-option
                 v-for="option in userTypes"
@@ -78,10 +78,14 @@
                 :value="option.value"
                 />
             </el-select>
+          </el-form-item> -->
+          <el-form-item label="用户类型" prop="userType">
+            <span style="margin-left: 10px;">在校生</span>
+            <input type="hidden" v-model="formData.userType" value="1" /> <!-- 固定为在校生 -->
           </el-form-item>
         </el-col>
         <el-col :span="12" v-if="formType === 'create-T' || formType === 'update-T'">
-          <el-form-item label="用户类型" prop="userType">
+          <!-- <el-form-item label="用户类型" prop="userType">
             <el-select v-model="formData.userType" placeholder="请选择用户类型">
               <el-option
                 v-for="option in userTypes"
@@ -90,6 +94,10 @@
                 :value="option.value"
                 />
             </el-select>
+          </el-form-item> -->
+          <el-form-item label="用户类型" prop="userType">
+            <span style="margin-left: 10px;">导师</span> <!-- 无法选择,直接显示 -->
+            <input type="hidden" v-model="formData.userType" value="3" /> <!-- 固定为导师 -->
           </el-form-item>
         </el-col>
       </el-row>
@@ -187,8 +195,8 @@ const formData = ref({
   isGraduate: 0,
 })
 const formRules = reactive<FormRules>({
-  username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
-  nickname: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
+  username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
+  nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   email: [
     {
@@ -209,17 +217,17 @@ const formRef = ref() // 表单 Ref
 const deptList = ref<Tree[]>([]) // 树形结构
 const postList = ref([] as PostApi.PostVO[]) // 岗位列表
 
-const userTypes = computed(() => {
-  const types = [];
-  if (formType.value === 'create-S' || formType.value === 'update-S') {
-    types.push({ label: '在校生', value: "1" });
-    types.push({ label: '毕业生', value: "2" });
-  }
-  if (formType.value === 'create-T' || formType.value === 'update-T') {
-    types.push({ label: '导师', value: "3" });
-  }
-  return types;
-});
+// const userTypes = computed(() => {
+//   const types = [];
+//   if (formType.value === 'create-S' || formType.value === 'update-S') {
+//     types.push({ label: '在校生', value: "1" });
+   
+//   }
+//   if (formType.value === 'create-T' || formType.value === 'update-T') {
+//     types.push({ label: '导师', value: "3" });
+//   }
+//   return types;
+// });
 
 //获取所有导师
 const users = ref()
@@ -320,3 +328,7 @@ onMounted(() => {
   getSupervisor()
 })
 </script>
+
+<style scoped>
+
+</style>

+ 4 - 4
src/views/system/workroomTeacher/user/index.vue

@@ -20,10 +20,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -98,13 +98,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"

+ 7 - 7
src/views/system/workroomTeacher/user/student.vue

@@ -12,10 +12,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -59,14 +59,14 @@
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
              <!-- 暂时不在这新增 -->
-            <el-button
+            <!-- <el-button
               type="primary"
               plain
               @click="openForm('create-S')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button>
+            </el-button> -->
             <el-button
               type="warning"
               plain
@@ -91,13 +91,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"
@@ -243,7 +243,7 @@ const queryFormRef = ref() // 搜索的表单
 const getList = async () => {
   loading.value = true
   try {
-    const data = await UserApi.getDeptStudentPage(queryParams)
+    const data = await UserApi.getUserPage1(queryParams)
     console.log(data)
     list.value = data.list
     total.value = data.total

+ 9 - 9
src/views/system/workroomTeacher/user/teacher.vue

@@ -11,10 +11,10 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item label="用户名称" prop="username">
+          <el-form-item label="账号" prop="username">
             <el-input
               v-model="queryParams.username"
-              placeholder="请输入用户名称"
+              placeholder="请输入账号"
               clearable
               @keyup.enter="handleQuery"
               class="!w-240px"
@@ -90,13 +90,13 @@
         <el-table v-loading="loading" :data="list">
           <el-table-column label="用户编号" align="center" key="id" prop="id" />
           <el-table-column
-            label="用户名称"
+            label="账号"
             align="center"
             prop="username"
             :show-overflow-tooltip="true"
           />
           <el-table-column
-            label="用户昵称"
+            label="姓名"
             align="center"
             prop="nickname"
             :show-overflow-tooltip="true"
@@ -137,17 +137,17 @@
                 >
                   <Icon icon="ep:edit" />修改
                 </el-button>
-                <el-button type="text" @click="openUserAchievement(scope.row.id)">
+                <!-- <el-button type="text" @click="openUserAchievement(scope.row.id)">
                   成果详情
-                </el-button>
-                <el-button
+                </el-button> -->
+                <!-- <el-button
                   link
                   type="danger"
                   @click="handleDelete(scope.row.id)"
                   v-hasPermi="['system:user-achievement:delete']"
                 >
                 <Icon icon="ep:delete" /> 删除
-                </el-button>
+                </el-button> -->
                 <!-- <el-dropdown
                   @command="(command) => handleCommand(command, scope.row)"
                   v-hasPermi="[
@@ -237,7 +237,7 @@ const queryFormRef = ref() // 搜索的表单
 const getList = async () => {
   loading.value = true
   try {
-    const data = await UserApi.getDeptTeacherPage(queryParams)
+    const data = await UserApi.getUserPage0(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {

+ 3 - 3
src/views/system/workroomTeacher/userAchievement/UserAchievementForm.vue

@@ -7,8 +7,8 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <!-- <el-form-item label="用户名称" prop="userName">
-        <el-select v-model="formData.userName" placeholder="请输入用户名称" @change="handleUserChange" filterable>
+      <!-- <el-form-item label="账号" prop="userName">
+        <el-select v-model="formData.userName" placeholder="请输入账号" @change="handleUserChange" filterable>
           <el-option
             v-for="user in users"
             :key="user.id"
@@ -66,7 +66,7 @@ const formRules = reactive({
   userId: [{ required: true, message: '用户id不能为空', trigger: 'blur' }],
   achievementName: [{ required: true, message: '成果名称不能为空', trigger: 'blur' }],
   achievementType: [{ required: true, message: '成果类型不能为空', trigger: 'change' }],
-  userName: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],
+  userName: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
 })
 const formRef = ref() // 表单 Ref
 

+ 5 - 5
src/views/system/workroomTeacher/userAchievement/index.vue

@@ -8,10 +8,10 @@
       :inline="true"
       label-width="68px"
     >
-      <!-- <el-form-item label="用户名称" prop="userName">
+      <!-- <el-form-item label="账号" prop="userName">
         <el-select
           v-model="queryParams.userName"
-          placeholder="请选择用户名称"
+          placeholder="请选择账号"
           clearable
           filterable
           class="!w-240px"
@@ -24,7 +24,7 @@
           />
         </el-select>
       </el-form-item> -->
-      <!-- <el-form-item label="用户名称" prop="userName">
+      <!-- <el-form-item label="账号" prop="userName">
         <el-input
           v-model="queryParams.userName"
           clearable
@@ -95,7 +95,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="Id" align="center" prop="id" />
       <el-table-column label="用户 Id" align="center" prop="userId" v-if="false" />
-      <el-table-column label="用户名称" align="center" prop="userName" />
+      <el-table-column label="账号" align="center" prop="userName" />
       <el-table-column label="成果名称" align="center" prop="achievementName" />
       <el-table-column label="成果类型" align="center" prop="achievementType">
         <template #default="rowData">
@@ -119,7 +119,7 @@
         :formatter="dateFormatter"
         width="180px"
       />
-      <el-table-column label="照片详情 url" align="center">
+      <el-table-column label="图片材料" align="center">
         <!-- #default获取当前·行数据 -->
         <template #default="{ row }">
           <a :href="row.detail" target="_blank" v-if="row.detail">{{ row.detail }}</a>