diff --git a/.eslintrc.cjs b/.eslintrc.cjs index a98f933..a78dbb9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -28,6 +28,14 @@ module.exports = { tsx: '@typescript-eslint/parser', }, }, + babelOptions: { + presets: [ + '@babel/preset-env' + ], + plugins: [ + '@vue/babel-plugin-jsx' + ] + }, rules: { '@typescript-eslint/prefer-optional-chain': 'off', 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', diff --git a/src/api/all/propertyMarketing.ts b/src/api/all/propertyMarketing.ts index 67d610e..5e46d05 100644 --- a/src/api/all/propertyMarketing.ts +++ b/src/api/all/propertyMarketing.ts @@ -341,3 +341,23 @@ export const postSubAccount = (params = {}) => { export const postAddSubAccount = (params = {}) => { return Http.post('/v1/placement-accounts/subaccount', params); }; + +// 媒体账号-同步数据 +export const postSyncMediaAccountData = (id: string) => { + return Http.post(`/v1/media-accounts/${id}/sync-data`); +}; + +// 媒体账号-批量同步数据 +export const postBatchSyncMediaAccountData = (params: {}) => { + return Http.post(`/v1/media-accounts/batch-sync-data`, params); +}; + +// 媒体账号-查询同步状态 +export const getMediaAccountSyncStatus = (params = {}) => { + return Http.get('/v1/media-accounts/sync-status', params); +}; + +// 媒体账号-移除同步状态 +export const deleteSyncStatus = (id: string) => { + return Http.delete(`/v1/media-accounts/${id}/sync-status`); +}; \ No newline at end of file diff --git a/src/assets/img/media-account/icon-xhs.png b/src/assets/img/media-account/icon-xhs.png index 7429e58..c66ac71 100644 Binary files a/src/assets/img/media-account/icon-xhs.png and b/src/assets/img/media-account/icon-xhs.png differ diff --git a/src/styles/components/date-picker.scss b/src/styles/components/date-picker.scss index 6120784..568a2ce 100644 --- a/src/styles/components/date-picker.scss +++ b/src/styles/components/date-picker.scss @@ -12,4 +12,7 @@ border-color: rgb(var(--primary-6)) !important; box-shadow: 0 0 0 0 var(--color-primary-light-2) !important; } + &.arco-picker-disabled { + background-color: var(--BG-200, #F2F3F5) !important; + } } diff --git a/src/styles/components/input.scss b/src/styles/components/input.scss index 896bb8b..e55b6f4 100644 --- a/src/styles/components/input.scss +++ b/src/styles/components/input.scss @@ -12,4 +12,7 @@ border-color: rgb(var(--primary-6)) !important; box-shadow: 0 0 0 0 var(--color-primary-light-2) !important; } + &.arco-input-disabled { + background-color: var(--BG-200, #F2F3F5) !important; + } } diff --git a/src/styles/components/select.scss b/src/styles/components/select.scss index cf0b8aa..81f20c1 100644 --- a/src/styles/components/select.scss +++ b/src/styles/components/select.scss @@ -12,4 +12,7 @@ border-color: rgb(var(--primary-6)) !important; box-shadow: 0 0 0 0 var(--color-primary-light-2) !important; } + &.arco-select-view-disabled { + background-color: var(--BG-200, #F2F3F5) !important; + } } diff --git a/src/styles/components/textarea.scss b/src/styles/components/textarea.scss index f87db35..7b8408a 100644 --- a/src/styles/components/textarea.scss +++ b/src/styles/components/textarea.scss @@ -12,4 +12,7 @@ border-color: rgb(var(--primary-6)) !important; box-shadow: 0 0 0 0 var(--color-primary-light-2) !important; } + &.arco-textarea-disabled { + background-color: var(--BG-200, #F2F3F5) !important; + } } diff --git a/src/utils/tools.ts b/src/utils/tools.ts index 105d541..e2093fc 100644 --- a/src/utils/tools.ts +++ b/src/utils/tools.ts @@ -3,6 +3,7 @@ * @Date: 2025-06-27 17:36:31 */ import dayjs from 'dayjs'; + export function toFixed(num: number | string, n: number): number { return parseFloat(parseFloat(num.toString()).toFixed(n)); } diff --git a/src/views/components/dataEngine/userPersona.vue b/src/views/components/dataEngine/userPersona.vue index ee736a0..53a053a 100644 --- a/src/views/components/dataEngine/userPersona.vue +++ b/src/views/components/dataEngine/userPersona.vue @@ -18,16 +18,16 @@ 女性 - {{ genderData[0].rate * 100 }}% + {{ (girlData.rate * 100).toFixed(2) }}% TGI - {{ genderData[0].tgi }} + {{ girlData.tgi }} 男性 - {{ genderData[1].rate * 100 }}% + {{ (boyData.rate * 100).toFixed(2) }}% TGI - {{ genderData[1].tgi }} + {{ boyData.tgi }} @@ -145,10 +145,13 @@ const topHeaderRef = ref(); const selectedIndustry = computed(() => topHeaderRef.value?.selectedIndustry); const selectedSubCategory = computed(() => topHeaderRef.value?.selectedSubCategory); const selectedTimePeriod = computed(() => topHeaderRef.value?.selectedTimePeriod); + const genderData = ref([]); const genderValueData = ref([]); const ageValueData = ref([]); const geoList = ref([]); +const boyData = computed(() => genderData.value.find( v => v.gender === 1) ?? {}) +const girlData = computed(() => genderData.value.find( v => v.gender === 2) ?? {}) // 监听筛选条件变化 watch([selectedIndustry, selectedTimePeriod, selectedSubCategory], () => { getAgeDistributionsList(); @@ -233,7 +236,7 @@ const getGenderDistributionsList = async () => { await nextTick(); genderValueData.value = data.map((item) => ({ - value: item.rate * 100, + value: (item.rate * 100).toFixed(2), tgi: item.tgi, name: item.gender === 1 ? '女性' : '男性', })); diff --git a/src/views/property-marketing/media-account/account-detail/components/account-info/index.vue b/src/views/property-marketing/media-account/account-detail/components/account-info/index.vue index 5b3d2a6..06f1b32 100644 --- a/src/views/property-marketing/media-account/account-detail/components/account-info/index.vue +++ b/src/views/property-marketing/media-account/account-detail/components/account-info/index.vue @@ -8,14 +8,11 @@ 账号信息
-
+
+ + + + @@ -108,7 +136,7 @@ diff --git a/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue b/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue index 23eb39a..6a333b6 100644 --- a/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/account-table/index.vue @@ -4,21 +4,34 @@ -->