47 3 months ago
parent
commit
05c3d144df

+ 14 - 0
src/router/modules/remaining.ts

@@ -111,6 +111,20 @@ const remainingRouter: AppRouteRecordRaw[] = [
       noTagsView: true
     }
   },
+  // {
+  //   path: '/system/Home/index',
+  //   component: Layout,
+  //   name: 'SystemHome',
+  //   meta: {
+  //     title: '工作台',
+  //     icon: 'ep:bell',
+  //     noCache: false,
+  //     affix: false,
+  //     breadcrumb: true,
+  //     noTagsView: true,
+  //     hidden: false
+  //   }
+  // },
   {
     path: '/',
     component: Layout,

+ 1 - 0
src/views/Login/Login.vue

@@ -172,6 +172,7 @@ const { t } = useI18n()
 const appStore = useAppStore()
 const { getPrefixCls } = useDesign()
 const prefixCls = getPrefixCls('login')
+
 </script>
 
 <style lang="scss" scoped>

+ 3 - 0
src/views/Login/SocialLogin.vue

@@ -309,6 +309,9 @@ const handleLogin = async (params) => {
       window.location.href = window.location.href.replace('/login?redirect=', '')
     } else {
       push({ path: redirect || permissionStore.addRouters[0].path })
+      // nextTick(() => {
+      //   push({ path: 'Home' });
+      // });
     }
   } finally {
     loginLoading.value = false

+ 7 - 3
src/views/Login/components/LoginForm.vue

@@ -147,9 +147,9 @@
 import { ElLoading } from 'element-plus'
 import LoginFormTitle from './LoginFormTitle.vue'
 import type { RouteLocationNormalizedLoaded } from 'vue-router'
-
+import SHome from '@/views/system/Home/Index.vue'
 import { useIcon } from '@/hooks/web/useIcon'
-
+import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
 import * as authUtil from '@/utils/auth'
 import { usePermissionStore } from '@/store/modules/permission'
 import * as LoginApi from '@/api/login'
@@ -239,6 +239,7 @@ const getTenantByWebsite = async () => {
     authUtil.setTenantId(res.id)
   }
 }
+
 const loading = ref() // ElLoading.service 返回的实例
 // 登录
 const handleLogin = async (params) => {
@@ -252,6 +253,7 @@ const handleLogin = async (params) => {
     const loginDataLoginForm = { ...loginData.loginForm }
     loginDataLoginForm.captchaVerification = params.captchaVerification
     const res = await LoginApi.login(loginDataLoginForm)
+
     if (!res) {
       return
     }
@@ -266,9 +268,10 @@ const handleLogin = async (params) => {
       authUtil.removeLoginForm()
     }
     authUtil.setToken(res)
+    
     if (!redirect.value) {
       redirect.value = '/'
-    }
+    } 
     // 判断是否为SSO登录
     if (redirect.value.indexOf('sso') !== -1) {
       window.location.href = window.location.href.replace('/login?redirect=', '')
@@ -329,6 +332,7 @@ watch(
 onMounted(() => {
   getLoginFormCache()
   getTenantByWebsite()
+
 })
 </script>
 

+ 10 - 0
src/views/system/studentAttendanceManage/studentAttendance/index.vue

@@ -67,6 +67,16 @@
           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-select
           v-model="queryParams.clockInStatus"

+ 37 - 6
src/views/system/workroomCollege/user/UserForm.vue

@@ -23,6 +23,7 @@
               node-key="id"
               placeholder="请选择归属工作间"
             />
+            <span v-if="formData.deptId === '0'">测绘学院</span>
           </el-form-item>
         </el-col>
       </el-row>
@@ -41,8 +42,18 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="专硕" prop="masterType">
-            <!-- <el-input v-model="formData.masterType" placeholder="请输入学位类型" /> -->
+          <el-form-item label="年级">
+            <el-select v-model="formData.grade" placeholder="请选择">
+              <el-option
+                v-for="year in gradeOptions"
+                :key="year"
+                :label="year"
+                :value="year"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- <el-form-item label="专硕" prop="masterType">
+            <el-input v-model="formData.masterType" placeholder="请输入学位类型" />
             <el-select v-model="formData.masterType" placeholder="请选择学位类型">
               <el-option
                 v-for="option in masterTypeOptions"
@@ -51,7 +62,7 @@
                 :value="option.value"
               />
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
         </el-col>
       </el-row>
       <el-row>
@@ -181,6 +192,8 @@
         </el-col>
       </el-row>
 
+      
+
       <!-- <el-row>
         <el-col :span="24" v-if="formType === 'update-S'">
           <el-form-item label="毕业条件" >
@@ -241,7 +254,7 @@ const formLoading = ref(false) // 表单的加载中:1)修改时的数据加
 const formType = ref('') // 表单的类型:create - 新增;update - 修改
 const formData = ref({
   nickname: '',
-  deptId: '',
+  deptId: '0',
   mobile: '',
   email: '',
   id: undefined,
@@ -259,7 +272,8 @@ const formData = ref({
   parentMobile: '',
   userNumber: '',
   masterType:'',
-  major:''
+  major:'',
+  grade:''
 })
 const formRules = reactive<FormRules>({
   username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
@@ -311,6 +325,17 @@ const userTypes = computed(() => {
   return types;
 });
 
+const currentYear = new Date().getFullYear(); // 获取当前年份
+const gradeOptions = computed(() => {
+  return [
+    currentYear +'级',          // 今年
+    currentYear - 1 +'级',      // 去年
+    currentYear - 2 +'级',      // 前年
+    currentYear - 3 +'级',      // 大前年
+    currentYear - 4 +'级',      // 大大前年
+  ];
+});
+
 // 获取所有专业
 const majorOptions = [
   { value: '测绘工程' },
@@ -366,7 +391,13 @@ const open = async (type: string, id?: number) => {
   }
   getSupervisor();
   // 加载部门树
-  deptList.value = handleTree(await DeptApi.getSimpleDeptList())
+  const res = await DeptApi.getSimpleDeptList()
+  deptList.value = []
+  let dept: Tree = { id: 0, name: '测绘学院', children: [] }
+  dept.children = handleTree(res)
+  deptList.value.push(dept)
+  // deptList.value = handleTree(await DeptApi.getSimpleDeptList())
+  console.log(deptList.value,'部门树');
   // 加载岗位列表
   postList.value = await PostApi.getSimplePostList()
 }

+ 1 - 0
src/views/system/workroomCollege/user/student.vue

@@ -426,6 +426,7 @@ const getList = async () => {
   loading.value = true
   try {
     const data = await UserApi.getStudentPage(queryParams)
+    console.log(data, '学生列表');
     list.value = data.list
     total.value = data.total
   } finally {

+ 34 - 6
src/views/system/workroomTeacher/user/UserForm.vue

@@ -42,8 +42,18 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="专硕" prop="masterType">
-            <!-- <el-input v-model="formData.masterType" placeholder="请输入学位类型" /> -->
+          <el-form-item label="年级">
+            <el-select v-model="formData.grade" placeholder="请选择">
+              <el-option
+                v-for="year in gradeOptions"
+                :key="year"
+                :label="year"
+                :value="year"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- <el-form-item label="专硕" prop="masterType">
+            <el-input v-model="formData.masterType" placeholder="请输入学位类型" />
             <el-select v-model="formData.masterType" placeholder="请选择学位类型">
               <el-option
                 v-for="option in masterTypeOptions"
@@ -52,7 +62,7 @@
                 :value="option.value"
               />
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
         </el-col>
       </el-row>
       <el-row>
@@ -224,8 +234,9 @@ const formData = ref({
   supervisorId:'',
   isGraduate: 0,
   userNumber: '',
-    masterType:'',
-    major:''
+  masterType:'',
+  major:'',
+  grade:''
 })
 const formRules = reactive<FormRules>({
   username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
@@ -284,6 +295,17 @@ const handleSupervisorChange = (value: number) => {
   }
 }
 
+const currentYear = new Date().getFullYear(); // 获取当前年份
+const gradeOptions = computed(() => {
+  return [
+    currentYear +'级',          // 今年
+    currentYear - 1 +'级',      // 去年
+    currentYear - 2 +'级',      // 前年
+    currentYear - 3 +'级',      // 大前年
+    currentYear - 4 +'级',      // 大大前年
+  ];
+});
+
 //用户类型
 const userTypes = computed(() => {
   const types = [];
@@ -328,7 +350,13 @@ const open = async (type: string, id?: number) => {
     }
   }
   // 加载部门树
-  deptList.value = handleTree(await DeptApi.getSimpleDeptList())
+  const res = await DeptApi.getSimpleDeptList()
+  deptList.value = []
+  let dept: Tree = { id: 0, name: '测绘学院', children: [] }
+  dept.children = handleTree(res)
+  deptList.value.push(dept)
+  // deptList.value = handleTree(await DeptApi.getSimpleDeptList())
+  console.log(deptList.value,'部门树');
   // 加载岗位列表
   postList.value = await PostApi.getSimplePostList()
 }