From 13b316fead23d7da15f1d974e3e436ecb6efbfb9 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 08 七月 2024 17:36:53 +0800 Subject: [PATCH] 课目重构 --- src/views/education/subject/list.vue | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 105 insertions(+), 15 deletions(-) diff --git a/src/views/education/subject/list.vue b/src/views/education/subject/list.vue index 092f6d3..58971fb 100644 --- a/src/views/education/subject/list.vue +++ b/src/views/education/subject/list.vue @@ -15,20 +15,56 @@ </el-form-item> </el-form> - <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> - <el-table-column prop="name" label="璇剧洰鍚嶇О"/> - <el-table-column prop="deptNames" label="鎵�灞為儴闂�" /> - <el-table-column width="220px" label="鎿嶄綔" align="center"> + <el-table + v-loading="listLoading" + :data="tableData" + border fit highlight-current-row style="width: 100%" + :tree-props="{children: 'children', hasChildren: 'hasChildren'}" + row-key="id" + > + <el-table-column prop="name" label="閮ㄩ棬" /> + <el-table-column prop="subjectNames" label="璇剧洰"/> + <el-table-column width="240px" label="鎿嶄綔" align="center"> <template slot-scope="{row}"> - <router-link :to="{path:'/education/subject/edit', query:{id:row.id}}" class="link-left"> - <el-button size="mini">缂栬緫</el-button> - </router-link> - <el-button size="mini" type="danger" @click="delSubject(row)" class="link-left">鍒犻櫎</el-button> + <el-button type="success" @click="addSubject(row.id, row.name)" size="mini">娣诲姞璇剧洰</el-button> + <el-button type="primary" @click="editSubject(row.id, row.name, row.subjectIds)" size="mini">缂栬緫</el-button> +<!-- <el-button size="mini" type="danger" @click="delSubject(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"/> + + <el-dialog + :title="addTitle" + :visible.sync="addShow" + width="450px" + > + <el-input v-model="addForm.subjectName" placeholder="璇剧洰鍚嶇О" required/> + <span slot="footer" class="dialog-footer"> + <el-button @click="cancelAdd">鍙� 娑�</el-button> + <el-button type="primary" @click="add">淇� 瀛�</el-button> + </span> + </el-dialog> + + <el-dialog + :title="editTitle" + :visible.sync="editShow" + width="450px" + > + <el-form label-position="top"> + <el-form-item label="閮ㄩ棬"> + <el-input v-model="editForm.deptName" disabled required/> + </el-form-item> + <el-form-item label="璇剧洰"> + <el-select v-model="editForm.subjectIds" multiple placeholder="璇烽�夋嫨璇ラ儴闂ㄥ搴旂殑璇剧洰"> + <el-option v-for="subject in subjectList" :key="subject.id" :value="subject.id" :label="subject.name"/> + </el-select> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="cancelEdit">鍙� 娑�</el-button> + <el-button type="primary" @click="edit">淇� 瀛�</el-button> + </span> + </el-dialog> </div> </template> @@ -41,6 +77,20 @@ components: { Pagination }, data () { return { + subjectList: [], + addForm: { + deptId: null, + subjectName: '' + }, + editForm: { + deptId: null, + deptName: null, + subjectIds: [] + }, + addTitle: '', + editTitle: '', + addShow: false, + editShow: false, queryParam: { level: null, pageIndex: 1, @@ -53,16 +103,56 @@ }, created () { this.search() + this.getAllSubject() }, methods: { - + getAllSubject() { + subjectApi.list().then(res => { + this.subjectList = res.response + }) + }, + editSubject(deptId, deptName, subjectIds) { + this.editTitle = "淇敼銆�" + deptName + "銆戠殑璇剧洰" + this.editForm.deptId = deptId + this.editForm.deptName = deptName + this.editForm.subjectIds = subjectIds; + this.editShow = true + }, + addSubject(deptId, deptName) { + this.addTitle = "涓恒��" + deptName + "銆戞坊鍔犺鐩�"; + this.addShow = true; + this.addForm.deptId = deptId + }, + add() { + subjectApi.add(this.addForm).then(res => { + this.$message.success("娣诲姞鎴愬姛") + this.addShow = false + this.search() + }) + }, + edit() { + subjectApi.edit(this.editForm).then(res => { + this.$message.success("淇敼鎴愬姛") + this.editShow = false + this.search() + }) + }, + cancelEdit() { + this.editShow = false + this.editTitle = "" + this.editForm.deptId = null + this.editForm.deptName = "" + this.editForm.subjectIds = [] + }, + cancelAdd() { + this.addShow = false + this.addTitle = "" + this.addForm.subjectName = "" + }, search () { this.listLoading = true subjectApi.pageList(this.queryParam).then(data => { - const re = data.response - this.tableData = re.list - this.total = re.total - this.queryParam.pageIndex = re.pageNum + this.tableData = data.response this.listLoading = false }) }, -- Gitblit v1.8.0