فهرست منبع

'合并1.1.5的快手视频报表'

魏志佳 4 سال پیش
والد
کامیت
50b1e1624b

+ 1 - 0
src/views/modules/Statistics/accountReport.vue

@@ -1249,6 +1249,7 @@ export default {
     })
   },
   beforeDestroy() {
+    
     let arr = JSON.stringify(this.columns)
     postAction('/toutiao/videoReportDaily/saveOrUpdateColumnJson', {
       json: arr,

+ 79 - 15
src/views/modules/Statistics/videoStatics/KSvideoStatics.vue

@@ -12,15 +12,30 @@
         </span> 
         <span style="margin-left:15px">剪辑:</span> 
         <span  >
-            <a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  />
+            <!-- <a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  /> -->
+            <a-select v-model="clip" style="width: 140px" allowClear  show-search :filter-option="filterOption">
+              <a-select-option v-for="item in designList" :key="item.userId" :value='item.userId'>
+                {{item.compantName +'_'+item.userName  }}
+              </a-select-option>
+            </a-select>
         </span>         
         <span style="margin-left:15px">拍摄:</span> 
         <span  >
-            <a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" />
+            <!-- <a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" /> -->
+            <a-select v-model="shot" style="width: 140px" allowClear  show-search :filter-option="filterOption">
+              <a-select-option v-for="item in designList" :key="item.userId" :value='item.userId'>
+                {{item.compantName +'_'+item.userName  }}
+              </a-select-option>
+            </a-select>
         </span>         
         <span style="margin-left:15px">编导:</span> 
         <span  >
-            <a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  />
+            <!-- <a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  /> -->
+            <a-select v-model="plan" style="width: 140px" allowClear  show-search :filter-option="filterOption">
+              <a-select-option v-for="item in designList" :key="item.userId" :value='item.userId'>
+                 {{item.compantName +'_'+item.userName  }}
+              </a-select-option>
+            </a-select>
         </span>         
       </div>
       <a-button type="primary" @click="searchRes">查询</a-button>
@@ -115,7 +130,7 @@
                  @customHeaderCell="customHeaderCell(columns)"
               >
              
-                <div slot="converUrl" slot-scope="test,records">
+                <div slot="coverUrl" slot-scope="test,records">
                   <!-- {{test}} -->
                     <img
                     :src="test"
@@ -270,12 +285,12 @@ import customColumn from '../components/customColumn.vue'
 const columnsFixd = [
   {
     title: '视频',
-    dataIndex: 'converUrl',
+    dataIndex: 'coverUrl',
     align: 'center',
     width: 100,
     fixed: 'left',
-    key: 'converUrl',
-    scopedSlots: { customRender: 'converUrl' }
+    key: 'coverUrl',
+    scopedSlots: { customRender: 'coverUrl' }
   },
   {
     title: '视频名称',
@@ -298,6 +313,13 @@ const columnsFixd = [
     width: 150,
     fixed: 'left'
   },
+  {
+    title: '渠道',
+    dataIndex: 'channel',
+    align: 'center',
+    width: 150,
+    fixed: 'left'
+  },
     {
     title:'相关人员',
     dataIndex:'relativePeople',
@@ -332,7 +354,7 @@ const initVariableColimns=[
    {
         title: '消耗(元)',
         dataIndex: 'cost',
-        width:150,
+        
         tip: '广告在投放期间的花费总额',
         align: 'center',
         scopedSlots: { customRender: 'cost' },
@@ -423,6 +445,22 @@ const initVariableColimns=[
         scopedSlots: { customRender: 'cpb' },
         sorter:() => {}
     },
+    {
+        title: '3s播放数',
+        dataIndex: 'play3sCount',
+        tip: '总花费/行为数',
+        align: 'center',    
+        scopedSlots: { customRender: 'play3sCount' },
+        sorter:() => {}
+    },
+    {
+        title: '3s播放率',
+        dataIndex: 'play3sRate',
+        tip: '总花费/行为数',
+        align: 'center',    
+        scopedSlots: { customRender: 'play3sRate' },
+        sorter:() => {}
+    },
 ]
 
 let detailColumn=[
@@ -456,6 +494,7 @@ let detailColumn=[
 export default {
   data() {
     return {
+      designList:[],
        detailLoading:false,
       clip:undefined,
       shot:undefined,
@@ -541,6 +580,11 @@ export default {
       
   },
   methods: {
+    filterOption(input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      );
+    },
     //点击查看明细按钮的事件
     opendetail(text, record) {
       console.log(text, record)
@@ -572,6 +616,7 @@ export default {
     },
       //自定义之后修改父元素表头
     changeColumn(val){
+      console.log(val)
         this.columns=[...val];
         if(this.columns.length> this.columnsFixd.length&&this.columns.length<9){
           this.scrollX=0;
@@ -585,7 +630,7 @@ export default {
           // this.scrollX=2000+200*(this.columns.length-this.columnsFixd.length)
         }else if(this.columns.length>=9){
           this.columns.forEach((element,index) => {
-            if(index<this.columnsFixd.length){
+            if(index<this.columnsFixd.length-1){
               element.width=120
               element.fixed='left'
             }             
@@ -682,9 +727,9 @@ export default {
         accountIds:this.appId,
         target:this.target,
         order:this.order,
-        clip:this.clip?this.clip:'',
-        shot:this.shot?this.shot:'',
-        plan:this.plan?this.plan:'',
+        clipId:this.clip?this.clip:'',
+        shotId:this.shot?this.shot:'',
+        planId:this.plan?this.plan:'',
       }).then(res => {
         let resArr = []
         this.data=[];
@@ -719,7 +764,7 @@ export default {
         })      
         columns=column.splice(7)
       }
-      downFilePost('/ctop/kuaishou/videoReport/excel', {
+      downFilePost('/ctop/kuaishou/videoReport/excelV2', {
         columns,
         target:this.target,
         order:this.order,
@@ -834,6 +879,15 @@ export default {
     },
     
 
+    // 获取设计人员
+    getDesignList(){
+      postAction('/ctop/kuaishou/videoReport/getDesignList').then(res=>{
+        console.log(res);
+        if(res.success){
+            this.designList=res.result
+        }
+      })
+    }
     
    },
   
@@ -878,7 +932,17 @@ export default {
   },
   deactivated() {
     let arr = JSON.stringify(this.columns)
-    // console.log(arr)
+    console.log(arr)
+    postAction('/toutiao/videoReportDaily/saveOrUpdateColumnJson', {
+      json: arr,
+      columnType: 4
+    }).then(res => {
+      // console.log(res)
+    })
+  },
+  beforeDestroy() {
+    let arr = JSON.stringify(this.columns)
+    console.log(arr)
     postAction('/toutiao/videoReportDaily/saveOrUpdateColumnJson', {
       json: arr,
       columnType: 4
@@ -986,7 +1050,7 @@ filters: {
   },
 
   mounted() {
-    
+      this.getDesignList()
     //请求自定义列的数据
     postAction('/toutiao/videoReportDaily/videoInfoListTotalExportExcelPermission').then(res => {
       console.log(res)

+ 1 - 1
src/views/modules/Statistics/videoStatics/TTvideoStatics.vue

@@ -487,7 +487,7 @@ export default {
           // this.scrollX=2000+200*(this.columns.length-this.columnsFixd.length)
         }else if(this.columns.length>=9){
           this.columns.forEach((element,index) => {
-            if(index<this.columnsFixd.length){
+            if(index<this.columnsFixd.length-1){
               element.width=120
               element.fixed='left'
             }             

+ 9 - 6
src/views/modules/autoLaunch/configLaunchInfo.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="newPlan">
+  <div class="configLaunchInfo">
     <a-spin :spinning="spinning">
     <a-form :form="form">
          <!-- 投放范围 -->
@@ -875,7 +875,7 @@
                         <a-form-item >
                             <a-cascader
                                 :options="createOptions"
-                                v-decorator="['creativeCategory',{ rules: [{ required: whiteList.creative_category_switch==1, message: '创意分类必填' }],initialValue:[], }]"
+                                v-decorator="['creativeCategory',{ initialValue:[],rules: [{ required: whiteList.creative_category_switch==1, message: '创意分类必填' }] }]"
                                 :fieldNames="fieldNames"
                                 placeholder="请选择创意分类"
                                 
@@ -895,7 +895,7 @@
                             mode="tags"
                             style="width: 100%"
                             placeholder="按回车生成标签"
-                            v-decorator="['creativeTag',{rules: [ {required: whiteList.creative_category_switch==1, validator: creativeTagValid }],initialValue:[],}]"
+                            v-decorator="['creativeTag',{initialValue:[],rules: [ {required: whiteList.creative_category_switch==1, validator: creativeTagValid }]}]"
                             dropdownClassName="display-none-selset"
                             :token-separators="[',', ' ', ',']"
                             >
@@ -2431,7 +2431,7 @@ export default {
 }
 </script>
 <style lang="scss">
-.newPlan{
+.configLaunchInfo{
 .display-none-selset {
   display: none !important;
 }
@@ -2455,7 +2455,7 @@ export default {
 .ant-tooltip {
   max-width: 450px;
 }
-.newPlan {
+.configLaunchInfo {
   .ant-radio-button-wrapper {
     min-width: 80px;
     text-align: center;
@@ -2496,7 +2496,10 @@ export default {
 }
 </style>
 <style lang="scss" scoped>
-.newPlan {
+.configLaunchInfo {
+    .region{
+        width: 100%;
+    }
   font-family: PingFangSC-Regular, tahoma, arial, 'Hiragino Sans GB', 'Microsoft yahei', sans-serif;
   color: #333;
   ul,

+ 86 - 7
src/views/modules/stockWatch/accountPage.vue

@@ -55,7 +55,7 @@
                                 /昨日:{{407.16 | decimalsHandle}}
                             </div>
                             <span class="IndexName" :class="{'IndexNameActive':isActive==1}" @click="getActiveIndexName(1)">
-                                激活
+                                激活成本
                             </span>
                         </div>
                         <div class="item">
@@ -70,7 +70,7 @@
                                 /昨日:{{407.16 | decimalsHandle}}
                             </div>
                             <span class="IndexName" :class="{'IndexNameActive':isActive==2}" @click="getActiveIndexName(2)">
-                                激活成本
+                                激活
                             </span>
                         </div>
                         <div class="item">
@@ -157,7 +157,7 @@
                 </div>
                 <div class="table">
                     <a-table
-                    :columns="columns"
+                    :columns="newColumns"
                     :data-source="data"
                     
                     :pagination="ipagination"
@@ -399,13 +399,14 @@
                 
             </div>
         </a-modal>
+         <customColumn :visible='visible'  :listNum='listNum' :fiexColumn='columnsFixd' :mediaType='2'  @closeCustomColumn='closeCustomColumn' @changeColumn='changeColumn' />
     </div>
 </template>
 
 <script>
 import moment from 'moment'
 import { getAction, postAction, downFile, downFilePost } from '@/api/manage'
-
+import customColumn from './modules/customColumn.vue'
 import qs from 'qs'
 // 引入基本模板
 var echarts = require('echarts')
@@ -422,7 +423,7 @@ require('echarts/lib/component/graphic')
 require('echarts/lib/component/toolbox')
 require('echarts/lib/component/legend')
 
-const columns = [
+const newColumns = [
   
   
    {
@@ -602,11 +603,49 @@ const indexValue = [
     },
 ]
     
+const columnsFixd = [
+    {
+        title: '消耗',
+        dataIndex: 'cost',     
+        key:'date',
+    },
+  
+]
 
+const columns=[
+    {
+        title: '激活成本',
+        dataIndex: 'cost',     
+        key:'date',
+    },
+    {
+        title: '激活数',
+        dataIndex: 'cost',     
+        key:'date',
+    },
+    {
+        title: '行为数',
+        dataIndex: 'cost',     
+        key:'date',
+    },
+    {
+        title: '表单提交数',
+        dataIndex: 'cost',     
+        key:'date',
+    },
+]
     export default {
         name:'accountPage',
+         components:{
+            // DatePicker,
+            customColumn,
+        },
         data() {
             return {
+                columnsFixd,
+                columns:[...columnsFixd,...columns],
+                visible:false,
+                listNum:[],
                 newLink:'',
                 linkVisible:false,
                 targetVisible:false,
@@ -616,7 +655,7 @@ const indexValue = [
                 currentAccount:{},
                 dateValue:[moment(),moment()],
                 data:[],
-                columns:[...columns],           
+                newColumns:[...newColumns],           
                 loading:false,
                 ipagination: {
                     current: 1,
@@ -673,7 +712,46 @@ const indexValue = [
                 planBodyEchartSpinning:false,
             }
         },
+        
         methods: {
+            //自定义之后修改父元素表头
+            changeColumn(val){
+                this.columns=[...val];
+                this.columns=[...val];
+                if(this.columns.length> this.columnsFixd.length&&this.columns.length<8){
+                this.columns.forEach((element,index) => {
+                    if(index<this.columns.length-1){
+                    element.width='auto'
+                    element.fixed=false
+                    }             
+                });
+
+                // this.scrollX=2000+200*(this.columns.length-this.columnsFixd.length)
+                }else if(this.columns.length>=8){
+                this.columns.forEach((element,index) => {
+                    if(index<this.columnsFixd.length){
+                    element.width=200
+                    element.fixed='left'
+                    }             
+                });
+
+                this.scrollX=1000+200*(this.columns.length-this.columnsFixd.length)
+                } else{
+                this.scrollX=0;
+                this.columns.forEach(element => {
+                    element.width='auto'
+                    element.fixed=false
+                });
+                }
+            },
+            closeCustomColumn(){
+                this.visible=false;
+            },
+             //弹出框打开,自定义列
+            customColumns() {
+                this.visible = true
+                this.listNum = [...this.columns]
+            },
             // 监测链接修改OK事件
             linkhandleOk(e){
                 this.linkVisible=true
@@ -687,7 +765,8 @@ const indexValue = [
                 this.isActive=val
             },
             showIndexChangeBox(){
-
+                this.visible=true;
+                this.listNum = [...this.columns]
             },
             disabledDate(current) {
                 return current && current > moment() && current < moment().subtract(1,'months')

+ 300 - 0
src/views/modules/stockWatch/modules/customColumn.vue

@@ -0,0 +1,300 @@
+<template>
+  <div class="customColumnKS">
+    <a-modal v-model="visibleOk" title="自定义列" on-ok="handleOk" @cancel="handleCancel" width="65%">
+      <template slot="footer">
+        <a-button key="back" @click="handleCancel">取消</a-button>
+        <a-button key="submit" type="primary" :loading="loading" @click="handleOk">应用</a-button>
+      </template>
+      <!-- <a-input-search placeholder="输入要添加的列的名称" style="width: 40%" enter-button @search="onSearch" /> -->
+      <div class="zhuti">
+        <div class="addlist">
+          <p>可添加的列</p>
+          <div class="selectionList">
+            <!--  v-for="(item,index) in addColumns" :key="index" -->
+            <!-- <div v-if="mediaType==1"> -->
+              <selectComponent
+              :showCol="mylistNum"
+              @getshowlist="getshowlist"
+              :fixedCol="fiexColumn"
+              :mediaType='mediaType'
+              
+              />
+            <!-- </div> -->
+            <!-- <div v-if="mediaType==2">
+              <selectComponentKS
+              :showCol="mylistNum"
+              @getshowlist="getshowlist"
+              :fixedCol="fiexColumn"
+              :mediaType='mediaType'
+              
+            />
+            </div> -->
+            
+          </div>
+        </div>
+        <div class="listNum">
+          <p>已选{{mylistNum.length}}列</p>
+          <a-button id="btn" type="link" @click="clearAllList">清空全部</a-button>
+          <ul class="selectlist">
+                <!-- draggable="true"
+                  @dragstart="handleDragStart($event, item.dataIndex)"
+                  @dragover.prevent="handleDragOver($event, item.dataIndex)"
+                  @dragenter="handleDragEnter($event, item.dataIndex)"
+                  @dragend="handleDragEnd($event, item.dataIndex)" -->
+            <li v-for="(item,index) in mylistNum" :key="index">
+              <span v-if=" index < fiexColumn.length">
+                <a-icon type="lock" />
+                <span class="listText">{{item.title}}</span>
+              </span>
+              <span v-else-if=" index >=fiexColumn.length"  >
+                <a-icon type="menu" style="color:#ccc" />
+                <span class="listText">{{item.title}}</span>
+                <a-icon
+                  type="close"
+                  @click="deleteCol(item,index)"
+                  id="closeStyle"
+                  style="fontSize:12px;"
+                />
+              </span>
+            </li>
+          </ul>
+        </div>
+      </div>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import selectComponent from './selectComponent'
+// import selectComponentKS from './selectComponentKS'
+export default {
+  components: {
+    selectComponent,
+    // selectComponentKS,
+  },
+  props: ['visible', 'listNum', 'fiexColumn','mediaType'],
+
+  data() {
+    return {
+      dragging: null,
+      dataKey: 0,
+      visibleOk: false,
+      mylistNum: [],
+      loading: false
+    }
+  },
+  watch: {
+    visible(n, o) {
+      // console.log(n,o)
+      this.visibleOk = this.visible
+    },
+    listNum: {
+      handler(newValue, oldValue) {
+        console.log(newValue, oldValue)
+        this.mylistNum = newValue
+      },
+      immediate: true
+      // deep: true
+    }
+  },
+  methods: {
+     //li展示里的关闭按钮 删除当前被选中的这一个列
+    deleteCol(item, index) {
+      this.mylistNum = this.mylistNum.filter((item1, num) => {
+        return num != index
+      })
+    },
+    handleDragStart(e, item) {
+      this.dragging = item
+    },
+    handleDragEnd(e, item) {
+      this.dragging = null
+    },
+    //首先把div变成可以放置的元素,即重写dragenter/dragover
+    handleDragOver(e) {
+      e.dataTransfer.dropEffect = 'move' // e.dataTransfer.dropEffect="move";//在dragenter中针对放置目标来设置!
+    },
+    handleDragEnter(e, item) {
+      e.dataTransfer.effectAllowed = 'move' //为需要移动的元素设置dragstart事件
+      if (item === this.dragging) {
+        return
+      }
+      const newItems = [...this.mylistNum]
+      console.log(newItems)
+      const src = newItems.findIndex(v => v.dataIndex === this.dragging)
+      const dst = newItems.findIndex(v => v.dataIndex === item)
+
+      newItems.splice(dst, 0, ...newItems.splice(src, 1))
+
+      this.mylistNum = newItems
+    },
+    //弹出框确定
+    handleOk(e) {
+      this.loading = false
+      this.visibleOk = false
+      this.$emit('closeCustomColumn', false)
+      this.$emit('changeColumn', this.mylistNum)
+    },
+    //取消按钮
+    handleCancel() {
+      this.visibleOk = false
+      this.$emit('closeCustomColumn', false)
+    },
+    //清空全部
+    clearAllList() {
+      this.mylistNum = [...this.fiexColumn]
+    },
+    //从自定义列拿选择的项
+    getshowlist(val) {
+      var arr = []
+
+      // console.log(val)
+      if (val.length) {
+        if (val.flag) {
+          let newArr = val.arr
+          newVal.map((item, index) => {
+            // if(JSON.stringify(this.listNum).indexOf(JSON.stringify(item))==-1){
+            //  this.listNum.push(item); // 进行动态的操作
+            // }
+            var result = this.listNum.some(items => {
+              if (items.dataIndex == item.dataIndex) {
+                return true
+              }
+            })
+
+            // console.log(result)
+            if (result) {
+              newArr.splice(index, 1)
+            }
+          })
+
+          this.mylistNum = [...this.mylistNum, ...newArr]
+        } else {
+          //取消全选  清楚listNum中的val里的值
+          val.arr.map((item, index) => {
+            var result = this.mylistNum.some(items => {
+              if (items.dataIndex == item.dataIndex) {
+                return true
+              }
+            })
+            // console.log(result)
+            if (result) {
+              this.mylistNum.splice(index, 1)
+            }
+          })
+        }
+      } else {
+        arr = this.mylistNum.filter((item, index) => {
+          return item.dataIndex == val.dataIndex
+        })
+      }
+      if (arr.length) {
+        var index
+        this.mylistNum.map((item, ind) => {
+          if (item.dataIndex == val.dataIndex) {
+            index = ind
+          }
+        })
+        console.log(index)
+        this.mylistNum.splice(index, 1)
+      } else {
+        this.mylistNum.push(val)
+      }
+    }
+  },
+  mounted() {}
+}
+</script>
+
+<style lang="scss" scoped>
+
+
+.addlist {
+  float: left;
+  width: 70%;
+  border: 1px solid #eee;
+  .selectionList {
+    padding: 10px 15px;
+    height: 450px;
+    overflow: auto;
+    .leibie {
+      .leiName {
+        font-size: 26px;
+        text-align: left;
+      }
+    }
+    .jutixiang {
+      display: inline-block;
+      width: 32%;
+      box-sizing: border-box;
+      padding: 10px 3px;
+    }
+  }
+}
+.listNum {
+  float: right;
+  width: 28%;
+  border: 1px solid #eee;
+  position: relative;
+}
+.zhuti {
+  margin-top: 15px;
+  overflow: hidden;
+
+  p {
+    height: 40px;
+    line-height: 20px;
+    padding: 10px 15px;
+
+    background: rgb(249, 250, 253);
+    border-bottom: 1px solid #eee;
+  }
+  #btn {
+    position: absolute;
+    right: 0;
+    top: 5px;
+  }
+  .selectlist {
+    width: 100%;
+    list-style: none;
+    margin: 0;
+    height: 450px;
+    padding: 0 15px 10px;
+    overflow: auto;
+
+    li {
+      width: 100%;
+      padding: 5px 8px;
+      margin: 6px 0;
+      border-radius: 10px;
+      background: rgb(248, 248, 248);
+      height: 32px;
+      position: relative;
+      span {
+        width: 80%;
+        height: 100%;
+        display: inline-block;
+        margin: 0 10px;
+        // overflow:hidden;
+        // text-overflow:ellipsis;
+        // white-space: nowrap;
+      }
+      .listText {
+        position: absolute;
+        top: 2;
+        left: 10;
+        width: 60%;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+      }
+      #closeStyle {
+        position: absolute;
+        top: 9px;
+        right: 7px;
+      }
+    }
+  }
+}
+
+</style>

+ 240 - 0
src/views/modules/stockWatch/modules/selectComponent.vue

@@ -0,0 +1,240 @@
+<template>
+  <div>
+    <div v-for="(item,index) in customFields" :key="index">
+      <div class="leibie">
+        <p class="leiName">{{item.title}}</p>
+        <!-- <span class="jutixiang">
+          <a-checkbox
+            :value="index"
+            name="type"
+            @change="isSelectAll($event,index)"
+            :checked="item.checkall"
+          >全选</a-checkbox>
+        </span> -->
+        <!-- {{item.form}} -->
+        <a-checkbox-group v-model="item.form" >
+          <span class="jutixiang" v-for="(zhi,num) in item.specificFields " :key="num">
+
+            <a-checkbox :value="zhi.dataIndex" :disabled="zhi.disabled"  name="type" @change="checkboxClick(zhi)">
+              <a-tooltip
+                class="select-component"
+                placement="top"
+                :title="zhi.tip"
+                :overlayClassName="tooltipShow"
+              >{{zhi.title}}</a-tooltip>
+            </a-checkbox>
+          </span>
+        </a-checkbox-group>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import  {TTcustomFields ,KScustomFields}  from '../../columnConst/accountConst'
+// let customFields=customFields
+export default {
+  props: ['showCol','fixedCol','mediaType'],
+  data() {
+    return {
+        // customFields,
+      customFields:[],
+      quanxuanflag: [],
+      hovered: false,
+      tooltipShow: 'tooltipShow',
+      toParentArr: []
+    }
+  },
+  watch: {
+    
+    showCol(n) {
+      // console.log(n)
+      //
+      if (this.showCol.length == this.fixedCol.length) {
+
+        for (let i = 0; i < this.customFields.length; i++) {
+          this.customFields[i].form=[]          
+        }
+        this.showCol.map((item, index) => {
+          this.customFields.map((it, ind) => {
+            it.specificFields.map((i, d) => {
+              if (i.dataIndex === item.dataIndex) {
+                it.form.push(item.dataIndex)
+              }else{
+
+              }
+            })
+          })
+        })
+      } else {
+        
+       for (let i = 0; i < this.customFields.length; i++) {
+          this.customFields[i].form=[]
+          
+        }
+        n.map((item, index) => {
+          this.customFields.map((it, ind) => {
+            it.specificFields.map((i, d) => {
+              if (i.dataIndex === item.dataIndex) {
+                it.form.push(item.dataIndex)
+              }else{
+
+              }
+            })
+          })
+        })
+      }
+      // console.log(this.form)
+    },
+  
+  },
+  mounted() {
+    if(this.mediaType==1){
+      //头条自定义列
+      this.customFields=TTcustomFields
+    }else if(this.mediaType==2){
+      //快手自定义列
+      this.customFields=KScustomFields
+    }
+    for (let i = 0; i < this.customFields.length; i++) {
+      this.customFields[i].form=[]
+    }
+    // console.log(1)
+    this.showCol.map((item, index) => {
+      this.customFields.map((it, ind) => {
+        it.specificFields.map((i, d) => {
+          if (i.dataIndex === item.dataIndex) {
+            it.form.push(item.dataIndex)
+          }
+        })
+      })
+    })
+    this.fixedCol.map((item, index) => {
+      this.customFields.map((it, ind) => {
+        it.specificFields.map((i, d) => {
+          if (i.dataIndex === item.dataIndex) {
+            i.disabled=true;
+          }
+        })
+      })
+    })
+
+
+    // console.log(this.customFields);
+    
+  },
+  methods: {
+    hide() {
+      this.clicked = false
+      this.hovered = false
+    },
+    handleHoverChange(visible) {
+      this.clicked = false
+      this.hovered = visible
+    },
+    getPopupContainer() {
+      console.log(this)
+    },
+
+    //全选框   判断是否全选
+    isSelectAll(e, val) {
+      //像父元素传递
+      console.log(e, val)
+      let arr=JSON.parse(JSON.stringify(this.customFields[val].specificFields))
+      let valArr={
+        flag:true,
+        arr
+      }
+      this.customFields[val].checkall = e.target.checked
+      console.log(this.customFields[val].checkall)
+
+      if (this.customFields[val].checkall) {
+       
+        this.customFields[val].form=[]
+ 
+        this.customFields[val].specificFields.map((item, index) => {
+
+          this.customFields[val].form.push(item.dataIndex)
+
+        })
+        valArr.flag=true;
+        this.$emit('getshowlist', valArr)
+      } else {
+        console.log(this.customFields[val])
+        this.customFields[val].form=[];
+        valArr.flag=false;
+        console.log(this.customFields[val].form=[])
+        this.$emit('getshowlist', valArr)
+      }
+
+      console.log(this.form[val])
+    },
+
+    onChange(){
+        
+    },
+
+    //复选框的点击事件
+    checkboxClick(val) {
+      // console.log(val)
+    //   this.$emit('update:count',)
+      this.$emit('getshowlist', val)
+      // console.log(val,this.customFields[0].form)
+      // this.customFields[val].checkall=!this.customFields[val].checkall
+      // for (let i = 0; i < this.customFields.length; i++) {
+      //   // console.log(this.customFields[0].form,this.customFields[i].specificFields.length)
+      //   if(this.customFields[i].form.length==this.customFields[i].specificFields.length-1){
+      //       this.customFields[i].checkall=true;
+      //   }else{
+      //     this.customFields[i].checkall=false;
+      //   }
+          
+      //   }
+    }
+  }
+}
+</script>
+<style>
+.tooltipShow {
+  max-width: 30%;
+}
+.tooltipShow .ant-tooltip-content .ant-tooltip-inner {
+  background: white;
+  font-size: 10px;
+  color: #333;
+}
+.ant-tooltip-content .ant-tooltip-arrow::before {
+  background-color: white;
+}
+</style>
+<style lang="scss" scoped>
+.leibie {
+  width: 100%;
+  margin-bottom: 10px;
+  .leiName {
+    font-size: 20px;
+    text-align: left;
+    margin-bottom: 5px;
+    margin-top: 0px;
+  }
+}
+.jutixiang {
+  display: inline-block;
+  width: 32%;
+  box-sizing: border-box;
+  padding: 8px 3px;
+  height: 30px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.ant-tooltip-content .tooltipShow {
+  background: #eee;
+  font-size: 10px;
+  color: #333;
+}
+
+.ant-checkbox-group {
+  width: 100%;
+}
+</style>

+ 1 - 1
src/views/user/Login.vue

@@ -148,7 +148,7 @@
     },
     data() {
       return {
-        customActiveKey: 'tab1',
+        customActiveKey: 'tab2',
         loginBtn: false,
         // login type: 0 email, 1 username, 2 telephone
         loginType: 0,

+ 3 - 2
vue.config.js

@@ -69,6 +69,7 @@ module.exports = {
     proxy: {
       '/jeecg-boot': {
           // target: 'http://192.168.1.8:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
+          // target: 'http://192.168.1.8:8081', //请求本地 需要jeecg-boot后台项目  蒙蒙
         // target: 'http://192.168.0.59:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.1.188:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
@@ -79,13 +80,13 @@ module.exports = {
         // target: 'http://192.168.1.219:8080', //请求本地 需要jeecg-boot后台项目  赵西安
         // target: 'http://192.168.1.193:8080', //请求本地 需要jeecg-boot后台项目  李煜一
         // target: 'http://192.168.1.193:31012', //请求本地 需要jeecg-boot后台项目  李煜一
-         target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
+        //  target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
         // target: 'http://39.106.184.70:8088/', //请求本地 需要jeecg-boot后台项目
         //  target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目
         // target: 'http://192.168.1.251/', //请求本地 需要jeecg-boot后台项目
         // target:'http://118.24.244.213:8804',
-      //  target:'http://139.186.151.174:8804', //测试
+       target:'http://139.186.151.174:8804', //测试
 
         ws: false,