From 971af73e19011044a3fac5ffe58d8816f2db2bf3 Mon Sep 17 00:00:00 2001 From: Megghy <1061179310@qq.com> Date: Tue, 19 Dec 2023 11:42:49 +0800 Subject: [PATCH] save --- src/api/account.ts | 40 +++++++++++++++++-- src/data/VTsuruTypes.ts | 19 +++++++++ .../indexTemplate/SimpleIndexTemplate.vue | 40 +++++++++++++++++++ 3 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 src/data/VTsuruTypes.ts create mode 100644 src/views/view/indexTemplate/SimpleIndexTemplate.vue diff --git a/src/api/account.ts b/src/api/account.ts index b3d256e..6f8b579 100644 --- a/src/api/account.ts +++ b/src/api/account.ts @@ -1,10 +1,10 @@ -import { ACCOUNT_API_URL, BASE_API } from '@/data/constants' -import { APIRoot, AccountInfo, FunctionTypes } from './api-models' import { QueryGetAPI, QueryPostAPI } from '@/api/query' -import { ref } from 'vue' +import { ACCOUNT_API_URL, VTSURU_API_URL } from '@/data/constants' import { useLocalStorage } from '@vueuse/core' -import { createDiscreteApi } from 'naive-ui' import { isSameDay } from 'date-fns' +import { createDiscreteApi } from 'naive-ui' +import { ref } from 'vue' +import { APIRoot, AccountInfo, FunctionTypes } from './api-models' export const ACCOUNT = ref() export const isLoadingAccount = ref(true) @@ -93,3 +93,35 @@ export async function DelBiliBlackList(id: number): Promise> { id: id, }) } +export async function downloadConfig(name: string) { + try { + const resp = await QueryGetAPI(VTSURU_API_URL + 'get-config', { + name: name, + }) + if (resp.code == 200) { + message.success('已获取配置文件') + return JSON.parse(resp.data) as T + } else if (resp.code == 404) { + message.error(`未找到名为 ${name} 的配置文件`) + } else { + message.error('获取失败: ' + resp.message) + } + } catch (err) { + message.error(`获取配置文件失败: ` + err) + } +} +export async function uploadConfig(name: string, data: unknown) { + try { + const resp = await QueryPostAPI(VTSURU_API_URL + 'set-config', { + name: name, + json: JSON.stringify(data), + }) + if (resp.code == 200) { + message.success('已保存至服务器') + } else { + message.error('保存失败: ' + resp.message) + } + } catch (err) { + message.error(`保存配置文件失败: ` + err) + } +} diff --git a/src/data/VTsuruTypes.ts b/src/data/VTsuruTypes.ts new file mode 100644 index 0000000..046fe2b --- /dev/null +++ b/src/data/VTsuruTypes.ts @@ -0,0 +1,19 @@ +import { VNode } from 'vue' + +export type TemplateConfig = { + name: string + items: (TemplateConfigItem | TemplateConfigImageItem)[] + onConfirm?: (arg0: T) => void +} +interface TemplateConfigBase { + name: string +} +export type TemplateConfigItem = TemplateConfigBase & { + type: 'default' + render: (arg0: T) => VNode +} +export type TemplateConfigImageItem = TemplateConfigBase & { + type: 'image' + imageLimit: number + onUploaded: (arg0: string | string[], arg1: T) => void +} diff --git a/src/views/view/indexTemplate/SimpleIndexTemplate.vue b/src/views/view/indexTemplate/SimpleIndexTemplate.vue new file mode 100644 index 0000000..3b3c44c --- /dev/null +++ b/src/views/view/indexTemplate/SimpleIndexTemplate.vue @@ -0,0 +1,40 @@ + + + + +