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 |  158 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 129 insertions(+), 29 deletions(-)

diff --git a/src/views/education/subject/list.vue b/src/views/education/subject/list.vue
index 9299e88..2acefea 100644
--- a/src/views/education/subject/list.vue
+++ b/src/views/education/subject/list.vue
@@ -1,34 +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="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>
 
@@ -41,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,
@@ -53,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