47 3 hónapja
szülő
commit
93b7111b14

+ 3 - 3
src/api/system/user/index.ts

@@ -105,17 +105,17 @@ export const importUserTemplate = () => {
 
 // 导出教师
 export const exportTeacherList = () => {
-  return request.get({ url: '/system/user/exportTeacher' })
+  return request.download({ url: '/system/user/exportTeacher' })
 }
 
 // 导出在校生
 export const exportStudentList = () => {
-  return request.get({ url: '/system/user/exportStudent' })
+  return request.download({ url: '/system/user/exportStudent' })
 }
 
 // 导出毕业生
 export const exportGraduateList = () => {
-  return request.get({ url: '/system/user/exportGraduate' })
+  return request.download({ url: '/system/user/exportGraduate' })
 }
 
 

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

@@ -340,13 +340,12 @@ const queryParams = reactive({
   deptId: undefined,
   createTime: [],
   supervisor: undefined,
+  supervisorId: undefined,
   supervisorMobile: undefined,
   workPlace: undefined,
   grade: undefined,
   userNumber: undefined,
   email: undefined,
-  leaderUserId: undefined,
-
 })
 const queryFormRef = ref() // 搜索的表单
 
@@ -375,16 +374,17 @@ const users = ref()
 const getSupervisor= async () => {
   try {
     const response = await UserApi.getSupervisor()
+    console.log(response, '所有导师');
     users.value = response
   } catch (error) {
     console.error('Error fetching user data:', error)
   }
 }
-//传supervisorId给queryParams.leaderUserId
+//传supervisorId给queryParams
 const handleSupervisorChange = (value: number) => {
   const selectedUser = users.value.find(user => user.id === value);
   if (selectedUser) {
-    queryParams.leaderUserId = selectedUser.id;
+    queryParams.supervisorId = selectedUser.id;
     handleQuery();
     // queryParams.supervisor = selectedUser.nickname;
   }

+ 24 - 17
src/views/system/selfAchievement/UserAchievementForm.vue

@@ -7,6 +7,17 @@
       label-width="110px"
       v-loading="formLoading"
     >
+      <el-form-item label="" label-width="0">
+        <div style="color:#aeb1b8; padding: 10px; border-radius: 4px; background-color: #f5f7fa; font-size: 13px;line-height: 1.2; letter-spacing: -0.5px;">
+          通过学位论文答辩且在读期间完成下列要求之一:<br />
+          (1)要求学生至少以第一作者,或导师(含校内)为第一作者,学生为第二作者,第一署名单位为桂林理工大学,在本学科或相关学科国内外核心学术刊物、
+          国内外学术会议公开发表1篇论文;发表论文必须符合以下任一条件:北大中文核心期刊、被SCI、EI、SSCI、A&HCI收录的国际学术期刊、被SCI、EI、ISIP检索的会议论文<br />
+          (2)第一署名单位为桂林理工大学,获授权国家发明专利/实用新型专利(署名顺序为研究生第一,或者导师(含校内)第一、学生为第二)至少1项。<br />
+          (3)第一署名单位为桂林理工大学,学生排名第一,导师(含校内)作为指导老师,获得中国国际大学生创新大赛、
+          “挑战杯”大学生创业计划竞赛等全国性赛事省部级一等奖(金奖)或者国家级二等奖(银奖)以上奖项1项。
+          赛事认定参考桂林理工大学每年修订的《全国普通高校大学生竞赛目录》,若有异议,以学院学位委员会认可为准。
+        </div>
+      </el-form-item>
 
       <el-form-item label="成果名称" prop="achievementName">
         <el-input v-model="formData.achievementName" placeholder="请输入成果名称" />
@@ -34,29 +45,17 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="要求">
-        <div style="border: 1px solid #dcdfe6; padding: 10px; border-radius: 4px; background-color: #f5f7fa;">
-          通过学位论文答辩且在读期间完成下列要求之一:<br />
-          (1)要求学生至少以第一作者,或导师(含校内)为第一作者,学生为第二作者,第一署名单位为桂林理工大学,在本学科或相关学科国内外核心学术刊物、
-          国内外学术会议公开发表1篇论文;发表论文必须符合以下任一条件:北大中文核心期刊、被SCI、EI、SSCI、A&HCI收录的国际学术期刊、被SCI、EI、ISIP检索的会议论文<br />
-          (2)第一署名单位为桂林理工大学,获授权国家发明专利/实用新型专利(署名顺序为研究生第一,或者导师(含校内)第一、学生为第二)至少1项。<br />
-          (3)第一署名单位为桂林理工大学,学生排名第一,导师(含校内)作为指导老师,获得中国国际大学生创新大赛、
-          “挑战杯”大学生创业计划竞赛等全国性赛事省部级一等奖(金奖)或者国家级二等奖(银奖)以上奖项1项。
-          赛事认定参考桂林理工大学每年修订的《全国普通高校大学生竞赛目录》,若有异议,以学院学位委员会认可为准。
-        </div>
-      </el-form-item>
-
-      <el-form-item label="是否达到要求" required="true">
-        <el-switch v-model="canSubmit" />
+      <el-form-item label="是否达到要求" porp="isGraduate">
+        <el-switch v-model="formData.isGraduate" />
       </el-form-item>
 
       <el-form-item label="图片材料" prop="detail">
-        <UploadImg v-model="formData.detail" />
+        <UploadImg v-model="formData.detail" @change="handleIsGraduateChange" />
       </el-form-item>
 
     </el-form>
     <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="!canSubmit || formLoading">确 定</el-button>
+      <el-button @click="submitForm" type="primary">确 定</el-button>
       <el-button @click="dialogVisible = false">取 消</el-button>
     </template>
   </Dialog>
@@ -64,6 +63,7 @@
 
 <script setup lang="ts">
 import { UserAchievementApi, UserAchievementVO } from '@/api/system/userAchievement'
+
 /** 成果 表单 */
 defineOptions({ name: 'UserAchievementForm' })
 
@@ -82,6 +82,7 @@ const formData = ref({
   sort: undefined,
   userName: undefined,
   detail: undefined,
+  isGraduate: undefined,
 })
 const formRules = reactive({
   userId: [{ required: true, message: '用户id不能为空', trigger: 'blur' }],
@@ -93,6 +94,8 @@ const formRules = reactive({
 })
 const formRef = ref() // 表单 Ref
 
+
+
 // 成果类型选项
 const achievementTypes = ref([
   { label: '北大中文核心期刊论文', value: "1" },
@@ -110,7 +113,10 @@ const sorts = ref([
 ]);
 
 // 控制提交的开关
-const canSubmit = ref(true)
+// const canSubmit = ref(true)
+const handleIsGraduateChange = (value) => {
+  formData.isGraduate = value ? 0 : 1;
+}
 
 /** 打开弹窗 */
 const open = async (type: string, id?: number) => {
@@ -165,6 +171,7 @@ const resetForm = () => {
     sort: undefined,
     userName: undefined,
     detail: undefined,
+    isGraduate: undefined,
   }
   formRef.value?.resetFields()
 }

+ 1 - 0
src/views/system/selfAchievement/index.vue

@@ -201,6 +201,7 @@ const getList = async () => {
   loading.value = true
   try {
     const data = await UserAchievementApi.getSelfAchievementPage(queryParams)
+    console.log(data, 'data');
     list.value = data.list
     total.value = data.total
   } finally {

+ 39 - 7
src/views/system/studentAttendanceManage/studentAttendance/index.vue

@@ -27,13 +27,21 @@
         />
       </el-form-item> 
       <el-form-item label="导师姓名" prop="supervisor">
-        <el-input
-          placeholder="请输入导师姓名 "
-          v-model="queryParams.supervisor"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
+        <el-select
+              v-model="queryParams.supervisor"
+              @change="handleSupervisorChange"
+              placeholder="请选择导师"
+              clearable
+              filterable
+              class="!w-240px"
+            >
+              <el-option
+                v-for="user in users"
+                :key="user.id"
+                :label="user.nickname"
+                :value="user.id"
+              />
+            </el-select>
       </el-form-item>
       <el-form-item label="工作间名称" prop="deptName" v-if="userInfo.userType === '4'">
         <el-input
@@ -192,6 +200,7 @@ import { StudentAttendanceApi, StudentAttendanceVO } from '@/api/system/studentA
 import StudentAttendanceForm from './StudentAttendanceForm.vue'
 import { DICT_TYPE } from '@/utils/dict'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
+import * as UserApi  from '@/api/system/user'
 
 /** 学生考勤记录 列表 */
 defineOptions({ name: 'StudentAttendance' })
@@ -224,10 +233,32 @@ const queryParams = reactive({
   remark: undefined,
   deptName: undefined,
   supervisor: undefined,
+  supervisorId: undefined,
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
 
+//获取所有导师
+const users = ref()
+const getSupervisor= async () => {
+  try {
+    const response = await UserApi.getSupervisor()
+    console.log(response, '所有导师');
+    users.value = response
+  } catch (error) {
+    console.error('Error fetching user data:', error)
+  }
+}
+//传supervisorId给queryParams
+const handleSupervisorChange = (value: number) => {
+  const selectedUser = users.value.find(user => user.id === value);
+  if (selectedUser) {
+    queryParams.supervisorId = selectedUser.id;
+    handleQuery();
+    // queryParams.supervisor = selectedUser.nickname;
+  }
+}
+
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
@@ -309,6 +340,7 @@ const getStatusClass = (status) => {
 onMounted(async () => {
   await getUserInfo()
   getList()
+  getSupervisor()
 })
 </script>
 

+ 39 - 7
src/views/system/studentAttendanceManage/studentAttendanceError/index.vue

@@ -36,13 +36,21 @@
           />
         </el-form-item>
         <el-form-item label="导师姓名" prop="supervisor">
-        <el-input
-          placeholder="请输入导师姓名 "
-          v-model="queryParams.supervisor"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
+          <el-select
+              v-model="queryParams.supervisor"
+              @change="handleSupervisorChange"
+              placeholder="请选择导师"
+              clearable
+              filterable
+              class="!w-240px"
+            >
+              <el-option
+                v-for="user in users"
+                :key="user.id"
+                :label="user.nickname"
+                :value="user.id"
+              />
+            </el-select>
       </el-form-item>
       <el-form-item label="工作间名称" prop="deptName" v-if="userInfo.userType === '4'">
         <el-input
@@ -187,6 +195,7 @@ import { StudentAttendanceApi, StudentAttendanceVO } from '@/api/system/studentA
 import StudentAttendanceForm from './StudentAttendanceForm.vue'
 import { DICT_TYPE } from '@/utils/dict'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
+import * as UserApi from '@/api/system/user'
 
 /** 学生考勤记录 列表 */
 defineOptions({ name: 'StudentAttendance' })
@@ -218,11 +227,33 @@ const queryParams = reactive({
   createTime: [],
   remark: undefined,
   supervisor: undefined,
+  supervisorId: undefined,
   deptName: undefined,
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
 
+//获取所有导师
+const users = ref()
+const getSupervisor= async () => {
+  try {
+    const response = await UserApi.getSupervisor()
+    console.log(response, '所有导师');
+    users.value = response
+  } catch (error) {
+    console.error('Error fetching user data:', error)
+  }
+}
+//传supervisorId给queryParams
+const handleSupervisorChange = (value: number) => {
+  const selectedUser = users.value.find(user => user.id === value);
+  if (selectedUser) {
+    queryParams.supervisorId = selectedUser.id;
+    handleQuery();
+    // queryParams.supervisor = selectedUser.nickname;
+  }
+}
+
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
@@ -304,6 +335,7 @@ const getStatusClass = (status) => {
 onMounted(async () => {
   await getUserInfo()
   getList()
+  getSupervisor()
 })
 </script>
 

+ 7 - 1
src/views/system/studentAttendanceManage/studentAttendanceExcused/StudentAttendanceForm.vue

@@ -16,6 +16,7 @@
               value-format="YYYY-MM-DD"
               type="date"
               placeholder="选择日期"
+              :disabled-date="disabledDate"
             />
           </el-form-item>
       </el-col>
@@ -143,7 +144,12 @@ const formRef = ref() // 表单 Ref
 // const clockInStatusOptions = [
 //   { label: '正常', value: 0 }, 
 //   { label: '未打卡', value: 1 }, 
-// ];
+// ];
+
+/** 日期选择器的禁用日期 */
+const disabledDate = (date) => {
+  return date.getTime() < new Date().setHours(0, 0, 0, 0); // 禁用今天之前的日期
+};
 
 /** 打开弹窗 */
 const open = async (type: string, id?: number) => {

+ 39 - 7
src/views/system/studentAttendanceManage/studentAttendanceExcused/index.vue

@@ -36,13 +36,21 @@
           />
         </el-form-item>
         <el-form-item label="导师姓名" prop="supervisor">
-        <el-input
-          placeholder="请输入导师姓名 "
-          v-model="queryParams.supervisor"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
+          <el-select
+              v-model="queryParams.supervisor"
+              @change="handleSupervisorChange"
+              placeholder="请选择导师"
+              clearable
+              filterable
+              class="!w-240px"
+            >
+              <el-option
+                v-for="user in users"
+                :key="user.id"
+                :label="user.nickname"
+                :value="user.id"
+              />
+            </el-select>
       </el-form-item>
       <el-form-item label="工作间名称" prop="deptName" v-if="userInfo.userType === '4'">
         <el-input
@@ -187,6 +195,7 @@ import { StudentAttendanceApi, StudentAttendanceVO } from '@/api/system/studentA
 import StudentAttendanceForm from './StudentAttendanceForm.vue'
 import { DICT_TYPE } from '@/utils/dict'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
+import * as UserApi from '@/api/system/user'
 
 /** 学生考勤记录 列表 */
 defineOptions({ name: 'StudentAttendance' })
@@ -218,11 +227,33 @@ const queryParams = reactive({
   createTime: [],
   remark: undefined,
   supervisor: undefined,
+  supervisorId: undefined,
   deptName: undefined,
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
 
+//获取所有导师
+const users = ref()
+const getSupervisor= async () => {
+  try {
+    const response = await UserApi.getSupervisor()
+    console.log(response, '所有导师');
+    users.value = response
+  } catch (error) {
+    console.error('Error fetching user data:', error)
+  }
+}
+//传supervisorId给queryParams
+const handleSupervisorChange = (value: number) => {
+  const selectedUser = users.value.find(user => user.id === value);
+  if (selectedUser) {
+    queryParams.supervisorId = selectedUser.id;
+    handleQuery();
+    // queryParams.supervisor = selectedUser.nickname;
+  }
+}
+
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
@@ -304,6 +335,7 @@ const getStatusClass = (status) => {
 onMounted(async () => {
   await getUserInfo()
   getList()
+  getSupervisor()
 })
 </script>
 

+ 38 - 7
src/views/system/studentAttendanceManage/studentFaceManage/index.vue

@@ -27,13 +27,21 @@
         />
       </el-form-item>
       <el-form-item label="导师姓名" prop="supervisor">
-        <el-input
-          placeholder="请输入导师姓名 "
-          v-model="queryParams.supervisor"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
+        <el-select
+              v-model="queryParams.supervisor"
+              @change="handleSupervisorChange"
+              placeholder="请选择导师"
+              clearable
+              filterable
+              class="!w-240px"
+            >
+              <el-option
+                v-for="user in users"
+                :key="user.id"
+                :label="user.nickname"
+                :value="user.id"
+              />
+            </el-select>
       </el-form-item>
       <el-form-item label="工作间名称" prop="deptName" v-if="userInfo.userType === '4'">
         <el-input
@@ -233,11 +241,33 @@ const queryParams = reactive({
   photoIsExist: undefined,
   remark: undefined,
   supervisor: undefined,
+  supervisorId: undefined,
   deptName: undefined,
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
 
+//获取所有导师
+const users = ref()
+const getSupervisor= async () => {
+  try {
+    const response = await UserApi.getSupervisor()
+    console.log(response, '所有导师');
+    users.value = response
+  } catch (error) {
+    console.error('Error fetching user data:', error)
+  }
+}
+//传supervisorId给queryParams
+const handleSupervisorChange = (value: number) => {
+  const selectedUser = users.value.find(user => user.id === value);
+  if (selectedUser) {
+    queryParams.supervisorId = selectedUser.id;
+    handleQuery();
+    // queryParams.supervisor = selectedUser.nickname;
+  }
+}
+
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
@@ -342,6 +372,7 @@ const handleImportzip = () => {
 onMounted(async () => {
   await getUserInfo()
   getList()
+  getSupervisor()
 })
 </script>
 

+ 1 - 1
src/views/system/user/UserForm.vue

@@ -45,7 +45,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
+          <el-form-item  label="用户密码" prop="password">
             <el-input
               v-model="formData.password"
               placeholder="请输入用户密码"

+ 5 - 4
src/views/system/workroomCollege/user/UserForm.vue

@@ -103,7 +103,7 @@
 
       <el-row>
         <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
-          <el-form-item label="导师名称" prop="supervisorId">
+          <el-form-item label="导师名称" prop="supervisor">
             <el-select
                class="!w-full"
                v-model="formData.supervisor"
@@ -150,7 +150,7 @@
         </el-col>
       </el-row>
 
-      <el-row>
+      <!-- <el-row>
         <el-col :span="24" v-if="formType === 'update-S'">
           <el-form-item label="毕业条件" >
             <el-select 
@@ -170,7 +170,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-      </el-row>
+      </el-row> -->
 
       <el-row>
         <el-col :span="24">
@@ -256,7 +256,7 @@ const formRules = reactive<FormRules>({
       message: '请输入正确的手机号码'
     }
   ],
-  supervisorId: [{ required: true, message: '导师不能为空', trigger: 'blur' }],
+  supervisor: [{ required: true, message: '导师不能为空', trigger: 'blur' }],
   userNumber: [{ required: true, message: '学号不能为空', trigger: 'blur' }],
 })
 
@@ -317,6 +317,7 @@ const open = async (type: string, id?: number) => {
       formLoading.value = false
     }
   }
+  getSupervisor();
   // 加载部门树
   deptList.value = handleTree(await DeptApi.getSimpleDeptList())
   // 加载岗位列表

+ 3 - 20
src/views/system/workroomTeacher/user/UserForm.vue

@@ -112,7 +112,7 @@
                placeholder="请选择导师名称"
                clearable
                filterable
-               class="!w-240px"
+               class="!w-full"
             >
               <el-option
                  v-for="user in users"
@@ -125,31 +125,14 @@
         </el-col>
 
         <el-col :span="12">
-          <el-form-item label="毕业条件" >
-            <el-select 
-              v-model="formData.isGraduate" 
-              prop="isGraduate" 
-              placeholder="是否达成毕业条件" 
-              clearable
-            >
-              <el-option
-                label='已达成'
-                :value="0" 
-              />
-              <el-option
-                label='未达成' 
-                :value="1"  
-              />
-            </el-select>
+          <el-form-item label="学号" prop="userNumber" v-if="formType === 'create-S' || formType === 'update-S'">
+            <el-input v-model="formData.userNumber" placeholder="请输入学号" />
           </el-form-item>
         </el-col>
       </el-row>
 
       <el-row>
         <el-col :span="24">
-          <el-form-item label="学号" prop="userNumber" v-if="formType === 'create-S' || formType === 'update-S'">
-            <el-input v-model="formData.userNumber" placeholder="请输入学号" />
-          </el-form-item>
           <el-form-item label="工号" prop="userNumber" v-if="formType === 'create-T' || formType === 'update-T'">
             <el-input v-model="formData.userNumber" placeholder="请输入工号" />
           </el-form-item>