From 51d32283921983508bebffee2ecd5cb4c4948e6a Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 05 六月 2024 16:04:23 +0800 Subject: [PATCH] feat:题目表移除分数字段、新增题目状态、条件多选 --- src/views/Manage/TestPaper/QuestionBank.vue | 145 ++++++++++++++++++++++++++++------------------- 1 files changed, 86 insertions(+), 59 deletions(-) diff --git a/src/views/Manage/TestPaper/QuestionBank.vue b/src/views/Manage/TestPaper/QuestionBank.vue index aeb052a..473b0c4 100644 --- a/src/views/Manage/TestPaper/QuestionBank.vue +++ b/src/views/Manage/TestPaper/QuestionBank.vue @@ -19,21 +19,23 @@ <div> <el-form :inline="true" :model="queryParam" class="demo-form-inline" label-width="80px"> <el-form-item> - <el-input v-model="queryParam.content" placeholder="棰樼洰鍚�"></el-input> + <el-input v-model="queryParam.content" placeholder="璇疯緭鍏ラ鐩�" clearable></el-input> </el-form-item> <el-form-item> - <el-select v-model="queryParam.subjectId" placeholder="鍏ㄩ儴绉戠洰"> - <el-option label="鍏ㄩ儴绉戠洰" value="shanghai"></el-option> - <el-option label="璇枃" value="beijing"></el-option> - <el-option label="鏁板" value="beijing"></el-option> - <el-option label="鑻辫" value="beijing"></el-option> + <el-select v-model="queryParam.subjectId" placeholder="璇烽�夋嫨绉戠洰" clearable multiple @change="search"> + <el-option v-for="item in subjects" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> <el-form-item> - <el-select v-model="queryParam.questionType" placeholder="閫夋嫨棰�"> - <el-option label="閫夋嫨棰�" value="shanghai"></el-option> - <el-option label="闂瓟棰�" value="beijing"></el-option> - <el-option label="鍒ゆ柇棰�" value="beijing"></el-option> + <el-select v-model="queryParam.questionType" placeholder="璇烽�夋嫨棰樺瀷" clearable multiple @change="search"> + <el-option v-for="item in questionTypeEnum" :key="item.key" :value="item.key" + :label="item.value"></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-select v-model="queryParam.status" placeholder="璇烽�夋嫨鐘舵��" clearable @change="search"> + <el-option value="1" label="鍚敤"></el-option> + <el-option value="2" label="绂佺敤"></el-option> </el-select> </el-form-item> @@ -43,56 +45,66 @@ </el-form> </div> <!-- 琛ㄦ牸 --> - <el-table v-loading="listLoading" :header-cell-style="getRowClass" :data="tableData" border style="width: 100%;"> - <el-table-column align="center" prop="shortTitle" label="棰樼洰鍚�"> + <el-table v-loading="listLoading" :header-cell-style="getRowClass" :data="tableData" border + style="width: 100%;"> + <el-table-column align="center" prop="shortTitle" label="棰樼洰鍚�" show-overflow-tooltip> </el-table-column> - <el-table-column align="center" prop="subjectName" label="绉戠洰"> + <el-table-column align="center" prop="subjectName" label="绉戠洰" width="150px"> </el-table-column> - <el-table-column align="center" prop="questionTypeName" label="棰樺瀷"> + <el-table-column align="center" prop="questionTypeName" label="棰樺瀷" width="100px"> </el-table-column> - <el-table-column align="center" prop="score" label="鍒嗘暟"> - </el-table-column> - <el-table-column prop="difficult" label="闅惧害" width="60px"/> - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/> - <el-table-column label="鎿嶄綔" align="center" width="220px"> + <!-- <el-table-column align="center" prop="score" label="鍒嗘暟"> + </el-table-column> --> + <el-table-column align="center" prop="difficult" label="闅惧害" width="60px" /> + <el-table-column align="center" prop="createTime" label="鍒涘缓鏃堕棿" width="160px" /> + <el-table-column label="鐘舵��" prop="status" width="70px"> <template slot-scope="{row}"> - <el-button size="mini" @click="showQuestion(row)">棰勮</el-button> - <el-button size="mini" @click="editQuestion(row)">缂栬緫</el-button> - <el-button size="mini" type="danger" @click="deleteQuestion(row)" class="link-left">鍒犻櫎</el-button> + <el-tag :type="row.status === '绂佺敤' ? 'danger' : 'success'"> + {{ row.status ? row.status : '鍚敤' }} + </el-tag> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="300px"> + <template slot-scope="{row}"> + <el-button size="mini" @click="showQuestion(row)">棰勮</el-button> + <el-button size="mini" @click="editQuestion(row)">缂栬緫</el-button> + <el-button size="mini" type="primary" @click="statusQuestion(row)">{{ row.status === "绂佺敤" ? "鍚敤" : "绂佺敤" + }}</el-button> + <el-popconfirm title="纭鍒犻櫎鍚�" @confirm="deleteQuestion(row)"> + <el-button slot="reference" size="mini" type="danger" class="link-left">鍒犻櫎</el-button> + </el-popconfirm> </template> </el-table-column> </el-table> - <div class="block" style="display: flex; margin-top: 40px;"> - <pagination v-show="total > 0" :total="total" :page.sync="queryParam.pageIndex" - :limit.sync="queryParam.pageSize" @pagination="search" /> - </div> + <pagination v-show="total > 0" :total="total" :page.sync="queryParam.pageIndex" + :limit.sync="queryParam.pageSize" @pagination="search" /> </div> </div> </div> <!-- 濉┖ --> - <el-dialog :visible.sync="gapVisible" :close-on-click-modal="false"> - <gap ref="gap" @children="parentGoods" @callback="callback" /> + <el-dialog :visible.sync="gapVisible" :close-on-click-modal="false" v-if="gapVisible"> + <gap ref="gap" @children="parentGoods" @callback="callback" :id="updateId" /> </el-dialog> <!-- 澶氶�� --> - <el-dialog :visible.sync="multipleVisible" :close-on-click-modal="false"> - <multiple ref="multiple" @children="parentGoods" @callback="callback" /> + <el-dialog :visible.sync="multipleVisible" :close-on-click-modal="false" v-if="multipleVisible"> + <multiple ref="multiple" @children="parentGoods" @callback="callback" :id="updateId" /> </el-dialog> <!-- 绠�绛� --> - <el-dialog :visible.sync="shortVisible" :close-on-click-modal="false"> - <short ref="short" @children="parentGoods" @callback="callback" /> + <el-dialog :visible.sync="shortVisible" :close-on-click-modal="false" v-if="shortVisible"> + <short ref="short" @children="parentGoods" @callback="callback" :id="updateId" /> </el-dialog> <!-- 鍗曢�� --> - <el-dialog :visible.sync="singleVisible" :close-on-click-modal="false"> - <single ref="single" @children="parentGoods" @callback="callback" /> + <el-dialog :visible.sync="singleVisible" :close-on-click-modal="false" v-if="singleVisible"> + <single ref="single" @children="parentGoods" @callback="callback" :id="updateId" /> </el-dialog> <!-- 鍒ゆ柇 --> - <el-dialog :visible.sync="truesVisible" :close-on-click-modal="false"> - <trues ref="trues" @children="parentGoods" @callback="callback" /> + <el-dialog :visible.sync="truesVisible" :close-on-click-modal="false" v-if="truesVisible"> + <trues ref="trues" @children="parentGoods" @callback="callback" :id="updateId" /> </el-dialog> <el-dialog :visible.sync="questionShow.dialog" style="width: 100%;height: 100%"> - <QuestionShow :qType="questionShow.qType" :question="questionShow.question" :qLoading="questionShow.loading"/> + <QuestionShow :qType="questionShow.qType" :question="questionShow.question" :qLoading="questionShow.loading" /> </el-dialog> </div> </template> @@ -106,6 +118,8 @@ import { mapGetters, mapState } from 'vuex' import questionApi from '@/api/question' import QuestionShow from '@/components/PopUp/question/Show' +import subjectApi from '@/api/subject' +import Pagination from '@/components/Pagination' export default { // 娉ㄥ唽 @@ -115,10 +129,12 @@ short, single, trues, - QuestionShow + QuestionShow, + Pagination }, data() { return { + updateId: '', questionShow: { qType: 0, dialog: false, @@ -127,9 +143,10 @@ }, listLoading: true, queryParam: { - questionType: null, - subjectId: null, - content: null, + questionType: [], + subjectId: [], + content: '', + status: '', pageIndex: 1, pageSize: 10 }, @@ -140,12 +157,20 @@ singleVisible: false, truesVisible: false, tableData: [], + subjects: [] }; }, created() { this.search() + this.getSubjects(); }, methods: { + // 鑾峰彇绉戠洰 + getSubjects() { + subjectApi.list().then(re => { + this.subjects = re.data + }) + }, callback() { this.gapVisible = false; this.multipleVisible = false; @@ -165,21 +190,9 @@ this.listLoading = false }) }, - // 杩斿洖涓婁竴涓〉闈� - goBack() { - this.$router.back(); - }, // 淇敼琛ㄥ崟澶撮儴鐨勯鑹� getRowClass() { return "background:#d2d3d6"; - }, - // 鐢熸垚璇曞嵎 - getCreate() { - // 璺宠浆鍒扮敓鎴愰〉闈� - //璺宠浆鍒板搴旂殑绠$悊椤甸潰 - this.$router.push({ - path: "/manage/test-paper-generation", - }); }, // 鐐瑰嚮鍚庤皟鐢ㄥ脊绐楃粍浠剁殑鏂规硶,寮�鍚脊绐� getDialogFormVisible(value) { @@ -200,13 +213,14 @@ this.truesVisible = true; break; } + this.updateId = ''; }, // 寮圭獥 // 鎺ユ敹寮圭獥缁勪欢杩斿洖鐨勮〃鍗曞�� parentGoods(obj) { console.log(obj, "寮圭獥缁勪欢鐨勮〃鍗曞��"); }, - showQuestion (row) { + showQuestion(row) { let _this = this this.questionShow.dialog = true this.questionShow.loading = true @@ -216,11 +230,25 @@ _this.questionShow.loading = false }) }, - editQuestion (row) { - let url = this.enumFormat(this.editUrlEnum, row.questionType) - this.$router.push({ path: url, query: { id: row.id } }) + editQuestion(row) { + this.getDialogFormVisible(row.questionTypeName); + this.updateId = row.id; }, - deleteQuestion (row) { + statusQuestion(row) { + let question = { + id: row.id, + status: row.status === '绂佺敤' ? '鍚敤' : '绂佺敤' + } + questionApi.updateStatus(question).then(re => { + if (re.code === 1) { + this.$message.success(re.message) + this.search() + } else { + this.$message.error(re.message) + } + }) + }, + deleteQuestion(row) { let _this = this questionApi.deleteQuestion(row.id).then(re => { if (re.code === 1) { @@ -239,7 +267,6 @@ editUrlEnum: state => state.exam.question.editUrlEnum }), ...mapGetters('exam', ['subjectEnumFormat']), - ...mapState('exam', { subjects: state => state.subjects }) } }; </script> -- Gitblit v1.8.0