perf: 内容审核-底部按钮样式统一修改
This commit is contained in:
@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
.arco-pagination-options {
|
.arco-pagination-options {
|
||||||
.arco-select {
|
.arco-select {
|
||||||
background-color: transparent;
|
background-color: transparent !important;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 1px solid var(--BG-300, #e6e6e8);
|
border: 1px solid var(--BG-300, #e6e6e8);
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@
|
|||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
}
|
}
|
||||||
.arco-input-wrapper {
|
.arco-input-wrapper {
|
||||||
background-color: transparent;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.arco-pagination-total {
|
.arco-pagination-total {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import CheckListDrawer from './components/check-list-drawer';
|
|||||||
|
|
||||||
import { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
|
import { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
|
||||||
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
|
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
|
||||||
|
import { useSidebarStore } from '@/stores/modules/side-bar';
|
||||||
import {
|
import {
|
||||||
getWorkAuditsBatchDetailWriter,
|
getWorkAuditsBatchDetailWriter,
|
||||||
putWorkAuditsUpdateWriter,
|
putWorkAuditsUpdateWriter,
|
||||||
@ -20,6 +21,7 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const workIds = ref([]);
|
const workIds = ref([]);
|
||||||
const isSaved = ref(false);
|
const isSaved = ref(false);
|
||||||
@ -36,6 +38,9 @@ export default {
|
|||||||
const selectedImageInfo = ref(null);
|
const selectedImageInfo = ref(null);
|
||||||
|
|
||||||
const writerCode = computed(() => route.params.writerCode);
|
const writerCode = computed(() => route.params.writerCode);
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
|
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
|
||||||
cardInfo: selectCardInfo,
|
cardInfo: selectCardInfo,
|
||||||
@ -237,7 +242,11 @@ export default {
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</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()}
|
{renderFooterRow()}
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
|
||||||
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
|
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
|
||||||
import { slsWithCatch } from '@/utils/stroage.ts';
|
import { slsWithCatch } from '@/utils/stroage.ts';
|
||||||
|
import { useSidebarStore } from '@/stores/modules/side-bar';
|
||||||
|
|
||||||
const DEFAULT_SOURCE_INFO = {
|
const DEFAULT_SOURCE_INFO = {
|
||||||
title: '内容稿件列表',
|
title: '内容稿件列表',
|
||||||
@ -18,6 +19,7 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
const workId = ref(route.params.id);
|
const workId = ref(route.params.id);
|
||||||
const { source, audit_status } = route.query;
|
const { source, audit_status } = route.query;
|
||||||
|
|
||||||
@ -34,6 +36,9 @@ export default {
|
|||||||
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
|
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
|
||||||
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
|
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
|
||||||
const writerCode = computed(() => route.params.writerCode);
|
const writerCode = computed(() => route.params.writerCode);
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onBack = () => {
|
const onBack = () => {
|
||||||
router.push({ path: `${sourceInfo.value.routePath}/${writerCode.value}` });
|
router.push({ path: `${sourceInfo.value.routePath}/${writerCode.value}` });
|
||||||
@ -181,7 +186,13 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
</Spin>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -62,6 +62,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { Button, Message as AMessage } from '@arco-design/web-vue';
|
||||||
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
|
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
|
||||||
import CancelEditModal from './cancel-edit-modal.vue';
|
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 { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
|
||||||
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
||||||
import { slsWithCatch } from '@/utils/stroage.ts';
|
import { slsWithCatch } from '@/utils/stroage.ts';
|
||||||
@ -15,6 +16,8 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const formRef = ref(null);
|
const formRef = ref(null);
|
||||||
const cancelEditModal = ref(null);
|
const cancelEditModal = ref(null);
|
||||||
const dataSource = ref({});
|
const dataSource = ref({});
|
||||||
@ -24,6 +27,9 @@ export default {
|
|||||||
|
|
||||||
const workId = ref(route.params.id);
|
const workId = ref(route.params.id);
|
||||||
const writerCode = computed(() => route.params.writerCode);
|
const writerCode = computed(() => route.params.writerCode);
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
|
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
|
||||||
@ -108,7 +114,12 @@ export default {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</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 size="medium" type="outline" onClick={onCancel} class="mr-12px">
|
||||||
退出
|
退出
|
||||||
</Button>
|
</Button>
|
||||||
@ -118,7 +129,7 @@ export default {
|
|||||||
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
|
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
|
||||||
保存并审核
|
保存并审核
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</footer>
|
||||||
|
|
||||||
<CancelEditModal ref={cancelEditModal} />
|
<CancelEditModal ref={cancelEditModal} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -20,6 +20,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { postWorksBatchWriter } from '@/api/all/generationWorkshop-writer.ts';
|
||||||
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
|
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
|
||||||
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
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 icon1 from '@/assets/img/creative-generation-workshop/icon-photo.png';
|
||||||
import icon2 from '@/assets/img/creative-generation-workshop/icon-video.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 {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
EditForm,
|
EditForm,
|
||||||
@ -31,6 +22,8 @@ export default {
|
|||||||
const formRef = ref(null);
|
const formRef = ref(null);
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const cancelUploadModal = ref(null);
|
const cancelUploadModal = ref(null);
|
||||||
const uploadSuccessModal = ref(null);
|
const uploadSuccessModal = ref(null);
|
||||||
const works = ref([]);
|
const works = ref([]);
|
||||||
@ -39,6 +32,10 @@ export default {
|
|||||||
const uploadLoading = ref(false);
|
const uploadLoading = ref(false);
|
||||||
|
|
||||||
const writerCode = computed(() => route.params.writerCode);
|
const writerCode = computed(() => route.params.writerCode);
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
cancelUploadModal.value?.open(works.value.length);
|
cancelUploadModal.value?.open(works.value.length);
|
||||||
};
|
};
|
||||||
@ -306,8 +303,13 @@ export default {
|
|||||||
</div>
|
</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>
|
||||||
<CancelUploadModal ref={cancelUploadModal} />
|
<CancelUploadModal ref={cancelUploadModal} />
|
||||||
<UploadSuccessModal ref={uploadSuccessModal} />
|
<UploadSuccessModal ref={uploadSuccessModal} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -24,6 +24,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
|
||||||
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
|
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
|
||||||
|
import { useSidebarStore } from '@/stores/modules/side-bar';
|
||||||
import {
|
import {
|
||||||
patchWorkAuditsAudit,
|
patchWorkAuditsAudit,
|
||||||
patchWorkAuditsBatchAudit,
|
patchWorkAuditsBatchAudit,
|
||||||
@ -23,6 +24,7 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const workIds = ref([]);
|
const workIds = ref([]);
|
||||||
const isSaved = ref(false);
|
const isSaved = ref(false);
|
||||||
@ -38,6 +40,10 @@ export default {
|
|||||||
const selectCardInfo = ref({});
|
const selectCardInfo = ref({});
|
||||||
const selectedImageInfo = ref(null);
|
const selectedImageInfo = ref(null);
|
||||||
|
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
|
const { handleStartCheck, handleAgainCheck, ticket, checkLoading, resetAiReviewInfo } = useGetAiReviewResult({
|
||||||
cardInfo: selectCardInfo,
|
cardInfo: selectCardInfo,
|
||||||
startAiReviewFn: postWorkAuditsAiReview,
|
startAiReviewFn: postWorkAuditsAiReview,
|
||||||
@ -238,7 +244,11 @@ export default {
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</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()}
|
{renderFooterRow()}
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|||||||
@ -40,6 +40,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
|
||||||
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
|
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
|
||||||
import { slsWithCatch } from '@/utils/stroage.ts';
|
import { slsWithCatch } from '@/utils/stroage.ts';
|
||||||
|
import { useSidebarStore } from '@/stores/modules/side-bar';
|
||||||
|
|
||||||
const DEFAULT_SOURCE_INFO = {
|
const DEFAULT_SOURCE_INFO = {
|
||||||
title: '内容稿件列表',
|
title: '内容稿件列表',
|
||||||
@ -18,6 +19,7 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
const workId = ref(route.params.id);
|
const workId = ref(route.params.id);
|
||||||
const { source, audit_status } = route.query;
|
const { source, audit_status } = route.query;
|
||||||
|
|
||||||
@ -33,6 +35,9 @@ export default {
|
|||||||
|
|
||||||
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
|
const isVideo = computed(() => dataSource.value.type === EnumManuscriptType.Video);
|
||||||
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
|
const sourceInfo = computed(() => SOURCE_MAP.get(source) ?? DEFAULT_SOURCE_INFO);
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onBack = () => {
|
const onBack = () => {
|
||||||
router.push({ name: sourceInfo.value.routeName });
|
router.push({ name: sourceInfo.value.routeName });
|
||||||
@ -180,7 +185,13 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
</Spin>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -63,6 +63,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { Button, Message as AMessage } from '@arco-design/web-vue';
|
||||||
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
|
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
|
||||||
import CancelEditModal from './cancel-edit-modal.vue';
|
import CancelEditModal from './cancel-edit-modal.vue';
|
||||||
|
|
||||||
|
import { useSidebarStore } from '@/stores/modules/side-bar';
|
||||||
import { getWorksDetail, putWorksUpdate } from '@/api/all/generationWorkshop';
|
import { getWorksDetail, putWorksUpdate } from '@/api/all/generationWorkshop';
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
|
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
|
||||||
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
||||||
@ -14,6 +16,8 @@ export default {
|
|||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const formRef = ref(null);
|
const formRef = ref(null);
|
||||||
const cancelEditModal = ref(null);
|
const cancelEditModal = ref(null);
|
||||||
const dataSource = ref({});
|
const dataSource = ref({});
|
||||||
@ -23,6 +27,10 @@ export default {
|
|||||||
|
|
||||||
const workId = ref(route.params.id);
|
const workId = ref(route.params.id);
|
||||||
|
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
|
const isModified = !isEqual(dataSource.value, remoteDataSource.value);
|
||||||
if (isModified && !isSaved.value) {
|
if (isModified && !isSaved.value) {
|
||||||
@ -106,7 +114,11 @@ export default {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</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 size="medium" type="outline" onClick={onCancel} class="mr-12px">
|
||||||
退出
|
退出
|
||||||
</Button>
|
</Button>
|
||||||
@ -116,7 +128,7 @@ export default {
|
|||||||
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
|
<Button type="primary" size="medium" onClick={() => onSave(true)} loading={uploadLoading.value}>
|
||||||
保存并审核
|
保存并审核
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</footer>
|
||||||
|
|
||||||
<CancelEditModal ref={cancelEditModal} />
|
<CancelEditModal ref={cancelEditModal} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -20,6 +20,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 { postWorksBatch } from '@/api/all/generationWorkshop.ts';
|
||||||
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
|
import { glsWithCatch, rlsWithCatch, slsWithCatch } from '@/utils/stroage.ts';
|
||||||
import { formatDuration, formatFileSize, convertVideoUrlToCoverUrl } from '@/utils/tools';
|
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 icon1 from '@/assets/img/creative-generation-workshop/icon-photo.png';
|
||||||
import icon2 from '@/assets/img/creative-generation-workshop/icon-video.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 {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
EditForm,
|
EditForm,
|
||||||
@ -31,6 +22,8 @@ export default {
|
|||||||
const formRef = ref(null);
|
const formRef = ref(null);
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const sidebarStore = useSidebarStore();
|
||||||
|
|
||||||
const cancelUploadModal = ref(null);
|
const cancelUploadModal = ref(null);
|
||||||
const uploadSuccessModal = ref(null);
|
const uploadSuccessModal = ref(null);
|
||||||
const works = ref([]);
|
const works = ref([]);
|
||||||
@ -38,6 +31,10 @@ export default {
|
|||||||
const errorDataCards = ref([]);
|
const errorDataCards = ref([]);
|
||||||
const uploadLoading = ref(false);
|
const uploadLoading = ref(false);
|
||||||
|
|
||||||
|
const collapsed = computed(() => {
|
||||||
|
return sidebarStore.menuCollapse;
|
||||||
|
});
|
||||||
|
|
||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
cancelUploadModal.value?.open(works.value.length);
|
cancelUploadModal.value?.open(works.value.length);
|
||||||
};
|
};
|
||||||
@ -307,8 +304,14 @@ export default {
|
|||||||
</div>
|
</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>
|
||||||
|
|
||||||
<CancelUploadModal ref={cancelUploadModal} />
|
<CancelUploadModal ref={cancelUploadModal} />
|
||||||
<UploadSuccessModal ref={uploadSuccessModal} />
|
<UploadSuccessModal ref={uploadSuccessModal} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -24,6 +24,9 @@ $footer-height: 68px;
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: $sidebar-width;
|
left: $sidebar-width;
|
||||||
width: calc(100% - $sidebar-width);
|
width: calc(100% - $sidebar-width);
|
||||||
border-top: 1px solid #e6e6e8;
|
|
||||||
height: $footer-height;
|
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 {
|
export default {
|
||||||
setup(props, { emit, expose }) {
|
setup(props, { emit, expose }) {
|
||||||
const historyConversationDrawerRef = ref(null);
|
const historyConversationDrawerRef = ref(null);
|
||||||
|
const senderRef = ref(null);
|
||||||
const searchValue = ref('');
|
const searchValue = ref('');
|
||||||
const sharedDataStore = useSharedDataStore();
|
const sharedDataStore = useSharedDataStore();
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ export default {
|
|||||||
const handleTagClick = (tag: string) => {
|
const handleTagClick = (tag: string) => {
|
||||||
searchValue.value = tag;
|
searchValue.value = tag;
|
||||||
handleSearch();
|
handleSearch();
|
||||||
|
senderRef.value?.focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -50,7 +52,8 @@ export default {
|
|||||||
searchValue.value = params.keyWord;
|
searchValue.value = params.keyWord;
|
||||||
sharedDataStore.clearRouteParams();
|
sharedDataStore.clearRouteParams();
|
||||||
|
|
||||||
handleSubmit();
|
handleSearch();
|
||||||
|
senderRef.value?.focus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -66,6 +69,7 @@ export default {
|
|||||||
<p class="cts text-center mb-104px">AI 辅助账号托管账号 | 自动生成爆款内容 | 定时任务发布</p>
|
<p class="cts text-center mb-104px">AI 辅助账号托管账号 | 自动生成爆款内容 | 定时任务发布</p>
|
||||||
<Sender
|
<Sender
|
||||||
v-model:value={searchValue.value}
|
v-model:value={searchValue.value}
|
||||||
|
ref={senderRef}
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
class="h-120px w-full mb-24px"
|
class="h-120px w-full mb-24px"
|
||||||
placeholder="随时告诉我你想做什么,比如查数据、发任务、写内容,我会立刻帮你完成。"
|
placeholder="随时告诉我你想做什么,比如查数据、发任务、写内容,我会立刻帮你完成。"
|
||||||
|
|||||||
Reference in New Issue
Block a user