Alsmile 1 年之前
父節點
當前提交
5a95c05bf8
共有 3 個文件被更改,包括 20 次插入13 次删除
  1. 1 1
      .github/workflows/main.yml
  2. 12 5
      src/services/png.ts
  3. 7 7
      src/views/components/Graphics.vue

+ 1 - 1
.github/workflows/main.yml

@@ -54,7 +54,7 @@ jobs:
           coscmd config -a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION
       - name: Upload COS
         run: |
-          coscmd upload -rfs ./webs/v/ /v/
+          coscmd upload -rs ./webs/v/ /v/
         
       - name: Upload index.html
         uses: appleboy/scp-action@v0.1.4

+ 12 - 5
src/services/png.ts

@@ -4,11 +4,11 @@ import { cdn } from './api';
 import { filename } from './file';
 
 export async function getFolders(name: string, isSvg?: boolean) {
-  const path = 'v/' + name;
+  const path = name;
   const folders: any = await axios.post('/api/assets/folders', {
     path,
   });
-  if (!folders) {
+  if (!folders || !folders.list) {
     return [];
   }
 
@@ -18,19 +18,26 @@ export async function getFolders(name: string, isSvg?: boolean) {
 
   const results = [];
   for (const item of folders.list) {
+    let name = item;
+    if (folders.prefix) {
+      const temp = name.split('/');
+      name = temp[temp.length - 2];
+    }
     const list = [];
     for (const f of files.list) {
       if (f.indexOf(item) >= 0) {
+        const temp = f.split('/');
+        const name = filename(temp[temp.length - 1]);
         const elem: any = {
-          name: filename(f.replace(path + '/' + item + '/', '')),
-          image: cdn + '/' + f.replace('v/', ''),
+          name,
+          image: cdn + '/' + f,
           isSvg,
         };
         list.push(elem);
       }
     }
 
-    results.push({ name: item, list });
+    results.push({ name, list });
   }
 
   return results;

+ 7 - 7
src/views/components/Graphics.vue

@@ -34,12 +34,8 @@
         </div>
       </div>
       <div class="list" :class="groupType ? 'two-columns' : ''">
-        <div v-if="loading">
-          <t-loading
-            text="加载中..."
-            size="small"
-            style="margin: 32px 0 4px 32px"
-          />
+        <div v-if="loading" class="center mt-16">
+          <t-loading text="加载中..." size="small" :indicator="false" />
         </div>
         <template v-else>
           <div v-if="activedGroup === '我的'" class="px-16 mt-12 mb-8 ml-4">
@@ -374,14 +370,18 @@ const groupChange = async (name: string) => {
     case '素材':
       groupType.value = 1;
       if (!materials.length) {
-        materials.push(...(await getFolders('material')));
+        loading.value = true;
+        materials.push(...(await getFolders('v/material')));
+        loading.value = false;
       }
       subGroups.value = materials;
       break;
     case '图元':
       if (!pngs.length) {
+        loading.value = true;
         pngs.push(...(await getFolders('png')));
         pngs.push(...(await getFolders('svg', true)));
+        loading.value = false;
       }
       subGroups.value = pngs;
       break;