diff --git a/admin/src/api/users.js b/admin/src/api/users.js
index 01c3a73..8a70c75 100644
--- a/admin/src/api/users.js
+++ b/admin/src/api/users.js
@@ -15,3 +15,8 @@ export function getUserDetail(userId) {
export function setUserStatus(userId, data) {
return request.put(`/admin/users/${userId}/status`, data)
}
+
+/** 后台重置用户密码(敏感) { new_password, reason } */
+export function resetUserPassword(userId, data) {
+ return request.put(`/admin/users/${userId}/password`, data)
+}
diff --git a/admin/src/layout/MainLayout.vue b/admin/src/layout/MainLayout.vue
index 9476e2f..6161892 100644
--- a/admin/src/layout/MainLayout.vue
+++ b/admin/src/layout/MainLayout.vue
@@ -71,6 +71,7 @@ const menuConfig = [
{ title: '发布视频', path: '/videos/create', icon: 'Upload', roles: [] },
{ title: '视频管理', path: '/videos', icon: 'Film', roles: [] },
{ title: '系列管理', path: '/series', icon: 'CollectionTag', roles: [] },
+ { title: '采集源管理', path: '/collect-sources', icon: 'Download', roles: [] },
{ title: '分类管理', path: '/categories', icon: 'Menu', roles: [] },
{ title: '标签管理', path: '/tags', icon: 'PriceTag', roles: [] },
{ title: '评论管理', path: '/comments', icon: 'ChatDotRound', roles: [] },
diff --git a/admin/src/router/index.js b/admin/src/router/index.js
index 491e80b..0710d49 100644
--- a/admin/src/router/index.js
+++ b/admin/src/router/index.js
@@ -58,6 +58,12 @@ const routes = [
component: () => import('@/views/SeriesManage.vue'),
meta: { title: '系列管理', icon: 'CollectionTag', roles: [] },
},
+ {
+ path: 'collect-sources',
+ name: 'collect-sources',
+ component: () => import('@/views/CollectSources.vue'),
+ meta: { title: '采集源管理', icon: 'Download', roles: [] },
+ },
{
path: 'categories',
name: 'category-manage',
diff --git a/admin/src/views/CollectSources.vue b/admin/src/views/CollectSources.vue
new file mode 100644
index 0000000..6e92114
--- /dev/null
+++ b/admin/src/views/CollectSources.vue
@@ -0,0 +1,212 @@
+
+ {{page}} 表示页码占位。
+ 分类名不存在时会自动创建。同步为增量:已入库的视频自动跳过。
+ 分类名 URL(URL 可带反引号)。提交后自动创建分类并立即开始采集。
+