Forráskód Böngészése

Merge branch 'master' of http://gogs.gisvg.com/YDM/graduate-ui

# Conflicts:
#	src/views/system/workroomTeacher/dept/index.vue
47 4 hónapja
szülő
commit
5ff93fa3bd

+ 5 - 4
src/router/modules/remaining.ts

@@ -5,6 +5,7 @@ import deptInfo from '@/views/system/workroomCollege/deptInfo/index.vue'
 import * as LoginApi from '@/api/login'
 import supervisorSelectionSetting from "@/views/system/supervisorSelectionSetting/index.vue";
 import studentSelectSupervisorRecord from "@/views/system/studentSelection/studentSelectSupervisorRecord/index.vue";
+import studentSelectSupervisorRecord2 from "@/views/system/studentSelection/studentSelectSupervisorRecord/record.vue";
 import studentForm from "@/views/system/userDetail/student.vue";
 
 const { t } = useI18n()
@@ -91,11 +92,11 @@ const remainingRouter: AppRouteRecordRaw[] = [
       },
 
       {
-        path: 'studentSelection/studentSelectSupervisorRecord/index',
-        component: studentSelectSupervisorRecord,
-        name: 'studentSelectSupervisorRecord',
+        path: 'studentSelection/studentSelectSupervisorRecord/record',
+        component: studentSelectSupervisorRecord2,
+        name: 'studentSelectSupervisorRecord2',
         meta: {
-          title: '师生互选记录',
+          title: '师生互选记录2',
           icon: 'ep:user-filled',
           noCache: false,
           affix: false,

+ 13 - 13
src/views/system/studentSelection/studentSelectSupervisorRecord/studentSelectSupervisorRecordForm.vue

@@ -69,11 +69,11 @@
               <p v-if="userInfo.userType=='1'">★ 本人签字
               </p>
               <div v-if="userInfo.userType=='1'">
-                <canvas 
-                  id="canvas" 
-                  ref="canvas" 
-                  width="300px" 
-                  height="100px" 
+                <canvas
+                  id="canvas"
+                  ref="canvas"
+                  width="300px"
+                  height="100px"
                   @mousedown="handleMouseDown"
                   @mousemove="handleMouseMove"
                   @mouseup="handleMouseUp"
@@ -106,9 +106,9 @@
         <div v-show="lastSupervisorSignature">
           <img :src="formData.supervisorSignature" alt="导师签名" style="width: 300px; height: 100px; margin-right: 10px; background-color: white;"/>
           <div style="margin-top: 10px;">
-            <el-button 
+            <el-button
               plain
-              type="primary" 
+              type="primary"
               size="small"
               @click="handleResign"
             >
@@ -171,7 +171,7 @@ import * as UserApi from '@/api/system/user'
 import { defineOptions, defineExpose, ref, reactive, nextTick, onMounted, computed } from 'vue'
 import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 import {supervisorSelectionSettingApi} from '@/api/system/supervisorSelectionSetting'
-import { htmlPdf } from "@/utils/htmlToPDF.js"  
+import { htmlPdf } from "@/utils/htmlToPDF.js"
 import { studentSelectionProjectApi, studentSelectionProjectVO } from '@/api/system/studentSelectionProject'
 
 /** 师生互选记录 表单 */
@@ -280,7 +280,7 @@ const showPrintButton = ref(false); // 控制打印按钮的显示
 /** 打开弹窗 */
 const open = async (type: string, projectId?: number, supervisorId?:number, id?:number, studentId?:number, selectType?:number) => {
   dialogVisible.value = true;
- 
+
   if (type === 'create'){
     dialogTitle.value = '志愿填报'
     submitFormText.value = '选择'
@@ -346,7 +346,7 @@ const open = async (type: string, projectId?: number, supervisorId?:number, id?:
         supervisorData.value.studentAchievementRequirement = supervisor.studentAchievementRequirement;
         supervisorData.value.major = supervisor.major;
         supervisorData.value.workSupervisor = supervisor.workSupervisor;
-        
+
         formData.value = await studentSelectSupervisorRecordApi.getStudentSelectSupervisorRecord(id)
         await getSupervisorSignature();
         formData.value.supervisorSignature = lastSupervisorSignature.value
@@ -509,7 +509,7 @@ const open = async (type: string, projectId?: number, supervisorId?:number, id?:
       }
     }
   }
-  
+
 }
 
 // 获取当前项目的导师
@@ -523,11 +523,11 @@ const getProjectSupervisors = async () => {
 
 const handleExport = (row) => {
   var fileName = '师生互选表';
-  const formElement = document.querySelector('.form-container'); 
+  const formElement = document.querySelector('.form-container');
   htmlPdf(fileName, formElement, row);
   dialogVisible.value = false;
 };
- 
+
 const isDrawing = ref(false) // 是否正在画
 const context = ref() // 签名画布的上下文
 const contextT = ref()

+ 42 - 21
src/views/system/workroomCollege/user/UserForm.vue

@@ -155,12 +155,26 @@
             </el-select>
           </el-form-item>
         </el-col>
-
         <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
-          <el-form-item label="家长号码" prop="parentMobile">
-            <el-input v-model="formData.parentMobile" maxlength="11" placeholder="请输入家长号码" />
+          <el-form-item label="校外导师" prop="supervisorId" >
+            <el-select
+                v-model="formData.externalSupervisorId"
+                @change="handleSupervisorChange"
+                placeholder="请选择导师名称"
+                clearable
+                filterable
+                class="!w-full"
+            >
+              <el-option
+                  v-for="user in users"
+                  :key="user.id"
+                  :label="user.nickname"
+                  :value="user.id"
+              />
+            </el-select>
           </el-form-item>
         </el-col>
+
       </el-row>
 
       <el-row>
@@ -208,7 +222,13 @@
           </el-form-item>
         </el-col>
       </el-row> -->
-
+      <el-row>
+        <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
+          <el-form-item label="家长号码" prop="parentMobile">
+            <el-input v-model="formData.parentMobile" maxlength="11" placeholder="请输入家长号码" />
+          </el-form-item>
+        </el-col>
+      </el-row>
       <el-row>
         <el-col :span="24">
           <!-- <el-form-item label="备注">
@@ -267,28 +287,29 @@ const formData = ref({
   userNumber: '',
   masterType:'',
   major:'',
-  grade:''
+  grade:'',
+  externalSupervisorId:""
 })
 const formRules = reactive<FormRules>({
   username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   // password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
-  email: [
-    { required: true, message: '邮箱不能为空', trigger: 'blur' }, // 确保这是必填
-    {
-      type: 'email',
-      message: '请输入正确的邮箱地址',
-      trigger: ['blur', 'change']
-    }
-  ],
-  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}$/,
-      message: '请输入正确的手机号码',
-      trigger: 'blur'
-    }
-  ],
+  // email: [
+  //   { required: true, message: '邮箱不能为空', trigger: 'blur' }, // 确保这是必填
+  //   {
+  //     type: 'email',
+  //     message: '请输入正确的邮箱地址',
+  //     trigger: ['blur', 'change']
+  //   }
+  // ],
+  // 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}$/,
+  //     message: '请输入正确的手机号码',
+  //     trigger: 'blur'
+  //   }
+  // ],
   parentMobile: [
     { required: true, message: '家长号码不能为空', trigger: 'blur' }, // 确保这是必填
     {

+ 24 - 4
src/views/system/workroomTeacher/dept/index.vue

@@ -1,5 +1,16 @@
 <template>
+<<<<<<< HEAD
   <div class="flex" v-loading="loading"   v-show="user.value.dept">
+=======
+  <!-- <el-card class="workspace-info card-border mb-2">
+    <div class="workspace-name">
+      <div class="card-header">
+        <span>{{ form.name }}</span>
+      </div>
+    </div>
+  </el-card> -->
+  <div class="flex" v-loading="loading" v-show="userInfo.name != null && userInfo.name != undefined">
+>>>>>>> aabfd8529fb999ebbfe300732b102ff0050b3628
     <el-card class="workspace-info w-full" shadow="always" style="padding-bottom: 40px;">
         <template #header>
           <div class="card-header" style="display: flex; align-items: center; justify-content: space-between;">
@@ -81,7 +92,11 @@
         @success="handleSuccess"
       />
   </div>
+<<<<<<< HEAD
   <div v-show="user.value.dept">
+=======
+  <div v-show="userInfo.name != null && userInfo.name != undefined">
+>>>>>>> aabfd8529fb999ebbfe300732b102ff0050b3628
     <div style="margin-top: 15px;">
       <teacher :id="form.id" />
     </div>
@@ -89,10 +104,16 @@
       <student :id="form.id" />
     </div>
   </div>
+<<<<<<< HEAD
   <div v-show="!user.value.dept">
     <el-empty description="暂无工作间" />
   </div>
  
+=======
+  <div class="flex" v-show="!(userInfo.name != null && userInfo.name != undefined)">
+     暂无工作间!
+  </div>
+>>>>>>> aabfd8529fb999ebbfe300732b102ff0050b3628
 </template>
 
 <script lang="ts">
@@ -180,15 +201,14 @@ export default defineComponent({
     });
 
     // 将 userInfo 定义放入 setup 中
-    const userInfo = ref({} as DeptVO);  
+    const userInfo = ref({} as DeptVO);
     const fetchUserInfo = async () => {
       try{
         loading.value = true; // 开始加载状态
         const users = await getUserDept();
         console.log(users,'userDeptInfo');
-        userInfo.value = {...users,
-          // name: users.user[0].nickname // 提取 nickname
-        };
+        userInfo.value = {...users};
+
       }finally{
           loading.value = false; // 关闭加载状态
       }

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

@@ -155,8 +155,22 @@
         </el-col>
 
         <el-col :span="12">
-          <el-form-item label="学号" prop="userNumber" v-if="formType === 'create-S' || formType === 'update-S'">
-            <el-input v-model="formData.userNumber" placeholder="请输入学号" disabled="true"/>
+          <el-form-item label="校外导师" prop="supervisorId">
+            <el-select
+                v-model="formData.externalSupervisorId"
+                @change="handleSupervisorChange"
+                placeholder="请选择导师名称"
+                clearable
+                filterable
+                class="!w-full"
+            >
+              <el-option
+                  v-for="user in users"
+                  :key="user.id"
+                  :label="user.nickname"
+                  :value="user.id"
+              />
+            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
@@ -187,7 +201,13 @@
           </el-form-item>
         </el-col>
       </el-row>
-
+      <el-row  v-if="formType === 'create-S' || formType === 'update-S'">
+        <el-col :span="12">
+          <el-form-item label="学号" prop="userNumber" v-if="formType === 'create-S' || formType === 'update-S'">
+            <el-input v-model="formData.userNumber" placeholder="请输入学号" disabled="true"/>
+          </el-form-item>
+        </el-col>
+      </el-row>
       <el-row>
         <el-col :span="24">
           <!-- <el-form-item label="备注">
@@ -243,28 +263,29 @@ const formData = ref({
   userNumber: '',
   masterType:'',
   major:'',
-  grade:''
+  grade:'',
+  externalSupervisorId: ''
 })
 const formRules = reactive<FormRules>({
   username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
   nickname: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
   // password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
-  email: [
-    { required: true, message: '邮箱不能为空', trigger: 'blur' },
-    {
-      type: 'email',
-      message: '请输入正确的邮箱地址',
-      trigger: ['blur', 'change']
-    }
-  ],
-  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}$/,
-      message: '请输入正确的手机号码',
-      trigger: 'blur'
-    }
-  ],
+  // email: [
+  //   { required: true, message: '邮箱不能为空', trigger: 'blur' },
+  //   {
+  //     type: 'email',
+  //     message: '请输入正确的邮箱地址',
+  //     trigger: ['blur', 'change']
+  //   }
+  // ],
+  // 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}$/,
+  //     message: '请输入正确的手机号码',
+  //     trigger: 'blur'
+  //   }
+  // ],
   userNumber: [{ required: true, message: '学号不能为空', trigger: 'blur' }],
 })
 const formRef = ref() // 表单 Ref

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

@@ -3,7 +3,7 @@
   <doc-alert title="三方登陆" url="https://doc.iocoder.cn/social-user/" />
   <doc-alert title="Excel 导入导出" url="https://doc.iocoder.cn/excel-import-and-export/" />
 
-  <el-row :gutter="20">
+  <el-row  :gutter="20">
     <!-- 左侧部门树 -->
     <el-col :span="4" :xs="24">
       <ContentWrap class="h-1/1">