perf: 内容审核-底部按钮样式统一修改

This commit is contained in:
rd
2025-08-20 11:30:15 +08:00
parent 08c8488b67
commit 65ad58256e
18 changed files with 141 additions and 44 deletions

View File

@ -8,6 +8,7 @@ import CheckListDrawer from './components/check-list-drawer';
import { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
import { useSidebarStore } from '@/stores/modules/side-bar';
import {
getWorkAuditsBatchDetailWriter,
putWorkAuditsUpdateWriter,
@ -20,6 +21,7 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const workIds = ref([]);
const isSaved = ref(false);
@ -36,6 +38,9 @@ export default {
const selectedImageInfo = ref(null);
const writerCode = computed(() => route.params.writerCode);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
cardInfo: selectCardInfo,
@ -237,7 +242,11 @@ export default {
</section>
</div>
</div>
<footer class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>

View File

@ -40,6 +40,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -7,6 +7,7 @@ import { getWorksDetailWriter } from '@/api/all/generationWorkshop-writer.ts';
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
import { slsWithCatch } from '@/utils/stroage.ts';
import { useSidebarStore } from '@/stores/modules/side-bar';
const DEFAULT_SOURCE_INFO = {
title: '内容稿件列表',
@ -18,6 +19,7 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const workId = ref(route.params.id);
const { source, audit_status } = route.query;
@ -34,6 +36,9 @@ export default {
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
const writerCode = computed(() => route.params.writerCode);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onBack = () => {
router.push({ path: `${sourceInfo.value.routePath}/${writerCode.value}` });
@ -181,7 +186,13 @@ export default {
</div>
</div>
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">{renderFooterRow()}</div>
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>
</Spin>
);
},

View File

@ -62,6 +62,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -2,8 +2,9 @@
import { Button, Message as AMessage } from '@arco-design/web-vue';
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
import CancelEditModal from './cancel-edit-modal.vue';
import { getWorksDetailWriter, putWorksUpdateWriter } from '@/api/all/generationWorkshop-writer.ts';
import { getWorksDetailWriter, putWorksUpdateWriter } from '@/api/all/generationWorkshop-writer.ts';
import { useSidebarStore } from '@/stores/modules/side-bar';
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
import { slsWithCatch } from '@/utils/stroage.ts';
@ -15,6 +16,8 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const formRef = ref(null);
const cancelEditModal = ref(null);
const dataSource = ref({});
@ -24,6 +27,9 @@ export default {
const workId = ref(route.params.id);
const writerCode = computed(() => route.params.writerCode);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onCancel = () => {
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
@ -108,7 +114,12 @@ export default {
/>
</div>
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{' '}
<Button size="medium" type="outline" onClick={onCancel} class="mr-12px">
退出
</Button>
@ -118,7 +129,7 @@ export default {
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
保存并审核
</Button>
</div>
</footer>
<CancelEditModal ref={cancelEditModal} />
</>

View File

@ -20,6 +20,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -9,20 +9,11 @@ import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscr
import { postWorksBatchWriter } from '@/api/all/generationWorkshop-writer.ts';
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
import { useSidebarStore } from '@/stores/modules/side-bar';
import icon1 from '@/assets/img/creative-generation-workshop/icon-photo.png';
import icon2 from '@/assets/img/creative-generation-workshop/icon-video.png';
// const generateMockData = (count = 4) =>
// Array.from({ length: count }, (_, i) => ({
// id: `${i + 1}`,
// title: `标题${i + 1}`,
// content: '挖到宝了!这个平价好物让我素颜出门都自信✨挖到宝了!这个平价好物让我素颜出门都自信✨',
// type: i % 2 === 0 ? EnumManuscriptType.Image : EnumManuscriptType.Video,
// files: [],
// videoInfo: cloneDeep(INITIAL_VIDEO_INFO),
// }));
export default {
components: {
EditForm,
@ -31,6 +22,8 @@ export default {
const formRef = ref(null);
const route = useRoute();
const router = useRouter();
const sidebarStore = useSidebarStore();
const cancelUploadModal = ref(null);
const uploadSuccessModal = ref(null);
const works = ref([]);
@ -39,6 +32,10 @@ export default {
const uploadLoading = ref(false);
const writerCode = computed(() => route.params.writerCode);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onCancel = () => {
cancelUploadModal.value?.open(works.value.length);
};
@ -306,8 +303,13 @@ export default {
</div>
)}
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">{renderFooterRow()}</div>
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>
<CancelUploadModal ref={cancelUploadModal} />
<UploadSuccessModal ref={uploadSuccessModal} />
</>

View File

@ -24,6 +24,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -8,6 +8,7 @@ import CheckListDrawer from './components/check-list-drawer';
import { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
import { useSidebarStore } from '@/stores/modules/side-bar';
import {
patchWorkAuditsAudit,
patchWorkAuditsBatchAudit,
@ -23,6 +24,7 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const workIds = ref([]);
const isSaved = ref(false);
@ -38,6 +40,10 @@ export default {
const selectCardInfo = ref({});
const selectedImageInfo = ref(null);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
cardInfo: selectCardInfo,
startAiReviewFn: postWorkAuditsAiReview,
@ -238,7 +244,11 @@ export default {
</section>
</div>
</div>
<footer class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>

View File

@ -40,6 +40,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -7,6 +7,7 @@ import { getWorksDetail } from '@/api/all/generationWorkshop';
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
import { slsWithCatch } from '@/utils/stroage.ts';
import { useSidebarStore } from '@/stores/modules/side-bar';
const DEFAULT_SOURCE_INFO = {
title: '内容稿件列表',
@ -18,6 +19,7 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const workId = ref(route.params.id);
const { source, audit_status } = route.query;
@ -33,6 +35,9 @@ export default {
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onBack = () => {
router.push({ name: sourceInfo.value.routeName });
@ -180,7 +185,13 @@ export default {
</div>
</div>
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">{renderFooterRow()}</div>
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>
</Spin>
);
},

View File

@ -63,6 +63,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -2,6 +2,8 @@
import { Button, Message as AMessage } from '@arco-design/web-vue';
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
import CancelEditModal from './cancel-edit-modal.vue';
import { useSidebarStore } from '@/stores/modules/side-bar';
import { getWorksDetail, putWorksUpdate } from '@/api/all/generationWorkshop';
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
@ -14,6 +16,8 @@ export default {
setup(props, { emit, expose }) {
const router = useRouter();
const route = useRoute();
const sidebarStore = useSidebarStore();
const formRef = ref(null);
const cancelEditModal = ref(null);
const dataSource = ref({});
@ -23,6 +27,10 @@ export default {
const workId = ref(route.params.id);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onCancel = () => {
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
if (isModified && !isSaved.value) {
@ -106,7 +114,11 @@ export default {
/>
</div>
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
<Button size="medium" type="outline" onClick={onCancel} class="mr-12px">
退出
</Button>
@ -116,7 +128,7 @@ export default {
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
保存并审核
</Button>
</div>
</footer>
<CancelEditModal ref={cancelEditModal} />
</>

View File

@ -20,6 +20,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}

View File

@ -9,20 +9,11 @@ import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscr
import { postWorksBatch } from '@/api/all/generationWorkshop.ts';
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
import { useSidebarStore } from '@/stores/modules/side-bar';
import icon1 from '@/assets/img/creative-generation-workshop/icon-photo.png';
import icon2 from '@/assets/img/creative-generation-workshop/icon-video.png';
// const generateMockData = (count = 4) =>
// Array.from({ length: count }, (_, i) => ({
// id: `${i + 1}`,
// title: `标题${i + 1}`,
// content: '挖到宝了!这个平价好物让我素颜出门都自信✨挖到宝了!这个平价好物让我素颜出门都自信✨',
// type: i % 2 === 0 ? EnumManuscriptType.Image : EnumManuscriptType.Video,
// files: [],
// videoInfo: cloneDeep(INITIAL_VIDEO_INFO),
// }));
export default {
components: {
EditForm,
@ -31,6 +22,8 @@ export default {
const formRef = ref(null);
const route = useRoute();
const router = useRouter();
const sidebarStore = useSidebarStore();
const cancelUploadModal = ref(null);
const uploadSuccessModal = ref(null);
const works = ref([]);
@ -38,6 +31,10 @@ export default {
const errorDataCards = ref([]);
const uploadLoading = ref(false);
const collapsed = computed(() => {
return sidebarStore.menuCollapse;
});
const onCancel = () => {
cancelUploadModal.value?.open(works.value.length);
};
@ -307,8 +304,14 @@ export default {
</div>
)}
</div>
<div class="flex justify-end items-center px-16px py-20px w-full bg-#fff footer-row">{renderFooterRow()}</div>
<footer
class={`flex justify-end items-center px-16px py-16px w-full bg-#F6F5FC footer-row ${
collapsed.value ? 'collapsed' : ''
}`}
>
{renderFooterRow()}
</footer>
<CancelUploadModal ref={cancelUploadModal} />
<UploadSuccessModal ref={uploadSuccessModal} />
</>

View File

@ -24,6 +24,9 @@ $footer-height: 68px;
bottom: 0;
left: $sidebar-width;
width: calc(100% - $sidebar-width);
border-top: 1px solid #e6e6e8;
height: $footer-height;
&.collapsed {
left: $sidebar-width-collapse;
width: calc(100% - $sidebar-width-collapse);
}
}