46 Commits 276c1ce6f1 ... f3d052857a

Autor SHA1 Nachricht Datum
  gdy96 f3d052857a Merge branch 'master' of qk:zhuishuyun/precise_delivery_distribution_front vor 4 Jahren
  gdy96 a85f98024a 投放数据 vor 4 Jahren
  gdy96 274c088108 Merge branch 'master' of qk:zhuishuyun/precise_delivery_distribution_front vor 4 Jahren
  gdy96 82141e9e50 投放数据 vor 4 Jahren
  gdy96 176c3a39fa toufangshuju vor 4 Jahren
  xia 6fe2d8bdec 接口不全 vor 4 Jahren
  xia 82a3b61813 Merge branch 'master' of qk:zhuishuyun/precise_delivery_distribution_front vor 4 Jahren
  xia 807bf916cb 广告账号 vor 4 Jahren
  晓晓晓晓丶vv eb4363f263 🏷️ 路由添加类型 增强提示 vor 4 Jahren
  晓晓晓晓丶vv 5e574a59eb 🎨 未完待续。。 vor 4 Jahren
  晓晓晓晓丶vv e42b4a58ae 🎨 登录排版优化 vor 4 Jahren
  晓晓晓晓丶vv 8625ae8301 ✨ feat(put/book): 书籍搜索 vor 4 Jahren
  晓晓晓晓丶vv 154ae0e4be ✨ 新增debounce/throttle hooks vor 4 Jahren
  晓晓晓晓丶vv 52269d707d 👌 性能优化 vor 4 Jahren
  晓晓晓晓丶vv b52b844115 🎨 支持.vue/.tsx混写 vor 4 Jahren
  晓晓晓晓丶vv 050dd9615c 🍻 测试性弹窗 - 勿用 vor 4 Jahren
  晓晓晓晓丶vv c88e0300c9 ✨ 投放书籍接口 vor 4 Jahren
  晓晓晓晓丶vv ceaae0bd27 🎨 rename pageName vor 4 Jahren
  晓晓晓晓丶vv b8e533e501 💄 样式优化 vor 4 Jahren
  晓晓晓晓丶vv 967257da5b 💄 去掉size:large 回头改用全局设置组件大小 vor 4 Jahren
  晓晓晓晓丶vv c0c6da5eb9 💄 Header头 vor 4 Jahren
  晓晓晓晓丶vv 098e929326 ✨ 登录接口 投放书籍列表接口 vor 4 Jahren
  晓晓晓晓丶vv 7db7e56933 💄 update transition animation vor 4 Jahren
  晓晓晓晓丶vv e61832dcb0 🏷️ 类型优化 vor 4 Jahren
  晓晓晓晓丶vv 7878a7235c 🎨 更改广告计划结构 vor 4 Jahren
  晓晓晓晓丶vv d978ec078d 🔧 add .env variable vor 4 Jahren
  晓晓晓晓丶vv 742a825022 💄 tool-bar间距调整 vor 4 Jahren
  晓晓晓晓丶vv f055d1e87f 📦 页面 vor 4 Jahren
  晓晓晓晓丶vv 8efb5176d3 📦 add 404 page vor 4 Jahren
  晓晓晓晓丶vv 1e3d100a69 🎨 rename route path vor 4 Jahren
  晓晓晓晓丶vv 2fab2662fe 🐛 权限路由默认子路由控制 vor 4 Jahren
  晓晓晓晓丶vv a8209202ff 📦 登录 | 公众号 | 投放管理路由 vor 4 Jahren
  晓晓晓晓丶vv 5bda7d01e6 💄 layout vor 4 Jahren
  晓晓晓晓丶vv 151da6e995 ✨ 二次确认指令 vor 4 Jahren
  晓晓晓晓丶vv 10c1cef03e 🐛 fix(App): 修复打包出错的问题 | add(.env): 增加环境变量 vor 4 Jahren
  晓晓晓晓丶vv d0c65944e6 🐛 fix(vue-clipboard): 修复clipboard没引用调用报错 vor 4 Jahren
  xia 9241236065 声明全局 vor 4 Jahren
  晓晓晓晓丶vv 7381aa3e44 💄 Layout样式 vor 4 Jahren
  晓晓晓晓丶vv 47f0a72066 🎨 默认无需权限 vor 4 Jahren
  晓晓晓晓丶vv cda30f3bc1 🎨 优化store结构 vor 4 Jahren
  晓晓晓晓丶vv d2bdeb11f2 🎨 去除无用log vor 4 Jahren
  晓晓晓晓丶vv 0dcdbff7c0 🎨 axios配置文件 vor 4 Jahren
  晓晓晓晓丶vv 3652155884 ✨ 菜单可多层嵌套 vor 4 Jahren
  晓晓晓晓丶vv 8837f4cfd8 💄 Layout组件 路由 vor 4 Jahren
  晓晓晓晓丶vv 75faef9c82 merge vor 4 Jahren
  zhoulj 46fd77e1f6 Initial commit vor 4 Jahren
4 geänderte Dateien mit 98 neuen und 20 gelöschten Zeilen
  1. 16 0
      src/api/index.ts
  2. 18 0
      src/types/api.d.ts
  3. 10 10
      src/views/_pageOptions/table-put.ts
  4. 54 10
      src/views/put/put-data.vue

+ 16 - 0
src/api/index.ts

@@ -12,6 +12,7 @@ import {
   ADpushSimple,
   IOfficials,
   ADPlanItem,
+  deliveryPlanItem,
   IPlatform,
 } from "@/types/api";
 
@@ -105,6 +106,21 @@ export const getADPlanlist = (
 };
 
 /**
+ * @description: 获取投放数据列表
+ */
+export const getDeliveryStatList = (
+  query: Partial<{
+    start_time: string;
+    end_time: string;
+    official_name: string;
+    book_name: string;
+    page: number;
+  }> = { page: 1 }
+): AxiosPromise<IList<deliveryPlanItem>> => {
+  return axios("/delivery/stat", { params: query });
+}
+
+/*
  * 获取平台列表
  */
 export const getPlatforms = (): AxiosPromise<IPlatform[]> => {

+ 18 - 0
src/types/api.d.ts

@@ -104,6 +104,24 @@ export interface ADPlanItem {
   aim: string;
 }
 
+export interface deliveryPlanItem {
+  date: string;
+  official_id: number;
+  official_name: string;
+  book_name: string;
+  bid: number;
+  cost: number;
+  register_num: number;
+  delivery_platform: string;
+  register_cost: number;
+  pay_fans_cost: number;
+  recovery_rate: string;
+  h24_recovery_rate: string;
+  d3_recovery_rate: string;
+  d7_recovery_rate: string;
+  d30_recovery_rate: string;
+}
+
 export interface IPlatform {
   desc: string;
   name: string;

+ 10 - 10
src/views/_pageOptions/table-put.ts

@@ -73,7 +73,7 @@ export const TableColumnOfPutData = [
   },
   {
     title: "公众号名称",
-    dataIndex: "account",
+    dataIndex: "official_name",
     width: 150,
   },
   {
@@ -86,46 +86,46 @@ export const TableColumnOfPutData = [
   },
   {
     title: "新增注册用户",
-    dataIndex: "add_register_user",
+    dataIndex: "register_num",
   },
   {
     title: "流量平台",
-    dataIndex: "platform",
+    dataIndex: "delivery_platform",
   },
   {
     title: "注册成本",
-    dataIndex: "register_number",
+    dataIndex: "register_cost",
   },
   {
     title: "支付粉价",
-    dataIndex: "fans_cost",
+    dataIndex: "pay_fans_cost",
   },
   {
     title: "累计回本",
-    dataIndex: "cumulative",
+    dataIndex: "recovery_rate",
   },
   {
     fixed: "right",
     title: "24小时回本率",
-    dataIndex: "day_rate",
+    dataIndex: "h24_recovery_rate",
     width: 120,
   },
   {
     fixed: "right",
     title: "3天回本率",
-    dataIndex: "three_day_rate",
+    dataIndex: "d3_recovery_rate",
     width: 100,
   },
   {
     fixed: "right",
     title: "7天回本率",
-    dataIndex: "week_rate",
+    dataIndex: "d7_recovery_rate",
     width: 100,
   },
   {
     fixed: "right",
     title: "30天回本率",
-    dataIndex: "month_rate",
+    dataIndex: "d30_recovery_rate",
     width: 120,
   },
   {

+ 54 - 10
src/views/put/put-data.vue

@@ -1,36 +1,80 @@
 <template>
   <div class="page-wrap page-wrap-put-books">
-    <tool-bar :text="['account', 'user']"
-              :label="['公众号名称', '用户名']">
+    <tool-bar
+      :text="['official_name', 'book_name']"
+      :label="['公众号名称', '书名']"
+      @confirm="onSearch"
+      v-model:loading="inSearching"
+    >
       <template #picker>
         <p class="label">日期</p>
         <a-range-picker />
       </template>
     </tool-bar>
-    <a-table :columns="columns"
-             :data-source="list"
-             :scroll="{x: 1800}"></a-table>
+    <a-table :columns="columns" :data-source="list" :scroll="{x: 1800}">
+      <template #operator="data">
+        <div @click="more(data)">更多</div>
+      </template>
+    </a-table>
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, reactive, toRefs } from "vue";
+import { defineComponent, reactive, toRefs, ref } from "vue";
 
 import ToolBar from "@/components/tool-bar/index.vue";
 
 import { TableColumnOfPutData } from "../_pageOptions/table-put";
 
+import { getDeliveryStatList } from "@/api";
+import usePagination from "@/hooks/usePagination";
+
+import { deliveryPlanItem, PageOptions } from "@/types/api";
+
 const PutData = defineComponent({
   components: {
     ToolBar,
   },
   setup() {
-    const data = reactive({
-      list: [],
+    let { loading, meta, tablePageOptions } = usePagination();
+    const state = reactive({
+      list: ref<deliveryPlanItem[]>([]),
       columns: TableColumnOfPutData,
+      inSearching: false,
     });
-
-    return { ...toRefs(data) };
+    const onSearch = async (fields: Record<string, string>) => {
+      try {
+        const { official_name, book_name, start_time, end_time } = fields;
+        const { data } = await getDeliveryStatList({
+          start_time,
+          end_time,
+          official_name,
+          book_name,
+          page: 1,
+        });
+        state.list = data.list;
+        meta.value = data.meta;
+      } catch (e) {
+        console.log(e);
+      } finally {
+        console.log(state.inSearching);
+        state.inSearching = false;
+      }
+    };
+    getDeliveryStatList().then((res) => {
+      state.list = res.data.list;
+    });
+    const handleTableChange = (pagination: PageOptions) => {
+      const { current, pageSize, total } = pagination;
+      getDeliveryStatList({ page: current }).then((res) => {
+        state.list = res.data.list;
+        meta.value = res.data.meta;
+      });
+    };
+    const more = () => {
+      
+    };
+    return { ...toRefs(state), onSearch, handleTableChange, meta };
   },
 });