From bf12e7033971a2bef109fe7c495e1eefaa5db9bc Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Tue, 27 Jan 2026 00:39:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/inventory.cpython-312.pyc | Bin 0 -> 40506 bytes .../app/web-gold/src/views/auth/Login.vue | 21 +- .../src/views/content-style/Benchmark.vue | 73 +- .../components/BenchmarkForm.vue | 47 +- .../components/BenchmarkTable.vue | 52 ++ .../composables/useBenchmarkData.js | 17 + .../src/views/system/style-settings/index.vue | 1 - package-lock.json | 724 ++++++++++++++++++ package.json | 6 + .../src/main/resources/application.yaml | 2 +- 10 files changed, 896 insertions(+), 47 deletions(-) create mode 100644 .claude/skills/pptx/scripts/__pycache__/inventory.cpython-312.pyc create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.claude/skills/pptx/scripts/__pycache__/inventory.cpython-312.pyc b/.claude/skills/pptx/scripts/__pycache__/inventory.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46c9fe2ee7f2448301be0d2bed1020f78c4e582b GIT binary patch literal 40506 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 by{~yVqazw#F_gS-wEWXP9Dl}Aw&4C>0^aHP literal 0 HcmV?d00001 diff --git a/frontend/app/web-gold/src/views/auth/Login.vue b/frontend/app/web-gold/src/views/auth/Login.vue index db8be3dcf7..d7cd43b05f 100644 --- a/frontend/app/web-gold/src/views/auth/Login.vue +++ b/frontend/app/web-gold/src/views/auth/Login.vue @@ -430,10 +430,11 @@ onBeforeUnmount(() => { :deep(.ant-input-affix-wrapper) { border-radius: 12px !important; background: #f8fafc !important; - border: 1.5px solid #e2e8f0 !important; + border: 1.5px solid transparent !important; box-shadow: none !important; transition: all 0.2s ease !important; height: 48px !important; + box-sizing: border-box !important; } :deep(.ant-input-affix-wrapper:hover) { @@ -445,6 +446,7 @@ onBeforeUnmount(() => { border-color: #3B82F6 !important; background: #ffffff !important; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1) !important; + margin: 0 !important; } :deep(.ant-input) { @@ -467,24 +469,29 @@ onBeforeUnmount(() => { font-weight: 500; color: #334155; font-size: 14px; + margin-bottom: 8px; + display: block; } :deep(.ant-input-affix-wrapper:focus-within) { outline: none; } +:deep(.ant-form-item) { + margin-bottom: 28px; +} + +:deep(.ant-form-item-control) { + min-height: 48px; + position: relative; +} + /* 表单验证错误状态 */ :deep(.ant-form-item-has-error .ant-input-affix-wrapper) { border-color: #ef4444 !important; background: #ffffff !important; } -:deep(.ant-form-item-explain-error) { - color: #ef4444; - font-size: 13px; - margin-top: 4px; -} - /* ========== 验证码输入 ========== */ .code-input { display: flex; diff --git a/frontend/app/web-gold/src/views/content-style/Benchmark.vue b/frontend/app/web-gold/src/views/content-style/Benchmark.vue index 5c7f92e9ef..26c04627bf 100644 --- a/frontend/app/web-gold/src/views/content-style/Benchmark.vue +++ b/frontend/app/web-gold/src/views/content-style/Benchmark.vue @@ -25,6 +25,7 @@ const { saveTableDataToSession, loadTableDataFromSession, processApiResponse, + appendData, clearData, } = useBenchmarkData() @@ -51,6 +52,10 @@ const batchPromptTextCount = ref(0) const savePromptModalVisible = ref(false) const savePromptContent = ref('') +const maxCursor = ref(0) +const hasMore = ref(false) +const loadingMore = ref(false) + async function handleAnalyzeUser() { const sec_user_id = resolveId(form.value.url, { queryKeys: ['user'], @@ -61,6 +66,10 @@ async function handleAnalyzeUser() { } loading.value = true + maxCursor.value = 0 + hasMore.value = false + await clearData() + const req = await TikhubService.postTikHup({ type: InterfaceType.DOUYIN_WEB_USER_POST_VIDEOS, methodType: MethodType.GET, @@ -75,7 +84,9 @@ async function handleAnalyzeUser() { try { const resp = await req - processApiResponse(resp, form.value.platform) + const result = processApiResponse(resp, form.value.platform) + maxCursor.value = result.maxCursor + hasMore.value = result.hasMore await saveTableDataToSession() message.success('分析完成') } catch (err) { @@ -164,9 +175,64 @@ async function handleBatchAnalyze() { async function handleResetForm() { form.value = { platform: '抖音', url: '', count: 20, sort_type: 0 } + maxCursor.value = 0 + hasMore.value = false await clearData() } +async function handleLoadMore() { + const sec_user_id = resolveId(form.value.url, { + queryKeys: ['user'], + pathPatterns: ['/user/:id'], + }) + if (!sec_user_id) { + return + } + + loadingMore.value = true + const req = await TikhubService.postTikHup({ + type: InterfaceType.DOUYIN_WEB_USER_POST_VIDEOS, + methodType: MethodType.GET, + urlParams: { + sec_user_id, + max_cursor: maxCursor.value, + type: 'tik-app', + sort_type: form.value.sort_type, + count: form.value.count || 20, + }, + }) + + try { + const resp = await req + + if (form.value.platform === '抖音') { + const { mapFromDouyin } = await import('./utils/benchmarkUtils') + const awemeList = resp?.data?.aweme_list || [] + const newItems = mapFromDouyin(awemeList) + appendData(newItems) + + maxCursor.value = resp?.data?.max_cursor || 0 + hasMore.value = resp?.data?.has_more || !(awemeList.length < (resp?.data?.count || 20)) + } else { + const { mapFromXhs } = await import('./utils/benchmarkUtils') + const notes = resp?.data?.notes || resp?.data?.data || [] + const newItems = mapFromXhs(notes) + appendData(newItems) + + maxCursor.value = resp?.data?.max_cursor || 0 + hasMore.value = resp?.data?.has_more || false + } + + await saveTableDataToSession() + message.success(`已加载 ${data.value.length} 条数据`) + } catch (err) { + console.error(err) + message.error('加载失败,请稍后重试') + } finally { + loadingMore.value = false + } +} + function handleCopyBatchPrompt(prompt) { if (!prompt?.trim()) { message.warning('没有提示词可复制') @@ -224,11 +290,14 @@ defineOptions({ name: 'ContentStyleBenchmark' }) :data="data" v-model:selectedRowKeys="selectedRowKeys" :loading="loading" + :loading-more="loadingMore" + :has-more="hasMore" @export="handleExportToExcel" @batch-analyze="handleBatchAnalyze" + @load-more="handleLoadMore" /> -
+
diff --git a/frontend/app/web-gold/src/views/content-style/components/BenchmarkTable.vue b/frontend/app/web-gold/src/views/content-style/components/BenchmarkTable.vue index 4e7fe094d3..0b5dbeb17f 100644 --- a/frontend/app/web-gold/src/views/content-style/components/BenchmarkTable.vue +++ b/frontend/app/web-gold/src/views/content-style/components/BenchmarkTable.vue @@ -16,12 +16,21 @@ import GradientButton from '@/components/GradientButton.vue' type: Boolean, default: false, }, + loadingMore: { + type: Boolean, + default: false, + }, + hasMore: { + type: Boolean, + default: false, + }, }) const emit = defineEmits([ 'update:selectedRowKeys', 'export', 'batchAnalyze', + 'loadMore', ]) const defaultColumns = [ @@ -78,6 +87,7 @@ function onSelectChange(selectedKeys) { :row-selection="{ selectedRowKeys, onChange: onSelectChange }" :rowKey="(record) => String(record.id)" :loading="loading" + :scroll="{ y: 'calc(100vh - 400px)' }" class="benchmark-table"> +
@@ -187,5 +212,32 @@ function onSelectChange(selectedKeys) { cursor: pointer; user-select: none; } + +.load-more-footer { + padding: 16px; + text-align: center; + border-top: 1px solid var(--color-border); +} + +.load-more-footer .ant-btn { + max-width: 200px; + height: 40px; + font-size: 14px; + border-radius: 8px; +} + +.load-more-hint { + margin-top: 8px; + font-size: 12px; + color: var(--color-text-secondary); +} + +.no-more-hint { + padding: 12px; + text-align: center; + font-size: 12px; + color: var(--color-text-secondary); + border-top: 1px solid var(--color-border); +} diff --git a/frontend/app/web-gold/src/views/content-style/composables/useBenchmarkData.js b/frontend/app/web-gold/src/views/content-style/composables/useBenchmarkData.js index d051003bcd..90c77cfc30 100644 --- a/frontend/app/web-gold/src/views/content-style/composables/useBenchmarkData.js +++ b/frontend/app/web-gold/src/views/content-style/composables/useBenchmarkData.js @@ -40,12 +40,28 @@ export function useBenchmarkData() { console.log('抖音返回的原始数据:', awemeList[0]) data.value = mapFromDouyin(awemeList) console.log('映射后的第一条数据:', data.value[0]) + + return { + maxCursor: resp?.data?.max_cursor || 0, + hasMore: resp?.data?.has_more || !(resp?.data?.aweme_list?.length < (resp?.data?.count || 20)), + count: data.value.length, + } } else { const notes = resp?.data?.notes || resp?.data?.data || [] data.value = mapFromXhs(notes) + + return { + maxCursor: resp?.data?.max_cursor || 0, + hasMore: resp?.data?.has_more || false, + count: data.value.length, + } } } + function appendData(newItems) { + data.value = [...data.value, ...newItems] + } + async function clearData() { data.value = [] selectedRowKeys.value = [] @@ -60,6 +76,7 @@ export function useBenchmarkData() { saveTableDataToSession, loadTableDataFromSession, processApiResponse, + appendData, clearData, } } diff --git a/frontend/app/web-gold/src/views/system/style-settings/index.vue b/frontend/app/web-gold/src/views/system/style-settings/index.vue index 1cd3e1b337..707839b50d 100644 --- a/frontend/app/web-gold/src/views/system/style-settings/index.vue +++ b/frontend/app/web-gold/src/views/system/style-settings/index.vue @@ -449,7 +449,6 @@ onMounted(() => { } .filter-button { - min-width: 80px; @media (max-width: 767px) { min-width: auto; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..8921fd37fd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,724 @@ +{ + "name": "sionrui", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "pptxgenjs": "^4.0.1", + "sharp": "^0.34.5" + } + }, + "node_modules/.pnpm/@types+node@25.0.6": { + "extraneous": true + }, + "node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types": { + "version": "7.16.0", + "extraneous": true, + "license": "MIT" + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/https": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/https/-/https-1.0.0.tgz", + "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==", + "license": "ISC" + }, + "node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/pptxgenjs": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pptxgenjs/-/pptxgenjs-4.0.1.tgz", + "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==", + "license": "MIT", + "dependencies": { + "@types/node": "^22.8.1", + "https": "^1.0.0", + "image-size": "^1.2.1", + "jszip": "^3.10.1" + } + }, + "node_modules/pptxgenjs/node_modules/@types/node": { + "version": "22.19.7", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmmirror.com/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000..4c6aff5cb4 --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "pptxgenjs": "^4.0.1", + "sharp": "^0.34.5" + } +} diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index f09294d187..10e9f8e4c8 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -333,7 +333,7 @@ yudao: sms-code: # 短信验证码相关的配置项 expire-times: 10m send-frequency: 1m - send-maximum-quantity-per-day: 10 + send-maximum-quantity-per-day: 15 begin-code: 1000 # 这里配置 9999 的原因是,测试方便。 end-code: 9999 # 这里配置 9999 的原因是,测试方便。 trade: