47 3 ay önce
ebeveyn
işleme
8a948f0f87

+ 37 - 2
src/views/system/graduateStudent/index.vue

@@ -80,8 +80,22 @@
               class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="导师" prop="leaderUserId" v-if="userInfo.userType === '4'">
-            <el-input v-model="queryParams.leaderUserId" placeholder="请输入导师" clearable @keyup.enter="handleQuery" class="!w-240px" />
+          <el-form-item label="导师" prop="supervisor" v-if="userInfo.userType === '4'">
+            <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="supervisor">
@@ -356,6 +370,26 @@ const getList = async () => {
   }
 }
 
+//获取所有导师
+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给queryParams.leaderUserId
+const handleSupervisorChange = (value: number) => {
+  const selectedUser = users.value.find(user => user.id === value);
+  if (selectedUser) {
+    queryParams.leaderUserId = selectedUser.id;
+    handleQuery();
+    // queryParams.supervisor = selectedUser.nickname;
+  }
+}
+
 // const NewList = (inputList) => {
 //   if (userInfo.value.userType === '4') {
 //     return inputList; // 直接返回所有项目
@@ -453,5 +487,6 @@ const handleDelete = async (id: number) => {
 onMounted(async () => {
   await getUserInfo()
   getList()
+  getSupervisor()
 })
 </script>

+ 23 - 2
src/views/system/workroomCollege/dept/index.vue

@@ -104,9 +104,9 @@
         >
           <Icon icon="ep:plus" /> 新增
         </el-button>
-        <el-button type="danger" plain @click="toggleExpandAll">
+        <!-- <el-button type="danger" plain @click="toggleExpandAll">
           <Icon icon="ep:sort" class="mr-5px" /> 展开/折叠
-        </el-button>
+        </el-button> -->
       </el-form-item>
     </el-form>
   </ContentWrap>
@@ -169,6 +169,14 @@
           <el-button type="text" @click="openUserAchievement(scope.row.id)">
             详情
           </el-button>
+          <el-button
+            link
+            type="danger"
+            @click="handleDelete(scope.row.id)"
+            v-hasPermi="['system:dept:delete']"
+          >
+            删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -281,6 +289,19 @@ const resetQuery = () => {
   handleQuery()
 }
 
+/** 删除操作 */
+const handleDelete = async (id: number) => {
+  try {
+    // 删除的二次确认
+    await message.delConfirm()
+    // 发起删除
+    await DeptApi.deleteDept(id)
+    message.success(t('common.delSuccess'))
+    // 刷新列表
+    await getList()
+  } catch {}
+}
+
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (type: string, id?: number) => {

+ 7 - 3
src/views/system/workroomCollege/deptInfo/index.vue

@@ -129,13 +129,17 @@
 // import type { FormExpose } from '@/components/Form'
 import { useI18n } from 'vue-i18n';
 // import { useMessage } from '@/hooks/web/useMessage';
-// import { updateDept, DeptVO, getUserDept } from '@/api/system/dept/index';
+import { updateDept, DeptVO, getUserDept } from '@/api/system/dept/index';
 import { getDept } from '@/api/system/dept/index';
 // import * as UserApi from '@/api/system/user';
-// import student from './student.vue';
-// import teacher from './teacher.vue';
+import student from './student.vue';
+import teacher from './teacher.vue';
 
 export default defineComponent({
+  components: {
+    student,
+    teacher,
+  },
   setup() {
     const { t } = useI18n();
     // const message = useMessage();