浏览代码

Merge branch 'master' of http://git.tjyourong.com.cn/ctop/adsp-vue

朱鑫波 4 年之前
父节点
当前提交
1d29863ee3

二进制
src/assets/work.png


+ 84 - 76
src/views/modules/Statistics/videoStatics/KSvideoStatics.vue

@@ -1,15 +1,27 @@
 <template>
   <div class="vsummary">
     <div class="xiangmuxuanze" >
-        <span style="margin-top:">项目选择:</span>
-        <Treeselect  :appId.sync="appId" request="2,4"   style="display: inline-block;position: relative;"/>
+        <span >项目选择:</span>
+        <Treeselect  :appId.sync="appId" request="2,4"   style="display: inline-block;position: relative;margin-left: 0px;"/>
     </div>
     <div class="timeDiv">
       <div style='display:flex;align-items: center;'>
         <span>时间范围:</span>
         <span  @click="opendate">
           <DatePicker :openOptions='openOptions'  :parentDate='dateValue' left='-100px'></DatePicker>
-        </span>                   
+        </span> 
+        <span style="margin-left:15px">剪辑:</span> 
+        <span  >
+            <a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  />
+        </span>         
+        <span style="margin-left:15px">拍摄:</span> 
+        <span  >
+            <a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" />
+        </span>         
+        <span style="margin-left:15px">编导:</span> 
+        <span  >
+            <a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  />
+        </span>         
       </div>
       <a-button type="primary" @click="searchRes">查询</a-button>
     </div>
@@ -84,7 +96,7 @@
           <div class="tableTop">
               
                <a-button type="primary" @click="customColumns">自定义列</a-button>
-                <a-button type="default" style="float:right" @click="exportExcel" id="mybtn" :loading='exportLoading'>导出报表</a-button>
+                <a-button type="default" style="float:right" @click="exportExcel('exportTable')" id="mybtn" :loading='exportLoading'>导出报表</a-button>
              
           </div>
             <a-table
@@ -103,13 +115,14 @@
                  @customHeaderCell="customHeaderCell(columns)"
               >
              
-                <div slot="videoU" slot-scope="test,records">
+                <div slot="converUrl" slot-scope="test,records">
+                  <!-- {{test}} -->
                     <img
-                    :src="records.coverUrl"
+                    :src="test"
                     alt
                     style="width:80px"
                     @click="openVideo(records.url)"
-                    @load="loadShow"
+                   
                     />
                 </div>
                 <span slot="operation" slot-scope="text, record">
@@ -210,7 +223,10 @@
                 >{{ gameAddictionRate | toPercentage }}</span>
                 <!-- <span slot="nextDayOpenRate" slot-scope="nextDayOpenRate">{{ nextDayOpenRate | toPercentage }}</span> -->
                 <span slot="relativePeople" slot-scope="text,record">
-                    <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a>
+                    <!-- <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a> -->
+                    <p>剪辑:{{record.clip || '暂无数据'}}</p>
+                    <p>拍摄:{{record.shot || '暂无数据'}}</p>
+                    <p>编导:{{record.plan || '暂无数据'}}</p>
                 </span>
 
                 
@@ -223,17 +239,21 @@
 
       <!-- 明细表 -->
 
-      <a-modal v-model="visibleDetail" title="详细信息" width="60%" :footer="null" >
-        <a-button type="default" @click="exportExcel" id="mybtn" >导出报表</a-button>
+      <a-modal v-model="visibleDetail" title="详细信息" width="50%" :footer="null" >
+        <a-button type="default" @click="exportExcel('exportDetail')" id="mybtn" >导出报表</a-button>
         <a-table
-          :columns="detailConsum"
+          :columns="detailColumn"
           :data-source="detailData"
           bordered
           tableLayout="auto"
           :pagination="false"
+          :loading='detailLoading'
           style="word-break: break-all;"
         >
-          <span slot="huanbi" slot-scope="huanbi">{{ huanbi | toPercentage }}</span>
+          <!-- <span slot="huanbi" slot-scope="huanbi">{{ huanbi | toPercentage }}</span> -->
+
+           <span slot="advertiserName" slot-scope="text">{{ text || '暂未填写该数据' }}</span>
+          <span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
         </a-table>
       </a-modal>
   </div>
@@ -250,12 +270,12 @@ import customColumn from '../components/customColumn.vue'
 const columnsFixd = [
   {
     title: '视频',
-    dataIndex: 'videoU',
+    dataIndex: 'converUrl',
     align: 'center',
     width: 100,
     fixed: 'left',
-    key: 'videoU',
-    scopedSlots: { customRender: 'videoU' }
+    key: 'converUrl',
+    scopedSlots: { customRender: 'converUrl' }
   },
   {
     title: '视频名称',
@@ -287,15 +307,15 @@ const columnsFixd = [
     width:120,
     fixed: 'left'
   },
-  //   {
-  //   title:'操作',
-  //   dataIndex:'operation',
-  //   key:'operation',
-  //   scopedSlots: { customRender: 'operation' },
-  //   align: 'center',
-  //   width:90,
-  //   fixed: 'left'
-  // },
+    {
+    title:'操作',
+    dataIndex:'operation',
+    key:'operation',
+    scopedSlots: { customRender: 'operation' },
+    align: 'center',
+    width:90,
+    fixed: 'left'
+  },
 
   {
     title: '创建时间',
@@ -401,46 +421,23 @@ const columnsFixd = [
 ]
 let show = 0
 
-let detailColumn = [
-  {
+
+let detailColumn=[
+   {
     title: '客户',
     dataIndex: 'advertiserName',
     align: 'center',
-
-    customRender: (value, row, index) => {
-      const obj = {
-        children: value,
-        attrs: {}
-      }
-      if (index === 0) {
-        obj.attrs.rowSpan = 7
-      } else {
-        obj.attrs.rowSpan = 0
-      }
-      return obj
-    }
+     scopedSlots: { customRender: 'advertiserName' },
   },
   {
     title: '项目名称',
     dataIndex: 'projectName',
     align: 'center',
-    width:150,
-    customRender: (value, row, index) => {
-      const obj = {
-        children: value,
-        attrs: {}
-      }
-      if (index == 0) {
-        obj.attrs.rowSpan = 7
-      }else {
-        obj.attrs.rowSpan = 0
-      }
-      return obj
-    }
+    width: 150,
   },
-  {
+   {
     title: '时间',
-    dataIndex: 'statDatetime',
+    dataIndex: 'statDate',
     align: 'center',
     width: 120
   },
@@ -448,19 +445,18 @@ let detailColumn = [
     title: '消耗',
     dataIndex: 'cost',
     scopedSlots: { customRender: 'cost' },
-    align: 'center'
+    align: 'center',
+    
   },
-  {
-    title: '环比',
-    dataIndex: 'huanbi',
-    scopedSlots: { customRender: 'huanbi' },
-    align: 'center'
-  }
 ]
 
 export default {
   data() {
     return {
+       detailLoading:false,
+      clip:undefined,
+      shot:undefined,
+      plan:undefined,
       //明细数据
       visibleDetail:false,
       detailColumn,
@@ -547,15 +543,17 @@ export default {
       console.log(text, record)
       this.visibleDetail = true
       this.detailData = []
-      // this.signature=record.signature
+      this.detailLoading=true;
+      this.signature=record.signature
       // console.log(this.signature)
-      postAction('/toutiao/videoReportDaily/bytedanceVideoInfoListDetail', {
+      postAction('/ctop/kuaishou/videoReport/detail', {
         startDate: this.dateValue[0].format('YYYY-MM-DD'),
         endDate: this.dateValue[1].format('YYYY-MM-DD'),
         signature: record.signature,
         accountIds:this.appId
       }).then(res => {
         console.log(res)
+        this.detailLoading=false;
         if (res.success) {
           let result = res.result
           // this.detailData.push({ ...result, key: 1 })
@@ -660,16 +658,19 @@ 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:'',
       }).then(res => {
         let resArr = []
         this.data=[];
         this.loading = false
         if (res.success) {
-        //   let result = res.result
-        //   this.data.push({ ...result, key: 1 })
-        //   result.map((item, index) => {
-        //     item.key = index
-        //   })
+          // let result = res.result
+          // this.data.push({ ...result, key: 1 })
+          // result.map((item, index) => {
+          //   item.key = index
+          // })
           this.data = res.result.list.map((item,index)=>{
               return {
                   ...item,
@@ -685,21 +686,28 @@ export default {
       })
     },
     //导出报表
-    exportExcel() {
+    exportExcel(exportType) {
       this.exportLoading=true;
-       let column = this.columns.map((item, index) => {
-        return item.dataIndex
-      })
-      
-      let columns=column.splice(5)
-        
-      downFilePost('/ctop/kuaishou/videoReport/report/excel', {
+      let columns=[]
+      if(exportType=='exportTable'){
+        let column = this.columns.map((item, index) => {
+          return item.dataIndex
+        })      
+        columns=column.splice(7)
+      }
+      downFilePost('/ctop/kuaishou/videoReport/excel', {
         columns,
         target:this.target,
         order:this.order,
         startDate: this.dateValue[0].format('YYYY-MM-DD'),
         endDate: this.dateValue[1].format('YYYY-MM-DD'),
         accountIds:this.appId,
+        exportType,
+        signature: this.signature,
+        signature: this.signature,
+        clip:this.clip?this.clip:'',
+        shot:this.shot?this.shot:'',
+        plan:this.plan?this.plan:'',
       }).then(res => {
         this.exportLoading=false;
         let blob = new Blob([res], {

+ 93 - 24
src/views/modules/Statistics/videoStatics/TTvideoStatics.vue

@@ -22,7 +22,18 @@
           v-model="dateRange"
         />
         <span v-show="daysFlag">共{{totalSelect}}天</span> -->
-           
+        <span style="margin-left:15px">剪辑:</span> 
+        <span  >
+            <a-input placeholder="请输入剪辑的名字" v-model="clip" style="width:140px"  />
+        </span>         
+        <span style="margin-left:15px">拍摄:</span> 
+        <span  >
+            <a-input placeholder="请输入拍摄的名字" v-model="shot" style="width:140px" />
+        </span>         
+        <span style="margin-left:15px">编导:</span> 
+        <span  >
+            <a-input placeholder="请输入编导的名字" v-model="plan" style="width:140px"  />
+        </span>          
       </div>
       <!-- <div>
         <span>消耗:</span>
@@ -37,7 +48,7 @@
 
     <div style="margin:15px 0" class="btndiv">
       <a-button type="primary" @click="customColumns">自定义列</a-button>
-      <a-button type="default" style="float:right" @click="exportExcel" id="mybtn"  :loading='exportLoading'>导出报表</a-button>
+      <a-button type="default" style="float:right" @click="exportExcel('exportTable')" id="mybtn"  :loading='exportLoading'>导出报表</a-button>
     </div>
 
     
@@ -150,7 +161,10 @@
                 
       
         <span slot="relativePeople" slot-scope="text,record">
-           <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a>
+           <!-- <a href="javascript:;" @click.stop="showRelevantPeople(record)">查看相关人员</a> -->
+            <p>剪辑:{{record.clip || '暂无数据'}}</p>
+            <p>拍摄:{{record.shot || '暂无数据'}}</p>
+            <p>编导:{{record.plan ||'暂无数据'}}</p>
        </span>
 
     </a-table>
@@ -173,17 +187,19 @@
 
     <!-- 明细表 -->
 
-      <a-modal v-model="visibleDetail" title="详细信息" width="60%" :footer="null" >
-        <a-button type="default" @click="exportExcel" id="mybtn">导出报表</a-button>
+      <a-modal v-model="visibleDetail" title="详细信息" width="50%" :footer="null" >
+        <a-button type="default" @click="exportExcel('exportDetail')" id="mybtn">导出报表</a-button>
         <a-table
           :columns="detailColumn"
           :data-source="detailData"
           bordered
           tableLayout="auto"
+          :loading='detailLoading'
           :pagination="false"
           style="word-break: break-all;"
         >
-          <span slot="huanbi" slot-scope="huanbi">{{ huanbi | toPercentage }}</span>
+          <span slot="advertiserName" slot-scope="text">{{ text || '暂未填写该数据' }}</span>
+          <span slot="cost" slot-scope="cost">{{ cost | decimalsHandle }}</span>
         </a-table>
       </a-modal>
   </div>
@@ -237,15 +253,15 @@ const columnsFixd = [
     width:120,
     fixed: 'left'
   },
-  //   {
-  //   title:'操作',
-  //   dataIndex:'operation',
-  //   key:'operation',
-  //   scopedSlots: { customRender: 'operation' },
-  //   align: 'center',
-  //   width:120,
-  //   fixed: 'left'
-  // },
+    {
+    title:'操作',
+    dataIndex:'operation',
+    key:'operation',
+    scopedSlots: { customRender: 'operation' },
+    align: 'center',
+    width:120,
+    fixed: 'left'
+  },
 
   {
     title: '创建时间',
@@ -307,11 +323,42 @@ const columnsFixd = [
 ]
 let show = 0
 
-let detailColumn=[]
+let detailColumn=[
+   {
+    title: '客户',
+    dataIndex: 'advertiserName',
+    align: 'center',
+    scopedSlots: { customRender: 'advertiserName' },
+    align: 'center',
+  },
+  {
+    title: '项目名称',
+    dataIndex: 'projectName',
+    align: 'center',
+    width: 150,
+  },
+   {
+    title: '时间',
+    dataIndex: 'statDate',
+    align: 'center',
+    width: 120
+  },
+  {
+    title: '消耗',
+    dataIndex: 'cost',
+    scopedSlots: { customRender: 'cost' },
+    align: 'center',
+    
+  },
+]
 
 export default {
   data() {
     return {
+      detailLoading:false,
+      clip:undefined,
+      shot:undefined,
+      plan:undefined,
        //明细数据
       visibleDetail:false,
       detailColumn,
@@ -396,15 +443,17 @@ export default {
       console.log(text, record)
       this.visibleDetail = true
       this.detailData = []
-      // this.signature=record.signature
+      this.signature=record.signature
       // console.log(this.signature)
-      postAction('/toutiao/videoReportDaily/bytedanceVideoInfoListDetail', {
+      this.detailLoading=true
+      postAction('/ctop/byteDance/videoReport/detail', {
         startDate: this.dateValue[0].format('YYYY-MM-DD'),
         endDate: this.dateValue[1].format('YYYY-MM-DD'),
         signature: record.signature,
         accountIds:this.appId
       }).then(res => {
         console.log(res)
+        this.detailLoading=false;
         if (res.success) {
           let result = res.result
           // this.detailData.push({ ...result, key: 1 })
@@ -509,6 +558,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:'',
       }).then(res => {
         let resArr = []
         this.data=[];
@@ -528,20 +580,32 @@ export default {
       })
     },
     //导出报表
-    exportExcel() {
+    exportExcel(exportType) {
       this.exportLoading=true;
-      let column = this.columns.map((item, index) => {
-        return item.dataIndex
-      })
+      let columns=[]
+      if(exportType=='exportTable'){
+        let column = this.columns.map((item, index) => {
+          return item.dataIndex
+        })
+      
+        columns=column.splice(7)
+      }else{
+        
+      }
       
-      let columns=column.splice(5)
-      downFilePost('/ctop/byteDance/videoReport/report/excel', {
+      downFilePost('/ctop/byteDance/videoReport/excel', {
         columns,
         target:this.target,
         order:this.order,
         startDate: this.dateValue[0].format('YYYY-MM-DD'),
         endDate: this.dateValue[1].format('YYYY-MM-DD'),
         accountIds:this.appId,
+        signature: this.signature,
+        exportType,
+        clip:this.clip?this.clip:'',
+        shot:this.shot?this.shot:'',
+        plan:this.plan?this.plan:'',
+
       }).then(res => {
         this.exportLoading=false;
         let blob = new Blob([res], {
@@ -758,6 +822,8 @@ export default {
         
       }
     })
+    
+    
     this.tableHandle();
   },
   deactivated() {
@@ -907,6 +973,9 @@ export default {
 </style>
 
 <style lang="scss" scoped>
+span{
+  margin-left: 0;
+}
 .vsummary {
   width: 100%;
   height: 100%;

+ 186 - 0
src/views/modules/workBench/index.vue

@@ -0,0 +1,186 @@
+<template>
+    <div class="workBench">
+        <div class="topBody">
+            <p class="breadcrumb">工作台</p>
+            <div class="bottom">
+                <div class="touxiang">
+                    <img src="" alt="">
+                </div>  
+                <div class='tip'>
+                    <p class="greet">早安,吴永前,祝你开心每一天!</p>
+                    <p class="descPosition">
+                        <span>运营经理</span>
+                        <a-divider type="vertical" />
+                        <span>华北地区-头条事业部</span>
+                    </p>
+                </div>
+                <a-button type='primary' class="mybtn">
+                    <a-icon type="plus" />
+                    发起订单
+                </a-button>
+            </div>
+        </div>
+        <div class="section">
+            <div class="sectionBody">
+                <div class="sectionLeftBox">
+                    <div class="leftTop">
+                        <div class="sectionHead">
+                            我的工作内容
+                        </div>
+                        <div class="zhanshiBox">
+                            <div class="item">
+                                <div class="title">
+                                    <img src="@/assets/work.png" alt="" class="iconImg">
+                                    <span>我发起的</span>
+                                </div>
+                                <div class="itemBody">
+                                    <p class="count">60 <span>个</span></p>
+                                </div>
+                            </div>
+                        </div>  
+                    </div>
+                    <div class="leftBottom">
+                        <div class="sectionHead">
+                            订单进度
+                        </div>
+                    </div>
+                </div>
+                <div class="sectionRightBox">
+                    <div class="rightTop">
+                        <div class="sectionHead">
+                            操作记录
+                        </div>
+                    </div>
+                    <div class="rightBottom">
+                        <div class="sectionHead">
+                            本周项目燃尽图
+                        </div>
+                    </div>
+                </div>
+                
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import moment from 'moment';
+import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
+
+export default {
+    
+}
+</script>
+
+<style lang="scss" scoped>
+.workBench{
+    width: 100%;
+    .topBody{
+        width: 100%;
+        height: 146px;
+        background: #FFFFFF;
+        margin-bottom: 24px;
+        .breadcrumb{
+            width: 42px;
+            height: 22px;
+            font-size: 12px;
+            font-family: PingFangSC-Regular, PingFang SC;
+            font-weight: 400;
+            color: #000000;
+            line-height: 22px;
+        }
+        .bottom{
+            display: flex;
+            position: relative;
+            padding: 20px;
+            .touxiang{
+                width: 72px;
+                height: 72px;
+            }
+            .tip{
+                .greet{
+                    width: 300px;
+                    height: 28px;
+                    font-size: 20px;
+                    font-family: PingFangSC-Medium, PingFang SC;
+                    font-weight: 500;
+                    color: rgba(0, 0, 0, 0.85);
+                    line-height: 28px;
+                }
+                .descPosition{
+                    height: 22px;
+                    font-size: 14px;
+                    font-family: PingFangSC-Regular, PingFang SC;
+                    font-weight: 400;
+                    color: rgba(0, 0, 0, 0.45);
+                    line-height: 22px;
+                }
+
+            }
+            .mybtn{
+                position: absolute;
+                top: 50%;
+                margin-left: -18px;
+                right: 0;
+            }
+        }
+
+    }
+    .section{
+        .sectionBody{
+            display: flex;
+            .sectionHead{
+                padding: 15px 20px;
+                // height: 24px;
+                font-size: 16px;
+                font-family: PingFangSC-Medium, PingFang SC;
+                font-weight: 500;
+                color: rgba(0, 0, 0, 0.85);
+                line-height: 24px;
+                border-bottom: 1px solid  #E9E9E9;;
+            }
+            .sectionLeftBox{
+                width: 60%;
+                .leftTop{
+                    height: 370px;
+                }
+                .zhanshiBox{
+                    display: flex;
+                    flex-wrap: wrap;
+                    .item{
+                        flex: 4;
+                        background: brown;
+                        padding: 20px;
+                        .title{
+                            padding-bottom: 20px;
+                        }
+                        .itemBody{
+                            text-align: center;
+                            .count{
+                                
+                                font-size: 24px;
+                                font-family: PingFangSC-Medium, PingFang SC;
+                                font-weight: 500;
+                                color: #000000;
+                                line-height: 32px;
+                                span{
+                                    font-size: 16px;
+                                }
+                            }
+                            .count:hover{                                
+                                color: #1890FF;
+                            }
+                        }
+                    }
+                }
+            }
+            .sectionRightBox{
+                width: 40%;
+                .rightTop{
+                    height: 370px;
+                }
+            }
+        }
+    }
+}
+</style>

+ 2 - 2
vue.config.js

@@ -73,14 +73,14 @@ module.exports = {
         // target: 'http://192.168.1.72:8088', //请求本地 需要jeecg-boot后台项目  英豪
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
 
-        // target: 'http://192.168.1.74:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
+        target: 'http://192.168.1.74:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.0.252:8098', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.0.170:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
 
         // target: 'http://192.168.1.94:8080', //请求本地 需要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后台项目