Selaa lähdekoodia

收入报表支持小时数据

dodo hold 1 vuosi sitten
vanhempi
sitoutus
31c995e903

+ 11 - 1
src/api/taobao.ts

@@ -28,6 +28,11 @@ export interface UpdateConfigModel {
 
     jd_h5st_sign_url: string;
     jd_h5st_sign_version: string;
+    
+    dp_style: string;
+    dp_style_percentage: number;
+    dp_style_default_str: string;
+
 
     tk_limit_per_ip_24h: number;
     tk_limit_per_oaid_24h: number;
@@ -161,7 +166,8 @@ export interface TkReportRecord {
 
 export interface TkReportParams extends Partial<TkReportRecord> {
     accountId?: number;
-    total_key?: string;
+    filterHours?: number;
+    total_key?: string;  
     query_date?: string[]; // 覆盖 report_date 的类型为字符串数组
     current: number;
     pageSize: number;
@@ -344,6 +350,10 @@ export function queryTkReportDailys(data: TkReportParams) {
     const url = ForwardAPI('/api/taobao/report_dailys');
     return axios.post<TkReportRes>(url, data);
 }
+export function queryTkReportHourlys(data: TkReportParams) {
+    const url = ForwardAPI('/api/taobao/report_hourlys');
+    return axios.post<TkReportRes>(url, data);
+}
 export function queryTkReportHourtrend(data: TkReportParams) {
     const url = ForwardAPI('/api/taobao/report_hourtrend');
     return axios.post<TkReportRes>(url, data);

+ 34 - 4
src/views/settings/config.vue

@@ -147,17 +147,35 @@
                                             </a-button>
                                         </template>
                                     </a-form-item>
-                                    
-                                    
+
+
+                                    <a-divider />
+
                                     <a-form-item field="jd_h5st_sign_url" label="h5st签名地址">
                                         <a-input v-model="formData.jd_h5st_sign_url" />
                                     </a-form-item>
 
-                                    
                                     <a-form-item field="jd_h5st_sign_version" label="h5st版本">
                                         <a-input v-model="formData.jd_h5st_sign_version" />
                                     </a-form-item>
 
+                                    <a-divider />
+
+                                    <a-form-item field="dp_style" label="不可分佣的DP样式">
+                                        <a-select v-model="formData.dp_style">
+                                            <a-option value="">默认样式</a-option>
+                                            <a-option value="clickId">带clickId</a-option>
+                                        </a-select>
+                                    </a-form-item>
+                                    <template v-if="formData.dp_style">
+                                        <a-form-item field="dp_style_default_str" label="默认clickId标识">
+                                            <a-input v-model="formData.dp_style_default_str" />
+                                        </a-form-item>
+                                        <a-form-item field="dp_style_percentage" label="新样式的比重">
+                                            <a-input-number v-model="formData.dp_style_percentage" :min="0" :max="100"
+                                                placeholder="主动放弃流量,0-100,举例:10 = 放弃10%" />
+                                        </a-form-item>
+                                    </template>
 
                                 </a-tab-pane>
                                 <a-tab-pane key="pdd" title="拼多多">
@@ -292,15 +310,26 @@ const formData = ref<UpdateConfigModel>({
     tk_blacklist_regular: '',
     multi_token_regular: '',
     tk_limit_per_ip_24h: 0,
+    tk_limit_per_oaid_24h: 0,
 
     cpsIgnorePercentageCity: '',
     cps_limit_per_ip_24h: 0,
+    cps_limit_per_oaid_24h: 0,
 
     jdIgnorePercentage: 0,
     ignorePercentageCity: '',
     jdIgnorePercentageCity: '',
     jd_limit_per_ip_24h: 0,
     jd_blacklist_regular: '',
+    
+    jd_limit_per_oaid_24h: 0,
+    jd_h5st_sign_url: '',
+    jd_h5st_sign_version: '',
+
+    dp_style: '',
+    dp_style_percentage: 0,
+    dp_style_default_str: '',
+
 
     pdd_limit_per_ip_24h: 0,
     pdd_limit_per_oaid_24h: 0,
@@ -313,7 +342,8 @@ const formData = ref<UpdateConfigModel>({
     ksIgnorePercentage: 0,
     ks_blacklist_regular: '',
     ksTestToken: '',
-
+    ks_limit_per_oaid_24h: 0
+    
 });
 
 const showRegularTester = ref<boolean>(false);

+ 1 - 1
src/views/taobao/components/selectAccount.vue

@@ -1,6 +1,6 @@
 <template>
 
-    <a-select v-model="model" placeholder="指定账号名" allow-clear @change="changeCompany">
+    <a-select v-model="model" placeholder="指定账号名" allow-search allow-clear @change="changeCompany">
         <a-option value="">所有账号</a-option>
         <a-option :key="item.id" v-for="item of accounts" :value="item.company" :label="item.company" />
     </a-select>

+ 85 - 22
src/views/taobao/report_daily.vue

@@ -12,6 +12,15 @@
                                     <selectAccount v-model="formModel.accountName" @change="changeCompany" />
                                 </a-form-item>
                             </a-col>
+                            <a-col :span="6">
+                                <a-form-item field="keyword" label="时间段">
+                                    <a-select v-model="formModel.filterHours" placeholder="请选择时间段" allow-clear
+                                        @change="changeFilterHours">
+                                        <a-option v-for="hour in 24" :key="hour - 1" :value="hour"
+                                            :label="`${hour - 1}:00`" />
+                                    </a-select>
+                                </a-form-item>
+                            </a-col>
                             <a-col :span="8">
                                 <a-form-item field="query_date" :label="$t('searchTable.form.report_date')">
                                     <a-range-picker v-model="formModel.query_date" style="width: 100%"
@@ -97,32 +106,37 @@
                 :data="renderData" :bordered="{ headerCell: true }" :size="size" :load-more="loadMore"
                 @page-change="onPageChange" @page-size-change="onPageSizeChange">
                 <template #xAxis="{ record }">
-                    <!-- <template v-if="record.accountName !== '' && !record.isLeaf">
-                        {{ record.accountName }}
-                    </template>
-    <template v-else>
-                        {{ dayjs(record.report_date).format(record.isLeaf ? 'HH:mm' : 'YYYY-MM-DD') }}
-                    </template> -->
+
+                    <template v-if="formModel.filterHours">
+
+                        <template v-if="record.isLeaf">
+                            {{ record.accountName }}
+                        </template>
+                        <template v-else>
+                            {{ dayjs(record.report_date).format('YYYY-MM-DD HH:mm') }}
+                        </template>
+
 
 
-                    <template v-if="record.isLeaf || record.accountName == ''">
-                        {{ dayjs(record.report_date).format(record.isLeaf ? 'HH:mm' : 'YYYY-MM-DD') }}
                     </template>
                     <template v-else>
-                        <a-typography-text type="secondary">
-                            {{ dayjs(record.report_date).format('YYYY-MM-DD') }}
-                        </a-typography-text>
+                        <template v-if="record.isLeaf || record.accountName == ''">
+                            {{ dayjs(record.report_date).format(record.isLeaf ? 'HH:mm' : 'YYYY-MM-DD') }}
+                        </template>
+                        <template v-else>
+                            <template v-if="!formModel.accountName">
+                                {{ record.accountName }}
+                            </template>
+                            <template v-else>
+                                <a-typography-text type="secondary">
+                                    {{ dayjs(record.report_date).format('YYYY-MM-DD') }}
+                                </a-typography-text>
+                            </template>
+                        </template>
 
-                        {{ record.accountName }}
                     </template>
-
-                </template>
-
-                <template #accountName="{ record }">
-                    {{ record.isLeaf ? '' : record.accountName }}
                 </template>
 
-
                 <template #pay_ord_amt_56="{ record }">
                     <viewOrdersModal filter-type='pay_ord_amt_56' :data="record">
                         {{ amountFormat(record.pay_ord_amt_56) }}
@@ -292,6 +306,7 @@ import { numberFormat, amountFormat } from '@/utils/util';
 import {
     queryTkReport,
     queryTkReportDailys,
+    queryTkReportHourlys,
     queryTkReportHourtrend,
     TkReportRecord,
     TkReportParams,
@@ -312,6 +327,7 @@ type Column = TableColumnData & { checked?: true };
 
 const generateFormModel = () => {
     return {
+        filterHours: undefined as number | undefined,
         accountName: '',
         query_date: [],
         current: 1,
@@ -795,7 +811,20 @@ const fetchData = async (
     setLoading(true);
     try {
         let list: TkReportRecord[] = [];
-        if (formModel.value.accountName) {
+        if (formModel.value.filterHours) {
+            const { data } = await queryTkReportHourlys(params);
+            console.log(data);
+            if (!data) return;
+            list = data.list.map((item: TkReportRecord) => ({
+                ...item,
+                order_ord_amt_12_14: item.order_ord_amt_12 + item.order_ord_amt_14,
+                order_ord_tfee_12_14: item.order_ord_tfee_12 + item.order_ord_tfee_14,
+            }));
+            renderData.value = list;
+            pagination.current = data.page;
+            pagination.total = data.count;
+
+        } else if (formModel.value.accountName) {
             const { data } = await queryTkReport(params);
             console.log(data);
             if (!data) return;
@@ -816,13 +845,13 @@ const fetchData = async (
                 ...item,
                 order_ord_amt_12_14: item.order_ord_amt_12 + item.order_ord_amt_14,
                 order_ord_tfee_12_14: item.order_ord_tfee_12 + item.order_ord_tfee_14,
+                isLeaf: false,
+
             }));
             renderData.value = list;
             pagination.current = data.page;
             pagination.total = data.count;
         }
-
-
     } catch (err) {
         console.log(err);
         // you can report use errorHandler or other
@@ -840,7 +869,28 @@ const loadMore = async (
     try {
         let list: TableData[] = [];
 
-        if (row.accountName === '') {
+        if (formModel.value.filterHours) {
+            const params: TkReportParams = {
+                query_date: [row.report_date, row.report_date],
+                filterHours: formModel.value.filterHours,
+                accountId: row.accountId,
+                current: 1,
+                pageSize: 24,
+                sort: 'report_date',
+                order: 'descending',
+            };
+
+            const { data } = await queryTkReportHourtrend(params);
+            console.log(data);
+            if (!data) return;
+            list = data.list.map((item: TkReportRecord) => ({
+                ...item,
+                order_ord_amt_12_14: item.order_ord_amt_12 + item.order_ord_amt_14,
+                order_ord_tfee_12_14: item.order_ord_tfee_12 + item.order_ord_tfee_14,
+                isLeaf: true,
+            }));
+        }
+        else if (row.accountName === '') {
             const params: TkReportParams = {
                 query_date: [row.report_date, row.report_date],
                 current: 1,
@@ -906,6 +956,19 @@ const changeCompany = (value: any) => {
 };
 
 
+const changeFilterHours = (value: any) => {
+    const reset = () => {
+        formModel.value = generateFormModel();
+    };
+    formModel.value.filterHours = value
+
+    fetchData({
+        ...basePagination,
+        ...formModel.value,
+    } as unknown as TkReportParams);
+};
+
+
 
 
 const onPageChange = (current: number) => {