Merge pull request #11 from zanllp/fix/create-baiduyun-task-error

修复拖拽错误,创建任务可能不成功
pull/12/head
zanllp 2023-04-05 18:54:22 +08:00 committed by GitHub
commit 2d7689ebdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 87 additions and 77 deletions

View File

@ -6,7 +6,7 @@
<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="/baidu_netdisk/fe-static/assets/index-b92d12d2.js"></script>
<script type="module" crossorigin src="/baidu_netdisk/fe-static/assets/index-ca58e7a1.js"></script>
<link rel="stylesheet" href="/baidu_netdisk/fe-static/assets/index-a2045d1f.css">
</head>
<body>

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

View File

@ -1,4 +1,4 @@
import{i as Pe,I as P,t as Ie,f as Be,C as Oe,a as Fe,r as ie,E as Ne}from"./index-4fc84313.js";import{d as X,u as te,k as q,a as S,c as R,_ as f,e as ce,P as $e,r as F,B as Ee,bA as Ve,F as Te,C as ne,h as ae,g as je,Z,O as ke,X as _e,Y as J,o as De,a3 as Ge,bB as Le,bC as Ue,a1 as Re,V as Ze,l as He,U as ee,I as de,ah as Ye,K as qe}from"./index-b92d12d2.js";import{i as Xe}from"./index-7dfb4203.js";import{B as Ke}from"./button-3e7df890.js";const Qe=X({compatConfig:{MODE:3},name:"AInputGroup",props:{prefixCls:String,size:{type:String},compact:{type:Boolean,default:void 0},onMouseenter:{type:Function},onMouseleave:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},setup:function(e,n){var a=n.slots,c=te("input-group",e),p=c.prefixCls,m=c.direction,i=q(function(){var l,d=p.value;return l={},S(l,"".concat(d),!0),S(l,"".concat(d,"-lg"),e.size==="large"),S(l,"".concat(d,"-sm"),e.size==="small"),S(l,"".concat(d,"-compact"),e.compact),S(l,"".concat(d,"-rtl"),m.value==="rtl"),l});return function(){var l;return R("span",{class:i.value,onMouseenter:e.onMouseenter,onMouseleave:e.onMouseleave,onFocus:e.onFocus,onBlur:e.onBlur},[(l=a.default)===null||l===void 0?void 0:l.call(a)])}}});var oe=/iPhone/i,fe=/iPod/i,ge=/iPad/i,le=/\bAndroid(?:.+)Mobile\b/i,me=/Android/i,H=/\bAndroid(?:.+)SD4930UR\b/i,W=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,k=/Windows Phone/i,pe=/\bWindows(?:.+)ARM\b/i,be=/BlackBerry/i,he=/BB10/i,xe=/Opera Mini/i,ye=/\b(CriOS|Chrome)(?:.+)Mobile/i,Ce=/Mobile(?:.+)Firefox\b/i;function r(o,e){return o.test(e)}function ze(o){var e=o||(typeof navigator<"u"?navigator.userAgent:""),n=e.split("[FBAN");if(typeof n[1]<"u"){var a=n,c=ce(a,1);e=c[0]}if(n=e.split("Twitter"),typeof n[1]<"u"){var p=n,m=ce(p,1);e=m[0]}var i={apple:{phone:r(oe,e)&&!r(k,e),ipod:r(fe,e),tablet:!r(oe,e)&&r(ge,e)&&!r(k,e),device:(r(oe,e)||r(fe,e)||r(ge,e))&&!r(k,e)},amazon:{phone:r(H,e),tablet:!r(H,e)&&r(W,e),device:r(H,e)||r(W,e)},android:{phone:!r(k,e)&&r(H,e)||!r(k,e)&&r(le,e),tablet:!r(k,e)&&!r(H,e)&&!r(le,e)&&(r(W,e)||r(me,e)),device:!r(k,e)&&(r(H,e)||r(W,e)||r(le,e)||r(me,e))||r(/\bokhttp\b/i,e)},windows:{phone:r(k,e),tablet:r(pe,e),device:r(k,e)||r(pe,e)},other:{blackberry:r(be,e),blackberry10:r(he,e),opera:r(xe,e),firefox:r(Ce,e),chrome:r(ye,e),device:r(be,e)||r(he,e)||r(xe,e)||r(Ce,e)||r(ye,e)},any:null,phone:null,tablet:null};return i.any=i.apple.device||i.android.device||i.windows.device||i.other.device,i.phone=i.apple.phone||i.android.phone||i.windows.phone,i.tablet=i.apple.tablet||i.android.tablet||i.windows.tablet,i}var We=f(f({},ze()),{},{isMobile:ze});const Je=We;var et=["disabled","loading","addonAfter","suffix"];const tt=X({compatConfig:{MODE:3},name:"AInputSearch",inheritAttrs:!1,props:f(f({},Pe()),{},{inputPrefixCls:String,enterButton:$e.any,onSearch:{type:Function}}),setup:function(e,n){var a=n.slots,c=n.attrs,p=n.expose,m=n.emit,i=F(),l=function(){var u;(u=i.value)===null||u===void 0||u.focus()},d=function(){var u;(u=i.value)===null||u===void 0||u.blur()};p({focus:l,blur:d});var y=function(u){m("update:value",u.target.value),u&&u.target&&u.type==="click"&&m("search",u.target.value,u),m("change",u)},b=function(u){var C;document.activeElement===((C=i.value)===null||C===void 0?void 0:C.input)&&u.preventDefault()},A=function(u){var C;m("search",(C=i.value)===null||C===void 0?void 0:C.stateValue,u),Je.tablet||i.value.focus()},I=te("input-search",e),E=I.prefixCls,V=I.getPrefixCls,N=I.direction,w=I.size,s=q(function(){return V("input",e.inputPrefixCls)});return function(){var g,u,C,M,_,B=e.disabled,$=e.loading,L=e.addonAfter,j=L===void 0?(g=a.addonAfter)===null||g===void 0?void 0:g.call(a):L,K=e.suffix,Q=K===void 0?(u=a.suffix)===null||u===void 0?void 0:u.call(a):K,re=Ee(e,et),h=e.enterButton,t=h===void 0?(C=(M=a.enterButton)===null||M===void 0?void 0:M.call(a))!==null&&C!==void 0?C:!1:h;t=t||t==="";var v=typeof t=="boolean"?R(Ve,null,null):null,x="".concat(E.value,"-button"),z=Array.isArray(t)?t[0]:t,T,U=z.type&&Xe(z.type)&&z.type.__ANT_BUTTON;if(U||z.tagName==="button")T=Te(z,f({onMousedown:b,onClick:A,key:"enterButton"},U?{class:x,size:w.value}:{}),!1);else{var D=v&&!t;T=R(Ke,{class:x,type:t?"primary":void 0,size:w.value,disabled:B,key:"enterButton",onMousedown:b,onClick:A,loading:$,icon:D?v:null},{default:function(){return[D?null:v||t]}})}j&&(T=[T,j]);var G=ne(E.value,(_={},S(_,"".concat(E.value,"-rtl"),N.value==="rtl"),S(_,"".concat(E.value,"-").concat(w.value),!!w.value),S(_,"".concat(E.value,"-with-button"),!!t),_),c.class);return R(P,f(f(f({ref:i},ae(re,["onUpdate:value","onSearch","enterButton"])),c),{},{onPressEnter:A,size:w.value,prefixCls:s.value,addonAfter:T,suffix:Q,onChange:y,class:G,disabled:B}),a)}}});var nt=`
import{i as Pe,I as P,t as Ie,f as Be,C as Oe,a as Fe,r as ie,E as Ne}from"./index-b683d873.js";import{d as X,u as te,k as q,a as S,c as R,_ as f,e as ce,P as $e,r as F,B as Ee,by as Ve,F as Te,C as ne,h as ae,g as je,Z,O as ke,X as _e,Y as J,o as De,a3 as Ge,bz as Le,bA as Ue,a1 as Re,V as Ze,l as He,U as ee,I as de,ah as Ye,K as qe}from"./index-ca58e7a1.js";import{i as Xe}from"./index-f4d70917.js";import{B as Ke}from"./button-d6beffd9.js";const Qe=X({compatConfig:{MODE:3},name:"AInputGroup",props:{prefixCls:String,size:{type:String},compact:{type:Boolean,default:void 0},onMouseenter:{type:Function},onMouseleave:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},setup:function(e,n){var a=n.slots,c=te("input-group",e),p=c.prefixCls,m=c.direction,i=q(function(){var l,d=p.value;return l={},S(l,"".concat(d),!0),S(l,"".concat(d,"-lg"),e.size==="large"),S(l,"".concat(d,"-sm"),e.size==="small"),S(l,"".concat(d,"-compact"),e.compact),S(l,"".concat(d,"-rtl"),m.value==="rtl"),l});return function(){var l;return R("span",{class:i.value,onMouseenter:e.onMouseenter,onMouseleave:e.onMouseleave,onFocus:e.onFocus,onBlur:e.onBlur},[(l=a.default)===null||l===void 0?void 0:l.call(a)])}}});var oe=/iPhone/i,fe=/iPod/i,ge=/iPad/i,le=/\bAndroid(?:.+)Mobile\b/i,me=/Android/i,H=/\bAndroid(?:.+)SD4930UR\b/i,W=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,k=/Windows Phone/i,pe=/\bWindows(?:.+)ARM\b/i,be=/BlackBerry/i,he=/BB10/i,xe=/Opera Mini/i,ye=/\b(CriOS|Chrome)(?:.+)Mobile/i,Ce=/Mobile(?:.+)Firefox\b/i;function r(o,e){return o.test(e)}function ze(o){var e=o||(typeof navigator<"u"?navigator.userAgent:""),n=e.split("[FBAN");if(typeof n[1]<"u"){var a=n,c=ce(a,1);e=c[0]}if(n=e.split("Twitter"),typeof n[1]<"u"){var p=n,m=ce(p,1);e=m[0]}var i={apple:{phone:r(oe,e)&&!r(k,e),ipod:r(fe,e),tablet:!r(oe,e)&&r(ge,e)&&!r(k,e),device:(r(oe,e)||r(fe,e)||r(ge,e))&&!r(k,e)},amazon:{phone:r(H,e),tablet:!r(H,e)&&r(W,e),device:r(H,e)||r(W,e)},android:{phone:!r(k,e)&&r(H,e)||!r(k,e)&&r(le,e),tablet:!r(k,e)&&!r(H,e)&&!r(le,e)&&(r(W,e)||r(me,e)),device:!r(k,e)&&(r(H,e)||r(W,e)||r(le,e)||r(me,e))||r(/\bokhttp\b/i,e)},windows:{phone:r(k,e),tablet:r(pe,e),device:r(k,e)||r(pe,e)},other:{blackberry:r(be,e),blackberry10:r(he,e),opera:r(xe,e),firefox:r(Ce,e),chrome:r(ye,e),device:r(be,e)||r(he,e)||r(xe,e)||r(Ce,e)||r(ye,e)},any:null,phone:null,tablet:null};return i.any=i.apple.device||i.android.device||i.windows.device||i.other.device,i.phone=i.apple.phone||i.android.phone||i.windows.phone,i.tablet=i.apple.tablet||i.android.tablet||i.windows.tablet,i}var We=f(f({},ze()),{},{isMobile:ze});const Je=We;var et=["disabled","loading","addonAfter","suffix"];const tt=X({compatConfig:{MODE:3},name:"AInputSearch",inheritAttrs:!1,props:f(f({},Pe()),{},{inputPrefixCls:String,enterButton:$e.any,onSearch:{type:Function}}),setup:function(e,n){var a=n.slots,c=n.attrs,p=n.expose,m=n.emit,i=F(),l=function(){var u;(u=i.value)===null||u===void 0||u.focus()},d=function(){var u;(u=i.value)===null||u===void 0||u.blur()};p({focus:l,blur:d});var y=function(u){m("update:value",u.target.value),u&&u.target&&u.type==="click"&&m("search",u.target.value,u),m("change",u)},b=function(u){var C;document.activeElement===((C=i.value)===null||C===void 0?void 0:C.input)&&u.preventDefault()},A=function(u){var C;m("search",(C=i.value)===null||C===void 0?void 0:C.stateValue,u),Je.tablet||i.value.focus()},I=te("input-search",e),E=I.prefixCls,V=I.getPrefixCls,N=I.direction,w=I.size,s=q(function(){return V("input",e.inputPrefixCls)});return function(){var g,u,C,M,_,B=e.disabled,$=e.loading,L=e.addonAfter,j=L===void 0?(g=a.addonAfter)===null||g===void 0?void 0:g.call(a):L,K=e.suffix,Q=K===void 0?(u=a.suffix)===null||u===void 0?void 0:u.call(a):K,re=Ee(e,et),h=e.enterButton,t=h===void 0?(C=(M=a.enterButton)===null||M===void 0?void 0:M.call(a))!==null&&C!==void 0?C:!1:h;t=t||t==="";var v=typeof t=="boolean"?R(Ve,null,null):null,x="".concat(E.value,"-button"),z=Array.isArray(t)?t[0]:t,T,U=z.type&&Xe(z.type)&&z.type.__ANT_BUTTON;if(U||z.tagName==="button")T=Te(z,f({onMousedown:b,onClick:A,key:"enterButton"},U?{class:x,size:w.value}:{}),!1);else{var D=v&&!t;T=R(Ke,{class:x,type:t?"primary":void 0,size:w.value,disabled:B,key:"enterButton",onMousedown:b,onClick:A,loading:$,icon:D?v:null},{default:function(){return[D?null:v||t]}})}j&&(T=[T,j]);var G=ne(E.value,(_={},S(_,"".concat(E.value,"-rtl"),N.value==="rtl"),S(_,"".concat(E.value,"-").concat(w.value),!!w.value),S(_,"".concat(E.value,"-with-button"),!!t),_),c.class);return R(P,f(f(f({ref:i},ae(re,["onUpdate:value","onSearch","enterButton"])),c),{},{onPressEnter:A,size:w.value,prefixCls:s.value,addonAfter:T,suffix:Q,onChange:y,class:G,disabled:B}),a)}}});var nt=`
min-height:0 !important;
max-height:none !important;
height:0 !important;

View File

@ -1 +0,0 @@
import{aD as s}from"./index-b92d12d2.js";const r=(c,o)=>(s.success({content:o??`已复制内容 "${c}" 到粘贴板`}),navigator.clipboard.writeText(c));export{r as c};

1
vue/dist/assets/index-5c8a809a.js vendored Normal file
View File

@ -0,0 +1 @@
import{b as s}from"./index-e5afbac3.js";import{bB as n,aD as t}from"./index-ca58e7a1.js";function i(e,o){return e&&e.length?n(e,s(o)):[]}const r=(e,o)=>(t.success({content:o??`已复制内容 "${e}" 到粘贴板`}),navigator.clipboard.writeText(e));export{r as c,i as u};

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
vue/dist/assets/logDetail-84988724.js vendored Normal file
View File

@ -0,0 +1 @@
import{u as p}from"./useTaskListStore-f8760c3b.js";import{d as u,r as d,k as g,X as f,Y as m,n as t,p as s,aT as l,ad as k,b2 as x,x as y,q as D,A as L}from"./index-ca58e7a1.js";const v={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,T)=>(t(),s("div",v,[l("ul",{class:"list",ref_key:"logListEl",ref:a},[(t(!0),s(k,null,x(D(o),(i,_)=>(t(),s("li",{key:_},[l("pre",null,y(i.log),1)]))),128))],512)]))}});const I=L(h,[["__scopeId","data-v-59148842"]]);export{I as default};

View File

@ -1 +0,0 @@
import{u as p}from"./useTaskListStore-dbde1916.js";import{d as u,r as d,k as g,X as f,Y as m,n as t,p as s,aU as l,ad as k,b3 as x,x as y,q as D,A as L}from"./index-b92d12d2.js";const v={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",v,[l("ul",{class:"list",ref_key:"logListEl",ref:a},[(t(!0),s(k,null,x(D(o),(i,_)=>(t(),s("li",{key:_},[l("pre",null,y(i.log),1)]))),128))],512)]))}});const T=L(h,[["__scopeId","data-v-59148842"]]);export{T as default};

5
vue/dist/assets/stackView-634f7f54.js vendored Normal file

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

View File

@ -1 +0,0 @@
import{cF as l,r as s,m as c,aF as r,cG as i}from"./index-b92d12d2.js";const p=l("useTaskListStore",()=>{const t=s(new Map),a=c(new r),n=s(3),u=s([]),o=s(-1),e=s(null);return{checkBaiduyunInstalled:async()=>(e.value===null&&(e.value=i()),e.value),baiduyunInstalled:e,pollInterval:n,taskLogMap:t,queue:a,tasks:u,showDirAutoCompletedIdx:o}},{persist:{paths:["pollInterval","tasks"],key:"useTaskListStore-v0.0.1"}});export{p as u};

View File

@ -0,0 +1 @@
import{cE as r,r as e,m as t,aF as i,cF as d}from"./index-ca58e7a1.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};

2
vue/dist/index.html vendored
View File

@ -5,7 +5,7 @@
<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="/baidu_netdisk/fe-static/assets/index-b92d12d2.js"></script>
<script type="module" crossorigin src="/baidu_netdisk/fe-static/assets/index-ca58e7a1.js"></script>
<link rel="stylesheet" href="/baidu_netdisk/fe-static/assets/index-a2045d1f.css">
</head>
<body>

View File

@ -9,7 +9,7 @@ import { useWatchDocument, type SearchSelectConv, ok, createTypedShareStateHook,
import { gradioApp, isImageFile } from '@/util'
import { getTargetFolderFiles, type FileNodeInfo } from '@/api/files'
import { sortFiles, sortMethodMap, SortMethod } from './fileSort'
import { cloneDeep, debounce, last, range, uniq } from 'lodash-es'
import { cloneDeep, debounce, last, range, uniqBy } from 'lodash-es'
import path from 'path-browserify'
import type Progress from 'nprogress'
// @ts-ignore
@ -85,9 +85,9 @@ export interface Props {
}
export type ViewMode = 'line' | 'grid' | 'large-size-grid'
const taskListStore = useTaskListStore()
export const useBaiduyun = () => {
const taskListStore = useTaskListStore()
const bduss = ref('')
const installedBaiduyun = computedAsync(taskListStore.checkBaiduyunInstalled, false)
@ -503,12 +503,13 @@ export function useFileTransfer (props: Props) {
watch(currPage, recover)
const onFileDragStart = (e: DragEvent, idx: number) => {
const file = cloneDeep(sortedFiles.value[idx])
const names = [file.name]
const file = cloneDeep(sortedFiles.value[idx] )
console.log('onFileDragStart set drag file ', e, idx, file)
const files = [file]
let includeDir = file.type === 'dir'
if (multiSelectedIdxs.value.includes(idx)) {
const selectedFiles = multiSelectedIdxs.value.map(idx => sortedFiles.value[idx])
names.push(...selectedFiles.map(v => v.name))
files.push(...selectedFiles)
includeDir = selectedFiles.some(v => v.type === 'dir')
}
@ -517,7 +518,7 @@ export function useFileTransfer (props: Props) {
JSON.stringify({
from: props.target,
includeDir,
path: uniq(names).map(name => path.join(currLocation.value, name))
path: uniqBy(files, 'fullpath').map(f => f.fullpath)
})
)
}
@ -548,7 +549,8 @@ export function useFileTransfer (props: Props) {
maskClosable: true,
async onOk () {
await global.createTaskRecordPaneIfNotExist(props.tabIdx)
global.eventEmitter.emit('createNewTask', { send_dirs: data.path, recv_dir: toPath, type })
console.log('request createNewTask', { send_dirs: data.path, recv_dir: toPath, type })
taskListStore.pendingBaiduyunTaskQueue.push({ send_dirs: data.path, recv_dir: toPath, type })
}
})
}

View File

@ -154,7 +154,7 @@ const { previewIdx, onPreviewVisibleChange, previewing, previewImgMove, canPrevi
<folder-open-outlined class="icon center" v-else />
</div>
<div class="profile">
<div class="name">
<div class="name line-clamp-1">
{{ file.name }}
</div>
<div class="basic-info">

View File

@ -11,6 +11,7 @@ import { uniqBy } from 'lodash-es'
import localPathShortcut from './localPathShortcut.vue'
import { useGlobalStore } from '@/store/useGlobalStore'
import { onBeforeUnmount } from 'vue'
import { watch } from 'vue'
const props = defineProps<{ tabIdx: number, paneIdx: number }>()
@ -25,36 +26,41 @@ const loadNum = ref(10)
onBeforeUnmount(() => {
pollTaskMap.forEach(v => v.clearTask())
})
const canProcessQueue = ref(false)
watch([() => store.pendingBaiduyunTaskQueue, canProcessQueue], async ([q, can]) => {
if (!q.length || !can) {
return
}
console.log('processQueue', q)
for (const task of q) {
tasks.value.unshift(ID({ ...getEmptyTask(), ...task }))
createNewTask(0).then(() => message.success('创建完成,在任务列表查看进度'))
}
store.pendingBaiduyunTaskQueue = []
}, { deep: true, immediate: true })
globalStore.waitTaskRecordLoaded = new Promise(resolve => {
onMounted(async () => {
const resp = await getUploadTasks()
tasks.value = uniqBy([...resp.tasks, ...tasks.value].map(ID), v => v.id) //
.sort((a, b) => Date.parse(b.start_time) - Date.parse(a.start_time))
.slice(0, 100)
let runningTasks = tasks.value.filter(v => v.running)
runningTasks.filter(task => !resp.tasks.find(beTask => beTask.id === task.id)).forEach(task => { //
task.running = false
})
runningTasks = tasks.value.filter(v => v.running)
if (runningTasks.length) {
runningTasks.forEach(v => {
createPollTask(v.id).completedTask.then(() => message.success(`${v.type === 'download' ? '下载' : '上传'}完成`))
})
}
if (!tasks.value.length) {
addEmptyTask()
}
resolve()
onMounted(async () => {
const resp = await getUploadTasks()
tasks.value = uniqBy([...resp.tasks, ...tasks.value].map(ID), v => v.id) //
.sort((a, b) => Date.parse(b.start_time) - Date.parse(a.start_time))
.slice(0, 100)
let runningTasks = tasks.value.filter(v => v.running)
runningTasks.filter(task => !resp.tasks.find(beTask => beTask.id === task.id)).forEach(task => { //
task.running = false
})
runningTasks = tasks.value.filter(v => v.running)
if (runningTasks.length) {
runningTasks.forEach(v => {
createPollTask(v.id).completedTask.then(() => message.success(`${v.type === 'download' ? '下载' : '上传'}完成`))
})
}
if (!tasks.value.length) {
addEmptyTask()
}
canProcessQueue.value = true
console.log('task record load')
})
globalStore.useEventListen('createNewTask', async task => {
tasks.value.unshift(ID({ ...getEmptyTask(), ...task }))
await createNewTask(0)
message.success('创建完成,在任务列表查看进度')
})
const getEmptyTask = () => ID({
type: 'upload',
send_dirs: [],

View File

@ -63,13 +63,11 @@ export const useGlobalStore = defineStore('useGlobalStore', () => {
lastTabListRecord.value = lastTabListRecord.value.slice(0, 2) as any
}
const waitTaskRecordLoaded = ref(Promise.resolve())
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: '任务记录' })
}
await nextTick()
await waitTaskRecordLoaded.value
}
const openLogDetailInRight = async (tabIdx: number, id: string) => {
const tab = tabList.value[tabIdx + 1]
@ -95,7 +93,6 @@ export const useGlobalStore = defineStore('useGlobalStore', () => {
saveRecord,
recent, lastTabListRecord,
openLogDetailInRight,
waitTaskRecordLoaded,
createTaskRecordPaneIfNotExist,
...typedEventEmitter<{ createNewTask: Partial<UploadTaskSummary> }>()
}

View File

@ -9,7 +9,10 @@ export const useTaskListStore = defineStore('useTaskListStore', () => {
const queue = reactive(new FetchQueue())
const pollInterval = ref(3)
const tasks = ref<WithId<UploadTaskSummary>[]>([])
/**
* taskRecord
*/
const pendingBaiduyunTaskQueue = reactive([] as Partial<UploadTaskSummary>[])
const showDirAutoCompletedIdx = ref(-1)
const baiduyunInstalled = ref(null as null | Promise<boolean>)
const checkBaiduyunInstalled = async () => {
@ -18,6 +21,7 @@ export const useTaskListStore = defineStore('useTaskListStore', () => {
}
return baiduyunInstalled.value
}
return {
checkBaiduyunInstalled,
baiduyunInstalled,
@ -25,7 +29,8 @@ export const useTaskListStore = defineStore('useTaskListStore', () => {
taskLogMap,
queue,
tasks,
showDirAutoCompletedIdx
showDirAutoCompletedIdx,
pendingBaiduyunTaskQueue
}
}, {
persist: {