+icon
This commit is contained in:
52
src/App.vue
52
src/App.vue
@@ -128,7 +128,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, reactive, computed } from 'vue';
|
import { ref, onMounted, reactive, computed, h } from 'vue';
|
||||||
import { Message, Popover, Typography } from '@arco-design/web-vue';
|
import { Message, Popover, Typography } from '@arco-design/web-vue';
|
||||||
import { useClipboard } from '@vueuse/core';
|
import { useClipboard } from '@vueuse/core';
|
||||||
|
|
||||||
@@ -370,7 +370,7 @@ const downloadScript = async (script) => {
|
|||||||
// 创建一个包含脚本路径的数组
|
// 创建一个包含脚本路径的数组
|
||||||
const subscriptionData = [script.path];
|
const subscriptionData = [script.path];
|
||||||
|
|
||||||
// 将数组转换为 JSON 字符串
|
// 将数组转换为 JSON 字<EFBFBD><EFBFBD><EFBFBD>串
|
||||||
const jsonString = JSON.stringify(subscriptionData);
|
const jsonString = JSON.stringify(subscriptionData);
|
||||||
const base64String = btoa(encodeURIComponent(jsonString));
|
const base64String = btoa(encodeURIComponent(jsonString));
|
||||||
|
|
||||||
@@ -390,7 +390,7 @@ const downloadScript = async (script) => {
|
|||||||
copy(fullUrl).then(() => {
|
copy(fullUrl).then(() => {
|
||||||
Message.success(`已将 ${script.name} 的订阅链接复制到剪贴板`);
|
Message.success(`已将 ${script.name} 的订阅链接复制到剪贴板`);
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
console.error('复制到剪贴板失败:', error);
|
console.error('复制到剪贴<EFBFBD><EFBFBD><EFBFBD>失败:', error);
|
||||||
Message.error(`复制 ${script.name} 的订阅链接失败`);
|
Message.error(`复制 ${script.name} 的订阅链接失败`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -422,7 +422,9 @@ const getCategoryTree = (category) => {
|
|||||||
if (node.type === 'file') {
|
if (node.type === 'file') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return {
|
|
||||||
|
// 创建基本树节点
|
||||||
|
const treeNode = {
|
||||||
title: isRoot ? getCategoryDisplayName(node.name) : node.name,
|
title: isRoot ? getCategoryDisplayName(node.name) : node.name,
|
||||||
key: node.path,
|
key: node.path,
|
||||||
children: Array.isArray(node.children)
|
children: Array.isArray(node.children)
|
||||||
@@ -432,7 +434,24 @@ const getCategoryTree = (category) => {
|
|||||||
: undefined,
|
: undefined,
|
||||||
selectable: true
|
selectable: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 为非根节点添加图标
|
||||||
|
if (!isRoot) {
|
||||||
|
treeNode.icon = () => h('img', {
|
||||||
|
src: getIconUrl(node.name),
|
||||||
|
style: {
|
||||||
|
width: '22px',
|
||||||
|
height: '22px',
|
||||||
|
},
|
||||||
|
onError: (e) => {
|
||||||
|
e.target.style.display = 'none';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return treeNode;
|
||||||
};
|
};
|
||||||
|
|
||||||
return [buildTree(category, true)].filter(Boolean);
|
return [buildTree(category, true)].filter(Boolean);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -485,6 +504,21 @@ const formatDate = (timeString) => {
|
|||||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 在 script setup 部分添加图标 URL 处理函数
|
||||||
|
const getIconUrl = (tag) => {
|
||||||
|
const baseIconUrl = "https://raw.githubusercontent.com/babalae/bettergi-scripts-list/refs/heads/main/repo/pathing/";
|
||||||
|
const encodedTag = encodeURIComponent(tag);
|
||||||
|
const iconPath = `${baseIconUrl}${encodedTag}/icon.ico`;
|
||||||
|
|
||||||
|
// 使用当前选中的镜像URL格式
|
||||||
|
if (selectedRepo.value && selectedRepo.value !== 'local') {
|
||||||
|
const mirrorFormat = selectedRepo.value.split(baseRepo)[0];
|
||||||
|
return mirrorFormat + iconPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
return iconPath;
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 默认选中第一个仓库
|
// 默认选中第一个仓库
|
||||||
if (repoOptions.value.length > 0) {
|
if (repoOptions.value.length > 0) {
|
||||||
@@ -500,6 +534,16 @@ onMounted(() => {
|
|||||||
padding: 16px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 添加图标相关样式 */
|
||||||
|
:deep(.arco-tree-node-title) {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.arco-tree-node-icon) {
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
/* 移除之前为表格单元格添加的样式 */
|
/* 移除之前为表格单元格添加的样式 */
|
||||||
.arco-table-td {
|
.arco-table-td {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
|
|||||||
Reference in New Issue
Block a user