添加程序配置项

This commit is contained in:
2025-05-08 16:29:04 +08:00
parent 18582016b2
commit 5d2af32d68
3 changed files with 31 additions and 6 deletions

View File

@@ -1,16 +1,20 @@
import Invoker from "./src/components/Invoker"; import Invoker, { InvokerModName } from "./src/components/Invoker";
import { hh } from './src/components/DemiHelper'; import { hh } from './src/components/DemiHelper';
import { InvokerItem } from "./src/components/InvokerItem"; import { InvokerItem } from "./src/components/InvokerItem";
import { InvokerContext } from "./src/types/InvokerContext"; import { InvokerContext } from "./src/types/InvokerContext";
import { Vue2Instance } from "./src/types/Vue2Instance"; import { Vue2Instance } from "./src/types/Vue2Instance";
import { ModContext } from "./src/types/ModContext"; import { ModContext } from "./src/types/ModContext";
import Receiver from "./src/components/Receiver"; import Receiver from "./src/components/Receiver";
import { ConfigureModPage, modPageConfig } from "./src/modPageConfig";
export { export {
modPageConfig,
ConfigureModPage,
Invoker, Invoker,
Receiver, Receiver,
type InvokerItem, type InvokerItem,
type InvokerContext, type InvokerContext,
type InvokerModName,
type Vue2Instance, type Vue2Instance,
type ModContext, type ModContext,
hh, hh,

View File

@@ -3,12 +3,13 @@ import {
onBeforeUpdate, onBeforeUpdate,
onUnmounted, onUnmounted,
watch, watch,
type PropType
} from "vue-demi"; } from "vue-demi";
import { ModContext } from "../types/ModContext"; import { ModContext } from "../types/ModContext";
import { InvokerItem } from "./InvokerItem"; import { InvokerItem } from "./InvokerItem";
let idCount = 0; let idCount = 0;
export const UrlFunc = null as ((name: string) => string) | null; export type InvokerModName = string;
export default defineComponent({ export default defineComponent({
props: { props: {
@@ -21,12 +22,13 @@ export default defineComponent({
default: () => false, default: () => false,
}, },
items: { items: {
type: Array , type: Array,
default: () => undefined as InvokerItem[] | undefined, default: () => undefined as InvokerItem[] | undefined,
}, },
url: { name: {
type: String, type: String as PropType<InvokerModName> | undefined,
default: () => null, default: () => undefined,
required: false,
} }
}, },
emits: ["destroyed"], emits: ["destroyed"],

19
src/modPageConfig.ts Normal file
View File

@@ -0,0 +1,19 @@
import { DeepReadonly } from "vue";
import { InvokerModName } from "./components/Invoker";
let _modPageConfig = {
Invoker: {
/** Invoker中计算ModUrl的方法 */
GetModUrl: undefined as ((modName: InvokerModName) => string | Promise<string>) | undefined,
}
}
export function ConfigureModPage(config: typeof _modPageConfig) {
Object.assign(_modPageConfig, {
Invoker: {
...config.Invoker,
}
});
}
export const modPageConfig: DeepReadonly<typeof _modPageConfig> = _modPageConfig;