Ver código fonte

修改退出登录的显隐藏和接口调用,选科页面的显隐和禁选逻辑

lm 1 semana atrás
pai
commit
3c38f60dd2

+ 7 - 18
src/api/login.ts

@@ -1,39 +1,28 @@
 // src/api/login.ts
 import request from '../utils/request.ts'
 
+let studentPrefix = import.meta.env.VITE_API_STUDENT_PRE
 
-let teacherPrefix = import.meta.env.VITE_API_TEACHER_PRE 
 
-
-// 修改密码
-export const changePassWord = (data: any) => {
-  return request({
-    url: `/adminApi/v1/sys/users/updatePassword`,
-    method: 'post',
-    data
-  })
-}
-
-
-// 教师登录接口
+// 登录接口
 export const login = (data:any) => {
   return request({
-    url: `${teacherPrefix}/api/v1/teach_login/sign_in`,
+    url: `${studentPrefix}/api/v1/student/login`,
     method: 'post',
     data
   })
 }
-// 获取教师用户信息
+// 获取用户信息
 export const getUserInfo = () => {
   return request({
-    url: `${teacherPrefix}/api/v1/pc_personal/find_user_info`,
+    url: `${studentPrefix}/api/v1/student_user/find_user_info`,
     method: 'get'
   })
 }
-// 教师端退出登录
+//退出登录
 export const loginOut = (data: any) => {
   return request({
-    url: `${teacherPrefix}/api/v1/teach_login/sign_out`,
+    url: `${studentPrefix}/api/v1/student/logout`,
     method: 'post',
     data
   })

+ 3 - 1
src/components/QuestionTypeShow.vue

@@ -278,8 +278,10 @@ watch(()=>props.defaultQuestionVal,(newVal)=>{
         gap:calc(12 * var(--app-rpx)) calc(42 * var(--app-rpx));
         height: auto;
         .el-rate__item{
+            width:calc(24 * var(--app-rpx)) ;
+            height:calc(24 * var(--app-rpx)) ;
             .el-rate__icon{
-                font-size: calc(24 * var(--app-rpx))
+                font-size: calc(24 * var(--app-rpx));
             }
         }
     }

+ 7 - 1
src/layout/components/header.vue

@@ -14,7 +14,7 @@
     </ul>
 
 
-    <div class="head_content_right">
+    <div v-if="showLogoutMenu" class="head_content_right">
       <el-dropdown trigger="click" @command="UserCommand" placement="bottom-end">
         <span class="userName">
           {{userInfo?.schoolName}}
@@ -101,6 +101,12 @@ const userInfo = computed(() => {
   }
   return null
 })
+
+// 是否展示 退出按钮
+const showLogoutMenu = computed(()=>{
+  return !(route.path == '/main' || route.path == '/main')
+})
+
 const dialogShow = ref(false)
 interface EditPassWordData {
   passWord: string

+ 2 - 1
src/views/appView/QuestionnaireTaskListPage.vue

@@ -31,10 +31,11 @@ const questionnaire = ref<QuestionnaireData|{}>({})
 // 处理进入问卷逻辑
 const GoEnter = (row)=>{
     console.log(row.id)
+    // 当前问卷 ——是否显示选科
     if(row.showSelectSubject){
         router.push('/app/questionnaireElectiveSubject')
     }else{
-        router.push('/main/selfQuestionnaireProcess')
+        router.push('/app/selfQuestionnaireProcess')
     }
 }
 

+ 37 - 6
src/views/appView/SelfQuestionnaireProcess.vue

@@ -20,7 +20,8 @@
                     </div>
                 </div>
                 <div class="content_right">
-                    <el-button class="button_border" @click="GoToElectiveSubject" >更改科目班级</el-button>
+                    <el-button v-if="isShowSelectSubject" :class="[isCurrentQuestionnaireTaskFinish ? 'is-disabled' : 'button_border']" 
+                        @click="isCurrentQuestionnaireTaskFinish ? '' : GoToElectiveSubject()" >更改科目班级</el-button>
                 </div>
             </div>
         </div>
@@ -56,7 +57,7 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted } from 'vue';
+import { ref, onMounted, computed } from 'vue';
 import { useRouter } from 'vue-router';
 import { subjectToColor,fillOutStatusToColor } from '@/components/commonDictConvert';
 
@@ -86,7 +87,21 @@ const remainTime = ref()      //剩余时间
 const teacherList = ref<TeacherItm[]>([]);
 
 
+//  当前问卷任务是否全部完成 ———— 以及问卷是否结束
+const isCurrentQuestionnaireTaskFinish = computed(()=>{
+    // 判断教师列表是否全部完成
+    return !(teacherList.value.find(teacher=>{
+        return (teacher.evaluationStatus === 0 || teacher.evaluationStatus === 1)
+    }))
+}) 
 
+// 当前问卷是否有选科
+const isShowSelectSubject = computed(()=>{
+    let userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
+    return userInfo?.evaluationBO?.showSelectSubject
+})
+
+// 跳转到选科页面
 const GoToElectiveSubject = ()=>{
     router.push('/app/questionnaireElectiveSubject')
 }
@@ -129,7 +144,12 @@ onMounted( async()=>{
     display: flex;
     flex-direction: column;
     background-color: #ffffff !important;
-    padding:calc(16 * var(--app-rpx)) calc(12 * var(--app-rpx))  calc(90 * var(--app-rpx)) !important;
+    
+    padding:calc(16 * var(--app-rpx)) 
+            calc(12 * var(--app-rpx))  
+            // calc(90 * var(--app-rpx)) !important;
+            calc((90 + 44 + 84 + 10) * var(--app-rpx)) !important; /* 为底部按钮留出空间 */
+
     
     .search_content{
         .content_right{
@@ -242,14 +262,25 @@ onMounted( async()=>{
 
     /* 底部区域 */
     .bottom_action {
-        margin-top: calc(84 * var(--app-rpx)) ;
-        margin-bottom:  calc(10 * var(--app-rpx)) ;
+        position: fixed;
+        bottom:0;
+        left: 0;
+        width: 100%;
+        padding-bottom: calc(10 * var(--app-rpx)) ;
+        background-color: white;
+
+    
+        //   position:relative 时 距离上部间距
+        // margin-top: calc(84 * var(--app-rpx)) ;
+        // margin-bottom:  calc(10 * var(--app-rpx)) ;
+
+
         flex: 1 1;
         display: flex;
         align-items: flex-end;
         justify-content: center;
         .button_background{
-            width:calc(100% - 16 * var(--app-rpx));
+            width:calc(100vw - 40 * var(--app-rpx));
             height: calc(44 * var(--app-rpx));
             font-size:  calc(16 * var(--app-rpx));
             border-radius: calc(4 * var(--app-rpx));

+ 22 - 2
src/views/selfQuestionnaireProcess/SelfQuestionnaireProcess.vue

@@ -30,7 +30,10 @@
                     </div>
                 </div>
                 <div class="content_right">
-                    <el-button class="button_border" @click="OpenFormDialog" >更改科目班级</el-button>
+                    <el-button v-if="isShowSelectSubject" 
+                        :class="[isCurrentQuestionnaireTaskFinish ? 'is-disabled' : 'button_border']" 
+                        @click="isCurrentQuestionnaireTaskFinish ? '' : OpenFormDialog()" 
+                    >更改科目班级</el-button>
                 </div>
             </div>
         </div>
@@ -72,7 +75,7 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted } from 'vue';
+import { ref, onMounted, computed } from 'vue';
 import { useRouter } from 'vue-router';
 import SubjectAndClassChooseDialog from '@/components/subjectAndClassChooseDialog/SubjectAndClassChooseDialog.vue';
 import { subjectToColor,fillOutStatusToColor } from '@/components/commonDictConvert';
@@ -99,6 +102,13 @@ const remainTime = ref()      //剩余时间
 // 教师列表数据
 const teacherList = ref<TeacherItm[]>([]);
 
+// 当前问卷是否有选科
+const isShowSelectSubject = computed(()=>{
+    let userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
+    return userInfo?.evaluationBO?.showSelectSubject
+})
+
+
 // 打开更改科目班级弹窗
 const formVisible = ref(false)
 const OpenFormDialog = ()=>{
@@ -114,6 +124,7 @@ const GoToFillOutQuestionnaire = ()=>{
     router.push('/main/questionnaireCommit')
 }
 
+// 获取评价进度列表数据
 const GetEvaluationProcessMsg = async ()=>{
     let res = await getEvaluationProcessMsgApi()
     if(res?.code == 200){
@@ -126,6 +137,15 @@ const GetEvaluationProcessMsg = async ()=>{
     }
 }
 
+//  当前问卷任务是否全部完成 ———— 以及问卷是否结束
+const isCurrentQuestionnaireTaskFinish = computed(()=>{
+    // 判断教师列表是否全部完成
+    return !(teacherList.value.find(teacher=>{
+        return (teacher.evaluationStatus === 0 || teacher.evaluationStatus === 1)
+    }))
+}) 
+
+
 onMounted( async()=>{
     await GetEvaluationProcessMsg()
 })