Bladeren bron

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	vue.config.js
xuzuoyun 5 jaren geleden
bovenliggende
commit
07ce716fd3

File diff suppressed because it is too large
+ 543 - 543
src/components/ctop/vm-card.vue


+ 5 - 1
src/views/dashboard/Workbench.vue

@@ -205,7 +205,11 @@ export default {
     ...mapGetters(['nickname', 'avatar', 'userInfo']),
     toList(key) {
       localStorage.setItem('key', key)
-      this.$router.replace({ path: '/modules/material/materialList' })
+      if (localStorage.getItem('roleCode') == 'clip') {
+        this.$router.replace({ path: '/modules/material/videoMaterial' })
+      } else if (localStorage.getItem('roleCode') == 'plane') {
+        this.$router.replace({ path: '/modules/material/materialList' })
+      }
     }
   },
   created() {

+ 40 - 1
src/views/modules/Statistics/dataDisplayStatistics.vue

@@ -266,6 +266,12 @@ const columns = [
             obj.attrs.colSpan = 2
           }
         }
+      } else {
+        for (let i = 0; i < length; i++) {
+          if (index >= length - 1) {
+            obj.attrs.colSpan = 2
+          }
+        }
       }
       return obj
     }
@@ -287,6 +293,12 @@ const columns = [
             obj.attrs.colSpan = 0
           }
         }
+      } else {
+        for (let i = 0; i < length; i++) {
+          if (index >= length - 1) {
+            obj.attrs.colSpan = 0
+          }
+        }
       }
 
       return obj
@@ -583,7 +595,7 @@ export default {
                 : item.activationPrice
                 ? (item.activationPrice / this.discount).toFixed(2)
                 : 0,
-              date: this.statHour ? this.getDate() + '  ' + this.statHour : this.getDate(),
+              date: this.statHour ? res.statDate + '  ' + this.statHour : res.statDate,
               formCount: item.formCount > 0 ? item.formCount : item.activationCount
             }
           })
@@ -668,6 +680,33 @@ export default {
             this.data.push(allNow)
             this.data.push(allYesterday)
             this.data.push(chainRatio)
+          } else {
+            var allNow = {
+              key: index + 1,
+              ...res.ratioJson,
+              photoClickRatio: res.ratioJson.photoClickRatio
+                ? (res.ratioJson.photoClickRatio * 100).toFixed(2) + '%'
+                : 0 + '%',
+              cpm: res.ratioJson.cpm ? res.ratioJson.cpm.toFixed(2) : 0,
+              cost: res.ratioJson.cost.toFixed(2),
+              cvr: res.ratioJson.cvr ? (res.ratioJson.cvr * 100).toFixed(2) + '%' : 0 + '%',
+              costY: (res.ratioJson.cost / this.discount).toFixed(2),
+              accountId: '总计',
+              beforeFormPrice: res.ratioJson.formPrice
+                ? res.ratioJson.formPrice.toFixed(2)
+                : res.ratioJson.activationPrice
+                ? res.ratioJson.activationPrice.toFixed(2)
+                : 0,
+              afterFormPrice: res.ratioJson.formPrice
+                ? (res.ratioJson.formPrice / this.discount).toFixed(2)
+                : res.ratioJson.activationPrice
+                ? (res.ratioJson.activationPrice / this.discount).toFixed(2)
+                : 0,
+              formCount: res.ratioJson.conversions,
+              beforeFormPrice: res.ratioJson.conversionPrice.toFixed(2),
+              afterFormPrice: res.ratioJson.discountConversionPrice.toFixed(2)
+            }
+            this.data.push(allNow)
           }
 
           length = this.data.length

+ 297 - 0
src/views/modules/achievements/design.vue

@@ -0,0 +1,297 @@
+<style>
+.design .ant-list-item-content {
+  display: flex;
+  justify-content: space-around;
+}
+</style>
+<template>
+  <div class="design">
+    <a-row :gutter="24" style="margin-top:15px">
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card :loading="loading" title="有效数" :total="dataCount.waitAudit + ''">
+          <a-tooltip title="指标说明" slot="action">
+            <a-icon type="info-circle-o" />
+          </a-tooltip>
+          <div>
+            <trend flag="up" style="margin-right: 16px;">
+              <span slot="term">周同比</span>
+              12%
+            </trend>
+            <trend flag="down">
+              <span slot="term">日同比</span>
+              11%
+            </trend>
+          </div>
+          <template slot="footer"> </template>
+        </chart-card>
+      </a-col>
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card :loading="loading" title="素材总数" :total="dataCount.passAudit + ''">
+          <a-tooltip title="指标说明" slot="action">
+            <a-icon type="info-circle-o" />
+          </a-tooltip>
+          <div>
+            <trend flag="up" style="margin-right: 16px;">
+              <span slot="term">周同比</span>
+              12%
+            </trend>
+            <trend flag="down">
+              <span slot="term">日同比</span>
+              11%
+            </trend>
+          </div>
+          <template slot="footer"> </template>
+        </chart-card>
+      </a-col>
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card
+          :loading="loading"
+          title="有效率"
+          :total="
+            dataCount.refuseAudit + dataCount.passAudit > 0
+              ? ((dataCount.passAudit / (dataCount.refuseAudit + dataCount.passAudit)) * 100).toFixed(2) + '%'
+              : '0%'
+          "
+        >
+          <a-tooltip title="指标说明" slot="action">
+            <a-icon type="info-circle-o" />
+          </a-tooltip>
+          <div>
+            <trend flag="up" style="margin-right: 16px;">
+              <span slot="term">周同比</span>
+              12%
+            </trend>
+            <trend flag="down">
+              <span slot="term">日同比</span>
+              11%
+            </trend>
+          </div>
+          <template slot="footer"> </template>
+        </chart-card>
+      </a-col>
+    </a-row>
+
+    <a-row :gutter="10" style="margin-top:10px">
+      <a-col :span="24">
+        <a-card style="width:100%;">
+          <a-table
+            :columns="columns"
+            :dataSource="dataList"
+            bordered
+            :loading="loading"
+            size="middle"
+            :pagination="false"
+          >
+          </a-table>
+          <template class="ant-card-actions" slot="actions" v-if="dataList.length > 3">
+            <div @click="getAll('visibleVideo')">查看更多</div>
+          </template>
+        </a-card>
+      </a-col>
+    </a-row>
+    <a-row :gutter="24">
+      <a-col :span="8">
+        <a-card :loading="loading" :bordered="false" title="当前可获得绩效" :style="{ marginTop: '24px' }">
+          <div style="height:250px;text-align:center;line-height:230px;font-size:80px">
+            100
+          </div>
+        </a-card>
+      </a-col>
+      <a-col :span="16">
+        <a-card :loading="loading" :bordered="false" title="有效率排行" :style="{ marginTop: '24px' }">
+          <div style="height:200px">
+            <a-list itemLayout="horizontal" :dataSource="data">
+              <a-list-item slot="renderItem" slot-scope="item, index">
+                <a-list-item-meta style="width:50%">
+                  <div slot="description">
+                    有效率
+                  </div>
+                  <a slot="title" href="https://vue.ant.design/">{{ item.title }}</a>
+                  <a-avatar slot="avatar" src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
+                </a-list-item-meta>
+                <div></div>
+                <div style="text-align:center">
+                  <img
+                    v-if="index == 0"
+                    src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1576727589&di=a65392c20b9187cab794c2d5c0bb836b&imgtype=jpg&er=1&src=http%3A%2F%2F58pic.ooopic.com%2F58pic%2F12%2F83%2F98%2F42R58PICEnd.jpg"
+                    alt=""
+                    style="height:40px;"
+                  />
+                  <img
+                    v-if="index == 1"
+                    src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1576137652175&di=d648da94b779e32a96233faa7b6ae64b&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2017%2F05%2F31%2F14c7fdd5e99d7159b9fc21dbba2d5583.png"
+                    alt=""
+                    style="height:40px;"
+                  />
+                  <img
+                    v-if="index == 2"
+                    src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=748734891,2113250735&fm=26&gp=0.jpg"
+                    alt=""
+                    style="height:40px"
+                  />
+                </div>
+              </a-list-item>
+            </a-list>
+          </div>
+          <template class="ant-card-actions" slot="actions">
+            <div @click="getAll('visible')">查看更多</div>
+          </template>
+        </a-card>
+      </a-col>
+    </a-row>
+    <a-modal title="人员排名" :visible="visible" @ok="handleOk('visible')" @cancel="handleCancel('visible')">
+      <a-list itemLayout="horizontal" :dataSource="data">
+        <a-list-item slot="renderItem" slot-scope="item, index">
+          <a-list-item-meta style="width:50%">
+            <div slot="description">
+              有效率1%
+            </div>
+            <a slot="title" href="https://vue.ant.design/">{{ item.title }}</a>
+            <a-avatar slot="avatar" src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
+          </a-list-item-meta>
+          <div></div>
+        </a-list-item>
+      </a-list>
+    </a-modal>
+    <a-modal
+      title="有效视频"
+      :visible="visibleVideo"
+      @ok="handleOk('visibleVideo')"
+      @cancel="handleCancel('visibleVideo')"
+    >
+      <a-table :columns="columns" :dataSource="dataList" bordered :loading="loading" size="middle" :pagination="false">
+      </a-table>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import ChartCard from '@/components/ChartCard'
+import ACol from 'ant-design-vue/es/grid/Col'
+import ATooltip from 'ant-design-vue/es/tooltip/Tooltip'
+import MiniArea from '@/components/chart/MiniArea'
+import MiniBar from '@/components/chart/MiniBar'
+import MiniProgress from '@/components/chart/MiniProgress'
+import RankList from '@/components/chart/RankList'
+import Bar from '@/components/chart/Bar'
+import LineChartMultid from '@/components/chart/LineChartMultid'
+import HeadInfo from '@/components/tools/HeadInfo.vue'
+
+import Trend from '@/components/Trend'
+
+import { getAction } from '@/api/manage'
+import { mapGetters } from 'vuex'
+const barData = []
+for (let i = 0; i < 12; i += 1) {
+  barData.push({
+    x: `${i + 1}月`,
+    y: Math.floor(Math.random() * 1000) + 200
+  })
+}
+
+const columns = [
+  {
+    title: '素材',
+    dataIndex: 'videoUrl',
+    key: 'videoUrl',
+    align: 'center',
+    scopedSlots: { customRender: 'videoUrl' }
+  },
+  {
+    title: '素材跑量',
+    dataIndex: 'reviewDetail',
+    key: 'reviewDetail',
+    align: 'center'
+  },
+  {
+    title: '投放平台',
+    dataIndex: 'reviewDetail',
+    key: 'reviewDetail',
+    align: 'center'
+  },
+  {
+    title: '投放账户',
+    dataIndex: 'reviewDetail',
+    key: 'reviewDetail',
+    align: 'center'
+  },
+  {
+    title: '封面点击数',
+    dataIndex: 'reviewDetail',
+    key: 'reviewDetail',
+    align: 'center'
+  },
+  {
+    title: '广告语',
+    dataIndex: 'description',
+    key: 'description',
+    align: 'center',
+    scopedSlots: { customRender: 'description' }
+  }
+]
+
+export default {
+  name: 'design',
+  components: {
+    ATooltip,
+    ACol,
+    ChartCard,
+    MiniArea,
+    MiniBar,
+    MiniProgress,
+    RankList,
+    Bar,
+    Trend,
+    LineChartMultid,
+    HeadInfo
+  },
+
+  data: function() {
+    return {
+      title: '工作台',
+      loginfo: {},
+      barData,
+      visitInfo: [],
+      visitFields: ['ip', 'visit'],
+      loading: false,
+      rankList: [],
+      dataCount: {},
+      a: '',
+      columns,
+      dataList: [],
+      data: [
+        {
+          title: '人员1'
+        },
+        {
+          title: '人员2'
+        },
+        {
+          title: '人员3'
+        }
+      ],
+      visible: false,
+      visibleVideo: false
+    }
+  },
+  methods: {
+    ...mapGetters(['nickname', 'avatar', 'userInfo']),
+    getAll(item) {
+      this[item] = true
+    },
+    handleOk(item) {
+      this[item] = false
+    },
+    handleCancel(item) {
+      console.log('Clicked cancel button')
+      this[item] = false
+    }
+  },
+  created() {
+    getAction('/ctop/materialInfo/report', { userId: this.userInfo().id }).then(res => {
+      this.dataCount = res
+    })
+    //   /ctop/materialInfo/report
+  }
+}
+</script>

+ 2 - 2
src/views/modules/advertiser/modules/ProjectModal.vue

@@ -157,7 +157,7 @@ export default {
       this.model.maxBid = this.model.maxBid ? this.model.maxBid / 1000 : 0
       this.visible = true
       this.$nextTick(() => {
-        this.form.setFieldsValue(pick(this.model, 'projectName', 'advertiserId', 'responsibleName', 'maxBid'))
+        this.form.setFieldsValue(pick(this.model, 'projectName', 'advertiserId', 'responsibleName', 'maxBid', 'userId'))
         this.resId = record.responsibleId
         getAction('/sys/user/getAllUserList', '').then(res => {
           console.log(res)
@@ -194,7 +194,7 @@ export default {
           formData.advertiserId = data.key
           formData.advertiserName = data.label
           formData.responsibleId = that.resId
-          formData.userId = that.userInfo().id
+          formData.userId = formData.userId ? formData.userId : that.userInfo().id
           httpAction(httpurl, formData, method)
             .then(res => {
               if (res.success) {

+ 0 - 38
src/views/modules/kuaishouapp/creativeCreate.vue

@@ -642,47 +642,9 @@ export default {
       console.log(file)
       var bmf = new BMF()
       var that = this
-      return new Promise(function(resolve, reject) {
-        bmf.md5(file[0], (err, md5) => {
-          console.log(md5, 123123123)
-          that.md5 = md5
-          fileCheck({ code: md5 }).then(res => {
-            console.log(res)
-            if (res.code == 0) {
-              if (file[0].type == 'image/jpeg' || file[0].type == 'jpg' || file[0].type == 'image/png') {
-                if (that.tiepianImageLocalUpload) {
-                  that.tiepianImageLocalUploadList.push(res.url)
-                } else if (that.showImageUpload) {
-                  that.localImageUrl.push(res.url)
-                } else if (that.showLocalImageUpload) {
-                  that.imageUrl.push(res.url)
-                }
-              } else {
-                if (that.localUpload) {
-                  that.localUrl = res.url
-                } else if (that.tiepianVideoLocalUpload) {
-                  that.tiepianVideoLocalUploadList.push(res.url)
-                }
-              }
-              reject()
-            } else {
-              resolve()
-            }
-          })
-        })
-      })
     },
     overUpload(url) {
       console.log(url, this.md5)
-      if (url == Array) {
-        fileInsert({ code: this.md5, url: url[0] }).then(res => {
-          console.log(res)
-        })
-      } else {
-        fileInsert({ code: this.md5, url: url }).then(res => {
-          console.log(res)
-        })
-      }
     },
     handleOk(e) {
       console.log(e)

+ 3 - 22
src/views/modules/kuaishouapp/uploadVideo.vue

@@ -211,31 +211,12 @@ export default {
       console.log(file)
       var bmf = new BMF()
       var that = this
-      return new Promise(function(resolve, reject) {
-        bmf.md5(file[0], (err, md5) => {
-          console.log(md5, 123123123)
-          that.md5 = md5
-          fileCheck({ code: md5 }).then(res => {
-            console.log(res)
-            if (res.code == 0) {
-              if (file[0].type == 'image/jpeg' || file[0].type == 'jpg' || file[0].type == 'image/png') {
-                that.localImageUrl.push(res.url)
-              } else {
-                that.localUrl.push(res.url)
-              }
-              reject()
-            } else {
-              resolve()
-            }
-          })
-        })
-      })
     },
     overUpload(url) {
       // console.log(url,this.md5)
-      fileInsert({ code: this.md5, url: url[0] }).then(res => {
-        console.log(res)
-      })
+    //   fileInsert({ code: this.md5, url: url[0] }).then(res => {
+    //     console.log(res)
+    //   })
     }
   },
   created: function() {

+ 5 - 2
src/views/modules/material/accountCheck.vue

@@ -1,11 +1,14 @@
 <style>
+.checked {
+  width: 100%;
+}
 .checked .ant-checkbox-wrapper {
   width: 20%;
 }
 </style>
 <template>
   <div>
-    <a-modal title="列表项筛选" v-model="showEdit" @ok="handleOk" @cancel="close" width="60%">
+    <a-modal title="账户选择" v-model="showEdit" @ok="handleOk" @cancel="close" width="60%">
       <a-checkbox :indeterminate="indeterminate" @change="onCheckAllChange" :checked="checkAll">全选</a-checkbox>
       <br />
       <a-checkbox-group :options="showList" v-model="dataValue" class="checked" @change="onChange" />
@@ -35,7 +38,7 @@ export default {
     handleOk(e) {
       console.log(e)
       this.showEdit = false
-      this.$emit("synchro",this.dataValue)
+      this.$emit('synchro', this.dataValue)
     },
     close() {
       this.showEdit = false

+ 77 - 0
src/views/modules/material/checkMatemal.vue

@@ -0,0 +1,77 @@
+<style lang="scss" scoped>
+.actor-photo-list {
+  display: flex;
+  padding-left: 0;
+  li {
+    width: 25%;
+    margin: 10px;
+    position: relative;
+    height: 250px;
+    border: 1px solid #f2f2f2;
+    img,
+    video {
+      width: 100%;
+      margin-top: auto;
+      margin-bottom: auto;
+      top: 0;
+      bottom: 0;
+      position: absolute;
+      max-height: 250px;
+    }
+  }
+}
+</style>
+<template>
+  <a-model title="选择素材" v-model="visibleMatemal" @ok="handleOk" @cancel="close">
+    <div>
+      <ul class="actor-photo-list">
+        <li v-for="(item, index) of photoList" :key="index">
+          <video :src="item.url" />
+        </li>
+      </ul>
+    </div>
+    <div style="text-align:right">
+      <a-pagination showQuickJumper :total="total" @change="pageChange" :pageSize.sync="pageSize" />
+    </div>
+  </a-model>
+</template>
+
+<script>
+import { getAction, postAction, postFile } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import { mapGetters } from 'vuex'
+export default {
+  name: 'check-matemal',
+  mixins: [JeecgListMixin],
+  components: {
+    JEllipsis,
+    UploadToAli,
+    accountCheck
+  },
+
+  data() {
+    return {
+      url: {
+        list: '/ctop/materialInfo/list'
+      },
+      visibleMatemal: false,
+      dataSource: []
+    }
+  },
+  watch: {},
+  methods: {
+    showCheck(typeName) {
+      this.visibleMatemal = true
+      this.queryParam.userId = this.userInfo().id
+      this.queryParam.type = typeName
+      this.loadData()
+    },
+    ...mapGetters(['nickname', 'avatar', 'userInfo']),
+    handleOk() {},
+    close() {}
+  }
+}
+</script>
+<style scoped>
+@import '~@assets/less/common.less';
+</style>

+ 122 - 57
src/views/modules/material/fragmentMatemal.vue

@@ -136,6 +136,27 @@
 a {
   font-size: 14px;
 }
+.actor-photo-list {
+  display: flex;
+  padding-left: 0;
+  li {
+    width: 25%;
+    margin: 10px;
+    position: relative;
+    height: 250px;
+    border: 1px solid #f2f2f2;
+    img,
+    video {
+      width: 100%;
+      margin-top: auto;
+      margin-bottom: auto;
+      top: 0;
+      bottom: 0;
+      position: absolute;
+      max-height: 250px;
+    }
+  }
+}
 </style>
 <template>
   <a-card :bordered="false">
@@ -202,68 +223,86 @@ a {
 
     <a-tabs @change="callbackTwo" v-model="active" type="card" id="material-card">
       <a-tab-pane :tab="item.tab" v-for="item of examinelList" :key="item.value">
-        <div v-if="dataSource.length > 0">
-          <a-checkbox-group @change="onChangeCheck" v-model="checkArr" class="home-card">
-            <div class="home-item" v-for="(items, index) in dataSource" :key="index" @click="showDetail(items)">
-              <div class="home-right">
-                <a-badge
-                  v-if="active == 'VIDEO_PART'"
-                  :count="checkArr.indexOf(items.id) > -1 ? checkArr.indexOf(items.id) + 1 : 0"
-                  :numberStyle="{ backgroundColor: '#52c41a' }"
-                  style="width:100%"
-                >
+        <div v-if="item.value != 'join' && item.value != 'success'">
+          <div v-if="dataSource.length > 0">
+            <a-checkbox-group @change="onChangeCheck" v-model="checkArr" class="home-card">
+              <div class="home-item" v-for="(items, index) in dataSource" :key="index" @click="showDetail(items)">
+                <div class="home-right">
+                  <a-badge
+                    v-if="active == 'VIDEO_PART'"
+                    :count="checkArr.indexOf(items.id) > -1 ? checkArr.indexOf(items.id) + 1 : 0"
+                    :numberStyle="{ backgroundColor: '#52c41a' }"
+                    style="width:100%"
+                  >
+                    <span
+                      style="color: #999; fontSize: 16px;padding-bottom:10px;display:block;width:100%;overflow: hidden;text-overflow: ellipsis;"
+                    >
+                      {{ items.materialName }}
+                    </span>
+                  </a-badge>
                   <span
+                    v-else
                     style="color: #999; fontSize: 16px;padding-bottom:10px;display:block;width:100%;overflow: hidden;text-overflow: ellipsis;"
                   >
                     {{ items.materialName }}
                   </span>
-                </a-badge>
-                <span
-                  v-else
-                  style="color: #999; fontSize: 16px;padding-bottom:10px;display:block;width:100%;overflow: hidden;text-overflow: ellipsis;"
-                >
-                  {{ items.materialName }}
-                </span>
-                <div style="display:flex;justify-content:center;width:100%;height:200px;position:relative">
-                  <video
-                    :src="items.url"
-                    @canplay="a(items)"
-                    style="height:200px;max-width:100%;position:absolute;z-index:10;"
-                  />
-                  <img
-                    src="./timg.gif"
-                    v-if="!items.showVideo"
-                    alt=""
-                    style="height:200px;max-width:100%;position:absolute;z-index:11;"
-                    @click.stop
-                  />
-                </div>
+                  <div style="display:flex;justify-content:center;width:100%;height:200px;position:relative">
+                    <video
+                      :src="items.url"
+                      @canplay="a(items)"
+                      style="height:200px;max-width:100%;position:absolute;z-index:10;"
+                    />
+                    <img
+                      src="./timg.gif"
+                      v-if="!items.showVideo"
+                      alt=""
+                      style="height:200px;max-width:100%;position:absolute;z-index:11;"
+                      @click.stop
+                    />
+                  </div>
 
-                <!-- <div v-if="active == '2'" class="bh">驳回原因:{{ items.refuseReason }}</div> -->
-                <span style="color: black; fontSize: 16px;padding-top:10px;display:block;width:100%" @click.stop>
-                  {{ items.createTime | getDate }}
-                  <a-checkbox :value="items.id" style="float:right"></a-checkbox
-                ></span>
+                  <!-- <div v-if="active == '2'" class="bh">驳回原因:{{ items.refuseReason }}</div> -->
+                  <span style="color: black; fontSize: 16px;padding-top:10px;display:block;width:100%" @click.stop>
+                    {{ items.createTime | getDate }}
+                    <a-checkbox :value="items.id" style="float:right"></a-checkbox
+                  ></span>
+                </div>
               </div>
-            </div>
-          </a-checkbox-group>
-          <a-pagination
-            size="small"
-            :showTotal="ipagination.showTotal"
-            style="float:right"
-            v-if="dataSource.length > 0"
-            showQuickJumper
-            :pageSize.sync="ipagination.pageSize"
-            :total="ipagination.total"
-            v-model="ipagination.current"
-            @change="getDataSource"
-          />
+            </a-checkbox-group>
+            <a-pagination
+              size="small"
+              :showTotal="ipagination.showTotal"
+              style="float:right"
+              v-if="dataSource.length > 0"
+              showQuickJumper
+              :pageSize.sync="ipagination.pageSize"
+              :total="ipagination.total"
+              v-model="ipagination.current"
+              @change="getDataSource"
+            />
+          </div>
+          <div v-else style="width:100%;height:400px;display:flex;justify-content: center;align-items: center;">
+            <img
+              src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1575627350102&di=02972956f2243933bffc0d85099adbfe&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D1095310825%2C1528244349%26fm%3D214%26gp%3D0.jpg"
+              alt=""
+            />
+          </div>
         </div>
-        <div v-else style="width:100%;height:400px;display:flex;justify-content: center;align-items: center;">
-          <img
-            src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1575627350102&di=02972956f2243933bffc0d85099adbfe&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D1095310825%2C1528244349%26fm%3D214%26gp%3D0.jpg"
-            alt=""
-          />
+        <div v-else>
+          <a-table :columns="columns" :dataSource="dataList" :pagination="false">
+            <span slot="VIDEO_HEAD" slot-scope="text">
+              <div v-if="text != ''"></div>
+              <a-button @click="dirVideoGet" type="primary" icon="plus" v-else>选择素材</a-button>
+            </span>
+            <span slot="VIDEO_PART" slot-scope="text">
+              <div v-if="text.length > 0"></div>
+              <a-button @click="dirVideoGet" type="primary" icon="plus" v-else>选择素材</a-button>
+            </span>
+            <span slot="VIDEO_TAIL" slot-scope="text">
+              <div v-if="text != ''"></div>
+              <a-button @click="dirVideoGet" type="primary" icon="plus" v-else>选择素材</a-button>
+            </span>
+          </a-table>
         </div>
       </a-tab-pane>
     </a-tabs>
@@ -343,7 +382,7 @@ a {
             :value="inputValue"
             @change="handleInputChange"
             @blur="handleInputConfirm"
-            @keyup.enter="handleInputConfirm"
+            @keyup.enter="$event.target.blur"
           />
           <a-tag v-else @click="showInput" style="background: #fff; borderStyle: dashed;">
             <a-icon type="plus" /> New Tag
@@ -427,6 +466,7 @@ a {
       </div>
     </a-modal>
 
+
     <account-check ref="check" @synchro="implement"></account-check>
   </a-card>
 </template>
@@ -455,6 +495,30 @@ export default {
 
   data() {
     return {
+      columns: [
+        {
+          title: '片头',
+          dataIndex: 'VIDEO_HEAD',
+          key: 1,
+          scopedSlots: { customRender: 'VIDEO_HEAD' },
+          align: 'center'
+        },
+        {
+          title: '内容',
+          dataIndex: 'VIDEO_PART',
+          key: 2,
+          scopedSlots: { customRender: 'VIDEO_PART' },
+          align: 'center'
+        },
+        {
+          title: '片尾',
+          dataIndex: 'VIDEO_TAIL',
+          key: 3,
+          scopedSlots: { customRender: 'VIDEO_TAIL' },
+          align: 'center'
+        }
+      ],
+      dataList: [{ VIDEO_HEAD: '', VIDEO_PART: [], VIDEO_TAIL: '' }],
       inputVisible: false,
       inputValue: '',
       labelCol: {
@@ -482,10 +546,11 @@ export default {
       examinelList: [
         { value: 'VIDEO_HEAD', tab: '片头' },
         { value: 'VIDEO_PART', tab: '片段' },
-        { value: 'VIDEO_TAIL', tab: '片尾' }
+        { value: 'VIDEO_TAIL', tab: '片尾' },
+        { value: 'join', tab: '视频拼接' },
+        { value: 'success', tab: '成品' }
       ],
       // 表头
-      columns: [],
       urlList: { url: '', md5: '', name: '' },
       url: {
         list: '/ctop/materialInfo/list'

+ 2 - 10
src/views/modules/material/materialList.vue

@@ -688,7 +688,7 @@ export default {
     }
   },
   created() {
-    this.queryParam.type = 'image'
+    this.queryParam.type = 'IMAGE'
     this.queryParam.userId = this.userInfo().id
     this.queryParam.status = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
     this.active = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
@@ -968,6 +968,7 @@ export default {
           params.userId = this.userInfo().id
           params.projectId = values.projectId
           params.materialDescribe = values.materialDescribe
+          params.type = 'IMAGE'
           params.ascription =
             this.activeKey == 'image'
               ? roleCode
@@ -1014,15 +1015,6 @@ export default {
       //   this.tags = []
     },
     onChange(date, dateString) {},
-    callback(key) {
-      this.checkAll = false
-      this.checkArr = []
-      if (this.form.getFieldValue('projectId')) {
-        this.form.setFieldsValue({ projectId: '' })
-      }
-      this.queryParam.type = key
-      this.loadData()
-    },
     callbackTwo(key) {
       this.checkAll = false
       this.checkArr = []

+ 4 - 12
src/views/modules/material/videoMaterial.vue

@@ -407,7 +407,7 @@ a {
                 { rules: [{ required: true, message: '请选择策划!' }] }
               ]"
             >
-              <a-select-option :value="item.userId" v-for="item of ascription.clipId" :key="item.userId">
+              <a-select-option :value="item.userId" v-for="item of ascription.planId" :key="item.userId">
                 {{ item.userName }}
               </a-select-option>
             </a-select>
@@ -738,7 +738,7 @@ export default {
     }
   },
   created() {
-    this.queryParam.type = 'video'
+    this.queryParam.type = 'VIDEO'
     this.queryParam.userId = this.userInfo().id
     this.queryParam.status = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
     this.active = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
@@ -752,7 +752,7 @@ export default {
   },
   watch: {
     $route: function(n, o) {
-      if (n.path == '/modules/material/materialList') {
+      if (n.path == '/modules/material/videoMaterial') {
         this.queryParam.userId = this.userInfo().id
         this.queryParam.status = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
         this.active = localStorage.getItem('key') ? localStorage.getItem('key') : '0'
@@ -999,6 +999,7 @@ export default {
           params.userId = this.userInfo().id
           params.projectId = values.projectId
           params.materialDescribe = values.materialDescribe
+          params.type = 'VIDEO'
           params.ascription =
             this.activeKey == 'image'
               ? roleCode
@@ -1045,15 +1046,6 @@ export default {
       //   this.tags = []
     },
     onChange(date, dateString) {},
-    callback(key) {
-      this.checkAll = false
-      this.checkArr = []
-      if (this.form.getFieldValue('projectId')) {
-        this.form.setFieldsValue({ projectId: '' })
-      }
-      this.queryParam.type = key
-      this.loadData()
-    },
     callbackTwo(key) {
       this.checkAll = false
       this.checkArr = []