From 7dd6a5534f3b35a7ebe0641112731a71c4cfb6c1 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 06 六月 2024 17:26:29 +0800
Subject: [PATCH] feat:成绩管理-试卷展示
---
src/views/Manage/TestPaper/index.vue | 332 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 212 insertions(+), 120 deletions(-)
diff --git a/src/views/Manage/TestPaper/index.vue b/src/views/Manage/TestPaper/index.vue
index f6cf92e..2678e79 100644
--- a/src/views/Manage/TestPaper/index.vue
+++ b/src/views/Manage/TestPaper/index.vue
@@ -7,64 +7,48 @@
<TitleIndex title='璇曞嵎绠$悊' />
<div class="content">
<!-- 璇曞嵎鐢熸垚鎸夐挳 -->
- <div style="padding-bottom:20px; border-bottom: 3px solid #409EFF;margin-bottom: 20px;">
+ <div style="padding-bottom:20px; border-bottom: 3px solid #409EFF;margin-bottom: 20px;display: flex; align-items: center;">
+ <el-page-header @back="goBack()"/>
<el-button
type="primary"
@click="getCreate"
>璇曞嵎鐢熸垚</el-button>
+ <el-button
+ type="primary"
+ @click="toTemplate"
+ >闅忔満璇曞嵎妯℃澘</el-button>
</div>
-
<!-- 鎼滅储 -->
<div>
<el-form
:inline="true"
- :model="formLabelAlign"
- class="demo-form-inline"
+ :model="queryParam"
label-width="80px"
>
<el-form-item>
- <el-input v-model="formLabelAlign.type"></el-input>
+ <el-input v-model="queryParam.id" placeholder="璇曞嵎缂栧彿" style="width: 120px" clearable></el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-input v-model="queryParam.name" placeholder="璇曞嵎鍚�" clearable></el-input>
</el-form-item>
<el-form-item>
<el-select
- v-model="formLabelAlign.region"
+ v-model="queryParam.subjectId"
placeholder="鍏ㄩ儴绉戠洰"
+ clearable
>
- <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-option v-for="item in subjects" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item>
<el-select
- v-model="formLabelAlign.region"
- placeholder="閫夋嫨棰�"
+ v-model="queryParam.paperType"
+ placeholder="璇曞嵎绫诲瀷"
+ clearable
>
- <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="1" />
+ <el-option label="闅忔満璇曞嵎" value="2" />
+ <el-option label="闅忓簭璇曞嵎" value="3" />
</el-select>
</el-form-item>
@@ -73,6 +57,7 @@
style="width:100px;"
type="primary"
size="small"
+ @click="getPage"
>鏌ヨ</el-button>
</el-form-item>
</el-form>
@@ -88,20 +73,40 @@
>
<el-table-column
align="center"
- prop="title"
+ prop="id"
+ label="璇曞嵎缂栧彿"
+ >
+ </el-table-column>
+ <el-table-column
+ align="center"
+ prop="name"
label="璇曞嵎鍚�"
>
</el-table-column>
<el-table-column
align="center"
- prop="type"
- label="棰樼洰绫诲瀷"
+ prop="subjectId"
+ label="绉戠洰"
>
+ <template slot-scope="scope">
+ {{ translate(scope.row.subjectId) }}
+ </template>
</el-table-column>
<el-table-column
align="center"
- prop="subject"
- label="绉戠洰"
+ 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
@@ -114,120 +119,207 @@
label="鎿嶄綔"
align="center"
>
+ <template slot-scope="scope">
<el-button type="text">棰勮</el-button>
<el-button type="text">缂栬緫</el-button>
- <el-button type="text">鍒犻櫎</el-button>
+ <el-button type="text" @click="deletePaper(scope.row)" class="link-left">鍒犻櫎</el-button>
+ </template>
</el-table-column>
</el-table>
+
<div
- class="block"
- style="display: flex; margin-top: 40px;"
+ class="flex"
+ style="justify-content:center;margin-top:20px;"
>
- <el-pagination
- style="margin:auto"
- background
- :page-size="10"
- layout="prev, pager, next, jumper"
- :total="100"
- >
- </el-pagination>
+ <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
+ @pagination="getPage"/>
</div>
</div>
- </div>
+ <!-- 娣诲姞璇曞嵎瀵硅瘽妗� -->
+ <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body >
+ <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+ <el-form-item label="璇曞嵎鍚嶇О" prop="name" >
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ瘯鍗峰悕绉�" style="width: 300px"/>
+ </el-form-item>
+ <el-form-item label="绉戠洰" prop="subjectId">
+ <el-select v-model="form.subjectId" placeholder="璇烽�夋嫨绉戠洰" style="width: 200px">
+ <el-option
+ v-for="item in subjects"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇曞嵎绫诲瀷" prop="paperType">
+ <el-select v-model="form.paperType" placeholder="璇烽�夋嫨璇曞嵎绫诲瀷" style="width: 200px">
+ <el-option label="鍥哄畾璇曞嵎" value="1" />
+ <el-option label="闅忓簭璇曞嵎" value="3" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鑰冭瘯鏃堕暱(鍒嗛挓)" prop="suggestTime">
+ <el-input-number v-model="form.suggestTime" placeholder="璇疯緭鍏ヨ�冭瘯鏃堕暱"/>
+ </el-form-item>
+ <el-button type="primary" @click="toCreate">缂栬緫棰樼洰</el-button>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+
+
+ </div>
+ </div>
</div>
- </div>
</template>
<script>
+import examPaperApi from '@/api/examPaper'
+import subjectApi from '@/api/subject'
+import Pagination from "@/components/Pagination"
export default {
+ components: {Pagination},
data() {
return {
- formLabelAlign: {
- type: "",
- user: "",
- region: "",
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 鎬绘潯鏁�
+ total: 0,
+ queryParam: {
+ id: null,
+ paperType: null,
+ subjectId: null,
+ pageIndex: 1,
+ pageSize: 10
},
- tableData: [
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- {
- title: "褰揂涓嶣涓�璧蜂慨璺�",
- type: "閫夋嫨棰�",
- subject: "璇枃",
- score: 100,
- },
- ],
+ form: {},
+ tableData: [],
+ subjects: [],
+ // 琛ㄥ崟鏍¢獙
+ rules: {
+ name: [
+ { required: true, message: "璇曞嵎鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ subjectId: [
+ { required: true, message: "绉戠洰涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ paperType: [
+ { required: true, message: "璇曞嵎绫诲瀷涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ suggestTime: [
+ { required: true, message: "鑰冭瘯鏃堕暱涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ }
};
+
+ },
+ created () {
+ this.getSubjects();
+ this.getPage()
},
methods: {
+ translate(subjectId) {
+ const subject = this.subjects.find(subject => subject.id == subjectId);
+ return subject ? subject.name : '鏈煡';
+ },
// 杩斿洖涓婁竴涓〉闈�
goBack() {
this.$router.back();
},
- //鎻愪氦鎸夐挳
- onSubmit() {
- console.log("submit!");
+ cancel(){
+ this.open = false;
+ },
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ this.form = {
+ name: null,
+ subjectId: null,
+ paperType: null,
+ };
},
// 淇敼琛ㄥ崟澶撮儴鐨勯鑹�
getRowClass() {
return "background:#d2d3d6";
},
-
- // 鐢熸垚璇曞嵎
+ /** 鐢熸垚璇曞嵎瀵硅瘽妗� */
getCreate() {
- // 璺宠浆鍒扮敓鎴愰〉闈�
+ this.reset();
+ this.open = true;
+ this.title = "璇曞嵎閰嶇疆";
+ },
+ // 閰嶇疆璇曞嵎棰樼洰
+ toCreate() {
//璺宠浆鍒板搴旂殑绠$悊椤甸潰
this.$router.push({
path: "/manage/test-paper-generation",
});
},
+ toTemplate() {
+ //璺宠浆鍒版ā鏉跨鐞嗛〉闈�
+ this.$router.push({
+ path: "/manage/paper-template",
+ });
+ },
+ deletePaper (row) {
+ examPaperApi.deletePaper(row.id).then(re => {
+ if (re.code === 1) {
+ this.getPage()
+ this.$message.success("鍒犻櫎鎴愬姛")
+ } else {
+ this.$message.error(re.message)
+ }
+ })
+ },
+ getPage () {
+ this.listLoading = true
+ examPaperApi.pageList(this.queryParam).then(re => {
+ const data = re.data
+ this.tableData = data.list
+ this.total = data.total
+ this.queryParam.pageIndex = data.pageNum
+ this.listLoading = false
+ })
+ },
+ // 鑾峰彇绉戠洰
+ getSubjects() {
+ subjectApi.list().then(re => {
+ this.subjects = re.data
+ })
+ },
+ /** 鎻愪氦鎸夐挳 */
+ submitForm() {
+ this.$refs['form'].validate(valid => {
+ if (valid) {
+ if (this.form.deptId && this.form.deptId.length > 0) {
+ this.form.deptId = this.form.deptId[this.form.deptId.length - 1]
+ }
+ let temp = {
+ ...this.form,
+ category: parseInt(this.form.category)
+ };
+ if (temp.id != null) {
+ updatePoint(temp).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ } else {
+ addPoint(temp).then(response => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.open = false;
+ this.reset()
+ this.getList();
+ });
+ }
+ } else {
+ console.log("error")
+ }
+ })
+ },
},
};
</script>
--
Gitblit v1.8.0