Browse Source

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

47 4 months ago
parent
commit
f5bfde98c0

+ 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()

+ 5 - 0
src/views/system/studentSelection/studentSelectionProject/index.vue

@@ -138,6 +138,11 @@
             详情
           </el-button>
 
+          <el-button type="text"  v-if="userInfo?.userType === '4' || userInfo?.userType === '1'" @click="openSupervisorSelectionSetting(scope.row.id)" v-hasPermi="['system:supervisor-selection-setting:query']" >
+            <Icon icon="ep:bell" />
+            校内导师分配
+          </el-button>
+
           <!--学院或者学生查看详情,导师名额设置页面-->
           <el-button type="text"  v-if="userInfo?.userType === '4' || userInfo?.userType === '1'" @click="openSupervisorSelectionSetting(scope.row.id)" v-hasPermi="['system:supervisor-selection-setting:query']" >
             <Icon icon="ep:bell" />

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

@@ -155,26 +155,12 @@
             </el-select>
           </el-form-item>
         </el-col>
+
         <el-col :span="12" v-if="formType === 'create-S' || formType === 'update-S'">
-          <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 label="家长号码" prop="parentMobile">
+            <el-input v-model="formData.parentMobile" maxlength="11" placeholder="请输入家长号码" />
           </el-form-item>
         </el-col>
-
       </el-row>
 
       <el-row>
@@ -222,13 +208,7 @@
           </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="备注">
@@ -287,29 +267,28 @@ const formData = ref({
   userNumber: '',
   masterType:'',
   major:'',
-  grade:'',
-  externalSupervisorId:""
+  grade:''
 })
 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' }, // 确保这是必填
     {

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

@@ -155,22 +155,8 @@
         </el-col>
 
         <el-col :span="12">
-          <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 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>
@@ -201,13 +187,7 @@
           </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="备注">
@@ -263,29 +243,28 @@ const formData = ref({
   userNumber: '',
   masterType:'',
   major:'',
-  grade:'',
-  externalSupervisorId: ''
+  grade:''
 })
 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">