From f378fbf3ee8bd599b0746e48ba3811ae4b8b87cd Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 26 六月 2024 16:56:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/education/cheat/list.vue | 174 +++++++++++++++++++++++++++++++++++++++++++ src/api/cheat.js | 11 ++ src/router.js | 8 + 3 files changed, 192 insertions(+), 1 deletions(-) diff --git a/src/api/cheat.js b/src/api/cheat.js new file mode 100644 index 0000000..2b0a33e --- /dev/null +++ b/src/api/cheat.js @@ -0,0 +1,11 @@ +import { get, post } from '@/utils/request' + +export default { + list: query => post('/api/admin/cheat/list'), + pageList: query => get('/api/admin/cheat/page', query), + edit: query => post('/api/admin/cheat/edit', query), + select: id => post('/api/admin/cheat/select/' + id), + deletecheat: id => post('/api/admin/cheat/delete/' + id), + updateStatus: query => post('/api/admin/cheat/status', query), + getItemOrder: id => get('/api/admin/cheat/getItemOrder') +} diff --git a/src/router.js b/src/router.js index 3e87f6d..1d7acf6 100644 --- a/src/router.js +++ b/src/router.js @@ -258,7 +258,13 @@ component: () => import('@/views/education/resource/list'), name: 'EducationResourcePage', meta: { title: '鏁欏璧勬簮', noCache: true } - } + }, + { + path: 'cheat/list', + component: () => import('@/views/education/cheat/list'), + name: 'EducationCheatPage', + meta: { title: '浣滃紛璁板綍', noCache: true } + }, ] }, { diff --git a/src/views/education/cheat/list.vue b/src/views/education/cheat/list.vue new file mode 100644 index 0000000..e4c7bbb --- /dev/null +++ b/src/views/education/cheat/list.vue @@ -0,0 +1,174 @@ +<template> + <div class="app-container"> + <el-form :model="queryParam" ref="queryForm" :inline="true"> + <el-form-item> + <el-input v-model="queryParam.keyword" placeholder="璇疯緭鍏ュ悕绉�" clearable></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="search">鏌ヨ</el-button> + </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="cheatUserName" label="浣滃紛浜哄悕绉�" show-overflow-tooltip /> + <el-table-column align="center" prop="examName" label="鑰冭瘯鍚嶇О" /> + <el-table-column align="center" prop="createTime" label="浣滃紛鏃堕棿" /> + <!-- <el-table-column label="鎿嶄綔" align="center"> + <template slot-scope="{row}"> + <el-button size="mini" @click="edit(row)">缂栬緫</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" /> + + <el-dialog :visible.sync="visible" width="400px"> + <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> + <el-form-item label="鍚嶇О锛�" prop="name" required> + <el-input v-model="form.name" maxlength="10" show-word-limit /> + </el-form-item> + <el-form-item label="鎺掑簭锛�" prop="itemOrder" required> + <el-input-number v-model="form.itemOrder" type="number" :min="1" :max="100" /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm">鎻愪氦</el-button> + <el-button @click="resetForm">閲嶇疆</el-button> + </el-form-item> + </el-form> + </el-dialog> + + + </div> +</template> + +<script> +import { mapGetters, mapState } from 'vuex' +import Pagination from '@/components/Pagination' +import cheatApi from '@/api/cheat' + +export default { + components: { Pagination }, + data() { + return { + listLoading: true, + queryParam: { + name: '', + pageIndex: 1, + pageSize: 10 + }, + formLoading: false, + total: 0, + tableData: [], + form: { + id: '', + name: '', + itemOrder: '' + }, + visible: false, + rules: { + name: [ + { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' } + ], + itemOrder: [ + { required: true, message: '璇疯緭鍏ユ帓搴�', trigger: 'blur', type: 'number' } + ] + }, + }; + }, + created() { + this.search() + }, + methods: { + // 鑾峰彇鎺掑簭 + getItemOrder() { + cheatApi.getItemOrder().then(re => { + this.form.itemOrder = re.data + }) + }, + // 鑾峰彇鍒楄〃 + search() { + this.listLoading = true + cheatApi.pageList(this.queryParam).then(re => { + this.tableData = re.data.records + this.total = re.data.total + this.queryParam.pageSize = re.data.size + this.queryParam.pageIndex = re.data.pages + this.listLoading = false + }) + }, + edit(row) { + if (row) { + cheatApi.select(row.id).then(re => { + if (re.code === 1) { + this.form = re.data; + this.visible = true; + } else { + this.$message.error(re.message) + } + }) + } else { + this.getItemOrder(); + this.visible = true; + } + }, + status(row) { + let question = { + id: row.id, + status: row.status === '绂佺敤' ? '鍚敤' : '绂佺敤' + } + cheatApi.updateStatus(question).then(re => { + if (re.code === 1) { + this.$message.success(re.message) + this.search() + } else { + this.$message.error(re.message) + } + }) + }, + deletecheat(row) { + let _this = this + cheatApi.deletecheat(row.id).then(re => { + if (re.code === 1) { + _this.search() + _this.$message.success(re.message) + } else { + _this.$message.error(re.message) + } + }) + }, + submitForm() { + let _this = this + this.$refs.form.validate((valid) => { + if (valid) { + this.formLoading = true + cheatApi.edit(this.form).then(re => { + if (re.code === 1) { + _this.$message.success(re.message) + _this.search() + _this.formLoading = false + _this.visible = false + } else { + _this.$message.error(re.message) + _this.formLoading = false + _this.visible = false + } + }) + } + }) + }, + resetForm() { + let lastId = this.form.id + this.$refs['form'].resetFields() + this.form.id = lastId + }, + }, + computed: { + ...mapGetters('enumItem', [ + 'enumFormat' + ]), + ...mapState('enumItem', { + levelEnum: state => state.user.levelEnum + }) + } +} +</script> -- Gitblit v1.8.0