From f848280fe3ed8841147fcc8f26a788580b82ae0c Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期六, 17 八月 2024 10:37:46 +0800
Subject: [PATCH] 首页页面bug修改

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