From 9424330fa330506d24ed84e5c3680063ca6c6a97 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 03 六月 2024 11:22:38 +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