yumeng 10 月之前
父节点
当前提交
ecdfd7289e

+ 9 - 0
src/api/goodsManagement/goods.js

@@ -326,6 +326,15 @@ export function editRelateByItemId(query) {
   })
 }
 
+
+export function updateIsPresaleByItemId(query) {
+  return request({
+    url: '/item/updateIsPresaleByItemId',
+    method: 'get',
+    params: query
+  })
+}
+
 //查看关联商品列表
 export function getListByRelateId(query) {
   return request({

+ 125 - 1
src/api/jiaoyang/report.js

@@ -166,6 +166,7 @@ export function getHourGmv(query) {
     params: query
   })
 }
+
 export function getTypeData(query) {
   return request({
     url: '/jy/report/getTypeData',
@@ -180,7 +181,9 @@ export function getAuthItemList(query) {
     method: 'get',
     params: query
   })
-}export function getAuthItem(query) {
+}
+
+export function getAuthItem(query) {
   return request({
     url: '/jy/report/getAuthItem',
     method: 'get',
@@ -188,5 +191,126 @@ export function getAuthItemList(query) {
   })
 }
 
+// 盯盘- 汇总数据
+export function getSumInfo(query) {
+  return request({
+    url: '/jy/dingpan/getSumInfo',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getMonthData(query) {
+  return request({
+    url: '/jy/dingpan/getMonthInfo',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getGmvHours(query) {
+  return request({
+    url: '/jy/dingpan/getGmvHours',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getTeamList(query) {
+  return request({
+    url: '/jy/dingpan/getTeamList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getPeopleList(query) {
+  return request({
+    url: '/jy/dingpan/getPeopleList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getPromoterList(query) {
+  return request({
+    url: '/jy/dingpan/getPromoterList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getDingPanItemList(query) {
+  return request({
+    url: '/jy/dingpan/getDingPanItemList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getTuiGuangList(query) {
+  return request({
+    url: '/jy/dingpan/getDingPanTuiGuangUserList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getMentorBusinessList(query) {
+  return request({
+    url: '/jy/dingpan/getDingPanMentorBusinessList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getAddItemList(query) {
+  return request({
+    url: '/jy/dingpan/getAddItemList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getVideoList(query) {
+  return request({
+    url: '/jy/dingpan/getVideoList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getAddItemListByUserId(query) {
+  return request({
+    url: '/jy/dingpan/getAddItemListByUserId',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getAddItemListByExpertId(query) {
+  return request({
+    url: '/jy/dingpan/getAddItemListByExpertId',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getAddItemListByClipUserId(query) {
+  return request({
+    url: '/jy/dingpan/getAddItemListByClipUserId',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getTeamDetail(query) {
+  return request({
+    url: '/jy/dingpan/getTeamDetail',
+    method: 'get',
+    params: query
+  })
+}
+
 
 

+ 4 - 0
src/views/goodsManagement/goodsDetail.vue

@@ -128,6 +128,9 @@
                 }}
               </p>
 
+
+              <p v-if="itemInfo.isPresale == '1'">是否预售:否</p>
+              <p v-if="itemInfo.isPresale == '2'">是否预售:是</p>
               <p v-if="judgeStatus == 2">商品状态:下架</p>
 
               <p>
@@ -325,6 +328,7 @@ export default {
   },
   created() {
     this.itemInfo = JSON.parse(localStorage.getItem("addItemInfo"));
+    console.log(1111111);
     console.log(this.itemInfo);
   },
   mounted() {

+ 125 - 8
src/views/goodsManagement/goodslist.vue

@@ -8,14 +8,13 @@
       v-show="showSearch"
       label-width="100px"
     >
-
       <el-form-item label="媒体" prop="categoryId">
         <el-select
           filterable
           v-model="queryParams.mediaId"
           placeholder="选择媒体"
           clearable
-          style="width: 120px"
+          style="width: 240px"
         >
           <el-option
             v-for="item in queryParamsList.mediaList"
@@ -26,7 +25,6 @@
         </el-select>
       </el-form-item>
 
-
       <el-form-item label="商品名称" prop="itemTitle">
         <el-input
           placeholder="请输入商品名称"
@@ -59,6 +57,21 @@
           />
         </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"
         >搜索
@@ -150,6 +163,30 @@
               {{ scope.row.mediaName }}
             </template>
           </el-table-column>
+
+          <el-table-column label="预售" align="center" prop="isPresale" width="80">
+
+
+            <template slot-scope="scope">
+              <font v-if="scope.row.isPresale == 2">
+                是
+              </font>
+
+              <font v-if="scope.row.isPresale == 1">
+                否
+              </font>
+
+              <el-button v-if="scope.row.isPresale != 1 && scope.row.isPresale != 2" size="mini" type="text"
+                         @click="updateIsPresale(scope.row)"
+              >设置
+              </el-button>
+
+            </template>
+
+
+          </el-table-column>
+
+
           <el-table-column
             label="关联商品"
             align="center"
@@ -453,7 +490,13 @@
             <el-radio-button label="1">抖音</el-radio-button>
           </el-radio-group>
         </el-form-item>
-
+        <el-form-item label="是否预售" prop="isPresale" v-if="this.mediaId == '2'" class="entire-line"
+                      style="width: 100%">
+          <el-radio-group v-model="isPresale">
+            <el-radio-button label=1>否</el-radio-button>
+            <el-radio-button label=2>是</el-radio-button>
+          </el-radio-group>
+        </el-form-item>
 
         <el-form-item label="商品类型" prop="byteDanceItemType" v-if="this.mediaId == '1'" class="entire-line"
                       style="width: 100%">
@@ -708,6 +751,35 @@
         </el-button>
       </div>
     </el-dialog>
+
+
+    <el-dialog
+      title="是否预售"
+      :visible.sync="updateIsPresaleVisible"
+      width="500px"
+      :close-on-click-modal="false"
+    >
+      <el-radio-group v-model="updateIsPresaleValue">
+        <el-radio-button label=1>否</el-radio-button>
+        <el-radio-button label=2>是</el-radio-button>
+      </el-radio-group>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitUpdateIsPresale" :loading="refuseLoading"
+        >确 定
+        </el-button>
+        <el-button
+          @click="
+            refuseLoading = false;
+            updateIsPresaleVisible = false;
+            updateIsPresaleValue = null;
+          "
+        >取 消
+        </el-button>
+      </div>
+    </el-dialog>
+
+
     <!-- 关联商品列表 -->
     <el-dialog title="关联商品列表" :visible.sync="associationListVisible" width="800px">
       <el-table :data="associationList" style="width: 100%">
@@ -834,7 +906,7 @@ import {
   getRuleDetailByRuleId,
   editRuleIdByItemId,
   removeRelateByItemId,
-  getDataOwnership, checkUser,
+  getDataOwnership, checkUser, updateIsPresaleByItemId,
 } from "@/api/goodsManagement/goods";
 import selectTree from "./selectTree.vue";
 import textEditor from "./textEditor.vue";
@@ -849,7 +921,7 @@ export default {
     const equalToPassword = (rule, value, callback) => {
       if (!!value && !this.edit) {
 
-        checkItem({itemId: value, targetOwnershipId: this.formBroadcast.dataOwnership})
+        checkItem({itemId: value, targetOwnershipId: this.formBroadcast.dataOwnership, mediaId: this.mediaId})
           .then((res) => {
             if (res.success) {
               callback();
@@ -886,6 +958,9 @@ export default {
       }
     };
     return {
+      uploadDate: [],
+      updateIsPresaleValue: 1,
+      isPresale: 0,
       mediaId: "2",
       byteDanceItemType: "2",
       // 遮罩层
@@ -1016,6 +1091,13 @@ export default {
             },
           },
         ],
+
+        isPresale: {
+          required: false,
+          message: "是否预售必选",
+          trigger: "blur",
+        },
+
         postArea: {
           required: true,
           message: "发货地必选",
@@ -1114,7 +1196,9 @@ export default {
       refuseLoading: false,
       refuseInfo: null,
       itemId: null,
+      updateIsPresaleItemId: null,
       associationVisible: false,
+      updateIsPresaleVisible: false,
       relateId: null,
       associationListVisible: false,
       associationList: null,
@@ -1185,6 +1269,12 @@ export default {
       this.associationVisible = true;
       this.relateId = item.relateId;
     },
+
+
+    updateIsPresale(item) {
+      this.updateIsPresaleVisible = true;
+      this.updateIsPresaleItemId = item.itemId;
+    },
     submitAssociation() {
       if (!!this.refuseInfo) {
         this.refuseLoading = true;
@@ -1205,6 +1295,27 @@ export default {
         this.$message.error("请填写商品ID");
       }
     },
+
+    submitUpdateIsPresale() {
+      this.refuseLoading = true;
+      updateIsPresaleByItemId({
+        itemId: this.updateIsPresaleItemId,
+        isPresale: this.updateIsPresaleValue,
+      })
+        .then((res) => {
+          this.refuseLoading = false;
+          this.updateIsPresaleItemId = null;
+          this.updateIsPresaleVisible = false;
+          this.updateIsPresaleValue = null;
+          this.$message.success("修改成功");
+          this.updateIsPresaleValue = 1;
+          this.getList();
+        })
+        .catch(() => {
+          this.refuseLoading = false;
+        });
+
+    },
     getRowKeys(row) {
       return row.itemId;
     },
@@ -1468,8 +1579,7 @@ export default {
     /** 查询字典类型列表 */
     getList() {
       this.loading = true;
-
-      getItemList({userId: this.userId, ...this.queryParams}).then((response) => {
+      getItemList(this.addDateRange({userId: this.userId, ...this.queryParams}, this.uploadDate, "startDate", "endDate")).then((response) => {
         this.typeList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -1484,6 +1594,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {};
+      this.uploadDate = [];
       this.dateFile = null;
       this.resetForm("formBroadcast");
     },
@@ -1496,6 +1607,7 @@ export default {
     resetQuery() {
       this.queryParams.mediaId = undefined;
       this.dateRange = [];
+      this.uploadDate = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -1579,8 +1691,12 @@ export default {
               params.mediaId = this.mediaId;
               params.byteDanceItemType = this.byteDanceItemType;
               params.examineStatus = 1;
+              params.isPresale = this.isPresale;
               this.confirmLoading = false;
               this.openAllocation = false;
+              console.log("是否预售")
+              console.log(this.isPresale)
+              console.log(params)
               localStorage.setItem("addItemInfo", JSON.stringify(params));
               this.$router.replace({
                 path: "/goodsManagement/goodsPreview",
@@ -1597,6 +1713,7 @@ export default {
             params.commissionRate = params.commissionRate * 10;
             params.mediaId = this.mediaId;
             params.byteDanceItemType = this.byteDanceItemType;
+            params.isPresale = this.isPresale;
             editItem(params)
               .then((res) => {
                 this.confirmLoading = false;

+ 1 - 1
src/views/index.vue

@@ -382,7 +382,7 @@ import {
   getTimeRatio, //时间段对比
 } from "@/api/index";
 import staging from "./staging.vue";
-import jiaoyang from "./jiaoyang/jyHome.vue";
+import jiaoyang from "./jiaoyang/jyDingPan.vue";
 import operationHome from "./report/operationHome.vue";
 
 var echarts = require("echarts");

+ 1 - 0
src/views/jiaoyang/jyAuthItemList.vue

@@ -152,6 +152,7 @@
 
   export default {
     name: "JyAuthItemList",
+    dicts: ["sys_normal_disable"],
     components: {},
     data() {
       return {

+ 2 - 1
src/views/jiaoyang/jyClipCooperation.vue

@@ -110,7 +110,8 @@
   import {getClipCooperation, downFile} from "@/api/jiaoyang/report";
 
   export default {
-    name: "Rule-Config",
+    name: "JyClipCooperation",
+    dicts: ["sys_normal_disable"],
     components: {},
     data() {
       return {

文件差异内容过多而无法显示
+ 2693 - 0
src/views/jiaoyang/jyDingPan.vue


+ 3 - 2
src/views/jiaoyang/jyGrossMargin.vue

@@ -72,7 +72,7 @@
           {{ scope.row.grossMargin + "%" }}
         </template>
       </el-table-column>
-
+œ
 
     </el-table>
 
@@ -87,7 +87,8 @@ import {
 } from "@/api/jiaoyang/report";
 
 export default {
-  name: "Rule-Config",
+  name: "JyGrossMargin",
+  dicts: ["sys_normal_disable"],
   components: {},
   data() {
     return {

+ 1 - 1
src/views/jiaoyang/jyItemDetailsReport.vue

@@ -167,7 +167,7 @@
 
   var echarts = require("echarts");
   export default {
-    name: "sale",
+    name: "JyItemDetailsReport",
     dicts: ["sys_normal_disable"],
     data() {
       return {

+ 1 - 1
src/views/jiaoyang/jyItemReport.vue

@@ -220,7 +220,7 @@ import {
 } from "@/api/jiaoyang/report";
 import {downFile} from "@/api/bytedance/bytedance";
 export default {
-  name: "Goods",
+  name: "JyItemReport",
   dicts: ["sys_normal_disable"],
   data() {
     return {

+ 2 - 1
src/views/jiaoyang/jyMaterialUpload.vue

@@ -334,7 +334,8 @@ import {
 import uploadFile from "./components/uploadFile.vue";
 // import BMF from "browser-md5-file";
 export default {
-  name: "List",
+  name: "JyMaterialUpload",
+  dicts: ["sys_normal_disable"],
   components: {
     uploadFile,
   },

+ 1 - 1
src/views/jiaoyang/jyPromoterDetailsReport.vue

@@ -160,7 +160,7 @@ import {
 } from "@/api/jiaoyang/report";
 var echarts = require("echarts");
 export default {
-  name: "sale",
+  name: "JyPromoterDetailsReport",
   dicts: ["sys_normal_disable"],
   data() {
     return {

+ 38 - 3
src/views/jiaoyang/jyPromoterList.vue

@@ -14,7 +14,7 @@
           v-model="queryParams.mediaId"
           placeholder="选择媒体"
           clearable
-          style="width: 120px"
+          style="width: 240px"
         >
           <el-option
             v-for="item in queryParamsList.mediaList"
@@ -31,7 +31,7 @@
           v-model="queryParams.type"
           placeholder="选择媒体"
           clearable
-          style="width: 120px"
+          style="width: 240px"
         >
           <el-option
             v-for="item in queryParamsList.typeList"
@@ -133,6 +133,34 @@
         </template>
       </el-table-column>
 
+      <el-table-column label="授权" align="center" prop="type" width="100px">
+        <template slot-scope="scope">
+          <div v-if="scope.row.authStatus == 2">
+            <el-button
+              type="text"
+              @click="toAuth(scope.row.promoterId)"
+            >授权
+            </el-button>
+          </div>
+          <div v-else style="display: flex">
+              <span
+                style="
+                  width: 10px;
+                  height: 10px;
+                  border-radius: 50%;
+                  background-color: green;
+                  position: relative;
+                  top: 7px;
+                  margin-right: 5px;
+                "
+                :style="'backgroundColor:green'"></span>
+            <span>已授权</span>
+          </div>
+
+        </template>
+      </el-table-column>
+
+
       <el-table-column label="类型" align="center" prop="type" width="100px">
         <template slot-scope="scope">
           <div v-if="!!scope.row.type">
@@ -660,7 +688,8 @@ import {addFollowUpRecords} from "@/api/label";
 import {join} from "path";
 
 export default {
-  name: "account-list",
+  name: "JyPromoterList",
+  dicts: ["sys_normal_disable"],
   components: {},
   data() {
     let validatePhone = (rule, value, callback) => {
@@ -799,6 +828,12 @@ export default {
   },
   methods: {
 
+    toAuth(item) {
+      var url = "https://open.kwaixiaodian.com/oauth/authorize?app_id=ks690458118961229051&redirect_uri=http%3A%2F%2Fruixuan.api.tjyourong.com.cn%2Fjy%2Fcallback%2Foauth&scope=merchant_shop,merchant_funds,merchant_item,merchant_order,merchant_promotion,merchant_user,merchant_refund,user_info,merchant_video,merchant_material,merchant_comment,merchant_logistics&response_type=code&state=" + item;
+      window.open(url)
+    },
+
+
     getExpertMentor() { // 获取达人导师
       getExpertMentor({}).then((response) => {
         this.expertMentors = response.data;

+ 1 - 1
src/views/jiaoyang/jyPromoterReport.vue

@@ -266,7 +266,7 @@ import {promoterReport} from "@/api/jiaoyang/report";
 import {downFile} from "@/api/bytedance/bytedance";
 
 export default {
-  name: "Index",
+  name: "JyPromoterReport",
   dicts: ["sys_normal_disable"],
   data() {
     return {

+ 3 - 1
src/views/jiaoyang/jyTopItem.vue

@@ -114,7 +114,9 @@
   import {getTopItem, downFile, getItemClipIds} from "@/api/jiaoyang/report";
 
   export default {
-    name: "Rule-Config",
+    name: "JyTopItem",
+    dicts: ["sys_normal_disable"],
+
     components: {},
     data() {
       return {

+ 278 - 129
src/views/staging.vue

@@ -250,11 +250,10 @@
           @change="changeEchartsType"
         >
           <el-option label="销售额" value="orderAmount"/>
-          <el-option label="销售额(有效)" value="validOrderAmount"/>
+          <el-option label="订单数" value="orderCount"/>
           <el-option label="服务费" value="regimentalPromotionAmount"/>
           <el-option label="达人数" value="promoterCount" v-if="type == 1"/>
-          <el-option label="订单数" value="orderCount"/>
-          <el-option label="有效订单数" value="validOrderCount"/>
+
         </el-select>
       </div>
       <div class="flex-class">
@@ -493,6 +492,7 @@ import {
   getMediaId,
   getGmvHour,
 } from "@/api/index";
+import fa from "element-ui/src/locale/lang/fa";
 
 var echarts = require("echarts");
 export default {
@@ -502,6 +502,7 @@ export default {
       hourEchartsLoading: false,
       mediaId: 2,
       echartsType: "orderAmount",
+      echartsTwoType: "validOrderAmount",
       // 遮罩层
       loading: false,
       // 选中数组
@@ -857,7 +858,15 @@ export default {
 
     changeEchartsType(e) {
       if (!!e) {
-        // this.getDataAnalysis();
+        if (e == 'orderAmount') {
+          this.echartsTwoType = 'validOrderAmount'
+        }
+
+        if (e == 'orderCount') {
+          this.echartsTwoType = 'validOrderCount'
+        }
+
+
         this.initEchart("echart", this.handlerEchartOption(this.analysis.list));
       } else {
         this.$message({
@@ -881,120 +890,203 @@ export default {
     } /** echarts数据展示 订单统计*/,
     handlerEchartOption(data) {
       let option = {
-        noDataLoadingOption: {
-          text: "暂无数据",
-          effect: "bubble",
-          effectOption: {
-            effect: {
-              n: 0,
+          noDataLoadingOption: {
+            text: "暂无数据",
+            effect: "bubble",
+            effectOption: {
+              effect: {
+                n: 0,
+              },
             },
           },
-        },
-        tooltip: {
-          trigger: "axis",
-          // formatter: function(params) {
-          // 	if(typeShow == 'play_duration_3s'){
-          // 		return `${params[0].marker}${params[0].name}<br/>${params[0].seriesName}:${params[0].value}%`
-          // 	}else{
-          // 		return `${params[0].marker}${params[0].name}<br/>${params[0].seriesName}:${params[0].value}`
-          // 	}
-
-          // },
-        },
-        grid: {
-          left: "3%",
-          right: "4%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        legend: {
-          icon: "circle",
-          top: "5%",
-          right: "5%",
-          itemWidth: 6,
-          itemGap: 20,
-          textStyle: {
-            color: "#556677",
+          tooltip: {
+            trigger: "axis"
           },
-        },
-        xAxis: {
-          type: "category",
-          data: data.map((item) => {
-            return item.date;
-          }),
-          boundaryGap: false,
-          // 坐标轴线
-          axisLine: {
-            show: false,
-            lineStyle: {
-              color: "#999",
-            },
+          grid: {
+            left: "3%",
+            right: "4%",
+            bottom: "3%",
+            containLabel: true
           },
-          // 分割线
-          splitLine: {
-            show: true,
-            lineStyle: {
-              type: "dashed",
-              color: "#e5e5e5",
+          legend: {
+            icon: "circle",
+            top: "5%",
+            right: "5%",
+            itemWidth: 6,
+            itemGap: 20,
+            textStyle: {
+              color: "#556677"
             },
           },
-        },
-        yAxis: {
-          type: "value",
-          axisLine: {
-            show: false,
-            lineStyle: {
-              color: "#999",
+          xAxis: {
+            type: "category",
+            data: data.map((item) => {
+              return item.date;
+            }),
+            boundaryGap: false,
+            // 坐标轴线
+            axisLine: {
+              show: false,
+              lineStyle: {
+                color: "#999"
+              },
             },
-          },
-          splitLine: {
-            lineStyle: {
-              type: "dashed",
-              color: "#e5e5e5",
+            // 分割线
+            splitLine: {
+              show: true,
+              lineStyle: {
+                type: "dashed",
+                color: "#e5e5e5"
+              },
             },
           },
-        },
-        series: [
-          {
-            smooth: true,
-            name:
-              this.echartsType == "orderAmount"
-                ? "销售额"
-                : this.echartsType == "regimentalPromotionAmount"
-                  ? "服务费"
-                  : this.echartsType == "promoterCount"
-                    ? "达人数"
-                    : this.echartsType == "orderCount"
-                      ? "订单数"
-                      : "",
-
-            type: "line",
-            stack: "总量",
-            data: data.map((item) => {
-              if (
-                this.echartsType == "orderAmount" ||
-                this.echartsType == "regimentalPromotionAmount"
-                || this.echartsType == "validOrderAmount"
-              ) {
-                return (item[this.echartsType] / 100).toFixed(2);
-              } else {
-                return item[this.echartsType];
-              }
-            }),
-            symbol: "circle",
-            symbolSize: 6,
-            lineStyle: {
-              normal: {
-                width: 2,
+
+          yAxis: {
+            type: "value",
+            axisLine: {
+              show: false,
+              lineStyle: {
+                color: "#999",
               },
             },
-            itemStyle: {
-              borderColor: "#ffffff",
-              borderWidth: 0,
+            splitLine: {
+              lineStyle: {
+                type: "dashed",
+                color: "#e5e5e5",
+              },
             },
           },
-        ],
-      };
+          series: [
+            {
+              smooth: true,
+              name:
+                this.echartsType == "orderAmount"
+                  ? "销售额"
+                  : this.echartsType == "orderCount"
+                    ? "订单数"
+                    : this.echartsType == "regimentalPromotionAmount"
+                      ? "服务费"
+                      : this.echartsType == "promoterCount"
+                        ? "达人数"
+                        : "",
+
+              type: "line",
+              stack: "总量",
+              data: data.map((item) => {
+                  if (
+                    this.echartsType == "orderAmount" ||
+                    this.echartsType == "regimentalPromotionAmount"
+                    || this.echartsType == "validOrderAmount"
+                  ) {
+                    return (item[this.echartsType] / 100).toFixed(2);
+                  } else {
+                    return item[this.echartsType];
+                  }
+                }
+              ),
+              symbol: "circle",
+              symbolSize: 6,
+              lineStyle: {
+                normal: {width: 2},
+              },
+              itemStyle: {
+                borderColor: "#ffffff", borderWidth: 0,
+              },
+            },
+
+            {
+              smooth: true,
+              name:
+                this.echartsType == "orderAmount"
+                  ? "有效额"
+                  : this.echartsType == "orderCount"
+                    ? "有效单数"
+                    : "",
+
+              type: "line",
+              stack: "有效",
+              data: data.map((item) => {
+                  if (this.echartsType == "orderAmount") {
+                    return (item[this.echartsTwoType] / 100).toFixed(2);
+                  }
+                  if (this.echartsType == 'orderCount') {
+                    return item[this.echartsTwoType];
+                  }
+                }
+              ),
+              symbol: "circle",
+              symbolSize: 6,
+              lineStyle:
+                {
+                  normal: {
+                    width: 2
+                  },
+                },
+              itemStyle: {
+                borderColor: "#ffffff",
+                borderWidth: 0
+              },
+            },
+
+            {
+              smooth: true,
+              showSymbol: false,
+              name:
+                this.echartsType == "orderAmount" || this.echartsType == "orderCount" ? "t-1有效率" : "",
+              type: "line",
+              stack: "实时率",
+              data: data.map((item) => {
+                  if (this.$store.getters.roles[0] == "supplyChainAdmin") {
+                    if (this.echartsType == "orderAmount") {
+                      return item['validGmvRate'];
+                    }
+                    if (this.echartsType == "orderCount") {
+                      return item['validOrderRate'];
+                    }
+                  }
+                }
+              ),
+              symbol: "circle",
+              symbolSize:
+                6,
+              lineStyle: {
+                width: 0, // 线宽是0
+                color: 'rgba(0, 0, 0, 0)' // 线的颜色是透明的
+              },
+              itemStyle: {
+                borderColor: "#ffffff",
+                borderWidth: 0,
+              },
+            },
+
+            {
+              smooth: true,
+              showSymbol: false,
+              name:
+                this.echartsType == "orderAmount" || this.echartsType == "orderCount" ? "实时有效率" : "",
+              type: "line",
+              stack: "率",
+              data: data.map((item) => {
+                  if (this.echartsType == "orderAmount" || this.echartsType == "orderCount") {
+                    return (item[this.echartsTwoType] / item[this.echartsType] * 100).toFixed(2);
+                  }
+                }
+              ),
+              symbol: "circle",
+              symbolSize:
+                6,
+              lineStyle: {
+                width: 0, // 线宽是0
+                color: 'rgba(0, 0, 0, 0)' // 线的颜色是透明的
+              },
+              itemStyle: {
+                borderColor: "#ffffff",
+                borderWidth: 0,
+              },
+            },
+          ],
+        }
+      ;
       return option;
     },
     toSamplingList(item) {
@@ -1004,36 +1096,93 @@ export default {
       });
     },
     toOrderDetail(item) {
-      this.$router.replace({
-        path: "/supplyChain/kuaishou/goodsDetails",
-        query: {
-          id: item.itemId,
-          name: item.itemTitle,
-          orderStartDate: this.uploadDate[0],
-          orderEndDate: this.uploadDate[1],
-        },
-      });
+      if(this.mediaId == 2){
+        this.$router.replace({
+          path: "/supplyChain/kuaishou/goodsDetails",
+          query: {
+            id: item.itemId,
+            name: item.itemTitle,
+            orderStartDate: this.uploadDate[0],
+            orderEndDate: this.uploadDate[1],
+          },
+        });
+      }
+
+
+      if(this.mediaId == 1){
+        this.$router.replace({
+          path: "/supplyChain/bytedance/bytedanceGoodsDetails",
+          query: {
+            id: item.itemId,
+            name: item.itemTitle,
+            orderStartDate: this.uploadDate[0],
+            orderEndDate: this.uploadDate[1],
+          },
+        });
+
+      }
+
+
+
     },
     toOrderList() {
-      this.$router.replace({
-        path: "/supplyChain/kuaishou/goods",
-      });
+      if(this.mediaId == 2){
+        this.$router.replace({
+          path: "/supplyChain/kuaishou/goods",
+        });
+      }
+
+
+      if(this.mediaId == 1){
+        this.$router.replace({
+
+          path: "/supplyChain/bytedance/bytedanceGoods",
+        });
+      }
+
     },
     toPersonDetail(item) {
-      this.$router.replace({
-        path: "/supplyChain/kuaishou/indexDetails",
-        query: {
-          id: item.promoterId,
-          name: item.promoterNickName,
-          orderStartDate: this.uploadDate[0],
-          orderEndDate: this.uploadDate[1],
-        },
-      });
+      if(this.mediaId == 2 ){
+        this.$router.replace({
+          path: "/supplyChain/kuaishou/indexDetails",
+          query: {
+            id: item.promoterId,
+            name: item.promoterNickName,
+            orderStartDate: this.uploadDate[0],
+            orderEndDate: this.uploadDate[1],
+          },
+        });
+      }
+
+
+      if(this.mediaId == 1 ){
+        this.$router.replace({
+          path: "/supplyChain/bytedance/bytedancePromoterDetail",
+          query: {
+            id: item.promoterId,
+            name: item.promoterNickName,
+            orderStartDate: this.uploadDate[0],
+            orderEndDate: this.uploadDate[1],
+          },
+        });
+      }
+
+
     },
     toPersonList() {
-      this.$router.replace({
-        path: "/supplyChain/kuaihsou/index",
-      });
+      if(this.mediaId == 2){
+        this.$router.replace({
+          path: "/supplyChain/kuaishou/index",
+        });
+      }
+
+
+      if(this.mediaId == 1){
+        this.$router.replace({
+          path: "/supplyChain/bytedance/bytedancePromoterList",
+        });
+      }
+
     },
     indexMethod(index) {
       return index + 1 + (this.queryParams.pageNum - 1) * 10;

+ 9 - 2
src/views/supplyChain/goods.vue

@@ -182,6 +182,13 @@
                       : "-"
                   }}
                 </p>
+
+                <p>
+                  是否预售:
+                  {{
+                    scope.row.isPresale
+                  }}
+                </p>
               </div>
             </div>
           </template>
@@ -346,7 +353,7 @@ import {
   getItemList,
   downFilePost,
   getTopPromoterByItemId,
-  getSupplyChainUserList,
+  getSupplyChainUserList, getSupplyChainCourtshipList,
 } from "@/api/supplyChain/supplyChain";
 
 export default {
@@ -520,7 +527,7 @@ export default {
       this.handleQuery();
     },
     getPersonList() {
-      getSupplyChainUserList().then((response) => {
+      getSupplyChainCourtshipList().then((response) => {
         this.queryParamsList.personList = response.rows;
       });
     },

+ 12 - 0
src/views/supplyChain/index.vue

@@ -91,6 +91,18 @@
         </template>
       </el-table-column>
 
+      <el-table-column label="达人标签" align="center" prop="itemTitle" width="220">
+        <template slot-scope="scope">
+          <div  v-if="scope.row.promoterName != '总计'">
+            <el-tag  size="mini" v-for="tag in scope.row.tags">{{tag.tag}} {{tag.proportion}}</el-tag>
+          </div>
+          <div v-else>
+            -
+          </div>
+        </template>
+      </el-table-column>
+
+
       <el-table-column
         label="单数"
         align="center"