From 13b316fead23d7da15f1d974e3e436ecb6efbfb9 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 08 七月 2024 17:36:53 +0800
Subject: [PATCH] 课目重构
---
src/api/subject.js | 3
src/views/education/subject/list.vue | 120 +++++++++++++++++++++++++++++++++++-----
src/router.js | 2
3 files changed, 108 insertions(+), 17 deletions(-)
diff --git a/src/api/subject.js b/src/api/subject.js
index 5992d99..a6a847f 100644
--- a/src/api/subject.js
+++ b/src/api/subject.js
@@ -6,5 +6,6 @@
edit: query => post('/api/admin/education/subject/edit', query),
select: id => post('/api/admin/education/subject/select/' + id),
selectByDeptId: deptId => get('/api/admin/education/subject/select/dept/' + deptId),
- deleteSubject: id => post('/api/admin/education/subject/delete/' + id)
+ deleteSubject: id => post('/api/admin/education/subject/delete/' + id),
+ add: data => post('/api/admin/education/subject/add', data)
}
diff --git a/src/router.js b/src/router.js
index 1709084..4f0064a 100644
--- a/src/router.js
+++ b/src/router.js
@@ -270,7 +270,7 @@
path: 'subject/list',
component: () => import('@/views/education/subject/list'),
name: 'EducationSubjectPage',
- meta: { title: '璇剧洰鍒楄〃', noCache: true }
+ meta: { title: '閮ㄩ棬璇剧洰', noCache: true }
},
{
path: 'department/list',
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