@gkd-kit/inspect 0.0.1730729867364 → 0.0.1730789815310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-Dcx52ONa.js → ActionCard.vue_vue_type_script_setup_true_lang-Yad311sm.js} +3 -3
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-Dcx52ONa.js.map → ActionCard.vue_vue_type_script_setup_true_lang-Yad311sm.js.map} +1 -1
- package/dist/assets/DevicePage-B7Mynu12.js +49 -0
- package/dist/assets/DevicePage-B7Mynu12.js.map +1 -0
- package/dist/assets/HomePage-Dzng7mEk.js +112 -0
- package/dist/assets/{HomePage--6wa2vUG.js.map → HomePage-Dzng7mEk.js.map} +1 -1
- package/dist/assets/ImportPage-CTT6PGaH.js +2 -0
- package/dist/assets/{ImportPage-BQvAE1e4.js.map → ImportPage-CTT6PGaH.js.map} +1 -1
- package/dist/assets/{SelectorPage-BDsz8HUW.js → SelectorPage-CH7oSUUP.js} +2 -2
- package/dist/assets/SelectorPage-CH7oSUUP.js.map +1 -0
- package/dist/assets/SnapshotPage-BXzXXMrI.js +277 -0
- package/dist/assets/SnapshotPage-BXzXXMrI.js.map +1 -0
- package/dist/assets/{TrackGraph-D9cgWv13.js → TrackGraph-c5qLkvfR.js} +2 -2
- package/dist/assets/{TrackGraph-D9cgWv13.js.map → TrackGraph-c5qLkvfR.js.map} +1 -1
- package/dist/assets/_404Page-BsfWElYN.js +2 -0
- package/dist/assets/_404Page-BsfWElYN.js.map +1 -0
- package/dist/assets/{dayjs.min-C-Y0bxZe.js → dayjs.min-fuNq3hPp.js} +3 -3
- package/dist/assets/{dayjs.min-C-Y0bxZe.js.map → dayjs.min-fuNq3hPp.js.map} +1 -1
- package/dist/assets/error-CLGC3xK1.js +15 -0
- package/dist/assets/{error-mWyMnVfx.js.map → error-CLGC3xK1.js.map} +1 -1
- package/dist/assets/{export-C5X44nfu.js → export-CW3joQHk.js} +4 -4
- package/dist/assets/{export-C5X44nfu.js.map → export-CW3joQHk.js.map} +1 -1
- package/dist/assets/{import-DqC4RbLB.js → import-BtZSrblG.js} +2 -2
- package/dist/assets/{import-DqC4RbLB.js.map → import-BtZSrblG.js.map} +1 -1
- package/dist/assets/{index-DiVh0waq.js → index-BeSQVonm.js} +71 -71
- package/dist/assets/{index-DiVh0waq.js.map → index-BeSQVonm.js.map} +1 -1
- package/dist/assets/{jszip.min-Bel2u7BJ.js → jszip.min-C31qozSD.js} +2 -2
- package/dist/assets/{jszip.min-Bel2u7BJ.js.map → jszip.min-C31qozSD.js.map} +1 -1
- package/dist/assets/{snapshot-Chp6UEWZ.js → snapshot-C--bHkkP.js} +3 -3
- package/dist/assets/{snapshot-Chp6UEWZ.js.map → snapshot-C--bHkkP.js.map} +1 -1
- package/dist/assets/{table-BVHCTNRV.js → table-CCA7JgD2.js} +2 -2
- package/dist/assets/{table-BVHCTNRV.js.map → table-CCA7JgD2.js.map} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/DevicePage-cF02Z2n_.js +0 -49
- package/dist/assets/DevicePage-cF02Z2n_.js.map +0 -1
- package/dist/assets/HomePage--6wa2vUG.js +0 -112
- package/dist/assets/ImportPage-BQvAE1e4.js +0 -2
- package/dist/assets/SelectorPage-BDsz8HUW.js.map +0 -1
- package/dist/assets/SnapshotPage-DOABDEkv.js +0 -277
- package/dist/assets/SnapshotPage-DOABDEkv.js.map +0 -1
- package/dist/assets/_404Page-_SifJTm7.js +0 -2
- package/dist/assets/_404Page-_SifJTm7.js.map +0 -1
- package/dist/assets/error-mWyMnVfx.js +0 -15
package/dist/index.html
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="zh">
|
|
3
3
|
<head>
|
|
4
|
-
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
4
|
+
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1730789815310/files/dist/assets/polyfills-5mw5RPb8.js"></script>
|
|
5
5
|
|
|
6
6
|
<meta charset="UTF-8" />
|
|
7
7
|
<link
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
13
13
|
<meta name="referrer" content="no-referrer" />
|
|
14
14
|
<title>GKD</title>
|
|
15
|
-
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
16
|
-
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
15
|
+
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1730789815310/files/dist/assets/index-BeSQVonm.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1730789815310/files/dist/assets/index-Ksp94Y0i.css">
|
|
17
17
|
</head>
|
|
18
18
|
|
|
19
19
|
<body>
|
package/package.json
CHANGED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import{A as S,aK as c,h as ie,B as le,aN as re,P as pe,D as ue,C as D,F as ce,G as E,H as J,J as o,K as r,L as s,M as O,I as u,O as $,V as de,W as me,aC as fe,S as H,U as k,_ as ge,T as ve,X as we}from"./index-DiVh0waq.js";import{e as he,a as L,b as R,p as ke}from"./snapshot-Chp6UEWZ.js";import{u as ye,f as Se,e as W,l as be}from"./error-mWyMnVfx.js";import{u as _e,_ as xe,a as Ce}from"./table-BVHCTNRV.js";import{u as z,z as Ne,_ as X,c as Ie,b as Pe,N as Re}from"./dayjs.min-C-Y0bxZe.js";const ze=G=>{const b=S(G),_=async(n,f={})=>{var B;if(!b.value)throw new Error("origin must exist");const C=new URL("/api/"+n,b.value);Object.entries(f.query||{}).forEach(([g,T])=>{T!==void 0&&C.searchParams.set(g,String(T))});const d=await he(C,f.init).catch(g=>{throw c.error("网络错误:/"+n),g});if(!d.ok)throw c.error("接口错误:/"+n+":"+d.status),d;if((B=d.headers.get("Content-Type"))!=null&&B.includes("application/json")){const g=await d.clone().json();if(g.__error)throw c.error(g.message),d}return d},a=async(...n)=>await(await _(...n)).json(),x=async(...n)=>await(await _(...n)).blob(),m=async(...n)=>await(await _(...n)).arrayBuffer();return{origin:b,api:{device:async()=>a("device"),snapshot:async n=>a("snapshot",{query:n}),screenshot:async n=>m("screenshot",{query:n}),captureSnapshot:async()=>a("captureSnapshot"),snapshots:async()=>a("snapshots"),updateSubsApps:async n=>x("updateSubsApps",{init:{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}}}),updateSubscription:async n=>x("updateSubscription",{init:{method:"POST",body:JSON.stringify({...n,id:-1,name:"内存订阅",version:0}),headers:{"Content-Type":"application/json"}}}),execSelector:async n=>a("execSelector",{init:{method:"POST",body:JSON.stringify({...n,value:n.selector}),headers:{"Content-Type":"application/json"}}})}}},Be={flex:"","gap-10px":"","flex-items-center":""},Te={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},Ue={flex:"","items-center":"","gap-24px":""},Ve={href:"/",flex:"","ml-12px":"",title:"首页"},Ae={"whitespace-nowrap":""},qe=ie({__name:"DevicePage",setup(G){const b=fe(),_=ye("新设备"),{api:a,origin:x}=ze(),m=Se("device_link",""),w=S(),n=z(async()=>{m.value&&(x.value=W(()=>new URL(m.value.trim()),()=>"非法设备地址").origin,m.value=x.value,w.value=await a.device())});le(async()=>{await re(500),pe(m.value)&&n.invoke()});const f=S([]);ue(async()=>{if(!w.value)return;_.value="已连接 "+w.value.manufacturer;const e=await a.snapshots();e.sort((t,p)=>p.id-t.id),f.value=e,I.value=""});const C=z(async()=>{const e=await a.captureSnapshot(),t=await a.screenshot({id:e.id});await L.setItem(e.id,e),await R.setItem(e.id,t),c.success("保存快照成功");const p=await a.snapshots();p.sort((h,P)=>P.id-h.id),f.value=p}),d=z(async()=>{const e=(await a.snapshots()).map(l=>l.id),t=new Set((await R.keys()).map(l=>parseInt(l))),p=e.filter(l=>!t.has(l));if(p.length==0){c.success("没有新记录可导入");return}let h=0;const P=ke(3);await Promise.all(p.map(l=>P(async()=>{const[A,q]=await Promise.all([a.snapshot({id:l}),a.screenshot({id:l})]);A.nodes&&(await Promise.all([L.setItem(l,A),R.setItem(l,q)]),h++)}))),c.success(`导入${h}条新记录`)}),{activityIdCol:B,appIdCol:g,appNameCol:T,ctimeCol:j,appVersionCodeCol:Q,appVersionNameCol:Y,resetColWidth:Z}=_e(),ee=e=>{e.columnKey==j.key&&(j.sortOrder=e.order)},K=Ne(async e=>{if(await L.hasItem(e.id)||await L.setItem(e.id,await a.snapshot({id:e.id})),!await R.hasItem(e.id)){const t=await a.screenshot({id:e.id});await R.setItem(e.id,t)}window.open(b.resolve({name:"snapshot",params:{snapshotId:e.id}}).href)},e=>e.id),te=[j,T,g,Q,Y,B,{key:"actions",title:"操作",fixed:"right",width:"120px",render(e){return o(X,{size:"small"},{default:()=>[o(H,{size:"small",loading:K.loading[e.id],onClick:()=>K.invoke(e)},{default:()=>[k("查看")]})]})}}],N=D({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:e=>{N.page=e},onUpdatePageSize:e=>{N.pageSize=e,N.page=1}});ce(N,Z);const U=S(!1),I=S(""),F=z(async()=>{const e=W(()=>be.parse(I.value.trim()));if(e){if(e.categories||e.globalGroups||e.apps)await a.updateSubscription(e);else if(typeof e.id=="string")await a.updateSubscription({apps:[e]});else if(Array.isArray(e)&&typeof e[0].id=="string")await a.updateSubscription({apps:e});else if(typeof e.key=="number")await a.updateSubscription({globalGroups:[e]});else if(Array.isArray(e)&&typeof e[0].key=="number")await a.updateSubscription({globalGroups:e});else{c.error("无法识别的订阅文本");return}c.success("修改成功")}}),V=S(!1),se=[{label:"仅查询",value:void 0},{value:"click",label:"click"},{value:"clickNode",label:"clickNode"},{value:"clickCenter",label:"clickCenter"},{value:"back",label:"back"},{value:"longClick",label:"longClick"},{value:"longClickNode",label:"longClickNode"},{value:"longClickCenter",label:"longClickCenter"}],v=D({selector:"",action:"click",quickFind:!1}),M=z(async()=>{const e=await a.execSelector({...v,fastQuery:v.quickFind});if(e.message){c.success("操作成功:"+e.message);return}e.action?c.success((e.result?"操作成功:":"操作失败")+e.action):!e.action&&e.result&&c.success("查询成功")}),ne=`
|
|
2
|
-
请输入订阅文本(JSON5语法):
|
|
3
|
-
示例1-更新单个应用的规则:
|
|
4
|
-
{
|
|
5
|
-
id: 'appId',
|
|
6
|
-
groups: []
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
示例2-更新多个应用的规则:
|
|
10
|
-
[
|
|
11
|
-
{
|
|
12
|
-
id: 'appId1',
|
|
13
|
-
groups: []
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
id: 'appId2',
|
|
17
|
-
groups: []
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
示例3-更新全局规则(1.7.0):
|
|
22
|
-
{
|
|
23
|
-
name: '全局规则-1',
|
|
24
|
-
key: 0,
|
|
25
|
-
rules: []
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
示例3-更新多个全局规则(1.7.0):
|
|
29
|
-
[
|
|
30
|
-
{
|
|
31
|
-
name: '全局规则-1',
|
|
32
|
-
key: 0,
|
|
33
|
-
rules: []
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: '全局规则-2',
|
|
37
|
-
key: 1,
|
|
38
|
-
rules: []
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
示例4-更新整个订阅(1.7.0):
|
|
43
|
-
{
|
|
44
|
-
apps: [],
|
|
45
|
-
globalGroups: [],
|
|
46
|
-
categories: [],
|
|
47
|
-
}
|
|
48
|
-
`.trim();return(e,t)=>{const p=Pe,h=ge,P=we,l=X,A=Ce,q=Re,y=H,ae=Ie,oe=xe;return E(),J($,null,[o(h,{show:s(U),"onUpdate:show":t[1]||(t[1]=i=>O(U)?U.value=i:null),preset:"dialog",style:{width:"800px"},title:"修改内存订阅","positive-text":"确认",positiveButtonProps:{loading:s(F).loading,onClick(){s(F).invoke()}}},{default:r(()=>[o(p,{value:s(I),"onUpdate:value":t[0]||(t[0]=i=>O(I)?I.value=i:null),disabled:s(F).loading,type:"textarea",class:"gkd_code",autosize:{minRows:20,maxRows:25},placeholder:s(ne)},null,8,["value","disabled","placeholder"])]),_:1},8,["show","positiveButtonProps"]),o(h,{show:s(V),"onUpdate:show":t[5]||(t[5]=i=>O(V)?V.value=i:null),preset:"dialog",style:{width:"800px"},title:"执行选择器","positive-text":"确认",positiveButtonProps:{loading:s(M).loading,onClick(){s(M).invoke()}}},{default:r(()=>[o(p,{value:s(v).selector,"onUpdate:value":t[2]||(t[2]=i=>s(v).selector=i),disabled:s(M).loading,type:"textarea",class:"gkd_code",autosize:{minRows:4,maxRows:10},placeholder:"请输入合法的选择器"},null,8,["value","disabled"]),t[12]||(t[12]=u("div",{"h-15px":""},null,-1)),o(l,null,{default:r(()=>[o(P,{checked:s(v).quickFind,"onUpdate:checked":t[3]||(t[3]=i=>s(v).quickFind=i)},{default:r(()=>t[9]||(t[9]=[k(" 快速查找 ")])),_:1},8,["checked"]),t[10]||(t[10]=u("a",{href:"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind",target:"_blank",rel:"noopener noreferrer"}," 查找说明 ",-1))]),_:1}),t[13]||(t[13]=u("div",{"h-10px":""},null,-1)),u("div",Be,[o(A,{value:s(v).action,"onUpdate:value":t[4]||(t[4]=i=>s(v).action=i),options:se,class:"w-150px"},null,8,["value"]),t[11]||(t[11]=u("a",{href:"https://gkd.li/api/interfaces/RawRuleProps#action",target:"_blank",rel:"noopener noreferrer"}," 操作说明 ",-1))])]),_:1},8,["show","positiveButtonProps"]),u("div",Te,[u("div",Ue,[u("a",Ve,[o(y,{text:""},{icon:r(()=>[o(q,{size:24},{default:r(()=>t[14]||(t[14]=[u("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},[u("path",{d:"M16.612 2.214a1.01 1.01 0 0 0-1.242 0L1 13.419l1.243 1.572L4 13.621V26a2.004 2.004 0 0 0 2 2h20a2.004 2.004 0 0 0 2-2V13.63L29.757 15L31 13.428zM18 26h-4v-8h4zm2 0v-8a2.002 2.002 0 0 0-2-2h-4a2.002 2.002 0 0 0-2 2v8H6V12.062l10-7.79l10 7.8V26z",fill:"currentColor"})],-1)])),_:1})]),_:1})]),o(ae,null,{default:r(()=>[o(p,{value:s(m),"onUpdate:value":t[6]||(t[6]=i=>O(m)?m.value=i:null),placeholder:"请输入设备地址",style:{width:"200px"},onKeyup:ve(s(n).invoke,["enter"])},null,8,["value","onKeyup"]),o(y,{onClick:s(n).invoke,loading:s(n).loading},{default:r(()=>t[15]||(t[15]=[k(" 刷新连接 ")])),_:1},8,["onClick","loading"])]),_:1}),s(w)?(E(),J($,{key:0},[u("div",Ae,de(`已连接 ${s(w).manufacturer} Android ${s(w).release}`),1),o(y,{onClick:s(C).invoke,loading:s(C).loading},{default:r(()=>t[16]||(t[16]=[k(" 快照 ")])),_:1},8,["onClick","loading"]),o(y,{onClick:s(d).invoke,loading:s(d).loading},{default:r(()=>t[17]||(t[17]=[k(" 下载设备所有快照 ")])),_:1},8,["onClick","loading"]),o(y,{onClick:t[7]||(t[7]=i=>U.value=!0)},{default:r(()=>t[18]||(t[18]=[k(" 修改内存订阅 ")])),_:1}),o(y,{onClick:t[8]||(t[8]=i=>V.value=!0)},{default:r(()=>t[19]||(t[19]=[k(" 执行选择器 ")])),_:1})],64)):me("",!0)]),o(oe,{striped:"",flexHeight:"",data:s(f),columns:te,pagination:s(N),"onUpdate:sorter":ee,size:"small",class:"flex-1",scrollX:1200},null,8,["data","pagination"])])],64)}}});export{qe as default};
|
|
49
|
-
//# sourceMappingURL=DevicePage-cF02Z2n_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevicePage-cF02Z2n_.js","sources":["../../src/utils/api.ts","../../src/views/DevicePage.vue"],"sourcesContent":["import { message } from './discrete';\nimport { enhanceFetch } from './fetch';\nimport type { Device, RpcError, Snapshot } from './types';\n\ntype RpcOptions = {\n query?: Record<string, unknown>;\n init?: RequestInit;\n};\n\nexport const useDeviceApi = (initOrigin?: string) => {\n const origin = shallowRef(initOrigin);\n const rpc = async (rpcName: string, options: RpcOptions = {}) => {\n if (!origin.value) {\n throw new Error(`origin must exist`);\n }\n const u = new URL(`/api/` + rpcName, origin.value);\n Object.entries(options.query || {}).forEach(([key, value]) => {\n if (value === undefined) return;\n u.searchParams.set(key, String(value));\n });\n const response = await enhanceFetch(u, options.init).catch((e) => {\n message.error(`网络错误:/` + rpcName);\n throw e;\n });\n if (!response.ok) {\n message.error(`接口错误:/` + rpcName + `:` + response.status);\n throw response;\n }\n if (response.headers.get(`Content-Type`)?.includes(`application/json`)) {\n const error = (await response.clone().json()) as RpcError;\n if (error.__error) {\n message.error(error.message);\n throw response;\n }\n }\n return response;\n };\n const jsonRpc = async <T>(...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return (await response.json()) as T;\n };\n const blobRpc = async (...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return await response.blob();\n };\n const arrayBufferRpc = async (...args: Parameters<typeof rpc>) => {\n const response = await rpc(...args);\n return await response.arrayBuffer();\n };\n const api = {\n device: async () => jsonRpc<Device>(`device`),\n snapshot: async (query?: { id?: string | number }) => {\n return jsonRpc<Snapshot>(`snapshot`, { query });\n },\n screenshot: async (query: { id: string | number }) => {\n return arrayBufferRpc(`screenshot`, { query });\n },\n captureSnapshot: async () => {\n return jsonRpc<Snapshot>(`captureSnapshot`);\n },\n snapshots: async () => {\n return jsonRpc<Snapshot[]>(`snapshots`);\n },\n updateSubsApps: async (data: unknown[]) => {\n return blobRpc(`updateSubsApps`, {\n init: {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n });\n },\n updateSubscription: async (data: any) => {\n return blobRpc(`updateSubscription`, {\n init: {\n method: 'POST',\n body: JSON.stringify({\n ...data,\n id: -1,\n name: '内存订阅',\n version: 0,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n });\n },\n execSelector: async (data: {\n selector: string;\n action?: string;\n quickFind?: boolean;\n fastQuery?: boolean;\n }) => {\n return jsonRpc<{ message: string; action: string; result: boolean }>(\n `execSelector`,\n {\n init: {\n method: 'POST',\n // value 是旧版本的选择器\n body: JSON.stringify({ ...data, value: data.selector }),\n headers: {\n 'Content-Type': 'application/json',\n },\n },\n },\n );\n },\n };\n return { origin, api };\n};\n","<script setup lang=\"tsx\">\nimport { useDeviceApi } from '@/utils/api';\nimport { toValidURL } from '@/utils/check';\nimport { message } from '@/utils/discrete';\nimport { errorWrap } from '@/utils/error';\nimport { delay } from '@/utils/others';\nimport { screenshotStorage, snapshotStorage } from '@/utils/snapshot';\nimport { useSnapshotColumns } from '@/utils/table';\nimport { useBatchTask, useTask } from '@/utils/task';\nimport type { Device, Snapshot } from '@/utils/types';\nimport type { DataTableColumns, PaginationProps } from 'naive-ui';\nimport type { SortState } from 'naive-ui/es/data-table/src/interface';\nimport pLimit from 'p-limit';\n\nconst router = useRouter();\nconst title = useTitle(`新设备`);\nconst { api, origin } = useDeviceApi();\nconst link = useStorage(`device_link`, ``);\nconst device = shallowRef<Device>();\nconst connect = useTask(async () => {\n if (!link.value) return;\n origin.value = errorWrap(\n () => new URL(link.value.trim()),\n () => `非法设备地址`,\n ).origin;\n link.value = origin.value;\n device.value = await api.device();\n});\nonMounted(async () => {\n await delay(500);\n if (toValidURL(link.value)) {\n connect.invoke();\n }\n});\n\nconst snapshots = shallowRef<Snapshot[]>([]);\nwatchEffect(async () => {\n if (!device.value) return;\n title.value = `已连接 ` + device.value.manufacturer;\n const result = await api.snapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n subsText.value = '';\n});\n\nconst captureSnapshot = useTask(async () => {\n const snapshot = await api.captureSnapshot();\n const screenshot = await api.screenshot({ id: snapshot.id });\n await snapshotStorage.setItem(snapshot.id, snapshot);\n await screenshotStorage.setItem(snapshot.id, screenshot);\n message.success(`保存快照成功`);\n const result = await api.snapshots();\n result.sort((a, b) => b.id - a.id);\n snapshots.value = result;\n});\nconst downloadAllSnapshot = useTask(async () => {\n const snapshotIds = (await api.snapshots()).map((s) => s.id);\n const existSnapshotIds = new Set(\n (await screenshotStorage.keys()).map((s) => parseInt(s)),\n );\n const unimportSnapshotIds = snapshotIds.filter(\n (k) => !existSnapshotIds.has(k),\n );\n if (unimportSnapshotIds.length == 0) {\n message.success(`没有新记录可导入`);\n return;\n }\n let r = 0;\n const limit = pLimit(3);\n await Promise.all(\n unimportSnapshotIds.map((snapshotId) =>\n limit(async () => {\n const [newSnapshot, newScreenshot] = await Promise.all([\n api.snapshot({ id: snapshotId }),\n api.screenshot({ id: snapshotId }),\n ] as const);\n if (!newSnapshot.nodes) return;\n await Promise.all([\n snapshotStorage.setItem(snapshotId, newSnapshot),\n screenshotStorage.setItem(snapshotId, newScreenshot),\n ]);\n r++;\n }),\n ),\n );\n message.success(`导入${r}条新记录`);\n});\n\nconst {\n activityIdCol,\n appIdCol,\n appNameCol,\n ctimeCol,\n appVersionCodeCol,\n appVersionNameCol,\n resetColWidth,\n} = useSnapshotColumns();\nconst handleSorterChange = (sorter: SortState) => {\n if (sorter.columnKey == ctimeCol.key) {\n ctimeCol.sortOrder = sorter.order;\n }\n};\nconst previewSnapshot = useBatchTask(\n async (row: Snapshot) => {\n if (!(await snapshotStorage.hasItem(row.id))) {\n await snapshotStorage.setItem(row.id, await api.snapshot({ id: row.id }));\n }\n if (!(await screenshotStorage.hasItem(row.id))) {\n const bf = await api.screenshot({ id: row.id });\n await screenshotStorage.setItem(row.id, bf);\n }\n window.open(\n router.resolve({\n name: 'snapshot',\n params: { snapshotId: row.id },\n }).href,\n );\n },\n (r) => r.id,\n);\n\nconst columns: DataTableColumns<Snapshot> = [\n ctimeCol,\n appNameCol,\n appIdCol,\n appVersionCodeCol,\n appVersionNameCol,\n activityIdCol,\n {\n key: `actions`,\n title: `操作`,\n fixed: 'right',\n width: `120px`,\n render(row) {\n return (\n <NSpace size=\"small\">\n <NButton\n size=\"small\"\n loading={previewSnapshot.loading[row.id]}\n onClick={() => previewSnapshot.invoke(row)}\n >\n 查看\n </NButton>\n </NSpace>\n );\n },\n },\n];\n\nconst pagination = shallowReactive<PaginationProps>({\n page: 1,\n pageSize: 50,\n showSizePicker: true,\n pageSizes: [50, 100],\n onChange: (page: number) => {\n pagination.page = page;\n },\n onUpdatePageSize: (pageSize: number) => {\n pagination.pageSize = pageSize;\n pagination.page = 1;\n },\n});\nwatch(pagination, resetColWidth);\n\nconst showSubsModel = shallowRef(false);\nconst subsText = shallowRef(``);\nconst updateSubs = useTask(async () => {\n const data = errorWrap(() => JSON5.parse(subsText.value.trim()));\n if (!data) return;\n if (data.categories || data.globalGroups || data.apps) {\n await api.updateSubscription(data);\n } else if (typeof data.id == 'string') {\n await api.updateSubscription({\n apps: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].id == 'string') {\n await api.updateSubscription({\n apps: data,\n });\n } else if (typeof data.key == 'number') {\n await api.updateSubscription({\n globalGroups: [data],\n });\n } else if (Array.isArray(data) && typeof data[0].key == 'number') {\n await api.updateSubscription({\n globalGroups: data,\n });\n } else {\n message.error(`无法识别的订阅文本`);\n return;\n }\n message.success(`修改成功`);\n});\n\nconst showSelectorModel = shallowRef(false);\n\nconst actionOptions: {\n value?: string;\n label: string;\n}[] = [\n {\n label: '仅查询',\n value: undefined,\n },\n {\n value: 'click',\n label: 'click',\n },\n {\n value: 'clickNode',\n label: 'clickNode',\n },\n {\n value: 'clickCenter',\n label: 'clickCenter',\n },\n {\n value: 'back',\n label: 'back',\n },\n {\n value: 'longClick',\n label: 'longClick',\n },\n {\n value: 'longClickNode',\n label: 'longClickNode',\n },\n {\n value: 'longClickCenter',\n label: 'longClickCenter',\n },\n];\nconst clickAction = shallowReactive({\n selector: ``,\n action: 'click',\n quickFind: false,\n});\nconst execSelector = useTask(async () => {\n const result = await api.execSelector({\n ...clickAction,\n fastQuery: clickAction.quickFind,\n });\n if (result.message) {\n message.success(`操作成功:` + result.message);\n return;\n }\n if (result.action) {\n message.success((result.result ? `操作成功:` : `操作失败`) + result.action);\n } else if (!result.action && result.result) {\n message.success(`查询成功`);\n }\n});\n\nconst placeholder = `\n请输入订阅文本(JSON5语法):\n示例1-更新单个应用的规则:\n{\n id: 'appId',\n groups: []\n}\n\n示例2-更新多个应用的规则:\n[\n {\n id: 'appId1',\n groups: []\n },\n {\n id: 'appId2',\n groups: []\n }\n]\n\n示例3-更新全局规则(1.7.0):\n{\n name: '全局规则-1',\n key: 0,\n rules: []\n}\n\n示例3-更新多个全局规则(1.7.0):\n[\n {\n name: '全局规则-1',\n key: 0,\n rules: []\n },\n {\n name: '全局规则-2',\n key: 1,\n rules: []\n }\n]\n\n示例4-更新整个订阅(1.7.0):\n{\n apps: [],\n globalGroups: [],\n categories: [],\n}\n`.trim();\n</script>\n<template>\n <NModal\n v-model:show=\"showSubsModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"修改内存订阅\"\n positive-text=\"确认\"\n :positiveButtonProps=\"{\n loading: updateSubs.loading,\n onClick() {\n updateSubs.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"subsText\"\n :disabled=\"updateSubs.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 20,\n maxRows: 25,\n }\"\n :placeholder=\"placeholder\"\n />\n </NModal>\n <NModal\n v-model:show=\"showSelectorModel\"\n preset=\"dialog\"\n style=\"width: 800px\"\n title=\"执行选择器\"\n positive-text=\"确认\"\n :positiveButtonProps=\"{\n loading: execSelector.loading,\n onClick() {\n execSelector.invoke();\n },\n }\"\n >\n <NInput\n v-model:value=\"clickAction.selector\"\n :disabled=\"execSelector.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{\n minRows: 4,\n maxRows: 10,\n }\"\n placeholder=\"请输入合法的选择器\"\n />\n <div h-15px></div>\n <NSpace>\n <NCheckbox v-model:checked=\"clickAction.quickFind\"> 快速查找 </NCheckbox>\n <a\n href=\"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 查找说明\n </a>\n </NSpace>\n <div h-10px></div>\n <div flex gap-10px flex-items-center>\n <NSelect\n v-model:value=\"clickAction.action\"\n :options=\"actionOptions\"\n class=\"w-150px\"\n />\n <a\n href=\"https://gkd.li/api/interfaces/RawRuleProps#action\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 操作说明\n </a>\n </div>\n </NModal>\n <div flex flex-col p-10px gap-10px h-full>\n <div flex items-center gap-24px>\n <a href=\"/\" flex ml-12px title=\"首页\">\n <NButton text>\n <template #icon>\n <NIcon :size=\"24\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 32 32\"\n >\n <path\n d=\"M16.612 2.214a1.01 1.01 0 0 0-1.242 0L1 13.419l1.243 1.572L4 13.621V26a2.004 2.004 0 0 0 2 2h20a2.004 2.004 0 0 0 2-2V13.63L29.757 15L31 13.428zM18 26h-4v-8h4zm2 0v-8a2.002 2.002 0 0 0-2-2h-4a2.002 2.002 0 0 0-2 2v8H6V12.062l10-7.79l10 7.8V26z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </NIcon>\n </template>\n </NButton>\n </a>\n <NInputGroup>\n <NInput\n v-model:value=\"link\"\n placeholder=\"请输入设备地址\"\n :style=\"{ width: `200px` }\"\n @keyup.enter=\"connect.invoke\"\n ></NInput>\n <NButton @click=\"connect.invoke\" :loading=\"connect.loading\">\n 刷新连接\n </NButton>\n </NInputGroup>\n <template v-if=\"device\">\n <div whitespace-nowrap>\n {{ `已连接 ${device.manufacturer} Android ${device.release}` }}\n </div>\n <NButton\n @click=\"captureSnapshot.invoke\"\n :loading=\"captureSnapshot.loading\"\n >\n 快照\n </NButton>\n <NButton\n @click=\"downloadAllSnapshot.invoke\"\n :loading=\"downloadAllSnapshot.loading\"\n >\n 下载设备所有快照\n </NButton>\n <NButton @click=\"showSubsModel = true\"> 修改内存订阅 </NButton>\n <NButton @click=\"showSelectorModel = true\"> 执行选择器 </NButton>\n </template>\n </div>\n <NDataTable\n striped\n flexHeight\n :data=\"snapshots\"\n :columns=\"columns\"\n :pagination=\"pagination\"\n @update:sorter=\"handleSorterChange\"\n size=\"small\"\n class=\"flex-1\"\n :scrollX=\"1200\"\n />\n </div>\n</template>\n"],"names":["useDeviceApi","initOrigin","origin","shallowRef","rpc","rpcName","options","u","key","value","response","enhanceFetch","e","message","_a","error","jsonRpc","args","blobRpc","arrayBufferRpc","query","data","router","useRouter","title","useTitle","api","link","useStorage","device","connect","useTask","errorWrap","URL","trim","onMounted","delay","toValidURL","invoke","snapshots","watchEffect","manufacturer","result","sort","a","b","id","subsText","captureSnapshot","snapshot","screenshot","snapshotStorage","setItem","screenshotStorage","success","downloadAllSnapshot","snapshotIds","map","s","existSnapshotIds","Set","keys","parseInt","unimportSnapshotIds","filter","k","has","length","r","limit","pLimit","Promise","all","snapshotId","newSnapshot","newScreenshot","nodes","activityIdCol","appIdCol","appNameCol","ctimeCol","appVersionCodeCol","appVersionNameCol","resetColWidth","useSnapshotColumns","handleSorterChange","sorter","columnKey","sortOrder","order","previewSnapshot","useBatchTask","row","hasItem","bf","window","open","resolve","name","params","href","columns","fixed","width","render","_createVNode2","_resolveComponent2","default","loading","onClick","_createTextVNode2","pagination","shallowReactive","page","pageSize","showSizePicker","pageSizes","onChange","onUpdatePageSize","watch","showSubsModel","updateSubs","JSON5","parse","categories","globalGroups","apps","updateSubscription","Array","isArray","showSelectorModel","actionOptions","label","undefined","clickAction","selector","action","quickFind","execSelector","fastQuery","placeholder"],"mappings":"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"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import{d as ze,c as Be,a as pe,b as r,i as ge,e as le,f as V,g as ve,h as _e,u as Re,j as Se,k as $e,r as se,t as Ve,l as Me,m as J,n as H,p as re,o as M,q as Ie,s as ce,v as w,w as L,N as Ne,x as Te,y as de,z as Ue,A as Z,B as We,C as fe,D as ue,E as Pe,F as Fe,G as me,H as we,I as c,J as o,K as i,L as n,M as he,O as be,P as De,Q as He,R as Le,S as Ke,_ as Oe,T as qe,U as C,V as Ae,W as Qe,X as Ze}from"./index-DiVh0waq.js";import{_ as Ee,w as xe,s as ke}from"./ActionCard.vue_vue_type_script_setup_true_lang-Dcx52ONa.js";import{b as je,a as Je,c as Xe,d as Ge}from"./export-C5X44nfu.js";import{i as Ye,a as et}from"./import-DqC4RbLB.js";import{g as ye,u as K,_ as tt,a as at,b as ot,N as nt,c as it}from"./dayjs.min-C-Y0bxZe.js";import{s as lt,a as Ce}from"./snapshot-Chp6UEWZ.js";import{u as st,_ as rt,r as ct}from"./table-BVHCTNRV.js";const dt={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};function ut(t){const{primaryColor:g,opacityDisabled:y,borderRadius:v,textColor3:h}=t;return Object.assign(Object.assign({},dt),{iconColor:h,textColor:"white",loadingColor:g,opacityDisabled:y,railColor:"rgba(0, 0, 0, .14)",railColorActive:g,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:v,railBorderRadiusMedium:v,railBorderRadiusLarge:v,buttonBorderRadiusSmall:v,buttonBorderRadiusMedium:v,buttonBorderRadiusLarge:v,boxShadowFocus:`0 0 0 2px ${Be(g,{alpha:.2})}`})}const ht={name:"Switch",common:ze,self:ut},pt=pe("switch",`
|
|
2
|
-
height: var(--n-height);
|
|
3
|
-
min-width: var(--n-width);
|
|
4
|
-
vertical-align: middle;
|
|
5
|
-
user-select: none;
|
|
6
|
-
-webkit-user-select: none;
|
|
7
|
-
display: inline-flex;
|
|
8
|
-
outline: none;
|
|
9
|
-
justify-content: center;
|
|
10
|
-
align-items: center;
|
|
11
|
-
`,[r("children-placeholder",`
|
|
12
|
-
height: var(--n-rail-height);
|
|
13
|
-
display: flex;
|
|
14
|
-
flex-direction: column;
|
|
15
|
-
overflow: hidden;
|
|
16
|
-
pointer-events: none;
|
|
17
|
-
visibility: hidden;
|
|
18
|
-
`),r("rail-placeholder",`
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-wrap: none;
|
|
21
|
-
`),r("button-placeholder",`
|
|
22
|
-
width: calc(1.75 * var(--n-rail-height));
|
|
23
|
-
height: var(--n-rail-height);
|
|
24
|
-
`),pe("base-loading",`
|
|
25
|
-
position: absolute;
|
|
26
|
-
top: 50%;
|
|
27
|
-
left: 50%;
|
|
28
|
-
transform: translateX(-50%) translateY(-50%);
|
|
29
|
-
font-size: calc(var(--n-button-width) - 4px);
|
|
30
|
-
color: var(--n-loading-color);
|
|
31
|
-
transition: color .3s var(--n-bezier);
|
|
32
|
-
`,[ge({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),r("checked, unchecked",`
|
|
33
|
-
transition: color .3s var(--n-bezier);
|
|
34
|
-
color: var(--n-text-color);
|
|
35
|
-
box-sizing: border-box;
|
|
36
|
-
position: absolute;
|
|
37
|
-
white-space: nowrap;
|
|
38
|
-
top: 0;
|
|
39
|
-
bottom: 0;
|
|
40
|
-
display: flex;
|
|
41
|
-
align-items: center;
|
|
42
|
-
line-height: 1;
|
|
43
|
-
`),r("checked",`
|
|
44
|
-
right: 0;
|
|
45
|
-
padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));
|
|
46
|
-
`),r("unchecked",`
|
|
47
|
-
left: 0;
|
|
48
|
-
justify-content: flex-end;
|
|
49
|
-
padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));
|
|
50
|
-
`),le("&:focus",[r("rail",`
|
|
51
|
-
box-shadow: var(--n-box-shadow-focus);
|
|
52
|
-
`)]),V("round",[r("rail","border-radius: calc(var(--n-rail-height) / 2);",[r("button","border-radius: calc(var(--n-button-height) / 2);")])]),ve("disabled",[ve("icon",[V("rubber-band",[V("pressed",[r("rail",[r("button","max-width: var(--n-button-width-pressed);")])]),r("rail",[le("&:active",[r("button","max-width: var(--n-button-width-pressed);")])]),V("active",[V("pressed",[r("rail",[r("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),r("rail",[le("&:active",[r("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),V("active",[r("rail",[r("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),r("rail",`
|
|
53
|
-
overflow: hidden;
|
|
54
|
-
height: var(--n-rail-height);
|
|
55
|
-
min-width: var(--n-rail-width);
|
|
56
|
-
border-radius: var(--n-rail-border-radius);
|
|
57
|
-
cursor: pointer;
|
|
58
|
-
position: relative;
|
|
59
|
-
transition:
|
|
60
|
-
opacity .3s var(--n-bezier),
|
|
61
|
-
background .3s var(--n-bezier),
|
|
62
|
-
box-shadow .3s var(--n-bezier);
|
|
63
|
-
background-color: var(--n-rail-color);
|
|
64
|
-
`,[r("button-icon",`
|
|
65
|
-
color: var(--n-icon-color);
|
|
66
|
-
transition: color .3s var(--n-bezier);
|
|
67
|
-
font-size: calc(var(--n-button-height) - 4px);
|
|
68
|
-
position: absolute;
|
|
69
|
-
left: 0;
|
|
70
|
-
right: 0;
|
|
71
|
-
top: 0;
|
|
72
|
-
bottom: 0;
|
|
73
|
-
display: flex;
|
|
74
|
-
justify-content: center;
|
|
75
|
-
align-items: center;
|
|
76
|
-
line-height: 1;
|
|
77
|
-
`,[ge()]),r("button",`
|
|
78
|
-
align-items: center;
|
|
79
|
-
top: var(--n-offset);
|
|
80
|
-
left: var(--n-offset);
|
|
81
|
-
height: var(--n-button-height);
|
|
82
|
-
width: var(--n-button-width-pressed);
|
|
83
|
-
max-width: var(--n-button-width);
|
|
84
|
-
border-radius: var(--n-button-border-radius);
|
|
85
|
-
background-color: var(--n-button-color);
|
|
86
|
-
box-shadow: var(--n-button-box-shadow);
|
|
87
|
-
box-sizing: border-box;
|
|
88
|
-
cursor: inherit;
|
|
89
|
-
content: "";
|
|
90
|
-
position: absolute;
|
|
91
|
-
transition:
|
|
92
|
-
background-color .3s var(--n-bezier),
|
|
93
|
-
left .3s var(--n-bezier),
|
|
94
|
-
opacity .3s var(--n-bezier),
|
|
95
|
-
max-width .3s var(--n-bezier),
|
|
96
|
-
box-shadow .3s var(--n-bezier);
|
|
97
|
-
`)]),V("active",[r("rail","background-color: var(--n-rail-color-active);")]),V("loading",[r("rail",`
|
|
98
|
-
cursor: wait;
|
|
99
|
-
`)]),V("disabled",[r("rail",`
|
|
100
|
-
cursor: not-allowed;
|
|
101
|
-
opacity: .5;
|
|
102
|
-
`)])]),gt=Object.assign(Object.assign({},Se.props),{size:{type:String,default:"medium"},value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},onChange:[Function,Array]});let j;const vt=_e({name:"Switch",props:gt,setup(t){j===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?j=CSS.supports("width","max(1px)"):j=!1:j=!0);const{mergedClsPrefixRef:g,inlineThemeDisabled:y}=Re(t),v=Se("Switch","-switch",pt,ht,t,g),h=$e(t),{mergedSizeRef:f,mergedDisabledRef:x}=h,I=se(t.defaultValue),N=Ve(t,"value"),z=Me(N,I),B=J(()=>z.value===t.checkedValue),R=se(!1),d=se(!1),k=J(()=>{const{railStyle:l}=t;if(l)return l({focused:d.value,checked:B.value})});function _(l){const{"onUpdate:value":q,onChange:P,onUpdateValue:F}=t,{nTriggerFormInput:A,nTriggerFormChange:Q}=h;q&&de(q,l),F&&de(F,l),P&&de(P,l),I.value=l,A(),Q()}function Y(){const{nTriggerFormFocus:l}=h;l()}function ee(){const{nTriggerFormBlur:l}=h;l()}function te(){t.loading||x.value||(z.value!==t.checkedValue?_(t.checkedValue):_(t.uncheckedValue))}function T(){d.value=!0,Y()}function ae(){d.value=!1,ee(),R.value=!1}function O(l){t.loading||x.value||l.key===" "&&(z.value!==t.checkedValue?_(t.checkedValue):_(t.uncheckedValue),R.value=!1)}function U(l){t.loading||x.value||l.key===" "&&(l.preventDefault(),R.value=!0)}const W=J(()=>{const{value:l}=f,{self:{opacityDisabled:q,railColor:P,railColorActive:F,buttonBoxShadow:A,buttonColor:Q,boxShadowFocus:D,loadingColor:a,textColor:e,iconColor:S,[H("buttonHeight",l)]:m,[H("buttonWidth",l)]:p,[H("buttonWidthPressed",l)]:oe,[H("railHeight",l)]:b,[H("railWidth",l)]:$,[H("railBorderRadius",l)]:ne,[H("buttonBorderRadius",l)]:X},common:{cubicBezierEaseInOut:G}}=v.value;let E,s,ie;return j?(E=`calc((${b} - ${m}) / 2)`,s=`max(${b}, ${m})`,ie=`max(${$}, calc(${$} + ${m} - ${b}))`):(E=re((M(b)-M(m))/2),s=re(Math.max(M(b),M(m))),ie=M(b)>M(m)?$:re(M($)+M(m)-M(b))),{"--n-bezier":G,"--n-button-border-radius":X,"--n-button-box-shadow":A,"--n-button-color":Q,"--n-button-width":p,"--n-button-width-pressed":oe,"--n-button-height":m,"--n-height":s,"--n-offset":E,"--n-opacity-disabled":q,"--n-rail-border-radius":ne,"--n-rail-color":P,"--n-rail-color-active":F,"--n-rail-height":b,"--n-rail-width":$,"--n-width":ie,"--n-box-shadow-focus":D,"--n-loading-color":a,"--n-text-color":e,"--n-icon-color":S}}),u=y?Ie("switch",J(()=>f.value[0]),W,t):void 0;return{handleClick:te,handleBlur:ae,handleFocus:T,handleKeyup:O,handleKeydown:U,mergedRailStyle:k,pressed:R,mergedClsPrefix:g,mergedValue:z,checked:B,mergedDisabled:x,cssVars:y?void 0:W,themeClass:u==null?void 0:u.themeClass,onRender:u==null?void 0:u.onRender}},render(){const{mergedClsPrefix:t,mergedDisabled:g,checked:y,mergedRailStyle:v,onRender:h,$slots:f}=this;h==null||h();const{checked:x,unchecked:I,icon:N,"checked-icon":z,"unchecked-icon":B}=f,R=!(ce(N)&&ce(z)&&ce(B));return w("div",{role:"switch","aria-checked":y,class:[`${t}-switch`,this.themeClass,R&&`${t}-switch--icon`,y&&`${t}-switch--active`,g&&`${t}-switch--disabled`,this.round&&`${t}-switch--round`,this.loading&&`${t}-switch--loading`,this.pressed&&`${t}-switch--pressed`,this.rubberBand&&`${t}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},w("div",{class:`${t}-switch__rail`,"aria-hidden":"true",style:v},L(x,d=>L(I,k=>d||k?w("div",{"aria-hidden":!0,class:`${t}-switch__children-placeholder`},w("div",{class:`${t}-switch__rail-placeholder`},w("div",{class:`${t}-switch__button-placeholder`}),d),w("div",{class:`${t}-switch__rail-placeholder`},w("div",{class:`${t}-switch__button-placeholder`}),k)):null)),w("div",{class:`${t}-switch__button`},L(N,d=>L(z,k=>L(B,_=>w(Ne,null,{default:()=>this.loading?w(Te,{key:"loading",clsPrefix:t,strokeWidth:20}):this.checked&&(k||d)?w("div",{class:`${t}-switch__button-icon`,key:k?"checked-icon":"icon"},k||d):!this.checked&&(_||d)?w("div",{class:`${t}-switch__button-icon`,key:_?"unchecked-icon":"icon"},_||d):null})))),L(x,d=>d&&w("div",{key:"checked",class:`${t}-switch__checked`},d)),L(I,d=>d&&w("div",{key:"unchecked",class:`${t}-switch__unchecked`},d)))))}}),ft={flex:"","flex-col":"","p-10px":"","gap-10px":"","h-full":""},mt={flex:""},wt={"h-full":"",flex:"","flex-items-center":""},bt={flex:"","gap-24px":"","items-center":"","pr-8px":""},xt={flex:"",href:"/device",title:"连接设备"},kt={flex:"",href:"https://github.com/gkd-kit/inspect",target:"_blank",rel:"noopener noreferrer"},yt={flex:"","gap-10px":""},Vt=_e({__name:"HomePage",setup(t){const g=Ue(),y=Z([]),v=Z(!0),h=async()=>{v.value=!0,y.value=(await lt.getAllItems()).reverse(),u.value=[],v.value=!1};We(h);const f=fe({query:"",actualQuery:"",updateQuery:()=>{f.actualQuery=f.query.trim(),u.value=[]}}),x=J(()=>{const a=f.actualQuery;return a?y.value.filter(e=>(ye(e).name||"").includes(a)||(e.appId||"").includes(a)||(e.activityId||"").includes(a)):y.value}),I=K(async()=>{await Ye(),await h()}),{activityIdCol:N,appIdCol:z,appNameCol:B,ctimeCol:R,mtimeCol:d,deviceCol:k,appVersionCodeCol:_,appVersionNameCol:Y,resetColWidth:ee}=st();ue(()=>{const a=x.value.reduce((e,S)=>(e.add(ct(S)),e),new Set);if(a.size<=1){k.filterOptions=void 0;return}k.filterOptions=[...a.values()].map(e=>({value:e,label:e}))}),ue(()=>{const a=x.value.reduce((e,S)=>(e.add(ye(S).name),e),new Set);if(a.size<=1){B.filterOptions=void 0;return}B.filterOptions=[...a.values()].map(e=>({value:e,label:e}))}),ue(()=>{const a=x.value.reduce((e,S)=>(e.add(S.activityId),e),new Set);if(a.size<=1){N.filterOptions=void 0;return}N.filterOptions=[...a.values()].map(e=>({value:e,label:e}))});const te=Pe([{type:"selection"},R,d,k,B,z,_,Y,N,{key:"actions",title:"操作",fixed:"right",width:"160px",render(a){return o(Ee,{snapshot:a,onDelete:h},null)}}]),T=fe({page:1,pageSize:50,showSizePicker:!0,pageSizes:[50,100],onChange:a=>{T.page=a},onUpdatePageSize:a=>{T.pageSize=a,T.page=1}});Fe(T,ee);const ae=a=>{[R,d].forEach(e=>{a.columnKey!=e.key?e.sortOrder=void 0:e.sortOrder=a.order})};d.sortOrder="descend";const O=Z(!1),U=Z(""),W=K(async()=>{const a=U.value.trim().split(`
|
|
103
|
-
`).map(e=>e.trim()).filter(e=>De(e));a.length!=0&&(await et(a),await h(),U.value="")}),u=Z([]),l=()=>Promise.all(u.value.map(a=>Ce.getItem(a))),q=K(async()=>{await new Promise((a,e)=>{He.warning({title:"删除",content:`是否批量删除 ${u.value.length} 个快照`,negativeText:"取消",positiveText:"确认",onClose:e,onEsc:e,onMaskClick:e,onNegativeClick:e,onPositiveClick:a})}),await Promise.all(u.value.map(a=>Ce.removeItem(a))),await h()}),P=K(async()=>{await je(await l())}),F=K(async()=>{await Je(await l())}),A=K(async()=>{await xe();const a=await Xe(await l());ke({content:a.map(e=>Le(e)).join(`
|
|
104
|
-
`)+`
|
|
105
|
-
`})}),Q=K(async()=>{await xe();const a=await Ge(await l());ke({content:a.map(e=>location.origin+"/i/"+e).join(`
|
|
106
|
-
`)+`
|
|
107
|
-
`})}),D=Z(!1);return(a,e)=>{const S=ot,m=nt,p=Ke,oe=it,b=tt,$=at,ne=rt,X=Oe,G=Ze,E=vt;return me(),we(be,null,[c("div",ft,[c("div",mt,[o(b,null,{default:i(()=>[o(oe,null,{default:i(()=>[o(S,{placeholder:"请输入应用名称/应用ID/界面ID",clearable:"",class:"min-w-320px",value:n(f).query,"onUpdate:value":e[0]||(e[0]=s=>n(f).query=s),onKeyup:qe(n(f).updateQuery,["enter"]),onChange:n(f).updateQuery},null,8,["value","onKeyup","onChange"]),o(p,{onClick:n(f).updateQuery},{icon:i(()=>[o(m,null,{default:i(()=>e[12]||(e[12]=[c("svg",{viewBox:"0 0 32 32"},[c("path",{d:"M29 27.586l-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29zM4 13a9 9 0 1 1 9 9a9.01 9.01 0 0 1-9-9z",fill:"currentColor"})],-1)])),_:1})]),_:1},8,["onClick"])]),_:1}),n(u).length?(me(),we(be,{key:0},[o($,null,{trigger:i(()=>[o(p,null,{default:i(()=>e[13]||(e[13]=[C(" 批量下载 ")])),_:1})]),default:i(()=>[o(b,{vertical:""},{default:i(()=>[o(p,{onClick:n(F).invoke,loading:n(F).loading},{default:i(()=>e[14]||(e[14]=[C(" 批量下载-快照 ")])),_:1},8,["onClick","loading"]),o(p,{onClick:n(P).invoke,loading:n(P).loading},{default:i(()=>e[15]||(e[15]=[C(" 批量下载-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),o($,null,{trigger:i(()=>[o(p,null,{default:i(()=>e[16]||(e[16]=[C(" 批量分享 ")])),_:1})]),default:i(()=>[o(b,{vertical:""},{default:i(()=>[o(p,{onClick:n(Q).invoke,loading:n(Q).loading},{default:i(()=>e[17]||(e[17]=[C(" 批量生成链接-快照 ")])),_:1},8,["onClick","loading"]),o(p,{onClick:n(A).invoke,loading:n(A).loading},{default:i(()=>e[18]||(e[18]=[C(" 批量生成链接-图片 ")])),_:1},8,["onClick","loading"])]),_:1})]),_:1}),o(p,{onClick:n(q).invoke},{default:i(()=>e[19]||(e[19]=[C(" 批量删除 ")])),_:1},8,["onClick"]),c("div",wt,Ae(`已选中 ${n(u).length} 个快照`),1)],64)):Qe("",!0)]),_:1}),e[26]||(e[26]=c("div",{"flex-1":""},null,-1)),c("div",bt,[o(p,{text:"",title:"设置",onClick:e[1]||(e[1]=s=>D.value=!0)},{icon:i(()=>[o(m,{size:24},{default:i(()=>e[20]||(e[20]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},[c("g",{fill:"currentColor","fill-rule":"evenodd","clip-rule":"evenodd"},[c("path",{d:"M12 8.25a3.75 3.75 0 1 0 0 7.5a3.75 3.75 0 0 0 0-7.5M9.75 12a2.25 2.25 0 1 1 4.5 0a2.25 2.25 0 0 1-4.5 0"}),c("path",{d:"M11.975 1.25c-.445 0-.816 0-1.12.02a2.8 2.8 0 0 0-.907.19a2.75 2.75 0 0 0-1.489 1.488c-.145.35-.184.72-.2 1.122a.87.87 0 0 1-.415.731a.87.87 0 0 1-.841-.005c-.356-.188-.696-.339-1.072-.389a2.75 2.75 0 0 0-2.033.545a2.8 2.8 0 0 0-.617.691c-.17.254-.356.575-.578.96l-.025.044c-.223.385-.408.706-.542.98c-.14.286-.25.568-.29.88a2.75 2.75 0 0 0 .544 2.033c.231.301.532.52.872.734a.87.87 0 0 1 .426.726a.87.87 0 0 1-.426.726c-.34.214-.64.433-.872.734a2.75 2.75 0 0 0-.545 2.033c.041.312.15.594.29.88c.135.274.32.595.543.98l.025.044c.222.385.408.706.578.96c.177.263.367.5.617.69a2.75 2.75 0 0 0 2.033.546c.376-.05.716-.2 1.072-.389a.87.87 0 0 1 .84-.005a.86.86 0 0 1 .417.731c.015.402.054.772.2 1.122a2.75 2.75 0 0 0 1.488 1.489c.29.12.59.167.907.188c.304.021.675.021 1.12.021h.05c.445 0 .816 0 1.12-.02c.318-.022.617-.069.907-.19a2.75 2.75 0 0 0 1.489-1.488c.145-.35.184-.72.2-1.122a.87.87 0 0 1 .415-.732a.87.87 0 0 1 .841.006c.356.188.696.339 1.072.388a2.75 2.75 0 0 0 2.033-.544c.25-.192.44-.428.617-.691c.17-.254.356-.575.578-.96l.025-.044c.223-.385.408-.706.542-.98c.14-.286.25-.569.29-.88a2.75 2.75 0 0 0-.544-2.033c-.231-.301-.532-.52-.872-.734a.87.87 0 0 1-.426-.726c0-.278.152-.554.426-.726c.34-.214.64-.433.872-.734a2.75 2.75 0 0 0 .545-2.033a2.8 2.8 0 0 0-.29-.88a18 18 0 0 0-.543-.98l-.025-.044a18 18 0 0 0-.578-.96a2.8 2.8 0 0 0-.617-.69a2.75 2.75 0 0 0-2.033-.546c-.376.05-.716.2-1.072.389a.87.87 0 0 1-.84.005a.87.87 0 0 1-.417-.731c-.015-.402-.054-.772-.2-1.122a2.75 2.75 0 0 0-1.488-1.489c-.29-.12-.59-.167-.907-.188c-.304-.021-.675-.021-1.12-.021zm-1.453 1.595c.077-.032.194-.061.435-.078c.247-.017.567-.017 1.043-.017s.796 0 1.043.017c.241.017.358.046.435.078c.307.127.55.37.677.677c.04.096.073.247.086.604c.03.792.439 1.555 1.165 1.974s1.591.392 2.292.022c.316-.167.463-.214.567-.227a1.25 1.25 0 0 1 .924.247c.066.051.15.138.285.338c.139.206.299.483.537.895s.397.69.506.912c.107.217.14.333.15.416a1.25 1.25 0 0 1-.247.924c-.064.083-.178.187-.48.377c-.672.422-1.128 1.158-1.128 1.996s.456 1.574 1.128 1.996c.302.19.416.294.48.377c.202.263.29.595.247.924c-.01.083-.044.2-.15.416c-.109.223-.268.5-.506.912s-.399.689-.537.895c-.135.2-.219.287-.285.338a1.25 1.25 0 0 1-.924.247c-.104-.013-.25-.06-.567-.227c-.7-.37-1.566-.398-2.292.021s-1.135 1.183-1.165 1.975c-.013.357-.046.508-.086.604a1.25 1.25 0 0 1-.677.677c-.077.032-.194.061-.435.078c-.247.017-.567.017-1.043.017s-.796 0-1.043-.017c-.241-.017-.358-.046-.435-.078a1.25 1.25 0 0 1-.677-.677c-.04-.096-.073-.247-.086-.604c-.03-.792-.439-1.555-1.165-1.974s-1.591-.392-2.292-.022c-.316.167-.463.214-.567.227a1.25 1.25 0 0 1-.924-.247c-.066-.051-.15-.138-.285-.338a17 17 0 0 1-.537-.895c-.238-.412-.397-.69-.506-.912c-.107-.217-.14-.333-.15-.416a1.25 1.25 0 0 1 .247-.924c.064-.083.178-.187.48-.377c.672-.422 1.128-1.158 1.128-1.996s-.456-1.574-1.128-1.996c-.302-.19-.416-.294-.48-.377a1.25 1.25 0 0 1-.247-.924c.01-.083.044-.2.15-.416c.109-.223.268-.5.506-.912s.399-.689.537-.895c.135-.2.219-.287.285-.338a1.25 1.25 0 0 1 .924-.247c.104.013.25.06.567.227c.7.37 1.566.398 2.292-.022c.726-.419 1.135-1.182 1.165-1.974c.013-.357.046-.508.086-.604c.127-.307.37-.55.677-.677"})])],-1)])),_:1})]),_:1}),o($,null,{trigger:i(()=>[o(p,{text:""},{icon:i(()=>[o(m,{size:24},{default:i(()=>e[21]||(e[21]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},[c("path",{fill:"currentColor",d:"M28 19H14.83l2.58-2.59L16 15l-5 5l5 5l1.41-1.41L14.83 21H28z"}),c("path",{fill:"currentColor",d:"M24 14v-4a1 1 0 0 0-.29-.71l-7-7A1 1 0 0 0 16 2H6a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2h-2v2H6V4h8v6a2 2 0 0 0 2 2h6v2Zm-8-4V4.41L21.59 10Z"})],-1)])),_:1})]),_:1})]),default:i(()=>[o(b,{vertical:""},{default:i(()=>[o(p,{onClick:n(I).invoke,loading:n(I).loading},{default:i(()=>e[22]||(e[22]=[C(" 导入本地文件 ")])),_:1},8,["onClick","loading"]),o(p,{onClick:e[2]||(e[2]=s=>O.value=!0),loading:n(W).loading},{default:i(()=>e[23]||(e[23]=[C(" 导入网络文件 ")])),_:1},8,["loading"])]),_:1})]),_:1}),c("a",xt,[o(p,{text:""},{icon:i(()=>[o(m,{size:24},{default:i(()=>e[24]||(e[24]=[c("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},[c("path",{fill:"currentColor",d:"M18.35 14.85L16.9 13.4q.3-.275.463-.637t.162-.763t-.162-.763t-.463-.637l1.45-1.45q.575.575.875 1.313t.3 1.537t-.3 1.538t-.875 1.312m2.45 2.45l-1.4-1.4q.775-.775 1.2-1.775T21.025 12T20.6 9.875T19.4 8.1l1.4-1.4q1.075 1.05 1.65 2.425T23.025 12t-.575 2.875T20.8 17.3M7 23q-.825 0-1.412-.587T5 21V3q0-.825.588-1.412T7 1h10q.825 0 1.413.588T19 3v4h-2V6H7v12h10v-1h2v4q0 .825-.587 1.413T17 23zm0-3v1h10v-1zM7 4h10V3H7zm0 0V3zm0 16v1z"})],-1)])),_:1})]),_:1})]),c("a",kt,[o(p,{text:""},{icon:i(()=>[o(m,{size:24},{default:i(()=>e[25]||(e[25]=[c("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 496 512"},[c("path",{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2z",fill:"currentColor"})],-1)])),_:1})]),_:1})])])]),o(ne,{striped:"",data:n(x),columns:n(te),scrollX:1800,pagination:n(T),checkedRowKeys:n(u),"onUpdate:checkedRowKeys":e[3]||(e[3]=s=>he(u)?u.value=s:null),rowKey:s=>s.id,"onUpdate:sorter":ae,size:"small",class:"flex-1",flexHeight:"",loading:n(v)},null,8,["data","columns","pagination","checkedRowKeys","rowKey","loading"])]),o(X,{show:n(O),"onUpdate:show":e[5]||(e[5]=s=>he(O)?O.value=s:null),preset:"dialog",title:"导入网络文件",showIcon:!1,positiveText:"确认",negativeText:"取消",style:{width:"800px"},onPositiveClick:n(W).invoke,loading:n(W).loading,onAfterLeave:e[6]||(e[6]=s=>U.value="")},{default:i(()=>[o(S,{value:n(U),"onUpdate:value":e[4]||(e[4]=s=>{n(W).loading||(U.value=s)}),type:"textarea",placeholder:`1.支持ZIP文件链接
|
|
108
|
-
2.支持快照链接
|
|
109
|
-
每行一个
|
|
110
|
-
空白行自动忽略
|
|
111
|
-
非法链接行自动忽略`,autosize:{minRows:8,maxRows:16},inputProps:{style:"white-space: nowrap;"}},null,8,["value"])]),_:1},8,["show","onPositiveClick","loading"]),o(X,{show:n(D),"onUpdate:show":e[10]||(e[10]=s=>he(D)?D.value=s:null),preset:"dialog",title:"设置",showIcon:!1,positiveText:"关闭",style:{width:"600px"},onPositiveClick:e[11]||(e[11]=s=>D.value=!1)},{default:i(()=>[o(G,{checked:n(g).ignoreUploadWarn,"onUpdate:checked":e[7]||(e[7]=s=>n(g).ignoreUploadWarn=s)},{default:i(()=>e[27]||(e[27]=[C(" 关闭生成分享链接弹窗提醒 ")])),_:1},8,["checked"]),e[30]||(e[30]=c("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),o(G,{checked:n(g).ignoreWasmWarn,"onUpdate:checked":e[8]||(e[8]=s=>n(g).ignoreWasmWarn=s)},{default:i(()=>e[28]||(e[28]=[C(" 关闭浏览器版本正则表达式 WASM(GC) 提醒 ")])),_:1},8,["checked"]),e[31]||(e[31]=c("div",{"h-1px":"","my-10px":"",bg:"#eee"},null,-1)),c("div",yt,[o(E,{value:n(g).autoUploadImport,"onUpdate:value":e[9]||(e[9]=s=>n(g).autoUploadImport=s)},null,8,["value"]),e[29]||(e[29]=c("div",null,"打开快照页面自动生成分享链接(请确保不含隐私)",-1))])]),_:1},8,["show"])],64)}}});export{Vt as default};
|
|
112
|
-
//# sourceMappingURL=HomePage--6wa2vUG.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as k,A as f,aU as y,B as v,aV as S,aK as B,aN as h,aD as V,aO as i,aW as N,G as g,H as w,L as l,U as I,I as x,W as U,a4 as R,a5 as b,V as q,aB as C,aC as D,aX as F}from"./index-DiVh0waq.js";import{i as L}from"./export-C5X44nfu.js";import{a as O,g as T}from"./snapshot-Chp6UEWZ.js";import{a as W}from"./import-DqC4RbLB.js";const A={class:"h-[calc(100%-10px)]",flex:"","gap-5px":"","pt-40px":"","flex-col":"","flex-items-center":""},E={key:0,"mb-20px":""},Q=k({__name:"ImportPage",setup(G){const p=C(),c=D(),u=f(!0),r=f("加载中..."),m=async s=>{c.replace({name:"snapshot",params:{snapshotId:s},query:F(p.query,["str","gkd"])})},n=String(p.query.url||""),e=y(n);return v(async()=>{var d;if(!S(n)){B.error("非法URL参数"),await h(1e3),c.replace({path:"/"});return}const{importSnapshotId:s,snapshotImportId:o,waitInit:_}=V();if(await _(),e){const t=s[e];if(t)if(await O.getItem(t)){m(t);return}else delete s[e]}i.start();try{const[t]=(d=await W(e?N(e):n))!=null?d:[];if(t.status=="fulfilled"){i.finish();const a=t.value;a!=null&&a.id?(e&&(L(e),s[e]=a.id,o[a.id]=e),u.value=!1,await h(500),m(a.id)):r.value="获取资源失败"}else throw t.reason}catch{i.error(),r.value="加载资源失败"}}),(s,o)=>(g(),w("div",A,[l(T)()?U("",!0):(g(),w("div",E,o[0]||(o[0]=[I(" 建议安装并启用 "),x("a",{href:"https://github.com/gkd-kit/network-extension",target:"_blank",rel:"noopener noreferrer"}," 油猴脚本 ",-1),I(" 获取更快加载速度 ")]))),R(x("div",null,q(l(r)),513),[[b,l(u)]])]))}});export{Q as default};
|
|
2
|
-
//# sourceMappingURL=ImportPage-BQvAE1e4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectorPage-BDsz8HUW.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|