From f00e6c3b881c67ef3651d4f812230188af01faca Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期日, 12 五月 2024 23:56:57 +0800
Subject: [PATCH] 1

---
 src/views/console/base/code-rules.vue |  292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 292 insertions(+), 0 deletions(-)

diff --git a/src/views/console/base/code-rules.vue b/src/views/console/base/code-rules.vue
new file mode 100644
index 0000000..ce1a972
--- /dev/null
+++ b/src/views/console/base/code-rules.vue
@@ -0,0 +1,292 @@
+<!--
+ * @Author: lzhe lzhe@example.com
+ * @Date: 2024-03-26 10:28:33
+ * @LastEditors: lzhe lzhe@example.com
+ * @LastEditTime: 2024-04-17 17:52:50
+ * @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="aposcope-main">
+		<div class="aposcope-left">
+			<div class="left-title">涓氬姟鍒楄〃</div>
+			<el-tree :data="tableData" row-key="id" :props="defalutProps" lazy :load="loadNode" @node-click="handleNodeClick" ref="treeRef"/>
+		</div>
+		<div class="aposcope-right">
+			<div class="right-top">
+				<div>
+					<el-button type="primary" @click="addData">+ 娣诲姞瑙勫垯</el-button>
+					<el-button type="danger" plain @click="delData" disabled>鍒犻櫎</el-button>
+				</div>
+				<el-button @click="openVisible">寮�鍚鍒欏垎绫�</el-button>
+			</div>
+			<div class="right-content" v-if="searchDataList.length == 0">
+				<!-- <img src="./quesheng.bd026700.png" /> -->
+				<div>
+					<span>鏆傛棤鏁版嵁</span>
+					<!-- <span @click="addData">娣诲姞瑙勫垯</span> -->
+				</div>
+			</div>
+			<el-table v-if="searchDataList.length != 0" ref="searchDataListRef" :data="searchDataList" border style="width: 100%;margin-top: 20px;" class="multipleTableRef" @selection-change="searchHandleSelectionChange">
+				<el-table-column type="selection" width="55" />
+				<el-table-column prop="moduleCode" label="鎺ュ彛妯″潡"></el-table-column>
+				<el-table-column prop="controllerCode" label="Controller"></el-table-column>
+				<el-table-column prop="scopeName" label="action"></el-table-column>
+				<el-table-column prop="httpMethod" label="Http鏂规硶"></el-table-column>
+				<el-table-column prop="scopePath" label="api鍦板潃"></el-table-column>
+			</el-table>
+		</div>
+		<el-drawer :title="'褰撳墠閫変腑鑿滃崟璺緞'+drawerPath" v-model="drawer" :direction="direction" :before-close="handleClose" size="780" class="drawerClass">
+			<el-form :inline="true" :model="drawerSearchData" abel-width="120px">
+				<el-form-item label="鎺ュ彛妯″潡">
+					<el-select v-model="drawerSearchData.moduleCode" style="width: 100%">
+						<el-option v-for="item in aList" :key="item.id" :label="item.title" :value="item.id"/>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="鎺ュ彛Controller">
+					<el-select v-model="drawerSearchData.controllerCode" style="width: 100%">
+						<el-option v-for="item in aList" :key="item.id" :label="item.title" :value="item.id"/>
+					</el-select>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" @click="drawerSearchclick">鎼滅储</el-button>
+				</el-form-item>
+			</el-form>
+			<div>
+				<div class="dict-table">
+					<el-table ref="multipleTableRef" :data="drawerTableData" border style="width: 100%" class="multipleTableRef" @selection-change="drawerHandleSelectionChange">
+						<el-table-column type="selection" width="55" />
+						<el-table-column prop="className" label="鎺ュ彛妯″潡"></el-table-column>
+						<el-table-column prop="controllerCode" label="Controller"></el-table-column>
+						<el-table-column prop="name" label="action"></el-table-column>
+						<el-table-column prop="httpMethod" label="Http鏂规硶"></el-table-column>
+						<el-table-column prop="url" label="api鍦板潃"></el-table-column>
+					</el-table>
+				</div>
+			</div>
+			<div class="drawer-foot">
+				<el-button type="primary" @click="drawerConfirm" disabled>娣诲姞</el-button>
+				<el-button @click="closeDrawer">鍙栨秷</el-button>
+			</div>
+		</el-drawer>
+	    <el-dialog title="瑙勫垯鍒嗙被" v-model="visible" :width="500">
+	        <el-form :model="classificationForm" :rules="classificationRules" ref="dialogForm" label-width="120px"
+	            label-position="center">
+	            <el-row>
+	                <el-col :span="12">
+	                    <el-form-item label="鍒嗙被瑙勫垯" prop="code">
+	                        <el-input v-model="classificationForm.code" placeholder="鍒嗙被瑙勫垯" clearable></el-input>
+	                    </el-form-item>
+	                </el-col>
+	                <el-col :span="12">
+	                    <el-form-item label="鍒嗙被瀛楀吀" prop="name">
+	                        <el-input v-model="classificationForm.name" placeholder="鍒嗙被瀛楀吀" clearable></el-input>
+	                    </el-form-item>
+	                </el-col>
+	            </el-row>
+	        </el-form>
+	        <template #footer>
+	            <el-button @click="visible = false">鍙栨秷</el-button>
+	            <el-button type="primary" :loading="isSaveing" @click="classificationSubmit()">纭畾</el-button>
+	        </template>
+	    </el-dialog>
+
+	</div>
+</template>
+<script>
+	export default {
+		name: "apiscope",
+		data(){
+			return {
+				classificationRules: {},
+				classificationForm: {},
+				isSaveing: false,
+				visible: false,
+				drawerPath: "",
+				searchData: {
+					menuId: "",
+					size: "15",
+					current: "1"
+				},
+				searchDataList: [],  //鍙充晶鏁版嵁list
+				aList: [],
+				drawerSearchData: {
+					moduleCode: "",
+					controllerCode: "",
+					menuId: "",
+					size: "-1"
+				},
+				direction: "rtl",
+				drawer: false,
+				defalutProps: {
+					label: 'name',
+  					children: 'children',
+					isLeaf: 'hasChildren'
+				},
+				parentId: "0",
+				tableData: [],
+				searchSelection: []
+			}
+		},
+		created(){
+			
+		},
+		mounted(){
+			//this.getMenuList();
+		},
+		components: {
+
+	    },
+		methods: {
+			classificationSubmit() {
+
+			},
+			openVisible() {
+				this.visible = true;
+			},
+			closeDrawer() {
+				this.drawer = false;
+			},
+			drawerConfirm() {
+				this.drawer = false;
+			},
+			searchHandleSelectionChange(selection) {
+				this.searchSelection = selection;
+			},
+			drawerHandleSelectionChange() {
+
+			},
+			drawerSearchclick() {
+				this.drawerSearchData.menuId = this.searchData.menuId;
+				var obj = {};
+				for(var key in this.drawerSearchData) {
+					if(this.drawerSearchData[key]) {
+						obj[key] = this.drawerSearchData[key];
+					}
+				}
+				this.$HTTP.get("/api/blade-system/resource-definition/page",obj).then(res=> {
+					if(res.code == 200) {
+						this.drawerTableData = res.data.records;
+					}
+				})
+			},
+			handleClose(done) {
+		        done();
+		    },
+			handleNodeClick(data) {
+				this.drawerPath = data.name;
+				console.log(data,data.name,222)
+				this.searchData.menuId = data.id;
+				this.$HTTP.get("/api/blade-system/api-scope/list",this.searchData).then(res=> {
+					if(res.code == 200) {
+						this.searchDataList = res.data.records;
+					}
+				})
+			},
+			getMenuList() {
+				// this.$HTTP.get("/api/blade-system/menu/lazy-list?parentId=0").then(res=> {
+				// 	if(res.code == 200) {
+				// 		this.tableData = res.data;
+				// 	}
+				// })
+			},
+			loadNode(node, resolve, reject) {
+				// if(node.data.id) {
+				// 	this.parentId = node.data.id;
+				// }else {
+				// 	this.parentId = '0';
+				// }
+				// this.$HTTP.get("/api/blade-system/menu/lazy-list",{parentId: this.parentId}).then(res=> {
+				// 	if(res.code == 200) {
+				// 		res.data.forEach(node => {
+				// 			node.hasChildren = !node.hasChildren;
+				// 		});
+				// 		resolve(res.data);
+				// 	}
+				// })
+			},
+			addData() {
+				// this.drawerSearchclick();
+				// this.drawer = true;
+			},
+			delData() {
+				if(this.searchSelection.length == 0) {
+					this.$message({
+			          message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�',
+			          type: 'warning'
+			        });
+			        return;
+				}
+				var selStr = "";
+				this.searchSelection.map(item=> {
+					selStr += item.id + ","
+				})
+				selStr = selStr.replace(/,$/, '');
+				var that = this;
+				// this.$HTTP.post("/api/blade-system/data-scope/remove?ids="+selStr).then(res=> {
+				// 	if(res.code == 200) {
+				// 		that.$message.success("鎿嶄綔鎴愬姛");
+				// 		that.drawerSearchclick();
+				// 	}
+				// })
+			}
+		}
+	}
+</script>
+
+<style scoped>
+.aposcope-main {
+	display: flex;
+	min-height: 100%;
+	margin: 8px;
+}
+.aposcope-left {
+	width: 240px;
+	margin-right: 8px;
+	padding: 4px;
+	background-color: #fff;
+}
+.aposcope-right {
+	flex: 1;
+	padding: 8px;
+	background-color: #fff;
+}
+.left-title {
+	font-size: 16px;
+    text-align: center;
+    height: 38px;
+    line-height: 38px;
+    border-bottom: 1px solid #e2e2e2;
+    background-color: #409eff;
+    color: #fff;
+    border-radius: 2px 2px 0 0;
+}
+.right-content {
+	text-align: center;
+}
+.right-content img {
+	width: 350px;
+	height: 350px;
+}
+.right-content > div {
+	font-size: 14px;;
+}
+.right-content > div span:nth-child(2) {
+	margin-left: 8px;
+	color: #409eff;
+	cursor: pointer;
+}
+/deep/ .drawerClass {
+	padding: 8px;
+}
+.datascope-drawer-btn {
+	margin-bottom: 8px;
+}
+.drawer-foot {
+	margin-top: 20px;
+}
+.right-top {
+	display: flex;
+	justify-content: space-between;
+}
+</style>

--
Gitblit v1.9.3