Blame view

src/components/exportDia.vue 4.58 KB
e17ec739   梁保满   随堂问,即时测导出爆表修改
1
2
  <template>
    <div>
b0cd2598   梁保满   fix:测试问题
3
4
5
6
7
8
      <el-dialog
        :close-on-click-modal="false"
        :visible.sync="diaShow"
        width="360px"
        :show-close="false"
      >
22095aba   梁保满   接口联调
9
        <i class="el-icon-close" @click="closeDia"></i>
e17ec739   梁保满   随堂问,即时测导出爆表修改
10
11
        <div v-show="exportType == 1">
          <div class="down-item">
b0cd2598   梁保满   fix:测试问题
12
            <p class="tit">是否将学生表现{{ type }}一起导出</p>
e17ec739   梁保满   随堂问,即时测导出爆表修改
13
14
15
16
17
18
19
20
21
            <el-radio-group v-model="downType" @change="changeDownType">
              <el-radio :label="1">不导出</el-radio>
              <el-radio :label="2">导出</el-radio>
            </el-radio-group>
          </div>
          <div class="down-item" v-show="downType == 2">
            <p class="tit">选择要导出的学生</p>
            <el-radio-group v-model="exportType">
              <el-radio :label="1">导出全部</el-radio>
e43b294b   梁保满   导出逻辑
22
              <el-radio :label="2">导出指定学生</el-radio>
e17ec739   梁保满   随堂问,即时测导出爆表修改
23
24
25
26
27
            </el-radio-group>
          </div>
        </div>
        <ul v-show="exportType == 2">
          <p class="export-tit">选择学生</p>
b0cd2598   梁保满   fix:测试问题
28
29
30
31
32
          <el-table
            :data="exportStudent"
            @selection-change="handleSelectionChange"
            :max-height="300"
          >
e17ec739   梁保满   随堂问,即时测导出爆表修改
33
            <el-table-column type="selection"></el-table-column>
b0cd2598   梁保满   fix:测试问题
34
35
36
37
38
            <el-table-column
              prop="studentName"
              label="姓名"
              align="center"
            ></el-table-column>
22095aba   梁保满   接口联调
39
            <el-table-column label="班名" align="center">
049db2b2   梁保满   接口联调
40
41
              <template slot-scope="scoped">
                <span v-if="scoped.row.classRank || scoped.row.rank">{{
b0cd2598   梁保满   fix:测试问题
42
43
44
45
46
                  scoped.row.classRank || scoped.row.rank
                }}</span>
                <span v-else>{{
                  scoped.row.examList && scoped.row.examList[0].classRank
                }}</span>
049db2b2   梁保满   接口联调
47
              </template>
22095aba   梁保满   接口联调
48
            </el-table-column>
b0cd2598   梁保满   fix:测试问题
49
50
51
52
53
54
55
56
57
58
59
60
61
            <el-table-column :label="this.lastLabel" align="center"
              ><template slot-scope="scoped">
                <span v-if="!isNaN(scoped.row.correctRate)"
                  >{{ scoped.row.correctRate }}%</span
                >
                <span v-else-if="!isNaN(scoped.row.scoringRate)">
                  {{ scoped.row.scoringRate }}%
                </span>
                <span v-else>{{
                  scoped.row.examList && scoped.row.examList[0].score
                }}</span>
              </template></el-table-column
            >
e17ec739   梁保满   随堂问,即时测导出爆表修改
62
63
64
          </el-table>
        </ul>
        <div class="dialog-footer" slot="footer">
b0cd2598   梁保满   fix:测试问题
65
66
67
68
69
70
71
72
73
74
75
76
77
78
          <el-button
            v-show="exportType == 2"
            size="small"
            type="primary"
            round
            @click="exportData(10)"
            >导出前十</el-button
          >
          <el-button size="small" type="primary" round @click="exportData(0)"
            >确 定</el-button
          >
          <el-button size="small" type="danger" round @click="cancel"
            >取 消</el-button
          >
e17ec739   梁保满   随堂问,即时测导出爆表修改
79
80
81
82
83
84
85
86
        </div>
      </el-dialog>
    </div>
  </template>
  <script>
  export default {
    name: "exportDia",
    props: {
b0cd2598   梁保满   fix:测试问题
87
88
89
90
      type: {
        type: String,
        default: "折线图",
      },
e17ec739   梁保满   随堂问,即时测导出爆表修改
91
      diaShow: Boolean,
7812e986   梁保满   班主任查看报表添加额外信息
92
93
94
      exportStudent: Array,
      lastLabel: {
        type: String,
b0cd2598   梁保满   fix:测试问题
95
96
        default: "总正确率",
      },
e17ec739   梁保满   随堂问,即时测导出爆表修改
97
98
99
100
101
102
    },
    data() {
      return {
        downType: 1,
        exportType: 1,
        multipleSelection: [],
b0cd2598   梁保满   fix:测试问题
103
      };
e17ec739   梁保满   随堂问,即时测导出爆表修改
104
105
    },
    watch: {
22095aba   梁保满   接口联调
106
107
108
      diaShow: {
        handler: function (nVal) {
          if (nVal) {
b0cd2598   梁保满   fix:测试问题
109
            this.downType = 1;
22095aba   梁保满   接口联调
110
111
          }
        },
b0cd2598   梁保满   fix:测试问题
112
113
        immediate: true,
      },
e17ec739   梁保满   随堂问,即时测导出爆表修改
114
115
116
    },
    methods: {
      changeDownType() {
b0cd2598   梁保满   fix:测试问题
117
        this.exportType = 1;
e17ec739   梁保满   随堂问,即时测导出爆表修改
118
119
      },
      handleSelectionChange(val) {
b0cd2598   梁保满   fix:测试问题
120
        this.multipleSelection = val;
e17ec739   梁保满   随堂问,即时测导出爆表修改
121
122
      },
      exportData(length) {
b0cd2598   梁保满   fix:测试问题
123
        let studentIds = [];
e17ec739   梁保满   随堂问,即时测导出爆表修改
124
        if (length) {
b0cd2598   梁保满   fix:测试问题
125
126
127
          studentIds = this.exportStudent.slice(0, 10).map((item) => {
            return item.studentId;
          });
e17ec739   梁保满   随堂问,即时测导出爆表修改
128
        } else {
b0cd2598   梁保满   fix:测试问题
129
130
131
          studentIds = this.multipleSelection.map((item) => {
            return item.studentId;
          });
e17ec739   梁保满   随堂问,即时测导出爆表修改
132
        }
b0cd2598   梁保满   fix:测试问题
133
        this.$emit("exportData", this.downType == 1 ? null : studentIds);
e17ec739   梁保满   随堂问,即时测导出爆表修改
134
135
136
      },
      cancel() {
        if (this.exportType == 2) {
b0cd2598   梁保满   fix:测试问题
137
          this.exportType = 1;
e17ec739   梁保满   随堂问,即时测导出爆表修改
138
        } else {
b0cd2598   梁保满   fix:测试问题
139
          this.$emit("cancel");
e17ec739   梁保满   随堂问,即时测导出爆表修改
140
        }
22095aba   梁保满   接口联调
141
142
      },
      closeDia() {
b0cd2598   梁保满   fix:测试问题
143
144
145
146
147
        this.$emit("cancel");
        this.exportType = 1;
      },
    },
  };
22095aba   梁保满   接口联调
148
149
150
151
152
153
154
155
156
157
158
159
  </script>
  <style lang="scss" scoped>
  .el-dialog__wrapper {
    :deep(.el-icon-close) {
      position: absolute;
      right: 2px;
      top: 5px;
      font-size: 18px;
      padding: 5px;
      cursor: pointer;
    }
  }
049db2b2   梁保满   接口联调
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
  
  :deep(.el-dialog) {
    .el-dialog__body {
      padding: 0 20px 10px;
    }
  
    .down-item {
      font-size: 15px;
      margin-bottom: 10px;
  
      .tit {
        line-height: 18px;
        padding: 10px 0;
      }
    }
  
    .export-tit {
      text-align: center;
      font-size: 16px;
      padding-bottom: 10px;
    }
  }
  
  .dialog-footer {
    text-align: center;
  }
22095aba   梁保满   接口联调
186
  </style>