feat: Modal 小屏滚动 + 数据看板视频播放 + Docker Alpine 化
- 数据看板作者视频播放接口从 /api/video/stream 改为 /api/Video/play(后端只有 Play action,之前笔误导致 404) - 全局 Modal 小屏适配:body max-height + 自定义 10px 深色滚动条,兼容 full-modal 和登录页 login-modal - Docker 镜像换 Alpine + 内置 ffmpeg,避开 Ubuntu apt 网络问题 - 新增 .dockerignore 排除 node_modules / logs / videos / db 等构建噪音 - 移除已废弃的 DyQrCodeService(旧扫码登录) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -20,17 +20,12 @@ import { message } from 'ant-design-vue';
|
||||
import { StarOutlined, StarFilled, StarTwoTone } from '@ant-design/icons-vue';
|
||||
const columns = ref([]);
|
||||
columns.value = [
|
||||
{
|
||||
title: 'Cookie名称',
|
||||
dataIndex: 'userName',
|
||||
width: 180,
|
||||
},
|
||||
{ title: 'Cookie状态', dataIndex: 'statusMsg' },
|
||||
{ title: '收藏路径', dataIndex: 'savePath' },
|
||||
{ title: '喜欢路径', dataIndex: 'favSavePath' },
|
||||
{ title: '博主路径', dataIndex: 'upSavePath' },
|
||||
{ title: '状态', dataIndex: 'status', width: 180 },
|
||||
{ title: '操作', dataIndex: 'edit', width: 200 },
|
||||
{ title: 'Cookie名称', dataIndex: 'userName', width: 140 },
|
||||
{ title: '收藏路径', dataIndex: 'savePath', ellipsis: true, minWidth: 120 },
|
||||
{ title: '喜欢路径', dataIndex: 'favSavePath', ellipsis: true, minWidth: 120 },
|
||||
{ title: '博主路径', dataIndex: 'upSavePath', ellipsis: true, minWidth: 120 },
|
||||
{ title: '状态', dataIndex: 'status', width: 160 },
|
||||
{ title: '操作', dataIndex: 'edit', width: 220 },
|
||||
];
|
||||
|
||||
interface UpSecUserIdItem {
|
||||
@@ -276,7 +271,7 @@ const removeRow = (index: number) => {
|
||||
form.upSecUserIdsJson.splice(index, 1);
|
||||
}
|
||||
};
|
||||
const rowCount = 10;
|
||||
const rowCount = 6;
|
||||
|
||||
onMounted(() => {
|
||||
GetRecords();
|
||||
@@ -472,10 +467,12 @@ const saveDrawerData = () => {
|
||||
const switchdownCollect = (e: any) => {
|
||||
if (!e) form.useCollectFolder = e;
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-modal :title="form._isNew ? '新增' : '编辑'" v-model:visible="showModal" @ok="submit" @cancel="cancel" width="100%" wrap-class-name="full-modal">
|
||||
<div class="modal-scroll-body">
|
||||
<a-form ref="formModel" :model="form" :labelCol="{ span: 3 }" :wrapperCol="{ span: 20 }">
|
||||
<a-form-item label="Cookie名称" required name="userName">
|
||||
<a-input v-model:value="form.userName" />
|
||||
@@ -600,6 +597,7 @@ const switchdownCollect = (e: any) => {
|
||||
</div>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<a-drawer :title="getDrawerTypeName()+'配置'" v-model:visible="showDrawer" placement="right" width="800px" :z-index="10010" :mask-z-index="10009" @close="closeDrawer" class="common-drawer">
|
||||
@@ -654,7 +652,7 @@ const switchdownCollect = (e: any) => {
|
||||
</div>
|
||||
</a-drawer>
|
||||
|
||||
<a-table v-bind="$attrs" :columns="columns" :dataSource="dataSource" :pagination="false">
|
||||
<a-table v-bind="$attrs" :columns="columns" :dataSource="dataSource" :pagination="false" :scroll="{ x: 900 }">
|
||||
<template #title>
|
||||
<div class="flex justify-end pr-4">
|
||||
<a-button type="primary" @click="GetRecords()" :loading="formLoading" class="mr-2">
|
||||
@@ -704,9 +702,31 @@ const switchdownCollect = (e: any) => {
|
||||
</div>
|
||||
</template>
|
||||
</a-table>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped lang="less">
|
||||
.modal-scroll-body {
|
||||
max-height: calc(100vh - 160px);
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding-right: 4px;
|
||||
}
|
||||
.modal-scroll-body::-webkit-scrollbar {
|
||||
-webkit-appearance: none;
|
||||
width: 8px;
|
||||
}
|
||||
.modal-scroll-body::-webkit-scrollbar-track {
|
||||
background: #f0f0f0;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.modal-scroll-body::-webkit-scrollbar-thumb {
|
||||
background: #bbb;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.modal-scroll-body::-webkit-scrollbar-thumb:hover {
|
||||
background: #888;
|
||||
}
|
||||
.ant-form-item {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@@ -894,14 +914,6 @@ html.dark-mode .drawer-card-container.grid-container .drawer-card-grid .ant-inpu
|
||||
padding-bottom: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.ant-modal-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: calc(100vh);
|
||||
}
|
||||
.ant-modal-body {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-alert {
|
||||
|
||||
Reference in New Issue
Block a user