Browse Source

15.9 准备提测

bding 7 months ago
parent
commit
7d5d52a646

+ 12 - 0
src/api/modules/crmApi.js

@@ -1140,6 +1140,18 @@ const equityContacts = {
   getUserTableCompanyList: (params) => {
     return http.get("/cygx/user/table/companyList", params);
   },
+  // 交流反馈列表接口
+  userFeedbacklist:(params)=>{
+    return http.get("/cygx/user_feedback/list",params)
+  }, 
+  // 添加交流反馈接口
+  userFeedbackAdd:(params)=>{
+    return http.post("/cygx/user_feedback/add",params)
+  }, 
+  // 删除交流反馈接口
+  userFeedbackDel:(params)=>{
+    return http.post("/cygx/user_feedback/del",params)
+  }, 
 };
 
 /*

+ 46 - 4
src/api/modules/statisticApi.js

@@ -396,17 +396,59 @@ const dataMainInterface = {
   */
   incrementalCompanyContractPercentageList:params => {
 	return http.get('/statistic_report/merge_company/company_contract_percentage/list',params);
-},
-incrementalCompanyContractPercentageListV2:params => {
+  },
+  incrementalCompanyContractPercentageListV2:params => {
 	return http.get('/statistic_report/merge_company/company_contract_percentage/listV2',params);
-},
+  },
   /**
   * 权益客户续约率统计所能查询的年份
   * @returns  
   */
   incrementalCompanyContractGetYearList:params => {
 	return http.get('/statistic_report/merge_company/get_year_list',params);
-},
+  },
+  /**
+  * 权益服务统计列表接口
+  * @returns  
+  */
+  getRaiServeList:params => {
+	return http.get('/cygx/rai_serve/list',params);
+  },
+  /**
+  * 标签搜索接口
+  * @returns  
+  */
+  getRaiServeSearchTag:params => {
+	return http.get('/cygx/rai_serve/search_tag',params);
+  },
+  /**
+  * 近四周覆盖率
+  * @returns  
+  */
+  getRaiServeCoverageRate:params => {
+	return http.get('/cygx/rai_serve/coverage_rate',params);
+  },
+  /**
+  * 明细列表接口
+  * @returns  
+  */
+  getRaiServeBillList:params => {
+	return http.get('/cygx/rai_serve/bill_list',params);
+  },
+  /**
+  * 服务类型列表接口
+  * @returns  
+  */
+  getRaiServeTypeList:params => {
+	return http.get('/cygx/rai_serve/type_list',params);
+  },
+  /**
+  * 获取权益服务组销售列表
+  * @returns  
+  */
+  getRaiServeCustomSellerList:params => {
+	return http.get('/custom/seller/rai_serve/list',params);
+  },
 }
 
 export {

+ 49 - 0
src/views/custom_manage/contacts/compontents/contactsColums.js

@@ -337,6 +337,17 @@ export const tableColums = (type) => {
           key: "FansNum",
         },
       ]
+    : type === 14
+    ? [
+        {
+          label: "反馈内容",
+          key: "KeyWord",
+        },
+        {
+          label: "创建时间",
+          key: "CreateTime",
+        },
+      ]
     : [];
 };
 
@@ -811,6 +822,21 @@ export const organizationTableColums = (type) => {
           // widthsty: 300,
         },
       ]
+    : type === 14
+    ? [
+        {
+          label: "反馈人姓名",
+          key: "RealName",
+        },
+        {
+          label: "反馈内容",
+          key: "KeyWord",
+        },
+        {
+          label: "创建时间",
+          key: "CreateTime",
+        },
+      ]
     : [];
 };
 
@@ -1309,5 +1335,28 @@ export const wholeOrganizationTableColums = (type) => {
           key: "FansNum",
         },
       ]
+    : type === 14
+    ? [
+        {
+          label: "客户名称",
+          key: "CompanyName",
+        },
+        {
+          label: "反馈人姓名",
+          key: "RealName",
+        },
+        {
+          label: "手机号",
+          key: "Mobile",
+        },
+        {
+          label: "反馈内容",
+          key: "KeyWord",
+        },
+        {
+          label: "创建时间",
+          key: "CreateTime",
+        },
+      ]
     : [];
 };

+ 74 - 7
src/views/custom_manage/contacts/compontents/feedbackDlg.vue

@@ -1,15 +1,28 @@
 <template>
-  <div class="container">
+  <div class="container-feedbackDlg">
     <el-dialog v-dialogDrag :visible.sync="showFeedbackDlg" :close-on-click-modal="false" :modal-append-to-body="false" @close="cancelHandle" center title="交流反馈">
       <div>
-        <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"> </el-input>
-        <el-table border :data="tableData"></el-table>
+        <el-input type="textarea" :rows="3" placeholder="请输入反馈内容" v-model="feedbackText"> </el-input>
+        <div class="save-box">
+          <el-button type="primary" @click="addHandler">保存</el-button>
+        </div>
+        <el-table border :data="tableData" style="margin: 20px 0">
+          <el-table-column align="center" prop="Content" label="反馈内容"> </el-table-column>
+          <el-table-column align="center" prop="CreateTime" label="创建时间"> </el-table-column>
+          <el-table-column align="center" prop="date" label="操作">
+            <template slot-scope="{ row }">
+              <span class="deletesty" @click="deleteHandler(row)"> 删除</span>
+            </template>
+          </el-table-column>
+        </el-table>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
+import { equityContacts } from "@/api/api.js";
+
 export default {
   name: "",
   components: {},
@@ -18,21 +31,75 @@ export default {
       type: Boolean,
       default: false,
     },
+    remindList: {
+      type: Object,
+      default: {},
+    },
   },
   data() {
     return {
-      tableData: "",
+      tableData: [],
+      feedbackText: "",
     };
   },
   computed: {},
-  watch: {},
+  watch: {
+    showFeedbackDlg: {
+      handler(val) {
+        if (val) {
+          this.getDataList();
+        }
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
   created() {},
   mounted() {},
   methods: {
+    // 获取数据
+    async getDataList() {
+      const res = await equityContacts.userFeedbacklist({
+        UserId: this.remindList.UserId,
+      });
+      if (res.Ret === 200) {
+        this.tableData = res.Data.List || [];
+      }
+    },
+    // 删除
+    async deleteHandler(item) {
+      const res = await equityContacts.userFeedbackDel({
+        UserFeedbackId: item.UserFeedbackId,
+      });
+      if (res.Ret === 200) {
+        this.getDataList();
+      }
+    },
+    // 添加
+    async addHandler() {
+      if (!this.feedbackText) return this.$message.error("请输入内容");
+      const res = await equityContacts.userFeedbackAdd({
+        Content: this.feedbackText,
+        UserId: this.remindList.UserId,
+      });
+      if (res.Ret === 200) {
+        this.feedbackText = "";
+        this.getDataList();
+      }
+    },
     cancelHandle() {
-      this.$emit("update:cancelHandle", false);
+      this.$emit("update:showFeedbackDlg", false);
+      this.$emit("update:remindList", {});
     },
   },
 };
 </script>
-<style scoped lang=""></style>
+<style scoped lang="scss">
+.container-feedbackDlg {
+  .save-box {
+    margin: 20px auto;
+    display: flex;
+    justify-content: center;
+  }
+}
+</style>

+ 1 - 3
src/views/custom_manage/contacts/mutualList.vue

@@ -3,7 +3,7 @@
     <el-card>
       <div>
         <span class="intro">{{ userForm.UserName }}-{{ userForm.Mobile }}-{{ userForm.ComapnyName }}</span>
-        <span class="organization-details" @click="goWholeDetail">构互动详情>></span>
+        <span class="organization-details" @click="goWholeDetail">构互动详情>></span>
       </div>
       <div class="department-tabs">
         <span :class="['item', activeTypeName == item.value && 'active']" v-for="item in typeList" :key="item.value" @click="typeHandleClick(item)">{{ item.label }}</span>
@@ -213,8 +213,6 @@ export default {
     },
     // 机构互助详情
     goWholeDetail() {
-      console.log(this.$route.query);
-      return;
       const { href } = this.$router.resolve({
         path: "/organizationList",
         query: {

+ 17 - 15
src/views/dataReport_manage/components/CoverageRateDlg.vue

@@ -1,25 +1,25 @@
 <template>
   <el-dialog v-dialogDrag :visible.sync="isCoverageRateShow" @close="handleClose" :modal-append-to-body="false" center title="近4周服务覆盖率">
-    <el-table :data="dataList" border max-height="250" style="width: 100%;margin-bottom:20px">
-      <el-table-column align="center" prop="address">
+    <el-table :data="dataList" border max-height="250" style="width: 100%; margin-bottom: 20px">
+      <el-table-column align="center" prop="ThisWeekAmount">
         <template slot="header" slot-scope="{}">
           <p>本周服务覆盖率</p>
           <p>{{ getWeekRange(0) }}</p>
         </template>
       </el-table-column>
-      <el-table-column align="center" prop="address">
+      <el-table-column align="center" prop="LastWeekAmount">
         <template slot="header" slot-scope="{}">
           <p>上周服务覆盖率</p>
           <p>{{ getWeekRange(-1) }}</p>
         </template>
       </el-table-column>
-      <el-table-column align="center" prop="address">
+      <el-table-column align="center" prop="TwoWeekAmount">
         <template slot="header" slot-scope="{}">
           <p>上上周服务覆盖率</p>
           <p>{{ getWeekRange(-2) }}</p>
         </template></el-table-column
       >
-      <el-table-column align="center" prop="address">
+      <el-table-column align="center" prop="ThreeWeekAmount">
         <template slot="header" slot-scope="{}">
           <p>上三周服务覆盖率</p>
           <p>{{ getWeekRange(-3) }}</p>
@@ -33,7 +33,7 @@
 import { dataMainInterface } from "@/api/api.js";
 export default {
   props: {
-    rowInfo: {
+    dlgForm: {
       type: Object,
       default: null,
     },
@@ -48,15 +48,12 @@ export default {
     };
   },
   methods: {
-    handleClose() {
-      this.$emit("update:isCoverageRateShow", false);
-    },
-    async getrenewalReasonList() {
-      const res = await dataMainInterface.mergeCompanyPreviousDetail({
-        CompanyContractId: this.rowInfo.CompanyContractId,
+    async getDataList() {
+      const res = await dataMainInterface.getRaiServeCoverageRate({
+        CompanyId: this.dlgForm.CompanyId,
       });
       if (res.Ret == 200) {
-        this.dataList = [res.Data.Detail];
+        this.dataList = [res.Data] || [];
       }
     },
     // 时间的计算
@@ -76,13 +73,18 @@ export default {
 
       return `(${formatDate(startOfWeek)} ~ ${formatDate(endOfWeek)})`;
     },
+    // 关闭弹框
+    handleClose() {
+      this.$emit("update:isCoverageRateShow", false);
+      this.$emit("update:dlgForm", {});
+    },
   },
   watch: {
     isCoverageRateShow(val) {
       if (val) {
-        this.getrenewalReasonList();
+        this.getDataList();
       } else {
-        this.renewalList = [];
+        this.dataList = [];
       }
     },
   },

+ 33 - 14
src/views/dataReport_manage/components/ServiceDetailsDlg.vue

@@ -1,19 +1,30 @@
 <template>
-  <el-dialog v-dialogDrag :visible.sync="isServiceDetailsShow" @close="handleClose" :modal-append-to-body="false" center title="服务明细--">
-    <el-table ref="updateTable" :data="tableData" style="width: 100%" border height="400px">
-      <el-table-column align="center" prop="CompanyName" label="服务内容"> </el-table-column>
-      <el-table-column align="center" prop="address" label="服务类型"> </el-table-column>
-      <el-table-column align="center" prop="address" label="主题标签"> </el-table-column>
-      <el-table-column align="center" prop="address" label="参与人"> </el-table-column>
-      <el-table-column align="center" prop="address" label="是否kp"> </el-table-column>
-      <el-table-column align="center" prop="address" label="服务量小计 "> </el-table-column>
-      <el-table-column align="center" prop="address" label="时间">
+  <el-dialog v-dialogDrag :visible.sync="isServiceDetailsShow" width="1000px" @close="handleClose" :modal-append-to-body="false" center :title="`服务明细--${dlgForm.CompanyName}`">
+    <el-table ref="updateTable" :data="tableData" style="width: 100%; margin-bottom: 20px" border height="400px">
+      <el-table-column align="center" prop="Content" label="服务内容"> </el-table-column>
+      <el-table-column align="center" prop="addrServeTypeNameess" label="服务类型" width="120"> </el-table-column>
+      <el-table-column align="center" prop="address" label="主题标签">
+        <template slot-scope="{ row }">
+          <el-tag style="margin: 5px" type="info" size="small" v-for="item in row.Tag.split(',')" :key="item">{{ item }}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" prop="RealName" label="参与人" width="100"> </el-table-column>
+      <el-table-column align="center" prop="IsKp" label="是否kp" width="80">
+        <template slot-scope="{ row }">
+          <span>{{ row.IsKp == 1 ? "是" : "否" }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" prop="ServeCount" label="服务量小计" width="100"> </el-table-column>
+      <el-table-column align="center" prop="ViewTime" label="时间">
         <template slot="header" slot-scope="{}">
           <span>时间</span>
           <el-tooltip class="item" effect="dark" content="时间指的是:活动开始时间,一对一路演开始时间,报告阅读时间,交流反馈提交时间" placement="top-start">
             <i class="el-icon-warning"></i>
           </el-tooltip>
         </template>
+        <template slot-scope="{ row }">
+          <span>{{ row.ViewTime }}</span>
+        </template>
       </el-table-column>
     </el-table>
   </el-dialog>
@@ -23,20 +34,24 @@
 import { dataMainInterface, raiInterface } from "@/api/api.js";
 export default {
   props: {
-    rowInfo: {
+    dlgForm: {
       type: Object,
-      default: null,
+      default: {},
     },
     isServiceDetailsShow: {
       type: Boolean,
       require: true,
     },
+    selectForm: {
+      type: Object,
+      default: {},
+    },
   },
   data() {
     return {
       tableData: [], // 初始表格数据
       page_no: 1, // 当前页码
-      pageSize: 6, // 每页显示的行数
+      pageSize: 10, // 每页显示的行数
       noMoreData: false,
     };
   },
@@ -57,9 +72,14 @@ export default {
     },
 
     async loadData() {
-      const res = await raiInterface.adviceList({
+      const res = await dataMainInterface.getRaiServeBillList({
+        CompanyId: this.dlgForm.CompanyId,
         PageSize: this.pageSize,
         CurrentIndex: this.page_no,
+        TagType: this.selectForm.TagType,
+        TagId: this.selectForm.TagId,
+        ServeTypeId: this.selectForm.ServeTypeId,
+        WhatWeek: this.selectForm.WhatWeek,
       });
       if (res.Ret == 200) {
         this.tableData = this.tableData.concat(res.Data.List);
@@ -101,7 +121,6 @@ export default {
         }
       },
       deep: true,
-      immediate: true,
     },
   },
 };

+ 219 - 49
src/views/dataReport_manage/equityServiceStatistics.vue

@@ -14,78 +14,120 @@
         @change="changeFilter"
       >
       </el-cascader>
-      <el-cascader
-        v-model="filterObj.sale"
-        placeholder="请选择咨询销售"
-        style="width: 230px; margin-right: 10px"
-        :options="salesArr"
-        :props="defaultSalesProps"
-        :show-all-levels="false"
-        collapse-tags
+      <el-select clearable multiple v-model="filterObj.serveTypeId" placeholder="请选择咨询销售" style="width: 230px; margin-right: 10px" @change="changeFilter">
+        <el-option v-for="item in customSellerList" :key="item.AdminId" :label="item.RealName" :value="item.AdminId"> </el-option>
+      </el-select>
+      <el-select clearable v-model="filterObj.status" placeholder="客户状态" style="width: 230px; margin-right: 10px" @change="changeFilter">
+        <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+      </el-select>
+      <el-select clearable v-model="filterObj.serviceType" placeholder="服务类型" style="width: 230px; margin-right: 10px" @change="changeFilter">
+        <el-option v-for="item in serviceTypeOptions" :key="item.ServeTypeId" :label="item.ServeTypeName" :value="item.ServeTypeId"> </el-option>
+      </el-select>
+      <el-select
+        v-model="filterObj.lable"
         clearable
         filterable
-        @change="changeFilter"
+        remote
+        reserve-keyword
+        placeholder="请输入服务主题标签"
+        :remote-method="remoteMethod"
+        style="width: 230px; margin-right: 10px"
+        @change="selectLableHandler"
       >
-      </el-cascader>
-      <el-select v-model="filterObj.status" placeholder="客户状态" style="width: 230px; margin-right: 10px">
-        <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+        <el-option v-for="item in lableOptions" :key="item.Md5Key" :label="item.TagName" :value="item.Md5Key"> </el-option>
       </el-select>
-      <el-select v-model="filterObj.serviceType" placeholder="服务类型" style="width: 230px; margin-right: 10px">
-        <el-option v-for="item in serviceTypeOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-      </el-select>
-      <el-input v-model="filterObj.lable" placeholder="请输入服务主题标签" style="width: 230px; margin-right: 10px"></el-input>
       <a :href="exportExcel" download>
         <el-button type="primary">下载</el-button>
       </a>
     </el-card>
     <el-card style="margin-top: 20px">
-      <el-table :data="tableData" border style="width: 100%">
-        <el-table-column align="center" prop="date" label="客户名称" width="180"> </el-table-column>
-        <el-table-column align="center" prop="name" width="180">
+      <el-table :data="tableData" border style="width: 100%" @sort-change="sortChangeHandle">
+        <el-table-column align="center" prop="CompanyName" label="客户名称" width="180">
+          <template slot-scope="{ row }">
+            <el-tooltip effect="dark" placement="top-start" content="过去4周,kp均未覆盖服务" v-if="row.IsRed">
+              <span class="deletesty" @click="goDetail(row)">{{ row.CompanyName }}</span>
+            </el-tooltip>
+            <span v-else class="editsty" @click="goDetail(row)">{{ row.CompanyName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="ServeCoverageRate" width="180">
           <template slot="header" slot-scope="{}">
             <span>近4周平均服务覆盖率</span>
-            <el-tooltip effect="dark" placement="top-start" content="近4周服务覆盖率的平均值">
+            <el-tooltip effect="dark" placement="top-start">
+              <div slot="content">
+                <p>近4周服务覆盖率的平均值</p>
+                <p>服务覆盖率为截至前一天的数据,非当前实时数据</p>
+              </div>
               <i class="el-icon-warning"></i>
-            </el-tooltip> </template
-        ></el-table-column>
-        <el-table-column align="center" prop="address" label="当前状态"> </el-table-column>
-        <el-table-column align="center" prop="address" label="销售"> </el-table-column>
-        <el-table-column align="center" prop="address" label="服务组销售"> </el-table-column>
-        <el-table-column align="center" prop="address" label="合同期限"> </el-table-column>
-        <el-table-column align="center" prop="address" label="合同金额"> </el-table-column>
-        <el-table-column align="center" prop="address" label="签约套餐"> </el-table-column>
-        <el-table-column align="center" prop="address" width="118">
+            </el-tooltip>
+          </template>
+          <template slot-scope="{ row }">
+            <span @click="clickCoverage(row)" class="editsty">{{ row.ServeCoverageRate }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="Status" label="当前状态" width="80"> </el-table-column>
+        <el-table-column align="center" prop="SellerName" label="销售" width="100"> </el-table-column>
+        <el-table-column align="center" prop="ShareSeller" label="服务组销售" width="100"> </el-table-column>
+        <el-table-column align="center" prop="StartDate" label="合同期限" width="180">
+          <template slot-scope="{ row }">
+            <span>{{ row.StartDate }}~{{ row.EndDate }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="Money" sortable label="合同金额" width="110"> </el-table-column>
+        <el-table-column align="center" prop="PermissionName" label="签约套餐"> </el-table-column>
+        <el-table-column align="center" prop="ThisWeekAmount" width="118">
           <template slot="header" slot-scope="{}">
             <p>本周服务量</p>
             <p>{{ getWeekRange(0) }}</p>
           </template>
+          <template slot-scope="{ row }">
+            <span @click="billClickHandler(row, 1)" class="editsty">{{ row.ThisWeekAmount }}</span>
+          </template>
         </el-table-column>
-        <el-table-column align="center" prop="address" width="118">
+        <el-table-column align="center" prop="LastWeekAmount" width="118">
           <template slot="header" slot-scope="{}">
             <p>上周服务量</p>
             <p>{{ getWeekRange(-1) }}</p>
           </template>
+          <template slot-scope="{ row }">
+            <span @click="billClickHandler(row, 2)" class="editsty">{{ row.LastWeekAmount }}</span>
+          </template>
         </el-table-column>
-        <el-table-column align="center" prop="address" width="118">
+        <el-table-column align="center" prop="TwoWeekAmount" width="118">
           <template slot="header" slot-scope="{}">
             <p>上上周服务量</p>
             <p>{{ getWeekRange(-2) }}</p>
-          </template></el-table-column
-        >
-        <el-table-column align="center" prop="address" width="118">
+          </template>
+          <template slot-scope="{ row }">
+            <span @click="billClickHandler(row, 3)" class="editsty">{{ row.TwoWeekAmount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="ThreeWeekAmount" width="118">
           <template slot="header" slot-scope="{}">
             <p>上三周服务量</p>
             <p>{{ getWeekRange(-3) }}</p>
-          </template></el-table-column
-        >
+          </template>
+          <template slot-scope="{ row }">
+            <span @click="billClickHandler(row, 4)" class="editsty">{{ row.ThreeWeekAmount }}</span>
+          </template>
+        </el-table-column>
       </el-table>
       <!-- 页数选择器 -->
-      <m-page style="margin:20px 0" :page_no="page_no" :pageSize="15" :total="total" @handleCurrentChange="pageChange" />
+      <m-page style="margin: 20px 0" :page_no="page_no" :pageSize="15" :total="total" @handleCurrentChange="pageChange" />
     </el-card>
     <!-- 覆盖率弹框 -->
-    <coverage-rate-dlg :isCoverageRateShow.sync="isCoverageRateShow" />
+    <coverage-rate-dlg :isCoverageRateShow.sync="isCoverageRateShow" :dlgForm.sync="dlgForm" />
     <!-- 服务明细- -->
-    <service-details-dlg :isServiceDetailsShow.sync="isServiceDetailsShow" />
+    <service-details-dlg
+      :isServiceDetailsShow.sync="isServiceDetailsShow"
+      :dlgForm.sync="dlgForm"
+      :selectForm="{
+        TagType: this.tagType,
+        TagId: this.tagId,
+        ServeTypeId: this.filterObj.serviceType,
+        WhatWeek: this.whatWeek,
+      }"
+    />
   </div>
 </template>
 
@@ -103,8 +145,9 @@ export default {
     return {
       page_no: 1,
       total: 0,
+      pageSize: 10,
       salesArr: [], //销售列表
-      tableData:[],
+      tableData: [],
       defaultSalesProps: {
         multiple: true,
         label: "RealName",
@@ -116,27 +159,59 @@ export default {
         status: "",
         serviceType: "",
         lable: "",
+        ServeTypeId: "",
       },
       statusOptions: [
-        { label: "正式客户", value: "正式客户" },
-        { label: "未续约客户", value: "未续约客户" },
-      ],
-      serviceTypeOptions: [
-        { label: "线上活动", value: "线上活动" },
-        { label: "线下活动", value: "线下活动" },
+        { label: "正式客户", value: "正式" },
+        { label: "未续约客户", value: "未续约" },
       ],
+      serviceTypeOptions: [],
       isCoverageRateShow: false, //覆盖率弹框
-      isServiceDetailsShow: true, //服务明细弹框
+      isServiceDetailsShow: false, //服务明细弹框
+      dlgForm: {},
+      sortType: "",
+      lableOptions: [],
+      tagType: "",
+      tagId: "",
+      whatWeek: "",
+      customSellerList: [],
     };
   },
   computed: {
     exportExcel() {
-      return "";
+      let salesArr = [];
+      if (this.filterObj.sale.length) {
+        salesArr = this.filterObj.sale.map((item) => {
+          return item[item.length - 1];
+        });
+      }
+      let baseUrl = process.env.API_ROOT + "/cygx/rai_serve/list";
+      let token = localStorage.getItem("auth") || "";
+      let paramStr = "";
+      let parmsa = {
+        SellerId: salesArr.join(","),
+        ShareSellerId: this.filterObj.serveTypeId ? this.filterObj.serveTypeId.join(",") : "", //共享小时id
+        ServeTypeId: this.filterObj.serviceType,
+        TagType: this.tagType,
+        TagId: this.tagId,
+        Status: this.filterObj.status,
+        SortType: this.sortType,
+        IsExport: true,
+      };
+      for (let key in parmsa) {
+        paramStr = `${paramStr}&${key}=${parmsa[key]}`;
+      }
+      return `${baseUrl}?${token}${paramStr}`;
     },
   },
   watch: {},
   created() {},
-  mounted() {},
+  mounted() {
+    this.getSale();
+    this.getRaiServeTypeList();
+    this.getDataList();
+    this.getRaiServeCustomSellerList();
+  },
   methods: {
     /* 获取销售 */
     getSale() {
@@ -149,6 +224,7 @@ export default {
     /* 筛选改变时 */
     changeFilter() {
       this.page_no = 1;
+      this.getDataList();
     },
     // 时间的计算
     getWeekRange(offset) {
@@ -168,6 +244,100 @@ export default {
       return `(${formatDate(startOfWeek)} ~ ${formatDate(endOfWeek)})`;
     },
     pageChange() {},
+    // 获取表格数据
+    async getDataList() {
+      let salesArr = [];
+      if (this.filterObj.sale.length) {
+        salesArr = this.filterObj.sale.map((item) => {
+          return item[item.length - 1];
+        });
+      }
+      const res = await dataMainInterface.getRaiServeList({
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+        SellerId: salesArr.join(","),
+        ShareSellerId: this.filterObj.serveTypeId ? this.filterObj.serveTypeId.join(",") : "", //共享小时id
+        ServeTypeId: this.filterObj.serviceType,
+        TagType: this.tagType,
+        TagId: this.tagId,
+        Status: this.filterObj.status,
+        SortType: this.sortType,
+      });
+      if (res.Ret === 200) {
+        this.tableData = res.Data.List || [];
+        this.total = res.Data.Paging.Totals;
+      }
+    },
+
+    sortChangeHandle({ column, prop, order }) {
+      this.sortType = order === "ascending" ? "asc" : order === "descending" ? "desc" : "";
+      this.page = 1;
+      this.getDataList();
+    },
+    /* 详情页 */
+    goDetail(item) {
+      const { href } = this.$router.resolve({
+        path: "/customDetail",
+        query: {
+          id: item.CompanyId,
+        },
+      });
+      window.open(href, "_blank");
+    },
+    // 搜索标签
+    async remoteMethod(query) {
+      if (query !== "") {
+        const res = await dataMainInterface.getRaiServeSearchTag({
+          KeyWord: query,
+        });
+        if (res.Ret === 200) {
+          this.lableOptions = res.Data.List || [];
+        }
+      } else {
+        this.lableOptions;
+      }
+    },
+    // 远程搜索标签
+    selectLableHandler() {
+      if (this.filterObj.lable) {
+        this.lableOptions.forEach((item) => {
+          if (item.Md5Key === this.filterObj.lable) {
+            this.tagType = item.TagType;
+            this.tagId = item.TagId;
+          }
+        });
+      } else {
+        this.tagType = "";
+        this.tagId = "";
+      }
+      this.changeFilter();
+    },
+    // 近四周覆盖率
+    clickCoverage(item) {
+      this.isCoverageRateShow = true;
+      this.dlgForm = item;
+    },
+    // 点击了明细
+    billClickHandler(item, type) {
+      this.whatWeek = type;
+      this.isServiceDetailsShow = true;
+      this.dlgForm = item;
+    },
+    // 获取服务类型列表
+    async getRaiServeTypeList() {
+      const res = await dataMainInterface.getRaiServeTypeList();
+      if (res.Ret === 200) {
+        this.serviceTypeOptions = res.Data.List || [];
+      }
+    },
+    //
+    async getRaiServeCustomSellerList() {
+      const res = await dataMainInterface.getRaiServeCustomSellerList();
+      if (res.Ret === 200) {
+        this.customSellerList = res.Data || [];
+        console.log(this.customSellerList, res);
+      }
+    },
   },
 };
 </script>