修复拖拽错误,创建任务可能不成功
parent
749fab8d6f
commit
e1a0a38096
|
|
@ -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
|
|
@ -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;
|
||||
|
|
@ -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};
|
||||
|
|
@ -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
|
|
@ -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};
|
||||
|
|
@ -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};
|
||||
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 +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};
|
||||
|
|
@ -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};
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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: [],
|
||||
|
|
|
|||
|
|
@ -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> }>()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
Loading…
Reference in New Issue