perf: 内容审核-底部按钮样式统一修改
This commit is contained in:
@ -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>
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
);
|
||||
},
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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} />
|
||||
</>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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} />
|
||||
</>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
);
|
||||
},
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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} />
|
||||
</>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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} />
|
||||
</>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import { useSharedDataStore } from '@/stores/modules/share-data';
|
||||
export default {
|
||||
setup(props, { emit, expose }) {
|
||||
const historyConversationDrawerRef = ref(null);
|
||||
const senderRef = ref(null);
|
||||
const searchValue = ref('');
|
||||
const sharedDataStore = useSharedDataStore();
|
||||
|
||||
@ -42,6 +43,7 @@ export default {
|
||||
const handleTagClick = (tag: string) => {
|
||||
searchValue.value = tag;
|
||||
handleSearch();
|
||||
senderRef.value?.focus();
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
@ -50,7 +52,8 @@ export default {
|
||||
searchValue.value = params.keyWord;
|
||||
sharedDataStore.clearRouteParams();
|
||||
|
||||
handleSubmit();
|
||||
handleSearch();
|
||||
senderRef.value?.focus();
|
||||
}
|
||||
});
|
||||
|
||||
@ -66,6 +69,7 @@ export default {
|
||||
<p class="cts text-center mb-104px">AI 辅助账号托管账号 | 自动生成爆款内容 | 定时任务发布</p>
|
||||
<Sender
|
||||
v-model:value={searchValue.value}
|
||||
ref={senderRef}
|
||||
onSubmit={handleSubmit}
|
||||
class="h-120px w-full mb-24px"
|
||||
placeholder="随时告诉我你想做什么,比如查数据、发任务、写内容,我会立刻帮你完成。"
|
||||
|
||||
Reference in New Issue
Block a user