47 7 months ago
parent
commit
137fea0b69

+ 9 - 0
src/views/system/graduateStudent/index.vue

@@ -76,6 +76,15 @@
             <el-button @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
             <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
         
+            <el-button
+              type="primary"
+              plain
+              @click="openForm('create')"
+              v-hasPermi="['system:user:create']"
+            >
+              <Icon icon="ep:plus" /> 新增
+            </el-button>
+            
             <el-button
               type="warning"
               plain

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

@@ -1,6 +1,6 @@
 <template>
-  <doc-alert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
-  <doc-alert title="菜单路由" url="https://doc.iocoder.cn/vue3/route/" />
+  <!-- <doc-alert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
+  <doc-alert title="菜单路由" url="https://doc.iocoder.cn/vue3/route/" /> -->
 
   <!-- 搜索工作栏 -->
   <ContentWrap>

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

@@ -1,6 +1,6 @@
 <template>
-  <doc-alert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
-  <doc-alert title="数据权限" url="https://doc.iocoder.cn/data-permission" />
+  <!-- <doc-alert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
+  <doc-alert title="数据权限" url="https://doc.iocoder.cn/data-permission" /> -->
 
   <ContentWrap>
     <!-- 搜索工作栏 -->

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

@@ -106,7 +106,7 @@
             link
             type="primary"
             @click="openForm('update', rowData.row.id)"
-            v-hasPermi="['system:user-achievement:selfUpdate']"
+            v-hasPermi="['system:user-achievement:update']"
           >
             编辑
           </el-button>

+ 9 - 3
src/views/system/studentAttendanceManage/studentAttendance/index.vue

@@ -38,9 +38,7 @@
         >
           <el-option :label="'正常'" :value="0" />
           <el-option :label="'未打卡'" :value="1" />
-          <el-option :label="'警告'" :value="2" />
-          <el-option :label="'恢复正常'" :value="3" />
-          <el-option :label="'未知类型'" :value="4" />
+          
         </el-select>
       </el-form-item>
 
@@ -76,6 +74,14 @@
       <el-table-column label="学生名称" align="center" prop="studentName" />
       <!-- <el-table-column label="工作间id" align="center" prop="deptId" /> -->
       <!-- <el-table-column label="日期" align="center" prop="date" /> -->
+      <el-table-column label="学号" align="center" prop="userNumber" width="150" />
+      <el-table-column 
+        v-if="userInfo.userType === '4'" 
+        label="工作间名称" 
+        align="center" 
+        prop="deptName" 
+        width="100"
+      />
       <el-table-column
         label="打卡时间"
         align="center"

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

@@ -38,9 +38,7 @@
         >
           <el-option :label="'正常'" :value="0" />
           <el-option :label="'未打卡'" :value="1" />
-          <el-option :label="'警告'" :value="2" />
-          <el-option :label="'恢复正常'" :value="3" />
-          <el-option :label="'未知类型'" :value="4" />
+          
         </el-select>
       </el-form-item>
       
@@ -81,6 +79,14 @@
         :formatter="dateFormatter"
         width="180px"
       />
+      <el-table-column label="学号" align="center" prop="userNumber" width="150" />
+      <el-table-column 
+        v-if="userInfo.userType === '4'" 
+        label="工作间名称" 
+        align="center" 
+        prop="deptName" 
+        width="100"
+      />
       <el-table-column label="打卡类型" align="center" prop="clockInStatus">
         <template #default="scope">
           <dict-tag :type="DICT_TYPE.SYSTEM_STUDENT_ATTENDANCE_TYPE" :value="scope.row.clockInStatus" />  

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

@@ -76,6 +76,14 @@
     <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="nickname" />
+      <el-table-column label="学号" align="center" prop="userNumber" width="150" />
+      <el-table-column 
+        v-if="userInfo.userType === '4'" 
+        label="工作间名称" 
+        align="center" 
+        prop="deptName" 
+        width="100"
+      />
       <el-table-column
         label="导入时间"
         align="center"
@@ -105,7 +113,7 @@
       <el-table-column label="详情" align="center" prop="photoUrl">
         <template #default="scope">
           <el-image
-            v-if="scope.row.photoUrl"
+            
             lazy
             class="h-80px w-80px"
             :src="scope.row.photoUrl"
@@ -117,7 +125,7 @@
             :initial-index="4"
             fit="cover"
           />
-          <div v-else class="h-80px w-80px bg-black"></div>
+          <!-- <div v-else class="h-80px w-80px bg-black"></div> -->
           <!-- <img :src="scope.row.photoUrl" alt="详情图片" style="width: 50px; height: 50px;" /> -->
         </template>
       </el-table-column>

+ 2 - 4
src/views/system/user/UserForm.vue

@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="岗位">
+          <!-- <el-form-item label="岗位">
             <el-select v-model="formData.postIds" multiple placeholder="请选择">
               <el-option
                 v-for="item in postList"
@@ -78,9 +78,7 @@
                 :value="item.id!"
               />
             </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
+          </el-form-item> -->
           <el-form-item label="用户类型" prop="userType">
             <el-select v-model="formData.userType" placeholder="请选择用户类型">
               <el-option

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

@@ -64,14 +64,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')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain

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

@@ -64,14 +64,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')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain

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

@@ -26,11 +26,12 @@
       </el-form-item>
       <el-form-item label="负责人" prop="leaderUserId">
         <el-select
-          v-model="queryParams.leaderUserId"
+          v-model="formData.leaderUserId"
           @change="handleSupervisorChange"
           placeholder="请选择负责人"
           clearable
           filterable
+          multiple
           class="!w-240px"
         >
           <el-option
@@ -95,7 +96,7 @@ const formData = ref({
   parentId: undefined,
   name: undefined,
   sort: undefined,
-  leaderUserId: undefined,
+  leaderUserId: [],
   phone: undefined,
   email: undefined,
   status: CommonStatusEnum.ENABLE
@@ -104,6 +105,7 @@ const formRules = reactive<FormRules>({
   parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
   name: [{ required: true, message: '工作间名称不能为空', trigger: 'blur' }],
   sort: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
+  leaderUserId: [{ required: true, message: '负责人不能为空', trigger: 'change' }],
   email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
   phone: [
     { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }
@@ -136,6 +138,22 @@ const open = async (type: string, id?: number) => {
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
+//获取所有导师
+const users = ref()
+const getSupervisor= async () => {
+  try {
+    const response = await UserApi.getSupervisor()
+    users.value = response
+  } catch (error) {
+    console.error('Error fetching user data:', error)
+  }
+}
+//传supervisorId给formData.leaderUserId
+const handleSupervisorChange = (values) => {
+  formData.leaderUserId = values;  // values 是选择的用户ID数组
+  // 如有需要,可以进行其他相关的处理
+}
+
 /** 提交表单 */
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const submitForm = async () => {
@@ -170,7 +188,7 @@ const resetForm = () => {
     parentId: undefined,
     name: undefined,
     sort: undefined,
-    leaderUserId: undefined,
+    leaderUserId: [],
     phone: undefined,
     email: undefined,
     status: CommonStatusEnum.ENABLE
@@ -186,4 +204,8 @@ const getTree = async () => {
   dept.children = handleTree(data)
   deptTree.value.push(dept)
 }
+
+onMounted(() => {
+  getSupervisor()
+})
 </script>

+ 13 - 8
src/views/system/workroomCollege/dept/index.vue

@@ -68,7 +68,14 @@
       <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:dept:create']"
+        >
+          <Icon icon="ep:plus" /> 新增
+        </el-button>
         <el-button type="danger" plain @click="toggleExpandAll">
           <Icon icon="ep:sort" class="mr-5px" /> 展开/折叠
         </el-button>
@@ -90,14 +97,14 @@
           {{ (queryParams.pageNo - 1) * queryParams.pageSize + scope.$index + 1 }}
         </template>
       </el-table-column>
-      <el-table-column prop="name" label="工作间名称" />
-      <el-table-column prop="leader" label="负责人">
+      <el-table-column prop="name" label="工作间名称" align="center" />
+      <el-table-column prop="leader" label="负责人" align="center">
         <template #default="scope">
-          {{ userList.find((user) => user.id === scope.row.leaderUserId)?.nickname }}
+          {{ userList.filter((user) => scope.row.leaderUserId.includes(user.id)).map(user => user.nickname).join(', ') }}
         </template>
       </el-table-column>
       <!-- <el-table-column prop="sort" label="排序" /> -->
-      <el-table-column prop="status" label="状态">
+      <el-table-column prop="status" label="状态" align="center">
         <template #default="scope">
           <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
         </template>
@@ -119,12 +126,10 @@
           >
             修改
           </el-button>
-        
         </template>
       </el-table-column>
     </el-table>
   </ContentWrap>
-
   <!-- 表单弹窗:添加/修改 -->
   <DeptForm ref="formRef" @success="getList" />
 </template>
@@ -147,7 +152,7 @@ const queryParams = reactive({
   pageNo: 1,
   pageSize: 100,
   name: undefined,
-  leaderUserId: undefined,
+  leaderUserId: [],
   status: undefined
 })
 const queryFormRef = ref() // 搜索的表单

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

@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="岗位">
+          <!-- <el-form-item label="岗位">
             <el-select v-model="formData.postIds" multiple placeholder="请选择">
               <el-option
                 v-for="item in postList"
@@ -78,6 +78,16 @@
                 :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>

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

@@ -64,14 +64,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')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain

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

@@ -64,14 +64,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')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain

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

@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="岗位">
+          <!-- <el-form-item label="岗位">
             <el-select v-model="formData.postIds" multiple placeholder="请选择">
               <el-option
                 v-for="item in postList"
@@ -78,6 +78,16 @@
                 :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>

+ 9 - 6
src/views/system/workroomTeacher/user/student.vue

@@ -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')"
               v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain
@@ -121,13 +121,13 @@
             </template>
           </el-table-column>
 
-          <el-table-column label="成果信息" align="center" width="100">
+          <!-- <el-table-column label="成果信息" align="center" width="100">
             <template #default="scope">
               <el-button type="text" @click="openUserAchievement(scope.row.id)">
                 详情
               </el-button>
             </template>
-          </el-table-column>
+          </el-table-column> -->
 
           <el-table-column
             label="创建时间"
@@ -147,6 +147,9 @@
                 >
                   <Icon icon="ep:edit" />修改
                 </el-button>
+                <el-button type="text" @click="openUserAchievement(scope.row.id)">
+                  成果详情
+                </el-button>
                 <el-dropdown
                   @command="(command) => handleCommand(command, scope.row)"
                   v-hasPermi="[
@@ -170,12 +173,12 @@
                       >
                         <Icon icon="ep:key" />重置密码
                       </el-dropdown-item>
-                      <el-dropdown-item
+                      <!-- <el-dropdown-item
                         command="handleRole"
                         v-if="checkPermi(['system:permission:assign-user-role'])"
                       >
                         <Icon icon="ep:circle-check" />分配角色
-                      </el-dropdown-item>
+                      </el-dropdown-item> -->
                     </el-dropdown-menu>
                   </template>
                 </el-dropdown>

+ 12 - 3
src/views/system/workroomTeacher/user/teacher.vue

@@ -58,14 +58,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')"
-              v-hasPermi="['system:teacher:create']"
+              v-hasPermi="['system:user:create']"
             >
               <Icon icon="ep:plus" /> 新增
-            </el-button> -->
+            </el-button>
             <el-button
               type="warning"
               plain
@@ -137,6 +137,9 @@
                 >
                   <Icon icon="ep:edit" />修改
                 </el-button>
+                <el-button type="text" @click="openUserAchievement(scope.row.id)">
+                  成果详情
+                </el-button>
                 <el-dropdown
                   @command="(command) => handleCommand(command, scope.row)"
                   v-hasPermi="[
@@ -201,6 +204,7 @@ import UserForm from './UserForm.vue'
 import UserImportForm from './UserImportForm.vue'
 import UserAssignRoleForm from './UserAssignRoleForm.vue'
 import DeptTree from './DeptTree.vue'
+import { useRouter } from 'vue-router'
 
 defineOptions({ name: 'SystemUser' })
 
@@ -233,6 +237,11 @@ const getList = async () => {
   }
 }
 
+const router = useRouter()
+const openUserAchievement = (id) => {
+  router.push({ name: 'UserAchievement', query: { id: id} });
+}
+
 /** 搜索按钮操作 */
 const handleQuery = () => {
   queryParams.pageNo = 1