la 2 anos atrás
pai
commit
567a5b559c

+ 2 - 1
.vscode/settings.json

@@ -8,5 +8,6 @@
     "*.css": "postcss"
   },
   "editor.formatOnSave": false,
-  "vue.features.codeActions.enable": false
+  "vue.features.codeActions.enable": false,
+  "vue.codeActions.enabled": false
 }

+ 2 - 0
components.d.ts

@@ -42,6 +42,8 @@ declare module '@vue/runtime-core' {
     NavHeader: typeof import('./src/components/NavHeader/index.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
+    StatisticsSchool: typeof import('./src/components/statisticsSchool/index.vue')['default']
+    StatisticsTop: typeof import('./src/components/statisticsTop/index.vue')['default']
     TheCounter: typeof import('./src/components/TheCounter.vue')['default']
     TheFooter: typeof import('./src/components/TheFooter.vue')['default']
     TheInput: typeof import('./src/components/TheInput.vue')['default']

+ 81 - 0
src/components/statisticsSchool/index.vue

@@ -0,0 +1,81 @@
+<template>
+  <div class="mainBase">
+    <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large" @change="handelSchool">
+      <el-option label="全部" value="0" />
+      <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value"  />
+    </el-select>
+  </div>
+</template>
+
+<script setup lang="ts">
+import {normalSchool_list } from '@/pages/api';
+import { useRouter } from "vue-router";
+const router = useRouter();
+import { defineProps,defineEmits } from 'vue';
+const props = defineProps(['normal_school','school_list']);
+// const emit = defineEmits(['parentClick'])
+
+
+let normal_school = ref("");
+
+let school_list = ref([{
+  value: '1',
+  label: '学校1'
+}, {
+  value: '2',
+  label: '学校2'
+}]);
+
+onMounted(() => {
+  // initSchool();
+})
+
+//初始化学校
+const initSchool = () => {
+  let transObj = {
+    ze_id:1015//考试ID
+  }
+  normalSchool_list(transObj)
+    .then(res => {
+      if (res.code == "1") {
+        // let allData = res.data.list;
+        //接口模拟数据
+        let allData = [
+          {
+            sm_id: "267",
+            sm_name: "博智测试学校",
+            classes: [
+              {
+                cm_id: "8683",
+                cm_name: "高一(25)班"
+              }
+            ]
+          }
+        ]
+        let tempArr = [];
+        allData.forEach(item => {
+          tempArr.push({
+            value: item.sm_name,
+            label: item.sm_id
+          })
+          school_list.value = tempArr;
+        })
+
+        console.log(res, "00");
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+
+const handelSchool = (item) => {
+  let tempIn = allData.value.filter(item => item.sm_id == item);
+  // classroom_list.value=
+  console.log(item);
+}
+
+</script>
+
+<style scoped>
+
+</style>

+ 43 - 124
src/pages/ksfx/cjfx_cjd.vue

@@ -11,6 +11,9 @@
       <div class="w-942 p-4 blueBg">
 
         <div class="flex items-center">
+
+          <!-- <statisticsSchool :normal_school="normal_school" :school_list="school_list" /> -->
+
           <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large" @change="handelSchool">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value"  />
@@ -98,12 +101,13 @@
 }
 </route>
 <script lang="ts" setup>
-import {normalSchool_list,normalSubject_list,normalClassroom_list,cjfx_cjd_list } from './api';
+import {normalSchool_list,cjfx_cjd_list } from './api';
 import { useRouter } from "vue-router";
 const router = useRouter();
 
 let allData = ref("");
 let normal_subject = $ref("");
+
 let normal_classroom = $ref("");
 let normal_school = $ref("");
 
@@ -143,6 +147,43 @@ const parentClick = (val) => {
   activeIndex.value = val;
 }
 
+let rangeData = [
+  {
+    kh: "033055697",
+    cj: "13.0",
+    mc: "第一名",
+    xx: "博智实验学校",
+
+  },
+  {
+    kh: "033055697",
+    cj: "13.0",
+    mc: "第一名",
+    xx: "博智实验学校",
+
+  },
+  {
+    kh: "033055697",
+    cj: "13.0",
+    mc: "第一名",
+    xx: "博智实验学校",
+
+  },
+  {
+    kh: "033055697",
+    cj: "13.0",
+    mc: "第一名",
+    xx: "博智实验学校",
+
+  },
+  {
+    kh: "033055697",
+    cj: "13.0",
+    mc: "第一名",
+    xx: "博智实验学校",
+
+  }
+]
 let listTitleShow = ref({
   "kh": "考号",
   "xm": "姓名",
@@ -183,135 +224,13 @@ let listShow = ref([
 
     ]
   },
-  {
-    "kh": "2345447634",
-    "xm": "李爱国",
-    "bj": "初一(2)班",
-    "subInfo": [
-      {
-        "subTitle": "语文",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-      {
-        "subTitle": "数学",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-
-    ]
-  },
-  {
-    "kh": "2345443211",
-    "xm": "迪丽热巴",
-    "bj": "初一(2)班",
-    "subInfo": [
-      {
-        "subTitle": "语文",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-      {
-        "subTitle": "数学",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-
-    ]
-  },
-  {
-    "kh": "2345447634",
-    "xm": "李爱国",
-    "bj": "初一(2)班",
-    "subInfo": [
-      {
-        "subTitle": "语文",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-      {
-        "subTitle": "数学",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      },
-
-    ]
-  },
 ]);
 
-let rangeData = [
-  {
-    kh: "033055697",
-    cj: "13.0",
-    mc: "第一名",
-    xx: "博智实验学校",
-
-  },
-  {
-    kh: "033055697",
-    cj: "13.0",
-    mc: "第一名",
-    xx: "博智实验学校",
-
-  },
-  {
-    kh: "033055697",
-    cj: "13.0",
-    mc: "第一名",
-    xx: "博智实验学校",
-
-  },
-  {
-    kh: "033055697",
-    cj: "13.0",
-    mc: "第一名",
-    xx: "博智实验学校",
-
-  },
-  {
-    kh: "033055697",
-    cj: "13.0",
-    mc: "第一名",
-    xx: "博智实验学校",
-
-  }
-]
 
 onMounted(() => {
-
   initData();
 })
-//初始化学校
-const initSchool = () => {
-  let transObj = {
-    ze_id:''//考试ID
-  }
-  normalSchool_list(transObj)
-    .then(res => {
-      if (res.code == "1") {
-        allData.value = res.data.list;
-        let allData = res.data.list;
-
-        let tempArr = [];
-        allData.forEach(item => {
-          tempArr.push({
-            value: item.sm_name,
-            label: item.sm_id
-          })
-          school_list.value = tempArr;
-        })
-
-        console.log(res, "00");
-      }
-    })
-    .catch(error => { console.log(error) });
-}
+
 
 const initData =() => {
   let transObj = {

+ 5 - 6
src/pages/ksfx/cjfx_fsdtj.vue

@@ -11,9 +11,9 @@
       <div class="w-1012px p-4 blueBg">
 
         <div class="flex items-center">
-          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
+          <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
             <el-option label="全部" value="0" />
-            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
+            <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
           <el-select class="mr-10px" v-model="normal_classroom" placeholder="请选择班级" size="large">
@@ -21,12 +21,11 @@
             <el-option v-for="item in classroom_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-          <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
             <el-option label="全部" value="0" />
-            <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
+            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-
         </div>
         <div class="flex justify-between mt-4 exportBtn">
           <div>
@@ -68,7 +67,7 @@
 }
 </route>
 <script lang="ts" setup>
-import {normalSchool_list,normalSubject_list,normalClassroom_list,cjfx_fsdtj_list } from './api';
+import {cjfx_fsdtj_list } from './api';
 import * as echarts from 'echarts';
 import { useRouter } from "vue-router";
 const router = useRouter();

+ 4 - 5
src/pages/ksfx/cjfx_jstj.vue

@@ -11,17 +11,16 @@
       <div class="w-1012px p-4 blueBg">
 
         <div class="flex items-center">
-          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
-            <el-option label="全部" value="0" />
-            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
-          </el-select>
-
 
           <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
+            <el-option label="全部" value="0" />
+            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
 
         </div>
         <div class="flex justify-between mt-4 exportBtn">

+ 4 - 5
src/pages/ksfx/cjfx_pjflcfx.vue

@@ -11,17 +11,16 @@
       <div class="w-1012px p-4 blueBg">
 
         <div class="flex items-center">
-          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
-            <el-option label="全部" value="0" />
-            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
-          </el-select>
-
 
           <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
+            <el-option label="全部" value="0" />
+            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
 
         </div>
         <div class="flex justify-between mt-4 exportBtn">

+ 0 - 13
src/pages/ksfx/index.vue

@@ -1,13 +0,0 @@
-<template>
-  <div>
-    成绩分析主页
-  </div>
-</template>
-
-<script setup lang="ts">
-
-</script>
-
-<style scoped>
-
-</style>

+ 67 - 32
src/pages/ksfx/ksfx.vue

@@ -7,37 +7,42 @@
       <div class="min-h-600px groupExamMian">
         <div class="demo-collapse">
           <el-collapse accordion>
-            <el-collapse-item :name="index+1" v-for="(item, index) in examArrlist" :key="index" :class="{ 'bg-cusblue': index % 2 == 0 }">
+            <el-collapse-item :name="index + 1" v-for="(item, index) in examArrlist" :key="index"
+              :class="{ 'bg-cusblue': index % 2 == 0 }">
               <template #title>
-                <div class="w-full h-60px flex flex-row justify-between examSingleT" >
-                  <div>{{ item.examN }}</div>
-                  <div>参考人数:{{ item.attendExamNum }}</div>
-                  <div>满分:{{ item.fullScore }}</div>
-                  <div>最高分:{{ item.maxScore }}</div>
+                <div class="w-full h-60px flex flex-row justify-between examSingleT">
+                  <div>{{ item.ykj_ksrwmc }}</div>
+                  <div>参考人数:??</div>
+                  <div>满分:??</div>
+                  <div>最高分:??</div>
                   <div>考试分析</div>
                 </div>
+
               </template>
+
               <div>
+
                 <div class="px-90px py-10px flex flex-row justify-start flex-wrap  examList" v-if="item.examPaperList">
-            <div class="h-149px p-5px mt-10px flex flex-row justify-start examListSingle"
-              v-for="(secItem, secIndex) in item.examPaperList" :key="secIndex" @click="linkTo('cjfx_cjd')">
-              <div class="w-2/5 relative examListSingle_left">
-                <img :src="examIcon" class="w-full h-full" alt="">
-                <div class="w-full absolute top-0 left-0 text-right text-red-500 text-3xl font-bold pr-2 scoreNum"
-                  v-if="secItem.scoreN != 0">{{ secItem.scoreN }}</div>
-                <div class="w-full absolute top-0 left-0 text-right text-red-500 text-3xl font-bold pr-2 lockExam" v-else>
-                  缺考</div>
-                <div class="w-full absolute left-0 bottom-2 text-center text-red-500 text-2xl font-bold subjectName">{{
-                  secItem.subName }}</div>
-              </div>
-              <div class="w-3/5 py-5px px-10px examListSingle_right">
-                <p class="h-1/4">学科:{{ secItem.scoreN }}</p>
-                <p class="h-1/4">总分:{{ secItem.scoreN }}</p>
-                <p class="h-1/4">客观题:{{ secItem.ObjectiveQuestion }}</p>
-                <p class="h-1/4">主观题:{{ secItem.SubjectiveQuestions }}</p>
-              </div>
-            </div>
-          </div>
+                  <div class="h-149px p-5px mt-10px flex flex-row justify-start examListSingle"
+                    v-for="(secItem, secIndex) in item.examPaperList" :key="secIndex" @click="linkTo('cjfx_cjd')">
+                    <div class="w-2/5 relative examListSingle_left">
+                      <img :src="examIcon" class="w-full h-full" alt="">
+                      <div class="w-full absolute top-0 left-0 text-right text-red-500 text-3xl font-bold pr-2 scoreNum"
+                        v-if="secItem.scoreN != 0">{{ secItem.scoreN }}</div>
+                      <div class=" absolute top-7px left-0 text-3xl font-bold  lockExam" v-else>
+                        缺考</div>
+                      <div
+                        class="w-full absolute left-0 bottom-2 text-center text-red-500 text-2xl font-bold subjectName">{{
+                          secItem.subName }}</div>
+                    </div>
+                    <div class="w-3/5 py-5px px-10px examListSingle_right">
+                      <p class="h-1/4">学科:{{ secItem.scoreN }}</p>
+                      <p class="h-1/4">总分:{{ secItem.scoreN }}</p>
+                      <p class="h-1/4">客观题:{{ secItem.ObjectiveQuestion }}</p>
+                      <p class="h-1/4">主观题:{{ secItem.SubjectiveQuestions }}</p>
+                    </div>
+                  </div>
+                </div>
               </div>
             </el-collapse-item>
 
@@ -62,7 +67,7 @@
 <script setup>
 import { InfoFilled } from '@element-plus/icons-vue';
 import examIcon from '@/assets/ksfx/examIcon.png';
-import {student_ksfx_list,ksjh_list} from "@/pages/ksfx/api";
+import { student_ksfx_list, ksjh_list } from "@/pages/ksfx/api";
 
 import { useRouter } from "vue-router";
 import { skeletonProps } from 'element-plus';
@@ -71,23 +76,42 @@ const router = useRouter();
 
 const scoreMarkSwitch = $ref(true);
 
-let examArrlist = ref()
+let examArrlist = ref();
+
 onMounted(() => {
   initData();
 });
+//初始化
 const initData = () => {
+  //接口模拟
+  // let transObj1 = {
+  //   sm_id: 267,
+  //   ykj_kslx: 7,
+  // }
+
+  // ksjh_list(transObj1)
+  //   .then(res => {
+  //     if (res.code == "1") {
+  //       console.log(res, "887878");
+  //       examArrlist.value = res.data.page_data;
+
+  //     }
+  //   })
+  //   .catch(error => { console.log(error) })
+
   let transObj = {
     xueke_id: '',
     grade_id: '',
-    school_id:''
+    school_id: ''
   }
   student_ksfx_list(transObj)
     .then(res => {
       if (res.code == "1") {
+        console.log(res,"8989")
         examArrlist.value = res.data.data.examArrlist;
       }
     })
-  .catch(error=>{console.log(error)})
+    .catch(error => { console.log(error) })
 }
 //跳转
 const linkTo = (item) => {
@@ -99,11 +123,12 @@ const linkTo = (item) => {
 <style lang="scss" scoped>
 @import '@/styles/ksfx.css';
 
-::v-deep .el-collapse-item__header{
+::v-deep .el-collapse-item__header {
   height: 60px;
   border: 1px dashed grey;
-  background-color:#F1F7FF;
+  background-color: #F1F7FF;
 }
+
 .mastMain {
   background-color: #ffffff;
   box-sizing: border-box;
@@ -133,4 +158,14 @@ const linkTo = (item) => {
   margin-right: 0 !important;
 }
 
-.examListSingle_left {}</style>
+.examListSingle_left {}
+
+.lockExam {
+  width: 70%;
+  transform: translate(25%, 0%);
+  background-color: red;
+  border-radius: 50%;
+  color: #ffffff;
+  font-size: 14px;
+  text-align: center;
+}</style>

+ 4 - 6
src/pages/ksfx/sjfx_kgtfx.vue

@@ -12,22 +12,20 @@
 
         <div class="flex mt-20px items-center">
 
-          <el-select class="mr-10px" v-model="normal_topic" placeholder="请选择题目" size="large">
-            <el-option label="全部" value="0" />
-            <el-option v-for="item in topic_list" :key="item.value" :label="item.label" :value="item.value" />
-          </el-select>
-
           <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
+          <el-select class="mr-10px" v-model="normal_topic" placeholder="请选择题目" size="large">
+            <el-option label="全部" value="0" />
+            <el-option v-for="item in topic_list" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
 
         </div>
 
 
         <div class="h-auto mt-20px">
-
           <div class="normalTit">
             <span>客观题分析</span>
           </div>

+ 6 - 4
src/pages/ksfx/sjfx_ztfx.vue

@@ -33,20 +33,22 @@
         </div>
 
         <div class="flex mt-20px items-center">
+
           <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
+          <el-select class="mr-10px" v-model="normal_classroom" placeholder="请选择班级" size="large">
             <el-option label="全部" value="0" />
-            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
+            <el-option v-for="item in classroom_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-          <el-select class="mr-10px" v-model="normal_classroom" placeholder="请选择班级" size="large">
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
             <el-option label="全部" value="0" />
-            <el-option v-for="item in classroom_list" :key="item.value" :label="item.label" :value="item.value" />
+            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
+
         </div>
         <div class="flex justify-between mt-4 exportBtn">
           <div>

+ 18 - 5
src/pages/ksfx/stu_wdsj.vue

@@ -7,6 +7,12 @@
 
       <div class="w-1012px p-12 blueBg">
 
+        <div class="flex my-20px items-center">
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large">
+            <el-option label="全部" value="0" />
+            <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </div>
 
         <swiper :slidesPerView="1" :spaceBetween="30" :loop="true" :centeredSlides="true"
         :pagination="{	clickable: true}"
@@ -35,6 +41,18 @@ import { useRouter } from "vue-router";
 const router = useRouter();
 import { student_wdsj_list } from "~/pages/process/api";
 
+let StuLeftMenuNum = 1;
+
+let normal_subject = $ref("");
+let subject_list = [{
+  value: '1',
+  label: '语文'
+}, {
+  value: '2',
+  label: '数学'
+}]
+
+
 
 import { Swiper, SwiperSlide } from 'swiper/vue'; // swiper所需组件
 // 这是分页器和对应方法,swiper好像在6的时候就已经分离了分页器和一些其他工具
@@ -54,11 +72,6 @@ import 'swiper/css/pagination';
 // setup语法糖只需要这样创建一个变量就可以正常使用分页器和对应功能,如果没有这个数组则无法使用对应功能
 
 
-
-
-
-
-
 </script>
 
 <style scoped>