47 4 months ago
parent
commit
ec107ccbbd

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

@@ -14,12 +14,17 @@
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="12">
         <el-col :span="12">
-        <el-form-item label="用户类型" prop="userType">
-            <span style="margin-left: 10px;">毕业生</span>
-            <input v-model="formData.userType" value="2" hidden />          
+          <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-form-item>
         </el-col>
         </el-col>
-        
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-col :span="12">
         <el-col :span="12">
@@ -36,7 +41,7 @@
         </el-col>
         </el-col>
         <el-col :span="12">
         <el-col :span="12">
           <el-form-item label="学号">
           <el-form-item label="学号">
-            <el-input v-model="formData.userNumber" placeholder="请输入学号" />
+            <el-input v-model="formData.userNumber" placeholder="请输入学号"/>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
@@ -52,25 +57,9 @@
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
+      
       <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>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
-            <el-input
-              v-model="formData.password"
-              placeholder="请输入用户密码"
-              show-password
-              type="password"
-            />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item label="工作间" prop="deptId" v-if="userInfo.userType === '4'">
           <el-form-item label="工作间" prop="deptId" v-if="userInfo.userType === '4'">
             <el-tree-select
             <el-tree-select
               v-model="formData.deptId"
               v-model="formData.deptId"
@@ -81,6 +70,25 @@
               placeholder="请选择归属工作间"
               placeholder="请选择归属工作间"
             />
             />
           </el-form-item>
           </el-form-item>
+        </el-col> -->
+        <el-col :span="12">
+        <el-form-item label="用户类型" prop="userType">
+            <!-- <span style="margin-left: 10px;">毕业生</span>
+            <input v-model="formData.userType" value="2" hidden />           -->
+            <el-input v-model="userTypeG" value="毕业生" disabled />
+          </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="12">
+          <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>
         <el-col :span="12">
         <el-col :span="12">
               <el-form-item label="导师名称" prop="supervisorId" v-if="userInfo.userType === '4'">
               <el-form-item label="导师名称" prop="supervisorId" v-if="userInfo.userType === '4'">
@@ -101,36 +109,25 @@
                   </el-select>
                   </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </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-col :span="12">
-          <el-form-item label="工作地点" prop="workPlace">
-            <el-input v-model="formData.workPlace" maxlength="11" placeholder="请输入工作地点" />
+          <el-form-item v-if="formData.id === undefined" label="用户密码" prop="password">
+            <el-input
+              v-model="formData.password"
+              placeholder="请输入用户密码"
+              show-password
+              type="password"
+            />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
-
-      
       </el-row>
       </el-row>
-      <el-row>
+      <!-- <el-row>
         <el-col :span="24">
         <el-col :span="24">
           <el-form-item label="导师电话" prop="supervisorMobile" v-if="userInfo.userType === '4'">
           <el-form-item label="导师电话" prop="supervisorMobile" v-if="userInfo.userType === '4'">
             <el-input v-model="formData.supervisorMobile" maxlength="11" placeholder="请输入导师电话" />
             <el-input v-model="formData.supervisorMobile" maxlength="11" placeholder="请输入导师电话" />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
-      </el-row>
+      </el-row> -->
       <el-row>
       <el-row>
         <el-col :span="24">
         <el-col :span="24">
           <el-form-item label="备注">
           <el-form-item label="备注">
@@ -199,6 +196,7 @@ const formRules = reactive<FormRules>({
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   email: [
   email: [
+    { required: true, message: '邮箱不能为空', trigger: 'blur' },
     {
     {
       type: 'email',
       type: 'email',
       message: '请输入正确的邮箱地址',
       message: '请输入正确的邮箱地址',
@@ -206,12 +204,14 @@ const formRules = reactive<FormRules>({
     }
     }
   ],
   ],
   mobile: [
   mobile: [
+    { required: true, message: '手机号码不能为空', trigger: 'blur' },
     {
     {
       pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
       pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
       message: '请输入正确的手机号码',
       message: '请输入正确的手机号码',
       trigger: 'blur'
       trigger: 'blur'
     }
     }
-  ]
+  ],
+  userNumber: [{ required: true, message: '学号不能为空', trigger: 'blur' }]
 })
 })
 const formRef = ref() // 表单 Ref
 const formRef = ref() // 表单 Ref
 const deptList = ref<Tree[]>([]) // 树形结构
 const deptList = ref<Tree[]>([]) // 树形结构
@@ -225,6 +225,7 @@ const postList = ref([] as PostApi.PostVO[]) // 岗位列表
 //   // { label: '导师', value: "3" },
 //   // { label: '导师', value: "3" },
 //   // { label: '学院', value: "4" }
 //   // { label: '学院', value: "4" }
 // ]);
 // ]);
+const userTypeG = ref('2')
 
 
 const currentYear = new Date().getFullYear(); // 获取当前年份
 const currentYear = new Date().getFullYear(); // 获取当前年份
 const gradeOptions = computed(() => {
 const gradeOptions = computed(() => {
@@ -282,6 +283,7 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 /** 提交表单 */
 /** 提交表单 */
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const submitForm = async () => {
 const submitForm = async () => {
+  formData.value.userType = userTypeG.value
   // 校验表单
   // 校验表单
   if (!formRef) return
   if (!formRef) return
   const valid = await formRef.value.validate()
   const valid = await formRef.value.validate()

+ 53 - 8
src/views/system/graduateStudent/index.vue

@@ -37,7 +37,33 @@
                 />
                 />
               </el-select>
               </el-select>
         </el-form-item>
         </el-form-item>
-
+          <el-form-item label="学号" prop="userNumber">
+            <el-input
+              v-model="queryParams.userNumber"
+              placeholder="请输入学号"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
+          <el-form-item label="邮箱" prop="email">
+            <el-input
+              v-model="queryParams.email"
+              placeholder="请输入邮箱"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"  
+            />
+          </el-form-item>
+          <el-form-item label="工作地点" prop="workPlace">
+            <el-input
+              v-model="queryParams.workPlace"
+              placeholder="请输入工作地点"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
           <el-form-item label="手机号码" prop="mobile">
           <el-form-item label="手机号码" prop="mobile">
             <el-input
             <el-input
               v-model="queryParams.mobile"
               v-model="queryParams.mobile"
@@ -47,6 +73,23 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <!-- <el-form-item label="导师" prop="supervisor">
+            <el-select
+          v-model="queryParams.leaderUserId"
+          @change="handleSupervisorChange"
+          placeholder="请选择导师"
+          clearable
+          filterable
+          multiple
+        >
+          <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="status">
           <!-- <el-form-item label="状态" prop="status">
             <el-select
             <el-select
               v-model="queryParams.status"
               v-model="queryParams.status"
@@ -62,7 +105,7 @@
               />
               />
             </el-select>
             </el-select>
           </el-form-item> -->
           </el-form-item> -->
-          <el-form-item label="创建时间" prop="createTime">
+          <!-- <el-form-item label="创建时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
@@ -71,7 +114,7 @@
               end-placeholder="结束日期"
               end-placeholder="结束日期"
               class="!w-240px"
               class="!w-240px"
             />
             />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
@@ -125,13 +168,13 @@
           <el-table-column label="学号" align="center" prop="userNumber" width="150" />
           <el-table-column label="学号" align="center" prop="userNumber" width="150" />
           <el-table-column label="邮箱" align="center" prop="email" width="120" />
           <el-table-column label="邮箱" align="center" prop="email" width="120" />
 
 
-          <el-table-column 
+          <!-- <el-table-column 
             v-if="userInfo.userType === '4'" 
             v-if="userInfo.userType === '4'" 
             label="工作间名称" 
             label="工作间名称" 
             align="center" 
             align="center" 
             prop="deptName" 
             prop="deptName" 
             width="120"
             width="120"
-          />
+          /> -->
 
 
           <el-table-column
           <el-table-column
             label="工作地点"
             label="工作地点"
@@ -149,13 +192,13 @@
             width="120" 
             width="120" 
           />
           />
 
 
-          <el-table-column
+          <!-- <el-table-column
             v-if="userInfo.userType !== '3'" 
             v-if="userInfo.userType !== '3'" 
             label="导师电话" 
             label="导师电话" 
             align="center" 
             align="center" 
             prop="supervisorMobile" 
             prop="supervisorMobile" 
             width="120" 
             width="120" 
-          />
+          /> -->
 
 
           <!-- <el-table-column label="状态" key="status">
           <!-- <el-table-column label="状态" key="status">
             <template #default="scope">
             <template #default="scope">
@@ -273,6 +316,8 @@ const queryParams = reactive({
   supervisorMobile: undefined,
   supervisorMobile: undefined,
   workPlace: undefined,
   workPlace: undefined,
   grade: undefined,
   grade: undefined,
+  userNumber: undefined,
+  email: undefined,
 
 
 })
 })
 const queryFormRef = ref() // 搜索的表单
 const queryFormRef = ref() // 搜索的表单
@@ -357,7 +402,7 @@ const handleExport = async () => {
     await message.exportConfirm()
     await message.exportConfirm()
     // 发起导出
     // 发起导出
     exportLoading.value = true
     exportLoading.value = true
-    const data = await UserApi.exportUser(queryParams)
+    const data = await UserApi.exportGraduateList()
     download.excel(data, '用户数据.xls')
     download.excel(data, '用户数据.xls')
   } catch {
   } catch {
   } finally {
   } finally {

+ 23 - 24
src/views/system/studentAttendanceManage/studentAttendance/index.vue

@@ -9,27 +9,24 @@
       label-width="68px"
       label-width="68px"
     >
     >
       <el-form-item label="姓名" prop="studentName">
       <el-form-item label="姓名" prop="studentName">
-            <el-input
-              placeholder="请输入姓名 "
-              v-model="queryParams.studentName"
-              clearable
-               @keyup.enter="handleQuery"
-              class="!w-240px"
-            />
-          </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="datetimerange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              class="!w-240px"
-            />
-          </el-form-item>
-
-      <el-form-item label="打卡状态 " prop="clockInStatus">
+        <el-input
+          placeholder="请输入姓名 "
+          v-model="queryParams.studentName"
+          clearable
+           @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+      <el-form-item label="学号" prop="userNumber">
+        <el-input
+          placeholder="请输入学号 "
+          v-model="queryParams.userNumber"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item> 
+      <!-- <el-form-item label="打卡状态 " prop="clockInStatus">
         <el-select
         <el-select
           v-model="queryParams.clockInStatus"
           v-model="queryParams.clockInStatus"
           placeholder="请选择打卡状态 "
           placeholder="请选择打卡状态 "
@@ -40,7 +37,7 @@
           <el-option :label="'未打卡'" :value="1" />
           <el-option :label="'未打卡'" :value="1" />
 
 
         </el-select>
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
 
 
       <el-form-item>
       <el-form-item>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
@@ -71,10 +68,11 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column type="index" width="50" />
       <el-table-column type="index" width="50" />
       <!-- <el-table-column label="学生id" align="center" prop="studentId" /> -->
       <!-- <el-table-column label="学生id" align="center" prop="studentId" /> -->
-      <el-table-column label="学生名称" align="center" prop="studentName" />
+      <el-table-column label="姓名" align="center" prop="studentName" />
       <!-- <el-table-column label="工作间id" align="center" prop="deptId" /> -->
       <!-- <el-table-column label="工作间id" align="center" prop="deptId" /> -->
       <!-- <el-table-column label="日期" align="center" prop="date" /> -->
       <!-- <el-table-column label="日期" align="center" prop="date" /> -->
       <el-table-column label="学号" align="center" prop="userNumber"  />
       <el-table-column label="学号" align="center" prop="userNumber"  />
+      <el-table-column label="导师姓名" align="center" prop="teacherName" />
       <el-table-column
       <el-table-column
         v-if="userInfo.userType === '4'"
         v-if="userInfo.userType === '4'"
         label="工作间名称"
         label="工作间名称"
@@ -134,7 +132,7 @@
 
 
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" />
+      <!-- <el-table-column label="备注" align="center" prop="remark" /> -->
 <!--      <el-table-column label="操作" align="center" min-width="120px">-->
 <!--      <el-table-column label="操作" align="center" min-width="120px">-->
 <!--        <template #default="scope">-->
 <!--        <template #default="scope">-->
 <!--          <el-button-->
 <!--          <el-button-->
@@ -198,6 +196,7 @@ const queryParams = reactive({
   pageSize: 10,
   pageSize: 10,
   studentId: undefined,
   studentId: undefined,
   studentName: undefined,
   studentName: undefined,
+  userNumber: undefined,
   deptId: undefined,
   deptId: undefined,
   date: [],
   date: [],
   clockInTime: [],
   clockInTime: [],

+ 26 - 15
src/views/system/studentAttendanceManage/studentAttendanceError/index.vue

@@ -9,16 +9,25 @@
       label-width="68px"
       label-width="68px"
     >
     >
         <el-form-item label="姓名" prop="studentName">
         <el-form-item label="姓名" prop="studentName">
-            <el-input
-              placeholder="请输入姓名 "
-              v-model="queryParams.studentName"
-              clearable
-               @keyup.enter="handleQuery"
-              class="!w-240px"
-            />
-          </el-form-item>
-
-      <el-form-item label="创建时间" prop="createTime">
+          <el-input
+            placeholder="请输入姓名 "
+            v-model="queryParams.studentName"
+            clearable
+             @keyup.enter="handleQuery"
+            class="!w-240px"
+          />
+        </el-form-item>
+        <el-form-item label="学号" prop="userNumber">
+          <el-input
+            placeholder="请输入学号 "
+            v-model="queryParams.userNumber"
+            clearable
+            @keyup.enter="handleQuery"
+            class="!w-240px"
+          />
+        </el-form-item>
+  
+      <!-- <el-form-item label="创建时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
@@ -27,9 +36,9 @@
               end-placeholder="结束日期"
               end-placeholder="结束日期"
               class="!w-240px"
               class="!w-240px"
             />
             />
-          </el-form-item>
+          </el-form-item> -->
 
 
-      <el-form-item label="打卡状态 " prop="clockInStatus">
+      <!-- <el-form-item label="打卡状态 " prop="clockInStatus">
         <el-select
         <el-select
           v-model="queryParams.clockInStatus"
           v-model="queryParams.clockInStatus"
           placeholder="请选择打卡状态 "
           placeholder="请选择打卡状态 "
@@ -40,7 +49,7 @@
           <el-option :label="'未打卡'" :value="1" />
           <el-option :label="'未打卡'" :value="1" />
 
 
         </el-select>
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
 
 
       <el-form-item>
       <el-form-item>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
@@ -75,8 +84,9 @@
           {{scope.row.date[0]}} 年 {{scope.row.date[1]}} 月 {{scope.row.date[2]}} 日
           {{scope.row.date[0]}} 年 {{scope.row.date[1]}} 月 {{scope.row.date[2]}} 日
         </template>
         </template>
       </el-table-column>
       </el-table-column>
-      <el-table-column label="学生名称" align="center" prop="studentName" />
+      <el-table-column label="姓名" align="center" prop="studentName" />
       <el-table-column label="学号" align="center" prop="userNumber"  />
       <el-table-column label="学号" align="center" prop="userNumber"  />
+      <el-table-column label="导师姓名" align="center" prop="teacherName" />
       <el-table-column
       <el-table-column
         v-if="userInfo.userType === '4'"
         v-if="userInfo.userType === '4'"
         label="工作间名称"
         label="工作间名称"
@@ -108,7 +118,7 @@
           </span>
           </span>
         </template>
         </template>
       </el-table-column> -->
       </el-table-column> -->
-      <el-table-column label="备注" align="center" prop="remark" />
+      <!-- <el-table-column label="备注" align="center" prop="remark" /> -->
 <!--      <el-table-column label="操作" align="center" min-width="120px">-->
 <!--      <el-table-column label="操作" align="center" min-width="120px">-->
 <!--        <template #default="scope">-->
 <!--        <template #default="scope">-->
 <!--          <el-button-->
 <!--          <el-button-->
@@ -172,6 +182,7 @@ const queryParams = reactive({
   pageSize: 10,
   pageSize: 10,
   studentId: undefined,
   studentId: undefined,
   studentName: undefined,
   studentName: undefined,
+  userNumber: undefined,
   deptId: undefined,
   deptId: undefined,
   date: [],
   date: [],
   clockInTime: [],
   clockInTime: [],

+ 22 - 11
src/views/system/studentAttendanceManage/studentFaceManage/index.vue

@@ -9,23 +9,32 @@
       label-width="68px"
       label-width="68px"
     >
     >
       <el-form-item label="姓名" prop="nickname">
       <el-form-item label="姓名" prop="nickname">
-            <el-input
-              placeholder="请输入姓名 "
-              v-model="queryParams.nickname"
-              clearable
-               @keyup.enter="handleQuery"
-              class="!w-240px"
-            />
+        <el-input
+          placeholder="请输入姓名 "
+          v-model="queryParams.nickname"
+          clearable
+           @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+      <el-form-item label="学号" prop="userNumber">
+        <el-input
+          placeholder="请输入学号 "
+          v-model="queryParams.userNumber"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
       </el-form-item>
       </el-form-item>
 
 
-      <el-form-item label="导入时间" prop="createTime">
+      <!-- <el-form-item label="导入时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
               type="datetime"
               type="datetime"
               class="!w-240px"
               class="!w-240px"
             />
             />
-      </el-form-item>
+      </el-form-item> -->
 
 
       <el-form-item label="导入状态" prop="photoIsExist">
       <el-form-item label="导入状态" prop="photoIsExist">
         <el-select
         <el-select
@@ -75,8 +84,9 @@
   <ContentWrap>
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
     <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="id" />
-      <el-table-column label="学生名称" align="center" prop="nickname" />
+      <el-table-column label="姓名" align="center" prop="nickname" />
       <el-table-column label="学号" align="center" prop="userNumber" width="150" />
       <el-table-column label="学号" align="center" prop="userNumber" width="150" />
+      <el-table-column label="导师姓名" align="center" prop="teacherName" />
       <el-table-column 
       <el-table-column 
         v-if="userInfo.userType === '4'" 
         v-if="userInfo.userType === '4'" 
         label="工作间名称" 
         label="工作间名称" 
@@ -109,7 +119,7 @@
           </span>
           </span>
         </template>
         </template>
       </el-table-column>  -->
       </el-table-column>  -->
-      <el-table-column label="备注原因" align="center" prop="remark" />
+      <!-- <el-table-column label="备注原因" align="center" prop="remark" /> -->
       <el-table-column label="详情" align="center" prop="photoUrl">
       <el-table-column label="详情" align="center" prop="photoUrl">
         <template #default="scope">
         <template #default="scope">
           <el-image
           <el-image
@@ -200,6 +210,7 @@ const queryParams = reactive({
   pageSize: 10,
   pageSize: 10,
   id: undefined,
   id: undefined,
   nickname: undefined,
   nickname: undefined,
+  userNumber: undefined,
   createTime: [],
   createTime: [],
   photoIsExist: undefined,
   photoIsExist: undefined,
   remark: undefined,
   remark: undefined,

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

@@ -24,7 +24,7 @@
       <!-- <el-form-item label="显示排序" prop="sort">
       <!-- <el-form-item label="显示排序" prop="sort">
         <el-input-number v-model="formData.sort" :min="0" controls-position="right" />
         <el-input-number v-model="formData.sort" :min="0" controls-position="right" />
       </el-form-item> -->
       </el-form-item> -->
-      <!-- <el-form-item label="负责人" prop="leaderUserId">
+      <el-form-item label="负责人" prop="leaderUserId">
         <el-select
         <el-select
           v-model="formData.leaderUserId"
           v-model="formData.leaderUserId"
           @change="handleSupervisorChange"
           @change="handleSupervisorChange"
@@ -32,7 +32,6 @@
           clearable
           clearable
           filterable
           filterable
           multiple
           multiple
-          class="!w-240px"
         >
         >
           <el-option
           <el-option
             v-for="user in users"
             v-for="user in users"
@@ -41,7 +40,7 @@
             :value="user.id"
             :value="user.id"
           />
           />
         </el-select>
         </el-select>
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item label="联系电话" prop="phone" >
       <el-form-item label="联系电话" prop="phone" >
         <el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />
         <el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />
       </el-form-item>
       </el-form-item>
@@ -118,7 +117,7 @@ const formRules = reactive<FormRules>({
   parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
   parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
   name: [{ required: true, message: '工作间名称不能为空', trigger: 'blur' }],
   name: [{ required: true, message: '工作间名称不能为空', trigger: 'blur' }],
   // sort: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
   // sort: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
-  leaderUserId: [{ required: true, message: '负责人不能为空', trigger: 'change' }],
+  // leaderUserId: [{ required: true, message: '负责人不能为空', trigger: 'change' }],
   email: [{ required: true, message: '邮箱不能为空', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
   email: [{ required: true, message: '邮箱不能为空', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
   phone: [
   phone: [
     { required: true, message: '联系电话不能为空', trigger: 'blur' },
     { required: true, message: '联系电话不能为空', trigger: 'blur' },

+ 34 - 3
src/views/system/workroomCollege/dept/index.vue

@@ -6,7 +6,7 @@
       :model="queryParams"
       :model="queryParams"
       ref="queryFormRef"
       ref="queryFormRef"
       :inline="true"
       :inline="true"
-      label-width="68px"
+      label-width="100px"
     >
     >
       <el-form-item label="工作间" prop="name">
       <el-form-item label="工作间" prop="name">
         <el-input
         <el-input
@@ -17,7 +17,7 @@
           class="!w-240px"
           class="!w-240px"
         />
         />
       </el-form-item>
       </el-form-item>
-      <!-- <el-form-item label="负责人" prop="leaderUserId">
+      <el-form-item label="负责人" prop="leaderUserId">
         <el-select
         <el-select
           v-model="queryParams.leaderUserId"
           v-model="queryParams.leaderUserId"
           @change="handleSupervisorChange"
           @change="handleSupervisorChange"
@@ -33,7 +33,35 @@
             :value="user.id"
             :value="user.id"
           />
           />
         </el-select>
         </el-select>
-      </el-form-item> -->
+      </el-form-item>
+      <el-form-item label="联系电话" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入联系电话"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+      <el-form-item label="邮箱" prop="email">
+        <el-input
+          v-model="queryParams.email"
+          placeholder="请输入邮箱"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+      <el-form-item label="工作间地址" prop="address">
+        <el-input
+          v-model="queryParams.address"
+          placeholder="请输入工作间地址"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+    
       <!-- <el-form-item label="负责人" prop="leaderUserId">
       <!-- <el-form-item label="负责人" prop="leaderUserId">
         <el-select
         <el-select
           v-model="queryParams.leaderUserId"
           v-model="queryParams.leaderUserId"
@@ -169,6 +197,9 @@ const queryParams = reactive({
   pageSize: 100,
   pageSize: 100,
   name: undefined,
   name: undefined,
   leaderUserId: [],
   leaderUserId: [],
+  phone: undefined,
+  email: undefined,
+  address: undefined,
   status: undefined
   status: undefined
 })
 })
 const queryFormRef = ref() // 搜索的表单
 const queryFormRef = ref() // 搜索的表单

+ 108 - 108
src/views/system/workroomCollege/deptInfo/index.vue

@@ -124,70 +124,70 @@
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { defineComponent, reactive, ref, onMounted } from 'vue';
-import type { FormRules } from 'element-plus';
+// import { defineComponent, reactive, ref, onMounted } from 'vue';
+// import type { FormRules } from 'element-plus';
 // import type { FormExpose } from '@/components/Form'
 // import type { FormExpose } from '@/components/Form'
 import { useI18n } from 'vue-i18n';
 import { useI18n } from 'vue-i18n';
-import { useMessage } from '@/hooks/web/useMessage';
-import { updateDept, DeptVO, getUserDept } from '@/api/system/dept/index';
+// import { useMessage } from '@/hooks/web/useMessage';
+// import { updateDept, DeptVO, getUserDept } from '@/api/system/dept/index';
 import { getDept } from '@/api/system/dept/index';
 import { getDept } from '@/api/system/dept/index';
-import * as UserApi from '@/api/system/user';
+// import * as UserApi from '@/api/system/user';
 // import student from './student.vue';
 // import student from './student.vue';
 // import teacher from './teacher.vue';
 // import teacher from './teacher.vue';
 
 
 export default defineComponent({
 export default defineComponent({
   setup() {
   setup() {
     const { t } = useI18n();
     const { t } = useI18n();
-    const message = useMessage();
+    // const message = useMessage();
     const formRef = ref();
     const formRef = ref();
 
 
     const route = useRoute()
     const route = useRoute()
     console.log('route.query:', route.query);
     console.log('route.query:', route.query);
     const id = ref(route.query.id);
     const id = ref(route.query.id);
 
 
-    const form = reactive({
-      id: id.value,
-      supervisor: '',  
-      phone: '',
-      email: '',
-      address: '',
-      name: '',
-      leaderUserId: [],
-      nickname: '', 
-      description: '',
-    });
+    // const form = reactive({
+    //   id: id.value,
+    //   supervisor: '',  
+    //   phone: '',
+    //   email: '',
+    //   address: '',
+    //   name: '',
+    //   leaderUserId: [],
+    //   nickname: '', 
+    //   description: '',
+    // });
 
 
     // 表单校验规则
     // 表单校验规则
-    const rules = reactive<FormRules>({
-      leaderUserId: [
-        { required: true, message: '请选择导师名称', trigger: 'blur' }
-      ],
-      phone: [
-        { required: true, message: '请输入负责人电话', trigger: 'blur' },
-        {
-          pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
-          message: '请输入正确的手机号码',
-          trigger: 'blur'
-        }
-      ],
-      email: [
-        { required: true, message: '请输入邮箱', trigger: 'blur' },
-        {
-          type: 'email',
-          message: '请输入正确的邮箱格式',
-          trigger: ['blur', 'change']
-        }
-      ],
-      address: [
-        { required: true, message: '请输入工作间地址', trigger: 'blur' }
-      ],
-      name: [
-        { required: true, message: '请输入工作间名称', trigger: 'blur' }
-      ],
-      description: [
-        { required: false, message: '请输入工作间简介', trigger: 'blur' }
-      ],
-    });
+    // const rules = reactive<FormRules>({
+      // leaderUserId: [
+      //   { required: true, message: '请选择导师名称', trigger: 'blur' }
+      // ],
+    //   phone: [
+    //     { required: true, message: '请输入负责人电话', trigger: 'blur' },
+    //     {
+    //       pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+    //       message: '请输入正确的手机号码',
+    //       trigger: 'blur'
+    //     }
+    //   ],
+    //   email: [
+    //     { required: true, message: '请输入邮箱', trigger: 'blur' },
+    //     {
+    //       type: 'email',
+    //       message: '请输入正确的邮箱格式',
+    //       trigger: ['blur', 'change']
+    //     }
+    //   ],
+    //   address: [
+    //     { required: true, message: '请输入工作间地址', trigger: 'blur' }
+    //   ],
+    //   name: [
+    //     { required: true, message: '请输入工作间名称', trigger: 'blur' }
+    //   ],
+    //   description: [
+    //     { required: false, message: '请输入工作间简介', trigger: 'blur' }
+    //   ],
+    // });
 
 
     // 将 userInfo 定义放入 setup 中
     // 将 userInfo 定义放入 setup 中
     const userInfo = ref({} as DeptVO);  
     const userInfo = ref({} as DeptVO);  
@@ -199,32 +199,32 @@ export default defineComponent({
     };
     };
 
 
     //获取工作间下的导师
     //获取工作间下的导师
-    const users = ref()
-    const getDeptsupervisor = async (id) => {
-      try {
-        const response = await UserApi.getDeptsupervisor(id.value)
-        users.value = response
-        console.log('工作间下导师信息:', users.value);
-      } catch (error) {
-        console.error('Error fetching user data:', error)
-      }
-    }
-
-    //传supervisorId给form.leaderUserId
-    const handleSupervisorChange = (values) => {
-      form.leaderUserId = values;  // values 是选择的用户ID数组
-    }
-
-const isEditMode = ref(false);
+    // const users = ref()
+    // const getDeptsupervisor = async (id) => {
+    //   try {
+    //     const response = await UserApi.getDeptsupervisor(id.value)
+    //     users.value = response
+    //     console.log('工作间下导师信息:', users.value);
+    //   } catch (error) {
+    //     console.error('Error fetching user data:', error)
+    //   }
+    // }
+
+    // //传supervisorId给form.leaderUserId
+    // const handleSupervisorChange = (values) => {
+    //   form.leaderUserId = values;  // values 是选择的用户ID数组
+    // }
+
+// const isEditMode = ref(false);
 
 
 // 切换编辑模式
 // 切换编辑模式
-const toggleEditMode = () => {
-  if (isEditMode.value) {
-    // 在“保存”状态下执行保存操作
-    submit();
-  }
-  isEditMode.value = !isEditMode.value;
-};
+// const toggleEditMode = () => {
+//   if (isEditMode.value) {
+//     // 在“保存”状态下执行保存操作
+//     submit();
+//   }
+//   isEditMode.value = !isEditMode.value;
+// };
 
 
  // 创建一个 computed 属性来处理并去掉 <p> 标签
  // 创建一个 computed 属性来处理并去掉 <p> 标签
     const cleanedDescription = computed(() => {
     const cleanedDescription = computed(() => {
@@ -243,60 +243,60 @@ const toggleEditMode = () => {
     });
     });
 
 
     // 表单提交
     // 表单提交
-    const submit = async () => {
-      try {
-        await formRef.value?.validate();
-        console.log('提交的数据:', form);
-        await updateDept(form).then((res) => {
-          console.log('更新成功:', res);
-        });
-        message.success('成功');
-      } catch (error) {
-        console.error('提交错误:', error);
-        message.error('错误');
-      }
-    };
+    // const submit = async () => {
+    //   try {
+    //     await formRef.value?.validate();
+    //     console.log('提交的数据:', form);
+    //     await updateDept(form).then((res) => {
+    //       console.log('更新成功:', res);
+    //     });
+    //     message.success('成功');
+    //   } catch (error) {
+    //     console.error('提交错误:', error);
+    //     message.error('错误');
+    //   }
+    // };
 
 
 
 
     // 表单重置
     // 表单重置
-    const init = async () => {
-      const res = await getDept(id.value);
-      console.log('获取的数据:', res);
-      form.id = res.id;
-      form.address = res.address;
-      form.supervisor = res.user.nickname;
-      form.phone = res.phone;
-      form.email = res.email;
-      form.name = res.name;
-      form.leaderUserId = res.user.id;
-      form.description = res.description;
-      userInfo.value = res.user; 
-    };
+    // const init = async () => {
+    //   const res = await getDept(id.value);
+    //   console.log('获取的数据:', res);
+    //   form.id = res.id;
+    //   form.address = res.address;
+    //   form.supervisor = res.user.nickname;
+    //   form.phone = res.phone;
+    //   form.email = res.email;
+    //   form.name = res.name;
+    //   // form.leaderUserId = res.user.id;
+    //   form.description = res.description;
+    //   userInfo.value = res.user; 
+    // };
 
 
     onMounted(async () => {
     onMounted(async () => {
-      await init();
+      // await init();
       // await fetchUserInfo(form.id);
       // await fetchUserInfo(form.id);
       if (id.value) {
       if (id.value) {
         await fetchUserInfo(id.value); // 传入获取到的 ID
         await fetchUserInfo(id.value); // 传入获取到的 ID
       }
       }
       // const response = await UserApi.getDeptsupervisor(id.value)
       // const response = await UserApi.getDeptsupervisor(id.value)
       // users.value = response
       // users.value = response
-      getDeptsupervisor(id);
+      // getDeptsupervisor(id);
     });
     });
 
 
     return {
     return {
       t,
       t,
-      form,
+      // form,
       userInfo,
       userInfo,
-      isEditMode,
-      toggleEditMode,
-      submit,
-      init,
-      rules,
+      // isEditMode,
+      // toggleEditMode,
+      // submit,
+      // init,
+      // rules,
       formRef,
       formRef,
-      users,
-      handleSupervisorChange,
-      getDeptsupervisor,
+      // users,
+      // handleSupervisorChange,
+      // getDeptsupervisor,
       cleanedDescription,
       cleanedDescription,
       extractedImages,
       extractedImages,
 
 

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

@@ -76,7 +76,7 @@
                 value="1"
                 value="1"
                 />
                 />
             </el-select> -->
             </el-select> -->
-            <el-input  v-model="userTypeS" value="在校生" placeholder="在校生" :disabled="true"/> 
+            <el-input  v-model="userTypeSt" value="在校生" placeholder="在校生" :disabled="true"/> 
           </el-form-item>
           </el-form-item>
           <!-- <el-form-item label="用户类型" prop="userType">
           <!-- <el-form-item label="用户类型" prop="userType">
             <span style="margin-left: 10px;">在校生</span>
             <span style="margin-left: 10px;">在校生</span>
@@ -202,7 +202,7 @@ defineOptions({ name: 'SystemUserForm' })
 
 
 const { t } = useI18n() // 国际化
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 const message = useMessage() // 消息弹窗
-const userTypeS = ref('1') // 导师类型
+const userTypeSt = ref('1')
 
 
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
 const dialogTitle = ref('') // 弹窗的标题
@@ -257,6 +257,7 @@ const formRules = reactive<FormRules>({
     }
     }
   ],
   ],
   supervisorId: [{ required: true, message: '导师不能为空', trigger: 'blur' }],
   supervisorId: [{ required: true, message: '导师不能为空', trigger: 'blur' }],
+  userNumber: [{ required: true, message: '学号不能为空', trigger: 'blur' }],
 })
 })
 
 
 const formRef = ref() // 表单 Ref
 const formRef = ref() // 表单 Ref
@@ -328,10 +329,9 @@ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成
 const submitForm = async () => {
 const submitForm = async () => {
   // 校验表单
   // 校验表单
   if(formType.value === 'create-S' || formType.value === 'update-S'){
   if(formType.value === 'create-S' || formType.value === 'update-S'){
-    formData.value.userType = userTypeS.value
+    formData.value.userType = userTypeSt.value
   }
   }
-  console.log(formData.value);
-
+  console.log(formData.value,'提交的表单');
   if (!formRef) return
   if (!formRef) return
   const valid = await formRef.value.validate()
   const valid = await formRef.value.validate()
   if (!valid) return
   if (!valid) return

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

@@ -26,6 +26,25 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <el-form-item label="姓名" prop="nickname">
+            <el-input
+              v-model="queryParams.nickname"
+              placeholder="请输入姓名"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
+          <el-form-item label="学号" prop="userNumber">
+            <el-input
+              v-model="queryParams.userNumber"
+              placeholder="请输入学号"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
+          
           <el-form-item label="手机号码" prop="mobile">
           <el-form-item label="手机号码" prop="mobile">
             <el-input
             <el-input
               v-model="queryParams.mobile"
               v-model="queryParams.mobile"
@@ -35,6 +54,15 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <!-- <el-form-item label="邮箱" prop="email">
+            <el-input
+              v-model="queryParams.email"
+              placeholder="请输入邮箱"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item> -->
           <!-- <el-form-item label="状态" prop="status">
           <!-- <el-form-item label="状态" prop="status">
             <el-select
             <el-select
               v-model="queryParams.status"
               v-model="queryParams.status"
@@ -50,7 +78,7 @@
               />
               />
             </el-select>
             </el-select>
           </el-form-item> -->
           </el-form-item> -->
-          <el-form-item label="创建时间" prop="createTime">
+          <!-- <el-form-item label="创建时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
@@ -59,7 +87,7 @@
               end-placeholder="结束日期"
               end-placeholder="结束日期"
               class="!w-240px"
               class="!w-240px"
             />
             />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
@@ -119,7 +147,7 @@
           <el-table-column
           <el-table-column
             label="学号"
             label="学号"
             align="center"
             align="center"
-            prop="studentNumber"
+            prop="userNumber"
             :show-overflow-tooltip="true"
             :show-overflow-tooltip="true"
           />
           />
           <el-table-column
           <el-table-column
@@ -254,7 +282,10 @@ const queryParams = reactive({
   pageNo: 1,
   pageNo: 1,
   pageSize: 10,
   pageSize: 10,
   username: undefined,
   username: undefined,
+  nickname: undefined,
+  userNumber: undefined,
   mobile: undefined,
   mobile: undefined,
+  email: undefined,
   status: undefined,
   status: undefined,
   deptId: undefined,
   deptId: undefined,
   createTime: [],
   createTime: [],
@@ -340,7 +371,7 @@ const handleExport = async () => {
     await message.exportConfirm()
     await message.exportConfirm()
     // 发起导出
     // 发起导出
     exportLoading.value = true
     exportLoading.value = true
-    const data = await UserApi.exportUser(queryParams)
+    const data = await UserApi.exportStudentList()
     download.excel(data, '用户数据.xls')
     download.excel(data, '用户数据.xls')
   } catch {
   } catch {
   } finally {
   } finally {

+ 34 - 4
src/views/system/workroomCollege/user/teacher.vue

@@ -26,6 +26,24 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <el-form-item label="姓名" prop="nickname">
+            <el-input
+              v-model="queryParams.nickname"
+              placeholder="请输入姓名"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
+          <el-form-item label="工号" prop="userNumber">
+            <el-input
+              v-model="queryParams.userNumber"
+              placeholder="请输入工号"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
           <el-form-item label="手机号码" prop="mobile">
           <el-form-item label="手机号码" prop="mobile">
             <el-input
             <el-input
               v-model="queryParams.mobile"
               v-model="queryParams.mobile"
@@ -35,6 +53,15 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <el-form-item label="邮箱" prop="email">
+            <el-input
+              v-model="queryParams.email"
+              placeholder="请输入邮箱"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
           <!-- <el-form-item label="状态" prop="status">
           <!-- <el-form-item label="状态" prop="status">
             <el-select
             <el-select
               v-model="queryParams.status"
               v-model="queryParams.status"
@@ -50,7 +77,7 @@
               />
               />
             </el-select>
             </el-select>
           </el-form-item> -->
           </el-form-item> -->
-          <el-form-item label="创建时间" prop="createTime">
+          <!-- <el-form-item label="创建时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
@@ -59,7 +86,7 @@
               end-placeholder="结束日期"
               end-placeholder="结束日期"
               class="!w-240px"
               class="!w-240px"
             />
             />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
@@ -240,12 +267,15 @@ const queryParams = reactive({
   pageNo: 1,
   pageNo: 1,
   pageSize: 10,
   pageSize: 10,
   username: undefined,
   username: undefined,
-
+  nickname: undefined,
+  userNumber: undefined,
   mobile: undefined,
   mobile: undefined,
+  email: undefined,
   status: undefined,
   status: undefined,
   deptId: undefined,
   deptId: undefined,
   createTime: []
   createTime: []
 })
 })
+
 const queryFormRef = ref() // 搜索的表单
 const queryFormRef = ref() // 搜索的表单
 
 
 const showIsGraduate = ref(false);
 const showIsGraduate = ref(false);
@@ -324,7 +354,7 @@ const handleExport = async () => {
     await message.exportConfirm()
     await message.exportConfirm()
     // 发起导出
     // 发起导出
     exportLoading.value = true
     exportLoading.value = true
-    const data = await UserApi.exportUser(queryParams)
+    const data = await UserApi.exportTeacherList()
     download.excel(data, '用户数据.xls')
     download.excel(data, '用户数据.xls')
   } catch {
   } catch {
   } finally {
   } finally {

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

@@ -215,6 +215,7 @@ const formRules = reactive<FormRules>({
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
   email: [
   email: [
+    { required: true, message: '邮箱不能为空', trigger: 'blur' },
     {
     {
       type: 'email',
       type: 'email',
       message: '请输入正确的邮箱地址',
       message: '请输入正确的邮箱地址',
@@ -222,12 +223,14 @@ const formRules = reactive<FormRules>({
     }
     }
   ],
   ],
   mobile: [
   mobile: [
+    { required: true, message: '手机号码不能为空', trigger: 'blur' },
     {
     {
       pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
       pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
       message: '请输入正确的手机号码',
       message: '请输入正确的手机号码',
       trigger: 'blur'
       trigger: 'blur'
     }
     }
-  ]
+  ],
+  userNumber: [{ required: true, message: '学号不能为空', trigger: 'blur' }],
 })
 })
 const formRef = ref() // 表单 Ref
 const formRef = ref() // 表单 Ref
 const deptList = ref<Tree[]>([]) // 树形结构
 const deptList = ref<Tree[]>([]) // 树形结构

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

@@ -21,6 +21,24 @@
               class="!w-240px"
               class="!w-240px"
             />
             />
           </el-form-item>
           </el-form-item>
+          <el-form-item label="姓名" prop="nickname">
+            <el-input
+              v-model="queryParams.nickname"
+              placeholder="请输入姓名"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
+          <el-form-item label="学号" prop="userNumber">
+            <el-input
+              v-model="queryParams.userNumber"
+              placeholder="请输入学号"
+              clearable
+              @keyup.enter="handleQuery"
+              class="!w-240px"
+            />
+          </el-form-item>
           <el-form-item label="手机号码" prop="mobile">
           <el-form-item label="手机号码" prop="mobile">
             <el-input
             <el-input
               v-model="queryParams.mobile"
               v-model="queryParams.mobile"
@@ -45,7 +63,7 @@
               />
               />
             </el-select>
             </el-select>
           </el-form-item> -->
           </el-form-item> -->
-          <el-form-item label="创建时间" prop="createTime">
+          <!-- <el-form-item label="创建时间" prop="createTime">
             <el-date-picker
             <el-date-picker
               v-model="queryParams.createTime"
               v-model="queryParams.createTime"
               value-format="YYYY-MM-DD HH:mm:ss"
               value-format="YYYY-MM-DD HH:mm:ss"
@@ -54,7 +72,7 @@
               end-placeholder="结束日期"
               end-placeholder="结束日期"
               class="!w-240px"
               class="!w-240px"
             />
             />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
           <el-form-item>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
@@ -106,7 +124,7 @@
           <el-table-column
           <el-table-column
             label="学号"
             label="学号"
             align="center"
             align="center"
-            prop="studentNumber"
+            prop="userNumber"
             :show-overflow-tooltip="true"
             :show-overflow-tooltip="true"
           />
           />
           <el-table-column
           <el-table-column
@@ -239,6 +257,8 @@ const queryParams = reactive({
   pageNo: 1,
   pageNo: 1,
   pageSize: 10,
   pageSize: 10,
   username: undefined,
   username: undefined,
+  nickname: undefined,
+  userNumber: undefined,
   mobile: undefined,
   mobile: undefined,
   status: undefined,
   status: undefined,
   deptId: undefined,
   deptId: undefined,
@@ -320,7 +340,7 @@ const handleExport = async () => {
     await message.exportConfirm()
     await message.exportConfirm()
     // 发起导出
     // 发起导出
     exportLoading.value = true
     exportLoading.value = true
-    const data = await UserApi.exportUser(queryParams)
+    const data = await UserApi.exportStudentList()
     download.excel(data, '用户数据.xls')
     download.excel(data, '用户数据.xls')
   } catch {
   } catch {
   } finally {
   } finally {

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

@@ -105,7 +105,7 @@
           <el-table-column
           <el-table-column
             label="工号"
             label="工号"
             align="center"
             align="center"
-            prop="studentNumber"
+            prop="userNumber"
             :show-overflow-tooltip="true"
             :show-overflow-tooltip="true"
           />
           />
           <el-table-column
           <el-table-column
@@ -308,7 +308,7 @@ const handleExport = async () => {
     await message.exportConfirm()
     await message.exportConfirm()
     // 发起导出
     // 发起导出
     exportLoading.value = true
     exportLoading.value = true
-    const data = await UserApi.exportUser(queryParams)
+    const data = await UserApi.exportTeacherList()
     download.excel(data, '用户数据.xls')
     download.excel(data, '用户数据.xls')
   } catch {
   } catch {
   } finally {
   } finally {