From dcf9c9e0410fe1186239e3f8d6f7bdc789c08010 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期三, 05 六月 2024 18:00:39 +0800 Subject: [PATCH] 1 --- src/views/console/system/menu.vue | 235 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 154 insertions(+), 81 deletions(-) diff --git a/src/views/console/system/menu.vue b/src/views/console/system/menu.vue index 70d16c3..c3abd0c 100644 --- a/src/views/console/system/menu.vue +++ b/src/views/console/system/menu.vue @@ -2,72 +2,85 @@ * @Author: lzhe lzhe@example.com * @Date: 2024-03-26 10:28:33 * @LastEditors: lzhe lzhe@example.com - * @LastEditTime: 2024-03-29 15:50:35 + * @LastEditTime: 2024-04-07 11:54:15 * @FilePath: /smart-web/src/views/master/person/main/index.vue * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE --> <template> <div class="dict-main"> - <el-form :inline="true" :model="searchData" abel-width="120px"> - <el-form-item label="鑿滃崟鍚嶇О"> - <el-input v-model="searchData.test" placeholder="鑿滃崟鍚嶇О" clearable /> - </el-form-item> - <el-form-item label="鑿滃崟缂栧彿"> - <el-input v-model="searchData.test" placeholder="鑿滃崟缂栧彿" clearable /> - </el-form-item> - <el-form-item label="鑿滃崟鍒悕"> - <el-input v-model="searchData.test" placeholder="鑿滃崟鍒悕" clearable /> - </el-form-item> - <el-form-item label="鎵�灞炲簲鐢�"> - <el-input v-model="searchData.test" placeholder="鎵�灞炲簲鐢�" clearable /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="searchBtn">鎼滅储</el-button> - <el-button @click="searchBtn">娓呯┖</el-button> - </el-form-item> + <el-form :inline="true" :model="searchData" label-width="80px"> + <el-row> + <el-col :span="6"> + <el-form-item label="鑿滃崟鍚嶇О"> + <el-input v-model="searchData.name" placeholder="鑿滃崟鍚嶇О" clearable /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鑿滃崟缂栧彿"> + <el-input v-model="searchData.code" placeholder="鑿滃崟缂栧彿" clearable /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鑿滃崟鍒悕"> + <el-input v-model="searchData.alias" placeholder="鑿滃崟鍒悕" clearable /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鎵�灞炲簲鐢�"> + <el-select v-model="searchData.belongApplication" style="width: 100%"> + <el-option v-for="item in applicationList" :key="item.code" :label="item.name" :value="item.code"/> + </el-select> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item> + <el-button type="primary" @click="searchclick">鎼滅储</el-button> + <el-button @click="clearSearch">娓呯┖</el-button> + </el-form-item> + </el-col> + </el-row> </el-form> <div> <div class="dict-Btn"> <div class="dict-btn-bottom"> - <el-button type="primary" @click="addPerson">+ 鏂板</el-button> - <el-button type="danger" plain @click="delPerson">鍒犻櫎</el-button> + <el-button type="primary" @click="addData">+ 鏂板</el-button> + <el-button type="danger" plain @click="delData">鍒犻櫎</el-button> </div> </div> <div class="dict-table"> - <el-table ref="multipleTableRef" :data="tableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange"> + <el-table ref="multipleTableRef" :data="tableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange" row-key="id" lazy :load="tableLoad" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> <el-table-column type="selection" width="55" /> - <el-table-column prop="date" label="鑿滃崟鍚嶇О"></el-table-column> - <el-table-column prop="name" label="璺敱鍦板潃"></el-table-column> - <el-table-column prop="name" label="鑿滃崟鍥炬爣"></el-table-column> - <el-table-column prop="name" label="鑿滃崟缂栧彿"></el-table-column> - <el-table-column prop="name" label="鑿滃崟鍒悕"></el-table-column> - <el-table-column prop="name" label="鏂扮獥鍙�"></el-table-column> - <el-table-column prop="name" label="鍚敤缂撳瓨"></el-table-column> - <el-table-column prop="name" label="鎵�灞炲簲鐢�"></el-table-column> - <el-table-column prop="name" label="鑿滃崟鎺掑簭"></el-table-column> + <el-table-column prop="name" label="鑿滃崟鍚嶇О"></el-table-column> + <el-table-column prop="path" label="璺敱鍦板潃"></el-table-column> + <el-table-column prop="source" label="鑿滃崟鍥炬爣"></el-table-column> + <el-table-column prop="code" label="鑿滃崟缂栧彿"></el-table-column> + <el-table-column prop="alias" label="鑿滃崟鍒悕"></el-table-column> + <el-table-column prop="isOpen" label="鏂扮獥鍙�"> + <template #default="scope"> + <div>{{scope.row.isOpen == 0?"鏄�":"鍚�"}}</div> + </template> + </el-table-column> + <el-table-column prop="keepAlive" label="鍚敤缂撳瓨"> + <template #default="scope"> + <div>{{scope.row.keepAlive == 1?"鏄�":"鍚�"}}</div> + </template> + </el-table-column> + <el-table-column prop="belongApplication" label="鎵�灞炲簲鐢�"></el-table-column> + <el-table-column prop="sort" label="鑿滃崟鎺掑簭"></el-table-column> <el-table-column fixed="right" label="鎿嶄綔" width="200"> <template #default="scope"> <el-button text type="primary" size="small" @click="table_show(scope.row, scope.$index)">鏌ョ湅</el-button> <el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button> <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button> - <el-button text type="primary" size="small" @click="addPerson(scope.row, scope.$index)">鏂板瀛愰」</el-button> + <el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index,'fixed')">鏂板瀛愰」</el-button> </template> </el-table-column> </el-table> - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page="currentPage4" - :page-sizes="[100, 200, 300, 400]" - :page-size="100" - layout="total, sizes, prev, pager, next, jumper" - :total="400"> - </el-pagination> </div> </div> </div> - <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSuccess" @closed="dialog.save=false"></save-dialog> + <save-dialog v-if="dialog.save" ref="saveDialog" :applicationList="applicationList" @success="handleSuccess" @closed="dialog.save=false"></save-dialog> </template> <script> import saveDialog from './addMenu' @@ -75,8 +88,14 @@ name: "allocation", data(){ return { + selection: [], + applicationList: [], searchData: { - test: "" + name: "", + code: "", + alias: "", + belongApplication: "", + parentId: "0" }, dialog: { save: false, @@ -89,48 +108,59 @@ label: '榛勯噾绯�' }], input3: '', - tableData: [{ - date: '2016-05-02', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�', - zip: 200333 - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�', - zip: 200333 - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�', - zip: 200333 - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - province: '涓婃捣', - city: '鏅檧鍖�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�', - zip: 200333 - }] + tableData: [] } }, created(){ }, mounted(){ - + this.getApplicationList(); + this.searchBtn(); }, components: { saveDialog }, methods: { - searchBtn() {}, + handleSuccess(formAddMenu) { + this.searchData.parentId = formAddMenu.parentId; + this.clearSearch(); + }, + tableLoad(row,treeNode,resolve) { + this.searchData.parentId= row.id; + this.$HTTP.get("/api/blade-system/menu/lazy-list",this.searchData).then(res=> { + if(res.code == 200) { + resolve(res.data); + } + }) + }, + clearSearch() { + this.searchData= { + name: "", + code: "", + alias: "", + belongApplication: "" + } + this.searchBtn(); + }, + getApplicationList() { + this.$HTTP.get("/api/blade-system/application/list").then(res=> { + if(res.code == 200) { + this.applicationList = res.data; + } + }) + }, + searchclick() { + this.searchData.parentId= "0"; + this.searchBtn(); + }, + searchBtn() { + this.$HTTP.get("/api/blade-system/menu/lazy-list",this.searchData).then(res=> { + if(res.code == 200) { + this.tableData = res.data; + } + }) + }, //瀛楀吀閰嶇疆 table_allocation(row) { this.dialog.allocation = true; @@ -139,18 +169,39 @@ }) }, //鍒犻櫎 - table_del(row) {}, + table_del(row) { + var that = this; + this.$confirm(`纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?`, '', { + type: 'warning' + }).then(() => { + this.$HTTP.post("/api/blade-system/menu/remove?ids="+row.id).then(res=> { + if(res.code == 200) { + that.$message.success("鎿嶄綔鎴愬姛"); + that.searchclick(); + } + }) + }).catch(() => { + + }) + }, //娣诲姞 - addPerson(){ + addData(){ this.dialog.save = true this.$nextTick(() => { this.$refs.saveDialog.open() }) }, - table_edit(row){ - this.dialog.save = true - this.$nextTick(() => { - this.$refs.saveDialog.open('edit').setData(row) + table_edit(row,index,fixed){ + this.$HTTP.get("/api/blade-system/menu/detail?id="+row.id).then(res=> { + if(res.code == 200) { + this.dialog.save = true; + this.$nextTick(() => { + if(fixed) { //鍒ゆ柇鏂板瀛愰」 + res.data.fixed = "fixed"; + } + this.$refs.saveDialog.open('edit').setData(res.data); + }) + } }) }, //鏌ョ湅 @@ -160,8 +211,30 @@ this.$refs.saveDialog.open('show').setData(row) }) }, - handleSelectionChange() {}, - delPerson() {}, + handleSelectionChange(selection) { + this.selection = selection; + }, + delData() { + if(this.selection.length == 0) { + this.$message({ + message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', + type: 'warning' + }); + return; + } + var selStr = ""; + this.selection.map(item=> { + selStr += item.id + "," + }) + selStr = selStr.replace(/,$/, ''); + var that = this; + this.$HTTP.post("/api/blade-system/menu/remove?ids="+selStr).then(res=> { + if(res.code == 200) { + that.$message.success("鎿嶄綔鎴愬姛"); + that.searchclick(); + } + }) + }, changeDepartment() { this.departmentVisible = true; }, -- Gitblit v1.9.3