support tags-translate, search result open in right
parent
916bf448dd
commit
50716ba997
|
|
@ -2,3 +2,4 @@ BaiduPCS-Go*
|
|||
*.log
|
||||
__pycache__
|
||||
iib.db
|
||||
tags-translate.csv
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite App</title>
|
||||
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-c8cb069d.js"></script>
|
||||
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-f62089c0.css">
|
||||
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-935c2795.js"></script>
|
||||
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-9ee28aec.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from sqlite3 import Connection, connect
|
||||
from typing import Dict, List, Optional
|
||||
from scripts.tool import cwd, get_modified_date, human_readable_size
|
||||
from scripts.tool import cwd, get_modified_date, human_readable_size, tags_translate
|
||||
from contextlib import closing
|
||||
import os
|
||||
|
||||
|
|
@ -122,6 +122,7 @@ class Tag:
|
|||
self.type = type
|
||||
self.count = count
|
||||
self.id = None
|
||||
self.display_name = tags_translate.get(name)
|
||||
|
||||
def save(self, conn):
|
||||
with closing(conn.cursor()) as cur:
|
||||
|
|
@ -139,9 +140,7 @@ class Tag:
|
|||
if row is None:
|
||||
return None
|
||||
else:
|
||||
tag = cls(name=row[1], score=row[2], type=row[3], count=row[4])
|
||||
tag.id = row[0]
|
||||
return tag
|
||||
return cls.from_row(row)
|
||||
|
||||
@classmethod
|
||||
def get_all(cls, conn):
|
||||
|
|
@ -150,9 +149,7 @@ class Tag:
|
|||
rows = cur.fetchall()
|
||||
tags: list[Tag] = []
|
||||
for row in rows:
|
||||
tag = cls(name=row[1], score=row[2], type=row[3], count=row[4])
|
||||
tag.id = row[0]
|
||||
tags.append(tag)
|
||||
tags.append(cls.from_row(row))
|
||||
return tags
|
||||
|
||||
@classmethod
|
||||
|
|
@ -165,9 +162,13 @@ class Tag:
|
|||
tag.save(conn)
|
||||
return tag
|
||||
else:
|
||||
tag = cls(name=row[1], score=row[2], type=row[3], count=row[4])
|
||||
tag.id = row[0]
|
||||
return tag
|
||||
return cls.from_row(row)
|
||||
|
||||
@classmethod
|
||||
def from_row(cls, row: tuple):
|
||||
tag = cls(name=row[1], score=row[2], type=row[3], count=row[4])
|
||||
tag.id = row[0]
|
||||
return tag
|
||||
|
||||
@classmethod
|
||||
def create_table(cls, conn):
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import platform
|
|||
import re
|
||||
import tempfile
|
||||
import imghdr
|
||||
from typing import Dict
|
||||
|
||||
|
||||
|
||||
|
|
@ -224,3 +225,14 @@ def parse_generation_parameters(x: str):
|
|||
lora.append({ "name": model, "value": float(value) })
|
||||
return res, unique_by(lora, lambda x:x['name']), unique_by(pos_prompt, lambda x:x), unique_by(neg_prompt, lambda x:x)
|
||||
|
||||
|
||||
tags_translate: Dict[str, str] = {}
|
||||
try:
|
||||
import codecs
|
||||
with codecs.open(os.path.join(cwd, 'tags-translate.csv'), "r", "utf-8") as tag:
|
||||
tags_translate_str = tag.read()
|
||||
for line in tags_translate_str.splitlines():
|
||||
en,mapping = line.split(',')
|
||||
tags_translate[en.strip()] = mapping.strip()
|
||||
except Exception as e:
|
||||
print(f"Error reading tags-translate.csv: {e}")
|
||||
|
|
@ -1 +1 @@
|
|||
import{B as s}from"./button-412d5753.js";import{d as g,u as O,G as C,_ as u,a as m,a3 as y,D as h}from"./index-c8cb069d.js";import{_ as E,a as _}from"./styleChecker-8445ad43.js";var z=E(function e(t){_(this,e),this.error=new Error("unreachable case: ".concat(JSON.stringify(t)))}),P=function(){return{prefixCls:String,size:{type:String}}};const l=g({compatConfig:{MODE:3},name:"AButtonGroup",props:P(),setup:function(t,n){var a=n.slots,o=O("btn-group",t),i=o.prefixCls,v=o.direction,b=C(function(){var r,p=t.size,c="";switch(p){case"large":c="lg";break;case"small":c="sm";break;case"middle":case void 0:break;default:console.warn(new z(p).error)}return r={},u(r,"".concat(i.value),!0),u(r,"".concat(i.value,"-").concat(c),c),u(r,"".concat(i.value,"-rtl"),v.value==="rtl"),r});return function(){var r;return m("div",{class:b.value},[y((r=a.default)===null||r===void 0?void 0:r.call(a))])}}});s.Group=l;s.install=function(e){return e.component(s.name,s),e.component(l.name,l),e};var w={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"};const x=w;function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?Object(arguments[t]):{},a=Object.keys(n);typeof Object.getOwnPropertySymbols=="function"&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable}))),a.forEach(function(o){S(e,o,n[o])})}return e}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=function(t,n){var a=d({},t,n.attrs);return m(h,d({},a,{icon:x}),null)};f.displayName="EyeOutlined";f.inheritAttrs=!1;const $=f;export{$ as E};
|
||||
import{B as s}from"./button-190f793c.js";import{d as g,u as O,G as C,_ as u,a as m,a3 as y,D as h}from"./index-935c2795.js";import{_ as E,a as _}from"./styleChecker-2a3b80e1.js";var z=E(function e(t){_(this,e),this.error=new Error("unreachable case: ".concat(JSON.stringify(t)))}),P=function(){return{prefixCls:String,size:{type:String}}};const l=g({compatConfig:{MODE:3},name:"AButtonGroup",props:P(),setup:function(t,n){var a=n.slots,o=O("btn-group",t),i=o.prefixCls,v=o.direction,b=C(function(){var r,p=t.size,c="";switch(p){case"large":c="lg";break;case"small":c="sm";break;case"middle":case void 0:break;default:console.warn(new z(p).error)}return r={},u(r,"".concat(i.value),!0),u(r,"".concat(i.value,"-").concat(c),c),u(r,"".concat(i.value,"-rtl"),v.value==="rtl"),r});return function(){var r;return m("div",{class:b.value},[y((r=a.default)===null||r===void 0?void 0:r.call(a))])}}});s.Group=l;s.install=function(e){return e.component(s.name,s),e.component(l.name,l),e};var w={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"};const x=w;function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?Object(arguments[t]):{},a=Object.keys(n);typeof Object.getOwnPropertySymbols=="function"&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable}))),a.forEach(function(o){S(e,o,n[o])})}return e}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=function(t,n){var a=d({},t,n.attrs);return m(h,d({},a,{icon:x}),null)};f.displayName="EyeOutlined";f.inheritAttrs=!1;const $=f;export{$ as E};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
import{d as z,r as I,J as V,b0 as A,ad as D,K as G,L as N,a,N as i,M as e,ac as _,V as w,U as x,R as B,br as F,S as R,a0 as U}from"./index-935c2795.js";import{u as $,b as E,f as q,d as O,e as Q,i as j,j as H,t as J,M as K,S as L}from"./FileItem-26f47021.js";import{g as P}from"./db-f3cd9ce7.js";import{c as W}from"./copy2clipboard-27655047.js";import"./index-dd56a761.js";import"./styleChecker-2a3b80e1.js";import"./useTaskListStore-fe69b06c.js";import"./EyeOutlined-f4acc3e8.js";import"./button-190f793c.js";const X={class:"hint"},Y=z({__name:"MatchedImageGrid",props:{tabIdx:null,paneIdx:null,selectedTagIds:null,id:null},setup(k){const u=k,p=I(),m=V(new A);D(()=>u.selectedTagIds,async()=>{var t;const{res:r}=m.pushAction(()=>P(u.selectedTagIds));p.value=(await r).sort((d,c)=>Date.parse(c.date)-Date.parse(d.date)),(t=f.value)==null||t.scrollToItem(0)},{immediate:!0});const f=I(),n={tabIdx:-1,target:"local",paneIdx:-1},{stackViewEl:b}=$().toRefs(),{itemSize:g,gridItems:h}=E(n),{showMenuIdx:l}=q(),{showGenInfo:o,imageGenInfo:v,q:y,onContextMenuClick:M}=O(n,{openNext:F});return Q(n),(r,t)=>{const d=R,c=K,C=L;return G(),N("div",{class:"container",ref_key:"stackViewEl",ref:b},[a(C,{size:"large",spinning:!m.isIdle},{default:i(()=>[a(c,{visible:e(o),"onUpdate:visible":t[1]||(t[1]=s=>_(o)?o.value=s:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=s=>o.value=!1)},{cancelText:i(()=>[]),default:i(()=>[a(d,{active:"",loading:!e(y).isIdle},{default:i(()=>[w("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=s=>e(W)(e(v),"copied"))},[w("div",X,x(r.$t("doubleClickToCopy")),1),B(" "+x(e(v)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),a(e(j),{ref_key:"scroller",ref:f,class:"file-list",items:p.value||[],"item-size":e(g).first,"key-field":"fullpath","item-secondary-size":e(g).second,gridItems:e(h)},{default:i(({item:s,index:S})=>[a(H,{idx:S,file:s,"show-menu-idx":e(l),"onUpdate:showMenuIdx":t[3]||(t[3]=T=>_(l)?l.value=T:null),"full-screen-preview-image-url":e(J)(s),onContextMenuClick:e(M)},null,8,["idx","file","show-menu-idx","full-screen-preview-image-url","onContextMenuClick"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])]),_:1},8,["spinning"])],512)}}});const re=U(Y,[["__scopeId","data-v-efd1f8e1"]]);export{re as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
.container .file-list[data-v-efd1f8e1]{list-style:none;padding:8px;height:100%;overflow:auto;height:var(--pane-max-height);width:100%}
|
||||
|
|
@ -0,0 +1 @@
|
|||
.container[data-v-2e81dd00]{height:var(--pane-max-height);overflow:auto}.container .tag-list[data-v-2e81dd00]{list-style:none;padding:0}.container .tag-list .tag[data-v-2e81dd00]{border:2px solid var(--zp-secondary);color:var(--zp-secondary);border-radius:999px;padding:2px 8px;margin:4px;display:inline-block;cursor:pointer}.container .tag-list .tag.selected[data-v-2e81dd00]{color:var(--primary-color);border:2px solid var(--primary-color)}
|
||||
|
|
@ -1 +0,0 @@
|
|||
.container[data-v-de62d885]{height:100%;overflow:auto}.container .file-list[data-v-de62d885]{list-style:none;padding:8px;height:50vh;overflow:auto;width:100%}.container .tag-list[data-v-de62d885]{list-style:none;padding:0;max-height:50vh;overflow:auto}.container .tag-list .tag[data-v-de62d885]{border:2px solid var(--zp-secondary);color:var(--zp-secondary);border-radius:999px;padding:2px 8px;margin:4px;display:inline-block;cursor:pointer}.container .tag-list .tag.selected[data-v-de62d885]{color:var(--primary-color);border:2px solid var(--primary-color)}
|
||||
|
|
@ -1 +0,0 @@
|
|||
import{bH as w,d as E,J as G,b6 as Q,r as y,G as R,y as j,K as o,L as m,a as p,N as i,M as e,V as k,U as d,R as r,aj as B,W as z,O as h,X as H,Y as L,ax as J,Q as A,bw as K,S as W,a0 as X}from"./index-c8cb069d.js";import{u as Y,b as P,f as Z,d as ee,i as te,h as ae,M as se}from"./FileItem-8299ccce.js";import{c as oe}from"./copy2clipboard-1c1b6705.js";import{B as ne}from"./button-412d5753.js";import"./index-7122bb4c.js";import"./styleChecker-8445ad43.js";import"./useTaskListStore-be77fcbc.js";import"./EyeOutlined-921aebd6.js";const T=async()=>(await w.get("/db/basic_info")).data,ie=async()=>{await w.post("/db/update_image_data",{},{timeout:1/0})},le=async _=>(await w.get("/db/match_images_by_tags",{params:{tag_ids:_.join()}})).data,ce={class:"hint"},de={class:"tag-list"},re=["onClick"],ue=E({__name:"TagSearch",setup(_){const l=G(new Q),s=y(),n=y(new Set),x=R(()=>s.value?s.value.tags.slice().sort((c,a)=>a.count-c.count):[]),I=y();j(async()=>{s.value=await T(),console.log(s,x)});const V=async()=>{l.pushAction(async()=>{await ie(),s.value=await T()})},b={tabIdx:-1,target:"local",paneIdx:-1},{stackViewEl:N}=Y().toRefs(),{itemSize:v,gridItems:f}=P(b),{showMenuIdx:g}=Z(),{showGenInfo:u,imageGenInfo:C,q:D,onContextMenuClick:$}=ee(b,{openNext:K}),F=async()=>{console.log(v.value,f.value);const{res:c}=l.pushAction(()=>le(Array.from(n.value)));I.value=await c};return(c,a)=>{const O=W,U=se,M=ne;return o(),m("div",{class:"container",ref_key:"stackViewEl",ref:N},[p(U,{visible:e(u),"onUpdate:visible":a[1]||(a[1]=t=>B(u)?u.value=t:null),width:"70vw","mask-closable":"",onOk:a[2]||(a[2]=t=>u.value=!1)},{cancelText:i(()=>[]),default:i(()=>[p(O,{active:"",loading:!e(D).isIdle},{default:i(()=>[k("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:a[0]||(a[0]=t=>e(oe)(e(C),"copied"))},[k("div",ce,d(c.$t("doubleClickToCopy")),1),r(" "+d(e(C)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),s.value?(o(),m(z,{key:0},[s.value.expired||!s.value.img_count?(o(),h(M,{key:0,onClick:V,loading:!l.isIdle,type:"primary"},{default:i(()=>[r(d(s.value.img_count===0?"gen idx":"updat index"),1)]),_:1},8,["loading"])):(o(),h(M,{key:1,type:"primary",onClick:F,loading:!l.isIdle},{default:i(()=>[r("search")]),_:1},8,["loading"])),k("ul",de,[(o(!0),m(z,null,H(e(x),t=>(o(),m("li",{key:t.id,class:L(["tag",{selected:n.value.has(t.id)}]),onClick:S=>n.value.has(t.id)?n.value.delete(t.id):n.value.add(t.id)},[n.value.has(t.id)?(o(),h(e(J),{key:0})):A("",!0),r(" "+d(t.name),1)],10,re))),128))])],64)):A("",!0),r(" "+d(e(f))+" ",1),p(e(ae),{class:"file-list",items:I.value||[],"item-size":e(v).first,"key-field":"fullpath","item-secondary-size":e(v).second,gridItems:e(f)},{default:i(({item:t,index:S})=>[p(te,{idx:S,file:t,"show-menu-idx":e(g),"onUpdate:showMenuIdx":a[3]||(a[3]=q=>B(g)?g.value=q:null),onContextMenuClick:e($)},null,8,["idx","file","show-menu-idx","onContextMenuClick"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])],512)}}});const he=X(ue,[["__scopeId","data-v-de62d885"]]);export{he as default};
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{d as w,F as b,J as V,b0 as N,r as _,G as T,aV as q,y as A,K as s,L as o,Q as c,W as v,V as y,a as D,M as l,ah as F,O as d,N as h,R as u,U as g,X as G,Y as M,aq as U,a0 as $}from"./index-935c2795.js";/* empty css */import{a as f,u as L}from"./db-f3cd9ce7.js";import{B as O}from"./button-190f793c.js";const Q={class:"container"},R={class:"tag-list"},z=["onClick"],E=w({__name:"TagSearch",props:{tabIdx:null,paneIdx:null},setup(k){const x=k,I=b(),i=V(new N),a=_(),t=_(new Set),r=T(()=>a.value?a.value.tags.slice().sort((p,n)=>n.count-p.count):[]),C=q();A(async()=>{a.value=await f()});const S=async()=>{i.pushAction(async()=>{await L(),a.value=await f()})},B=()=>{I.openTagSearchMatchedImageGridInRight(x.tabIdx,C,Array.from(t.value))};return(p,n)=>{const m=O;return s(),o("div",Q,[c("",!0),a.value?(s(),o(v,{key:1},[y("div",null,[D(l(F),{conv:{value:e=>e.id,text:e=>e.display_name?`${e.display_name} : ${e.name}`:e.name},mode:"multiple",style:{width:"100%"},options:l(r),value:Array.from(t.value),"onUpdate:value":n[0]||(n[0]=e=>t.value=new Set(e))},null,8,["conv","options","value"])]),a.value.expired||!a.value.img_count?(s(),d(m,{key:0,onClick:S,loading:!i.isIdle,type:"primary"},{default:h(()=>[u(g(a.value.img_count===0?"gen idx":"updat index"),1)]),_:1},8,["loading"])):(s(),d(m,{key:1,type:"primary",onClick:B,loading:!i.isIdle},{default:h(()=>[u("search")]),_:1},8,["loading"])),y("ul",R,[(s(!0),o(v,null,G(l(r),e=>(s(),o("li",{key:e.id,class:M(["tag",{selected:t.value.has(e.id)}]),onClick:J=>t.value.has(e.id)?t.value.delete(e.id):t.value.add(e.id)},[t.value.has(e.id)?(s(),d(l(U),{key:0})):c("",!0),u(" "+g(e.name),1)],10,z))),128))])],64)):c("",!0)])}}});const j=$(E,[["__scopeId","data-v-2e81dd00"]]);export{j as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{b as s}from"./index-7122bb4c.js";import{cq as t,aA as a}from"./index-c8cb069d.js";function r(e,o){return e&&e.length?t(e,s(o)):[]}const i=(e,o)=>(a.success({content:o??`已复制内容 "${e}" 到粘贴板`}),navigator.clipboard.writeText(e));export{i as c,r as u};
|
||||
import{b as s}from"./index-dd56a761.js";import{cq as t,at as a}from"./index-935c2795.js";function r(e,o){return e&&e.length?t(e,s(o)):[]}const i=(e,o)=>(a.success({content:o??`已复制内容 "${e}" 到粘贴板`}),navigator.clipboard.writeText(e));export{i as c,r as u};
|
||||
|
|
@ -0,0 +1 @@
|
|||
import{c1 as a}from"./index-935c2795.js";const n=async()=>(await a.get("/db/basic_info")).data,i=async()=>{await a.post("/db/update_image_data",{},{timeout:1/0})},o=async t=>(await a.get("/db/match_images_by_tags",{params:{tag_ids:t.join()}})).data;export{n as a,o as g,i as u};
|
||||
|
|
@ -1 +1 @@
|
|||
.ant-collapse{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;display:flex;flex-wrap:nowrap;align-items:flex-start;padding:12px 16px;color:#000000d9;line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-content{color:#000000d9;background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:#00000040;cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-right:0;margin-left:12px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-right:auto;margin-left:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}.container[data-v-086c4ef8]{padding:20px;background-color:var(--zp-secondary-background);height:100%;overflow:auto}.header[data-v-086c4ef8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header h1[data-v-086c4ef8]{font-size:28px;font-weight:700;color:var(--zp-primary)}.last-record[data-v-086c4ef8]{margin-left:8px;font-size:14px;color:var(--zp-tertiary)}.last-record a[data-v-086c4ef8]{text-decoration:none;color:var(--zp-tertiary)}.last-record a[data-v-086c4ef8]:hover{color:var(--zp-primary)}.content[data-v-086c4ef8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px}.quick-start[data-v-086c4ef8]{background-color:var(--zp-primary-background);border-radius:8px;box-shadow:0 1px 2px #0000001a;padding:20px}.quick-start ul[data-v-086c4ef8]{list-style:none;padding:4px}.quick-start h2[data-v-086c4ef8]{margin-top:0;margin-bottom:20px;font-size:20px;font-weight:700;color:var(--zp-primary)}.quick-start__item[data-v-086c4ef8]{margin-bottom:10px;padding:4px 8px;display:flex;align-items:center}.quick-start__item[data-v-086c4ef8]:hover{background:var(--zp-secondary-background);border-radius:4px;color:var(--primary-color);cursor:pointer}.quick-start__text[data-v-086c4ef8]{flex:1;font-size:16px}.quick-start__icon[data-v-086c4ef8]{margin-right:8px}
|
||||
.ant-collapse{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;display:flex;flex-wrap:nowrap;align-items:flex-start;padding:12px 16px;color:#000000d9;line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-content{color:#000000d9;background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:#00000040;cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-right:0;margin-left:12px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-right:auto;margin-left:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}.container[data-v-4b8dd4f2]{padding:20px;background-color:var(--zp-secondary-background);height:100%;overflow:auto}.header[data-v-4b8dd4f2]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header h1[data-v-4b8dd4f2]{font-size:28px;font-weight:700;color:var(--zp-primary)}.last-record[data-v-4b8dd4f2]{margin-left:8px;font-size:14px;color:var(--zp-tertiary)}.last-record a[data-v-4b8dd4f2]{text-decoration:none;color:var(--zp-tertiary)}.last-record a[data-v-4b8dd4f2]:hover{color:var(--zp-primary)}.content[data-v-4b8dd4f2]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px}.quick-start[data-v-4b8dd4f2]{background-color:var(--zp-primary-background);border-radius:8px;box-shadow:0 1px 2px #0000001a;padding:20px}.quick-start ul[data-v-4b8dd4f2]{list-style:none;padding:4px}.quick-start h2[data-v-4b8dd4f2]{margin-top:0;margin-bottom:20px;font-size:20px;font-weight:700;color:var(--zp-primary)}.quick-start__item[data-v-4b8dd4f2]{margin-bottom:10px;padding:4px 8px;display:flex;align-items:center}.quick-start__item[data-v-4b8dd4f2]:hover{background:var(--zp-secondary-background);border-radius:4px;color:var(--primary-color);cursor:pointer}.quick-start__text[data-v-4b8dd4f2]{flex:1;font-size:16px}.quick-start__icon[data-v-4b8dd4f2]{margin-right:8px}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{bx as D,bE as K,r as _,y as F,ab as V,G as v,bg as W,t as I,d as E,u as T,bF as A,a5 as j,A as k,bG as G,c as $,_ as s,a as B,h as R}from"./index-c8cb069d.js";import{g as U,t as q,d as H}from"./styleChecker-8445ad43.js";var J="[object Object]",Q=Function.prototype,X=Object.prototype,L=Q.toString,Y=X.hasOwnProperty,Z=L.call(Object);function ie(n){if(!D(n)||K(n)!=J)return!1;var e=U(n);if(e===null)return!0;var a=Y.call(e,"constructor")&&e.constructor;return typeof a=="function"&&a instanceof a&&L.call(a)==Z}function se(n,e,a){var p=-1,i=n.length;e<0&&(e=-e>i?0:i+e),a=a>i?i:a,a<0&&(a+=i),i=e>a?0:a-e>>>0,e>>>=0;for(var f=Array(i);++p<i;)f[p]=n[p+e];return f}function le(n){var e=q(n),a=e%1;return e===e?a?e-a:e:0}const z=function(){var n=_(!1);return F(function(){n.value=H()}),n};var M=Symbol("rowContextKey"),ee=function(e){W(M,e)},te=function(){return V(M,{gutter:v(function(){}),wrap:v(function(){}),supportFlexGap:v(function(){})})};I("top","middle","bottom","stretch");I("start","end","center","space-around","space-between");var re=function(){return{align:String,justify:String,prefixCls:String,gutter:{type:[Number,Array,Object],default:0},wrap:{type:Boolean,default:void 0}}},ne=E({compatConfig:{MODE:3},name:"ARow",props:re(),setup:function(e,a){var p=a.slots,i=T("row",e),f=i.prefixCls,O=i.direction,S,x=_({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0,xxxl:!0}),w=z();F(function(){S=A.subscribe(function(t){var r=e.gutter||0;(!Array.isArray(r)&&j(r)==="object"||Array.isArray(r)&&(j(r[0])==="object"||j(r[1])==="object"))&&(x.value=t)})}),k(function(){A.unsubscribe(S)});var h=v(function(){var t=[0,0],r=e.gutter,o=r===void 0?0:r,l=Array.isArray(o)?o:[o,0];return l.forEach(function(d,y){if(j(d)==="object")for(var u=0;u<G.length;u++){var b=G[u];if(x.value[b]&&d[b]!==void 0){t[y]=d[b];break}}else t[y]=d||0}),t});ee({gutter:h,supportFlexGap:w,wrap:v(function(){return e.wrap})});var N=v(function(){var t;return $(f.value,(t={},s(t,"".concat(f.value,"-no-wrap"),e.wrap===!1),s(t,"".concat(f.value,"-").concat(e.justify),e.justify),s(t,"".concat(f.value,"-").concat(e.align),e.align),s(t,"".concat(f.value,"-rtl"),O.value==="rtl"),t))}),P=v(function(){var t=h.value,r={},o=t[0]>0?"".concat(t[0]/-2,"px"):void 0,l=t[1]>0?"".concat(t[1]/-2,"px"):void 0;return o&&(r.marginLeft=o,r.marginRight=o),w.value?r.rowGap="".concat(t[1],"px"):l&&(r.marginTop=l,r.marginBottom=l),r});return function(){var t;return B("div",{class:N.value,style:P.value},[(t=p.default)===null||t===void 0?void 0:t.call(p)])}}});const fe=ne;function ae(n){return typeof n=="number"?"".concat(n," ").concat(n," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(n)?"0 0 ".concat(n):n}var oe=function(){return{span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},xxxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}};const de=E({compatConfig:{MODE:3},name:"ACol",props:oe(),setup:function(e,a){var p=a.slots,i=te(),f=i.gutter,O=i.supportFlexGap,S=i.wrap,x=T("col",e),w=x.prefixCls,h=x.direction,N=v(function(){var t,r=e.span,o=e.order,l=e.offset,d=e.push,y=e.pull,u=w.value,b={};return["xs","sm","md","lg","xl","xxl","xxxl"].forEach(function(m){var g,c={},C=e[m];typeof C=="number"?c.span=C:j(C)==="object"&&(c=C||{}),b=R(R({},b),{},(g={},s(g,"".concat(u,"-").concat(m,"-").concat(c.span),c.span!==void 0),s(g,"".concat(u,"-").concat(m,"-order-").concat(c.order),c.order||c.order===0),s(g,"".concat(u,"-").concat(m,"-offset-").concat(c.offset),c.offset||c.offset===0),s(g,"".concat(u,"-").concat(m,"-push-").concat(c.push),c.push||c.push===0),s(g,"".concat(u,"-").concat(m,"-pull-").concat(c.pull),c.pull||c.pull===0),s(g,"".concat(u,"-rtl"),h.value==="rtl"),g))}),$(u,(t={},s(t,"".concat(u,"-").concat(r),r!==void 0),s(t,"".concat(u,"-order-").concat(o),o),s(t,"".concat(u,"-offset-").concat(l),l),s(t,"".concat(u,"-push-").concat(d),d),s(t,"".concat(u,"-pull-").concat(y),y),t),b)}),P=v(function(){var t=e.flex,r=f.value,o={};if(r&&r[0]>0){var l="".concat(r[0]/2,"px");o.paddingLeft=l,o.paddingRight=l}if(r&&r[1]>0&&!O.value){var d="".concat(r[1]/2,"px");o.paddingTop=d,o.paddingBottom=d}return t&&(o.flex=ae(t),S.value===!1&&!o.minWidth&&(o.minWidth=0)),o});return function(){var t;return B("div",{class:N.value,style:P.value},[(t=p.default)===null||t===void 0?void 0:t.call(p)])}}});export{de as C,fe as R,se as b,ie as i,le as t};
|
||||
import{bs as D,bA as K,r as G,y as F,b4 as V,G as v,bb as W,t as I,d as B,u as T,bB as P,a5 as j,A as k,bC as R,c as $,_ as s,a as E,h as _}from"./index-935c2795.js";import{g as U,t as q,d as H}from"./styleChecker-2a3b80e1.js";var J="[object Object]",Q=Function.prototype,X=Object.prototype,L=Q.toString,Y=X.hasOwnProperty,Z=L.call(Object);function ie(n){if(!D(n)||K(n)!=J)return!1;var e=U(n);if(e===null)return!0;var a=Y.call(e,"constructor")&&e.constructor;return typeof a=="function"&&a instanceof a&&L.call(a)==Z}function se(n,e,a){var p=-1,i=n.length;e<0&&(e=-e>i?0:i+e),a=a>i?i:a,a<0&&(a+=i),i=e>a?0:a-e>>>0,e>>>=0;for(var f=Array(i);++p<i;)f[p]=n[p+e];return f}function le(n){var e=q(n),a=e%1;return e===e?a?e-a:e:0}const z=function(){var n=G(!1);return F(function(){n.value=H()}),n};var M=Symbol("rowContextKey"),ee=function(e){W(M,e)},te=function(){return V(M,{gutter:v(function(){}),wrap:v(function(){}),supportFlexGap:v(function(){})})};I("top","middle","bottom","stretch");I("start","end","center","space-around","space-between");var re=function(){return{align:String,justify:String,prefixCls:String,gutter:{type:[Number,Array,Object],default:0},wrap:{type:Boolean,default:void 0}}},ne=B({compatConfig:{MODE:3},name:"ARow",props:re(),setup:function(e,a){var p=a.slots,i=T("row",e),f=i.prefixCls,O=i.direction,S,x=G({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0,xxxl:!0}),w=z();F(function(){S=P.subscribe(function(t){var r=e.gutter||0;(!Array.isArray(r)&&j(r)==="object"||Array.isArray(r)&&(j(r[0])==="object"||j(r[1])==="object"))&&(x.value=t)})}),k(function(){P.unsubscribe(S)});var h=v(function(){var t=[0,0],r=e.gutter,o=r===void 0?0:r,l=Array.isArray(o)?o:[o,0];return l.forEach(function(d,y){if(j(d)==="object")for(var u=0;u<R.length;u++){var g=R[u];if(x.value[g]&&d[g]!==void 0){t[y]=d[g];break}}else t[y]=d||0}),t});ee({gutter:h,supportFlexGap:w,wrap:v(function(){return e.wrap})});var N=v(function(){var t;return $(f.value,(t={},s(t,"".concat(f.value,"-no-wrap"),e.wrap===!1),s(t,"".concat(f.value,"-").concat(e.justify),e.justify),s(t,"".concat(f.value,"-").concat(e.align),e.align),s(t,"".concat(f.value,"-rtl"),O.value==="rtl"),t))}),A=v(function(){var t=h.value,r={},o=t[0]>0?"".concat(t[0]/-2,"px"):void 0,l=t[1]>0?"".concat(t[1]/-2,"px"):void 0;return o&&(r.marginLeft=o,r.marginRight=o),w.value?r.rowGap="".concat(t[1],"px"):l&&(r.marginTop=l,r.marginBottom=l),r});return function(){var t;return E("div",{class:N.value,style:A.value},[(t=p.default)===null||t===void 0?void 0:t.call(p)])}}});const fe=ne;function ae(n){return typeof n=="number"?"".concat(n," ").concat(n," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(n)?"0 0 ".concat(n):n}var oe=function(){return{span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},xxxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}};const de=B({compatConfig:{MODE:3},name:"ACol",props:oe(),setup:function(e,a){var p=a.slots,i=te(),f=i.gutter,O=i.supportFlexGap,S=i.wrap,x=T("col",e),w=x.prefixCls,h=x.direction,N=v(function(){var t,r=e.span,o=e.order,l=e.offset,d=e.push,y=e.pull,u=w.value,g={};return["xs","sm","md","lg","xl","xxl","xxxl"].forEach(function(m){var b,c={},C=e[m];typeof C=="number"?c.span=C:j(C)==="object"&&(c=C||{}),g=_(_({},g),{},(b={},s(b,"".concat(u,"-").concat(m,"-").concat(c.span),c.span!==void 0),s(b,"".concat(u,"-").concat(m,"-order-").concat(c.order),c.order||c.order===0),s(b,"".concat(u,"-").concat(m,"-offset-").concat(c.offset),c.offset||c.offset===0),s(b,"".concat(u,"-").concat(m,"-push-").concat(c.push),c.push||c.push===0),s(b,"".concat(u,"-").concat(m,"-pull-").concat(c.pull),c.pull||c.pull===0),s(b,"".concat(u,"-rtl"),h.value==="rtl"),b))}),$(u,(t={},s(t,"".concat(u,"-").concat(r),r!==void 0),s(t,"".concat(u,"-order-").concat(o),o),s(t,"".concat(u,"-offset-").concat(l),l),s(t,"".concat(u,"-push-").concat(d),d),s(t,"".concat(u,"-pull-").concat(y),y),t),g)}),A=v(function(){var t=e.flex,r=f.value,o={};if(r&&r[0]>0){var l="".concat(r[0]/2,"px");o.paddingLeft=l,o.paddingRight=l}if(r&&r[1]>0&&!O.value){var d="".concat(r[1]/2,"px");o.paddingTop=d,o.paddingBottom=d}return t&&(o.flex=ae(t),S.value===!1&&!o.minWidth&&(o.minWidth=0)),o});return function(){var t;return E("div",{class:N.value,style:A.value},[(t=p.default)===null||t===void 0?void 0:t.call(p)])}}});export{de as C,fe as R,se as b,ie as i,le as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{u as p}from"./useTaskListStore-be77fcbc.js";import{d as u,r as d,G as g,ak as f,ad as m,K as t,L as s,V as l,W as k,X as L,U as y,M as D,a0 as v}from"./index-c8cb069d.js";const x={class:"container"},h=u({__name:"logDetail",props:{logDetailId:null},setup(r){const n=r,c=p(),a=d(),o=g(()=>c.taskLogMap.get(n.logDetailId));return f(o,async()=>{await m();const e=a.value;e&&(e.scrollTop=e.scrollHeight)},{deep:!0}),(e,B)=>(t(),s("div",x,[l("ul",{class:"list",ref_key:"logListEl",ref:a},[(t(!0),s(k,null,L(D(o),(i,_)=>(t(),s("li",{key:_},[l("pre",null,y(i.log),1)]))),128))],512)]))}});const T=v(h,[["__scopeId","data-v-59148842"]]);export{T as default};
|
||||
import{u as p}from"./useTaskListStore-fe69b06c.js";import{d as u,r as d,G as g,ad as f,aH as m,K as t,L as s,V as l,W as k,X as L,U as y,M as D,a0 as v}from"./index-935c2795.js";const x={class:"container"},h=u({__name:"logDetail",props:{logDetailId:null},setup(r){const n=r,c=p(),a=d(),o=g(()=>c.taskLogMap.get(n.logDetailId));return f(o,async()=>{await m();const e=a.value;e&&(e.scrollTop=e.scrollHeight)},{deep:!0}),(e,B)=>(t(),s("div",x,[l("ul",{class:"list",ref_key:"logListEl",ref:a},[(t(!0),s(k,null,L(D(o),(i,_)=>(t(),s("li",{key:_},[l("pre",null,y(i.log),1)]))),128))],512)]))}});const T=v(h,[["__scopeId","data-v-59148842"]]);export{T as default};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";color:#00000073;font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:#00000073;transition:color .3s}.ant-breadcrumb a:hover{color:#de632f}.ant-breadcrumb>span:last-child{color:#000000d9}.ant-breadcrumb>span:last-child a{color:#000000d9}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:#00000073}.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-link>.anticon+a{margin-left:4px}.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a{margin-right:4px;margin-left:0}.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.nprogress{pointer-events:none}.nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}.nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}.nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}.nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent .nprogress .spinner,.nprogress-custom-parent .nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.uninstalled-hint[data-v-339527fa]{margin:256px auto;display:flex;flex-flow:column;justify-content:center;align-items:center}.uninstalled-hint>*[data-v-339527fa]{margin:16px;text-align:center}.preview-switch[data-v-339527fa]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-339527fa]{margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-339527fa]{opacity:0;pointer-events:none;cursor:none}.container[data-v-339527fa]{height:100%;background:var(--zp-secondary-background)}.location-bar[data-v-339527fa]{padding:4px 16px;background:var(--zp-primary-background);border-bottom:1px solid var(--zp-border);display:flex;align-items:center;justify-content:space-between}.location-bar .actions[data-v-339527fa]{display:flex;align-items:center;flex-shrink:0}.location-bar a.opt[data-v-339527fa]{margin-left:8px}.view[data-v-339527fa]{padding:8px;height:calc(100vh - 96px)}.view .file-list[data-v-339527fa]{list-style:none;padding:8px;height:100%;overflow:auto}.hint[data-v-339527fa]{padding:4px;border:4px;background:var(--zp-secondary-background);border:1px solid var(--zp-border)}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{cL as f,cM as i,cN as l,bM as d}from"./index-c8cb069d.js";var u=f(Object.getPrototypeOf,Object);const y=u;function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function b(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e){return function(t){return t==null?void 0:t[e]}}var c=1/0,p=17976931348623157e292;function h(e){if(!e)return e===0?e:0;if(e=l(e),e===c||e===-c){var t=e<0?-1:1;return t*p}return e===e?e:0}var m=function(){return d()&&window.document.documentElement},a,x=function(){if(!m())return!1;if(a!==void 0)return a;var t=document.createElement("div");return t.style.display="flex",t.style.flexDirection="column",t.style.rowGap="1px",t.appendChild(document.createElement("div")),t.appendChild(document.createElement("div")),document.body.appendChild(t),a=t.scrollHeight===1,document.body.removeChild(t),a};export{b as _,E as a,g as b,m as c,x as d,y as g,h as t};
|
||||
import{cL as f,cM as i,cN as l,bH as d}from"./index-935c2795.js";var u=f(Object.getPrototypeOf,Object);const y=u;function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function b(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e){return function(t){return t==null?void 0:t[e]}}var c=1/0,p=17976931348623157e292;function h(e){if(!e)return e===0?e:0;if(e=l(e),e===c||e===-c){var t=e<0?-1:1;return t*p}return e===e?e:0}var m=function(){return d()&&window.document.documentElement},a,x=function(){if(!m())return!1;if(a!==void 0)return a;var t=document.createElement("div");return t.style.display="flex",t.style.flexDirection="column",t.style.rowGap="1px",t.appendChild(document.createElement("div")),t.appendChild(document.createElement("div")),document.body.appendChild(t),a=t.scrollHeight===1,document.body.removeChild(t),a};export{b as _,E as a,g as b,m as c,x as d,y as g,h as t};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
import{cQ as r,r as e,J as t,b6 as i,cR as d}from"./index-c8cb069d.js";const v=r("useTaskListStore",()=>{const a=e(new Map),n=t(new i),u=e(3),o=e([]),c=t([]),l=e(-1),s=e(null);return{checkBaiduyunInstalled:async()=>(s.value===null&&(s.value=d()),s.value),baiduyunInstalled:s,pollInterval:u,taskLogMap:a,queue:n,tasks:o,showDirAutoCompletedIdx:l,pendingBaiduyunTaskQueue:c}},{persist:{paths:["pollInterval","tasks"],key:"useTaskListStore-v0.0.1"}});export{v as u};
|
||||
import{cO as r,r as e,J as t,b0 as i,cP as d}from"./index-935c2795.js";const v=r("useTaskListStore",()=>{const a=e(new Map),n=t(new i),u=e(3),o=e([]),c=t([]),l=e(-1),s=e(null);return{checkBaiduyunInstalled:async()=>(s.value===null&&(s.value=d()),s.value),baiduyunInstalled:s,pollInterval:u,taskLogMap:a,queue:n,tasks:o,showDirAutoCompletedIdx:l,pendingBaiduyunTaskQueue:c}},{persist:{paths:["pollInterval","tasks"],key:"useTaskListStore-v0.0.1"}});export{v as u};
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Vite App</title>
|
||||
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-c8cb069d.js"></script>
|
||||
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-f62089c0.css">
|
||||
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-935c2795.js"></script>
|
||||
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-9ee28aec.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { axiosInst } from './index'
|
|||
export interface Tag {
|
||||
name: string
|
||||
id: number
|
||||
display_name: string | null
|
||||
type: string
|
||||
count: number
|
||||
}
|
||||
|
|
|
|||
414
vue/src/i18n.ts
414
vue/src/i18n.ts
|
|
@ -1,213 +1,212 @@
|
|||
import { createI18n } from 'vue-i18n'
|
||||
|
||||
const messages = {
|
||||
zh: {
|
||||
errorOccurred: '发生了个错误',
|
||||
logoutSuccess: '登出成功',
|
||||
useThumbnailPreview: '使用缩略图预览',
|
||||
pollingInterval: '轮询间隔',
|
||||
smallerIntervalMeansMoreNetworkTraffic: '越小对网络压力越大',
|
||||
gridThumbnailWidth: '网格缩略图宽度',
|
||||
largeGridThumbnailWidth: '大尺寸网格缩略图宽度',
|
||||
pause: '暂停',
|
||||
start: '开始',
|
||||
waitingUploadCount: '等待上传数量',
|
||||
uploadFailureCount: '上传失败数量',
|
||||
completedCount: '已完成数量',
|
||||
realTimeLog: '实时日志',
|
||||
tip: '提示',
|
||||
clickToViewLogs:
|
||||
'点击下面查看具体日志,若有日志错误内包含名字不合规,可尝试在sd-webui的设置页换一种图像文件名格式,例如[datetime<%Y-%m-%d %H-%M-%S>]',
|
||||
startedAt: '开始于:',
|
||||
sortByDateAscending: '日期升序',
|
||||
sortByDateDescending: '日期降序',
|
||||
sortByNameAscending: '名称升序',
|
||||
sortByNameDescending: '名称降序',
|
||||
sortBySizeAscending: '大小升序',
|
||||
sortBySizeDescending: '大小降序',
|
||||
inputAddressAndPressEnter: '输入地址回车',
|
||||
go: '前往',
|
||||
unknownError: '未知错误',
|
||||
loadingNextFolder: '即将加载下一个文件夹的文件',
|
||||
moveFailedCheckPath: '移动失败,检查你的路径输入',
|
||||
detailList: '详情列表',
|
||||
previewGrid: '预览网格',
|
||||
largePreviewGrid: '大尺寸预览网格',
|
||||
sortBy: '按照',
|
||||
moveSelectedFilesTo: '下列文件移动至',
|
||||
confirm: '确定?',
|
||||
upload: '上传',
|
||||
download: '下载',
|
||||
local: '本地',
|
||||
cloud: '云盘',
|
||||
confirmCreateTask: '确定创建{type}任务。{more}',
|
||||
sendImageFailed: '发送图像失败,请携带console的错误消息找开发者',
|
||||
confirmDelete: '确认删除?',
|
||||
deleteSuccess: '删除成功',
|
||||
dependenciesNotInstalled: '尚未安装依赖,当前不可用',
|
||||
login: '登录',
|
||||
doubleClickToCopy: '双击复制',
|
||||
root: '根',
|
||||
drive: '盘',
|
||||
refresh: '刷新',
|
||||
quickMove: '快速移动',
|
||||
more: '更多',
|
||||
viewMode: '查看模式',
|
||||
sortingMethod: '排序方法',
|
||||
copyPath: '复制路径',
|
||||
deleteSelected: '删除选中',
|
||||
previewInNewWindow: '在新窗口预览(如果浏览器处理不了会下载,大文件的话谨慎)',
|
||||
downloadDirectly: '直接下载(大文件的话谨慎)',
|
||||
copySourceFilePreviewLink: '复制源文件预览链接',
|
||||
viewGenerationInfo: '查看生成信息(prompt等)',
|
||||
sendToTxt2img: '发送到文生图',
|
||||
sendToImg2img: '发送到图生图',
|
||||
sendToInpaint: '发送到局部重绘',
|
||||
sendToExtraFeatures: '发送到附加功能',
|
||||
loadNextPage: '加载下一页',
|
||||
autoUpload: '自动上传',
|
||||
localFile: '本地文件',
|
||||
baiduCloud: '百度云',
|
||||
taskRecord: '任务记录',
|
||||
globalSettings: '全局设置',
|
||||
onlyOneTaskRecordAllowed: '任务记录有且只能有一个,如果特殊需求请前往仓库提issue',
|
||||
welcome: '欢迎',
|
||||
openInNewWindow: '在新页面打开',
|
||||
restoreLastRecord: '还原上次记录',
|
||||
launch: '启动',
|
||||
walkMode: '使用 Walk 模式浏览图片',
|
||||
launchFromQuickMove: '从快速移动启动',
|
||||
recent: '最近',
|
||||
emptyStartPage: '空启动页',
|
||||
deleteNotAllowedWithOnePaneLeft: '在仅剩一个pane的情况下,不允许删除!!!',
|
||||
t2i: '文生图',
|
||||
i2i: '图生图',
|
||||
saveButtonSavesTo: '使用“保存”按钮保存图像的目录',
|
||||
extra: '附加',
|
||||
gridImage: '宫格图',
|
||||
'i2i-grid': '图生图网格',
|
||||
image: '图像',
|
||||
't2i-grid': '文生图宫格',
|
||||
workingFolder: '工作文件夹',
|
||||
lang: '语言',
|
||||
langChangeReload: '重新加载: 一些变化可能需要在重新加载后生效',
|
||||
hypernetworks: '超网络模型',
|
||||
openOnTheRight: '在右边打开',
|
||||
openInNewTab: '在新标签打开',
|
||||
loginPrompt: '这个功能要求你先使用BDUSS登录到百度云盘。',
|
||||
openWithWalkMode: '使用 Walk 模式打开',
|
||||
longPressOpenContextMenu: '支持使用长按打开右键菜单',
|
||||
baiduNetdiskCollapseTitle: '百度云盘相关功能(仅预览图片无需打开)',
|
||||
clickHere2install: '点此安装'
|
||||
},
|
||||
en: {
|
||||
errorOccurred: 'An error occurred',
|
||||
logoutSuccess: 'Logged out successfully',
|
||||
useThumbnailPreview: 'Use thumbnail preview',
|
||||
pollingInterval: 'Polling interval',
|
||||
smallerIntervalMeansMoreNetworkTraffic: 'Smaller interval means more network traffic',
|
||||
gridThumbnailWidth: 'Grid thumbnail width',
|
||||
largeGridThumbnailWidth: 'Large grid thumbnail width',
|
||||
pause: 'Pause',
|
||||
start: 'Start',
|
||||
waitingUploadCount: 'Waiting upload count',
|
||||
uploadFailureCount: 'Upload failure count',
|
||||
completedCount: 'Completed count',
|
||||
realTimeLog: 'Real-time log',
|
||||
tip: 'Tip',
|
||||
clickToViewLogs:
|
||||
'Click below to view specific logs. If there are naming errors, try changing the image filename format on the sd-webui settings page, such as [datetime<%Y-%m-%d %H-%M-%S>]',
|
||||
startedAt: 'Started at: ',
|
||||
sortByDateAscending: 'Date ascending',
|
||||
sortByDateDescending: 'Date descending',
|
||||
sortByNameAscending: 'Name ascending',
|
||||
sortByNameDescending: 'Name descending',
|
||||
sortBySizeAscending: 'Size ascending',
|
||||
sortBySizeDescending: 'Size descending',
|
||||
inputAddressAndPressEnter: 'Input address and press Enter',
|
||||
go: 'Go',
|
||||
unknownError: 'Unknown error',
|
||||
loadingNextFolder: 'Loading files from the next folder',
|
||||
moveFailedCheckPath: 'Move failed. Check your path input.',
|
||||
detailList: 'Detail list',
|
||||
previewGrid: 'Preview grid',
|
||||
largePreviewGrid: 'Large preview grid',
|
||||
sortBy: 'Sort by',
|
||||
moveSelectedFilesTo: 'Move selected files to',
|
||||
confirm: 'Confirm?',
|
||||
upload: 'Upload',
|
||||
download: 'Download',
|
||||
local: 'Local',
|
||||
cloud: 'Cloud',
|
||||
confirmCreateTask: 'Confirm to create {type} task. {more}',
|
||||
sendImageFailed:
|
||||
'Failed to send image. Please contact the developer with the error message from the console.',
|
||||
confirmDelete: 'Are you sure you want to delete?',
|
||||
deleteSuccess: 'Deleted successfully',
|
||||
dependenciesNotInstalled: 'Dependencies not installed. Currently unavailable.',
|
||||
login: 'Login',
|
||||
doubleClickToCopy: 'Double-click to copy',
|
||||
root: 'Root',
|
||||
drive: ' drive',
|
||||
refresh: 'Refresh',
|
||||
quickMove: 'Quick move',
|
||||
more: 'More',
|
||||
viewMode: 'View mode',
|
||||
sortingMethod: 'Sorting method',
|
||||
copyPath: 'Copy path',
|
||||
deleteSelected: 'Delete selected',
|
||||
previewInNewWindow:
|
||||
'Open in new window (will download if browser cannot handle it, use with caution for large files)',
|
||||
downloadDirectly: 'Download directly (use with caution for large files)',
|
||||
copySourceFilePreviewLink: 'Copy source file preview link',
|
||||
viewGenerationInfo: 'View generation information (prompt, etc.)',
|
||||
sendToTxt2img: 'Send to txt2img',
|
||||
sendToImg2img: 'Send to img2img',
|
||||
sendToInpaint: 'Send to Inpaint',
|
||||
sendToExtraFeatures: 'Send to Extra',
|
||||
loadNextPage: 'Load next page',
|
||||
autoUpload: 'Auto upload',
|
||||
localFile: 'Local file',
|
||||
baiduCloud: 'Baidu Netdisk',
|
||||
taskRecord: 'Task record',
|
||||
globalSettings: 'Global settings',
|
||||
onlyOneTaskRecordAllowed:
|
||||
'Only one task record is allowed. If you have special requirements, please open an issue on the repository.',
|
||||
welcome: 'Welcome',
|
||||
openInNewWindow: 'Open in new tab',
|
||||
restoreLastRecord: 'Restore last record',
|
||||
launch: 'Launch',
|
||||
walkMode: 'Use Walk mode to browse images',
|
||||
launchFromQuickMove: 'Launch from Quick Move',
|
||||
recent: 'Recent',
|
||||
emptyStartPage: 'Empty start page',
|
||||
deleteNotAllowedWithOnePaneLeft: 'Deletion is not allowed with only one pane left!!!',
|
||||
t2i: 'Text to image',
|
||||
i2i: 'Image to image',
|
||||
saveButtonSavesTo: 'Directory for saving images using the Save button',
|
||||
extra: 'Extra',
|
||||
gridImage: 'Grid image',
|
||||
'i2i-grid': 'Image to image grid',
|
||||
image: 'Image',
|
||||
't2i-grid': 'Text to image grid',
|
||||
workingFolder: 'Working folder',
|
||||
lang: 'Language',
|
||||
langChangeReload: 'Reload: Some changes may require a reload to take effect',
|
||||
hypernetworks: 'hypernetworks',
|
||||
openOnTheRight: 'Open on the right',
|
||||
openInNewTab: 'Open in a new tab',
|
||||
loginPrompt: 'This feature requires you to log in to Baidu Cloud Drive using your BDUSS.',
|
||||
openWithWalkMode: 'Open with Walk Mode',
|
||||
longPressOpenContextMenu: 'Support long press to open right-click menu',
|
||||
baiduNetdiskCollapseTitle:
|
||||
"Baidu Netdisk functions (only previewing images don't require opening)",
|
||||
clickHere2install: 'Click here to install'
|
||||
}
|
||||
const zh = {
|
||||
errorOccurred: '发生了个错误',
|
||||
logoutSuccess: '登出成功',
|
||||
useThumbnailPreview: '使用缩略图预览',
|
||||
pollingInterval: '轮询间隔',
|
||||
smallerIntervalMeansMoreNetworkTraffic: '越小对网络压力越大',
|
||||
gridThumbnailWidth: '网格缩略图宽度',
|
||||
largeGridThumbnailWidth: '大尺寸网格缩略图宽度',
|
||||
pause: '暂停',
|
||||
start: '开始',
|
||||
waitingUploadCount: '等待上传数量',
|
||||
uploadFailureCount: '上传失败数量',
|
||||
completedCount: '已完成数量',
|
||||
realTimeLog: '实时日志',
|
||||
tip: '提示',
|
||||
clickToViewLogs:
|
||||
'点击下面查看具体日志,若有日志错误内包含名字不合规,可尝试在sd-webui的设置页换一种图像文件名格式,例如[datetime<%Y-%m-%d %H-%M-%S>]',
|
||||
startedAt: '开始于:',
|
||||
sortByDateAscending: '日期升序',
|
||||
sortByDateDescending: '日期降序',
|
||||
sortByNameAscending: '名称升序',
|
||||
sortByNameDescending: '名称降序',
|
||||
sortBySizeAscending: '大小升序',
|
||||
sortBySizeDescending: '大小降序',
|
||||
inputAddressAndPressEnter: '输入地址回车',
|
||||
go: '前往',
|
||||
unknownError: '未知错误',
|
||||
loadingNextFolder: '即将加载下一个文件夹的文件',
|
||||
moveFailedCheckPath: '移动失败,检查你的路径输入',
|
||||
detailList: '详情列表',
|
||||
previewGrid: '预览网格',
|
||||
largePreviewGrid: '大尺寸预览网格',
|
||||
sortBy: '按照',
|
||||
moveSelectedFilesTo: '下列文件移动至',
|
||||
confirm: '确定?',
|
||||
upload: '上传',
|
||||
download: '下载',
|
||||
local: '本地',
|
||||
cloud: '云盘',
|
||||
confirmCreateTask: '确定创建{type}任务。{more}',
|
||||
sendImageFailed: '发送图像失败,请携带console的错误消息找开发者',
|
||||
confirmDelete: '确认删除?',
|
||||
deleteSuccess: '删除成功',
|
||||
dependenciesNotInstalled: '尚未安装依赖,当前不可用',
|
||||
login: '登录',
|
||||
doubleClickToCopy: '双击复制',
|
||||
root: '根',
|
||||
drive: '盘',
|
||||
refresh: '刷新',
|
||||
quickMove: '快速移动',
|
||||
more: '更多',
|
||||
viewMode: '查看模式',
|
||||
sortingMethod: '排序方法',
|
||||
copyPath: '复制路径',
|
||||
deleteSelected: '删除选中',
|
||||
previewInNewWindow: '在新窗口预览(如果浏览器处理不了会下载,大文件的话谨慎)',
|
||||
downloadDirectly: '直接下载(大文件的话谨慎)',
|
||||
copySourceFilePreviewLink: '复制源文件预览链接',
|
||||
viewGenerationInfo: '查看生成信息(prompt等)',
|
||||
sendToTxt2img: '发送到文生图',
|
||||
sendToImg2img: '发送到图生图',
|
||||
sendToInpaint: '发送到局部重绘',
|
||||
sendToExtraFeatures: '发送到附加功能',
|
||||
loadNextPage: '加载下一页',
|
||||
autoUpload: '自动上传',
|
||||
localFile: '本地文件',
|
||||
baiduCloud: '百度云',
|
||||
taskRecord: '任务记录',
|
||||
globalSettings: '全局设置',
|
||||
onlyOneTaskRecordAllowed: '任务记录有且只能有一个,如果特殊需求请前往仓库提issue',
|
||||
welcome: '欢迎',
|
||||
openInNewWindow: '在新页面打开',
|
||||
restoreLastRecord: '还原上次记录',
|
||||
launch: '启动',
|
||||
walkMode: '使用 Walk 模式浏览图片',
|
||||
launchFromQuickMove: '从快速移动启动',
|
||||
recent: '最近',
|
||||
emptyStartPage: '空启动页',
|
||||
deleteNotAllowedWithOnePaneLeft: '在仅剩一个pane的情况下,不允许删除!!!',
|
||||
t2i: '文生图',
|
||||
i2i: '图生图',
|
||||
saveButtonSavesTo: '使用“保存”按钮保存图像的目录',
|
||||
extra: '附加',
|
||||
gridImage: '宫格图',
|
||||
'i2i-grid': '图生图网格',
|
||||
image: '图像',
|
||||
't2i-grid': '文生图宫格',
|
||||
workingFolder: '工作文件夹',
|
||||
lang: '语言',
|
||||
langChangeReload: '重新加载: 一些变化可能需要在重新加载后生效',
|
||||
hypernetworks: '超网络模型',
|
||||
openOnTheRight: '在右边打开',
|
||||
openInNewTab: '在新标签打开',
|
||||
loginPrompt: '这个功能要求你先使用BDUSS登录到百度云盘。',
|
||||
openWithWalkMode: '使用 Walk 模式打开',
|
||||
longPressOpenContextMenu: '支持使用长按打开右键菜单',
|
||||
baiduNetdiskCollapseTitle: '百度云盘相关功能(仅预览图片无需打开)',
|
||||
clickHere2install: '点此安装',
|
||||
searchResults: "搜索结果"
|
||||
}
|
||||
const en: Record<keyof typeof zh, string> = {
|
||||
errorOccurred: 'An error occurred',
|
||||
logoutSuccess: 'Logged out successfully',
|
||||
useThumbnailPreview: 'Use thumbnail preview',
|
||||
pollingInterval: 'Polling interval',
|
||||
smallerIntervalMeansMoreNetworkTraffic: 'Smaller interval means more network traffic',
|
||||
gridThumbnailWidth: 'Grid thumbnail width',
|
||||
largeGridThumbnailWidth: 'Large grid thumbnail width',
|
||||
pause: 'Pause',
|
||||
start: 'Start',
|
||||
waitingUploadCount: 'Waiting upload count',
|
||||
uploadFailureCount: 'Upload failure count',
|
||||
completedCount: 'Completed count',
|
||||
realTimeLog: 'Real-time log',
|
||||
tip: 'Tip',
|
||||
clickToViewLogs:
|
||||
'Click below to view specific logs. If there are naming errors, try changing the image filename format on the sd-webui settings page, such as [datetime<%Y-%m-%d %H-%M-%S>]',
|
||||
startedAt: 'Started at: ',
|
||||
sortByDateAscending: 'Date ascending',
|
||||
sortByDateDescending: 'Date descending',
|
||||
sortByNameAscending: 'Name ascending',
|
||||
sortByNameDescending: 'Name descending',
|
||||
sortBySizeAscending: 'Size ascending',
|
||||
sortBySizeDescending: 'Size descending',
|
||||
inputAddressAndPressEnter: 'Input address and press Enter',
|
||||
go: 'Go',
|
||||
unknownError: 'Unknown error',
|
||||
loadingNextFolder: 'Loading files from the next folder',
|
||||
moveFailedCheckPath: 'Move failed. Check your path input.',
|
||||
detailList: 'Detail list',
|
||||
previewGrid: 'Preview grid',
|
||||
largePreviewGrid: 'Large preview grid',
|
||||
sortBy: 'Sort by',
|
||||
moveSelectedFilesTo: 'Move selected files to',
|
||||
confirm: 'Confirm?',
|
||||
upload: 'Upload',
|
||||
download: 'Download',
|
||||
local: 'Local',
|
||||
cloud: 'Cloud',
|
||||
confirmCreateTask: 'Confirm to create {type} task. {more}',
|
||||
sendImageFailed:
|
||||
'Failed to send image. Please contact the developer with the error message from the console.',
|
||||
confirmDelete: 'Are you sure you want to delete?',
|
||||
deleteSuccess: 'Deleted successfully',
|
||||
dependenciesNotInstalled: 'Dependencies not installed. Currently unavailable.',
|
||||
login: 'Login',
|
||||
doubleClickToCopy: 'Double-click to copy',
|
||||
root: 'Root',
|
||||
drive: ' drive',
|
||||
refresh: 'Refresh',
|
||||
quickMove: 'Quick move',
|
||||
more: 'More',
|
||||
viewMode: 'View mode',
|
||||
sortingMethod: 'Sorting method',
|
||||
copyPath: 'Copy path',
|
||||
deleteSelected: 'Delete selected',
|
||||
previewInNewWindow:
|
||||
'Open in new window (will download if browser cannot handle it, use with caution for large files)',
|
||||
downloadDirectly: 'Download directly (use with caution for large files)',
|
||||
copySourceFilePreviewLink: 'Copy source file preview link',
|
||||
viewGenerationInfo: 'View generation information (prompt, etc.)',
|
||||
sendToTxt2img: 'Send to txt2img',
|
||||
sendToImg2img: 'Send to img2img',
|
||||
sendToInpaint: 'Send to Inpaint',
|
||||
sendToExtraFeatures: 'Send to Extra',
|
||||
loadNextPage: 'Load next page',
|
||||
autoUpload: 'Auto upload',
|
||||
localFile: 'Local file',
|
||||
baiduCloud: 'Baidu Netdisk',
|
||||
taskRecord: 'Task record',
|
||||
globalSettings: 'Global settings',
|
||||
onlyOneTaskRecordAllowed:
|
||||
'Only one task record is allowed. If you have special requirements, please open an issue on the repository.',
|
||||
welcome: 'Welcome',
|
||||
openInNewWindow: 'Open in new tab',
|
||||
restoreLastRecord: 'Restore last record',
|
||||
launch: 'Launch',
|
||||
walkMode: 'Use Walk mode to browse images',
|
||||
launchFromQuickMove: 'Launch from Quick Move',
|
||||
recent: 'Recent',
|
||||
emptyStartPage: 'Empty start page',
|
||||
deleteNotAllowedWithOnePaneLeft: 'Deletion is not allowed with only one pane left!!!',
|
||||
t2i: 'Text to image',
|
||||
i2i: 'Image to image',
|
||||
saveButtonSavesTo: 'Directory for saving images using the Save button',
|
||||
extra: 'Extra',
|
||||
gridImage: 'Grid image',
|
||||
'i2i-grid': 'Image to image grid',
|
||||
image: 'Image',
|
||||
't2i-grid': 'Text to image grid',
|
||||
workingFolder: 'Working folder',
|
||||
lang: 'Language',
|
||||
langChangeReload: 'Reload: Some changes may require a reload to take effect',
|
||||
hypernetworks: 'hypernetworks',
|
||||
openOnTheRight: 'Open on the right',
|
||||
openInNewTab: 'Open in a new tab',
|
||||
loginPrompt: 'This feature requires you to log in to Baidu Cloud Drive using your BDUSS.',
|
||||
openWithWalkMode: 'Open with Walk Mode',
|
||||
longPressOpenContextMenu: 'Support long press to open right-click menu',
|
||||
baiduNetdiskCollapseTitle:
|
||||
"Baidu Netdisk functions (only previewing images don't require opening)",
|
||||
clickHere2install: 'Click here to install',
|
||||
searchResults: "Search Results"
|
||||
}
|
||||
|
||||
declare module 'vue' {
|
||||
export interface ComponentCustomProperties {
|
||||
$t (key: keyof (typeof messages)['en'], ...args: []): string
|
||||
$t (key: keyof typeof zh, ...args: []): string
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -222,7 +221,10 @@ export const getPreferredLang = () => {
|
|||
export const i18n = createI18n({
|
||||
locale: getPreferredLang(),
|
||||
fallbackLocale: 'en',
|
||||
messages,
|
||||
messages: {
|
||||
zh ,
|
||||
en
|
||||
},
|
||||
legacy: false
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ const compMap: Record<TabPane['type'], ReturnType<typeof defineAsyncComponent>>
|
|||
empty: defineAsyncComponent(() => import('./emptyStartup.vue')),
|
||||
"log-detail": defineAsyncComponent(() => import('@/page/taskRecord/logDetail.vue')),
|
||||
"global-setting": defineAsyncComponent(() => import('@/page/globalSetting.vue')),
|
||||
"tag-search-matched-image-grid": defineAsyncComponent(() => import('@/page/TagSearch/MatchedImageGrid.vue')),
|
||||
"tag-search": defineAsyncComponent(() => import('@/page/TagSearch/TagSearch.vue'))
|
||||
}
|
||||
const onEdit = (idx: number, targetKey: any, action: string) => {
|
||||
|
|
@ -73,8 +74,7 @@ watch(() => global.tabList, async () => {
|
|||
<pane v-for="tab, tabIdx in global.tabList" :key="key(tab)">
|
||||
<edge-trigger :tabIdx="tabIdx">
|
||||
<a-tabs type="editable-card" v-model:activeKey="tab.key" @edit="(key, act) => onEdit(tabIdx, key, act)">
|
||||
<a-tab-pane v-for="pane, paneIdx in tab.panes" :key="pane.key" :tab="pane.name"
|
||||
class="pane"
|
||||
<a-tab-pane v-for="pane, paneIdx in tab.panes" :key="pane.key" :tab="pane.name" class="pane"
|
||||
:force-render="pane.type === 'task-record'">
|
||||
<component :is="compMap[pane.type]" :tabIdx="tabIdx" :paneIdx="paneIdx" v-bind="pane" />
|
||||
</a-tab-pane>
|
||||
|
|
@ -95,7 +95,9 @@ watch(() => global.tabList, async () => {
|
|||
height: 100vh;
|
||||
}
|
||||
}
|
||||
|
||||
.pane {
|
||||
height: calc(100vh - 40px);
|
||||
--pane-max-height: calc(100vh - 40px);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
import { useGlobalStore, type TabPane } from '@/store/useGlobalStore'
|
||||
import { uniqueId } from 'lodash-es'
|
||||
import { computed } from 'vue'
|
||||
import { ID } from 'vue3-ts-util'
|
||||
import { ID, ok } from 'vue3-ts-util'
|
||||
import { CloudDownloadOutlined, FileDoneOutlined } from '@/icon'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { t } from '@/i18n'
|
||||
|
|
@ -23,6 +23,8 @@ const openInCurrentTab = (type: TabPane['type'], path?: string, walkMode = false
|
|||
return message.error(t('onlyOneTaskRecordAllowed')) // 如果允许多个需要处理一些监听器,懒得改后面再说
|
||||
}
|
||||
switch (type) {
|
||||
case 'tag-search-matched-image-grid':
|
||||
return
|
||||
case 'auto-upload':
|
||||
case 'task-record':
|
||||
case 'log-detail':
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
<script lang="ts" setup>
|
||||
import { reactive, ref } from 'vue'
|
||||
import { FetchQueue, copy2clipboard } from 'vue3-ts-util'
|
||||
import fileItemCell from '@/page/fileTransfer/FileItem.vue'
|
||||
import type { FileNodeInfo } from '@/api/files'
|
||||
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
|
||||
// @ts-ignore
|
||||
import { RecycleScroller } from 'vue-virtual-scroller'
|
||||
import {
|
||||
useFilesDisplay, type Scroller, useHookShareState,
|
||||
useMobileOptimization, useFileItemActions, toRawFileUrl, usePreview
|
||||
} from '@/page/fileTransfer/hook'
|
||||
import { identity } from 'lodash-es'
|
||||
import { getImagesByTags } from '@/api/db'
|
||||
import { watch } from 'vue'
|
||||
|
||||
const images = ref<FileNodeInfo[]>()
|
||||
|
||||
const queue = reactive(new FetchQueue())
|
||||
|
||||
const props = defineProps<{ tabIdx: number, paneIdx: number, selectedTagIds: number[], id: string }>()
|
||||
|
||||
watch(() => props.selectedTagIds, async () => {
|
||||
const { res } = queue.pushAction(() => getImagesByTags(props.selectedTagIds))
|
||||
images.value = (await res).sort((a, b) => Date.parse(b.date) - Date.parse(a.date))
|
||||
scroller.value?.scrollToItem(0)
|
||||
}, { immediate: true })
|
||||
|
||||
const scroller = ref<Scroller>()
|
||||
|
||||
const propsMock = { tabIdx: -1, target: 'local', paneIdx: -1 } as const
|
||||
const { stackViewEl } = useHookShareState().toRefs()
|
||||
const { itemSize, gridItems } = useFilesDisplay(propsMock)
|
||||
const { showMenuIdx } = useMobileOptimization()
|
||||
const { showGenInfo, imageGenInfo, q: genInfoQueue, onContextMenuClick } = useFileItemActions(propsMock, { openNext: identity })
|
||||
const { previewIdx } = usePreview(propsMock)
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="container" ref="stackViewEl">
|
||||
<ASpin size="large" :spinning="!queue.isIdle">
|
||||
<AModal v-model:visible="showGenInfo" width="70vw" mask-closable @ok="showGenInfo = false">
|
||||
<template #cancelText />
|
||||
<ASkeleton active :loading="!genInfoQueue.isIdle">
|
||||
<div style="width: 100%; word-break: break-all;white-space: pre-line;max-height: 70vh;overflow: auto;"
|
||||
@dblclick="copy2clipboard(imageGenInfo, 'copied')">
|
||||
<div class="hint">{{ $t('doubleClickToCopy') }}</div>
|
||||
{{ imageGenInfo }}
|
||||
</div>
|
||||
</ASkeleton>
|
||||
</AModal>
|
||||
<RecycleScroller ref="scroller" class="file-list" :items="images || []" :item-size="itemSize.first" key-field="fullpath"
|
||||
:item-secondary-size="itemSize.second" :gridItems="gridItems">
|
||||
<template v-slot="{ item: file, index: idx }">
|
||||
<!-- idx 和file有可能丢失 -->
|
||||
<file-item-cell :idx="idx" :file="file" v-model:show-menu-idx="showMenuIdx"
|
||||
:full-screen-preview-image-url="toRawFileUrl(file)" @context-menu-click="onContextMenuClick" />
|
||||
</template>
|
||||
</RecycleScroller>
|
||||
</ASpin>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped lang="scss">
|
||||
.container {
|
||||
.file-list {
|
||||
list-style: none;
|
||||
padding: 8px;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
height: var(--pane-max-height);
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,25 +1,20 @@
|
|||
<script lang="ts" setup>
|
||||
import { onMounted, reactive, ref, computed } from 'vue'
|
||||
import { getDbBasicInfo, updateImageData, type DataBaseBasicInfo, getImagesByTags } from '@/api/db'
|
||||
import { FetchQueue, copy2clipboard } from 'vue3-ts-util'
|
||||
import { FetchQueue, SearchSelect } from 'vue3-ts-util'
|
||||
import { CheckOutlined } from '@/icon'
|
||||
import fileItemCell from '@/page/fileTransfer/FileItem.vue'
|
||||
import type { FileNodeInfo } from '@/api/files'
|
||||
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
|
||||
// @ts-ignore
|
||||
import { RecycleScroller } from 'vue-virtual-scroller'
|
||||
import { useFilesDisplay, useHookShareState, useMobileOptimization, useFileItemActions } from '@/page/fileTransfer/hook'
|
||||
import { identity } from 'lodash-es'
|
||||
import { useGlobalStore } from '@/store/useGlobalStore'
|
||||
import { uniqueId } from 'lodash-es'
|
||||
|
||||
const props = defineProps<{ tabIdx: number, paneIdx: number }>()
|
||||
const global = useGlobalStore()
|
||||
const queue = reactive(new FetchQueue())
|
||||
const info = ref<DataBaseBasicInfo>()
|
||||
const selectedId = ref(new Set<number>())
|
||||
const tags = computed(() => info.value ? info.value.tags.slice().sort((a, b) => b.count - a.count) : [])
|
||||
const images = ref<FileNodeInfo[]>()
|
||||
|
||||
const pairid = uniqueId()
|
||||
onMounted(async () => {
|
||||
info.value = await getDbBasicInfo()
|
||||
console.log(info, tags)
|
||||
})
|
||||
|
||||
const onUpdateBtnClick = async () => {
|
||||
|
|
@ -30,32 +25,18 @@ const onUpdateBtnClick = async () => {
|
|||
})
|
||||
}
|
||||
|
||||
const propsMock = { tabIdx: -1, target: 'local', paneIdx: -1 } as const
|
||||
const { stackViewEl, } = useHookShareState().toRefs()
|
||||
const { itemSize, gridItems } = useFilesDisplay(propsMock)
|
||||
const { showMenuIdx } = useMobileOptimization()
|
||||
const {showGenInfo, imageGenInfo, q: genInfoQueue, onContextMenuClick } = useFileItemActions(propsMock, { openNext: identity })
|
||||
|
||||
const query = async () => {
|
||||
const { res } = queue.pushAction(() => getImagesByTags(Array.from(selectedId.value)))
|
||||
images.value = (await res)
|
||||
const query = () => {
|
||||
global.openTagSearchMatchedImageGridInRight(props.tabIdx, pairid, Array.from(selectedId.value))
|
||||
}
|
||||
|
||||
</script>
|
||||
<template>
|
||||
<div class="container" ref="stackViewEl">
|
||||
<AModal v-model:visible="showGenInfo" width="70vw" mask-closable @ok="showGenInfo = false">
|
||||
<template #cancelText />
|
||||
<ASkeleton active :loading="!genInfoQueue.isIdle">
|
||||
<div style="width: 100%; word-break: break-all;white-space: pre-line;max-height: 70vh;overflow: auto;"
|
||||
@dblclick="copy2clipboard(imageGenInfo, 'copied')">
|
||||
<div class="hint">{{ $t('doubleClickToCopy') }}</div>
|
||||
{{ imageGenInfo }}
|
||||
</div>
|
||||
</ASkeleton>
|
||||
</AModal>
|
||||
<div class="container">
|
||||
<ASelect v-if="false"/>
|
||||
<template v-if="info">
|
||||
|
||||
<div>
|
||||
<SearchSelect :conv="{ value: v => v.id, text: v=> v.display_name ? `${v.display_name} : ${v.name}` : v.name, }" mode="multiple" style="width: 100%;" :options="tags" :value="Array.from(selectedId)" @update:value="v => selectedId = new Set(v)" />
|
||||
</div>
|
||||
<AButton @click="onUpdateBtnClick" :loading="!queue.isIdle" type="primary" v-if="info.expired || !info.img_count">{{
|
||||
info.img_count === 0 ? 'gen idx' : 'updat index' }}</AButton>
|
||||
<AButton v-else type="primary" @click="query" :loading="!queue.isIdle">search</AButton>
|
||||
|
|
@ -67,35 +48,17 @@ const query = async () => {
|
|||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
{{gridItems}}
|
||||
<RecycleScroller class="file-list" :items="images || []" :item-size="itemSize.first" key-field="fullpath"
|
||||
:item-secondary-size="itemSize.second" :gridItems="gridItems">
|
||||
<template v-slot="{ item: file, index: idx }">
|
||||
<!-- idx 和file有可能丢失 -->
|
||||
<file-item-cell :idx="idx" :file="file" v-model:show-menu-idx="showMenuIdx" @context-menu-click="onContextMenuClick"/>
|
||||
</template>
|
||||
</RecycleScroller>
|
||||
</div>
|
||||
</template>
|
||||
<style scoped lang="scss">
|
||||
.container {
|
||||
height: 100%;
|
||||
height: var(--pane-max-height);
|
||||
overflow: auto;
|
||||
|
||||
.file-list {
|
||||
list-style: none;
|
||||
padding: 8px;
|
||||
height: 50vh;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
.tag-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
max-height: 50vh;
|
||||
overflow: auto;
|
||||
|
||||
.tag {
|
||||
border: 2px solid var(--zp-secondary);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@ interface OtherTabPane {
|
|||
}
|
||||
// logDetailId
|
||||
|
||||
|
||||
interface TagSearchMatchedImageGridTabPane {
|
||||
type: 'tag-search-matched-image-grid'
|
||||
name: string
|
||||
readonly key: string
|
||||
selectedTagIds: number[]
|
||||
id: string
|
||||
}
|
||||
|
||||
interface LogDetailTabPane {
|
||||
type: 'log-detail'
|
||||
logDetailId: string
|
||||
|
|
@ -37,7 +46,7 @@ export interface FileTransferTabPane {
|
|||
stackKey?: string
|
||||
}
|
||||
|
||||
export type TabPane = FileTransferTabPane | OtherTabPane | LogDetailTabPane
|
||||
export type TabPane = FileTransferTabPane | OtherTabPane | LogDetailTabPane | TagSearchMatchedImageGridTabPane
|
||||
|
||||
export interface Tab extends UniqueId {
|
||||
panes: TabPane[]
|
||||
|
|
@ -70,6 +79,8 @@ export const useGlobalStore = defineStore('useGlobalStore', () => {
|
|||
lastTabListRecord.value = lastTabListRecord.value.slice(0, 2) as any
|
||||
}
|
||||
|
||||
|
||||
|
||||
const createTaskRecordPaneIfNotExist = async (tabIdx = 0) => {
|
||||
if (!tabList.value.map(v => v.panes).flat().find(v => v.type === 'task-record')) {
|
||||
tabList.value[tabIdx].panes.push({ type: 'task-record', key: uniqueId(), name: '任务记录' })
|
||||
|
|
@ -85,6 +96,31 @@ export const useGlobalStore = defineStore('useGlobalStore', () => {
|
|||
tab.key = log.key
|
||||
tab.panes.push(log)
|
||||
}
|
||||
}
|
||||
|
||||
const openTagSearchMatchedImageGridInRight = async (tabIdx: number, id: string, tagIds: number[]) => {
|
||||
let pane = tabList.value.map(v => v.panes).flat()
|
||||
.find(v => v.type === 'tag-search-matched-image-grid' && v.id === id) as TagSearchMatchedImageGridTabPane
|
||||
if (pane) {
|
||||
pane.selectedTagIds = tagIds.slice()
|
||||
return
|
||||
} else {
|
||||
pane = {
|
||||
type: 'tag-search-matched-image-grid',
|
||||
id: id,
|
||||
selectedTagIds: tagIds.slice(),
|
||||
key: uniqueId(),
|
||||
name: t('searchResults')
|
||||
}
|
||||
}
|
||||
|
||||
const tab = tabList.value[tabIdx + 1]
|
||||
if (!tab) {
|
||||
tabList.value.push(ID({ panes: [pane], key: pane.key }))
|
||||
} else {
|
||||
tab.key = pane.key
|
||||
tab.panes.push(pane)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -124,15 +160,16 @@ export const useGlobalStore = defineStore('useGlobalStore', () => {
|
|||
openBaiduYunIfNotLogged,
|
||||
longPressOpenContextMenu,
|
||||
baiduNetdiskPageOpened,
|
||||
openTagSearchMatchedImageGridInRight,
|
||||
...typedEventEmitter<{ createNewTask: Partial<UploadTaskSummary> }>()
|
||||
}
|
||||
}, {
|
||||
persist: {
|
||||
paths: [
|
||||
'lang', 'enableThumbnail', 'lastTabListRecord',
|
||||
'lang', 'enableThumbnail', 'lastTabListRecord',
|
||||
'stackViewSplit', 'autoUploadRecvDir', 'recent',
|
||||
'gridThumbnailSize', 'largeGridThumbnailSize',
|
||||
'longPressOpenContextMenu','baiduNetdiskPageOpened'
|
||||
]
|
||||
'gridThumbnailSize', 'largeGridThumbnailSize',
|
||||
'longPressOpenContextMenu', 'baiduNetdiskPageOpened'
|
||||
]
|
||||
}
|
||||
})
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import { defineStore } from 'pinia'
|
||||
|
||||
export const useTagSearch = defineStore('useTagSearch', () => {
|
||||
|
||||
return {
|
||||
|
||||
}
|
||||
})
|
||||
Loading…
Reference in New Issue