From 3e5467c69c233a3360dc6b2a0829f94c37b56740 Mon Sep 17 00:00:00 2001 From: huankong233 Date: Sat, 23 May 2026 01:41:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[*]=20=E4=BC=98=E5=8C=96=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E9=80=BB=E8=BE=91=20[*]=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86id=E9=94=81=E6=AD=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [*] 修复无法转存分享链接异常判断问题 --- apps/backend/src/jobs/transferFile.ts | 16 ++++++++++------ .../src/hooks/useProSearchFormPlus.ts | 4 +++- .../src/stores/Admin/accountsStore.ts | 7 +++++++ .../src/stores/Admin/shareLinksStore.ts | 6 ++++++ .../src/stores/User/downloadTicketStore.ts | 4 ++++ package.json | 2 +- 6 files changed, 31 insertions(+), 8 deletions(-) diff --git a/apps/backend/src/jobs/transferFile.ts b/apps/backend/src/jobs/transferFile.ts index 837dfc3..686153a 100644 --- a/apps/backend/src/jobs/transferFile.ts +++ b/apps/backend/src/jobs/transferFile.ts @@ -237,12 +237,16 @@ const transferFileWorker: Processor item.uk === userInfo.response.data.uk) + if (keyUserData) { + // 判断分享链接是否过期 + if (dayjs(keyUserData.ctime).add(1, 'year').isBefore(dayjs())) { + return status(500, { + message: '转存文件失败: 分享链接已过期, 请联系管理员', + data: null, + }) + } } // 更新卡密的过期时间 diff --git a/apps/frontend-vue/src/hooks/useProSearchFormPlus.ts b/apps/frontend-vue/src/hooks/useProSearchFormPlus.ts index 86786ff..fbcd37a 100644 --- a/apps/frontend-vue/src/hooks/useProSearchFormPlus.ts +++ b/apps/frontend-vue/src/hooks/useProSearchFormPlus.ts @@ -18,6 +18,7 @@ export interface UseProSearchFormPlusOptions { /** 搜索表单卡片标题 */ title?: string searchFormItemStyle?: string + formProps?: Omit, 'columns' | 'rules' | 'initValues' | 'value' | 'onUpdate:value'> } export interface ProSearchFormPlusReturn { @@ -28,7 +29,7 @@ export interface ProSearchFormPlusReturn { } export function useProSearchFormPlus(options: UseProSearchFormPlusOptions): ProSearchFormPlusReturn { - const { columns, initValues, rules, title, searchFormItemStyle } = options + const { columns, initValues, rules, title, searchFormItemStyle, formProps } = options const formValues = ref(structuredClone(initValues)) const computedColumns = computed(() => columns()) @@ -47,6 +48,7 @@ export function useProSearchFormPlus(options: UseProSearchForm 'rules': computedRules.value, 'title': title ?? '搜索', searchFormItemStyle, + ...formProps, })), formValues, rules: computedRules, diff --git a/apps/frontend-vue/src/stores/Admin/accountsStore.ts b/apps/frontend-vue/src/stores/Admin/accountsStore.ts index 4e6638c..7526d89 100644 --- a/apps/frontend-vue/src/stores/Admin/accountsStore.ts +++ b/apps/frontend-vue/src/stores/Admin/accountsStore.ts @@ -9,6 +9,7 @@ import { useAsyncJob } from '@frontend/hooks/useAsyncJob.ts' import { useProDataTablePlus } from '@frontend/hooks/useProDataTablePlus.ts' import { useProModalForm } from '@frontend/hooks/useProModalForm.ts' import { useRouteQueryWatcher } from '@frontend/hooks/useRouteQueryWatcher.ts' +import { router } from '@frontend/router/index.ts' import { copyText } from '@frontend/utils/copyText.ts' import { dialog, notification } from '@frontend/utils/discreteApi.ts' import { renderIcon } from '@frontend/utils/renderIcon.ts' @@ -303,6 +304,12 @@ export const useAccountsStore = defineStore('admin_accounts', () => { }, ], initValues: {}, + formProps: { + onReset() { + router.replace({ query: {} }) + accountSearchFormValues.value.id = undefined + }, + }, }, ) diff --git a/apps/frontend-vue/src/stores/Admin/shareLinksStore.ts b/apps/frontend-vue/src/stores/Admin/shareLinksStore.ts index 0d5b155..1a99bc2 100644 --- a/apps/frontend-vue/src/stores/Admin/shareLinksStore.ts +++ b/apps/frontend-vue/src/stores/Admin/shareLinksStore.ts @@ -202,6 +202,12 @@ export const useShareLinksStore = defineStore('admin_share_links', () => { }, ], initValues: {}, + formProps: { + onReset() { + router.replace({ query: {} }) + shareLinkSearchFormValues.value.id = undefined + }, + }, }, ) diff --git a/apps/frontend-vue/src/stores/User/downloadTicketStore.ts b/apps/frontend-vue/src/stores/User/downloadTicketStore.ts index 3cbc49a..a01a2da 100644 --- a/apps/frontend-vue/src/stores/User/downloadTicketStore.ts +++ b/apps/frontend-vue/src/stores/User/downloadTicketStore.ts @@ -124,6 +124,7 @@ export const useDownloadTicketStore = defineStore('user_download_ticket', () => const { url, pwd } = parseBaiduShareLink(fileListSearchFormValues.value.surl) if (url !== '') { fileListSearchFormValues.value.surl = url + fileListSearchFormValues.value.dir = '/' } if (pwd !== '') { fileListSearchFormValues.value.pwd = pwd @@ -148,6 +149,9 @@ export const useDownloadTicketStore = defineStore('user_download_ticket', () => surl: '', dir: '/', }, + formProps: { + hideResetButton: true, + }, title: '分享链接信息', searchFormItemStyle: 'width: 100% !important;', }, diff --git a/package.json b/package.json index 1e10943..03d5b65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bdwp-ts", - "version": "0.0.1", + "version": "0.0.2", "scripts": { "dev": "monorepo-commander dev apps/backend,apps/frontend-vue", "typecheck": "bun run --workspaces typecheck", From bc197e1f647b913048aeece66f795348953f206b Mon Sep 17 00:00:00 2001 From: huankong233 Date: Sat, 23 May 2026 01:50:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[*]=20=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=BD=AC=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/backend/src/jobs/transferFile.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/src/jobs/transferFile.ts b/apps/backend/src/jobs/transferFile.ts index 686153a..18dd383 100644 --- a/apps/backend/src/jobs/transferFile.ts +++ b/apps/backend/src/jobs/transferFile.ts @@ -241,7 +241,7 @@ const transferFileWorker: Processor item.uk === userInfo.response.data.uk) if (keyUserData) { // 判断分享链接是否过期 - if (dayjs(keyUserData.ctime).add(1, 'year').isBefore(dayjs())) { + if (dayjs(keyUserData.ctime * 1000).add(1, 'year').isBefore(dayjs())) { return status(500, { message: '转存文件失败: 分享链接已过期, 请联系管理员', data: null,