feat(Device): store screen size

This commit is contained in:
AkiChase 2024-04-16 22:18:42 +08:00
parent 3855814dce
commit 519f44282b
4 changed files with 33 additions and 7 deletions

View File

@ -36,4 +36,8 @@ import {
"sidebar header" "sidebar header"
"sidebar content"; "sidebar content";
} }
.n-scrollbar-content {
height: 100%;
}
</style> </style>

View File

@ -18,6 +18,7 @@ import {
} from "../invoke"; } from "../invoke";
import { import {
NH4, NH4,
NP,
NInputNumber, NInputNumber,
NButton, NButton,
NDataTable, NDataTable,
@ -37,6 +38,7 @@ import {
import { CloseCircle, InformationCircle } from "@vicons/ionicons5"; import { CloseCircle, InformationCircle } from "@vicons/ionicons5";
import { Refresh } from "@vicons/ionicons5"; import { Refresh } from "@vicons/ionicons5";
import { UnlistenFn, listen } from "@tauri-apps/api/event"; import { UnlistenFn, listen } from "@tauri-apps/api/event";
import { Store } from "@tauri-apps/plugin-store";
import { shutdown } from "../frontcommand/scrcpyMaskCmd"; import { shutdown } from "../frontcommand/scrcpyMaskCmd";
import { useGlobalStore } from "../store/global"; import { useGlobalStore } from "../store/global";
@ -46,11 +48,20 @@ const message = useMessage();
const port = ref(27183); const port = ref(27183);
const localStore = new Store("store.bin");
//#region listener //#region listener
const deviceWaitForMetadataTask: ((deviceName: string) => void)[] = []; const deviceWaitForMetadataTask: ((deviceName: string) => void)[] = [];
let unlisten: UnlistenFn | undefined; let unlisten: UnlistenFn | undefined;
onMounted(async () => { onMounted(async () => {
const screenSize: null | { sizeW: number; sizeH: number } =
await localStore.get("screenSize");
if (screenSize !== null) {
store.screenSizeW = screenSize.sizeW;
store.screenSizeH = screenSize.sizeH;
}
unlisten = await listen("device-reply", (event) => { unlisten = await listen("device-reply", (event) => {
try { try {
let payload = JSON.parse(event.payload as string); let payload = JSON.parse(event.payload as string);
@ -180,6 +191,12 @@ async function onMenuSelect(key: string) {
return; return;
} }
localStore.set("screenSize", {
sizeW: store.screenSizeW,
sizeH: store.screenSizeH,
});
message.info("屏幕尺寸已保存,正在启动控制服务");
let device = devices.value[rowIndex]; let device = devices.value[rowIndex];
let scid = ( let scid = (
@ -322,6 +339,7 @@ async function refreshDevices() {
color: var(--light-color); color: var(--light-color);
background-color: var(--bg-color); background-color: var(--bg-color);
padding: 0 20px; padding: 0 20px;
height: 100%;
} }
.controled-device-list { .controled-device-list {

View File

@ -2,6 +2,7 @@
import { onMounted, onUnmounted, ref } from "vue"; import { onMounted, onUnmounted, ref } from "vue";
import { import {
NH4, NH4,
NP,
NForm, NForm,
NGrid, NGrid,
NFormItemGi, NFormItemGi,
@ -206,6 +207,9 @@ onUnmounted(() => {
/> />
</NFormItemGi> </NFormItemGi>
</NGrid> </NGrid>
<NP
>提示蒙版尺寸与设备尺寸将用于坐标转换请保证尺寸的准确性</NP
>
</NForm> </NForm>
</div> </div>
</template> </template>

View File

@ -17,8 +17,8 @@ export const useGlobalStore = defineStore("counter", () => {
device: Device; device: Device;
} }
const screenSizeW: Ref<number> = ref(1280); const screenSizeW: Ref<number> = ref(0);
const screenSizeH: Ref<number> = ref(720); const screenSizeH: Ref<number> = ref(0);
const controledDevice: Ref<ControledDevice | null> = ref(null); const controledDevice: Ref<ControledDevice | null> = ref(null);