前端优化
arm-ffmpeg DockerFile
This commit is contained in:
+5
-11
@@ -1,24 +1,18 @@
|
||||
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal-arm64v8 AS base
|
||||
# 使用 Ubuntu 20.04 的 .NET 6 运行时镜像
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0-focal AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 10101
|
||||
|
||||
RUN echo "deb http://mirrors.aliyun.com/debian/ bookworm main non-free contrib" > /etc/apt/sources.list && \
|
||||
echo "deb http://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list && \
|
||||
echo "deb http://mirrors.aliyun.com/debian/ bookworm-updates main non-free contrib" >> /etc/apt/sources.list && \
|
||||
echo "deb http://mirrors.aliyun.com/debian/ bookworm-backports main non-free contrib" >> /etc/apt/sources.list && \
|
||||
apt-get update && \
|
||||
# 安装 ffmpeg (Ubuntu 的 universe 仓库包含 ffmpeg)
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends ffmpeg && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN ffmpeg -version
|
||||
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV ASPNETCORE_URLS=http://*:10101
|
||||
ENV TZ=Asia/Shanghai
|
||||
ENV DOWN_IMGVIDEO=1
|
||||
ENTRYPOINT ["dotnet", "dy.net.dll"]
|
||||
|
||||
ENTRYPOINT ["dotnet", "dy.net.dll"]
|
||||
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<_PublishTargetUrl>E:\code\dysync\bin\Release\net6.0\publish\</_PublishTargetUrl>
|
||||
<History>True|2025-11-25T06:08:53.3850967Z||;True|2025-11-24T23:53:54.4283003+08:00||;True|2025-11-24T23:41:15.8248332+08:00||;True|2025-11-24T23:33:57.1844427+08:00||;True|2025-11-24T23:31:54.9228836+08:00||;True|2025-11-24T23:24:15.8681502+08:00||;True|2025-11-24T23:22:57.9046229+08:00||;True|2025-11-24T23:18:04.1131647+08:00||;True|2025-11-24T22:47:54.1336448+08:00||;True|2025-11-24T22:47:18.3613833+08:00||;True|2025-11-24T08:17:50.3994607+08:00||;True|2025-11-24T08:07:00.9951205+08:00||;True|2025-11-23T23:34:50.0030826+08:00||;True|2025-11-23T23:32:36.7452616+08:00||;True|2025-11-22T23:18:56.3202345+08:00||;True|2025-11-22T22:52:51.7203302+08:00||;True|2025-11-22T22:52:42.9620946+08:00||;True|2025-11-22T22:52:09.8257640+08:00||;True|2025-11-22T22:39:31.5894141+08:00||;True|2025-11-22T22:31:11.0704815+08:00||;True|2025-11-22T22:20:36.4579131+08:00||;True|2025-11-22T22:19:10.2281364+08:00||;True|2025-11-22T19:34:45.9336901+08:00||;True|2025-11-12T23:06:38.7834109+08:00||;False|2025-11-12T23:01:02.2269478+08:00||;True|2025-10-22T22:08:11.6423148+08:00||;True|2025-10-22T21:54:24.7180547+08:00||;True|2025-10-22T21:40:03.5194315+08:00||;True|2025-10-22T21:28:28.8962766+08:00||;True|2025-10-22T21:22:47.9631689+08:00||;True|2025-10-22T21:18:24.5274318+08:00||;True|2025-10-22T21:14:51.6386326+08:00||;False|2025-10-22T21:14:07.6282769+08:00||;True|2025-10-22T21:03:48.9892860+08:00||;True|2025-10-22T21:00:56.3617243+08:00||;False|2025-10-22T21:00:30.5472941+08:00||;True|2025-10-22T20:51:29.6155916+08:00||;False|2025-10-22T20:50:47.1882956+08:00||;True|2025-10-22T15:01:04.1668366+08:00||;True|2025-10-22T14:49:43.6340569+08:00||;True|2025-10-22T14:38:39.4685603+08:00||;True|2025-10-21T18:35:28.8392541+08:00||;True|2025-10-20T10:31:05.5865212+08:00||;True|2025-10-20T10:20:41.5717101+08:00||;True|2025-10-19T10:08:33.6669332+08:00||;False|2025-10-19T10:07:22.3337545+08:00||;False|2025-10-19T10:05:22.9484805+08:00||;True|2025-10-10T16:54:27.1472888+08:00||;False|2025-10-10T16:53:44.1700030+08:00||;False|2025-10-10T16:52:48.1740453+08:00||;False|2025-10-10T16:51:21.5067253+08:00||;False|2025-10-10T16:50:19.2140597+08:00||;False|2025-10-10T16:49:21.2213290+08:00||;False|2025-10-10T16:48:47.7229948+08:00||;False|2025-10-10T16:48:15.1258700+08:00||;True|2025-09-30T13:29:42.2354235+08:00||;True|2025-09-25T11:44:52.6858389+08:00||;True|2025-09-25T11:08:27.8810109+08:00||;True|2025-09-25T09:28:50.2563374+08:00||;True|2025-09-24T16:14:02.3072184+08:00||;True|2025-09-23T22:38:52.4414757+08:00||;True|2025-09-23T22:19:07.1006356+08:00||;True|2025-09-23T22:18:01.5945225+08:00||;True|2025-09-23T22:06:15.6293613+08:00||;True|2025-09-23T21:53:14.2977444+08:00||;True|2025-09-23T21:46:55.2322411+08:00||;False|2025-09-23T21:45:23.7858854+08:00||;False|2025-09-23T21:03:51.8325689+08:00||;True|2025-09-23T10:03:32.2251920+08:00||;False|2025-09-23T09:38:08.2372201+08:00||;False|2025-09-23T09:37:49.9390545+08:00||;True|2024-03-11T21:31:45.8102398+08:00||;True|2024-03-11T07:26:24.7660541+08:00||;True|2024-03-08T22:08:40.0154831+08:00||;True|2024-03-03T10:14:36.8109114+08:00||;True|2024-03-02T18:44:57.3288537+08:00||;True|2024-01-24T17:51:37.9164415+08:00||;True|2024-01-24T16:36:50.5612157+08:00||;True|2024-01-24T15:51:35.7556653+08:00||;True|2024-01-17T23:40:40.7526618+08:00||;True|2024-01-17T23:36:10.3692844+08:00||;True|2024-01-17T23:22:03.2378834+08:00||;True|2024-01-03T11:35:44.7118292+08:00||;True|2024-01-03T11:11:23.4270453+08:00||;True|2024-01-03T11:04:35.2081526+08:00||;True|2024-01-03T10:57:03.7053107+08:00||;True|2024-01-03T10:51:50.7463989+08:00||;False|2024-01-03T10:50:24.9775312+08:00||;True|2024-01-03T10:47:30.1128183+08:00||;True|2024-01-03T10:42:55.8640657+08:00||;True|2024-01-03T09:24:24.3436056+08:00||;True|2024-01-02T23:40:38.2001198+08:00||;True|2024-01-02T23:08:36.7230444+08:00||;True|2024-01-02T22:53:43.9658255+08:00||;True|2024-01-02T22:25:38.5545279+08:00||;False|2024-01-02T22:24:42.6577609+08:00||;True|2024-01-02T22:04:33.4708889+08:00||;True|2024-01-02T21:49:57.9249898+08:00||;True|2023-12-28T22:42:58.5976180+08:00||;True|2023-12-28T22:24:09.2051205+08:00||;</History>
|
||||
<History>True|2025-11-25T16:00:42.1507258Z||;True|2025-11-26T00:00:17.0107229+08:00||;True|2025-11-25T23:42:07.4349629+08:00||;False|2025-11-25T23:41:56.9328658+08:00||;True|2025-11-25T23:19:32.5262917+08:00||;True|2025-11-25T14:08:53.3850967+08:00||;True|2025-11-24T23:53:54.4283003+08:00||;True|2025-11-24T23:41:15.8248332+08:00||;True|2025-11-24T23:33:57.1844427+08:00||;True|2025-11-24T23:31:54.9228836+08:00||;True|2025-11-24T23:24:15.8681502+08:00||;True|2025-11-24T23:22:57.9046229+08:00||;True|2025-11-24T23:18:04.1131647+08:00||;True|2025-11-24T22:47:54.1336448+08:00||;True|2025-11-24T22:47:18.3613833+08:00||;True|2025-11-24T08:17:50.3994607+08:00||;True|2025-11-24T08:07:00.9951205+08:00||;True|2025-11-23T23:34:50.0030826+08:00||;True|2025-11-23T23:32:36.7452616+08:00||;True|2025-11-22T23:18:56.3202345+08:00||;True|2025-11-22T22:52:51.7203302+08:00||;True|2025-11-22T22:52:42.9620946+08:00||;True|2025-11-22T22:52:09.8257640+08:00||;True|2025-11-22T22:39:31.5894141+08:00||;True|2025-11-22T22:31:11.0704815+08:00||;True|2025-11-22T22:20:36.4579131+08:00||;True|2025-11-22T22:19:10.2281364+08:00||;True|2025-11-22T19:34:45.9336901+08:00||;True|2025-11-12T23:06:38.7834109+08:00||;False|2025-11-12T23:01:02.2269478+08:00||;True|2025-10-22T22:08:11.6423148+08:00||;True|2025-10-22T21:54:24.7180547+08:00||;True|2025-10-22T21:40:03.5194315+08:00||;True|2025-10-22T21:28:28.8962766+08:00||;True|2025-10-22T21:22:47.9631689+08:00||;True|2025-10-22T21:18:24.5274318+08:00||;True|2025-10-22T21:14:51.6386326+08:00||;False|2025-10-22T21:14:07.6282769+08:00||;True|2025-10-22T21:03:48.9892860+08:00||;True|2025-10-22T21:00:56.3617243+08:00||;False|2025-10-22T21:00:30.5472941+08:00||;True|2025-10-22T20:51:29.6155916+08:00||;False|2025-10-22T20:50:47.1882956+08:00||;True|2025-10-22T15:01:04.1668366+08:00||;True|2025-10-22T14:49:43.6340569+08:00||;True|2025-10-22T14:38:39.4685603+08:00||;True|2025-10-21T18:35:28.8392541+08:00||;True|2025-10-20T10:31:05.5865212+08:00||;True|2025-10-20T10:20:41.5717101+08:00||;True|2025-10-19T10:08:33.6669332+08:00||;False|2025-10-19T10:07:22.3337545+08:00||;False|2025-10-19T10:05:22.9484805+08:00||;True|2025-10-10T16:54:27.1472888+08:00||;False|2025-10-10T16:53:44.1700030+08:00||;False|2025-10-10T16:52:48.1740453+08:00||;False|2025-10-10T16:51:21.5067253+08:00||;False|2025-10-10T16:50:19.2140597+08:00||;False|2025-10-10T16:49:21.2213290+08:00||;False|2025-10-10T16:48:47.7229948+08:00||;False|2025-10-10T16:48:15.1258700+08:00||;True|2025-09-30T13:29:42.2354235+08:00||;True|2025-09-25T11:44:52.6858389+08:00||;True|2025-09-25T11:08:27.8810109+08:00||;True|2025-09-25T09:28:50.2563374+08:00||;True|2025-09-24T16:14:02.3072184+08:00||;True|2025-09-23T22:38:52.4414757+08:00||;True|2025-09-23T22:19:07.1006356+08:00||;True|2025-09-23T22:18:01.5945225+08:00||;True|2025-09-23T22:06:15.6293613+08:00||;True|2025-09-23T21:53:14.2977444+08:00||;True|2025-09-23T21:46:55.2322411+08:00||;False|2025-09-23T21:45:23.7858854+08:00||;False|2025-09-23T21:03:51.8325689+08:00||;True|2025-09-23T10:03:32.2251920+08:00||;False|2025-09-23T09:38:08.2372201+08:00||;False|2025-09-23T09:37:49.9390545+08:00||;True|2024-03-11T21:31:45.8102398+08:00||;True|2024-03-11T07:26:24.7660541+08:00||;True|2024-03-08T22:08:40.0154831+08:00||;True|2024-03-03T10:14:36.8109114+08:00||;True|2024-03-02T18:44:57.3288537+08:00||;True|2024-01-24T17:51:37.9164415+08:00||;True|2024-01-24T16:36:50.5612157+08:00||;True|2024-01-24T15:51:35.7556653+08:00||;True|2024-01-17T23:40:40.7526618+08:00||;True|2024-01-17T23:36:10.3692844+08:00||;True|2024-01-17T23:22:03.2378834+08:00||;True|2024-01-03T11:35:44.7118292+08:00||;True|2024-01-03T11:11:23.4270453+08:00||;True|2024-01-03T11:04:35.2081526+08:00||;True|2024-01-03T10:57:03.7053107+08:00||;True|2024-01-03T10:51:50.7463989+08:00||;False|2024-01-03T10:50:24.9775312+08:00||;True|2024-01-03T10:47:30.1128183+08:00||;True|2024-01-03T10:42:55.8640657+08:00||;True|2024-01-03T09:24:24.3436056+08:00||;True|2024-01-02T23:40:38.2001198+08:00||;True|2024-01-02T23:08:36.7230444+08:00||;True|2024-01-02T22:53:43.9658255+08:00||;True|2024-01-02T22:25:38.5545279+08:00||;</History>
|
||||
<LastFailureDetails />
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -66,21 +66,19 @@ Cookie 及 `sec_user_id` 是同步功能的核心,需严格按步骤获取,
|
||||
|
||||
---
|
||||
|
||||
## 🚀 4. 运行方式(推荐 Docker Compose,更易维护)
|
||||
## 🚀 4. 运行方式(推荐 Docker Compose)
|
||||
|
||||
|
||||
# Dysync.net Docker 镜像版本说明
|
||||
|
||||
本文档详细描述了 `jianzhichu/dysync.net` Docker 镜像的各个版本、其功能特性、适用架构以及镜像大小。
|
||||
|
||||
## 镜像版本总览
|
||||
## 镜像版本
|
||||
|
||||
| 镜像标签 | 架构 | 功能描述 | 镜像大小 | 适用场景 |
|
||||
|-----------------------------------|----------------|--------------------------------------------------------------------------|-----------|------------------------------|
|
||||
| `jianzhichu/dysync.net:latest` | x86_64 (amd64) | **标准版**<br>- 包含核心功能<br>- **不含 FFmpeg**<br>- 不能下载图文视频 | ~200M | 仅需基础功能,追求轻量部署 |
|
||||
| `jianzhichu/dysync.net:full_latest` | x86_64 (amd64) | **完整版**<br>- 包含全部核心功能<br>- **内置 FFmpeg**<br>- 支持图文视频下载与合成 | ~700M | 需要完整媒体处理能力的场景 |
|
||||
| `jianzhichu/dysync.net:arm_latest` | ARM64 | **ARM 标准版**<br>- 核心功能(与 `latest` 一致)<br>- **适配 ARM 架构** | ~200M | ARM 设备(如树莓派)的轻量部署 |
|
||||
| `jianzhichu/dysync.net:full_arm_latest` | ARM64 | **ARM 完整版**<br>- 完整功能(与 `full_latest` 一致)<br>- **适配 ARM 架构** | ~700M | ARM 设备的完整功能部署 |
|
||||
| `jianzhichu/dysync.net:full_arm_latest` | ARM64 | **ARM 完整版**<br>- 完整功能(与 `full_latest` 一致)<br>- **适配 ARM 架构** | ~500M | ARM 设备的完整功能部署 |
|
||||
| `jianzhichu/dysync.net:beta_1.0` | x86_64 (amd64) | **测试版 v1.0**<br>- 包含最新开发特性<br>- 功能可能不稳定<br>- 不含 FFmpeg | ~200M | 开发测试、尝鲜新功能 |
|
||||
|
||||
## 构建命令示例
|
||||
@@ -93,43 +91,43 @@ Cookie 及 `sec_user_id` 是同步功能的核心,需严格按步骤获取,
|
||||
将下方命令中的「本地路径」替换为你的实际路径,终端执行即可:
|
||||
```bash
|
||||
|
||||
### Arm设备请使用 registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:arm_1.0 版本镜像
|
||||
### 方式一:Docker 命令行
|
||||
docker run -d --restart=always \
|
||||
-v /你的/本地/收藏视频路径:/app/collect \
|
||||
-v /你的/本地/喜欢视频路径:/app/favorite \
|
||||
-v /你的/本地/数据库路径:/app/db \
|
||||
-v /你的/本地/博主视频路径:/app/uper \
|
||||
-p 10101:10101 \
|
||||
--name dysync2025 \
|
||||
registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net
|
||||
-v /opt/dysync/coll:/app/collect \
|
||||
-v /opt/dysync/favorite \
|
||||
-v /opt/dysync/db:/app/db \
|
||||
-v /opt/dysync/imgs:/app/images \
|
||||
-v /opt/dysync/uper:/app/uper \
|
||||
-p 10103:10101 \
|
||||
--name dysync_arm_full \
|
||||
registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
|
||||
# 注意:-p 后面的容器端口必须为 10101(源码固定)
|
||||
|
||||
|
||||
### 方式二:Docker Compose 运行(推荐)
|
||||
### Arm设备请使用 registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:arm_1.0 版本镜像
|
||||
创建 docker-compose.yml 文件,复制以下内容,替换「本地路径」后执行 docker-compose up -d:
|
||||
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
dysync:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net
|
||||
container_name: dysync2025
|
||||
restart: always
|
||||
image: registry.cn-hangzhou.aliyuncs.com/jianzhichu/dysync.net:latest
|
||||
container_name: dysync_arm_full # 容器名称
|
||||
restart: always # 总是重启
|
||||
ports:
|
||||
- "10101:10101"
|
||||
- "10101:10101" # 端口映射
|
||||
volumes:
|
||||
- /volume1/docker/dysync/db:/app/db
|
||||
|
||||
- /volume2/mediay/dysync:/app/collect
|
||||
- /volume2/mediay/dysync_fav:/app/favorite
|
||||
- /volume2/mediay/dysync_up:/app/uper
|
||||
- /opt/dysync/db:/app/db # 数据库目录
|
||||
- /opt/dysync/coll:/app/collect # 收集目录
|
||||
- /opt/dysync/favorite:/app/favorite # 收藏目录(补充了容器内路径)
|
||||
- /opt/dysync/imgs:/app/images # 图片目录
|
||||
- /opt/dysync/uper:/app/uper # 上传目录
|
||||
# 下面是多账号路径映射示例(可选)
|
||||
- /volume2/mediay/dysync2:/app/yeyeye
|
||||
- /volume2/mediay/dysync2_fav:/app/yeyeye_fav
|
||||
- /volume2/mediay/dysync2_up:/app/yeyeye_up
|
||||
# 配置DNS服务器(解决域名解析失败导致的无法访问外网)
|
||||
- /opt/dysync/coll2:/app/collect # 收集目录
|
||||
- /opt/dysync/favorite2:/app/favorite # 收藏目录(补充了容器内路径)
|
||||
- /opt/dysync/imgs2:/app/images # 图片目录
|
||||
- /opt/dysync/uper2:/app/uper # 上传目录
|
||||
# 配置DNS服务器(可选)
|
||||
network_mode: bridge
|
||||
dns:
|
||||
- 8.8.8.8 # Google DNS
|
||||
|
||||
@@ -148,6 +148,7 @@ function submit() {
|
||||
loading.value = false;
|
||||
if (res.code === 0) {
|
||||
showModal.value = false;
|
||||
message.success('修改成功,同步任务将在5-10秒按新配置运行...');
|
||||
reset();
|
||||
GetRecords();
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ const onSubmit = () => {
|
||||
.apiUpdateConfig(toRaw(formState))
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
message.success('配置修改生效,同步任务将按照新的规则执行');
|
||||
message.success('修改成功,同步任务将在5-10秒按新配置运行...');
|
||||
componentDisabled.value = true;
|
||||
} else {
|
||||
message.error(res.erro || '更新配置失败', 8);
|
||||
@@ -198,7 +198,7 @@ const onSubmit = () => {
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('更新配置失败:', error);
|
||||
message.error('更新配置失败,请稍后重试', 8);
|
||||
message.error('修改失败,请稍后重试', 8);
|
||||
});
|
||||
})
|
||||
.catch((error) => {
|
||||
|
||||
@@ -19,7 +19,14 @@
|
||||
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
|
||||
<a-space>
|
||||
<a-button type="primary" @click="GetRecords">查询</a-button>
|
||||
<a-button type="danger" @click="StartNow">立即同步</a-button>
|
||||
<!-- 核心修改点:绑定 disabled 属性 -->
|
||||
<a-button type="danger" @click="StartNow" :disabled="isSyncing">
|
||||
<!-- 可选:添加加载状态提示 -->
|
||||
<template #icon>
|
||||
<a-spin v-if="isSyncing" size="small" />
|
||||
</template>
|
||||
立即同步
|
||||
</a-button>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
@@ -27,6 +34,7 @@
|
||||
</a-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { defineComponent, reactive, ref } from 'vue';
|
||||
import { useApiStore } from '@/store';
|
||||
@@ -34,50 +42,45 @@ import type { UnwrapRef } from 'vue';
|
||||
import { onMounted } from 'vue';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
|
||||
import { message, Spin } from 'ant-design-vue'; // 引入 Spin 用于显示加载图标
|
||||
type RangeValue = [Dayjs, Dayjs];
|
||||
import 'dayjs/locale/zh-cn';
|
||||
dayjs.locale('zh-cn');
|
||||
|
||||
// ... (columns, loading, DataItem, datas, showImageViedo, QuaryParam, value1, ranges, quaryData 的定义保持不变)
|
||||
const columns = ref([
|
||||
{
|
||||
title: '同步时间',
|
||||
dataIndex: 'syncTimeStr',
|
||||
// sorter: true,
|
||||
align: 'center',
|
||||
width: 180,
|
||||
},
|
||||
{
|
||||
title: '同步类型',
|
||||
dataIndex: 'viedoTypeStr',
|
||||
// sorter: true,
|
||||
align: 'center',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '博主',
|
||||
dataIndex: 'author',
|
||||
// sorter: true,
|
||||
align: 'center',
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '视频类型',
|
||||
dataIndex: 'viedoCate',
|
||||
// sorter: true,
|
||||
width: 300,
|
||||
align: 'center',
|
||||
},
|
||||
|
||||
{
|
||||
title: '视频标题',
|
||||
dataIndex: 'videoTitle',
|
||||
// sorter: true,
|
||||
align: 'left',
|
||||
},
|
||||
|
||||
{
|
||||
title: 'Cookie',
|
||||
title: 'CK名称',
|
||||
dataIndex: 'dyUser',
|
||||
// sorter: true,
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
@@ -108,6 +111,7 @@ const quaryData: UnwrapRef<QuaryParam> = reactive({
|
||||
tag: '',
|
||||
viedoType: '*',
|
||||
});
|
||||
|
||||
const GetRecords = () => {
|
||||
loading.value = true;
|
||||
quaryData.pageIndex = pagination.value.current;
|
||||
@@ -125,9 +129,12 @@ const GetRecords = () => {
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
GetRecords();
|
||||
getConfig(); // 在 onMounted 中调用 getConfig
|
||||
});
|
||||
|
||||
const pagination = ref({
|
||||
current: 1,
|
||||
defaultPageSize: 10,
|
||||
@@ -140,9 +147,9 @@ const getConfig = () => {
|
||||
.apiGetConfig()
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
// 监听环境变量配置,控制是否显示图片视频下载选项
|
||||
showImageViedo.value = res.data.downImageVideoFromEnv;
|
||||
} else {
|
||||
// 可以在这里添加配置获取失败的处理
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
@@ -151,31 +158,58 @@ const getConfig = () => {
|
||||
};
|
||||
|
||||
const handleTableChange = (e) => {
|
||||
console.log(e);
|
||||
pagination.value.current = e.current;
|
||||
pagination.value.defaultPageSize = e.defaultPageSize;
|
||||
pagination.value.total = e.total;
|
||||
pagination.value.showTotal = () => `共 ${e.total} 条`;
|
||||
// 通常 total 是由后端返回的,这里不需要手动设置
|
||||
GetRecords();
|
||||
};
|
||||
|
||||
// 核心修改点:添加一个 ref 来控制按钮状态
|
||||
const isSyncing = ref(false);
|
||||
|
||||
const StartNow = () => {
|
||||
// 如果正在同步中,则直接返回,防止重复点击
|
||||
if (isSyncing.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
message.success('请耐心等待,同步任务正在启动...');
|
||||
isSyncing.value = true; // 开始同步,禁用按钮
|
||||
|
||||
useApiStore()
|
||||
.StartJobNow()
|
||||
.then((res) => {});
|
||||
.then((res) => {
|
||||
// 根据后端返回的状态码判断是否真正成功
|
||||
if (res.code === 0) {
|
||||
message.success('同步任务启动成功!');
|
||||
} else {
|
||||
message.error(`同步任务启动失败: ${res.message || '未知错误'}`);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('同步任务API调用失败:', error);
|
||||
message.error('同步任务启动失败,请检查网络或联系管理员。');
|
||||
})
|
||||
.finally(() => {
|
||||
isSyncing.value = false; // 无论成功失败,都恢复按钮状态
|
||||
});
|
||||
};
|
||||
|
||||
const datePicked = (ref, dateArry) => {
|
||||
// 注意:dateArry 是 Dayjs 对象数组,如果后端需要字符串,需要格式化
|
||||
// quaryData.dates = dateArry.map(date => date.format('YYYY-MM-DD'));
|
||||
quaryData.dates = dateArry;
|
||||
console.log(dateArry);
|
||||
};
|
||||
|
||||
const dataSource = ref(datas);
|
||||
|
||||
const onViedoTypeChanged = (e) => {
|
||||
// console.log(e.target.value);
|
||||
quaryData.viedoType = e.target.value;
|
||||
pagination.value.current = 1;
|
||||
pagination.value.current = 1; // 切换类型后,重置页码到第一页
|
||||
GetRecords();
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
</style>
|
||||
Reference in New Issue
Block a user