zhouwx
2024-10-11 91645e9d87249621aa358ef519111ea72679d959
src/views/onlineEducation/questionManage/index.vue
@@ -1,22 +1,23 @@
<template>
  <div class="app-container">
    <el-table v-loading="loading" :data="expertList">
      <el-table-column label="月份" align="center" prop="month" />
    <el-table v-loading="loading" :data="dataList">
      <el-table-column label="序号" align="center" type="index" width="80" />
      <el-table-column label="更新时间" align="center" prop="updateTime" />
      <el-table-column label="平台名称" align="center" prop="institutionName" />
      <el-table-column label="上月题库总题目数" align="center" prop="lastMonthCount" />
      <el-table-column label="新增题目数量" align="center" prop="addCount" />
      <el-table-column label="减少题目数" align="center" prop="reduceCount" />
      <el-table-column label="刷题应用率" align="center" prop="brushRate" />
      <el-table-column label="组卷应用率" align="center" prop="assemblyRate" />
      <el-table-column label="上报时间" align="center" prop="createTime" />
      <el-table-column label="组卷预览" align="center" class-name="small-padding fixed-width">
      <el-table-column label="题库名称" align="center" prop="subjectName" />
      <el-table-column label="题目数量" align="center" prop="subjectCount" />
      <el-table-column label="类型" align="center" prop="type" >
        <template #default="scope">
          {{scope.row.type == 1 ? '单选' : scope.row.type == 2 ?'多选' :scope.row.type == 3 ? '判断':scope.row.type == 4 ? '简答':scope.row.type == 5 ? '混合' : '其他'}}
        </template>
      </el-table-column>
      <el-table-column label="模拟考核组卷" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <el-button
            size="mini"
            type="text"
            style="color: #1890ff"
            @click="handleView(scope.row.url)"
          >点击预览</el-button>
            :loading="btnLoading"
            type="primary"
            @click="groupExam(scope.row)"
          >立即组卷</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -27,11 +28,23 @@
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <el-dialog
      :visible.sync="showDialog"
      width="500px"
      :before-close="handleClose">
      <div style="font-size: 16px">
        <div>已向 <span class="titleText">{{chooseItem.institutionName}}</span> 发送基于题库 <span class="titleText">{{chooseItem.subjectName}}</span> 的组卷要求,学员可登录平台进行模拟考试。</div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="handleClose">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import { listQuestion } from '@/api/onlineEducation/student'
import { delPlat } from '@/api/onlineEducation/plat'
export default {
  name: "nPeopleManage",
@@ -46,11 +59,14 @@
      addForm: false,
      total: 0,
      expertTypes: [],
      expertList: [],
      dataList: [],
      queryParams: {
        pageNum: 1,
        pageSize: 10,
      },
      btnLoading:false,
      showDialog:false,
      chooseItem: {}
    };
  },
  created() {
@@ -59,19 +75,17 @@
  methods: {
    getList(){
      this.loading = true;
      listQuestion( this.queryParams).then((res) => {
        if (res.code == 200) {
          this.expertList = res.rows.map(item => {
            return {
              ...item,
              brushRate: item.brushRate + '%',
              assemblyRate: item.assemblyRate + '%'
            }
          })
          this.total = res.total
          this.loading = false;
      this.dataList = [
        {
          id: 1,
          updateTime: '2024-08-10 10:30:30',
          institutionName: '链工宝学习平台',
          subjectName: '高压电工作业',
          subjectCount: 50,
          type: 1
        }
      })
      ]
      this.loading = false;
    },
    handleChange(){
@@ -82,9 +96,35 @@
    resetQuery(){
    },
    handleView(url){
      window.open(url,'_blank')
    groupExam(row){
      this.$confirm('确认立即组卷该题库?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.btnLoading = true
        setTimeout(() => {
          this.chooseItem = row
          console.log('row',row)
         this.showDialog = true
          this.btnLoading = false
        }, 2000);
      })
    },
    handleClose() {
      this.showDialog = false
    }
  }
};
</script>
<style lang="scss" scoped>
.titleText{
  font-size: 16px;
  font-weight: 600;
  color: #1890ff;
}
.dialog-footer{
  display: flex;
  justify-content: center;
}
</style>