From 1d8ffe35090c3e541dc2e0d9a26a4ef1c853d3b1 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 27 九月 2024 18:10:20 +0800
Subject: [PATCH] UI授权
---
Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/UIDialog.vue | 143 ++++++++++++++++++++++++++++
Source/plt-web/plt-web-ui/src/api/authority/ui/uiAuthor.js | 19 +++
Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue | 109 ++++++++++++++++-----
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue | 16 ++
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 4
5 files changed, 260 insertions(+), 31 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/api/authority/ui/uiAuthor.js b/Source/plt-web/plt-web-ui/src/api/authority/ui/uiAuthor.js
new file mode 100644
index 0000000..9d3b1dc
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/api/authority/ui/uiAuthor.js
@@ -0,0 +1,19 @@
+import request from '@/router/axios';
+
+// 鍔熻兘妯″潡鏌ヨ
+export function getUIAuthor(params) {
+ return request({
+ url: "/api/uiManagerController/getUIAuthor",
+ method: "get",
+ params
+ });
+}
+
+//鎺堟潈
+export const authorizedUI = (params) => {
+ return request({
+ url: '/api/uiManagerController/authorizedUI',
+ method: 'post',
+ data: params
+ })
+}
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/UIDialog.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/UIDialog.vue
new file mode 100644
index 0000000..255cce2
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/UIDialog.vue
@@ -0,0 +1,143 @@
+<template>
+ <el-dialog v-dialogDrag
+ :title="dialog.title"
+ :visible.sync="dialog.showDialog"
+ width="1000px"
+ :append-to-body="true"
+ class="avue-dialog"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ @close="cancelDialog">
+ <el-aside>
+ <basic-container>
+ <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
+ <span slot-scope="{ node, data }" class="el-tree-node__label">
+ <span style="font-size: 15px">
+ <i class="el-icon-user-solid"></i>
+ {{ (node || {}).label }}
+ </span>
+ </span>
+ </avue-tree>
+ </basic-container>
+ </el-aside>
+
+ <el-main>
+ <basic-container>
+ <avue-tree ref="uiTree" :data="uiTreeData" :option="uiTreeOption">
+ <span slot-scope="{ node, data }" class="el-tree-node__label">
+ <span style="font-size: 15px">
+ <i class="el-icon-user-solid"></i>
+ {{ (node || {}).label }}
+ </span>
+ </span>
+ </avue-tree>
+ </basic-container>
+ </el-main>
+ <div class="dialog-footer avue-dialog__footer">
+ <el-button type="primary" plain size="small" @click="submitDialog" >鎺堟潈</el-button>
+ <el-button type="primary" plain size="small" @click="clearValue" >閲嶇疆</el-button>
+ <el-button size="small" @click="cancelDialog">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<script>
+import {gridRoles} from '@/api/system/role/api'
+import {getUIAuthor,authorizedUI} from "@/api/authority/ui/uiAuthor";
+
+export default {
+name: "UIDialog",
+ data() {
+ return {
+ dialog: {
+ showDialog: false,
+ title: "UI鎺堟潈",
+ loading: false,
+ type: "add",
+ },
+ type:'',//涓氬姟绫诲瀷
+ context:'',//UI涓婁笅鏂嘽ode
+ treeOption: {
+ height: '500px',
+ menu: false,
+ addBtn: false,
+ props: {
+ label: 'name',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ nodeRow: {},
+ treeData: [],
+ uiTreeOption: {
+ height: '500px',
+ menu: false,
+ addBtn: false,
+ filter:false,
+ props: {
+ label: 'name',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ uiTreeData: [],
+ }
+ },
+ methods:{
+ openDialog(type,context) {
+ this.type=type;
+ this.context=context;
+ this.dialog.showDialog = true;
+ this.getTreeList()
+
+ },
+ cancelDialog() {
+ this.dialog.loading = false;
+ this.dialog.showDialog = false;
+ },
+ getTreeList() {
+ const loading = this.$loading({});
+ gridRoles().then(res => {
+ this.treeData = res.data.data;
+ loading.close();
+ }).catch(error=>{
+ loading.close();
+ })
+ },
+ // 瑙掕壊鐐瑰嚮
+ nodeClick(row) {
+ this.nodeRow = row;
+
+ const loading = this.$loading({});
+ getUIAuthor().then(res => {
+ this.uiTreeData = res.data.data;
+ loading.close();
+ }).catch(error=>{
+ loading.close();
+ })
+ },
+ submitDialog() {
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ const formData={}
+ authorizedUI(formData).then(res => {
+ if (res.data.success) {
+ this.$message.success("淇濆瓨鎴愬姛");
+ this.cancelDialog();
+ }
+ });
+ } else {
+ return false;
+ }
+ });
+ },
+ clearValue(){
+ this.$refs.uiTree.setCheckedNodes([])
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
index 308c333..e29f4a0 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
@@ -1,33 +1,17 @@
<template>
<el-container>
-
<el-aside>
<basic-container>
- <div ref="TreeBox" style="height: calc(100vh - 144px);!important;">
- <div class="headerCon">
- <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">鍒涘缓
- </el-button>
- <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">淇敼
- </el-button>
- <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delClickHandler">鍒犻櫎
- </el-button>
- <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭
- </el-button>
- <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆
- </el-button>
- <el-button class="smallBtn" plain size="small" type="primary"
- @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿
- </el-button>
- </div>
+ <div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
<!-- 宸︿晶鏍� -->
- <div style="height: calc(100vh - 280px);">
+ <div style="height: calc(100vh - 200px);">
<avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick">
- <span slot-scope="{ node, data }" class="el-tree-node__label">
- <span style="font-size: 15px">
- <i class="el-icon-s-promotion"></i>
- {{ (node || {}).label }}
- </span>
- </span>
+ <span slot-scope="{ node, data }" class="el-tree-node__label">
+ <span style="font-size: 15px">
+ <i class="el-icon-user-solid"></i>
+ {{ (node || {}).label }}
+ </span>
+ </span>
</avue-tree>
</div>
</div>
@@ -43,8 +27,83 @@
</template>
<script>
+import {gridRoles} from "@/api/system/role/api";
+import {getUIAuthor,authorizedUI} from "@/api/authority/ui/uiAuthor";
+
export default {
- name: "index"
+ name: "index",
+ data() {
+ return {
+ type:'',//涓氬姟绫诲瀷
+ treeOption: {
+ height: '500px',
+ menu: false,
+ addBtn: false,
+ props: {
+ label: 'name',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ nodeRow: {},
+ treeData: [],
+ uiTreeOption: {
+ height: '500px',
+ menu: false,
+ addBtn: false,
+ filter:false,
+ props: {
+ label: 'name',
+ value: 'oid',
+ children: 'children'
+ }
+ },
+ uiTreeData: [],
+ }
+ },
+ created() {
+ this.getTreeList()
+ },
+ methods:{
+ getTreeList() {
+ const loading = this.$loading({});
+ gridRoles().then(res => {
+ this.treeData = res.data.data;
+ loading.close();
+ }).catch(error=>{
+ loading.close();
+ })
+ },
+ // 瑙掕壊鐐瑰嚮
+ nodeClick(row) {
+ this.nodeRow = row;
+ const loading = this.$loading({});
+ getUIAuthor().then(res => {
+ this.uiTreeData = res.data.data;
+ loading.close();
+ }).catch(error=>{
+ loading.close();
+ })
+ },
+ saveHandler() {
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ const formData={}
+ authorizedUI(formData).then(res => {
+ if (res.data.success) {
+ this.$message.success("淇濆瓨鎴愬姛");
+ this.cancelDialog();
+ }
+ });
+ } else {
+ return false;
+ }
+ });
+ },
+ clearValue(){
+ this.$refs.uiTree.setCheckedNodes([])
+ }
+ }
}
</script>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
index 3490a9d..23931d1 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -98,15 +98,11 @@
dialog: {
showDialog: false,
title: "鍒涘缓",
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
loading: false,
type: "add",
},
crudDialog: {
showDialog: false,
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
},
formItems:[{
label: '鏌ヨ妯℃澘鍚嶇О',
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
index 4870af7..9a6bc20 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
@@ -38,7 +38,7 @@
<el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">鍒犻櫎</el-button>-->
<el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button>
<el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆</el-button>
- <el-button icon="el-icon-place" plain size="small" type="primary" @click="">鎺堟潈</el-button>
+ <el-button icon="el-icon-place" plain size="small" type="primary" @click="uiAuthorHandler">鎺堟潈</el-button>
</template>
<template slot="menu" slot-scope="scope">
<el-button icon="el-icon-edit" size="small" type="text" @click="rowEditBtnClick(scope.row)">缂栬緫
@@ -126,6 +126,7 @@
<!-- 瀵煎叆 -->
<upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" :fileData="fileData" title="瀵煎叆"
@updata="getTableList" @upfaildata="upFail"></upload-file>
+ <!--椤电绐楀彛-->
<el-dialog v-dialogDrag
:title="dialog.title"
:visible.sync="dialog.showDialog"
@@ -137,6 +138,8 @@
@close="dialog.showDialog=false">
<pl-show :uiDefineData="dialog.uiDefineData"></pl-show>
</el-dialog>
+ <!--ui鎺堟潈-->
+ <ui-author ref="uiAuthor"></ui-author>
</el-main>
</el-container>
@@ -147,9 +150,10 @@
import basicOption from "@/util/basic-option";
import func from "@/util/func";
import plShow from "@/views/modelingMenu/ui/uiDefine/rightRegion/plShow";
+import uiAuthor from "@/views/authority/ui/uiAuthorization/UIDialog"
export default {
name: "index",
- components:{plShow},
+ components:{plShow,uiAuthor},
data() {
return {
dialog: {
@@ -581,6 +585,14 @@
upFail(response){
},
+ //ui鎺堟潈
+ uiAuthorHandler(){
+ if (this.selectList.length!=1) {
+ this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+ return;
+ }
+ this.$refs.uiAuthor.openDialog(this.nodeRow.attributes.name,this.selectList[0].plCode);
+ },
// 缂栬緫鎸夐挳
rowEditBtnClick(row) {
this.form={
--
Gitblit v1.9.3