luohairen
2024-11-07 84659b2d8d9c839903988b59905c6e6c338c5e71
错题展示
3个文件已修改
90 ■■■■ 已修改文件
src/api/modules/wrong.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wrong-list/data-list/index.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wrong-list/index.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/modules/wrong.js
@@ -1,5 +1,5 @@
import service from "@/api";
export const getWrongList = (postData = {examName: '', pageIndex: 1, pageSize: 10}) => {
    return service.post('/api/student/wrong/pageList',postData);
export const page = (postData = {examName: ''}) => {
    return service.post('/api/student/wrong/page',postData);
}
src/views/wrong-list/data-list/index.vue
@@ -3,7 +3,7 @@
    <el-scrollbar>
      <el-table
          v-loading="loading"
          :data="tableData"
          :data="dataList"
          border
          :row-style="{height:'42px'}"
          :cell-style="{padding: '0'}"
@@ -18,7 +18,8 @@
            label="题型"
            align="center"
            width="100px"
            prop="questionTypeName"
            prop="questionType"
            :formatter="questionTypeFormatter"
        ></el-table-column>
        <el-table-column
            align="center"
@@ -48,38 +49,21 @@
          </template>
        </el-table-column>
      </el-table>
      <pagination v-show="total>0" :total="total" :page.sync="searchForm.currentPage"
                  :limit.sync="searchForm.pageSize"
                  @pagination="dataList"/>
    </el-scrollbar>
  </div>
</template>
<script setup>
import { ref } from 'vue';
import { Timer } from '@element-plus/icons-vue';
import { useRouter } from 'vue-router';
import { useExamStore } from '@/store/index.js';
import { getExamInfo } from '@/api/modules/exam.js';
const loading = ref(false);
const tableData = ref([]);
const total = ref(0);
const searchForm = ref({
  currentPage: 1,
  pageSize: 10
});
// const router = useRouter();
// dataList
const props = defineProps({
  dataList: {
    type: Array,
    default: () => []
  }
});
const loading = ref(false);
const checkWrong = (id) => {
  router.push({
@@ -90,8 +74,22 @@
  });
};
</script>
// 题目类型格式化
const questionTypeFormatter = (row,column,cellValue) => {
  const typeMap = {
    1: '单选题',
    2: '多选题',
    3: '判断题',
    4: '填空题',
    5: '简答题',
    6: '语音题',
    7: '计算题',
    8: '分析题'
  };
  return typeMap[cellValue];
}
</script>
<style lang="scss" scoped>
.item {
  width: 100%;
src/views/wrong-list/index.vue
@@ -9,8 +9,8 @@
            <div class="card-wrapper w-full h-full flex flex-col px-8 box-border">
              <div class="card-header flex justify-between items-center shrink-0">
                <div class="header-search flex items-center">
                  <el-input v-model="searchText" placeholder="请输入考试名称" :prefix-icon="Search" maxlength="20" @input="searchData"/>
                  <el-button type="primary" class="ml-4" @click="searchData">搜索</el-button>
<!--                  <el-input v-model="searchText" placeholder="请输入考试名称" :prefix-icon="Search" maxlength="20" @input="searchData"/>-->
<!--                  <el-button type="primary" class="ml-4" @click="searchData">搜索</el-button>-->
                </div>
              </div>
@@ -21,10 +21,10 @@
              </div>
              <div class="card-footer flex justify-center mb-7 shrink-0">
                <el-pagination background layout="prev, pager, next" :total="dataList.length"
                               :default-page-size="20"
                               :currentPage="currentIndex"
                               :hide-on-single-page="true"
                <el-pagination background layout="prev, pager, next"
                               :total="pageParam.total"
                               :page-size="10"
                               :current-page="pageParam.pageIndex"
                               @current-change="handleCurrentChange"/>
              </div>
            </div>
@@ -37,41 +37,51 @@
<script setup>
import { ref } from 'vue';
import NormalHeader from '@/components/NormalHeader/index.vue';
import DataList from './data-list/index.vue';
import { getWrongList } from '@/api/modules/wrong.js';
import { page } from '@/api/modules/wrong.js';
const searchText = ref('');
const currentIndex = ref(1);
const dataList = ref([]);
const loading = ref(false);
const currentData = ref([]);
// 分页参数
const pageParam = {
  pageIndex: 1,
  pageSize: 10,
  total: 0
};
const getData = () => {
  loading.value = true;
  getWrongList({ examName: searchText.value }).then(res => {
  page().then(res => {
    dataList.value = res.data;
    loading.value = false;
  }).catch(err => {
    loading.value = false;
  });
};
// 页面切换
const handleCurrentChange = (pageIndex) => {
  pageParam.pageIndex = pageIndex; // 更新页码
  const currentData = getPaginatedData(); // 获取当前页数据
  updateView(currentData); // 更新视图
}
getData();
const searchData = () => {
  getData();
};
}
const handleClick = (tab, event) => {
};
const handleCurrentChange = (val) => {
  getData();
}
</script>
<style lang="scss" scoped>