From 7975c7bdd7fc06f954cdf6bfe263f839d5dee33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=BF=97=E5=86=9B?= <543024265@qq.com> Date: Fri, 27 Jun 2025 09:34:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=99=BA=E8=83=BD=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enterpriseKnowledge/brandMaterials.less | 8 ++++++++ .../enterpriseKnowledge/brandMaterials.vue | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less b/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less index 23e6a7c..26aec80 100644 --- a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less +++ b/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less @@ -56,12 +56,14 @@ margin: 20px 20px; } + //添加按钮 .add-btn { font-size: 16px; padding: 0 24px; border-radius: 4px; } + //分页 .materials-page { background: #fff; border-radius: 8px; @@ -179,4 +181,10 @@ .a-modal .a-modal-footer { justify-content: flex-end; } + + //弹窗样式 + .a-modal-title { + position: absolute; + left: 10px; + } } diff --git a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue b/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue index 3beb3aa..5c541d9 100644 --- a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue +++ b/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue @@ -87,7 +87,7 @@ @cancel="handleModalCancel" > - {{ form.id > 0 ? '编辑品牌' : '新增品牌' }} + {{ form.id > 0 ? '编辑品牌' : '新增品牌' }} Date: Fri, 27 Jun 2025 16:26:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=8A=95?= =?UTF-8?q?=E6=94=BE=E6=8C=87=E5=8D=97=E7=BB=84=E4=BB=B6=E5=92=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=93=81=E7=89=8C=E7=89=A9=E6=96=99=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/upload/ImageUpload.vue | 65 +- .../routes/modules/propertyMarketing.ts | 4 +- .../index.vue} | 144 +++-- .../style.scss} | 52 +- .../action-guide-distribution/index.vue | 233 ++++++++ .../action-guide-distribution/style.scss | 0 .../components/month-data/index.vue | 35 ++ .../components/month-data/style.scss | 0 .../placement-suggestions/index.vue | 73 +++ .../placement-suggestions/style.scss | 0 .../table-data/guideListHistory.vue | 117 ++++ .../components/table-data/listSearchForm.vue | 98 +++ .../table-data/placementGuideList.vue | 217 +++++++ .../investment-guidelines/index.vue | 71 +++ .../investment-guidelines/style.scss | 196 ++++++ .../put-account/investmentGuidelines.less | 198 ------- .../put-account/investmentGuidelines.vue | 560 ------------------ 17 files changed, 1167 insertions(+), 896 deletions(-) rename src/views/property-marketing/enterpriseKnowledge/{brandMaterials.vue => brand-materials/index.vue} (60%) rename src/views/property-marketing/enterpriseKnowledge/{brandMaterials.less => brand-materials/style.scss} (83%) create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/index.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/style.scss create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/month-data/index.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/month-data/style.scss create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/index.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/style.scss create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/table-data/guideListHistory.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/table-data/listSearchForm.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/components/table-data/placementGuideList.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/index.vue create mode 100644 src/views/property-marketing/put-account/investment-guidelines/style.scss delete mode 100644 src/views/property-marketing/put-account/investmentGuidelines.less delete mode 100644 src/views/property-marketing/put-account/investmentGuidelines.vue diff --git a/src/components/upload/ImageUpload.vue b/src/components/upload/ImageUpload.vue index 450ac52..0054575 100644 --- a/src/components/upload/ImageUpload.vue +++ b/src/components/upload/ImageUpload.vue @@ -107,54 +107,27 @@ const handleError = (error) => { console.error(error); }; -const customRequest = (option) => { +const customRequest = async (option) => { const { onProgress, onError, onSuccess, fileItem, name } = option; - const xhr = new XMLHttpRequest(); - if (xhr.upload) { - xhr.upload.onprogress = function (event) { - let percent; - if (event.total > 0) { - // 0 ~ 1 - percent = event.loaded / event.total; - } - onProgress(percent, event); - }; - } - xhr.onerror = function error(e) { - onError(e); - }; - xhr.onload = function onload() { - if (xhr.status < 200 || xhr.status >= 300) { - return onError(xhr.responseText); - } - let response = JSON.parse(xhr.response); - if (response && response.data.upload_url) { - const blob = new Blob([fileItem.file], { type: fileItem.file.type }); - axios - .put(response.data.upload_url, blob, { - headers: { 'Content-Type': fileItem.file.type }, - }) - .then(() => { - onSuccess(xhr.response); - }) - .catch((error) => { - onError(error); - }); - } else { - onError(xhr.response); - } - }; + try { + // 1. 获取预签名上传URL + const response = await fetchImageUploadFile({ suffix: getFileExtension(fileItem.file.name) }); + const preSignedUrl = response?.data?.upload_url; - const formData = new FormData(); - formData.append(name || 'file', fileItem.file); - xhr.open('get', '/api/v1/oss/image-pre-signed-url?suffix=png', true); - xhr.send(formData); - let extension = getFileExtension(fileItem.file.name); - return { - abort() { - xhr.abort(); - }, - }; + if (!preSignedUrl) { + throw new Error('未能获取有效的预签名上传地址'); + } + console.log('preSignedUrl', preSignedUrl); + // 2. 使用预签名URL上传文件 + const blob = new Blob([fileItem.file], { type: fileItem.file.type }); + await axios.put(preSignedUrl, blob, { + headers: { 'Content-Type': fileItem.file.type }, + }); + + onSuccess(JSON.stringify(response)); + } catch (error) { + onError(error); + } }; function getFileExtension(filename: string): string { diff --git a/src/router/routes/modules/propertyMarketing.ts b/src/router/routes/modules/propertyMarketing.ts index 33e6b63..affcb1e 100644 --- a/src/router/routes/modules/propertyMarketing.ts +++ b/src/router/routes/modules/propertyMarketing.ts @@ -28,7 +28,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [ requiresAuth: true, roles: ['*'], }, - component: () => import('@/views/property-marketing/enterpriseKnowledge/brandMaterials.vue'), + component: () => import('@/views/property-marketing/enterpriseKnowledge/brand-materials/index.vue'), }, ], }, @@ -128,7 +128,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [ requiresAuth: true, roles: ['*'], }, - component: () => import('@/views/property-marketing/put-account/investmentGuidelines'), + component: () => import('@/views/property-marketing/put-account/investment-guidelines'), }, ], }, diff --git a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue b/src/views/property-marketing/enterpriseKnowledge/brand-materials/index.vue similarity index 60% rename from src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue rename to src/views/property-marketing/enterpriseKnowledge/brand-materials/index.vue index 5c541d9..0913a1a 100644 --- a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.vue +++ b/src/views/property-marketing/enterpriseKnowledge/brand-materials/index.vue @@ -1,53 +1,44 @@ - + 品牌物料 + + + 添加品牌 + + - - - - - - 暂无品牌 - - - - - - - 去添加 - - - - - - 品牌物料 - + 添加品牌 - + + + + 品牌名称 + + + + + + - - - 品牌名称 - - - - - - 搜索 - - - - - - 重置 - - + + + + + + 搜索 + + + + + + 重置 + + + - - + @@ -58,52 +49,53 @@ - - - - 编辑 + + + + + + + + 编辑 + + - - + - + - {{ form.id > 0 ? '编辑品牌' : '新增品牌' }} + {{ form.id > 0 ? '编辑品牌' : '新增品牌' }} - + - + - - 品牌常规展示标识,支持PNG、JPG格式 + + + + + (品牌常规展示使用,支持PNG,JPG格式) + @@ -126,7 +118,7 @@ import { ref, computed, reactive, onMounted } from 'vue'; import { Message } from '@arco-design/web-vue'; import { IconDelete } from '@arco-design/web-vue/es/icon'; import noDataImage from '@/assets/img/guide/no_data.png'; -import '@/views/property-marketing/enterpriseKnowledge/brandMaterials.less'; +import '@/views/property-marketing/enterpriseKnowledge/brand-materials/style.scss'; import { addMaterials, @@ -176,9 +168,7 @@ onMounted(() => { const handleSearch = () => { getMaterialsList(listQuery).then((response) => { listResult.data = response.data.data; - console.log(response.data, 'response.data'); - console.log(listResult.data, 'listResult.data'); - listResult.total = response.total; + listResult.total = response.data.total; }); }; @@ -196,7 +186,6 @@ function handleReset() { } function handleAdd() { - modalTitle.value = '添加品牌'; btn_str.value = '确认添加'; form.id = 0; form.logo = ''; @@ -221,7 +210,8 @@ function handleModalOk() { handleSearch(); }); } else { - addMaterials(form).then(() => { + addMaterials(form).then((response) => { + console.log(response, 'response'); Message.success('新增成功'); handleSearch(); }); @@ -236,12 +226,10 @@ function handleModalOk() { } function handleEdit(id) { - modalTitle.value = '编辑品牌'; - formRef.value.resetFields(); modalVisible.value = true; - btn_str.value = '确认修改'; + btn_str.value = '确认'; getMaterialsDetail(id).then((response) => { - Object.assign(form, response); + Object.assign(form, response.data); }); } diff --git a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less b/src/views/property-marketing/enterpriseKnowledge/brand-materials/style.scss similarity index 83% rename from src/views/property-marketing/enterpriseKnowledge/brandMaterials.less rename to src/views/property-marketing/enterpriseKnowledge/brand-materials/style.scss index 26aec80..4e5798f 100644 --- a/src/views/property-marketing/enterpriseKnowledge/brandMaterials.less +++ b/src/views/property-marketing/enterpriseKnowledge/brand-materials/style.scss @@ -1,4 +1,4 @@ -.placement-guide-style { +.view-body { //每块div布局 .part-div { width: 100%; @@ -95,9 +95,14 @@ width: 240px; } - .search-btn, .reset-btn { min-width: 72px; + color: black; + } + + .search-btn, + { + min-width: 72px; } .brand-table { @@ -167,12 +172,6 @@ gap: 12px; } - .form-tip { - color: #999; - font-size: 13px; - margin-left: 8px; - line-height: 1.5; - } .a-form .a-form-item { margin-bottom: 24px; @@ -182,9 +181,38 @@ justify-content: flex-end; } - //弹窗样式 - .a-modal-title { - position: absolute; - left: 10px; + .a-table { + margin-left: 24px; + margin-right: 24px; } } + +.modal-title { + position: absolute; + left: 10px; +} + +.arco-textarea-wrapper, +.arco-input-wrapper { + border-radius: 4px; + border-color: #d7d7d9; + background-color: #fff; + + &:focus-within, + &.arco-input-focus { + background-color: var(--color-bg-2); + border-color: rgb(var(--primary-6)); + box-shadow: 0 0 0 0 var(--color-primary-light-2); + } + + &.arco-input-wrapper { + height: 35px; + } +} + +.form-tip { + color: #999; + font-size: 13px; + margin-left: 8px; + line-height: 1.5; +} diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/index.vue b/src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/index.vue new file mode 100644 index 0000000..38f5133 --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/index.vue @@ -0,0 +1,233 @@ + + + + + 投放行动指南 + + + + 投放建议优化。 + + + + + 表现分析 + + + + 表现分析。 + + + + + + + + 人群分析 + + + + + 18-24岁女性,兴趣为“美妆/穿搭”,一线城市,抖音平台 ROI 3.2 + + + + + 25-34岁男性,兴趣为“数码产品”,二线城市,巨量引擎 ROI 2.8 + + + + + 18-24岁男性,兴趣为“运动/健身”,三线城市,抖音 ROI 2.3 + + + + + + + 投放素材 + + + + + 图文风格 + 明确福利点,CTR 3.2%、CVR 8.5% + + + + + 场景短视频 + 明确人设定位,CTR 2.7%、CVR 7.1% + + + + + 口播讲解类 + 产品对比,CTR 2.1%、CVR 6.0% + + + + + + + + + 投放时段 + + + + + 晚高峰时段(19:00–21:00),ROI 3.1 + + + + + 中午时段(11:30–13:00),ROI 2.5 + + + + + 下午茶时段(15:00–17:00),ROI 2.3 + + + + + + + + 平台表现 + + + + + 抖音 - ROI 3.2,CVR 8.5% + + + + + 聚光平台 - ROI 2.7,CVR 7.3% + + + + + B站 - ROI 2.4,CVR 6.8% + + + + + + + + 新投放建议生成 + + + + 新投放建议生成。 + + + + + + + 人群建议 + + + + + 集中在 18–24 岁女性 + 精准兴趣标签(如“护肤”、“口红”) + + + + + 24–30 岁男性 + 实用类内容受众(如“工具控”、“搞机党”) + + + + + 泛娱乐向受众 + 较大地域分布(兴趣“短剧”、“直播带货”) + + + + + + + + + 素材建议 + + + + + 福利明确+钩子强的图文短视频,建议加限时优惠提示 + + + + + 场景代入型视频,突出客户痛点与产品关联 + + + + + 达人口播/测评,搭配标题党封面吸引点击 + + + + + + + + + + 投放策略建议 + + + + + 预算前置在 ROI 最佳时段和平台,优先抢头部流量 + + + + + 中等预算组合投放 + 高点击素材A/B测试 + + + + + 低预算长周期测试,重点看 CVR,优胜劣汰 + + + + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/style.scss b/src/views/property-marketing/put-account/investment-guidelines/components/action-guide-distribution/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/month-data/index.vue b/src/views/property-marketing/put-account/investment-guidelines/components/month-data/index.vue new file mode 100644 index 0000000..2100587 --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/month-data/index.vue @@ -0,0 +1,35 @@ + + + + + 本月摘要 + + + + 本月摘要。 + + + + + + 总消耗: + ¥52,382.16 + ,较上周期↑12.6% + ;整体ROI:2.84 + ,属于中等偏高水平 + ,较上周期 +0.45 + ;主要转化来源:抖音 46.3% + ,CTR 2.91%;优质素材表现: + 美团酒店爆款横版1号 + 。CTR 3.47%,CVR 5.92%。 + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/month-data/style.scss b/src/views/property-marketing/put-account/investment-guidelines/components/month-data/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/index.vue b/src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/index.vue new file mode 100644 index 0000000..a688ebc --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/index.vue @@ -0,0 +1,73 @@ + + + + + 投放建议优化 + + + + 投放建议优化。 + + + + + + + + + 总体策略 + 本周建议 + + + + + + + 预算分配 + 巨量ROI高,建议将预算提升至 ¥5,000元/日 + 聚光 ROAS明显下降,建议减少预算 30% + + + + + 时段优化 + 过去7日 19:00-21:00 转化率最高,提升了12.6% + 建议设置定时投放,仅在高效时段曝光 + + + + + + + 人群包优化 + 18-24岁女性转化率最高,建议加预算 + 25-34岁男香表现较差,建议停投节省成本 + + + + + 素材优化 + 替换当前点击率下降的xxxxx素材 + 增加同类风格素材:xxxxx素材点击率更高 + 建议优化元素:视频封面/文案/开头引导,可提升CTR + + + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/style.scss b/src/views/property-marketing/put-account/investment-guidelines/components/placement-suggestions/style.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/table-data/guideListHistory.vue b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/guideListHistory.vue new file mode 100644 index 0000000..7959801 --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/guideListHistory.vue @@ -0,0 +1,117 @@ + + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/table-data/listSearchForm.vue b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/listSearchForm.vue new file mode 100644 index 0000000..4100ba3 --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/listSearchForm.vue @@ -0,0 +1,98 @@ + + + + + + + + 账户 + + Beijing + Shanghai + Guangzhou + + + + + + 项目 + + Beijing + Shanghai + Guangzhou + + + + + + 平台 + + Beijing + Shanghai + Guangzhou + + + + + + + + + 时间筛选 + + + + + + + + + + 搜索 + + + + + + 重置 + + + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/components/table-data/placementGuideList.vue b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/placementGuideList.vue new file mode 100644 index 0000000..4f1708e --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/components/table-data/placementGuideList.vue @@ -0,0 +1,217 @@ + + + + + + 本周总消耗 + + + + 本周总消耗 + + + + + + + 本周总消耗环比 + + + + 本周总消耗环比 + + + + + + + roi + + + + roi + + + + + + + ctr + + + + ctr + + + + + + + + + + + + % + + + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/index.vue b/src/views/property-marketing/put-account/investment-guidelines/index.vue new file mode 100644 index 0000000..c1cb55c --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/index.vue @@ -0,0 +1,71 @@ + + + + + + + + 历史投放指南 + + + + + + + + + + + + + + + + + + + + + + + + 下载 + + + + + + 保存 + + + + + + + + + diff --git a/src/views/property-marketing/put-account/investment-guidelines/style.scss b/src/views/property-marketing/put-account/investment-guidelines/style.scss new file mode 100644 index 0000000..d392652 --- /dev/null +++ b/src/views/property-marketing/put-account/investment-guidelines/style.scss @@ -0,0 +1,196 @@ +.part-div { + width: 100%; + background: var(--BG-white, white); + overflow: hidden; + border-radius: 8px; + outline: 1px var(--BG-300, #E6E6E8) solid; + outline-offset: -1px; + flex-direction: column; + justify-content: flex-start; + display: inline-flex; + margin: 10px; +} + +.part-div-header { + align-self: stretch; + height: 64px; + padding: 10px 24px 10px 24px; + justify-content: flex-start; + align-items: center; + display: inline-flex +} + +.a-tab-class { + color: var(--Brand-6, #6D4CFE); + font-size: 66px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 30px; + word-wrap: break-word; + +} + +//每块div 标题 +.part-div-header-title { + justify-content: center; + display: flex; + flex-direction: column; + color: var(--Text-1, #211F24); + font-size: 18px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 26px; + word-wrap: break-word; +} + +//账户指南-搜索div +.search-form { + padding: 10px 24px 20px 24px; + +} + +//账户列表-表格 +.account-table { + padding: 1px 24px 20px 24px; + width: 100%; +} + + + +.month-data-body { + width: 100%; + padding-bottom: 20px; + padding-left: 24px; + padding-right: 24px; + background: var(--BG-white, white); + overflow: hidden; + border-radius: 8px; + outline: 1px var(--BG-300, #E6E6E8) solid; + outline-offset: -1px; + flex-direction: column; + justify-content: flex-start; + align-items: center; + display: inline-flex; + margin: 10px; +} + +//本周摘要div +.month-body-div { + align-self: stretch; + height: 64px; + padding-top: 10px; + padding-bottom: 10px; + justify-content: space-between; + align-items: center; + display: inline-flex +} + +//本月摘要标题 +.month-data-title { + justify-content: center; + display: flex; + flex-direction: column; + color: var(--Text-1, #211F24); + font-size: 18px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 26px; + word-wrap: break-word +} + +//本月摘要-蓝色字体 +.month-text-blue { + color: var(--Brand-Brand-6, #6D4CFE); + font-size: 16px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 24px; + word-wrap: break-word +} + +//红色字体 +.month-text-red { + color: var(--Functional-Danger-6, #F64B31); + font-size: 16px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 24px; + word-wrap: break-word +} + +//黑色字体 +.month-text-black { + color: var(--Text-1, #211F24); + font-size: 16px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 24px; + word-wrap: break-word +} + +//本月摘要数据-div +.month-data-div { + align-self: stretch; + padding: 16px 30px 16px 16px; + margin-left: 20px; + margin-right: 20px; + margin-bottom: 20px; + background: var(--Brand-Brand-1, #F0EDFF); + overflow: hidden; + border-radius: 8px; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + gap: 12px; + display: flex; +} + +//投放建议-总体策略 +.overall-strategy { + width: 100%; + height: 40%; + padding: 20px 24px 20px 16px; + background: var(--BG-100, #F7F8FA); + overflow: hidden; + border-radius: 8px; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + gap: 12px; + display: inline-flex; + margin: 10px 0px 15px 20px; + +} + +//投放优化每块div小标题 +.placement-optimization-title { + // 总体策略 + color: var(--Text-1, #211F24); + font-size: 16px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 22px; + word-wrap: break-word +} + +.placement-optimization-str { + align-self: stretch; + color: var(--Text-2, #3C4043); + font-size: 14px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 22px; + word-wrap: break-word +} + +//表现分析标题 +.player-title { + margin: 10px 0px 15px 20px; + // 表现分析 + color: var(--Text-1, #211F24); + font-size: 16px; + font-family: Alibaba PuHuiTi; + font-weight: 400; + line-height: 22px; + word-wrap: break-word +} diff --git a/src/views/property-marketing/put-account/investmentGuidelines.less b/src/views/property-marketing/put-account/investmentGuidelines.less deleted file mode 100644 index fd746cf..0000000 --- a/src/views/property-marketing/put-account/investmentGuidelines.less +++ /dev/null @@ -1,198 +0,0 @@ -.placement-guide-style { - //每块div布局 - .part-div { - width: 100%; - background: var(--BG-white, white); - overflow: hidden; - border-radius: 8px; - outline: 1px var(--BG-300, #E6E6E8) solid; - outline-offset: -1px; - flex-direction: column; - justify-content: flex-start; - display: inline-flex; - margin: 10px; - } - - //每块div 头部 - .part-div-header { - align-self: stretch; - height: 64px; - padding: 10px 24px 10px 24px; - justify-content: flex-start; - align-items: center; - display: inline-flex - } - - //每块div 标题 - .part-div-header-title { - justify-content: center; - display: flex; - flex-direction: column; - color: var(--Text-1, #211F24); - font-size: 18px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 26px; - word-wrap: break-word; - } - - //账户指南-搜索div - .search-form { - padding: 10px 24px 20px 24px; - - } - - //账户列表-表格 - .account-table { - padding: 1px 24px 20px 24px; - width: 100%; - } - - //账户列表-分页 - .account-page { - padding: 10px 24px 20px 24px; - border: 1px; - border-color: red; - float: right; - - } - - .month-data-body { - width: 100%; - padding-bottom: 20px; - padding-left: 24px; - padding-right: 24px; - background: var(--BG-white, white); - overflow: hidden; - border-radius: 8px; - outline: 1px var(--BG-300, #E6E6E8) solid; - outline-offset: -1px; - flex-direction: column; - justify-content: flex-start; - align-items: center; - display: inline-flex; - margin: 10px; - } - - //本周摘要div - .month-body-div { - align-self: stretch; - height: 64px; - padding-top: 10px; - padding-bottom: 10px; - justify-content: space-between; - align-items: center; - display: inline-flex - } - - //本月摘要标题 - .month-data-title { - justify-content: center; - display: flex; - flex-direction: column; - color: var(--Text-1, #211F24); - font-size: 18px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 26px; - word-wrap: break-word - } - - //本月摘要-蓝色字体 - .month-text-blue { - color: var(--Brand-Brand-6, #6D4CFE); - font-size: 16px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 24px; - word-wrap: break-word - } - - //红色字体 - .month-text-red { - color: var(--Functional-Danger-6, #F64B31); - font-size: 16px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 24px; - word-wrap: break-word - } - - //黑色字体 - .month-text-black { - color: var(--Text-1, #211F24); - font-size: 16px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 24px; - word-wrap: break-word - } - - //本月摘要数据-div - .month-data-div { - align-self: stretch; - padding: 16px 30px 16px 16px; - margin-left: 20px; - margin-right: 20px; - margin-bottom: 20px; - background: var(--Brand-Brand-1, #F0EDFF); - overflow: hidden; - border-radius: 8px; - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - gap: 12px; - display: flex; - } - - //投放建议-总体策略 - .overall-strategy { - width: 100%; - height: 40%; - padding: 20px 24px 20px 16px; - background: var(--BG-100, #F7F8FA); - overflow: hidden; - border-radius: 8px; - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - gap: 12px; - display: inline-flex; - margin: 10px 0px 15px 20px; - - } - - //投放优化每块div小标题 - .placement-optimization-title { - // 总体策略 - color: var(--Text-1, #211F24); - font-size: 16px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 22px; - word-wrap: break-word - } - - .placement-optimization-str { - align-self: stretch; - color: var(--Text-2, #3C4043); - font-size: 14px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 22px; - word-wrap: break-word - } - - //表现分析标题 - .player-title { - margin: 10px 0px 15px 20px; - // 表现分析 - color: var(--Text-1, #211F24); - font-size: 16px; - font-family: Alibaba PuHuiTi; - font-weight: 400; - line-height: 22px; - word-wrap: break-word - } - -} diff --git a/src/views/property-marketing/put-account/investmentGuidelines.vue b/src/views/property-marketing/put-account/investmentGuidelines.vue deleted file mode 100644 index 9e98c59..0000000 --- a/src/views/property-marketing/put-account/investmentGuidelines.vue +++ /dev/null @@ -1,560 +0,0 @@ - - - - - 投放指南 - - - - - 账户 - - Beijing - Shanghai - Guangzhou - - - - 项目 - - Beijing - Shanghai - Guangzhou - - - - 平台 - - Beijing - Shanghai - Guangzhou - - - - - - - - 搜索 - - - - - - 重置 - - - - - - - - 账户列表 - - - - - - 本周总消耗 - - - - 本周总消耗 - - - - - - - 本周总消耗环比 - - - - 本周总消耗环比 - - - - - - - roi - - - - roi - - - - - - - ctr - - - - ctr - - - - - - - - - - - % - - - - - - % - - - - - - - - - - - 本月摘要 - - - - 本月摘要。 - - - - - - 总消耗: - ¥52,382.16 - ,较上周期↑12.6% - ;整体ROI:2.84 - ,属于中等偏高水平 - ,较上周期 +0.45 - ;主要转化来源:抖音 46.3% - ,CTR 2.91%;优质素材表现: - 美团酒店爆款横版1号 - 。CTR 3.47%,CVR 5.92%。 - - - - - - - 投放建议优化 - - - - 投放建议优化。 - - - - - - - - - 总体策略 - 本周建议 - - - - - - - 预算分配 - 巨量ROI高,建议将预算提升至 ¥5,000元/日 - 聚光 ROAS明显下降,建议减少预算 30% - - - - - 时段优化 - 过去7日 19:00-21:00 转化率最高,提升了12.6% - 建议设置定时投放,仅在高效时段曝光 - - - - - - - 人群包优化 - 18-24岁女性转化率最高,建议加预算 - 25-34岁男香表现较差,建议停投节省成本 - - - - - 素材优化 - 替换当前点击率下降的xxxxx素材 - 增加同类风格素材:xxxxx素材点击率更高 - 建议优化元素:视频封面/文案/开头引导,可提升CTR - - - - - - - - - 投放行动指南 - - - - 投放建议优化。 - - - - - 表现分析 - - - - 表现分析。 - - - - - - - - 人群分析 - - - - - 18-24岁女性,兴趣为“美妆/穿搭”,一线城市,抖音平台 ROI 3.2 - - - - - 25-34岁男性,兴趣为“数码产品”,二线城市,巨量引擎 ROI 2.8 - - - - - 18-24岁男性,兴趣为“运动/健身”,三线城市,抖音 ROI 2.3 - - - - - - - 投放素材 - - - - - 图文风格 + 明确福利点,CTR 3.2%、CVR 8.5% - - - - - 场景短视频 + 明确人设定位,CTR 2.7%、CVR 7.1% - - - - - 口播讲解类 + 产品对比,CTR 2.1%、CVR 6.0% - - - - - - - - - 投放时段 - - - - - 晚高峰时段(19:00–21:00),ROI 3.1 - - - - - 中午时段(11:30–13:00),ROI 2.5 - - - - - 下午茶时段(15:00–17:00),ROI 2.3 - - - - - - - - 平台表现 - - - - - 抖音 - ROI 3.2,CVR 8.5% - - - - - 聚光平台 - ROI 2.7,CVR 7.3% - - - - - B站 - ROI 2.4,CVR 6.8% - - - - - - - - 新投放建议生成 - - - - 新投放建议生成。 - - - - - - - 人群建议 - - - - - 集中在 18–24 岁女性 + 精准兴趣标签(如“护肤”、“口红”) - - - - - 24–30 岁男性 + 实用类内容受众(如“工具控”、“搞机党”) - - - - - 泛娱乐向受众 + 较大地域分布(兴趣“短剧”、“直播带货”) - - - - - - - - - 素材建议 - - - - - 福利明确+钩子强的图文短视频,建议加限时优惠提示 - - - - - 场景代入型视频,突出客户痛点与产品关联 - - - - - 达人口播/测评,搭配标题党封面吸引点击 - - - - - - - - - - 投放策略建议 - - - - - 预算前置在 ROI 最佳时段和平台,优先抢头部流量 - - - - - 中等预算组合投放 + 高点击素材A/B测试 - - - - - 低预算长周期测试,重点看 CVR,优胜劣汰 - - - - - - - - - - - -
投放建议优化。
表现分析。
新投放建议生成。
本月摘要。
本周总消耗
本周总消耗环比
roi
ctr