From 8c3eaeddeff2c9c5a92352e6bf830e5000ff5882 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 03 十二月 2024 12:16:11 +0800 Subject: [PATCH] 附件最多上传10个 --- src/views/education/subject/list.vue | 159 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 129 insertions(+), 30 deletions(-) diff --git a/src/views/education/subject/list.vue b/src/views/education/subject/list.vue index 39ac2b6..2acefea 100644 --- a/src/views/education/subject/list.vue +++ b/src/views/education/subject/list.vue @@ -1,35 +1,77 @@ <template> <div class="app-container"> - <el-form :model="queryParam" ref="queryForm" :inline="true"> - <el-form-item label="鏌ヨ鏉′欢锛�"> - <el-input v-model="queryParam.name"></el-input> -<!-- <el-select v-model="queryParam.level" placeholder="閮ㄩ棬" clearable="">--> -<!-- <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>--> -<!-- </el-select>--> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="submitForm">鏌ヨ</el-button> - <router-link :to="{path:'/education/subject/edit'}" class="link-left"> - <el-button type="primary">娣诲姞</el-button> - </router-link> - </el-form-item> - </el-form> + <div style="width: 100%;position: relative;display: flex"> + <el-form :model="queryParam" ref="queryForm" :inline="true"> + <el-form-item label="鏌ヨ鏉′欢锛�"> + <el-input v-model="queryParam.name" size="small"></el-input> + <!-- <el-select v-model="queryParam.level" placeholder="閮ㄩ棬" clearable="">--> + <!-- <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>--> + <!-- </el-select>--> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm" size="small">鏌ヨ</el-button> + <!-- <router-link :to="{path:'/education/subject/edit'}" class="link-left"> + <el-button type="primary">娣诲姞</el-button> + </router-link> --> + </el-form-item> + </el-form> + <div style="position: absolute; right: 0"> + <el-button @click="jumpToSubject" type="primary">璇剧洰绠$悊</el-button> + </div> + </div> - <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> - <el-table-column prop="id" label="Id" /> - <el-table-column prop="name" label="璇剧洰"/> -<!-- <el-table-column prop="levelName" label="閮ㄩ棬" />--> - <el-table-column width="220px" label="鎿嶄綔" align="center"> + + <el-table + v-loading="listLoading" + :data="tableData" + default-expand-all + 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> @@ -42,6 +84,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, @@ -54,16 +110,59 @@ }, created () { this.search() + this.getAllSubject() }, methods: { - + jumpToSubject() { + this.$router.push({path: '/education/subject/manager'}) + }, + 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