From 77cf169607a8dd74d60bb81ae78e501a69d64523 Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Mon, 11 Aug 2025 17:13:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=86=85=E5=AE=B9=E5=AE=A1=E6=A0=B8-?= =?UTF-8?q?=E5=86=99=E6=89=8B=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/all/generationWorkshop-writer.ts | 84 ++-- src/api/all/generationWorkshop.ts | 15 +- .../components/filter-block/index.vue | 134 ++++++ .../delete-manuscript-modal.vue | 58 +++ .../manuscript-check-table/index.vue | 195 ++++++++ .../manuscript-check-table/style.scss | 19 + .../manuscript-writer/check-list/constants.ts | 254 ++++++++++ .../manuscript-writer/check-list/index.vue | 205 ++++++++ .../manuscript-writer/check-list/style.scss | 42 ++ .../check/cancel-check-modal.vue | 57 +++ .../check/check-success-modal.vue | 61 +++ .../components/check-list-drawer/index.vue | 78 +++ .../components/check-list-drawer/style.scss | 31 ++ .../components/content-card/constants.ts | 53 +++ .../check/components/content-card/index.vue | 443 ++++++++++++++++++ .../check/components/content-card/style.scss | 190 ++++++++ .../check/components/header-card/index.vue | 116 +++++ .../check/components/header-card/style.scss | 74 +++ .../manuscript-writer/check/index.vue | 246 ++++++++++ .../manuscript-writer/check/style.scss | 39 ++ .../components/edit-form/index.vue | 415 ++++++++++++++++ .../components/edit-form/style.scss | 32 ++ .../share-manuscript-modal/constants.ts | 40 ++ .../share-manuscript-modal/index.vue | 293 ++++++++++++ .../share-manuscript-modal/share-modal.vue | 137 ++++++ .../share-manuscript-modal/style.scss | 27 ++ .../manuscript-writer/detail/index.vue | 195 ++++++++ .../manuscript-writer/detail/style.scss | 65 +++ .../edit/cancel-edit-modal.vue | 34 ++ .../manuscript-writer/edit/index.vue | 130 +++++ .../manuscript-writer/edit/style.scss | 25 + .../list/components/filter-block/index.vue | 149 ++++++ .../components/manuscript-table/constants.ts | 68 +++ .../delete-manuscript-modal.vue | 58 +++ .../components/manuscript-table/index.vue | 140 ++++++ .../components/manuscript-table/style.scss | 16 + .../upload-manuscript-modal/index.vue | 394 ++++++++++++++++ .../upload-manuscript-modal/style.scss | 31 ++ .../manuscript-writer/list/constants.ts | 56 +++ .../manuscript-writer/list/index.vue | 121 +++++ .../manuscript-writer/list/style.scss | 29 ++ .../upload/cancel-upload-modal.vue | 38 ++ .../manuscript-writer/upload/index.vue | 275 +++++++++++ .../manuscript-writer/upload/style.scss | 28 ++ .../upload/upload-success-modal.vue | 65 +++ 45 files changed, 5208 insertions(+), 47 deletions(-) create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/components/filter-block/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/delete-manuscript-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/constants.ts create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check-list/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/cancel-check-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/check-success-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/constants.ts create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/check/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/edit-form/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/edit-form/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/constants.ts create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/share-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/detail/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/detail/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/edit/cancel-edit-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/edit/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/edit/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/filter-block/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/constants.ts create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/delete-manuscript-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/constants.ts create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/list/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/upload/cancel-upload-modal.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/upload/index.vue create mode 100644 src/views/creative-generation-workshop/manuscript-writer/upload/style.scss create mode 100644 src/views/creative-generation-workshop/manuscript-writer/upload/upload-success-modal.vue diff --git a/src/api/all/generationWorkshop-writer.ts b/src/api/all/generationWorkshop-writer.ts index a2a1f98..395d2fa 100644 --- a/src/api/all/generationWorkshop-writer.ts +++ b/src/api/all/generationWorkshop-writer.ts @@ -4,125 +4,127 @@ import Http from '@/api'; +const getWriterCode = () => { + const route = useRoute(); + return route.params.writerCode as string; +}; // 内容稿件-批量添加(写手) -export const postWorksBatchWriter = (writerCode: string, data: any) => { - return Http.post('/v1/writer/works/batch', data, { - headers: { 'writer-code': writerCode }, +export const postWorksBatchWriter = (params: any) => { + return Http.post('/v1/writer/works/batch', params, { + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件-分页(写手) -export const getWorksPageWriter = (writerCode: string, params: any) => { +export const getWorksPageWriter = (params: any) => { return Http.get( '/v1/writer/works', { params }, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }, ); }; // 内容稿件-详情(写手) -export const getWorkDetailWriter = (writerCode: string, id: string) => { +export const getWorksDetailWriter = (id: string) => { return Http.get(`/v1/writer/works/${id}`, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件-修改(写手) export const putWorksUpdateWriter = (params = {}) => { - const { id, writerCode, ...rest } = params as { id: string; writerCode: string; [key: string]: any }; + const { id, ...rest } = params as { id: string; [key: string]: any }; return Http.put(`/v1/writer/works/${id}`, rest, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件-删除(写手) -export const deleteWorkWriter = (writerCode: string, id: string) => { +export const deleteWorkWriter = (id: string) => { return Http.delete(`/v1/writer/works/${id}`, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件-获取模板(写手) -export const getTemplateUrlWriter = (writerCode: string) => { +export const getTemplateUrlWriter = () => { return Http.get('/v1/writer/works/template', { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件审核-分页(写手) -export const getWorkAuditsPageWriter = (writerCode: string, params: any) => { +export const getWorkAuditsPageWriter = (params: any) => { return Http.get( '/v1/writer/work-audits', { params }, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }, ); }; // 内容稿件审核-详情(写手) -export const getWorkAuditDetailWriter = (writerCode: string, id: string) => { +export const getWorkAuditDetailWriter = (id: string) => { return Http.get(`/v1/writer/work-audits/${id}`, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件审核-多个详情(写手) -export const getWorkAuditsBatchDetailWriter = (writerCode: string, params: any) => { +export const getWorkAuditsBatchDetailWriter = (params: any) => { return Http.get( '/v1/writer/work-audits/list', { params }, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }, ); }; // 内容稿件-审核(写手) -export const patchWorkAuditsAuditWriter = (writerCode: string, id: string, data: any) => { - return Http.patch(`/v1/writer/work-audits/${id}/audit`, data, { - headers: { 'writer-code': writerCode }, +export const patchWorkAuditsAuditWriter = (id: string, params = {}) => { + return Http.patch(`/v1/writer/work-audits/${id}/audit`, params, { + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件-批量审核(写手) -export const patchWorkAuditsBatchAuditWriter = (writerCode: string, data: any) => { - return Http.patch('/v1/writer/work-audits/batch-audit', data, { - headers: { 'writer-code': writerCode }, +export const patchWorkAuditsBatchAuditWriter = (params: {}) => { + return Http.patch('/v1/writer/work-audits/batch-audit', params, { + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件审核-修改(写手) -export const putWorkAuditsUpdateWriter = (writerCode: string, params = {}) => { - const { id: auditId, ...rest } = params as { id: string; [key: string]: any }; +export const putWorkAuditsUpdateWriter = (params = {}) => { + const { id: auditId, ...rest } = params as { id: string; [key: string]: any }; return Http.put(`/v1/writer/work-audits/${auditId}`, rest, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件审核-审核通过(写手) -export const putWorkAuditsAuditPassWriter = (writerCode: string, id: string) => { - return Http.put( - `/v1/writer/work-audits/${id}/audit-pass`, - {}, - { - headers: { 'writer-code': writerCode }, - }, - ); +export const putWorkAuditsAuditPassWriter = (params = {}) => { + const { id: auditId, ...rest } = params as { id: string; [key: string]: any }; + return Http.put(`/v1/writer/work-audits/${auditId}/audit-pass`, rest, { + headers: { 'writer-code': getWriterCode() }, + }); }; // 内容稿件审核-AI审查(写手) -export const postWorkAuditsAiReviewWriter = (writerCode: string, id: string, data: any) => { - return Http.post(`/v1/writer/work-audits/${id}/ai-review`, data, { - headers: { 'writer-code': writerCode }, +export const postWorkAuditsAiReviewWriter = (params = {}) => { + const { id: auditId, ...rest } = params as { id: string; [key: string]: any }; + return Http.post(`/v1/writer/work-audits/${auditId}/ai-review`, rest, { + headers: { 'writer-code': getWriterCode() }, }); }; // 内容稿件审核-获取AI审查结果(写手) -export const getWorkAuditsAiReviewResultWriter = (writerCode: string, id: string, ticket: string) => { +export const getWorkAuditsAiReviewResultWriter = (id: string, ticket: string) => { return Http.get(`/v1/writer/work-audits/${id}/ai-review/${ticket}`, { - headers: { 'writer-code': writerCode }, + headers: { 'writer-code': getWriterCode() }, }); }; diff --git a/src/api/all/generationWorkshop.ts b/src/api/all/generationWorkshop.ts index 4787dda..8c9a16d 100644 --- a/src/api/all/generationWorkshop.ts +++ b/src/api/all/generationWorkshop.ts @@ -95,8 +95,8 @@ export const putWorkAuditsAuditPass = (params = {}) => { // 内容稿件审核-AI审查 export const postWorkAuditsAiReview = (params = {}) => { - const { id, ...rest } = params as { id: string; [key: string]: any }; - return Http.post(`/v1/work-audits/${id}/ai-review`, rest); + const { id, ...rest } = params as { id: string; [key: string]: any }; + return Http.post(`/v1/work-audits/${id}/ai-review`, rest); }; // 内容稿件审核-获取AI审查结果 @@ -128,9 +128,13 @@ export const getShareWorksDetail = (id: string, shareCode: string) => { // 内容稿件-确认(客户) export const patchShareWorksConfirm = (id: string, shareCode: string) => { - return Http.patch(`/v1/share/works/${id}/confirm`, {}, { - headers: { 'share-code': shareCode }, - }); + return Http.patch( + `/v1/share/works/${id}/confirm`, + {}, + { + headers: { 'share-code': shareCode }, + }, + ); }; // 内容稿件-评论(客户) @@ -146,4 +150,3 @@ export const deleteShareWorksComments = (id: string, commentId: string, shareCod headers: { 'share-code': shareCode }, }); }; - diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/components/filter-block/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/filter-block/index.vue new file mode 100644 index 0000000..99add2c --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/filter-block/index.vue @@ -0,0 +1,134 @@ + + + + + + + 内容稿件标题 + + + + + + + + + + 序号 + + + + + + + + + + 上传时间 + onDateChange(value, 'created_at')" + /> + + + + 审核平台 + + {{ + item.label + }} + + + + 审核时间 + onDateChange(value, 'audit_started_at')" + /> + + + + + + + + + 搜索 + + + + + + 重置 + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/delete-manuscript-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/delete-manuscript-modal.vue new file mode 100644 index 0000000..39f8fd3 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/delete-manuscript-modal.vue @@ -0,0 +1,58 @@ + + + + + 确认删除 {{ projectName }} 这个内容稿件吗? + + + 取消 + 确认删除 + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/index.vue new file mode 100644 index 0000000..2602b32 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/index.vue @@ -0,0 +1,195 @@ + + emits('select', selectedKeys, rowKeyValue, record)" + @select-all="(check) => emits('selectAll', check)" + > + + + + + + + + {{ column.title }} + + + + + + + + + {{ + getCustomerOpinionInfo(record.customer_opinion)?.label ?? '-' + }} + + + + - + + + + {{ record.ai_review?.compliance_level ? `${record.ai_review?.compliance_level}%` : '-' }} + + + + + + + + {{ + record.type === EnumManuscriptType.Image ? '图文' : '视频' + }} + + + + {{ record[column.dataIndex].name || record[column.dataIndex].mobile }} + + + {{ exactFormatTime(record[column.dataIndex]) }} + + + + + + + + + + + + 分享 + 审核 + 查看 + + + + {{ formatTableField(column, record, true) }} + + + + + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/style.scss new file mode 100644 index 0000000..5a1711b --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/components/manuscript-check-table/style.scss @@ -0,0 +1,19 @@ +.manuscript-table { + .cts { + color: var(--Text-1, #211f24); + font-family: $font-family-medium; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.num { + font-family: $font-family-manrope-regular; + } + } + :deep(.title) { + cursor: pointer; + &:hover { + color: #6d4cfe; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/constants.ts b/src/views/creative-generation-workshop/manuscript-writer/check-list/constants.ts new file mode 100644 index 0000000..c6a9966 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/constants.ts @@ -0,0 +1,254 @@ +export const TABLE_COLUMNS1 = [ + { + title: '序号', + dataIndex: 'uid', + width: 120, + fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '图片/视频', + dataIndex: 'cover', + width: 120, + }, + { + title: '内容稿件标题', + dataIndex: 'title', + width: 300, + }, + { + title: '稿件类型', + dataIndex: 'type', + width: 180, + }, + { + title: '上传时间', + dataIndex: 'updated_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '上传人员', + dataIndex: 'uploader', + width: 180, + }, + { + title: '最后修改时间', + dataIndex: 'last_modified_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '修改人员', + dataIndex: 'last_modifier', + width: 180, + }, + { + title: '操作', + dataIndex: 'operation', + width: 120, + fixed: 'right', + }, +]; +export const TABLE_COLUMNS2 = [ + { + title: '序号', + dataIndex: 'uid', + width: 120, + fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '图片/视频', + dataIndex: 'cover', + width: 120, + }, + { + title: '内容稿件标题', + dataIndex: 'title', + width: 300, + }, + { + title: '客户意见', + dataIndex: 'customer_opinion', + width: 220, + }, + { + title: '审核平台', + dataIndex: 'platform', + width: 120, + }, + { + title: '合规程度', + dataIndex: 'compliance_level', + suffix: '%', + width: 120, + }, + { + title: '稿件类型', + dataIndex: 'type', + width: 180, + }, + { + title: '审核时间', + dataIndex: 'audit_started_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '最后修改时间', + dataIndex: 'last_modified_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '修改人员', + dataIndex: 'last_modifier', + width: 180, + }, + { + title: '操作', + dataIndex: 'operation', + width: 120, + fixed: 'right', + }, +]; +export const TABLE_COLUMNS3 = [ + { + title: '序号', + dataIndex: 'uid', + width: 120, + fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '图片/视频', + dataIndex: 'cover', + width: 120, + }, + { + title: '内容稿件标题', + dataIndex: 'title', + width: 300, + }, + { + title: '客户意见', + dataIndex: 'customer_opinion', + width: 200, + }, + { + title: '审核平台', + dataIndex: 'platform', + width: 120, + }, + { + title: '稿件类型', + dataIndex: 'type', + width: 180, + }, + { + title: '通过时间', + dataIndex: 'audit_passed_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '最后修改时间', + dataIndex: 'last_modified_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '修改人员', + dataIndex: 'last_modifier', + width: 180, + }, + { + title: '操作', + dataIndex: 'operation', + width: 120, + fixed: 'right', + }, +]; +export enum AuditStatus { + Pending = '1', + Auditing = '2', + Passed = '3', +} + +export const AUDIT_STATUS_LIST = [ + { + label: '待审核', + value: AuditStatus.Pending, + tableColumns: TABLE_COLUMNS1, + }, + { + label: '审核中', + value: AuditStatus.Auditing, + tableColumns: TABLE_COLUMNS2, + }, + { + label: '已通过', + value: AuditStatus.Passed, + tableColumns: TABLE_COLUMNS3, + }, +]; + +export const INITIAL_QUERY = { + audit_status: AuditStatus.Pending, + title: '', + created_at: [], + audit_started_at: [], + audit_platform: '', + sort_column: undefined, + sort_order: undefined, +}; + +import icon1 from '@/assets/img/media-account/icon-dy.png'; +import icon2 from '@/assets/img/media-account/icon-xhs.png'; + +export const PLATFORMS = [ + { + label: '小红书', + value: 1, + icon: icon2, + }, + { + label: '抖音', + value: 2, + icon: icon1, + }, +]; + +export const CUSTOMER_OPINION = [ + { + label: '待确认', + value: 0, + bg: '#F2F3F5', + color: 'color-#3C4043', + }, + { + label: '已确认', + value: 1, + bg: '#F0EDFF', + color: '!color-#6D4CFE', + }, +]; diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check-list/index.vue new file mode 100644 index 0000000..3294747 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/index.vue @@ -0,0 +1,205 @@ + + + + + + + 分享内容稿件 + + + + + + + 批量审核 + 批量查看 + + + + + + + + + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check-list/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check-list/style.scss new file mode 100644 index 0000000..a2c29f0 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check-list/style.scss @@ -0,0 +1,42 @@ +.manuscript-check-wrap { + height: 100%; + display: flex; + flex-direction: column; + .filter-wrap { + :deep(.arco-tabs) { + .arco-tabs-tab { + height: 56px; + padding: 0 8px; + } + .arco-tabs-nav-extra { + padding-right: 24px; + } + .arco-tabs-content { + display: none; + } + } + .top { + .title { + font-family: $font-family-medium; + font-style: normal; + } + + :deep(.arco-btn) { + .arco-btn-icon { + line-height: 16px; + } + } + } + } + .table-wrap { + display: flex; + flex-direction: column; + .pagination-box { + display: flex; + width: 100%; + padding: 16px 24px; + justify-content: flex-end; + align-items: center; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/cancel-check-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/check/cancel-check-modal.vue new file mode 100644 index 0000000..235f796 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/cancel-check-modal.vue @@ -0,0 +1,57 @@ + + + + + {{ + action === 'exit' + ? '内容已修改尚未保存,若退出编辑,本次修改将不保存。' + : '当前内容已修改尚未保存,若切换内容稿件,本次修改将不保存。' + }} + + + 继续编辑 + + {{ action === 'exit' ? '确认退出' : '确认切换' }} + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/check-success-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/check/check-success-modal.vue new file mode 100644 index 0000000..f1b0bf8 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/check-success-modal.vue @@ -0,0 +1,61 @@ + + + + + 内容稿件已通过审核 + 想让内容更抓眼球、更吸流量吗? + 试试「内容稿件分析」功能吧! + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/index.vue new file mode 100644 index 0000000..fa0040b --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/index.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/style.scss new file mode 100644 index 0000000..943ca06 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/check-list-drawer/style.scss @@ -0,0 +1,31 @@ +.check-list-drawer-xt { + .arco-drawer-body { + overflow: hidden; + display: flex; + flex-direction: column; + padding: 0 0 24px; + .cts { + color: var(--Text-1, #939499); + + font-family: $font-family-regular; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + &.bold { + color: var(--Text-1, #211f24); + font-family: $font-family-medium; + } + } + .card-item { + border: 1px solid transparent; + &:not(:last-child) { + margin-bottom: 12px; + } + &.active { + border-color: #6d4cfe; + background-color: #f0edff; + } + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/constants.ts b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/constants.ts new file mode 100644 index 0000000..447141f --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/constants.ts @@ -0,0 +1,53 @@ +export const FORM_RULES = { + title: [{ required: true, message: '请输入标题' }], +}; +export const enumTab = { + TEXT: 0, + IMAGE: 1, +}; +export const TAB_LIST = [ + { + label: '文本', + value: enumTab.TEXT, + }, + // { + // label: '图片', + // value: enumTab.IMAGE, + // }, +]; + +export enum Enum_Level { + LOW = 0, + MEDIUM = 1, + HIGH = 2, +} + +export const LEVEL_MAP = new Map([ + [Enum_Level.LOW, { label: '低风险', value: 'low_risk_number', color: '#6d4cfe' }], + [Enum_Level.MEDIUM, { label: '中风险', value: 'medium_risk_number', color: '#FFAE00' }], + [Enum_Level.HIGH, { label: '高风险', value: 'high_risk_number', color: '#F64B31' }], +]); + +export const RESULT_LIST = [ + { + label: '合规程度', + value: 'compliance_level', + color: LEVEL_MAP.get(Enum_Level.LOW)?.color, + suffix: '%', + }, + { + label: '检验项', + value: 'inspection_items', + color: '#211F24', + }, + { + label: '高风险', + value: 'high_risk_number', + color: LEVEL_MAP.get(Enum_Level.HIGH)?.color, + }, + { + label: '中风险', + value: 'medium_risk_number', + color: LEVEL_MAP.get(Enum_Level.MEDIUM)?.color, + }, +]; diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/index.vue new file mode 100644 index 0000000..947b16d --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/index.vue @@ -0,0 +1,443 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/style.scss new file mode 100644 index 0000000..89c3e5f --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/content-card/style.scss @@ -0,0 +1,190 @@ +.content-wrap { + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } + .check-text { + background: linear-gradient(84deg, #266cff 4.57%, #a15af0 84.93%); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + .left-box { + :deep(.arco-tabs) { + .arco-tabs-nav { + .arco-tabs-tab { + height: 40px; + // padding: 0 8px; + margin: 0 16px; + } + &::before { + display: none; + } + } + .arco-tabs-content { + display: none; + } + } + :deep(.arco-form) { + height: 100%; + display: flex; + flex-direction: column; + .arco-form-item { + margin-bottom: 24px; + .arco-form-item-label-col { + .arco-form-item-label { + color: #939499; + } + } + } + .content-form-item { + margin-bottom: 0; + display: flex; + flex-direction: column; + .arco-form-item-wrapper-col { + flex: 1; + .arco-form-item-content-wrapper, + .arco-form-item-content, + .arco-textarea-wrapper { + height: 100%; + } + } + } + } + .upload-box { + display: flex; + width: 100px; + height: 100px; + cursor: pointer; + transition: all 0.3s ease; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 8px; + border: 1px dashed var(--Border-1, #d7d7d9); + background: var(--BG-200, #f2f3f5); + &:hover { + background: var(--Primary-1, #e6e6e8); + } + } + .swiper-wrap { + :deep(.swiper) { + height: 100%; + .swiper-wrapper { + align-items: center; + .swiper-slide { + transition: all; + &.active { + width: 60px !important; + height: 60px !important; + .group { + border: 2px solid var(--Brand-6, #6d4cfe); + background: url() lightgray 50% / cover no-repeat; + } + } + &:hover { + .close-icon { + display: block; + } + } + } + } + } + + .swiper-box { + position: absolute; + margin-top: 0 !important; + width: 40px; + height: 40px; + border-radius: 50%; + background: rgba(0, 0, 0, 0.4); + transition: all; + display: flex; + justify-content: center; + align-items: center; + top: 50%; + transform: translateY(-50%); + &:hover { + background: rgba(0, 0, 0, 0.6); + } + &.swiper-button-prev { + left: 16px; + } + &.swiper-button-next { + right: 16px; + } + &::after { + display: none; + } + &.swiper-button-disabled { + display: none; + } + } + } + } + .right-box { + .s1 { + font-family: $font-family-manrope-regular; + font-size: 24px; + font-style: normal; + font-weight: 700; + line-height: 32px; /* 133.333% */ + } + .result-item { + &:first-child { + position: relative; + &::after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 0; + width: 1px; + height: 32px; + background: var(--Border-1, #d7d7d9); + } + } + } + .suggestion-box { + .ai-text { + background: linear-gradient(85deg, #7d419d 4.56%, #31353d 94.75%); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + font-family: $font-family-medium; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + } + } + :deep(.overflow-text) { + color: #211f24; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } + .forbid-word-box { + :deep(.overflow-text) { + &.level0 { + color: #6d4cfe; + } + &.level2 { + color: #f64b31; + } + &.level1 { + color: #ffae00; + } + } + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/index.vue new file mode 100644 index 0000000..ea569c7 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/index.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/style.scss new file mode 100644 index 0000000..9a4dcef --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/components/header-card/style.scss @@ -0,0 +1,74 @@ +.header-wrap { + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } + .swiper-wrap { + .swiper-item { + transition: all; + &:hover { + background-color: #e6e6e8; + } + &.active { + background-color: #f0edff; + border-color: #6d4cfe; + :deep(.overflow-text) { + font-family: $font-family-medium !important; + } + } + } + .swiper-box { + width: 100px; + height: 64px; + position: absolute; + &.swiper-button-prev { + background: linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, #fff 43.06%); + margin-top: 0 !important; + top: 0; + left: 0; + justify-content: flex-start; + padding-left: 8px; + } + &.swiper-button-next { + background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 43.06%); + margin-top: 0 !important; + top: 0; + right: 0; + justify-content: flex-end; + padding-right: 8px; + } + &::after { + display: none; + } + .swiper-button { + width: 40px; + height: 40px; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + border-radius: 8px; + border: 1px solid var(--Border-1, #d7d7d9); + &:hover { + background-color: #f7f8fa; + } + &.click { + background-color: #f2f3f5; + } + } + &.swiper-button-disabled { + display: none; + } + } + } + .platform-row { + border-bottom: 1px solid var(--Border-2, #e6e6e8); + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/index.vue b/src/views/creative-generation-workshop/manuscript-writer/check/index.vue new file mode 100644 index 0000000..f66a2e0 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/index.vue @@ -0,0 +1,246 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/check/style.scss b/src/views/creative-generation-workshop/manuscript-writer/check/style.scss new file mode 100644 index 0000000..2a6deb1 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/check/style.scss @@ -0,0 +1,39 @@ +$footer-height: 68px; +.manuscript-check-wrap { + width: 100%; + height: calc(100% - 72px); + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } + .check-list-icon { + // width: 92px; + cursor: pointer; + height: 36px; + display: flex; + padding: 8px 12px; + justify-content: center; + align-items: center; + border-radius: 30px 0 0 30px; + border: 1px solid var(--Border-1, #d7d7d9); + background: #fff; + position: absolute; + right: 0; + top: calc($navbar-height + 8px); + } +} +.footer-row { + position: fixed; + bottom: 0; + left: $sidebar-width; + width: calc(100% - $sidebar-width); + border-top: 1px solid #e6e6e8; + height: $footer-height; +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/index.vue b/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/index.vue new file mode 100644 index 0000000..4f483fb --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/index.vue @@ -0,0 +1,415 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/style.scss b/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/style.scss new file mode 100644 index 0000000..c16695e --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/edit-form/style.scss @@ -0,0 +1,32 @@ +.cts { + font-family: $font-family-regular; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 20px; +} +.upload-box { + display: flex; + width: 100px; + height: 100px; + cursor: pointer; + transition: all 0.3s ease; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 8px; + border: 1px dashed var(--Border-1, #d7d7d9); + background: var(--BG-200, #f2f3f5); + &:hover { + background: var(--Primary-1, #e6e6e8); + } +} +.group { + border-radius: 8px; + &:hover { + .group-container { + background: linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%), + url() lightgray 0px -40.771px / 100% 149.766% no-repeat; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/constants.ts b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/constants.ts new file mode 100644 index 0000000..19964f0 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/constants.ts @@ -0,0 +1,40 @@ +export const INITIAL_FORM = { + audit_status: '', + sort_column: undefined, + sort_order: undefined, +}; + +export const TABLE_COLUMNS = [ + { + title: '序号', + dataIndex: 'uid', + width: 120, + fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '内容稿件标题', + dataIndex: 'title', + width: 220, + }, + { + title: '审核状态', + dataIndex: 'audit_status', + width: 120, + }, + { + title: '稿件类型', + dataIndex: 'type', + width: 120, + }, + { + title: '最后修改时间', + dataIndex: 'last_modified_at', + width: 160, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, +]; diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/index.vue b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/index.vue new file mode 100644 index 0000000..ffa1247 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/index.vue @@ -0,0 +1,293 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/share-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/share-modal.vue new file mode 100644 index 0000000..c40662c --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/share-modal.vue @@ -0,0 +1,137 @@ + diff --git a/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/style.scss b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/style.scss new file mode 100644 index 0000000..d3dc205 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/components/share-manuscript-modal/style.scss @@ -0,0 +1,27 @@ +.share-manuscript-modal { + .cts { + font-family: $font-family-regular; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 20px; + &.bold { + font-family: $font-family-medium; + } + } + .filter-row-item { + .label { + color: var(--Text-1, #211f24); + font-size: 14px; + } + } + .arco-modal-body { + height: 464px; + display: flex; + flex-direction: column; + overflow: hidden; + .arco-scrollbar-track { + display: none !important; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/detail/index.vue b/src/views/creative-generation-workshop/manuscript-writer/detail/index.vue new file mode 100644 index 0000000..c149ae5 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/detail/index.vue @@ -0,0 +1,195 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/detail/style.scss b/src/views/creative-generation-workshop/manuscript-writer/detail/style.scss new file mode 100644 index 0000000..f3fe2c6 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/detail/style.scss @@ -0,0 +1,65 @@ +$footer-height: 68px; +.manuscript-detail-wrap { + width: 100%; + height: calc(100% - 72px); + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } + .main-video-box { + width: 320px; + height: auto; + background: #fff; + } + .main-img-box { + width: 320px; + height: auto; + background: #fff; + aspect-ratio: 3/4; + } + .desc-img-wrap { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; + .desc-img-box { + width: 212px; + height: 283px; + background: #fff; + object-fit: contain; + aspect-ratio: 3/4; + } + } + .play-icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 222; + width: 64px; + height: 64px; + background-image: url('@/assets/img/creative-generation-workshop/icon-play.png'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + transition: background-image 0.3s ease; + } + + .play-icon:hover { + background-image: url('@/assets/img/creative-generation-workshop/icon-play-hover.png'); + } +} +.footer-row { + position: fixed; + bottom: 0; + left: $sidebar-width; + width: calc(100% - $sidebar-width); + border-top: 1px solid #e6e6e8; + height: $footer-height; +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/edit/cancel-edit-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/edit/cancel-edit-modal.vue new file mode 100644 index 0000000..7aff674 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/edit/cancel-edit-modal.vue @@ -0,0 +1,34 @@ + + + + + 内容已修改尚未保存,若退出编辑,本次修改将不保存。 + + + 继续编辑 + 确认退出 + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/edit/index.vue b/src/views/creative-generation-workshop/manuscript-writer/edit/index.vue new file mode 100644 index 0000000..ae2abdb --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/edit/index.vue @@ -0,0 +1,130 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/edit/style.scss b/src/views/creative-generation-workshop/manuscript-writer/edit/style.scss new file mode 100644 index 0000000..b574f60 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/edit/style.scss @@ -0,0 +1,25 @@ +$footer-height: 68px; +.manuscript-edit-wrap { + height: calc(100% - 72px); + display: flex; + flex-direction: column; + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } +} +.footer-row { + position: fixed; + bottom: 0; + left: $sidebar-width; + width: calc(100% - $sidebar-width); + border-top: 1px solid #e6e6e8; + height: $footer-height; +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/filter-block/index.vue b/src/views/creative-generation-workshop/manuscript-writer/list/components/filter-block/index.vue new file mode 100644 index 0000000..b3449c2 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/filter-block/index.vue @@ -0,0 +1,149 @@ + + + + + 内容稿件标题 + + + + + + + + + 序号 + + + + + + + + + + 审核状态 + + + + 上传时间 + + + + + + + + 搜索 + + + + + + 重置 + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/constants.ts b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/constants.ts new file mode 100644 index 0000000..5199e88 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/constants.ts @@ -0,0 +1,68 @@ +export const TABLE_COLUMNS = [ + { + title: '序号', + dataIndex: 'uid', + width: 120, + fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '图片/视频', + dataIndex: 'cover', + width: 120, + }, + { + title: '内容稿件标题', + dataIndex: 'title', + width: 240, + }, + // { + // title: '所属项目', + // dataIndex: 'projects', + // width: 240, + // }, + { + title: '稿件类型', + dataIndex: 'type', + width: 180, + }, + { + title: '审核状态', + dataIndex: 'audit_status', + width: 180, + }, + { + title: '上传时间', + dataIndex: 'updated_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '上传人员', + dataIndex: 'uploader', + width: 180, + }, + { + title: '最后修改时间', + dataIndex: 'last_modified_at', + width: 180, + sortable: { + sortDirections: ['ascend', 'descend'], + }, + }, + { + title: '最后修改人员', + dataIndex: 'last_modifier', + width: 180, + }, + { + title: '操作', + dataIndex: 'operation', + width: 180, + fixed: 'right' + }, +]; diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/delete-manuscript-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/delete-manuscript-modal.vue new file mode 100644 index 0000000..ef68bd5 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/delete-manuscript-modal.vue @@ -0,0 +1,58 @@ + + + + + 确认删除 {{ projectName }} 这个稿件吗? + + + 取消 + 确认删除 + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/index.vue b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/index.vue new file mode 100644 index 0000000..feb9347 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/index.vue @@ -0,0 +1,140 @@ + + + + + + + + + + {{ column.title }} + + + + + + + + {{ exactFormatTime(record.create_at) }} + + + + + + + {{ + getStatusInfo(record.audit_status).name + }} + + + + + + {{ + record.type === EnumManuscriptType.Image ? '图文' : '视频' + }} + + + + {{ record[column.dataIndex].name || record[column.dataIndex].mobile }} + + + {{ exactFormatTime(record[column.dataIndex]) }} + + + + + + + + + + + + 编辑 + 详情 + + + + {{ formatTableField(column, record, true) }} + + + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/style.scss b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/style.scss new file mode 100644 index 0000000..8621a01 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/manuscript-table/style.scss @@ -0,0 +1,16 @@ +.manuscript-table { + .cts { + color: var(--Text-1, #211f24); + font-family: $font-family-medium; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } + :deep(.title) { + cursor: pointer; + &:hover { + color: #6d4cfe; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/index.vue b/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/index.vue new file mode 100644 index 0000000..2f7a4e8 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/index.vue @@ -0,0 +1,394 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/style.scss b/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/style.scss new file mode 100644 index 0000000..494dff7 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/components/upload-manuscript-modal/style.scss @@ -0,0 +1,31 @@ +.upload-manuscript-modal { + .text { + color: var(--Text-1, #211f24); + text-align: center; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + } + .tip { + color: var(--Text-3, #737478); + text-align: center; + font-family: $font-family-regular; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 20px; + } + .upload-box { + display: flex; + height: 120px; + padding: 0 16px; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 2px; + border: 1px dashed var(--Border-1, #d7d7d9); + background: var(--BG-200, #f2f3f5); + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/constants.ts b/src/views/creative-generation-workshop/manuscript-writer/list/constants.ts new file mode 100644 index 0000000..b06f7cd --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/constants.ts @@ -0,0 +1,56 @@ +export const INITIAL_QUERY = { + title: '', + // project_ids: [], + uid: '', + audit_status: '', + created_at: [], + sort_column: undefined, + sort_order: undefined, +}; + +export enum EnumCheckStatus { + All = '', + Wait = 1, + Checking = 2, + Passed = 3, +} +export enum EnumManuscriptType { + All = '', + Image = 0, + Video = 1, +} + +export const CHECK_STATUS = [ + { + name: '待审核', + id: EnumCheckStatus.Wait, + backgroundColor: '#F2F3F5', + color: '#3C4043' + }, + { + name: '审核中', + id: EnumCheckStatus.Checking, + backgroundColor: '#FFF7E5', + color: '#FFAE00' + }, + { + name: '已通过', + id: EnumCheckStatus.Passed, + backgroundColor: '#EBF7F2', + color: '#25C883' + }, +]; +export const MANUSCRIPT_TYPE = [ + { + label: '全部', + value: EnumManuscriptType.All, + }, + { + label: '图片', + value: EnumManuscriptType.Image, + }, + { + label: '视频', + value: EnumManuscriptType.Video, + }, +] diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/index.vue b/src/views/creative-generation-workshop/manuscript-writer/list/index.vue new file mode 100644 index 0000000..457862e --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/index.vue @@ -0,0 +1,121 @@ + + + + + 内容稿件列表 + + + 分享内容稿件 + + + + + + 上传内容稿件 + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/list/style.scss b/src/views/creative-generation-workshop/manuscript-writer/list/style.scss new file mode 100644 index 0000000..64d8310 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/list/style.scss @@ -0,0 +1,29 @@ +.manuscript-list-wrap { + height: 100%; + display: flex; + flex-direction: column; + .filter-wrap { + .top { + .title { + font-family: $font-family-medium; + font-style: normal; + } + :deep(.arco-btn) { + .arco-btn-icon { + line-height: 16px; + } + } + } + } + .table-wrap { + display: flex; + flex-direction: column; + .pagination-box { + display: flex; + width: 100%; + padding: 16px 24px; + justify-content: flex-end; + align-items: center; + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/upload/cancel-upload-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/upload/cancel-upload-modal.vue new file mode 100644 index 0000000..358e4c4 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/upload/cancel-upload-modal.vue @@ -0,0 +1,38 @@ + + + + + 确认取消上传这 {{ num }} 个文件吗?此操作不可恢复。 + + + 继续编辑 + 确认取消 + + + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/upload/index.vue b/src/views/creative-generation-workshop/manuscript-writer/upload/index.vue new file mode 100644 index 0000000..75db523 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/upload/index.vue @@ -0,0 +1,275 @@ + + + diff --git a/src/views/creative-generation-workshop/manuscript-writer/upload/style.scss b/src/views/creative-generation-workshop/manuscript-writer/upload/style.scss new file mode 100644 index 0000000..f1dadcd --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/upload/style.scss @@ -0,0 +1,28 @@ +$footer-height: 68px; +.manuscript-upload-wrap { + height: calc(100% - 72px); + .cts { + color: #939499; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + line-height: 22px; + &.bold { + font-family: $font-family-medium; + } + } + .right { + border-left: 1px solid var(--Border-2, #e6e6e8); + width: 320px; + flex-shrink: 0; + } +} +.footer-row { + position: fixed; + bottom: 0; + left: $sidebar-width; + width: calc(100% - $sidebar-width); + border-top: 1px solid #e6e6e8; + height: $footer-height; +} diff --git a/src/views/creative-generation-workshop/manuscript-writer/upload/upload-success-modal.vue b/src/views/creative-generation-workshop/manuscript-writer/upload/upload-success-modal.vue new file mode 100644 index 0000000..b92cfd6 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript-writer/upload/upload-success-modal.vue @@ -0,0 +1,65 @@ + + + + + 上传成功 + 为确保内容合规,建议您立即进行审核 + 检测是否存在违规内容 + + + 回到列表 + 批量审核 + + + + + +
+ {{ + getCustomerOpinionInfo(record.customer_opinion)?.label ?? '-' + }} +
想让内容更抓眼球、更吸流量吗?
试试「内容稿件分析」功能吧!
内容稿件列表
为确保内容合规,建议您立即进行审核
检测是否存在违规内容