+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.status === 1 ? '启用' : '停用' }}
+
+
+
+
+
+
+ 编辑
+
+ {{ row.status === 1 ? '停用' : '启用' }}
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 启用
+ 停用
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
+
+
+
diff --git a/admin/src/views/CreateVideo.vue b/admin/src/views/CreateVideo.vue
index 5c0f717..3e48246 100644
--- a/admin/src/views/CreateVideo.vue
+++ b/admin/src/views/CreateVideo.vue
@@ -140,12 +140,12 @@ const rules = {
onMounted(async () => {
try {
- const res = await request({ url: '/categories', method: 'get' })
- categories.value = res.data || []
+ const res = await request({ url: '/admin/categories', method: 'get' })
+ categories.value = res || []
} catch (e) {}
try {
const s = await request({ url: '/admin/series', method: 'get', params: { page_size: 200 } })
- seriesList.value = s.data?.list || []
+ seriesList.value = s?.list || []
} catch (e) {}
})
@@ -158,8 +158,8 @@ async function uploadFile({ file }) {
try {
// 1) 先拿上传凭证
const t = await request({ url: '/admin/videos/upload', method: 'post' })
- const token = t.data.token
- const uploadUrl = t.data.upload_url
+ const token = t.token
+ const uploadUrl = t.upload_url
// 2) 上传文件(multipart/form-data,带 token query)
const fd = new FormData()
fd.append('file', file)
@@ -209,7 +209,7 @@ async function submit() {
if (form.duration) payload.duration = form.duration
}
const res = await request({ url: '/admin/videos', method: 'post', data: payload })
- const newVideoId = res.data?.video_id
+ const newVideoId = res?.video_id
resultMsg.value = newVideoId
// 如果选了系列 + 集数,绑定进去
if (newVideoId && form.series_id && form.episode_no) {
diff --git a/admin/src/views/SeriesManage.vue b/admin/src/views/SeriesManage.vue
index 2d221ca..b9a707e 100644
--- a/admin/src/views/SeriesManage.vue
+++ b/admin/src/views/SeriesManage.vue
@@ -138,7 +138,7 @@ async function uploadCover(file) {
url: '/admin/upload/image', method: 'post', data: fd,
headers: { 'Content-Type': 'multipart/form-data' },
})
- form.cover_url = r.data.url
+ form.cover_url = r.url
ElMessage.success('封面上传成功')
} catch (e) {
ElMessage.error(e?.message || '上传失败')
@@ -150,8 +150,8 @@ async function uploadCover(file) {
onMounted(async () => {
load()
try {
- const r = await request({ url: '/categories', method: 'get' })
- categories.value = r.data || []
+ const r = await request({ url: '/admin/categories', method: 'get' })
+ categories.value = r || []
} catch (e) {}
})
@@ -162,8 +162,8 @@ async function load() {
url: '/admin/series', method: 'get',
params: { keyword: keyword.value, page: page.value, page_size: pageSize },
})
- list.value = r.data.list
- total.value = r.data.total
+ list.value = r.list
+ total.value = r.total
} catch (e) {} finally {
loading.value = false
}
diff --git a/admin/src/views/TagManage.vue b/admin/src/views/TagManage.vue
new file mode 100644
index 0000000..18fbf04
--- /dev/null
+++ b/admin/src/views/TagManage.vue
@@ -0,0 +1,178 @@
+