From b46e6d2306515f94bf77c06e8d80ac76267e3ddb Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 02 六月 2024 21:44:23 +0800
Subject: [PATCH] 搜索

---
 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