mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-21 04:49:46 +08:00
🔧 更新配置,修正类型
This commit is contained in:
@@ -121,12 +121,13 @@
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"eslint-plugin-vue": "^10.6.2",
|
||||
"eslint-plugin-yml": "^1.19.1",
|
||||
"fs-extra": "^11.3.2",
|
||||
"fs-extra": "^11.3.3",
|
||||
"globals": "^16.5.0",
|
||||
"husky": "^9.1.7",
|
||||
"jsonc-eslint-parser": "^2.4.2",
|
||||
"lint-staged": "^16.2.7",
|
||||
"oxlint": "^1.33.0",
|
||||
"oxlint": "^1.34.0",
|
||||
"postcss-preset-env": "^10.5.0",
|
||||
"prettier": "3.7.4",
|
||||
"stylelint": "^16.26.1",
|
||||
"stylelint-config-idiomatic-order": "^10.0.0",
|
||||
|
||||
1076
pnpm-lock.yaml
generated
1076
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -51,7 +51,7 @@ type XmlTextParse = { name: string; icon?: string; text: string };
|
||||
const props = defineProps<ToArcBirthProps>();
|
||||
const visible = defineModel<boolean>();
|
||||
const showText = ref<boolean>(false);
|
||||
const buffer = shallowRef<Uint8Array | null>(null);
|
||||
const buffer = shallowRef<ArrayBuffer | null>(null);
|
||||
const textParse = shallowRef<Array<XmlTextParse>>([]);
|
||||
|
||||
onMounted(() => clearData());
|
||||
|
||||
@@ -57,7 +57,7 @@ const appStore = useAppStore();
|
||||
const props = defineProps<TpVodProps>();
|
||||
const coverUrl = ref<string>();
|
||||
const vodAspectRatio = ref<number>(16 / 9);
|
||||
const coverBuffer = shallowRef<Uint8Array | null>(null);
|
||||
const coverBuffer = shallowRef<ArrayBuffer | null>(null);
|
||||
const container = shallowRef<Artplayer | null>(null);
|
||||
|
||||
console.log("tpVod", props.data.insert.vod.id, toRaw(props.data).insert.vod);
|
||||
|
||||
@@ -80,7 +80,7 @@ const format = defineModel<string>("format", { default: "png" });
|
||||
|
||||
const bgMode = ref<number>(0); // 0: transparent, 1: black, 2: white
|
||||
const isOriSize = ref<boolean>(false);
|
||||
const buffer = shallowRef<Uint8Array | null>(null);
|
||||
const buffer = shallowRef<ArrayBuffer | null>(null);
|
||||
const oriLink = computed<string>(() => miniImgUrl());
|
||||
const showCopy = computed<boolean>(() => {
|
||||
// 只能显示 png/jpg/jpeg/webp 格式的复制按钮
|
||||
|
||||
@@ -18,15 +18,15 @@ import TGLogger from "./TGLogger.js";
|
||||
import { bytesToSize } from "./toolFunc.js";
|
||||
|
||||
/**
|
||||
* @description 保存图片-canvas
|
||||
* @since Beta v0.7.2
|
||||
* 保存图片-canvas
|
||||
* @since Beta v0.9.0
|
||||
* @param {Uint8Array} buffer - 图片数据
|
||||
* @param {string} filename - 文件名
|
||||
* @param {string} format - 文件格式
|
||||
* @returns {Promise<void>} 无返回值
|
||||
*/
|
||||
export async function saveCanvasImg(
|
||||
buffer: Uint8Array,
|
||||
buffer: ArrayBuffer,
|
||||
filename: string,
|
||||
format?: string,
|
||||
): Promise<void> {
|
||||
@@ -41,10 +41,11 @@ export async function saveCanvasImg(
|
||||
showSnackbar.cancel("未选择保存路径");
|
||||
return;
|
||||
}
|
||||
await writeFile(res, buffer);
|
||||
const bf = new Uint8Array(buffer);
|
||||
await writeFile(res, bf);
|
||||
const realName = res.split(sep()).pop();
|
||||
await TGLogger.Info(`[saveCanvasImg][${realName}] 已将图像保存到本地`);
|
||||
showSnackbar.success(`已将 ${realName} 保存到本地,大小为 ${bytesToSize(buffer.length)}`);
|
||||
showSnackbar.success(`已将 ${realName} 保存到本地,大小为 ${bytesToSize(bf.length)}`);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,14 +62,13 @@ export async function saveImgLocal(url: string): Promise<string> {
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 返回图片 buffer
|
||||
* @since Beta v0.5.0
|
||||
* 返回图片 buffer
|
||||
* @since Beta v0.9.0
|
||||
* @param {string} url - 图片链接
|
||||
* @returns {Promise<Uint8Array>} 图片 buffer
|
||||
*/
|
||||
export async function getImageBuffer(url: string): Promise<Uint8Array> {
|
||||
const res = await TGHttp<Uint8Array>(url, { method: "GET", isBlob: true });
|
||||
return new Uint8Array(res);
|
||||
export async function getImageBuffer(url: string): Promise<ArrayBuffer> {
|
||||
return await TGHttp<ArrayBuffer>(url, { method: "GET", isBlob: true });
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -126,41 +126,42 @@ export async function generateShareImg(
|
||||
return;
|
||||
}
|
||||
if (scrollable) element.style.maxHeight = maxHeight;
|
||||
const buffer = new Uint8Array(
|
||||
const bf = new Uint8Array(
|
||||
atob(canvasData.toDataURL("image/png").split(",")[1])
|
||||
.split("")
|
||||
.map((item) => item.charCodeAt(0)),
|
||||
);
|
||||
const size = buffer.length;
|
||||
const size = bf.length;
|
||||
const sizeStr = bytesToSize(size);
|
||||
await TGLogger.Info(`[generateShareImg][${fileName}] 图像大小为 ${sizeStr}`);
|
||||
const { shareDefaultFile } = storeToRefs(useAppStore());
|
||||
if (shareDefaultFile.value === 0) {
|
||||
await saveCanvasImg(buffer, fileName);
|
||||
await saveCanvasImg(bf.buffer, fileName);
|
||||
return;
|
||||
}
|
||||
if (typeof shareDefaultFile.value === "number" && size > shareDefaultFile.value * 1024 * 1024) {
|
||||
await saveCanvasImg(buffer, fileName);
|
||||
await saveCanvasImg(bf.buffer, fileName);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await copyToClipboard(buffer);
|
||||
await copyToClipboard(bf.buffer);
|
||||
showSnackbar.success(`已将 ${fileName} 复制到剪贴板,大小为 ${sizeStr}`);
|
||||
await TGLogger.Info(`[generateShareImg][${fileName}] 已将图像复制到剪贴板`);
|
||||
} catch (e) {
|
||||
await TGLogger.Error(`[generateShareImg][${fileName}] 复制到剪贴板失败 ${e}`);
|
||||
await saveCanvasImg(buffer, fileName);
|
||||
await saveCanvasImg(bf.buffer, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 复制到剪贴板
|
||||
* @since Beta v0.6.8
|
||||
* 复制到剪贴板
|
||||
* @since Beta v0.9.0
|
||||
* @param {Uint8Array} buffer - 图片数据
|
||||
* @returns {Promise<void>} 无返回值
|
||||
*/
|
||||
export async function copyToClipboard(buffer: Uint8Array): Promise<void> {
|
||||
const blob = new Blob([buffer], { type: "image/png" });
|
||||
export async function copyToClipboard(buffer: ArrayBuffer): Promise<void> {
|
||||
const bf = new Uint8Array(buffer);
|
||||
const blob = new Blob([bf], { type: "image/png" });
|
||||
const url = URL.createObjectURL(blob);
|
||||
// todo mac 会报错: https://bugs.webkit.org/show_bug.cgi?id=222262
|
||||
if (platform() === "macos") {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/**
|
||||
* @file vite.config.ts
|
||||
* @description vite 配置文件
|
||||
* @since Beta v0.7.7
|
||||
* vite 配置文件
|
||||
* @since Beta v0.9.0
|
||||
*/
|
||||
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import postcssPresetEnv from "postcss-preset-env";
|
||||
import { defineConfig } from "vite";
|
||||
import VueDevtools from "vite-plugin-vue-devtools";
|
||||
import vuetify from "vite-plugin-vuetify";
|
||||
@@ -40,6 +40,8 @@ export default defineConfig({
|
||||
hmr: host ? { protocol: "ws", host, port: 4001 } : undefined,
|
||||
watch: { ignored: ["**/src-tauri/**"] },
|
||||
},
|
||||
esbuild: { supported: { "top-level-await": true } },
|
||||
build: { chunkSizeWarningLimit: 8192 },
|
||||
css: {
|
||||
postcss: { plugins: [postcssPresetEnv({ stage: 1, features: { "color-function": true } })] },
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user