From 3a22df383af6fc137fd66cc29408b120619ee95f Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期五, 16 八月 2024 20:25:11 +0800
Subject: [PATCH] 会话页面开发
---
src/views/authority/resource/index.vue | 100 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 97 insertions(+), 3 deletions(-)
diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue
index 9c7a161..b95142c 100644
--- a/src/views/authority/resource/index.vue
+++ b/src/views/authority/resource/index.vue
@@ -8,7 +8,6 @@
:bordered="false"
style=" 'width': '100%'; height: calc(100vh - 250px); 'overflow-y': 'auto' "
>
- <a-button @click="() => onIconClick(null)">鏂板鐖剁骇鑿滃崟</a-button>
<a-tree
class="tree-demo"
draggable
@@ -68,6 +67,15 @@
<a-form-item field="menuName" label="璧勬簮鍚嶇О">
<a-input v-model="resourceform.menuName" />
</a-form-item>
+ <a-form-item field="menuName" label="璧勬簮鍥炬爣">
+ <Upload
+ :action="uploadAction"
+ :limit="1"
+ :url="resourceform.icon"
+ @update:fileList="updateFileList"
+ @success="handleSuccess"
+ ></Upload>
+ </a-form-item>
<a-form-item field="menuType" label="璧勬簮绫诲瀷">
<a-select
v-model="resourceform.menuType"
@@ -75,6 +83,12 @@
:field-names="fieldNames"
:style="{ width: '320px' }"
placeholder="璇烽�夋嫨"
+ />
+ </a-form-item>
+ <a-form-item field="description" label="鎻愮ず璇�">
+ <a-input
+ v-model="resourceform.description"
+ placeholder="璇疯緭鍏ユ彁绀鸿瘝"
/>
</a-form-item>
<a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
@@ -104,7 +118,7 @@
@cancel="handleCancel"
@ok="addresource"
>
- <a-form :model="resourceform" layout="horizontal">
+ <a-form :rules="rules" :model="resourceform" layout="horizontal">
<a-form-item field="parentName" label="涓婄骇璧勬簮" disabled>
<a-input v-model="resourceform.parentName" />
</a-form-item>
@@ -118,6 +132,15 @@
<a-form-item field="menuName" label="璧勬簮鍚嶇О">
<a-input v-model="resourceform.menuName" />
</a-form-item>
+ <a-form-item field="icon" label="璧勬簮鍥炬爣">
+ <Upload
+ :action="uploadAction"
+ :limit="1"
+ :url="resourceform.icon"
+ @update:fileList="updateFileList"
+ @success="handleSuccess"
+ ></Upload>
+ </a-form-item>
<a-form-item field="menuType" label="璧勬簮绫诲瀷">
<a-select
v-model="resourceform.menuType"
@@ -125,6 +148,12 @@
:field-names="fieldNames"
:style="{ width: '320px' }"
placeholder="璇烽�夋嫨"
+ />
+ </a-form-item>
+ <a-form-item field="description" label="鎻愮ず璇�">
+ <a-input
+ v-model="resourceform.description"
+ placeholder="璇疯緭鍏ユ彁绀鸿瘝"
/>
</a-form-item>
<a-form-item field="perms" label="璧勬簮鎺у埗鏉冮檺瀛楃">
@@ -151,6 +180,9 @@
} 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 visible = ref(false);
let treeData = ref([]);
@@ -191,6 +223,38 @@
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) {
@@ -212,8 +276,34 @@
visible.value = true;
};
+ const formRef = ref();
+ //鍥剧墖涓婁紶
+ const uploadAction = '/api/v1/llm/upload'; // 鏇挎崲涓轰綘鐨勪笂浼燗PI
+ const fileList = ref([]);
+ const imageUrls = ref([]);
+ const uploadUrl = ref([]);
+ const httpUrl = modelStore.hrefUrl;
+ const updateFileList = (newFileList) => {
+ fileList.value = newFileList;
+ };
- const addresource = async () => {
+ const handleSuccess = (urls) => {
+ uploadUrl.value = urls;
+
+ const urlsArr = urls.map((url) => {
+ return httpUrl + url;
+ });
+ imageUrls.value = urlsArr; // 鎷垮埌涓婁紶鐨勫浘鐗囧湴鍧�
+ };
+
+ const addresource = async (done) => {
+ // formRef.value.validate().then(async (res) => {
+ // if (!res) {
+ // }
+ // done(false);
+ // });
+
+ resourceform.value.icon = uploadUrl.value[0] || '';
await ResourceAdd({
...resourceform.value,
} as unknown as Resource).then((res) => {
@@ -230,9 +320,13 @@
const showDetail = (id) => {
ResourceById(id).then((res) => {
resourceform.value = { ...res.data };
+ resourceform.value.icon = res.data.icon;
+
+ imageUrls.value.push(httpUrl + res.data.icon);
});
};
const editresource = () => {
+ resourceform.value.icon = uploadUrl.value[0] || '';
ResourceUpdate({
...resourceform.value,
} as unknown as Resource).then((res) => {
--
Gitblit v1.8.0