Sfoglia il codice sorgente

渠道业绩-新版

yumeng 1 anno fa
parent
commit
c1c4c0c852

+ 24 - 0
src/api/supplyChain/supplyChain.js

@@ -195,6 +195,14 @@ export function getBdReportList(query) {
   })
 }
 
+export function getBdReportListV2(query) {
+  return request({
+    url: '/isv/supply_chain/bdReportListV2',
+    method: 'get',
+    params: query
+  })
+}
+
 export function submitPromotersCount(query) {
   return request({
     url: '/kuaishou/promoter/addPromotersCount',
@@ -210,6 +218,22 @@ export function getBdDetailList(query) {
     params: query
   })
 }
+export function getBdDetailListV2(query) {
+  return request({
+    url: '/isv/supply_chain/bdDetailListV2',
+    method: 'get',
+    params: query
+  })
+}
+
+
+export function getBdTotalV2(query) {
+  return request({
+    url: '/isv/supply_chain/bdTotalV2',
+    method: 'get',
+    params: query
+  })
+}
 //查询渠道详情汇总
 export function getBdTotal(query) {
   return request({

+ 0 - 1
src/views/goodsManagement/ruleConfig.vue

@@ -159,7 +159,6 @@
           >
             <el-option label="按区间结算" value="1"> </el-option>
             <el-option label="按单数结算" value="2"> </el-option>
-            <el-option label="按达人结算" value="3"> </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label=" " style="width: 100%" class="entire-line">

+ 526 - 0
src/views/supplyChain/channelDetailsV2.vue

@@ -0,0 +1,526 @@
+<style scoped lang="scss">
+::v-deep a {
+  color: #409eff;
+  display: block;
+}
+p {
+  text-align: left;
+  margin: 0;
+}
+</style>
+<template>
+  <div class="app-container">
+    <div></div>
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="100px"
+    >
+      <!-- <el-form-item label="商品名称" prop="itemTitle">
+        <el-input
+          v-model="queryParams.itemTitle"
+          placeholder="请输入商品名称"
+          clearable
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商品Id" prop="itemId">
+        <el-input
+          v-model.number="queryParams.itemId"
+          placeholder="请输入商品Id"
+          clearable
+          style="width: 240px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item> -->
+      <el-form-item label="选择日期">
+        <el-date-picker
+          v-model="uploadDate"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          :loading="downLoadLoading"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="typeList"
+      @selection-change="handleSelectionChange"
+      @sort-change="sortChange"
+      ref="multipleTable"
+      :span-method="arraySpanMethod"
+      border
+    >
+      <!-- :summary-method="getSummaries" -->
+      <!-- show-summary -->
+      <el-table-column label="达人名称" align="center" prop="itemTitle" width="300">
+        <template slot-scope="scope">
+          <div style="display: flex; width: 100%" v-if="scope.row.promoterName != '总计'">
+            <div style="width: 40%">
+              <img
+                :src="scope.row.promoterUrl"
+                alt=""
+                style="width: 70px; height: auto"
+              />
+            </div>
+            <div style="width: 60%">
+              <a
+                style="
+                  text-overflow: ellipsis;
+                  white-space: nowrap;
+                  overflow: hidden;
+                  width: 100%;
+                  text-align: left;
+                "
+                :title="scope.row.promoterName"
+              >
+                {{ scope.row.promoterName }}
+              </a>
+              <p>达人Id: {{ scope.row.promoterId }}</p>
+            </div>
+          </div>
+          <div v-else style="font-size: 20px">
+            {{ scope.row.promoterName }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="领样数" align="center" prop="sampleCount" sortable="custom">
+      </el-table-column>
+      <el-table-column label="订单数" align="center" prop="orderNum" sortable="custom">
+      </el-table-column>
+      <el-table-column
+        label="有效订单数"
+        align="center"
+        prop="validOrderNum"
+        sortable="custom"
+      >
+      </el-table-column>
+
+      <el-table-column
+        label="有效订单率"
+        align="center"
+        prop="validOrderRate"
+        sortable="custom"
+      >
+        <template slot-scope="scope">
+          {{ scope.row.validOrderRate }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="订单金额"
+        align="center"
+        prop="orderAmount"
+        sortable="custom"
+      >
+        <template slot-scope="scope">
+          {{ scope.row.orderAmount }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="预估服务费收入"
+        align="center"
+        prop="regimentalPromotionAmount"
+        sortable="custom"
+      >
+        <template slot-scope="scope">
+          {{
+            scope.row.regimentalPromotionAmount
+          }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="结算服务费收入"
+        align="center"
+        prop="totalRegimentalSettleAmount"
+        sortable="custom"
+      >
+        <template slot-scope="scope">
+          {{
+            scope.row.totalRegimentalSettleAmount
+          }}
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getUserItemDetail"
+    />
+  </div>
+</template>
+
+<script>
+import {
+  listType,
+  getType,
+  delType,
+  addType,
+  updateType,
+  refreshCache,
+} from "@/api/system/dict/type";
+import {
+  getBdDetailListV2,
+  getOrderList,
+  getItemDetail,
+  downFilePost,
+  getUserItemDetail,
+  getBdTotalV2,
+} from "@/api/supplyChain/supplyChain";
+var echarts = require("echarts");
+export default {
+  name: "ClaimOk",
+  dicts: ["sys_normal_disable"],
+  data() {
+    return {
+      downLoadLoading: false,
+      dialogTableVisible: false,
+      logPage: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      logData: [],
+      logTotal: 0,
+      logLoading: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 字典表格数据
+      typeList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 分配销售
+      openAllocation: false,
+      // 选择的销售id
+      saleId: undefined,
+      // 获取用户id
+      userId: undefined,
+      // 销售列表
+      saleList: [],
+      // 分配销售确定loading
+      confirmLoadingSale: false,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        itemId: undefined,
+        itemTitle: undefined,
+        orderStartDate: undefined,
+        orderEndDate: undefined,
+      },
+      uploadDate: [new Date(), new Date()],
+      //查询参数所用下拉数据
+      queryParamsList: {},
+      prop: "orderNum",
+      sort: "desc",
+      itemSummary: [],
+      loadingTotal: false,
+    };
+  },
+  created() {
+    if (
+      this.$route &&
+      this.$route.query.id &&
+      this.$route.query.orderStartDate &&
+      this.$route.query.orderEndDate
+    ) {
+      this.uploadDate = [
+        this.$route.query.orderStartDate,
+        this.$route.query.orderEndDate,
+      ];
+      this.getUserItemTotal();
+      this.getUserItemDetail();
+    } else {
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? "0" + MM : MM;
+      let dd = date.getDate();
+      dd = dd < 10 ? "0" + dd : dd;
+      this.uploadDate = [`${y}-${MM}-${dd}`, `${y}-${MM}-${dd}`];
+      this.getUserItemTotal();
+      this.getUserItemDetail();
+    }
+  },
+  mounted() {
+    this.$nextTick(() => {});
+  },
+  methods: {
+    /** 导出按钮操作 */
+    handleExport() {
+      this.downLoadLoading = true;
+      downFilePost(
+        "/isv/supply_chain/exportBdDetailV2",
+        this.addDateRange(
+          {
+            ...this.queryParams,
+            collectSampleId: !!this.$route.query.id
+              ? this.$route.query.id
+              : this.$store.getters.remark == "管理员"
+              ? null
+              : this.$store.getters.userId,
+          },
+          this.uploadDate,
+          "orderStartDate",
+          "orderEndDate"
+        )
+      ).then((res) => {
+        let blob = new Blob([res], {
+          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+        });
+        let downloadElement = document.createElement("a");
+        let href = window.URL.createObjectURL(blob); //创建下载的链接
+        downloadElement.href = href;
+        downloadElement.download = `渠道详情_${this.uploadDate[0]}-${this.uploadDate[1]}.xlsx`; //下载后文件名
+        document.body.appendChild(downloadElement);
+        downloadElement.click(); //点击下载
+        document.body.removeChild(downloadElement); //下载完成移除元素
+        window.URL.revokeObjectURL(href); //释放掉blob对象
+        this.downLoadLoading = false;
+      });
+    },
+    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (rowIndex === 0) {
+        if (columnIndex === 0) {
+          return [1, 1];
+        }
+      }
+    },
+    getUserItemTotal() {
+      this.loadingTotal = true;
+      getBdTotalV2(
+        this.addDateRange(
+          {
+            collectSampleId: !!this.$route.query.id
+              ? this.$route.query.id
+              : this.$store.getters.remark == "管理员"
+              ? null
+              : this.$store.getters.userId,
+          },
+          this.uploadDate,
+          "orderStartDate",
+          "orderEndDate"
+        )
+      ).then((res) => {
+        this.loadingTotal = false;
+        this.itemSummary = res.rows.map((item) => {
+          return {
+            ...item,
+            promoterName: "总计",
+          };
+        });
+      });
+    },
+    sortChange(col, prop, order) {
+      this.prop = col.prop;
+      this.sort = !!col.order ? (col.order == "descending" ? "desc" : "asc") : "desc";
+      this.handleQuery();
+    },
+    toDetail(id) {},
+    toIndexDetail(item) {
+      this.$router.replace({
+        path: "/supplyChain/kuaishou/indexDetails",
+        query: {
+          id: item.promoterId,
+          name: item.promoterNickName,
+          orderStartDate: this.$route.query.orderStartDate,
+          orderEndDate: this.$route.query.orderEndDate,
+        },
+      });
+    },
+    getUserItemDetail() {
+      this.loading = true;
+      getBdDetailListV2(
+        this.addDateRange(
+          {
+            ...this.queryParams,
+            fieId: this.prop,
+            sort: this.sort,
+            collectSampleId: !!this.$route.query.id
+              ? this.$route.query.id
+              : this.$store.getters.remark == "管理员"
+              ? null
+              : this.$store.getters.userId,
+          },
+          this.uploadDate,
+          "orderStartDate",
+          "orderEndDate"
+        )
+      ).then((response) => {
+        this.typeList = this.itemSummary.concat(response.rows);
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getSummaries(param) {
+      console.log(param);
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = "总计";
+          return;
+        } else if (index == 1) {
+          sums[index] = "N/A";
+          return;
+        } else if (index == 9) {
+          sums[index] = "-";
+          return;
+        } else if (index == 2) {
+          sums[index] = "-";
+          return;
+        }
+
+        for (const key in this.itemSummary[0]) {
+          if (key == column.property) {
+            if (key == "validRadio" || key == "deliveryRadio") {
+              sums[index] = this.itemSummary[0][key]
+                ? (this.itemSummary[0][key] * 100).toFixed(2) + "%"
+                : "-";
+            } else if (
+              key == "payAmount" ||
+              key == "regimentalPromotionAmount" ||
+              key == "totalRegimentalSettleAmount"
+            ) {
+              sums[index] = this.itemSummary[0][key]
+                ? this.itemSummary[0][key] / 100
+                : "-";
+            } else {
+              sums[index] = this.itemSummary[0][key];
+            }
+          }
+        }
+
+        // const values = data.map((item) => Number(item[column.property]));
+        // console.log(values)
+        // if (!values.every((value) => isNaN(value))) {
+        //   sums[index] = values.reduce((prev, curr) => {
+        //     const value = Number(curr);
+        //     if (!isNaN(value)) {
+        //       return prev + curr;
+        //     } else {
+        //       return prev;
+        //     }
+        //   }, 0);
+        //   // sums[index] += " 元";
+        // } else {
+        //   sums[index] = "N/A";
+        // }
+      });
+
+      return sums;
+    },
+    /** 查询字典类型列表 */
+    getList() {
+      this.loading = true;
+      getOrderList(
+        this.addDateRange(
+          this.queryParams,
+          this.uploadDate,
+          "orderStartDate",
+          "orderEndDate"
+        )
+      ).then((response) => {
+        this.typeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.confirmLoading = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {};
+      this.dateFile = null;
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getUserItemTotal();
+      this.getUserItemDetail();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      //   let date = new Date();
+      //   let y = date.getFullYear();
+      //   let MM = date.getMonth() + 1;
+      //   MM = MM < 10 ? "0" + MM : MM;
+      //   let dd = date.getDate();
+      //   dd = dd < 10 ? "0" + dd : dd;
+      if (
+        this.$route &&
+        this.$route.query.id &&
+        this.$route.query.orderStartDate &&
+        this.$route.query.orderEndDate
+      ) {
+        this.uploadDate = [
+          this.$route.query.orderStartDate,
+          this.$route.query.orderEndDate,
+        ];
+        this.getUserItemDetail();
+      } else {
+        let date = new Date();
+        let y = date.getFullYear();
+        let MM = date.getMonth() + 1;
+        MM = MM < 10 ? "0" + MM : MM;
+        let dd = date.getDate();
+        dd = dd < 10 ? "0" + dd : dd;
+        this.uploadDate = [`${y}-${MM}-${dd}`, `${y}-${MM}-${dd}`];
+        this.getUserItemDetail();
+      }
+      this.resetForm("queryForm");
+      this.queryParams.pageNum = 1;
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.id);
+    },
+  },
+};
+</script>

+ 457 - 0
src/views/supplyChain/channelListV2.vue

@@ -0,0 +1,457 @@
+<style scoped lang="scss">
+  ::v-deep a {
+    color: #409eff;
+    display: block;
+  }
+</style>
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="100px"
+    >
+      <el-form-item label="渠道" prop="collectSampleId" v-if="$store.getters.roles[0] != 'bd'">
+        <el-select
+          filterable
+          v-model="queryParams.collectSampleId"
+          placeholder="渠道名称"
+          clearable
+          style="width: 240px"
+        >
+          <el-option
+            v-for="item in queryParamsList.personList"
+            :key="item.userId"
+            :label="item.nickMame"
+            :value="item.userId"
+          >
+            <div style="display: flex">
+              <span
+                style="
+                  width: 10px;
+                  height: 10px;
+                  border-radius: 50%;
+                  background-color: green;
+                  position: relative;
+                  top: 12px;
+                  margin-right: 5px;
+                "
+                :style="
+                  item.status == '0' ? 'backgroundColor:green' : 'backgroundColor:red'
+                "
+              >{{ item.value }}</span
+              ><span>{{ item.nickMame }}</span>
+            </div>
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="选择日期">
+        <el-date-picker
+          v-model="uploadDate"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
+        >搜索
+        </el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          plain
+          size="mini"
+          @click="handleExport"
+          style="margin-bottom: 15px"
+        >导出
+        </el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-table
+      v-loading="loading"
+      :data="typeList"
+      @selection-change="handleSelectionChange"
+      ref="multipleTable"
+    >
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <el-table-column label="渠道" align="center" prop="collectSampleName" width="150px">
+        <template slot-scope="scope">
+          <a @click="toIndexDetail(scope.row)">
+            {{ scope.row.collectSampleName }}({{ scope.row.collectSampleId }})
+          </a>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="(总)达人数"
+        align="center"
+        prop="promoterCount"
+        width="100px"
+      />
+      <el-table-column
+        label="可绑达人数"
+        align="center"
+        prop="promotersCount"
+        width="100px"
+      >
+        <template slot-scope="scope">
+          {{ scope.row.promotersCount }}
+          <el-button  v-if="$store.getters.roles[0] == 'admin' ||$store.getters.roles[0] == 'bdManager' || $store.getters.roles[0] == 'supplyChainAdmin' " size="mini" type="text" @click="editCount(scope.row)">编辑</el-button>
+        </template>
+      </el-table-column>
+
+
+      <el-table-column
+        label="(总)领样达人数"
+        align="center"
+        prop="sampleCount"
+        width="200px"
+      />
+      <el-table-column label="(总)领样率" align="center" prop="sampleRate" width="100px">
+        <template slot-scope="scope">
+          {{ scope.row.sampleRate}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="(总)未领样数"
+        align="center"
+        prop="notSampleCount"
+        width="100px"
+      >
+      </el-table-column>
+      <el-table-column label="发样数" align="center" prop="sendTotalCount" width="100px">
+      </el-table-column>
+      <el-table-column
+        label="发样达人数"
+        align="center"
+        prop="sendPromoterCount"
+        width="100px"
+      >
+      </el-table-column>
+      <el-table-column
+        label="发样商品数"
+        align="center"
+        prop="sendItemCount"
+        width="100px"
+      >
+      </el-table-column>
+
+      <el-table-column label="订单数" align="center" prop="orderNum" width="100px">
+      </el-table-column>
+
+      <el-table-column
+        label="有效订单数"
+        align="center"
+        prop="validOrderNum"
+        width="100px"
+      >
+      </el-table-column>
+
+      <el-table-column
+        label="有效订单率"
+        align="center"
+        prop="validOrderRate"
+        width="100px"
+      >
+        <template slot-scope="scope">
+          {{ scope.row.validOrderRate }}
+        </template>
+      </el-table-column>
+      <el-table-column label="实付金额" align="center" prop="orderAmount" width="150px">
+        <template slot-scope="scope">
+          {{ scope.row.orderAmount}}
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        label="预估服务费"
+        align="center"
+        prop="regimentalPromotionAmount"
+        width="150px"
+      >
+        <template slot-scope="scope">
+          {{
+          scope.row.regimentalPromotionAmount
+          }}
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        label="结算服务费"
+        align="center"
+        prop="totalRegimentalSettleAmount"
+        width="150px"
+      >
+        <template slot-scope="scope">
+          {{
+          scope.row.totalRegimentalSettleAmount
+          }}
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+
+    <el-dialog
+      title="编辑数量"
+      :visible.sync="editCountVisible"
+      width="500px"
+      :close-on-click-modal="false"
+    >
+      <el-input placeholder="请输入数量" style="width: 100%" v-model="promotersCount">
+      </el-input>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitPromotersCount" :loading="promotersCountLoading"
+        >确 定
+        </el-button>
+        <el-button
+          @click="
+            promotersCountLoading = false;
+            editCountVisible = false;
+            promotersCount = null;
+            submitUserId = null;
+          "
+        >取 消
+        </el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+  import {
+    getSupplyChainUserList,
+    getBdReportListV2,
+    downFilePost,
+    submitPromotersCount,
+  } from "@/api/supplyChain/supplyChain";
+
+  export default {
+    name: "Investment",
+    dicts: ["sys_normal_disable"],
+    data() {
+      return {
+        submitUserId:null,
+        promotersCountLoading: false,
+        promotersCount: null,
+        editCountVisible: false,
+        downLoadLoading: false,
+        dialogTableVisible: false,
+        logPage: {
+          pageNum: 1,
+          pageSize: 10,
+        },
+        logData: [],
+        logTotal: 0,
+        logLoading: false,
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 字典表格数据
+        typeList: [],
+        // 弹出层标题
+        title: "",
+        // 是否显示弹出层
+        open: false,
+        // 分配销售
+        openAllocation: false,
+        // 选择的销售id
+        saleId: undefined,
+        // 获取用户id
+        userId: undefined,
+        roleId: undefined,
+        // 销售列表
+        saleList: [],
+        // 分配销售确定loading
+        confirmLoadingSale: false,
+        // 日期范围
+        dateRange: [],
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          collectSampleId: undefined,
+          orderStartDate: undefined,
+          orderEndDate: undefined,
+        },
+        uploadDate: [new Date(), new Date()],
+        //查询参数所用下拉数据
+        queryParamsList: {
+          personList: [],
+        },
+      };
+    },
+    created() {
+      this.userId = this.$store.getters.userId;
+      this.roleId = this.$store.getters.roles[0];
+      let date = new Date();
+      let y = date.getFullYear();
+      let MM = date.getMonth() + 1;
+      MM = MM < 10 ? "0" + MM : MM;
+      let dd = date.getDate();
+      dd = dd < 10 ? "0" + dd : dd;
+      this.uploadDate = [`${y}-${MM}-${dd}`, `${y}-${MM}-${dd}`];
+    },
+    mounted() {
+      this.$nextTick(() => {
+        this.getPersonList();
+        this.getList();
+      });
+    },
+    methods: {
+      submitPromotersCount() {
+        if (!!this.promotersCount) {
+          this.promotersCountLoading = true;
+          submitPromotersCount({
+            userId : this.submitUserId,
+            promotersCount:this.promotersCount,
+            mediaId: 2,
+          })
+            .then((res) => {
+              this.promotersCountLoading = false;
+              this.editCountVisible = false;
+              this.submitUserId = null;
+              this.promotersCount = null;
+              this.getList();
+              this.$message.success("添加成功");
+            })
+            .catch(() => {
+              this.promotersCountLoading = false;
+            });
+        } else {
+          this.$message.error("请填写数量");
+        }
+      },
+
+      editCount(item) {
+        this.editCountVisible = true;
+        this.submitUserId = item.collectSampleId;
+      },
+
+      /** 导出按钮操作 */
+      handleExport() {
+        this.downLoadLoading = true;
+        downFilePost(
+          "/isv/supply_chain/exportBdReportListV2",
+          this.addDateRange(
+            this.queryParams,
+            this.uploadDate,
+            "orderStartDate",
+            "orderEndDate"
+          )
+        ).then((res) => {
+          let blob = new Blob([res], {
+            type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+          });
+          let downloadElement = document.createElement("a");
+          let href = window.URL.createObjectURL(blob); //创建下载的链接
+          downloadElement.href = href;
+          downloadElement.download = `渠道管理.xlsx`; //下载后文件名
+          document.body.appendChild(downloadElement);
+          downloadElement.click(); //点击下载
+          document.body.removeChild(downloadElement); //下载完成移除元素
+          window.URL.revokeObjectURL(href); //释放掉blob对象
+          this.downLoadLoading = false;
+        });
+      },
+      toIndexDetail(item) {
+        this.$router.replace({
+          path: "/supplyChain/kuaishou/channelDetailsV2",
+          query: {
+            id: item.collectSampleId,
+            orderStartDate: this.uploadDate[0],
+            orderEndDate: this.uploadDate[1],
+          },
+        });
+      },
+      getPersonList() {
+        getSupplyChainUserList().then((response) => {
+          this.queryParamsList.personList = response.rows;
+        });
+      },
+      /** 查询字典类型列表 */
+      getList() {
+        this.loading = true;
+        if (this.roleId == 'bd') {
+          this.queryParams.collectSampleId = this.userId
+        }
+        getBdReportListV2(
+          this.addDateRange(
+            this.queryParams,
+            this.uploadDate,
+            "orderStartDate",
+            "orderEndDate"
+          )
+        ).then((response) => {
+          this.typeList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.confirmLoading = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {};
+        this.dateFile = null;
+        this.resetForm("form");
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.dateRange = [];
+        let date = new Date();
+        let y = date.getFullYear();
+        let MM = date.getMonth() + 1;
+        MM = MM < 10 ? "0" + MM : MM;
+        let dd = date.getDate();
+        dd = dd < 10 ? "0" + dd : dd;
+        this.uploadDate = [`${y}-${MM}-${dd}`, `${y}-${MM}-${dd}`];
+        this.resetForm("queryForm");
+        this.queryParams.pageNum = 1;
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map((item) => item.id);
+      },
+    },
+  };
+</script>