From 710a9bf11a76b7b2fb27ba99f772ecc46aeb99fa Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 23 九月 2024 20:41:21 +0800
Subject: [PATCH] 课目管理
---
src/views/education/subject/manager.vue | 152 ++++++++++++++++++++++++++++++++++++++
src/api/subject.js | 7 +
src/views/education/subject/list.vue | 37 +++++---
src/router.js | 7 +
4 files changed, 187 insertions(+), 16 deletions(-)
diff --git a/src/api/subject.js b/src/api/subject.js
index a6a847f..4d98f62 100644
--- a/src/api/subject.js
+++ b/src/api/subject.js
@@ -3,9 +3,12 @@
export default {
list: query => post('/api/admin/education/subject/list'),
pageList: query => post('/api/admin/education/subject/page', query),
- edit: query => post('/api/admin/education/subject/edit', query),
+ page: query => post('/api/admin/education/subject/page1', query),
+ edit: data => post('/api/admin/education/subject/edit', data),
+ update: data => post('/api/admin/education/subject/edit1', data),
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),
- add: data => post('/api/admin/education/subject/add', data)
+ add: data => post('/api/admin/education/subject/add', data),
+ save: data => post('/api/admin/education/subject/save', data)
}
diff --git a/src/router.js b/src/router.js
index 9a3b6a7..bb38a20 100644
--- a/src/router.js
+++ b/src/router.js
@@ -115,6 +115,13 @@
meta: { title: '閮ㄩ棬璇剧洰', noCache: true }
},
{
+ path: 'subject/manager',
+ hidden: true,
+ component: () => import('@/views/education/subject/manager'),
+ name: 'SubjectManager',
+ meta: { title: '璇剧洰绠$悊', noCache: true }
+ },
+ {
path: 'department/list',
component: () => import('@/views/education/department/list'),
name: 'EducationDepartmentPage',
diff --git a/src/views/education/subject/list.vue b/src/views/education/subject/list.vue
index a6691a2..2acefea 100644
--- a/src/views/education/subject/list.vue
+++ b/src/views/education/subject/list.vue
@@ -1,19 +1,25 @@
<template>
<div class="app-container">
- <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="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"
@@ -107,6 +113,9 @@
this.getAllSubject()
},
methods: {
+ jumpToSubject() {
+ this.$router.push({path: '/education/subject/manager'})
+ },
getAllSubject() {
subjectApi.list().then(res => {
this.subjectList = res.response
diff --git a/src/views/education/subject/manager.vue b/src/views/education/subject/manager.vue
new file mode 100644
index 0000000..6d52215
--- /dev/null
+++ b/src/views/education/subject/manager.vue
@@ -0,0 +1,152 @@
+<template>
+ <div class="app-container">
+ <el-form :inline="true" :model="queryForm">
+ <el-form-item label="璇剧洰鍚嶇О">
+ <el-input v-model="queryForm.name" clearable @input="page" @clear="page"/>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="page">鎼滅储</el-button>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="success" @click="handleAdd">鏂板</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%">
+ <el-table-column
+ prop="name"
+ label="璇剧洰鍚嶇О"
+ >
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ >
+ <template slot-scope="scope">
+ <el-button @click="handleEdit(scope.row)" type="text" size="small" style="margin-right: 5px">淇敼</el-button>
+ <el-popconfirm
+ title="纭畾瑕佸垹闄よ璇剧洰鍚楋紵锛岃璇剧洰绠$悊鐨勬暟鎹兘灏嗚鍒犻櫎锛�"
+ @confirm="del(scope.row.id)"
+ >
+ <el-button slot="reference" type="text" size="small">鍒犻櫎</el-button>
+ </el-popconfirm>
+
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination v-show="total>0" :total="total" :page.sync="queryForm.pageIndex" :limit.sync="queryForm.pageSize"
+ @pagination="page"/>
+
+ <el-dialog
+ :close-on-click-modal="false"
+ :title="title"
+ :visible.sync="editOpen"
+ width="400px"
+ :before-close="handleClose">
+ <el-form :model="form" :rules="rules" ref="form">
+ <el-form-item label="璇剧洰鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇剧洰鍚嶇О"/>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="editOpen = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="addOrUpdate">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import subjectApi from '@/api/subject'
+import Pagination from '@/components/Pagination'
+
+export default {
+ name: "manager",
+ components: {Pagination},
+ data() {
+ return {
+ total: 0,
+ queryForm: {
+ name: '',
+ pageIndex: 1,
+ pageSize: 10,
+ },
+ tableData: [],
+ title: '鏂板璇剧洰',
+ editOpen: false,
+ form: {
+ id: null,
+ name: ''
+ },
+ rules: {
+ name: [
+ {required: true, message: '璇疯緭鍏ヨ鐩悕绉�'}
+ ]
+ }
+ }
+ },
+ mounted() {
+ this.page();
+ },
+ methods: {
+ del(id) {
+ subjectApi.deleteSubject(id).then(res => {
+ this.$message.success("鍒犻櫎鎴愬姛")
+ this.page()
+ })
+ },
+ page() {
+ subjectApi.page(this.queryForm).then(res => {
+ this.tableData = res.response.list
+ this.total = res.response.total
+ })
+ },
+ addOrUpdate() {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ if (this.form.id) {
+ subjectApi.update(this.form).then(res => {
+ this.editOpen = false
+ this.$message.success("淇敼鎴愬姛")
+ this.page()
+ })
+ } else {
+ subjectApi.save(this.form).then(res => {
+ this.editOpen = false
+ this.$message.success("娣诲姞鎴愬姛")
+ this.page()
+ })
+ }
+
+ }
+ })
+ },
+ handleAdd() {
+ this.form = {
+ id: null,
+ name: ''
+ }
+ this.title = '鏂板璇剧洰'
+ this.editOpen = true
+ },
+ handleEdit(row) {
+ this.form.id = row.id
+ this.form.name = row.name
+ this.title = '淇敼璇剧洰'
+ this.editOpen = true
+ },
+ handleClose() {
+ this.editOpen = false
+ this.form = {
+ id: null,
+ name: ''
+ }
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
--
Gitblit v1.8.0