diff --git a/package.json b/package.json index 01ea60b..23a94e5 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "axios": "^1.3.0", "dayjs": "^1.11.7", "echarts": "^5.6.0", + "element-resize-detector": "^1.2.4", "html2canvas": "^1.4.1", "jspdf": "^3.0.1", "lodash-es": "^4.17.21", diff --git a/src/assets/img/creative-generation-workshop/icon-photo.png b/src/assets/img/creative-generation-workshop/icon-photo.png new file mode 100644 index 0000000..270b691 Binary files /dev/null and b/src/assets/img/creative-generation-workshop/icon-photo.png differ diff --git a/src/assets/img/creative-generation-workshop/icon-upload-fail.png b/src/assets/img/creative-generation-workshop/icon-upload-fail.png new file mode 100644 index 0000000..b0b667e Binary files /dev/null and b/src/assets/img/creative-generation-workshop/icon-upload-fail.png differ diff --git a/src/assets/img/creative-generation-workshop/icon-video.png b/src/assets/img/creative-generation-workshop/icon-video.png new file mode 100644 index 0000000..471861e Binary files /dev/null and b/src/assets/img/creative-generation-workshop/icon-video.png differ diff --git a/src/components/_base/navbar/components/navbar-menu/index.vue b/src/components/_base/navbar/components/navbar-menu/index.vue index 7c33508..8611b4c 100644 --- a/src/components/_base/navbar/components/navbar-menu/index.vue +++ b/src/components/_base/navbar/components/navbar-menu/index.vue @@ -27,9 +27,11 @@ + diff --git a/src/main.ts b/src/main.ts index bab185a..c88a324 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,8 +6,8 @@ import App from './App.vue'; import router from './router'; import store from './stores'; -import NoData from '@/components/no-data'; -import SvgIcon from "@/components/svg-icon"; +import NoData from '@/components/no-data/index.vue'; +import SvgIcon from '@/components/svg-icon/index.vue'; import '@/api/index'; import '@arco-design/web-vue/dist/arco.css'; // Arco 默认样式 @@ -15,7 +15,7 @@ import './core'; import 'normalize.css'; import 'uno.css'; -import 'virtual:svg-icons-register' +import 'virtual:svg-icons-register'; // import '@/styles/vars.css'; // 优先加载 @@ -24,6 +24,4 @@ const app = createApp(App); app.component('NoData', NoData); app.component('SvgIcon', SvgIcon); -app.use(store); -app.use(router); -app.mount('#app'); +app.use(store).use(router).mount('#app'); diff --git a/src/stores/modules/user/index.ts b/src/stores/modules/user/index.ts index e94729e..972eda7 100644 --- a/src/stores/modules/user/index.ts +++ b/src/stores/modules/user/index.ts @@ -79,7 +79,7 @@ export const useUserStore = defineStore('user', { getUserAllowAccessRoutes() { const sidebarStore = useSidebarStore(); const menuList = sidebarStore.menuList; - const appRoutes = router.options?.routes ?? []; + const appRoutes = router.getRoutes(); appRoutes.forEach((route: any) => { if (!route.meta?.requiresAuth) { diff --git a/src/styles/components/form.scss b/src/styles/components/form.scss index 8a5895c..0457555 100644 --- a/src/styles/components/form.scss +++ b/src/styles/components/form.scss @@ -1,6 +1,9 @@ .arco-form { .arco-form-item { - margin-bottom: 16px !important; + margin-bottom: 0; + &:not(:last-child) { + margin-bottom: 16px !important; + } .arco-form-item-label-col { padding-right: 12px !important; .arco-form-item-label { diff --git a/src/styles/lib/reset.scss b/src/styles/lib/reset.scss index 5c3b861..00bdba2 100644 --- a/src/styles/lib/reset.scss +++ b/src/styles/lib/reset.scss @@ -23,3 +23,23 @@ p { a { text-decoration: none; } + +/* 滚动条样式 */ +::-webkit-scrollbar { + width: 4px; + height: 4px; +} + +::-webkit-scrollbar-track-piece { + border-radius: 0; +} + +::-webkit-scrollbar-thumb { + height: 10px; + background-color: #C9CDD4; + border-radius: 99px; + outline-offset: -2px; +} +::-webkit-scrollbar-button { + display: none; +} diff --git a/src/styles/vars.scss b/src/styles/vars.scss index 573e1ee..8741cbe 100644 --- a/src/styles/vars.scss +++ b/src/styles/vars.scss @@ -74,3 +74,27 @@ .arco-link { --color-primary-6: var(--arco-primary-6) !important; } + +.common-filter-wrap { + padding: 24px 24px 8px; + .filter-row { + display: flex; + align-items: center; + flex-wrap: wrap; + .filter-row-item { + display: flex; + align-items: center; + margin: 0 24px 16px 0; + .label { + margin-right: 8px; + color: #211f24; + font-family: $font-family-regular; + font-size: 14px; + font-style: normal; + font-weight: 400; + flex-shrink: 0; + line-height: 22px; + } + } + } +} diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/index.vue b/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/index.vue index 4a884e2..edc1821 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/index.vue +++ b/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/index.vue @@ -4,9 +4,9 @@ * @Date: 2025-06-25 14:02:40 --> - - - + + + 内容稿件标题 - + @@ -64,7 +64,3 @@ const handleReset = () => { emits('reset'); }; - - diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/style.scss b/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/style.scss deleted file mode 100644 index dd08cb3..0000000 --- a/src/views/creative-generation-workshop/manuscript/manuscript-check/components/filter-block/style.scss +++ /dev/null @@ -1,23 +0,0 @@ -.filter-wrap { - .filter-row { - .filter-row-item { - &:not(:last-child) { - margin-right: 24px; - } - .label { - margin-right: 8px; - color: #211f24; - font-family: $font-family-regular; - font-size: 14px; - font-style: normal; - font-weight: 400; - flex-shrink: 0; - line-height: 22px; /* 157.143% */ - } - :deep(.arco-space-item) { - width: 100%; - } - } - } - -} diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/index.vue b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/index.vue index 1aa957f..31678b6 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/index.vue +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/index.vue @@ -1,10 +1,10 @@ - - - + + + 内容稿件标题 - + 所属项目 - + 序号 - + 审核状态 - + - - - - 发布日期 + + 上传时间 - + @@ -84,7 +82,7 @@ const props = defineProps({ const emits = defineEmits('search', 'reset', 'update:query'); -const published_at = ref([]); +const created_at = ref([]); const handleSearch = () => { emits('update:query', props.query); @@ -96,7 +94,7 @@ const handleSearch = () => { const onDateChange = (value) => { const [start, end] = value; const FORMAT_DATE = 'YYYY-MM-DD HH:mm:ss'; - props.query.published_at = [ + props.query.created_at = [ dayjs(start).startOf('day').format(FORMAT_DATE), dayjs(end).endOf('day').format(FORMAT_DATE), ]; @@ -105,11 +103,7 @@ const onDateChange = (value) => { }; const handleReset = () => { - published_at.value = []; + created_at.value = []; emits('reset'); }; - - diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/style.scss b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/style.scss deleted file mode 100644 index dd08cb3..0000000 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/filter-block/style.scss +++ /dev/null @@ -1,23 +0,0 @@ -.filter-wrap { - .filter-row { - .filter-row-item { - &:not(:last-child) { - margin-right: 24px; - } - .label { - margin-right: 8px; - color: #211f24; - font-family: $font-family-regular; - font-size: 14px; - font-style: normal; - font-weight: 400; - flex-shrink: 0; - line-height: 22px; /* 157.143% */ - } - :deep(.arco-space-item) { - width: 100%; - } - } - } - -} diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/constants.ts b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/constants.ts index 649a3b3..dd2cdc4 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/constants.ts +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/constants.ts @@ -4,6 +4,9 @@ export const TABLE_COLUMNS = [ dataIndex: 'index', width: 120, fixed: 'left', + sortable: { + sortDirections: ['ascend', 'descend'], + }, }, { title: '图片/视频', @@ -12,12 +15,12 @@ export const TABLE_COLUMNS = [ }, { title: '内容稿件标题', - dataIndex: 'name', + dataIndex: 'manuscript_name', width: 240, }, { title: '所属项目', - dataIndex: 'name', + dataIndex: 'project_name', width: 240, }, { @@ -27,7 +30,7 @@ export const TABLE_COLUMNS = [ }, { title: '审核状态', - dataIndex: 'media_account_count', + dataIndex: 'status', width: 180, }, { diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/index.vue b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/index.vue index c49dfa8..7e30b4c 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/index.vue +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/index.vue @@ -11,7 +11,7 @@ @sorter-change="handleSorterChange" > - + {{ exactFormatTime(record.create_at) }} + + + + + + + + + {{ + getStatusInfo(record.status).label + }} + + + + + + {{ + record.budget === 1 ? '图文' : '视频' + }} + + + + {{ exactFormatTime(record[column.dataIndex]) }} + + + + - 编辑 + 编辑 详情 - {{ formatTableField(column, record, true) }} @@ -58,8 +87,13 @@ import { ref } from 'vue'; import { formatTableField, exactFormatTime } from '@/utils/tools'; import { TABLE_COLUMNS } from './constants'; +import { CHECK_STATUS } from '@/views/creative-generation-workshop/manuscript/manuscript-list/constants'; + +import TextOverTips from '@/components/text-over-tips'; import icon1 from '@/assets/img/media-account/icon-delete.png'; +import icon2 from '@/assets/img/creative-generation-workshop/icon-photo.png'; +import icon3 from '@/assets/img/creative-generation-workshop/icon-video.png'; const emits = defineEmits(['edit', 'sorterChange', 'delete']); @@ -82,7 +116,11 @@ const onEdit = (item) => { emits('edit', item); }; const onDetail = (item) => { - console.log('onDetail') + console.log('onDetail'); +}; + +const getStatusInfo = (status) => { + return CHECK_STATUS.find((v) => v.value === status) ?? {}; }; diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/style.scss b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/style.scss index d1a16ec..47c40df 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/style.scss +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/manuscript-table/style.scss @@ -7,4 +7,10 @@ font-weight: 400; line-height: 22px; } + :deep(.manuscript_name) { + cursor: pointer; + &:hover { + color: #6d4cfe; + } + } } diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-modal/index.vue b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-modal/index.vue new file mode 100644 index 0000000..632252c --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-modal/index.vue @@ -0,0 +1,320 @@ + + diff --git a/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-modal/style.scss b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-modal/style.scss new file mode 100644 index 0000000..494dff7 --- /dev/null +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/components/upload-manascript-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/manuscript-list/constants.ts b/src/views/creative-generation-workshop/manuscript/manuscript-list/constants.ts index cf104c9..625fe79 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/constants.ts +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/constants.ts @@ -1,9 +1,60 @@ export const INITIAL_QUERY = { - name: '', - project_id: '', - number: '', - status: '', - published_at: [], + title: '', + project_ids: [], + uid: '', + audit_status: '', + created_at: [], sort_column: undefined, sort_order: undefined, }; + +export enum EnumCheckStatus { + All = '', + Wait = 0, + Checking = 1, + Passed = 2, +} +export enum EnumManuscriptType { + All = '', + Image = 1, + Video = 2, +} + +export const CHECK_STATUS = [ + { + label: '全部', + value: EnumCheckStatus.All, + }, + { + label: '待审核', + value: EnumCheckStatus.Wait, + backgroundColor: '#F2F3F5', + color: '#3C4043' + }, + { + label: '审核中', + value: EnumCheckStatus.Checking, + backgroundColor: '#FFF7E5', + color: '#FFAE00' + }, + { + label: '已通过', + value: 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/manuscript-list/index.vue b/src/views/creative-generation-workshop/manuscript/manuscript-list/index.vue index 4c7b29b..0ef2c83 100644 --- a/src/views/creative-generation-workshop/manuscript/manuscript-list/index.vue +++ b/src/views/creative-generation-workshop/manuscript/manuscript-list/index.vue @@ -4,8 +4,10 @@ 内容稿件列表 - 分享内容稿件 - + + 分享内容稿件 + + @@ -40,6 +42,7 @@ + diff --git a/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue b/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue index 7f0aa6e..028a821 100644 --- a/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue +++ b/src/views/property-marketing/put-account/account-manage/components/add-account-modal/index.vue @@ -308,7 +308,7 @@ const handleBatchImport = async () => { if (code === 200) { const id = genRandomId(); showExportNotification(`正在导入“${file.value.name}”,请稍后...`, { id }); - emit('startQueryTaskStatus', data.id, id); + emits('startQueryTaskStatus', data.id, id); onClose(); } else { uploadStatus.value = UploadStatus.ERROR;
内容稿件列表