zhuxinbo 5 éve
szülő
commit
fda68070bf

+ 95 - 5
src/views/modules/Statistics/companyDetail.vue

@@ -4,14 +4,30 @@
     <a-row :gutter="10" style="margin-top:10px">
       <a-col :span="24">
         <a-card style="width:100%;">
+          <!-- advertiserName -->
+          <a-input
+            placeholder="请输入广告主名称"
+            v-model="advertiserName"
+            style="width:300px;margin:10px 10px 10px 0"
+          ></a-input>
+          <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+          <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+          <a-button type="primary" @click="exportExcel" style="margin-left: 8px">导出</a-button>
+          <br />
+          是否展示消耗为0的数据:
+          <a-radio-group buttonStyle="solid" v-model="isHasData" @change="onChageLogin" style="margin:10px">
+            <a-radio-button value="1">是</a-radio-button>
+            <a-radio-button value="0">否</a-radio-button>
+          </a-radio-group>
           <a-table
             :columns="columns"
             :dataSource="dataList"
             bordered
             :loading="loading"
             size="middle"
-            :scroll="{ x: 1900 }"
+            :scroll="{ x: 2300 }"
           >
+            <!-- <span slot="isHasData" slot-scope="text">{{ text == 0 ? '否' : '是' }}</span> -->
             <span slot="fengmianClickRate" slot-scope="text">{{ text | getBo }}</span>
             <span slot="convertClickRate" slot-scope="text">{{ text | getBo }}</span>
           </a-table>
@@ -35,7 +51,7 @@ import HeadInfo from '@/components/tools/HeadInfo.vue'
 
 import Trend from '@/components/Trend'
 
-import { getAction, postAction } from '@/api/manage'
+import { getAction, postAction, downFilePost } from '@/api/manage'
 import { mapGetters } from 'vuex'
 
 import qs from 'qs'
@@ -56,6 +72,22 @@ const columns = [
     align: 'center',
     width: 200
   },
+//   {
+//     title: '是否有数据',
+//     dataIndex: 'isHasData',
+//     key: 'isHasData',
+//     filters: [
+//       { text: '是', value: '1' },
+//       { text: '否', value: '0' }
+//     ],
+//     onFilter: (value, record) =>
+//       record.isHasData
+//         .toString()
+//         .toLowerCase()
+//         .includes(value.toLowerCase()),
+//     scopedSlots: { customRender: 'isHasData' },
+//     align: 'center'
+//   },
   {
     title: '快手id',
     dataIndex: 'kid',
@@ -184,12 +216,15 @@ export default {
 
   data: function() {
     return {
+      isHasData: '1',
       loginfo: {},
       barData,
       loading: false,
       a: '',
       columns: columns,
-      dataList: []
+      dataList: [],
+      dataListAll: [],
+      advertiserName: ''
     }
   },
   filters: {
@@ -202,7 +237,62 @@ export default {
     }
   },
   methods: {
-    ...mapGetters(['nickname', 'avatar', 'userInfo'])
+    ...mapGetters(['nickname', 'avatar', 'userInfo']),
+    onChageLogin(e) {
+      if (e.target.value == 1) {
+        this.dataList = this.dataListAll
+      } else {
+        this.dataList = this.dataListAll.filter(item => {
+          return item.isHasData == 1
+        })
+      }
+    },
+    exportExcel() {
+      var weekDate = localStorage.getItem('companyDate')
+      var params = {}
+      params.date = weekDate
+      params.isExportNullData = this.isHasData
+      downFilePost('/report/kuaishouReportDailyAgentSum/companyReportAccountDetailListExportExcel', params).then(
+        res => {
+          let blob = new Blob([res], {
+            type: 'application/vnd.ms-excel'
+          })
+          let downloadElement = document.createElement('a')
+          let href = window.URL.createObjectURL(blob) //创建下载的链接
+          downloadElement.href = href
+          downloadElement.download = weekDate + '详情报表' //下载后文件名
+          document.body.appendChild(downloadElement)
+          downloadElement.click() //点击下载
+          document.body.removeChild(downloadElement) //下载完成移除元素
+          window.URL.revokeObjectURL(href) //释放掉blob对象
+        }
+      )
+    },
+    searchReset() {
+      this.advertiserName = ''
+      this.searchQuery()
+    },
+    searchQuery() {
+      var weekDate = localStorage.getItem('companyDate')
+      this.columns = columns
+      this.loading = true
+      postAction('/report/kuaishouReportDailyAgentSum/companyReportAccountDetailList', {
+        date: weekDate,
+        advertiserName: this.advertiserName
+      }).then(res => {
+        this.loading = false
+        if (res.success) {
+          this.dataListAll = this.dataList = res.result.map((item, index) => {
+            return {
+              ...item,
+              key: index
+            }
+          })
+        } else {
+          this.$message.error(res.message)
+        }
+      })
+    }
   },
   created() {
     var weekDate = localStorage.getItem('companyDate')
@@ -211,7 +301,7 @@ export default {
     postAction('/report/kuaishouReportDailyAgentSum/companyReportAccountDetailList', { date: weekDate }).then(res => {
       this.loading = false
       if (res.success) {
-        this.dataList = res.result.map((item, index) => {
+        this.dataListAll = this.dataList = res.result.map((item, index) => {
           return {
             ...item,
             key: index

+ 20 - 2
src/views/modules/Statistics/companyStatistics.vue

@@ -116,6 +116,7 @@ th div {
     <a-row :gutter="10">
       <a-col :span="24">
         <a-card style="width:100%">
+          <a-button type="primary" @click="exportExcel" style="margin: 8px 8px 8px 0" :disabled="dataTable.length==0">导出</a-button>
           <a-table
             :columns="columns"
             :dataSource="dataTable"
@@ -146,7 +147,7 @@ import lifting from './components/lifting'
 import timeCheck from './components/timeCheck'
 import Treeselect from './components/Treeselect.vue'
 
-import { getAction, postAction, postFile } from '@/api/manage'
+import { getAction, postAction, postFile,downFilePost } from '@/api/manage'
 import { mapGetters } from 'vuex'
 
 var length = 0
@@ -341,7 +342,8 @@ export default {
         { label: '近三月', value: 6, show: true },
         { label: '近半年', value: 7, show: true },
         { label: '近一年', value: 8, show: true }
-      ]
+      ],
+      params: null
     }
   },
   filters: {
@@ -374,6 +376,21 @@ export default {
       // Can not select days before today and today
       return current && current > moment().endOf('day')
     },
+    exportExcel() {
+      downFilePost('/report/kuaishouReportDailyAgentSum/companyReportExportExcel', this.params).then(res => {
+        let blob = new Blob([res], {
+          type: 'application/vnd.ms-excel'
+        })
+        let downloadElement = document.createElement('a')
+        let href = window.URL.createObjectURL(blob) //创建下载的链接
+        downloadElement.href = href
+        downloadElement.download = '公司报表' //下载后文件名
+        document.body.appendChild(downloadElement)
+        downloadElement.click() //点击下载
+        document.body.removeChild(downloadElement) //下载完成移除元素
+        window.URL.revokeObjectURL(href) //释放掉blob对象
+      })
+    },
     ...mapGetters(['nickname', 'avatar', 'userInfo']),
     getCompanyReport(type) {
       this.loading = true
@@ -417,6 +434,7 @@ export default {
           params.endDate = moment(this.startValue[1]._d).format('YYYY-MM-DD')
           break
       }
+      this.params = params
       postAction('/report/kuaishouReportDailyAgentSum/companyReport', params).then(res => {
         this.loading = false
         if (res.success) {

+ 2 - 2
src/views/modules/agent/KuaishouAgentAccountList.vue

@@ -21,11 +21,11 @@
           </a-col>
           <a-col :md="6" :sm="8">
             <a-form-item label="审核状态">
-              <a-select v-model="queryParam.reviewStatus">
+              <a-select v-model="queryParam.reviewStatus" placeholder="请选择审核状态">
                 <a-select-option :value="1">审核中</a-select-option>
                 <a-select-option :value="2">审核通过</a-select-option>
                 <a-select-option :value="3">审核拒绝</a-select-option>
-              </a-select>
+              </a-select> 
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="8">

+ 12 - 0
src/views/modules/material/scriptMaterial.vue

@@ -466,6 +466,18 @@ export default {
   },
   watch: {},
   methods: {
+    handleInputConfirm() {
+      const inputValue = this.inputValue
+      let tags = this.tags
+      if (inputValue && tags.indexOf(inputValue) === -1) {
+        tags = [...tags, inputValue]
+      }
+      Object.assign(this, {
+        tags,
+        inputVisible: false,
+        inputValue: ''
+      })
+    },
     close() {
       //   this.form.resetFields()
       //   this.urlList = { url: '', md5: '', name: '' }