From e7a44b64dceb984b0bb243bfdcae73edb099e5f1 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期一, 26 八月 2024 21:04:49 +0800
Subject: [PATCH] agent
---
src/views/authority/resource/index.vue | 138 +++++++++++++++++++++-------------------------
1 files changed, 63 insertions(+), 75 deletions(-)
diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue
index b95142c..7c94293 100644
--- a/src/views/authority/resource/index.vue
+++ b/src/views/authority/resource/index.vue
@@ -6,12 +6,13 @@
<a-card
:title="$t('menu.resource.title')"
:bordered="false"
- style=" 'width': '100%'; height: calc(100vh - 250px); 'overflow-y': 'auto' "
+ style=" 'width': '100%'; height: calc(100vh - 250px); overflow-y:auto "
>
<a-tree
class="tree-demo"
draggable
blockNode
+ :default-expand-all=true
:data="treeData"
:show-line="showLine"
:fieldNames="{
@@ -22,7 +23,7 @@
@drop="onDrop"
@select="showDetail"
>
- <template #extra="nodeData">
+ <template #extra="nodeData" >
<IconPlus
style="
position: absolute;
@@ -33,16 +34,20 @@
"
@click="() => onIconClick(nodeData)"
/>
- <IconDelete
- style="
+ <a-popconfirm v-if="nodeData.menuName!='root'"
+ content="璇风‘璁ゆ槸鍚﹀垹闄わ紵"
+ type="success"
+ @ok="() => onIconClickDelete(nodeData)"
+ >
+ <IconDelete
+ style="
position: absolute;
right: 40px;
font-size: 12px;
top: 10px;
color: #3370ff;
- "
- @click="() => onIconClickDelete(nodeData)"
- />
+ " />
+ </a-popconfirm>
</template>
</a-tree>
</a-card>
@@ -53,7 +58,7 @@
:bordered="false"
:style="{ width: '100%' }"
>
- <a-form :model="resourceform" layout="horizontal">
+ <a-form :model="resourceform" layout="horizontal" ref="formRef">
<a-form-item field="parentName" label="涓婄骇璧勬簮" disabled>
<a-input v-model="resourceform.parentName" />
</a-form-item>
@@ -64,7 +69,7 @@
v-model="resourceform.status"
></a-switch>
</a-form-item>
- <a-form-item field="menuName" label="璧勬簮鍚嶇О">
+ <a-form-item field="menuName" label="璧勬簮鍚嶇О" :rules="[{required:true,message:'璧勬簮鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
<a-input v-model="resourceform.menuName" />
</a-form-item>
<a-form-item field="menuName" label="璧勬簮鍥炬爣">
@@ -76,7 +81,7 @@
@success="handleSuccess"
></Upload>
</a-form-item>
- <a-form-item field="menuType" label="璧勬簮绫诲瀷">
+ <a-form-item field="menuType" label="璧勬簮绫诲瀷" :rules="[{required:true,message:'璧勬簮绫诲瀷蹇呭~'}]">
<a-select
v-model="resourceform.menuType"
:options="options"
@@ -91,13 +96,14 @@
placeholder="璇疯緭鍏ユ彁绀鸿瘝"
/>
</a-form-item>
- <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
+ <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃" :rules="[{required:true,message:'璧勬簮鎺у埗鏉冮檺瀛楃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
<a-input v-model="resourceform.perms" />
</a-form-item>
<a-form-item
field="component"
label="璧勬簮鍦板潃"
style="align: start"
+ :rules="[{required:true,message:'璧勬簮鍦板潃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]"
>
<a-input v-model="resourceform.component" />
</a-form-item>
@@ -118,7 +124,7 @@
@cancel="handleCancel"
@ok="addresource"
>
- <a-form :rules="rules" :model="resourceform" layout="horizontal">
+ <a-form :model="resourceform" layout="horizontal" ref="addFormRef">
<a-form-item field="parentName" label="涓婄骇璧勬簮" disabled>
<a-input v-model="resourceform.parentName" />
</a-form-item>
@@ -129,7 +135,7 @@
v-model="resourceform.status"
></a-switch>
</a-form-item>
- <a-form-item field="menuName" label="璧勬簮鍚嶇О">
+ <a-form-item field="menuName" label="璧勬簮鍚嶇О" :rules="[{required:true,message:'璧勬簮鍚嶇О蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
<a-input v-model="resourceform.menuName" />
</a-form-item>
<a-form-item field="icon" label="璧勬簮鍥炬爣">
@@ -141,7 +147,7 @@
@success="handleSuccess"
></Upload>
</a-form-item>
- <a-form-item field="menuType" label="璧勬簮绫诲瀷">
+ <a-form-item field="menuType" label="璧勬簮绫诲瀷" :rules="[{required:true,message:'璧勬簮绫诲瀷蹇呭~'}]">
<a-select
v-model="resourceform.menuType"
:options="options"
@@ -156,10 +162,10 @@
placeholder="璇疯緭鍏ユ彁绀鸿瘝"
/>
</a-form-item>
- <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
+ <a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃" :rules="[{required:true,message:'璧勬簮鎺у埗鏉冮檺瀛楃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
<a-input v-model="resourceform.perms" />
</a-form-item>
- <a-form-item field="component" label="璧勬簮鍦板潃" style="align: start">
+ <a-form-item field="component" label="璧勬簮鍦板潃" style="align: start" :rules="[{required:true,message:'璧勬簮鍦板潃蹇呭~'},{maxLength:50,message:'闀垮害涓嶈秴杩�50'}]">
<a-input v-model="resourceform.component" />
</a-form-item>
</a-form>
@@ -171,19 +177,22 @@
import { ref } from 'vue';
import { IconPlus } from '@arco-design/web-vue/es/icon';
import {
+ Organization,
+ OrganizationAdd, OrganizationUpdate,
Resource,
ResourceAdd,
ResourceById,
ResourceDelete,
ResourceList,
- ResourceUpdate,
- } from '@/api/authority';
+ ResourceUpdate
+ } from "@/api/authority";
import Authheader from '@/views/authority/components/authheader.vue';
import { Modal } from '@arco-design/web-vue';
import { userModelState } from '@/store';
const modelStore = userModelState();
-
+ let formRef = ref();
+ let addFormRef= ref();
let visible = ref(false);
let treeData = ref([]);
let showLine = ref(true);
@@ -212,7 +221,7 @@
menuId: '',
menuName: '',
menuType: '',
- orderNum: '',
+ orderNum: '0',
parentId: '',
parentName: '',
children: [],
@@ -223,38 +232,7 @@
target: '',
updateTime: '',
});
- const rules = {
- // parentName: [
- // {
- // required: true,
- // message: '璇疯緭鍏ヤ笂绾ц祫婧�',
- // },
- // ],
- // menuName: [
- // {
- // required: true,
- // message: '璇疯緭鍏ヨ祫婧愬悕绉�',
- // },
- // ],
- // menuType: [
- // {
- // required: true,
- // message: '璇烽�夋嫨璧勬簮绫诲瀷',
- // },
- // ],
- // description: [
- // {
- // required: true,
- // message: '璇疯緭鍏ユ彁绀鸿瘝',
- // },
- // ],
- // perms: [
- // {
- // required: true,
- // message: '璇疯緭鍏ヨ祫婧愭帶鍒舵潈闄愬瓧绗�',
- // },
- // ],
- };
+
const onIconClick = (nodeData) => {
if (nodeData) {
@@ -276,7 +254,7 @@
visible.value = true;
};
- const formRef = ref();
+
//鍥剧墖涓婁紶
const uploadAction = '/api/v1/llm/upload'; // 鏇挎崲涓轰綘鐨勪笂浼燗PI
const fileList = ref([]);
@@ -296,19 +274,21 @@
imageUrls.value = urlsArr; // 鎷垮埌涓婁紶鐨勫浘鐗囧湴鍧�
};
- const addresource = async (done) => {
- // formRef.value.validate().then(async (res) => {
- // if (!res) {
- // }
- // done(false);
- // });
+ const addCb = async (err) => {
+ if (err) {
+ visible.value = true;
+ } else {
+ resourceform.value.icon = uploadUrl.value[0] || '';
+ await ResourceAdd({
+ ...resourceform.value,
+ } as unknown as Resource).then((res) => {
+ ResourceData('');
+ });
+ }
+ }
- resourceform.value.icon = uploadUrl.value[0] || '';
- await ResourceAdd({
- ...resourceform.value,
- } as unknown as Resource).then((res) => {
- ResourceData('');
- });
+ const addresource = async (done) => {
+ addFormRef.value.validate(addCb);
};
const onIconClickDelete = (nodeData) => {
@@ -325,17 +305,25 @@
imageUrls.value.push(httpUrl + res.data.icon);
});
};
- const editresource = () => {
- resourceform.value.icon = uploadUrl.value[0] || '';
- ResourceUpdate({
- ...resourceform.value,
- } as unknown as Resource).then((res) => {
- ResourceData('');
- Modal.success({
- title: '淇濆瓨鎴愬姛',
- content: '淇濆瓨鎴愬姛',
+ const cb = async (err) => {
+ if (err) {
+
+ } else {
+ resourceform.value.icon = uploadUrl.value[0] || '';
+ ResourceUpdate({
+ ...resourceform.value,
+ } as unknown as Resource).then((res) => {
+ ResourceData('');
+ Modal.success({
+ title: '淇濆瓨鎴愬姛',
+ content: '淇濆瓨鎴愬姛',
+ });
});
- });
+ }
+ }
+ const editresource = () => {
+ formRef.value.validate(cb);
+
};
const reset = (id) => {
ResourceById(id).then((res) => {
--
Gitblit v1.8.0