更新
This commit is contained in:
parent
4b51e156bb
commit
a4d6b581d7
18
CHANGELOG.md
18
CHANGELOG.md
@ -4,6 +4,24 @@
|
|||||||
|
|
||||||
# CHANGE
|
# CHANGE
|
||||||
|
|
||||||
|
## 0.8.7
|
||||||
|
|
||||||
|
2023年04月10日
|
||||||
|
|
||||||
|
### 修改
|
||||||
|
|
||||||
|
- 修复脚本首次运行配置获取错误的问题
|
||||||
|
- 修复"解决加载中"功能开启后无法加载插件图标的问题
|
||||||
|
- 修复功能选项错误读取默认值的问题
|
||||||
|
|
||||||
|
## 0.8.6
|
||||||
|
|
||||||
|
2023年04月07日
|
||||||
|
|
||||||
|
### 修改
|
||||||
|
|
||||||
|
- 结构调整
|
||||||
|
|
||||||
## 0.8.5
|
## 0.8.5
|
||||||
|
|
||||||
2023年04月03日
|
2023年04月03日
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
6
src/shims-vue.d.ts
vendored
6
src/shims-vue.d.ts
vendored
@ -1,11 +1,5 @@
|
|||||||
/* eslint-disable */
|
|
||||||
declare module '*.vue' {
|
declare module '*.vue' {
|
||||||
import type { DefineComponent } from 'vue'
|
import type { DefineComponent } from 'vue'
|
||||||
const component: DefineComponent<{}, {}, any>
|
const component: DefineComponent<{}, {}, any>
|
||||||
export default component
|
export default component
|
||||||
}
|
}
|
||||||
declare module '*vue&type=script&lang.ts' {
|
|
||||||
import type { DefineComponent } from 'vue'
|
|
||||||
const component: DefineComponent<{}, {}, any>
|
|
||||||
export default component
|
|
||||||
}
|
|
||||||
|
|||||||
@ -30,16 +30,14 @@ export default class App {
|
|||||||
// 初始化
|
// 初始化
|
||||||
this.tornHelper.init();
|
this.tornHelper.init();
|
||||||
|
|
||||||
// 插件设置默认值
|
|
||||||
// WuhuConfig.setDefaults();
|
|
||||||
|
|
||||||
// 插件图标和设置菜单
|
// 插件图标和设置菜单
|
||||||
this.icon.init();
|
this.icon.init();
|
||||||
|
|
||||||
let tmp = () => {
|
let tmp = () => {
|
||||||
// 所有页面通用
|
// 所有页面通用
|
||||||
try {
|
try {
|
||||||
this.common.resolve(this.run);
|
// this.common.resolve.apply(this.common, this.run);
|
||||||
|
this.common.resolve(() => this.run());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
import Logger from "./Logger";
|
import Logger from "./Logger";
|
||||||
import ClassName from "../container/ClassName";
|
import ClassName from "../container/ClassName";
|
||||||
import { Injectable } from "../container/Injectable";
|
import { Injectable } from "../container/Injectable";
|
||||||
import Global from "./Global";
|
|
||||||
import CommonUtils from "./utils/CommonUtils";
|
import CommonUtils from "./utils/CommonUtils";
|
||||||
import LocalConfigWrapper from "./LocalConfigWrapper";
|
import LocalConfigWrapper from "./LocalConfigWrapper";
|
||||||
import NNB from "./handler/NNB";
|
import NNB from "./handler/NNB";
|
||||||
import ItemPriceWatcherHandler from "./handler/ItemPriceWatcherHandler";
|
import ItemPriceWatcherHandler from "./handler/ItemPriceWatcherHandler";
|
||||||
import { createApp, InjectionKey } from "vue";
|
import { createApp, InjectionKey } from "vue";
|
||||||
import FloatMenu from "../../vue/FloatMenu.vue";
|
import FloatMenu from "../../vue/FloatMenu.vue";
|
||||||
import MenuItem, { MENU_ITEM_TYPE } from "../interface/MenuItem";
|
import PopupWrapper, { PopupWrapperKey } from "./utils/PopupWrapper";
|
||||||
|
import InfoUtils from "./utils/InfoUtils";
|
||||||
|
|
||||||
export const MenuItemListKey = Symbol() as InjectionKey<MenuItem[]>;
|
// export const MenuItemListKey = Symbol() as InjectionKey<MenuItem[]>;
|
||||||
export const GlobalKey = Symbol() as InjectionKey<Global>;
|
// export const GlobalKey = Symbol() as InjectionKey<Global>;
|
||||||
export const LoggerKey = Symbol() as InjectionKey<Logger>;
|
export const LoggerKey = Symbol() as InjectionKey<Logger>;
|
||||||
|
|
||||||
@ClassName("IconHelper")
|
@ClassName("IconHelper")
|
||||||
@ -21,11 +21,13 @@ export default class IconHelper {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly logger: Logger,
|
private readonly logger: Logger,
|
||||||
private readonly global: Global,
|
// private readonly global: Global,
|
||||||
private readonly commonUtils: CommonUtils,
|
private readonly commonUtils: CommonUtils,
|
||||||
private readonly localConfigWrapper: LocalConfigWrapper,
|
private readonly localConfigWrapper: LocalConfigWrapper,
|
||||||
private readonly nnb: NNB,
|
private readonly nnb: NNB,
|
||||||
private readonly itemPriceWatcherHandler: ItemPriceWatcherHandler,
|
private readonly itemPriceWatcherHandler: ItemPriceWatcherHandler,
|
||||||
|
private readonly popupWrapper: PopupWrapper,
|
||||||
|
private readonly infoUtils: InfoUtils,
|
||||||
) {
|
) {
|
||||||
this._element = document.createElement('div');
|
this._element = document.createElement('div');
|
||||||
}
|
}
|
||||||
@ -39,9 +41,200 @@ export default class IconHelper {
|
|||||||
document.body.append(this._element);
|
document.body.append(this._element);
|
||||||
let app = createApp(FloatMenu);
|
let app = createApp(FloatMenu);
|
||||||
app.config.errorHandler = (err) => this.logger.error('vue错误', err);
|
app.config.errorHandler = (err) => this.logger.error('vue错误', err);
|
||||||
app.provide(MenuItemListKey, [{ domType: MENU_ITEM_TYPE.BUTTON, domId: '1', domText: '1111111' }]);
|
// app.provide(menuItemList, this.items);
|
||||||
app.provide(GlobalKey, this.global);
|
// app.provide(GlobalKey, this.global);
|
||||||
app.provide(LoggerKey, this.logger);
|
app.provide(LoggerKey, this.logger);
|
||||||
|
app.provide(PopupWrapperKey, this.popupWrapper);
|
||||||
app.mount(this._element);
|
app.mount(this._element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get items(): MenuItem[] {
|
||||||
|
// let rt: MenuItem[] = [];
|
||||||
|
// let playerInfo = this.infoUtils.getPlayerInfo();
|
||||||
|
//
|
||||||
|
// // 欢迎 显示玩家id
|
||||||
|
// if (playerInfo.userID !== 0) {
|
||||||
|
// rt.push({
|
||||||
|
// domType: MENU_ITEM_TYPE.PLAIN,
|
||||||
|
// domHTML:
|
||||||
|
// `<a href="/profiles.php?XID=${ playerInfo.userID }" target="_blank">${ playerInfo.playername }</a>[${ playerInfo.userID }]`,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// // 节日
|
||||||
|
// let festDateHtml = '<button>节日</button>: ';
|
||||||
|
// {
|
||||||
|
// // 节日字典
|
||||||
|
// const festData = FEST.val;
|
||||||
|
// const formatMMDD = (m, d) => {
|
||||||
|
// const MM = m < 10 ? `0${ m }` : m.toString();
|
||||||
|
// const DD = d < 10 ? `0${ d }` : d.toString();
|
||||||
|
// return MM + DD;
|
||||||
|
// };
|
||||||
|
// const newDate = new Date();
|
||||||
|
// const festKey = formatMMDD(newDate.getUTCMonth(), newDate.getUTCDate());
|
||||||
|
// if (festData[festKey]) festDateHtml += `今天 - ${ festData[festKey]['name'] }(<button title="${ festData[festKey]['eff'] }">效果</button>)`;
|
||||||
|
// else {
|
||||||
|
// // 月日列表
|
||||||
|
// let MMDDList = Object.keys(festData);
|
||||||
|
// MMDDList.push(festKey);
|
||||||
|
// // 下个节日的位置
|
||||||
|
// const nextFestIndex = MMDDList.sort().indexOf(festKey) + 1;
|
||||||
|
// // 下个节日obj
|
||||||
|
// const nextFestDate = festData[MMDDList[nextFestIndex] || MMDDList[0]];
|
||||||
|
// // 下个节日的时间
|
||||||
|
// let next = new Date(
|
||||||
|
// nextFestIndex !== MMDDList.length ? newDate.getUTCFullYear() : newDate.getUTCFullYear() + 1,
|
||||||
|
// (MMDDList[nextFestIndex !== MMDDList.length ? nextFestIndex : 0] as any).slice(0, 2) | 0,
|
||||||
|
// (MMDDList[nextFestIndex !== MMDDList.length ? nextFestIndex : 0] as any).slice(2) | 0,
|
||||||
|
// 8
|
||||||
|
// ).getTime();
|
||||||
|
// // 剩余天数
|
||||||
|
// const left = (next - newDate.getTime()) / 86400000 | 0;
|
||||||
|
// festDateHtml += `${ left }天后 - ${ nextFestDate.name }(<button title="${ nextFestDate.eff }">效果</button>)`;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// rt.push({
|
||||||
|
// domType: MENU_ITEM_TYPE.PLAIN,
|
||||||
|
// domHTML: festDateHtml,
|
||||||
|
// });
|
||||||
|
// // 活动
|
||||||
|
// let eventObj: EventWrapper = {
|
||||||
|
// onEv: false,
|
||||||
|
// daysLeft: Infinity,
|
||||||
|
// events: EVENTS.default,
|
||||||
|
// };
|
||||||
|
// rt.events = EVENTS.default;
|
||||||
|
// eventObj.events.forEach((obj, index) => {
|
||||||
|
// if (eventObj.onEv) return;
|
||||||
|
// // 当前年份
|
||||||
|
// const nowYear = date.getFullYear();
|
||||||
|
// // 当前遍历的活动开始时间
|
||||||
|
// const start = new Date(nowYear, obj.start[0], obj.start[1], obj.start[2]);
|
||||||
|
// // 当前遍历的活动结束时间
|
||||||
|
// const end = new Date(nowYear, obj.end[0], obj.end[1], obj.end[2]);
|
||||||
|
// // 当前处于活动中
|
||||||
|
// if (start < date && date < end) {
|
||||||
|
// eventObj.onEv = true;
|
||||||
|
// eventObj.daysLeft = (end.getTime() - date.getTime()) / 86400000 | 0;
|
||||||
|
// eventObj.current = obj;
|
||||||
|
// }
|
||||||
|
// // 当前没有活动
|
||||||
|
// else {
|
||||||
|
// // 当前遍历的活动如果已经经过了,那么下次活动就是遍历的下一个活动对象,否则为当前活动。
|
||||||
|
// // 如果本年度活动都经过了,那么下次活动是列表的第一个活动对象
|
||||||
|
// const next = end < date ? eventObj.events[index + 1] || eventObj.events[0] : obj;
|
||||||
|
// // 经过了最后一个活动所以下次活动开始时间是第二年
|
||||||
|
// const start = new Date(next !== obj && index === eventObj.events.length - 1 ? nowYear + 1 : nowYear, next.start[0], next.start[1], next.start[2]);
|
||||||
|
// const daysLeft = (start.getTime() - date.getTime()) / 86400000 | 0;
|
||||||
|
// if (0 <= daysLeft && daysLeft < eventObj.daysLeft) {
|
||||||
|
// eventObj.daysLeft = daysLeft;
|
||||||
|
// eventObj.next = next;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// eventObj.html = '<button>活动</button>: ';
|
||||||
|
// eventObj.onEv
|
||||||
|
// ? eventObj.html += `${ eventObj.current.name }(<button title="${ eventObj.current.eff }">详情</button>) - 剩余${ eventObj.daysLeft }天`
|
||||||
|
// : eventObj.html += `${ eventObj.daysLeft }天后 - ${ eventObj.next.name }(<button title="${ eventObj.next.eff }">详情</button>)`;
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'plain',
|
||||||
|
// domId: 'wh-trans-event-cont',
|
||||||
|
// domHTML: eventObj.html,
|
||||||
|
// });
|
||||||
|
// // 一键起飞
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-quick-fly-btn',
|
||||||
|
// domText: '✈️ 一键起飞',
|
||||||
|
// clickFunc: () => Container.factory(QuickFlyBtnHandler).handle(),
|
||||||
|
// });
|
||||||
|
// // 飞花库存
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-foreign-stock-btn',
|
||||||
|
// domText: '🌸 飞花库存',
|
||||||
|
// clickFunc: () => Container.factory(TravelItem).clickHandler().then(),
|
||||||
|
// });
|
||||||
|
// // NPC LOOT
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-npc-loot-btn',
|
||||||
|
// domText: '🔫 LOOT',
|
||||||
|
// clickFunc: () => {
|
||||||
|
// const insert = ZHONG_LOOT_HTML.replace('{{}}', performance.now().toString());
|
||||||
|
// new Popup(insert, 'NPC LOOT');
|
||||||
|
// },
|
||||||
|
// tip: '显示5个可击杀NPC的开打时间',
|
||||||
|
// });
|
||||||
|
// // 查看NNB
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-nnb-info',
|
||||||
|
// domText: '👮 查看NNB',
|
||||||
|
// clickFunc: () => this.nnb.handle(),
|
||||||
|
// });
|
||||||
|
// // 常用链接
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-link-collection',
|
||||||
|
// domText: '🔗 常用链接',
|
||||||
|
// clickFunc: () => Container.factory(QuickLinksHandler).handle()
|
||||||
|
// });
|
||||||
|
// // 飞贼
|
||||||
|
// // rt.push({
|
||||||
|
// // domType: 'button',
|
||||||
|
// // domId: 'wh-gs-btn',
|
||||||
|
// // domText: '🐏 飞贼小助手',
|
||||||
|
// // clickFunc: () => loadGS(CommonUtils.getScriptEngine()),
|
||||||
|
// // tip: '加载从PC端移植的伞佬的油猴版飞贼小助手',
|
||||||
|
// // });
|
||||||
|
//
|
||||||
|
// // 物品价格监视
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: 'wh-price-watcher-btn',
|
||||||
|
// domText: '💊 价格监视',
|
||||||
|
// clickFunc: () => this.itemPriceWatcherHandler.handle()
|
||||||
|
// });
|
||||||
|
// // 全屏
|
||||||
|
// if (!this.tornPDAUtils.isPDA()) rt.push({
|
||||||
|
// domType: 'button', domId: '', domText: '🖥️ 进入全屏', clickFunc() {
|
||||||
|
// document.documentElement.requestFullscreen().then();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// // 传单助手
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: '',
|
||||||
|
// domText: '📜️ 传单助手',
|
||||||
|
// clickFunc: adHelper
|
||||||
|
// });
|
||||||
|
// // 守望者
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: '',
|
||||||
|
// domText: '🛡️ 守望者',
|
||||||
|
// clickFunc: function () {
|
||||||
|
// safeKeeper();
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// // 寻找木桩
|
||||||
|
// rt.push({
|
||||||
|
// domType: 'button',
|
||||||
|
// domId: '',
|
||||||
|
// domText: '🌲 寻找木桩',
|
||||||
|
// clickFunc() {
|
||||||
|
// window.location.replace('https://www.torn.com/item.php?temp=4#xunzhaomuzhuang')
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// // 物品查价
|
||||||
|
// rt.push(ItemPriceHandler);
|
||||||
|
// // 更新历史
|
||||||
|
// rt.push(ChangeLogHandler);
|
||||||
|
// // 助手设置
|
||||||
|
// rt.push(SettingsHandler);
|
||||||
|
// // 测试
|
||||||
|
// if (this.logger.debug()) rt.push(Test);
|
||||||
|
// return rt;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,9 +44,9 @@ export default class LocalConfigWrapper {
|
|||||||
private get Local(): Config {
|
private get Local(): Config {
|
||||||
let config: Config;
|
let config: Config;
|
||||||
try {
|
try {
|
||||||
config = JSON.parse(localStorage.getItem('wh_trans_settings'))
|
config = JSON.parse(localStorage.getItem('wh_trans_settings')) ?? defaultConfig;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.logger.error('配置获取失败, 载入默认');
|
this.logger.error('配置解析失败, 载入默认');
|
||||||
config = defaultConfig;
|
config = defaultConfig;
|
||||||
localStorage.setItem('wh_trans_settings', JSON.stringify(defaultConfig));
|
localStorage.setItem('wh_trans_settings', JSON.stringify(defaultConfig));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,7 @@ export default function EntryPoint(T: { main: () => void }) {
|
|||||||
ZhongIcon.ZhongNode.initTimer.innerHTML = `加载时间 ${ runTime }ms`;
|
ZhongIcon.ZhongNode.initTimer.innerHTML = `加载时间 ${ runTime }ms`;
|
||||||
};
|
};
|
||||||
const evHandler = () => {
|
const evHandler = () => {
|
||||||
console.log('document.readyState: ' + document.readyState);
|
// console.log('document.readyState: ' + document.readyState);
|
||||||
if (!started && (document.readyState === 'complete' || document.readyState === 'interactive')) {
|
if (!started && (document.readyState === 'complete' || document.readyState === 'interactive')) {
|
||||||
document.removeEventListener('readystatechange', evHandler);
|
document.removeEventListener('readystatechange', evHandler);
|
||||||
started = !started;
|
started = !started;
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import ClassName from "../../container/ClassName";
|
|||||||
import { Injectable } from "../../container/Injectable";
|
import { Injectable } from "../../container/Injectable";
|
||||||
import Alert from "./Alert";
|
import Alert from "./Alert";
|
||||||
import IWHNotify from "../../interface/IWHNotify";
|
import IWHNotify from "../../interface/IWHNotify";
|
||||||
|
import { InjectionKey } from "vue";
|
||||||
|
|
||||||
@ClassName('MsgWrapper')
|
@ClassName('MsgWrapper')
|
||||||
@Injectable()
|
@Injectable()
|
||||||
@ -10,3 +11,5 @@ export default class MsgWrapper {
|
|||||||
return new Alert(msg, options);
|
return new Alert(msg, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const MsgWrapperKey = Symbol('MsgWrapperKey') as InjectionKey<MsgWrapper>;
|
||||||
|
|||||||
14
src/ts/class/utils/PopupWrapper.ts
Normal file
14
src/ts/class/utils/PopupWrapper.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import ClassName from "../../container/ClassName";
|
||||||
|
import { Injectable } from "../../container/Injectable";
|
||||||
|
import Popup from "./Popup";
|
||||||
|
import { InjectionKey } from "vue";
|
||||||
|
|
||||||
|
@ClassName('PopupWrapper')
|
||||||
|
@Injectable()
|
||||||
|
export default class PopupWrapper {
|
||||||
|
public create(html: string, title: string, onClosing: () => unknown) {
|
||||||
|
return new Popup(html, title, onClosing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const PopupWrapperKey = Symbol('PopupWrapperKey') as InjectionKey<PopupWrapper>;
|
||||||
@ -13,4 +13,4 @@ export enum MENU_ITEM_TYPE {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// export
|
// export
|
||||||
export const menuItemList = Symbol() as InjectionKey<MenuItem[]>;
|
export const menuItemList = Symbol('menuItemList') as InjectionKey<MenuItem[]>;
|
||||||
|
|||||||
@ -1,13 +1,29 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { inject } from 'vue';
|
import { inject, ref } from 'vue';
|
||||||
import { LoggerKey, MenuItemListKey } from "../ts/class/IconHelper";
|
import { LoggerKey } from "../ts/class/IconHelper";
|
||||||
import globVars from "../ts/globVars";
|
import globVars from "../ts/globVars";
|
||||||
|
import Test from "./Test.vue";
|
||||||
|
import PopupWindow from "./PopupWindow.vue";
|
||||||
|
|
||||||
const logger = inject(LoggerKey);
|
const logger = inject(LoggerKey);
|
||||||
const menuItemList = inject(MenuItemListKey);
|
// const menuItemList = inject(MenuItemListKey);
|
||||||
|
const menuItemList = [];
|
||||||
const version = globVars.version;
|
const version = globVars.version;
|
||||||
|
|
||||||
const itemHandle = (id) => logger.info(id);
|
const itemHandle = (id) => logger.info(id);
|
||||||
|
const updateHandle = () => {
|
||||||
|
|
||||||
|
};
|
||||||
|
const currentPopupContent = ref({
|
||||||
|
has: false,
|
||||||
|
title: null,
|
||||||
|
content: null,
|
||||||
|
});
|
||||||
|
const menuClick = (id) => {
|
||||||
|
currentPopupContent.value.has = true;
|
||||||
|
currentPopupContent.value.title = 'test';
|
||||||
|
currentPopupContent.value.content = Test;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -18,10 +34,11 @@ const itemHandle = (id) => logger.info(id);
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<div><b>芜湖助手</b></div>
|
<div><b>芜湖助手</b></div>
|
||||||
<div id="itemList">
|
<div id="itemList">
|
||||||
<div v-for="item in menuItemList">
|
<!-- <div v-for="item in menuItemList">-->
|
||||||
<button v-if="item.domType === 'button'" @click="itemHandle(item.domId)">{{ item.domText }}</button>
|
<!-- <button v-if="item.domType === 'button'" @click="itemHandle(item.domId)">{{ item.domText }}</button>-->
|
||||||
<div v-if="item.domType === 'plain'" v-html="item.domHTML"></div>
|
<!-- <div v-if="item.domType === 'plain'" v-html="item.domHTML"></div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
|
<button @click="menuClick">菜单</button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p>当前版本: {{ version }}
|
<p>当前版本: {{ version }}
|
||||||
@ -32,68 +49,15 @@ const itemHandle = (id) => logger.info(id);
|
|||||||
<div><p id="loadTime"></p></div>
|
<div><p id="loadTime"></p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<PopupWindow v-if="currentPopupContent.has" title="{{ currentPopupContent.title }}">
|
||||||
|
<component :is="currentPopupContent.content"/>
|
||||||
|
</PopupWindow>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
// import "reflect-metadata";
|
export default {
|
||||||
// import Global from "../ts/class/Global";
|
name: 'FloatMenu',
|
||||||
// import { defineComponent, inject } from "vue";
|
};
|
||||||
// import Logger from "../ts/class/Logger";
|
|
||||||
// import MenuItem, { menuItemList } from "../ts/interface/MenuItem";
|
|
||||||
// import { global, logger } from "../ts/class/IconHelper";
|
|
||||||
// import { Component, Inject, Vue } from "vue-facing-decorator";
|
|
||||||
//
|
|
||||||
// // export default defineComponent({
|
|
||||||
// // export default {
|
|
||||||
// // // inject: ['_logger', '_global', '_menuItemList'],
|
|
||||||
// // inject: {
|
|
||||||
// // // _logger: {
|
|
||||||
// // // from: logger,
|
|
||||||
// // // default: {},
|
|
||||||
// // // },
|
|
||||||
// // // global: {
|
|
||||||
// // // from: global,
|
|
||||||
// // // },
|
|
||||||
// // _menuItemList: {
|
|
||||||
// // from: menuItemList,
|
|
||||||
// // }
|
|
||||||
// // },
|
|
||||||
// // name: "FloatMenu",
|
|
||||||
// // setup(props) {
|
|
||||||
// // },
|
|
||||||
// // data() {
|
|
||||||
// // return {
|
|
||||||
// // // @ts-ignore
|
|
||||||
// // // logger: this._logger,
|
|
||||||
// // // global: this._global as unknown as Global,
|
|
||||||
// // // menuItemList: this.menuItemList,
|
|
||||||
// // menuItemList: this._menuItemList,
|
|
||||||
// // // version: this.inject.global.version,
|
|
||||||
// // }
|
|
||||||
// // },
|
|
||||||
// // methods: {
|
|
||||||
// // itemHandle(id: string) {
|
|
||||||
// // // this.logger.info(id);
|
|
||||||
// // }
|
|
||||||
// // },
|
|
||||||
// // mounted() {
|
|
||||||
// // // @ts-ignore
|
|
||||||
// // console.warn('123123123', this.menuItemList)
|
|
||||||
// // console.warn('123123123', this._menuItemList)
|
|
||||||
// // }
|
|
||||||
// // }
|
|
||||||
// @Component({})
|
|
||||||
// export default class A extends Vue{
|
|
||||||
// @Inject
|
|
||||||
// readonly logger!:Logger;
|
|
||||||
// @Inject
|
|
||||||
// readonly menuItemList!:MenuItem[];
|
|
||||||
// @Inject
|
|
||||||
// readonly global!:Global;
|
|
||||||
//
|
|
||||||
// version = this.global.version;
|
|
||||||
// }
|
|
||||||
export default {};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
26
src/vue/PopupWindow.vue
Normal file
26
src/vue/PopupWindow.vue
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
defineProps(['title', 'html', 'temp']);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="popup-container">
|
||||||
|
<div class="border-round">
|
||||||
|
<div class="title-black top-round">
|
||||||
|
<p>{{ title || '芜湖助手' }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-round cont-gray scroll-area scrollbar-transparent">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
export default {
|
||||||
|
name: "PopupWindow"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
13
src/vue/Test.vue
Normal file
13
src/vue/Test.vue
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
<p>1</p>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Test"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user