fuliqi
2024-06-26 b66dc32f331b455ed1135235bbce14fc84a2f6fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<template>
  <div class="app-container">
    <el-form :model="queryParam" ref="queryForm" :inline="true">
      <el-form-item label="试卷ID:">
        <el-input v-model="queryParam.id" clearable></el-input>
      </el-form-item>
      <el-form-item label="学科:" >
        <el-select
          v-model="queryParam.subjectId"
          placeholder="全部科目"
          clearable
        >
          <el-option v-for="item in subjects" :key="item.id" :label="item.name" :value="item.id"/>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm">查询</el-button>
        <router-link :to="{path:'/exam/paper/edit'}" class="link-left">
          <el-button type="primary">添加</el-button>
        </router-link>
      </el-form-item>
    </el-form>
    <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
      <el-table-column align="center" prop="id" label="Id" width="90px"/>
      <el-table-column align="center" prop="subjectId" label="学科" width="120px" >
        <template slot-scope="scope">
          {{ translate(scope.row.subjectId) }}
        </template>
      </el-table-column>
      <el-table-column align="center" prop="name" label="名称"  />
      <el-table-column
        align="center"
        prop="paperType"
        label="试卷类型"
      >
        <template slot-scope="scope">
          <div v-if="scope.row.paperType === 1">固定试卷</div>
          <div v-else-if="scope.row.paperType === 2">随机试卷</div>
          <div v-else-if="scope.row.paperType === 3">随序试卷</div>
        </template>
      </el-table-column>
      <el-table-column
        align="center"
        prop="suggestTime"
        label="建议时长(分钟)"
      >
      </el-table-column>
      <el-table-column
        align="center"
        prop="num"
        label="题目数量"
      >
      </el-table-column>
      <el-table-column
        align="center"
        prop="score"
        label="总分"
      >
      </el-table-column>
      <el-table-column align="center" prop="createTime" label="创建时间" width="160px"/>
      <el-table-column  label="操作" align="center"  width="160px">
        <template slot-scope="{row}">
          <el-button size="mini" @click="$router.push({path:'/exam/paper/edit',query:{id:row.id}})" >编辑</el-button>
          <el-button size="mini" type="danger"  @click="deletePaper(row)" class="link-left">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
                @pagination="search"/>
  </div>
</template>
 
<script>
import Pagination from '@/components/Pagination'
import subjectApi from '@/api/subject'
import examPaperApi from '@/api/examPaper'
 
export default {
  components: { Pagination },
  data () {
    return {
      queryParam: {
        id: null,
        level: null,
        subjectId: null,
        pageIndex: 1,
        pageSize: 10
      },
      listLoading: true,
      tableData: [],
      subjects: [],
      total: 0
    }
  },
  created () {
    this.getSubjects()
    this.search()
  },
  methods: {
    submitForm () {
      this.queryParam.pageIndex = 1
      this.search()
    },
    search () {
      this.listLoading = true
      examPaperApi.pageList(this.queryParam).then(data => {
        const re = data.data
        this.tableData = re.list
        this.total = re.total
        this.queryParam.pageIndex = re.pageNum
        this.listLoading = false
      })
    },
    deletePaper (row) {
      let _this = this
      examPaperApi.deletePaper(row.id).then(re => {
        if (re.code === 1) {
          _this.search()
          _this.$message.success(re.message)
        } else {
          _this.$message.error(re.message)
        }
      })
    },
    // 获取科目
    getSubjects () {
      subjectApi.list().then(re => {
        this.subjects = re.data
      })
    },
    translate (subjectId) {
      const subject = this.subjects.find(subject => subject.id == subjectId);
      return subject ? subject.name : '未知';
    }
  }
}
</script>