Compare commits

..

5 Commits

Author SHA1 Message Date
7cf87a75fe loadSetting() support only key 2026-01-05 14:54:28 +08:00
05e354f148 update Page and Response T 2026-01-05 14:54:09 +08:00
e20d2ea351 support custom copyright text 2025-12-19 11:42:47 +08:00
c9d209d673 support wxml,wxss 2025-12-05 12:04:01 +08:00
381dc73163 remove Page.keyword and add likeMap 2025-12-03 12:01:13 +08:00
7 changed files with 38 additions and 29 deletions

View File

@ -22,6 +22,7 @@
],
"exports": {
".": {
"types": "./dist/src/index.d.ts",
"import": "./dist/timi-web.mjs",
"require": "./dist/timi-web.umd.js"
},

View File

@ -1,6 +1,6 @@
<template>
<div class="tui-copyright">
<p>朝朝频顾惜夜夜不相忘</p>
<p v-text="text"></p>
<p v-if="icp" class="selectable">
<a href="https://beian.miit.gov.cn/" v-text="icp" :title="icp" target="_blank"></a>
</p>
@ -20,7 +20,9 @@ withDefaults(defineProps<{
icp?: string;
domain?: string;
author?: string;
text?: string;
}>(), {
text: "朝朝频顾惜,夜夜不相忘"
});
</script>

View File

@ -53,7 +53,7 @@ export type CommentReplyView = {
export type CommentPage = {
bizType?: CommentBizType;
bizId?: number;
} & Page;
} & Page<Comment>;
export enum CommentReplyBizType {
@ -67,7 +67,7 @@ export enum CommentReplyBizType {
export type CommentReplyPage = {
bizType: CommentReplyBizType
bizId?: number
} & Page;
} & Page<Comment>;
export enum CommentBizType {
ARTICLE = "ARTICLE",

View File

@ -13,17 +13,18 @@ export type Model = {
deletedAt?: number;
}
export type Response = {
export type Response<T> = {
code: number;
msg?: string;
data: object;
data: T;
}
export type Page = {
export type Page<T> = {
index: number;
size: number;
keyword?: string;
orderMap?: { [key: string]: OrderType };
equalsExample?: T;
likesExample?: T;
}
export enum OrderType {

View File

@ -2,7 +2,7 @@ import axios, { InternalAxiosRequestConfig } from "axios";
import { Response } from "~/types/Model";
import { Cooker, Time, userStore } from "~/index";
type ErrorCallback = (response: Response) => void;
type ErrorCallback = (response: Response<any>) => void;
let globalErrorCallback: ErrorCallback | null = null;
@ -36,7 +36,7 @@ axios.defaults.withCredentials = true;
axios.interceptors.response.use((axiosResp: any) => {
if (!axiosResp.config.responseType) {
// 服务端返回
const serverResp = axiosResp.data as Response;
const serverResp = axiosResp.data as Response<any>;
if (serverResp.code < 40000) {
// 200 或 300 HTTP 状态段视为成功
return serverResp.data;

View File

@ -42,24 +42,24 @@ export default class Prismjs {
map = new Map<PrismjsType, PrismjsProperties>();
private constructor() {
this.map.set(PrismjsType.PlainText, {extensions: ["txt"], prismjs: "", viewer: PrismjsViewer.TEXT});
this.map.set(PrismjsType.Markdown, {extensions: ["md"], prismjs: "md", viewer: PrismjsViewer.MARKDOWN});
this.map.set(PrismjsType.JavaScript, {extensions: ["js"], prismjs: "js", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.VUE, {extensions: ["vue"], prismjs: "html", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.TypeScript, {extensions: ["ts"], prismjs: "ts", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Initialization, {extensions: ["ini"], prismjs: "ini", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.PHP, {extensions: ["php"], prismjs: "php", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.SQL, {extensions: ["sql"], prismjs: "sql", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.XML, {extensions: ["xml", "fxml"], prismjs: "xml", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.CSS, {extensions: ["css"], prismjs: "css", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.LESS, {extensions: ["less"], prismjs: "less", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Markup, {extensions: ["htm", "html"], prismjs: "markup", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.YAML, {extensions: ["yml", "yaml"], prismjs: "yaml", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Json, {extensions: ["json"], prismjs: "json", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Java, {extensions: ["java"], prismjs: "java", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Properties, {extensions: ["properties"], prismjs: "properties", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.NginxConf, {extensions: [], prismjs: "nginx", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.ApacheConf, {extensions: [], prismjs: "apacheconf", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.PlainText, {extensions: ["txt"], prismjs: "", viewer: PrismjsViewer.TEXT});
this.map.set(PrismjsType.Markdown, {extensions: ["md"], prismjs: "md", viewer: PrismjsViewer.MARKDOWN});
this.map.set(PrismjsType.JavaScript, {extensions: ["js"], prismjs: "js", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.VUE, {extensions: ["vue"], prismjs: "html", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.TypeScript, {extensions: ["ts"], prismjs: "ts", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Initialization, {extensions: ["ini"], prismjs: "ini", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.PHP, {extensions: ["php"], prismjs: "php", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.SQL, {extensions: ["sql"], prismjs: "sql", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.XML, {extensions: ["xml", "fxml", "wxml"], prismjs: "xml", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.CSS, {extensions: ["css", "wxss"], prismjs: "css", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.LESS, {extensions: ["less"], prismjs: "less", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Markup, {extensions: ["htm", "html"], prismjs: "markup", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.YAML, {extensions: ["yml", "yaml"], prismjs: "yaml", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Json, {extensions: ["json"], prismjs: "json", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Java, {extensions: ["java"], prismjs: "java", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.Properties, {extensions: ["properties"], prismjs: "properties", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.NginxConf, {extensions: [], prismjs: "nginx", viewer: PrismjsViewer.CODE});
this.map.set(PrismjsType.ApacheConf, {extensions: [], prismjs: "apacheconf", viewer: PrismjsViewer.CODE});
}
private static getInstance(): Prismjs {

View File

@ -9,7 +9,7 @@ export default class SettingMapper {
private map = new Map<string, Ref<string>>();
public static async loadSetting(...settings: { key: string, args?: { [key: string]: any }}[]): Promise<void> {
public static async loadSetting(...settings: (string | { key: string, args?: { [key: string]: any }})[]): Promise<void> {
const map = new Map<string, object | undefined>();
{
// 默认配置
@ -34,7 +34,12 @@ export default class SettingMapper {
{
// 附加配置
for (let i = 0; i < settings.length; i++) {
map.set(settings[i].key, settings[i].args);
const setting = settings[i];
if (typeof setting === 'string') {
map.set(setting, undefined);
} else {
map.set(setting.key, setting.args);
}
}
}
const instance = this.getInstance();