fix: frontend build issue.

This commit is contained in:
EstrellaXD
2023-08-28 21:51:05 +08:00
parent e5f1b70413
commit b60526d552
4 changed files with 39 additions and 22 deletions

View File

@@ -1,6 +1,5 @@
import type { BangumiRule, BangumiUpdate } from '#/bangumi';
import type { BangumiAPI, BangumiRule, BangumiUpdate } from '#/bangumi';
import type { ApiSuccess } from '#/api';
import {forEach} from "lodash";
export const apiBangumi = {
@@ -9,12 +8,15 @@ export const apiBangumi = {
* @returns 所有 bangumi 数据
*/
async getAll() {
const { data } = await axios.get<BangumiRule[]>('api/v1/bangumi/get/all');
forEach(data, (item) => {
item.rss_link = item.rss_link.split(',');
item.filter = item.filter.split(',');
});
return data;
const { data } = await axios.get<BangumiAPI[]>('api/v1/bangumi/get/all');
const result: BangumiRule[] = data.map((bangumi) => (
{
...bangumi,
filter: bangumi.filter.split(','),
rss_link: bangumi.rss_link.split(','),
}
));
return result;
},
/**
@@ -23,12 +25,15 @@ export const apiBangumi = {
* @returns 指定 bangumi 的规则
*/
async getRule(bangumiId: number) {
const { data } = await axios.get<BangumiRule>(
const { data } = await axios.get<BangumiAPI>(
`api/v1/bangumi/get/${bangumiId}`
);
data.rss_link = data.rss_link.split(',');
data.filter = data.filter.split(',');
return data;
const result: BangumiRule = {
...data,
filter: data.filter.split(','),
rss_link: data.rss_link.split(','),
}
return result;
},
/**
@@ -38,12 +43,15 @@ export const apiBangumi = {
* @returns axios 请求返回的数据
*/
async updateRule(bangumiId: number, bangumiRule: BangumiRule) {
const rule = omit(bangumiRule, ['id']);
rule.rss_link = rule.rss_link.join(',');
rule.filter = rule.filter.join(',');
const rule: BangumiAPI = {
...bangumiRule,
filter: bangumiRule.filter.join(','),
rss_link: bangumiRule.rss_link.join(','),
}
const post = omit(rule, ['id'])
const { data } = await axios.patch< ApiSuccess >(
`api/v1/bangumi/update/${bangumiId}`,
rule
post
);
return data;
},

View File

@@ -1,8 +1,7 @@
<script lang="ts" setup>
import { ref } from 'vue';
withDefaults(
defineProps<{
select: boolean;
name: string;
url: string;
enable: boolean;
@@ -10,10 +9,11 @@ withDefaults(
parser: string;
}>(),
{
select: false,
enable: false,
}
);
const select = ref(false);
</script>
<template>

View File

@@ -8,6 +8,8 @@ onActivated(() => {
definePage({
name: 'RSS',
});
</script>
<template>
@@ -24,7 +26,7 @@ definePage({
<div text-h3>{{ $t('rss.status') }}</div>
</div>
</div>
<div v-show="!open" line my-12px></div>
<div line my-12px></div>
<div>
<ab-rss-item
v-for="i in rss"
@@ -36,7 +38,7 @@ definePage({
:aggregate="i.aggregate">
</ab-rss-item>
</div>
<div v-show="!open" line my-12px></div>
<div line my-12px></div>
<div flex="~ justify-end" space-x-10px>
<ab-button icon="edit">{{ $t('rss.disable') }}</ab-button>
<ab-button class="type-warn" text="delete">{{ $t('rss.delete') }}</ab-button>

View File

@@ -20,7 +20,14 @@ export interface BangumiRule {
year: string | null;
}
export type BangumiUpdate = Omit<BangumiRule, 'id'>;
export interface BangumiAPI extends Omit<BangumiRule, 'filter' | 'rss_link'> {
filter: string;
rss_link: string;
}
export type BangumiUpdate = Omit<BangumiAPI, 'id'>;
export const ruleTemplate: BangumiRule = {
added: false,