perf: ui走查问题修改
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@ -13,6 +13,7 @@ import { useUserStore } from '@/stores';
|
|||||||
import icon1 from '@/assets/img/creative-generation-workshop/icon-line.png';
|
import icon1 from '@/assets/img/creative-generation-workshop/icon-line.png';
|
||||||
import icon2 from '@/assets/img/creative-generation-workshop/icon-avatar-default.png';
|
import icon2 from '@/assets/img/creative-generation-workshop/icon-avatar-default.png';
|
||||||
import icon3 from '@/assets/img/error-img.png';
|
import icon3 from '@/assets/img/error-img.png';
|
||||||
|
import icon4 from '@/assets/img/creative-generation-workshop/icon-avatar-default-v2.png';
|
||||||
|
|
||||||
const _iconMap = new Map([
|
const _iconMap = new Map([
|
||||||
// [3, { icon: <icon-check-circle-fill size={16} class="color-#25C883 flex-shrink-0" /> }],
|
// [3, { icon: <icon-check-circle-fill size={16} class="color-#25C883 flex-shrink-0" /> }],
|
||||||
@ -29,7 +30,7 @@ export default {
|
|||||||
},
|
},
|
||||||
dataSource: {
|
dataSource: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => { },
|
default: () => {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
emits: ['toggle', 'updateComment', 'deleteComment'],
|
emits: ['toggle', 'updateComment', 'deleteComment'],
|
||||||
@ -55,17 +56,17 @@ export default {
|
|||||||
const onReplay = (item) => {
|
const onReplay = (item) => {
|
||||||
isReplay.value = true;
|
isReplay.value = true;
|
||||||
replayTarget.value = item;
|
replayTarget.value = item;
|
||||||
|
textAreaRef.value.focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
const onComment = async () => {
|
const onComment = async () => {
|
||||||
console.log(textAreaRef.value.focus());
|
|
||||||
const { code, data } = await postShareWorksComments(props.dataSource.id, route.params.shareCode, {
|
const { code, data } = await postShareWorksComments(props.dataSource.id, route.params.shareCode, {
|
||||||
content: comment.value,
|
content: comment.value,
|
||||||
comment_id: replayTarget.value.id,
|
comment_id: replayTarget.value.id,
|
||||||
});
|
});
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
emit('updateComment');
|
emit('updateComment');
|
||||||
comment.value = '';
|
onClearComment();
|
||||||
textAreaRef.value.focus();
|
textAreaRef.value.focus();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -110,7 +111,7 @@ export default {
|
|||||||
<div class="sticky bottom-0 left-0 w-full z-22 px-24px">
|
<div class="sticky bottom-0 left-0 w-full z-22 px-24px">
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
{isReplay.value && (
|
{isReplay.value && (
|
||||||
<div class="px-12px pt-8px absolute top-0 left-0 z-2 mb-8px w-full">
|
<div class="px-8px pt-8px absolute top-0 left-0 z-2 mb-8px w-full">
|
||||||
<div class="rounded-4px bg-#F2F3F5 h-30px px-8px flex justify-between items-center ">
|
<div class="rounded-4px bg-#F2F3F5 h-30px px-8px flex justify-between items-center ">
|
||||||
<div class="flex items-center mr-12px flex-1 overflow-hidden">
|
<div class="flex items-center mr-12px flex-1 overflow-hidden">
|
||||||
<span class="mr-4px cts !color-#737478 flex-shrink-0">回复</span>
|
<span class="mr-4px cts !color-#737478 flex-shrink-0">回复</span>
|
||||||
@ -163,7 +164,7 @@ export default {
|
|||||||
{props.dataSource.comments?.map((item) => (
|
{props.dataSource.comments?.map((item) => (
|
||||||
<div class="comment-item flex px-12px py-8px group" key={item.id}>
|
<div class="comment-item flex px-12px py-8px group" key={item.id}>
|
||||||
<Image
|
<Image
|
||||||
src={item.commenter_id === 0 ? icon2 : item.commenter?.head_image}
|
src={item.commenter_id === 0 ? icon2 : item.commenter?.head_image || icon4}
|
||||||
width={40}
|
width={40}
|
||||||
height={40}
|
height={40}
|
||||||
preview={false}
|
preview={false}
|
||||||
@ -212,55 +213,51 @@ export default {
|
|||||||
|
|
||||||
const renderAiSuggest = () => {
|
const renderAiSuggest = () => {
|
||||||
if (isEmpty(aiReview.value)) return null;
|
if (isEmpty(aiReview.value)) return null;
|
||||||
const hasInspectionItems = inspectionItems.value.length > 0
|
const hasInspectionItems = inspectionItems.value.length > 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div class="result-box p-16px rounded-8px">
|
<div class="result-box p-16px rounded-8px">
|
||||||
<div class="flex items-center justify-between mb-16px">
|
<div class="flex items-center justify-between mb-16px">
|
||||||
<p class="cts bold !color-#000 !text-16px">审核结果</p>
|
<p class="cts bold !color-#000 !text-16px">审核结果</p>
|
||||||
{
|
{hasInspectionItems && (
|
||||||
hasInspectionItems && (
|
<Button
|
||||||
<Button
|
type="text"
|
||||||
type="text"
|
class="!color-#6D4CFE hover:!color-#8A70FE"
|
||||||
class="!color-#6D4CFE hover:!color-#8A70FE"
|
onClick={() => (isCollapse.value = !isCollapse.value)}
|
||||||
onClick={() => (isCollapse.value = !isCollapse.value)}
|
>
|
||||||
>
|
{isCollapse.value ? '展开详情' : '收起详情'}
|
||||||
{isCollapse.value ? '展开详情' : '收起详情'}
|
</Button>
|
||||||
</Button>
|
)}
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
{RESULT_LIST.map((item, index) => (
|
{RESULT_LIST.map((item, index) => (
|
||||||
<div class="flex flex-col justify-center items-center flex-1 result-item" key={index}>
|
<div class="flex flex-col justify-center items-center flex-1 result-item" key={index}>
|
||||||
<span class="s1" style={{ color: item.color }}>{`${aiReview.value?.[item.value]}${item.suffix || ''
|
<span class="s1" style={{ color: item.color }}>{`${aiReview.value?.[item.value]}${
|
||||||
}`}</span>{' '}
|
item.suffix || ''
|
||||||
|
}`}</span>{' '}
|
||||||
<span class="cts mt-4px !lh-20px !text-12px !color-#737478">{item.label}</span>
|
<span class="cts mt-4px !lh-20px !text-12px !color-#737478">{item.label}</span>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class={`collapse-box mb-16px overflow-hidden ${isCollapse.value ? 'h-0 ' : 'h-auto'}`}>
|
<div class={`collapse-box mb-16px overflow-hidden ${isCollapse.value ? 'h-0 ' : 'h-auto'}`}>
|
||||||
{hasInspectionItems && (
|
{hasInspectionItems &&
|
||||||
inspectionItems.value.map(( (parentItem, parentIndex) => (
|
inspectionItems.value.map((parentItem, parentIndex) => (
|
||||||
<div class="result-box p-16px rounded-8px mt-16px" key={parentIndex}>
|
<div class="result-box p-16px rounded-8px mt-16px" key={parentIndex}>
|
||||||
<p class="cts bold !color-#000 !text-16px mb-16px">{parentItem.name}</p>
|
<p class="cts bold !color-#000 !text-16px mb-16px">{parentItem.name}</p>
|
||||||
<div class="grid grid-cols-3 gap-x-24px gap-y-8px">
|
<div class="grid grid-cols-3 gap-x-24px gap-y-8px">
|
||||||
{parentItem.items.map((item, index) => (
|
{parentItem.items.map((item, index) => (
|
||||||
<div class="audit-item" key={index}>
|
<div class="audit-item" key={index}>
|
||||||
<div class="flex items-center h-20px">
|
<div class="flex items-center h-20px">
|
||||||
{_iconMap.get(item.level)?.icon}
|
{_iconMap.get(item.level)?.icon}
|
||||||
<TextOverTips context={item.name} class="cts ml-4px !color-#000" />
|
<TextOverTips context={item.name} class="cts ml-4px !color-#000" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
))}
|
||||||
))}
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
))}
|
||||||
)))
|
|
||||||
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
@ -300,7 +297,7 @@ export default {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
{/**主体 */}
|
{/**主体 */}
|
||||||
<div class="flex-1 overflow-y-auto px-24px">
|
<div class="flex-1 overflow-y-auto px-24px main-box">
|
||||||
{/* AI审核结果 */}
|
{/* AI审核结果 */}
|
||||||
{renderAiSuggest()}
|
{renderAiSuggest()}
|
||||||
{/* 评论与回复 */}
|
{/* 评论与回复 */}
|
||||||
|
|||||||
@ -36,6 +36,10 @@
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
color: #211f24 !important;
|
color: #211f24 !important;
|
||||||
transition: all 0.3s;
|
transition: all 0.3s;
|
||||||
|
.arco-textarea-mirror,
|
||||||
|
.arco-textarea {
|
||||||
|
padding: 8px 16px !important;
|
||||||
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #6d4cfe !important;
|
border-color: #6d4cfe !important;
|
||||||
}
|
}
|
||||||
@ -87,7 +91,27 @@
|
|||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
border-radius: 8px;
|
||||||
|
background: rgba(255, 255, 255, 0.8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.main-box {
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
&::-webkit-scrollbar-thumb {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
&::-webkit-scrollbar-track {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -213,7 +213,7 @@ export default {
|
|||||||
<div class="explore-page">
|
<div class="explore-page">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<div class="content w-full px-24px flex items-center bg-#fff justify-between">
|
<div class="content w-full px-24px flex items-center bg-#fff justify-between">
|
||||||
<div class="h-full flex items-center cursor-pointer" onClick={handleUserHome}>
|
<div class="h-full flex items-center">
|
||||||
<img src={icon1} alt="" width={130} />
|
<img src={icon1} alt="" width={130} />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center">{renderActionRow()}</div>
|
<div class="flex items-center">{renderActionRow()}</div>
|
||||||
|
|||||||
@ -45,7 +45,7 @@ export default {
|
|||||||
<div class="explore-page">
|
<div class="explore-page">
|
||||||
<header class="page-header">
|
<header class="page-header">
|
||||||
<div class="content w-full px-24px flex items-center bg-#fff">
|
<div class="content w-full px-24px flex items-center bg-#fff">
|
||||||
<div class="h-full flex items-center cursor-pointer" onClick={handleUserHome}>
|
<div class="h-full flex items-center">
|
||||||
<img src={icon2} alt="" />
|
<img src={icon2} alt="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -56,7 +56,11 @@ export default {
|
|||||||
) : (
|
) : (
|
||||||
<div class="explore-container">
|
<div class="explore-container">
|
||||||
<div class="explore-list-wrap pt-24px pb-28px">
|
<div class="explore-list-wrap pt-24px pb-28px">
|
||||||
<TextOverTips context={`${works.value[0]?.title}等${works.value.length}个文件`} class="mb-8px" />
|
<div class="mb-8px flex items-center w-fit">
|
||||||
|
<TextOverTips context={`${works.value[0]?.title?.slice(0,10)}...`} class="!w-fit mr-4px" />
|
||||||
|
<span class="cts color-#211F24">{`等${works.value.length}个文件`}</span>
|
||||||
|
</div>
|
||||||
|
{/* <TextOverTips context={`${works.value[0]?.title}等${works.value.length}个文件`} /> */}
|
||||||
<p class="cts !color-#939499 mb-24px">
|
<p class="cts !color-#939499 mb-24px">
|
||||||
{`分享时间:${exactFormatTime(dataSource.value.created_at, 'YYYY-MM-DD HH:mm:ss')} 有效期${
|
{`分享时间:${exactFormatTime(dataSource.value.created_at, 'YYYY-MM-DD HH:mm:ss')} 有效期${
|
||||||
dataSource.value.days
|
dataSource.value.days
|
||||||
|
|||||||
@ -100,7 +100,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits, defineProps } from 'vue';
|
import { defineEmits, defineProps } from 'vue';
|
||||||
import { PLATFORMS, AuditStatus } from '@/views/creative-generation-workshop/manuscript/check-list/constants';
|
import { PLATFORMS, AuditStatus } from '@/views/creative-generation-workshop/manuscript-writer/check-list/constants';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
query: {
|
query: {
|
||||||
|
|||||||
@ -118,13 +118,13 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { formatTableField, exactFormatTime } from '@/utils/tools';
|
import { formatTableField, exactFormatTime } from '@/utils/tools';
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants';
|
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants';
|
||||||
import { patchWorkAuditsAuditWriter } from '@/api/all/generationWorkshop-writer.ts';
|
import { patchWorkAuditsAuditWriter } from '@/api/all/generationWorkshop-writer.ts';
|
||||||
import {
|
import {
|
||||||
AuditStatus,
|
AuditStatus,
|
||||||
CUSTOMER_OPINION,
|
CUSTOMER_OPINION,
|
||||||
PLATFORMS,
|
PLATFORMS,
|
||||||
} from '@/views/creative-generation-workshop/manuscript/check-list/constants';
|
} from '@/views/creative-generation-workshop/manuscript-writer/check-list/constants';
|
||||||
import { slsWithCatch } from '@/utils/stroage.ts';
|
import { slsWithCatch } from '@/utils/stroage.ts';
|
||||||
|
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
|
|||||||
@ -18,11 +18,11 @@ export const TABLE_COLUMNS1 = [
|
|||||||
dataIndex: 'title',
|
dataIndex: 'title',
|
||||||
width: 300,
|
width: 300,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '客户意见',
|
// title: '客户意见',
|
||||||
dataIndex: 'customer_opinion',
|
// dataIndex: 'customer_opinion',
|
||||||
width: 120,
|
// width: 120,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '稿件类型',
|
title: '稿件类型',
|
||||||
dataIndex: 'type',
|
dataIndex: 'type',
|
||||||
@ -71,11 +71,11 @@ export const TABLE_COLUMNS2 = [
|
|||||||
dataIndex: 'title',
|
dataIndex: 'title',
|
||||||
width: 300,
|
width: 300,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '客户意见',
|
// title: '客户意见',
|
||||||
dataIndex: 'customer_opinion',
|
// dataIndex: 'customer_opinion',
|
||||||
width: 120,
|
// width: 120,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '审核平台',
|
title: '审核平台',
|
||||||
dataIndex: 'platform',
|
dataIndex: 'platform',
|
||||||
@ -140,11 +140,11 @@ export const TABLE_COLUMNS3 = [
|
|||||||
dataIndex: 'title',
|
dataIndex: 'title',
|
||||||
width: 300,
|
width: 300,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '客户意见',
|
// title: '客户意见',
|
||||||
dataIndex: 'customer_opinion',
|
// dataIndex: 'customer_opinion',
|
||||||
width: 120,
|
// width: 120,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '审核平台',
|
title: '审核平台',
|
||||||
dataIndex: 'platform',
|
dataIndex: 'platform',
|
||||||
|
|||||||
@ -49,7 +49,7 @@ import {
|
|||||||
INITIAL_QUERY,
|
INITIAL_QUERY,
|
||||||
AUDIT_STATUS_LIST,
|
AUDIT_STATUS_LIST,
|
||||||
TABLE_COLUMNS1,
|
TABLE_COLUMNS1,
|
||||||
} from '@/views/creative-generation-workshop/manuscript/check-list/constants';
|
} from '@/views/creative-generation-workshop/manuscript-writer/check-list/constants';
|
||||||
|
|
||||||
const {
|
const {
|
||||||
dataSource,
|
dataSource,
|
||||||
|
|||||||
@ -10,8 +10,8 @@
|
|||||||
<div class="flex items-center flex-col justify-center">
|
<div class="flex items-center flex-col justify-center">
|
||||||
<img :src="icon1" width="80" height="80" class="mb-16px" />
|
<img :src="icon1" width="80" height="80" class="mb-16px" />
|
||||||
<span class="text-18px lh-26px font-400 color-#211F24 md mb-8px">内容稿件已通过审核</span>
|
<span class="text-18px lh-26px font-400 color-#211F24 md mb-8px">内容稿件已通过审核</span>
|
||||||
<p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球、更吸流量吗?</p>
|
<!-- <p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球、更吸流量吗?</p>
|
||||||
<p class="text-14px lh-22px font-400 color-#737478 ld">试试「内容稿件分析」功能吧!</p>
|
<p class="text-14px lh-22px font-400 color-#737478 ld">试试「内容稿件分析」功能吧!</p> -->
|
||||||
</div>
|
</div>
|
||||||
<!-- <template #footer>
|
<!-- <template #footer>
|
||||||
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">内容稿件分析</a-button>
|
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">内容稿件分析</a-button>
|
||||||
@ -20,15 +20,20 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref, onUnmounted } from 'vue';
|
||||||
import icon1 from '@/assets/img/media-account/icon-feedback-success.png';
|
import icon1 from '@/assets/img/media-account/icon-feedback-success.png';
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const workIds = ref([]);
|
const workIds = ref([]);
|
||||||
|
let autoCloseTimer = null;
|
||||||
|
|
||||||
const onClose = () => {
|
const onClose = () => {
|
||||||
|
if (autoCloseTimer) {
|
||||||
|
clearTimeout(autoCloseTimer);
|
||||||
|
autoCloseTimer = null;
|
||||||
|
}
|
||||||
if (workIds.value.length === 1) {
|
if (workIds.value.length === 1) {
|
||||||
router.push({ path: `/writer/manuscript/check-list/${route.params.writerCode}` });
|
router.push({ path: `/writer/manuscript/check-list/${route.params.writerCode}` });
|
||||||
}
|
}
|
||||||
@ -39,8 +44,22 @@ const onClose = () => {
|
|||||||
const open = (ids) => {
|
const open = (ids) => {
|
||||||
workIds.value = cloneDeep(ids);
|
workIds.value = cloneDeep(ids);
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
|
if (autoCloseTimer) {
|
||||||
|
clearTimeout(autoCloseTimer);
|
||||||
|
autoCloseTimer = null;
|
||||||
|
}
|
||||||
|
autoCloseTimer = setTimeout(() => {
|
||||||
|
onClose();
|
||||||
|
}, 3000);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
if (autoCloseTimer) {
|
||||||
|
clearTimeout(autoCloseTimer);
|
||||||
|
autoCloseTimer = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
defineExpose({ open });
|
defineExpose({ open });
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@ -22,7 +22,7 @@ import 'swiper/css/navigation';
|
|||||||
import { Navigation } from 'swiper/modules';
|
import { Navigation } from 'swiper/modules';
|
||||||
import { FORM_RULES, enumTab, TAB_LIST, RESULT_LIST, LEVEL_MAP, escapeRegExp } from './constants';
|
import { FORM_RULES, enumTab, TAB_LIST, RESULT_LIST, LEVEL_MAP, escapeRegExp } from './constants';
|
||||||
import { getImagePreSignedUrl } from '@/api/all/common';
|
import { getImagePreSignedUrl } from '@/api/all/common';
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants';
|
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants';
|
||||||
|
|
||||||
import icon1 from '@/assets/img/creative-generation-workshop/icon-magic.png';
|
import icon1 from '@/assets/img/creative-generation-workshop/icon-magic.png';
|
||||||
import icon2 from '@/assets/img/creative-generation-workshop/icon-line.png';
|
import icon2 from '@/assets/img/creative-generation-workshop/icon-line.png';
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import TextOverTips from '@/components/text-over-tips';
|
|||||||
import 'swiper/css';
|
import 'swiper/css';
|
||||||
import 'swiper/css/navigation';
|
import 'swiper/css/navigation';
|
||||||
import { Navigation } from 'swiper/modules';
|
import { Navigation } from 'swiper/modules';
|
||||||
import { PLATFORMS } from '@/views/creative-generation-workshop/manuscript/check-list/constants';
|
import { PLATFORMS } from '@/views/creative-generation-workshop/manuscript-writer/check-list/constants';
|
||||||
|
|
||||||
import icon1 from '@/assets/img/error-img.png';
|
import icon1 from '@/assets/img/error-img.png';
|
||||||
import icon2 from '@/assets/img/creative-generation-workshop/icon-lf.png';
|
import icon2 from '@/assets/img/creative-generation-workshop/icon-lf.png';
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import TextOverTips from '@/components/text-over-tips';
|
|||||||
import ImgBox from './img-box';
|
import ImgBox from './img-box';
|
||||||
|
|
||||||
import { formatFileSize, getVideoInfo, formatDuration, formatUploadSpeed } from '@/utils/tools';
|
import { formatFileSize, getVideoInfo, formatDuration, formatUploadSpeed } from '@/utils/tools';
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
|
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
|
||||||
import { getVideoPreSignedUrlWriter, getImagePreSignedUrlWriter } from '@/api/all/generationWorkshop-writer';
|
import { getVideoPreSignedUrlWriter, getImagePreSignedUrlWriter } from '@/api/all/generationWorkshop-writer';
|
||||||
|
|
||||||
// import icon1 from '@/assets/img/creative-generation-workshop/icon-close.png';
|
// import icon1 from '@/assets/img/creative-generation-workshop/icon-close.png';
|
||||||
|
|||||||
@ -2,9 +2,9 @@
|
|||||||
import { Button, Message as AMessage, Spin } from '@arco-design/web-vue';
|
import { Button, Message as AMessage, Spin } from '@arco-design/web-vue';
|
||||||
|
|
||||||
import { useRouter, useRoute } from 'vue-router';
|
import { useRouter, useRoute } from 'vue-router';
|
||||||
import { AuditStatus } from '@/views/creative-generation-workshop/manuscript/check-list/constants';
|
import { AuditStatus } from '@/views/creative-generation-workshop/manuscript-writer/check-list/constants';
|
||||||
import { getWorksDetailWriter } from '@/api/all/generationWorkshop-writer.ts';
|
import { getWorksDetailWriter } from '@/api/all/generationWorkshop-writer.ts';
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/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';
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/
|
|||||||
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 { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/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';
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,7 @@
|
|||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { formatTableField, exactFormatTime } from '@/utils/tools';
|
import { formatTableField, exactFormatTime } from '@/utils/tools';
|
||||||
import { TABLE_COLUMNS } from './constants';
|
import { TABLE_COLUMNS } from './constants';
|
||||||
import { CHECK_STATUS, EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants';
|
import { CHECK_STATUS, EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants';
|
||||||
|
|
||||||
import TextOverTips from '@/components/text-over-tips';
|
import TextOverTips from '@/components/text-over-tips';
|
||||||
import HoverImagePreview from '@/components/hover-image-preview';
|
import HoverImagePreview from '@/components/hover-image-preview';
|
||||||
|
|||||||
@ -51,7 +51,7 @@ export default {
|
|||||||
// 响应式状态
|
// 响应式状态
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const formRef = ref(null);
|
const formRef = ref(null);
|
||||||
const uploadType = ref(UPLOAD_TYPE.LINK);
|
const uploadType = ref(UPLOAD_TYPE.LOCAL);
|
||||||
const taskStatus = ref(TASK_STATUS.DEFAULT);
|
const taskStatus = ref(TASK_STATUS.DEFAULT);
|
||||||
const form = ref(cloneDeep(INITIAL_FORM));
|
const form = ref(cloneDeep(INITIAL_FORM));
|
||||||
const works = ref([]);
|
const works = ref([]);
|
||||||
@ -343,21 +343,18 @@ export default {
|
|||||||
>
|
>
|
||||||
<Form
|
<Form
|
||||||
ref={formRef}
|
ref={formRef}
|
||||||
rules={{
|
|
||||||
link: [{ required: true, message: '请输入飞书链接地址' }],
|
|
||||||
}}
|
|
||||||
model={form.value}
|
model={form.value}
|
||||||
layout="horizontal"
|
layout="horizontal"
|
||||||
auto-label-width
|
auto-label-width
|
||||||
>
|
>
|
||||||
{isDefault.value && (
|
{/* {isDefault.value && (
|
||||||
<FormItem label="上传方式">
|
<FormItem label="上传方式">
|
||||||
<RadioGroup v-model={uploadType.value} onChange={onUploadTypeChange}>
|
<RadioGroup v-model={uploadType.value} onChange={onUploadTypeChange}>
|
||||||
<Radio value={UPLOAD_TYPE.LINK}>外部链接上传</Radio>
|
<Radio value={UPLOAD_TYPE.LINK}>外部链接上传</Radio>
|
||||||
<Radio value={UPLOAD_TYPE.LOCAL}>本地上传</Radio>
|
<Radio value={UPLOAD_TYPE.LOCAL}>本地上传</Radio>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)} */}
|
||||||
|
|
||||||
{renderFormContent()}
|
{renderFormContent()}
|
||||||
</Form>
|
</Form>
|
||||||
|
|||||||
@ -47,7 +47,7 @@ import UploadManuscriptModal from './components/upload-manuscript-modal';
|
|||||||
|
|
||||||
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
|
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
|
||||||
import { getWorksPageWriter } from '@/api/all/generationWorkshop-writer.ts';
|
import { getWorksPageWriter } from '@/api/all/generationWorkshop-writer.ts';
|
||||||
import { INITIAL_QUERY, EnumCheckStatus } from '@/views/creative-generation-workshop/manuscript/list/constants.ts';
|
import { INITIAL_QUERY, EnumCheckStatus } from '@/views/creative-generation-workshop/manuscript-writer/list/constants.ts';
|
||||||
|
|
||||||
const { dataSource, pageInfo, onPageChange, onPageSizeChange, resetPageInfo } = useTableSelectionWithPagination({
|
const { dataSource, pageInfo, onPageChange, onPageSizeChange, resetPageInfo } = useTableSelectionWithPagination({
|
||||||
onPageChange: () => {
|
onPageChange: () => {
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/
|
|||||||
import CancelUploadModal from './cancel-upload-modal.vue';
|
import CancelUploadModal from './cancel-upload-modal.vue';
|
||||||
import UploadSuccessModal from './upload-success-modal.vue';
|
import UploadSuccessModal from './upload-success-modal.vue';
|
||||||
|
|
||||||
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript/list/constants';
|
import { EnumManuscriptType } from '@/views/creative-generation-workshop/manuscript-writer/list/constants';
|
||||||
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';
|
||||||
@ -199,8 +199,7 @@ export default {
|
|||||||
_data.videoInfo.poster = convertVideoUrlToCoverUrl(url);
|
_data.videoInfo.poster = convertVideoUrlToCoverUrl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _data
|
return _data;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
works.value = _works;
|
works.value = _works;
|
||||||
@ -266,7 +265,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
key={item.id}
|
key={item.id}
|
||||||
id={`card-${item.id}`}
|
id={`card-${item.id}`}
|
||||||
class={`group relative mb-12px px-8px py-12px flex flex-col rounded-8px bg-#F7F8FA border-1px border-solid border-transparent transition-all duration-300 cursor-pointer hover:bg-#E6E6E8 ${getCardClass(
|
class={`group h-66px relative mb-12px px-12px py-8px flex flex-col rounded-8px bg-#F7F8FA border-1px border-solid border-transparent transition-all duration-300 cursor-pointer hover:bg-#E6E6E8 ${getCardClass(
|
||||||
item,
|
item,
|
||||||
)}`}
|
)}`}
|
||||||
onClick={() => onSelect(item)}
|
onClick={() => onSelect(item)}
|
||||||
@ -277,7 +276,7 @@ export default {
|
|||||||
onClick={(e) => onDelete(e, item, index)}
|
onClick={(e) => onDelete(e, item, index)}
|
||||||
/>
|
/>
|
||||||
<TextOverTips
|
<TextOverTips
|
||||||
context={item.title}
|
context={item.title || '-'}
|
||||||
line={1}
|
line={1}
|
||||||
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
||||||
/>
|
/>
|
||||||
@ -285,18 +284,20 @@ export default {
|
|||||||
<div class="flex items-center ">
|
<div class="flex items-center ">
|
||||||
<img
|
<img
|
||||||
src={item.type === EnumManuscriptType.Image ? icon1 : icon2}
|
src={item.type === EnumManuscriptType.Image ? icon1 : icon2}
|
||||||
width="16"
|
width="14"
|
||||||
height="16"
|
height="14"
|
||||||
class="mr-4px"
|
class="mr-4px"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
class={`cts ${item.type === EnumManuscriptType.Image ? '!color-#25C883' : '!color-#6D4CFE'}`}
|
class={`cts !text-12px ${
|
||||||
|
item.type === EnumManuscriptType.Image ? '!color-#25C883' : '!color-#6D4CFE'
|
||||||
|
}`}
|
||||||
>
|
>
|
||||||
{item.type === EnumManuscriptType.Image ? '图文' : '视频'}
|
{item.type === EnumManuscriptType.Image ? '图文' : '视频'}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{errorDataCards.value.find((v) => v.id === item.id) && (
|
{errorDataCards.value.find((v) => v.id === item.id) && (
|
||||||
<p class="cts !color-#F64B31">必填项未填</p>
|
<p class="cts !text-12px !color-#F64B31">必填项未填</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
$footer-height: 68px;
|
$footer-height: 68px;
|
||||||
.manuscript-upload-wrap {
|
.manuscript-upload-wrap {
|
||||||
height: calc(100% - 72px);
|
height: calc(100% - 72px);
|
||||||
.cts {
|
.cts,
|
||||||
|
:deep(.overflow-text) {
|
||||||
color: #939499;
|
color: #939499;
|
||||||
font-family: $font-family-regular;
|
font-family: $font-family-regular;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
@ -116,7 +116,7 @@ export default {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Form ref={formRef} rules={rules} model={formData.value} auto-label-width>
|
<Form ref={formRef} rules={rules} model={formData.value} auto-label-width>
|
||||||
<FormItem label="有效期" prop="days">
|
<FormItem label="有效期" prop="days" row-class="items-center">
|
||||||
<CommonSelect
|
<CommonSelect
|
||||||
v-model={formData.value.days}
|
v-model={formData.value.days}
|
||||||
options={OPTIONS}
|
options={OPTIONS}
|
||||||
@ -130,6 +130,7 @@ export default {
|
|||||||
<FormItem
|
<FormItem
|
||||||
label="分享对象"
|
label="分享对象"
|
||||||
prop="receiver"
|
prop="receiver"
|
||||||
|
row-class="items-center"
|
||||||
v-slots={{
|
v-slots={{
|
||||||
label: () => (
|
label: () => (
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
|
|||||||
@ -199,8 +199,7 @@ export default {
|
|||||||
_data.videoInfo.poster = convertVideoUrlToCoverUrl(url);
|
_data.videoInfo.poster = convertVideoUrlToCoverUrl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _data
|
return _data;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
works.value = _works;
|
works.value = _works;
|
||||||
@ -267,7 +266,7 @@ export default {
|
|||||||
<div
|
<div
|
||||||
key={item.id}
|
key={item.id}
|
||||||
id={`card-${item.id}`}
|
id={`card-${item.id}`}
|
||||||
class={`group relative mb-12px px-8px py-12px flex flex-col rounded-8px bg-#F7F8FA border-1px border-solid border-transparent transition-all duration-300 cursor-pointer hover:bg-#E6E6E8 ${getCardClass(
|
class={`group h-66px relative mb-12px px-12px py-8px flex flex-col rounded-8px bg-#F7F8FA border-1px border-solid border-transparent transition-all duration-300 cursor-pointer hover:bg-#E6E6E8 ${getCardClass(
|
||||||
item,
|
item,
|
||||||
)}`}
|
)}`}
|
||||||
onClick={() => onSelect(item)}
|
onClick={() => onSelect(item)}
|
||||||
@ -278,7 +277,7 @@ export default {
|
|||||||
onClick={(e) => onDelete(e, item, index)}
|
onClick={(e) => onDelete(e, item, index)}
|
||||||
/>
|
/>
|
||||||
<TextOverTips
|
<TextOverTips
|
||||||
context={item.title}
|
context={item.title || '-'}
|
||||||
line={1}
|
line={1}
|
||||||
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
class={`cts !color-#211F24 mb-8px ${selectCardInfo.value.id === item.id ? 'bold' : ''}`}
|
||||||
/>
|
/>
|
||||||
@ -286,18 +285,20 @@ export default {
|
|||||||
<div class="flex items-center ">
|
<div class="flex items-center ">
|
||||||
<img
|
<img
|
||||||
src={item.type === EnumManuscriptType.Image ? icon1 : icon2}
|
src={item.type === EnumManuscriptType.Image ? icon1 : icon2}
|
||||||
width="16"
|
width="14"
|
||||||
height="16"
|
height="14"
|
||||||
class="mr-4px"
|
class="mr-4px"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
class={`cts ${item.type === EnumManuscriptType.Image ? '!color-#25C883' : '!color-#6D4CFE'}`}
|
class={`cts !text-12px ${
|
||||||
|
item.type === EnumManuscriptType.Image ? '!color-#25C883' : '!color-#6D4CFE'
|
||||||
|
}`}
|
||||||
>
|
>
|
||||||
{item.type === EnumManuscriptType.Image ? '图文' : '视频'}
|
{item.type === EnumManuscriptType.Image ? '图文' : '视频'}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{errorDataCards.value.find((v) => v.id === item.id) && (
|
{errorDataCards.value.find((v) => v.id === item.id) && (
|
||||||
<p class="cts !color-#F64B31">必填项未填</p>
|
<p class="cts !text-12px !color-#F64B31">必填项未填</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
$footer-height: 68px;
|
$footer-height: 68px;
|
||||||
.manuscript-upload-wrap {
|
.manuscript-upload-wrap {
|
||||||
height: calc(100% - 72px);
|
height: calc(100% - 72px);
|
||||||
.cts {
|
.cts,
|
||||||
|
:deep(.overflow-text) {
|
||||||
color: #939499;
|
color: #939499;
|
||||||
font-family: $font-family-regular;
|
font-family: $font-family-regular;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
Reference in New Issue
Block a user