Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/modules/BatchCreate/TouTiaoBatch.vue
#	vue.config.js
syh 5 years ago
parent
commit
d77c010f4f
29 changed files with 2505 additions and 1851 deletions
  1. 15 1
      debug.log
  2. 57 80
      src/components/ctop/ActorModal.vue
  3. 9 5
      src/components/ctop/vm-card.vue
  4. 78 8
      src/components/uploadFile.vue
  5. 21 7
      src/views/modules/BatchCreate/MultiCheckBox.vue
  6. 68 14
      src/views/modules/BatchCreate/TouTiaoBatch.vue
  7. 246 49
      src/views/modules/BatchCreate/linkMultiSelect.vue
  8. 4 4
      src/views/modules/BatchCreate/newDirectedPackage.vue
  9. 1 1
      src/views/modules/Statistics/materialRank.vue
  10. 1 1
      src/views/modules/Statistics/performanceRelated/performanceRelated.vue
  11. 1 1
      src/views/modules/Statistics/videoStatics/vDay.vue
  12. 1 1
      src/views/modules/Statistics/videoStatics/vMonth.vue
  13. 1 1
      src/views/modules/Statistics/videoStatics/vSummary.vue
  14. 1 1
      src/views/modules/Statistics/videoStatics/vWeek.vue
  15. 10 5
      src/views/modules/actor/modules/ActorModal.vue
  16. 1 1
      src/views/modules/kuaishouapp/account/editGroup.vue
  17. 82 79
      src/views/modules/kuaishouapp/account/stepForm/Step3.vue
  18. 1 1
      src/views/modules/material/excellentMaterial.vue
  19. 7 4
      src/views/modules/material/fragmentMatemal.vue
  20. 17 20
      src/views/modules/material/materialList.vue
  21. 1828 1539
      src/views/modules/material/videoMaterial.vue
  22. 6 2
      src/views/modules/onlineTraining/onlineTrainingList.vue
  23. 7 3
      src/views/modules/prop/modules/ActorModal.vue
  24. 9 5
      src/views/modules/yard/YardList.vue
  25. 10 5
      src/views/modules/yard/modules/YardModal.vue
  26. 9 5
      src/views/modules/yard/modules/yardDetail.vue
  27. 1 1
      src/views/ureport/UReportFileBindUserList.vue
  28. 1 1
      src/views/ureport/UReportFileList.vue
  29. 12 6
      vue.config.js

+ 15 - 1
debug.log

@@ -3,6 +3,20 @@
 [0529/112937.608:ERROR:file_io.cc(89)] ReadExactly: expected 36, observed 0
 [0619/110835.729:ERROR:file_io.cc(89)] ReadExactly: expected 36, observed 0
 [0701/153438.192:ERROR:file_io.cc(89)] ReadExactly: expected 36, observed 0
-[0708/055752.148:ERROR:process_info.cc(375)] NtQuerySystemInformation SystemExtendedHandleInformation: {没有足够配额} 没有足够的虚拟内存或分页文件配额以完成指定的操作。 (0xc0000017)
+[0708/055752.148:ERROR:process_info.cc(375)] NtQuerySystemInformation SystemExtendedHandleInformation: {没锟斤拷锟姐够锟斤拷锟絵 没锟斤拷锟姐够锟斤拷锟斤拷锟斤拷锟节达拷锟斤拷页锟侥硷拷锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷锟侥诧拷锟斤拷锟斤拷 (0xc0000017)
 [0708/055807.088:ERROR:process_info.cc(359)] UncheckedAllocate
 [0713/163350.208:ERROR:file_io.cc(89)] ReadExactly: expected 36, observed 0
+[0716/000711.554:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.558:ERROR:exception_snapshot_win.cc(98)] thread ID 12948 not found in process
+[0716/000711.559:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.560:ERROR:exception_snapshot_win.cc(98)] thread ID 15736 not found in process
+[0716/000711.577:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.577:ERROR:exception_snapshot_win.cc(98)] thread ID 2072 not found in process
+[0716/000711.592:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.593:ERROR:exception_snapshot_win.cc(98)] thread ID 12744 not found in process
+[0716/000711.593:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.593:ERROR:exception_snapshot_win.cc(98)] thread ID 17220 not found in process
+[0716/000711.615:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.615:ERROR:exception_snapshot_win.cc(98)] thread ID 18896 not found in process
+[0716/000711.616:ERROR:process_reader_win.cc(123)] NtOpenThread: {无法访问} 过程已请求访问一对象,但未给访问权限。 (0xc0000022)
+[0716/000711.617:ERROR:exception_snapshot_win.cc(98)] thread ID 15368 not found in process

+ 57 - 80
src/components/ctop/ActorModal.vue

@@ -1,27 +1,14 @@
 <template>
-  <a-modal
-    :title="title"
-    :width="800"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="关闭">
+  <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk"
+    @cancel="handleCancel" cancelText="关闭">
     <a-spin :spinning="confirmLoading">
       <a-form :form="form">
 
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="演员姓名">
-          <a-input placeholder="请输入演员姓名" v-decorator="['name', validatorRules.name ]"/>
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="演员姓名">
+          <a-input placeholder="请输入演员姓名" v-decorator="['name', validatorRules.name ]" />
         </a-form-item>
-        <a-form-item
-          label="封面"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-        >
-          <upload-to-ali
+        <a-form-item label="封面" :labelCol="labelCol" :wrapperCol="wrapperCol">
+          <!-- <upload-to-ali
             v-model="coverUrl"
             :customDomain="customDomain"
             preview
@@ -32,53 +19,25 @@
             :size="1024000"
             :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
+
+          <uploadFile :value.sync="coverUrl" :fileCount="1" uploadType="image" :multiple="false" />
         </a-form-item>
-        <a-form-item
-          label="照片"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          v-if="!model.name"
-        >
-          <upload-to-ali
-            v-model="imageUrl"
-            :customDomain="customDomain"
-            multiple
-            preview
-            :region="region"
-            :bucket="bucket"
-            :accept="acceptImage"
-            :max="10"
-            :size="1024000"
-            :accessKeyId="accessKeyId"
-            :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+        <a-form-item label="照片" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="!model.name">
+          <uploadFile :value.sync="imageUrl" :fileCount="10" uploadType="image"  />
+          <!-- <upload-to-ali v-model="imageUrl" :customDomain="customDomain" multiple preview :region="region"
+            :bucket="bucket" :accept="acceptImage" :max="10" :size="1024000" :accessKeyId="accessKeyId"
+            :accessKeySecret="accessKeySecret"></upload-to-ali> -->
         </a-form-item>
-        <a-form-item
-          label="视频作品"
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          v-if="!model.name"
-        >
-          <upload-to-ali
-            v-model="videoUrl"
-            :customDomain="customDomain"
-            multiple
-            preview
-            :region="region"
-            :bucket="bucket"
-            :accept="acceptVideo"
-            :max="10"
-            :size="1024000"
-            :accessKeyId="accessKeyId"
-            :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+        <a-form-item label="视频作品" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="!model.name">
+          <uploadFile :value.sync="videoUrl" :fileCount="1" uploadType="video" />
+          <!-- <upload-to-ali v-model="videoUrl" :customDomain="customDomain" multiple preview :region="region"
+            :bucket="bucket" :accept="acceptVideo" :max="10" :size="1024000" :accessKeyId="accessKeyId"
+            :accessKeySecret="accessKeySecret"></upload-to-ali> -->
         </a-form-item>
         <a-form-item label="生日" :labelCol="labelCol" :wrapperCol="wrapperCol">
-          <a-date-picker
-            style="width: 100%"
-            placeholder="请选择生日"
-            v-decorator="['birthday', {initialValue:!model.birthday?null:moment(model.birthday,dateFormat)}]"/>
+          <a-date-picker style="width: 100%" placeholder="请选择生日"
+            v-decorator="['birthday', {initialValue:!model.birthday?null:moment(model.birthday,dateFormat)}]" />
         </a-form-item>
 
         <a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -87,11 +46,8 @@
             <a-select-option :value="2">女</a-select-option>
           </a-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="特长">
-          <a-input placeholder="请输入特长" v-decorator="['speciality']"/>
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="特长">
+          <a-input placeholder="请输入特长" v-decorator="['speciality']" />
         </a-form-item>
 
 
@@ -101,7 +57,10 @@
 </template>
 
 <script>
-  import {httpAction} from '@/api/manage'
+  import uploadFile from '@/components/uploadFile.vue'
+  import {
+    httpAction
+  } from '@/api/manage'
   import pick from 'lodash.pick'
   import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from 'moment'
@@ -110,7 +69,8 @@
     name: "ActorModal",
     components: {
       UploadToAli,
-      JTreeSelect
+      JTreeSelect,
+      uploadFile
     },
     data() {
       return {
@@ -119,7 +79,7 @@
         model: {},
         videoUrl: [],
         imageUrl: [],
-        coverUrl:"",
+        coverUrl: "",
         customDomain: '',
         region: 'oss-cn-beijing',
         bucket: 'ctop-media',
@@ -129,18 +89,31 @@
         accessKeySecret: '1rkPz7JNoXk8sJevPaeYHWqfkQXBGh',
         dateFormat: "YYYY-MM-DD",
         labelCol: {
-          xs: {span: 24},
-          sm: {span: 5},
+          xs: {
+            span: 24
+          },
+          sm: {
+            span: 5
+          },
         },
         wrapperCol: {
-          xs: {span: 24},
-          sm: {span: 16},
+          xs: {
+            span: 24
+          },
+          sm: {
+            span: 16
+          },
         },
 
         confirmLoading: false,
         form: this.$form.createForm(this),
         validatorRules: {
-          name: {rules: [{required: true, message: '请输入演员姓名!'}]},
+          name: {
+            rules: [{
+              required: true,
+              message: '请输入演员姓名!'
+            }]
+          },
           // sex:{initialValue:((!this.model.sex)?"": (this.model.sex+""))},
         },
         url: {
@@ -149,9 +122,13 @@
         },
       }
     },
-    created() {
-    },
+    created() {},
     methods: {
+      fileWater() {
+        return new Promise(function (resolve, reject) {
+
+        })
+      },
       add() {
         this.edit({});
       },
@@ -161,9 +138,9 @@
         that.form.resetFields();
         that.model = Object.assign({}, record);
         that.visible = true;
-        that.coverUrl = record.coverUrl
-        that.imageUrl = record.imageUrl
-        that.videoUrl = record.videoUrl
+        // that.coverUrl = ""
+        // that.imageUrl = ""
+        // that.videoUrl = ""
         that.$nextTick(() => {
           that.form.setFieldsValue(pick(this.model, 'name', 'sex', 'speciality'))
           //时间格式化

+ 9 - 5
src/components/ctop/vm-card.vue

@@ -201,7 +201,8 @@ li {
       @ok="handleOk('photo')"
       @cancel="handleCancel('photo')"
     >
-      <upload-to-ali
+    <uploadFile :value.sync="imageUrl" :fileCount="1" uploadType="image" :multiple="false" />
+      <!-- <upload-to-ali
         style="margin:10px"
         v-model="imageUrl"
         :customDomain="customDomain"
@@ -213,7 +214,7 @@ li {
         :size="1024000"
         :accessKeyId="accessKeyId"
         :accessKeySecret="accessKeySecret"
-      ></upload-to-ali>
+      ></upload-to-ali> -->
     </a-modal>
     <!-- 新增作品 -->
     <a-modal
@@ -222,7 +223,8 @@ li {
       @ok="handleOk('video')"
       @cancel="handleCancel('video')"
     >
-      <upload-to-ali
+    <uploadFile :value.sync="videoUrl" :fileCount="1" uploadType="video" :multiple="false" />
+      <!-- <upload-to-ali
         style="margin:10px"
         v-model="videoUrl"
         :customDomain="customDomain"
@@ -234,7 +236,7 @@ li {
         :size="1024000"
         :accessKeyId="accessKeyId"
         :accessKeySecret="accessKeySecret"
-      ></upload-to-ali>
+      ></upload-to-ali> -->
     </a-modal>
     <actor-modal ref="modalForm" @ok="modalFormOk" @updateList="updateList" @close="closeVideo"></actor-modal>
   </div>
@@ -255,6 +257,7 @@ import {
 } from '@/api/actor'
 import actorModal from './ActorModal'
 import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import { closeAllVideoFun } from '@/utils/videoControl'
 export default {
@@ -262,7 +265,8 @@ export default {
   mixins: [JeecgListMixin],
   components: {
     actorModal,
-    UploadToAli
+    UploadToAli,
+    uploadFile
   },
   props: {
     type: {

+ 78 - 8
src/components/uploadFile.vue

@@ -7,11 +7,11 @@
     <a-upload name="file" :multiple="multiple" list-type="picture-card" class="avatar-uploader"
       action="https://media-1301855440.cos.ap-chongqing.myqcloud.com/" :before-upload="beforeUpload"
       @change="handleChange" :accept="uploadType+'/*'" :file-list="fileList" :remove="removeFile"
-      @preview="handlePreview" :disabled="loadingElse">
+      @preview="handlePreview" :disabled="loadingElse||disabled">
       <div v-if="uploadType=='image'?fileList.length < fileCount:fileList.length<1">
         <a-progress v-if='loadingElse' :percent="percent" :show-info="false" />
         <div class="ant-upload-text">
-          Upload
+          点击上传
         </div>
       </div>
     </a-upload>
@@ -76,11 +76,21 @@
         default (file) {
           return Promise.resolve()
         }
+      },
+      disabled: {
+        type: Boolean,
+        default () {
+          return false
+        }
+      },
+      value: {
+        type: [String, Array],
+        required: true
       }
     },
     data() {
       return {
-        fileList: [], //链接集合
+        fileList: [],
         loadingElse: false,
         imageUrl: '',
         percent: 0,
@@ -90,8 +100,48 @@
     },
     filters: {},
     computed: {},
-    created() {},
-    watch: {},
+    mounted() {
+
+    },
+    watch: {
+      //    fileListAll
+      value: {
+        immediate: true,
+        handler(n, o) {
+          if (this.fileList.length == 0) {
+            if (typeof n == 'object') {
+              this.fileList = n.map((item, index) => {
+                return {
+                  uid: index + 1,
+                  name: index + 1,
+                  status: 'done',
+                  url: item,
+                }
+              })
+            } else {
+              if (n == '') {
+                this.fileList = []
+              } else {
+                this.fileList = [{
+                  uid: 1,
+                  name: 1,
+                  status: 'done',
+                  url: n,
+                }]
+
+              }
+
+            }
+          } else {
+            if (n.length == 0 || n == '') {
+              this.clearAll()
+            }
+          }
+
+        },
+        deep: true
+      }
+    },
     methods: {
       handleCancel() {
         closeAllVideoFun()
@@ -129,12 +179,17 @@
         this.checkFile(file).then(res => {
           this.cosUpload(file)
 
+        }).catch(() => {
+          this.loadingElse = false
         })
         return new Promise(function (resolve, reject) {
           reject()
         })
 
       },
+      clearAll() {
+        this.fileList = []
+      },
       cosUpload(file) {
         var that = this
         let date = new Date()
@@ -172,16 +227,31 @@
           that.loadingElse = false
           if (that.fileList.length < that.fileCount) {
             that.fileList.push({
-              uid: i++,
+              uid: file.name,
               name: file.name,
               status: 'done',
-              url: 'http://' + data.Location,
+              url: '//' + data.Location,
             })
+
+            // that.$emit('overUpload', that.fileList.map(item => {
+            //                 return item.url
+            //               }))
             that.$emit('overUpload', that.fileList)
+
+            if (that.multiple) {
+              that.$emit('update:value', that.fileList.map(item => {
+                return item.url
+              }))
+            } else {
+              that.$emit('update:value', that.fileList.map(item => {
+                return item.url
+              })[0])
+            }
+
+
           } else {
             that.$message.error('上传已达上限' + that.fileCount + '张')
           }
-
         });
       }
     }

+ 21 - 7
src/views/modules/BatchCreate/MultiCheckBox.vue

@@ -95,6 +95,7 @@ import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
                     let num = this.checkedList.indexOf(element.value)
                     if (num > -1) {
                         this.checkedList.splice(num, 1)
+
                     }
                     let n=this.labelList.indexOf(element.name)
                     if (n > -1) {
@@ -103,10 +104,17 @@ import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
                 }
             });
            
-            console.log(this.checkedList.length,this.plainOptions.length)
-            console.log(this.checkedList,this.plainOptions.length)
+            // console.log(this.checkedList.length,this.plainOptions.length)
+            // console.log(this.checkedList,this.plainOptions.length)
+
             this.indeterminate = !!this.checkedList.length && this.checkedList.length < this.plainOptions.length
             this.checkAll = this.checkedList.length === this.plainOptions.length && this.plainOptions.length!=0
+
+            this.$emit('getCheckedList',{
+              curLayerNum:this.curLayerNum,
+              checkList:this.checkedList,
+              currentList:this.curLayerNum>1? this.listArr : []
+            })
           },
             deep: true
       },
@@ -128,9 +136,9 @@ import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
             })
           } else if (n == false) {
             this.checkAll = false
-            this.listArr.forEach((item, index) => {
-              item.checked = n
-            })
+            // this.listArr.forEach((item, index) => {
+            //   item.checked = n
+            // })
             this.checkedList = []
           }
         },
@@ -181,16 +189,22 @@ import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
         if (this.checkedList.length) {
           this.listArr.forEach(item => {
             this.$set(item, 'checked', true)
+            this.$set(item, 'indeterminates', false)
           })
         } else {
           this.listArr.forEach(item => {
             this.$set(item, 'checked', false)
+            this.$set(item, 'indeterminate', false)
           })
         }
       
 
         this.listItemClick(event,{
-            name:'全选',value:'all',checked:e.target.checked,indeterminates:false
+            name:'全选',
+            value:'all',
+            checked:e.target.checked,
+            indeterminates:false,
+            parentCode:this.listArr[0].parentCode
         })
       },
       
@@ -203,7 +217,7 @@ import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
           curLayerNum:this.curLayerNum,
           checkList:this.checkedList,
           plainOptions:this.plainOptions,
-          labelList:this.labelList
+          
         })
       },
      

+ 68 - 14
src/views/modules/BatchCreate/TouTiaoBatch.vue

@@ -17,23 +17,31 @@
         </keep-alive>
         <div class="topOptions">
             <span class="OptinItem">
-                <a-select  style="width: 120px" @change="statusChange" placeholder="请选择状态">
-                    <a-select-option value="open" >
-                        开
+                <Treeselect :appId.sync="accountID" :multiple="false" request="2,4" ref="treeSelect" style="margin-bottom:8px " />
+            </span>
+            <span class="OptinItem">
+                <a-select  style="width: 120px" v-model="statusValue" @change="statusChange" placeholder="请选择状态">
+                    <a-select-option value=" " >
+                        不限
+                    </a-select-option>
+                    <a-select-option value="CAMPAIGN_STATUS_ENABLE" >
+                        启用
                     </a-select-option>
-                    <a-select-option value="close">
-                        关
+                    <a-select-option value="CAMPAIGN_STATUS_DISABLE" >
+                        暂停
+                    </a-select-option>
+                    <a-select-option value="CAMPAIGN_STATUS_DELETE">
+                        删除
                     </a-select-option>
                 </a-select>
             </span>
+
             <span class="OptinItem">
-                <a-input-search  placeholder="请选择媒体账户" style="width: 200px" v-model="account" />
-            </span>
-            <span class="OptinItem">
-                <a-date-picker @change="dateChange" />
+                <!-- <a-date-picker @change="dateChange" /> -->
+                 <a-range-picker v-model="dateValue" :disabled-date="disabledDate"  style="width: 250px;" format="YYYY-MM-DD" @change="dateChange" />
             </span>
             <span class="OptinItem">
-                <a-input-search placeholder="请输入ID或名称关键词" v-model="optionId" style="width: 200px" @search="onSearch" />
+                <a-input-search placeholder="请输入ID或名称关键词" v-model="optionId" style="width: 200px"  />
             </span>
             <span class="optionBtn">
                 <a-button type='primary' @click="search" class="searchBtn">查询</a-button>
@@ -105,6 +113,9 @@
                 :data-source="data"
                 :row-selection="rowSelection"
                 bordered
+                :pagination="ipagination"
+                :loading="loading"
+                @change="sort"
                 >
                     <template slot="name" slot-scope="text,record">
                         <editableCell :text="text" slotName='campaignName' @change="onCellChange(record.key, 'campaignName', $event)" />
@@ -197,7 +208,9 @@
 <script>
 import moment from 'moment';
 import { getAction, postAction, downFile, downFilePost } from '@/api/manage';
+import { JeecgListMixin } from '@/mixins/ipagination'
 import editableCell from './editableCell'
+import Treeselect from '@/views/modules/Statistics/components/Treeselect.vue'
 let typeValue='预算'
 let modifyTableCol=[
     {
@@ -424,12 +437,19 @@ const ideaColumns = [
 export default {
     components: {
         editableCell,
+        Treeselect,
     },
+     mixins: [JeecgListMixin],
     data() {
         return {
-            account:'',//媒体账号
+            moment,
+            loading:false,
+            accountID:'',
+            // account:'',//媒体账号
             optionId:'',//input输入的id或关键词
-            dateValue:'',//日期选择框选择的事件--我赋值的是dateString
+            statusValue:undefined,
+            dateValue:[],//日期选择框选择
+            dateString:[],//--我赋值的是dateString
             tabkey:'group',//tab选中的页
             selectDisable:true,
             optValue:'',//操作设置的值 删除 暂停 开启
@@ -515,6 +535,11 @@ export default {
         //日期改变
         dateChange(date, dateString) {
             console.log(date, dateString);
+            this.dateString=dateString;
+        },
+        disabledDate(current) {
+            // console.log(current)
+            return current && current > moment().subtract(1, 'day')
         },
         //输入框查询事件
         onSearch(value){
@@ -522,7 +547,31 @@ export default {
         },
         //查询按钮事件
         search(){
-
+            // console.log(this.accountID,this.dateString,this.statusValue,this.optionId);
+            this.refreshCampaignList({
+                accountId:this.accountID,
+                name:this.optionId,
+                status:this.statusValue,
+                startDate:this.dateString[0],
+                endDate:this.dateString[1],
+                pageNo:this.ipagination.current
+             })
+            // postAction('',{
+
+            // }).then((res)=>{
+            //     console.log(res)
+            // })
+        },
+        //点击分页
+        sort(pagination, filters, sorter, { currentDataSource }){
+            console.log(pagination, filters, sorter)
+            // if(sorter.order == 'ascend'){
+            //     this.HttpPost(sorter.columnKey+'+')
+            // }else if(sorter.order == 'descend'){
+            //     this.HttpPost(sorter.columnKey+'-')
+            // }
+            this.ipagination.current=pagination.current;
+            this.search()
         },
         //重置按钮事件
         reset(){
@@ -674,10 +723,14 @@ export default {
             console.log(this.copyNum,'---',this.copyGroup)
         },
         refreshCampaignList(params){
+            this.loading=true
           getAction(this.url.campaignList, params).then(res => {
             console.log(res);
             if (res.success) {
-              this.data = res.result.records;
+                this.ipagination.total = res.result.total
+                this.loading = false
+                this.data = res.result.records;
+
             } else {
               console.log(res.message);
             }
@@ -698,6 +751,7 @@ export default {
         console.log(this);
         this.data=data;
         let params = {}
+        // this.dateString=[moment().format("YYYY-MM-DD"),moment().format("YYYY-MM-DD")]
         //初始
         this.refreshCampaignList(params);
     },

+ 246 - 49
src/views/modules/BatchCreate/linkMultiSelect.vue

@@ -4,19 +4,19 @@
       <div class="bigBOX" ref="mycheckBox">
         <div class="big_item">
           <MultiCheckBox :title="title1" :listArr="listArr1" :curLayerNum="1" :parentChecked="false"
-            @getItemData="getItemData" />
+            @getItemData="getItemData" @getCheckedList='getCheckedList' />
         </div>
         <div class="big_item">
           <MultiCheckBox :title="title2" :listArr="listArr2" :curLayerNum="2"  :parentChecked="parentChecked1"
-            @getItemData="getItemData" v-if="listArr2.length>0" />
+            @getItemData="getItemData"  @getCheckedList='getCheckedList' v-if="listArr2.length>0" />
         </div>
         <div class="big_item">
           <MultiCheckBox :title="title3" :listArr="listArr3" :curLayerNum="3"  :parentChecked="parentChecked2"
-            @getItemData="getItemData" v-if="listArr3.length>0" />
+            @getItemData="getItemData"  @getCheckedList='getCheckedList' v-if="listArr3.length>0" />
         </div>
         <div class="big_item">
           <MultiCheckBox :title="title4" :listArr="listArr4" :curLayerNum="4"  :parentChecked="parentChecked3"
-            @getItemData="getItemData" v-if="listArr4.length>0" />
+            @getItemData="getItemData"  @getCheckedList='getCheckedList' v-if="listArr4.length>0" />
         </div>
       </div>
     </div>
@@ -25,7 +25,7 @@
       <div class="title">已选<a-button class="clear" type="link" @click="clearAll">清空</a-button></div>
       <div class="linkMulti_list">
           <div class="selectBox1">
-            <span class="selectListitem" v-for="(item,index) in checkedShowList" :key='index'>{{item}}<a-icon type="close" id="close" @click="deleteItem(item)" /></span>
+            <span class="selectListitem" v-for="(item,index) in checkedShowList" :key='index'>{{item.name}}<a-icon type="close" id="close" @click="deleteItem(item)" /></span>
           </div>
       </div>
     </div>
@@ -66,13 +66,14 @@
     methods: {
       getItemData(val) {
         this.$nextTick(() => {
-          this.clickKey = val.clickObj.dataset.layers
-          let index = parseInt(val.clickObj.dataset.layers) || val.curLayerNum
+          // this.clickKey = val.clickObj.dataset.layers
+          // let index = parseInt(val.clickObj.dataset.layers) || val.curLayerNum
+          let index = val.curLayerNum
           this.currentData = val.data
           
           let childrensArr = Array.from(this.$refs.mycheckBox.children)
           setTimeout(() => {
-            console.log(val, val.clickObj.dataset.layers)
+            console.log(val, index)
             // console.log(val.data.checked)
             if (index == 1 || this.clickKey == 1) {
                 this.$refs.mycheckBox.style.width = '100%'
@@ -85,10 +86,20 @@
                         if(res.success){
                             if(res.data.length>0){
                                 res.data.forEach((item,index)=>{
+                                    
                                     item.value=item.code
                                     item.checked=val.data.checked;
                                     item.indeterminates=false;
-                                
+                                })
+                                console.log(this.checkedShowList)
+                                this.checkedShowList.forEach((ele)=>{
+                                  res.data.forEach((item)=>{
+                                      if(ele.code==item.code){
+                                            item.checked=true;
+                                            return
+                                        }
+                                  })
+                                        
                                 })
                                 this.listArr3 = []
                                 this.title3 = ''
@@ -115,7 +126,8 @@
                     this.title2 = ''
                     this.resetStyle(childrensArr, index)
                 }  
-                 this.checkedShowList=val.checkList     
+                
+                //  this.checkedShowList=val.checkList     
             } else if (index == 2 || this.clickKey == 2) {
                 if(val.data.hasChild){
                     getAction(this.listUrl,{
@@ -131,6 +143,14 @@
                                     item.indeterminates=false;
                                 
                                 })
+                                this.checkedShowList.forEach((ele)=>{
+                                  res.data.forEach((item)=>{
+                                      if(ele.code==item.code){
+                                            item.checked=true;
+                                        }
+                                  })
+                                        
+                                })
                                 this.listArr4 = []
                                 this.title4 = ''
                                 
@@ -167,6 +187,7 @@
                 }
                 
             } else if (index == 3 || this.clickKey == 3) {
+
                 if(val.data.hasChild){
                     getAction(this.listUrl,{
                         parentCode:val.data.code,
@@ -181,6 +202,14 @@
                                     item.indeterminates=false;
                                 
                                 })
+                                this.checkedShowList.forEach((ele)=>{
+                                  res.data.forEach((item)=>{
+                                      if(ele.code==item.code){
+                                            item.checked=true;
+                                        }
+                                  })
+                                        
+                                })
                                 this.listArr4 = res.data
                                 this.title4 = val.data.name
                                 this.$refs.mycheckBox.style.width = '200%'
@@ -196,45 +225,36 @@
                     this.resetStyle(childrensArr, index)
                 }  
 
-             
+                let ind=-1;
                 if(this.listArr2){
-                    console.log(this.listArr2)
-                    let ind=-1;
-                    
+                    // console.log(this.listArr2)                                      
                     this.listArr2.forEach((ele,i)=>{                       
-                            if(ele.code==val.data.parentCode){
-                                ind=i
-                                // console.log(ind)
-                            }                                           
+                      if(ele.code==val.data.parentCode){
+                          ind=i
+                          console.log(ind)
+                      }                                           
                     })      
                     if(ind>-1){
                         this.listArr2[ind].indeterminates = !!val.checkList.length && val.checkList.length <val.plainOptions.length
                         this.listArr2[ind].checked = val.checkList.length === val.plainOptions.length && val.plainOptions.length!=0
                     }           
-                
-              }
-              
-                  
-                    this.listArr1.forEach((element,num)=>{
-                        
-                        if(element.code==this.listArr2[ind].parentCode){
-                            ind=num
-                            console.log(ind)
-                        }
+                }
+                     let z=-1          
+                    this.listArr1.forEach((element,num)=>{                        
+                      if(element.code==this.listArr2[ind].parentCode){
+                          z=num
+                          console.log(ind)
+                      }
                         
                     })      
                     let checklist=this.listArr2.filter((item,index)=>{
-                        return  item.checked
+                        return  item.checked || item.indeterminates
                     })    
                     // console.log(checklist)
-                    if(ind>-1){
-                            this.listArr1[ind].indeterminates = !!checklist.length && checklist.length < this.listArr2.length
-                            this.listArr1[ind].checked = checklist.length === this.listArr2.length && this.listArr2.length!=0
+                    if(z>-1){
+                            this.listArr1[z].indeterminates = !!checklist.length && checklist.length < this.listArr2.length
+                            this.listArr1[z].checked = checklist.length === this.listArr2.length && this.listArr2.length!=0
                     }
-                   
-               
-              
-
             }else if (index == 4 || this.clickKey == 4){
                 if(this.listArr3){
                     // console.log(this.listArr3)
@@ -273,7 +293,7 @@
                     if(ind>-1){
                   
                         let checklist3=this.listArr3.filter((item,index)=>{
-                            return  item.checked
+                            return  item.checked || item.indeterminates
                         })    
                         // console.log(checklist)
                    
@@ -289,7 +309,7 @@
                             
                         })      
                         let checklist2=this.listArr1.filter((item,index)=>{
-                            return  item.checked
+                            return  item.checked || item.indeterminates
                         })  
                         if(z>-1){
                             this.listArr1[z].indeterminates = !!checklist2.length && checklist2.length < this.listArr2.length
@@ -329,39 +349,216 @@
       deleteItem(item){
           console.log(item);
           let val='';
-          this.plainOptions.forEach((ele,index)=>{
-              if(ele.label==item){
+          this.checkedShowList.forEach((ele,index)=>{
+              if(ele.code==item.code){
                   val=ele.value
               }
           })
-          this.checkedList=this.checkedList.filter((element,index) => {
-              return element!=val
-          });
+          
           this.checkedShowList=this.checkedShowList.filter((element,index) => {
-              return element!=item
+              return element.code!=val;
           });
-          if(this.checkedList.length==0){
-              this.indeterminate=false
-              this.checkAll=false
+          if(item.level==1){
+              this.listArr1.forEach((ele)=>{
+                  if(ele.code==val){
+                     ele.checked=false
+                  }
+              })  
+          }
+          if(item.level==2){
+              console.log('------------------------------------');
+              let childList=this.checkedShowList.filter((element,index) => {
+                  return element.parentCode==item.parentCode;
+              });
+              let data=[]
+              let checkList=[];
+              let plainOptions=[]
+              this.listArr1.forEach((ele)=>{
+                  if(ele.code==item.parentCode){
+                      data=ele;
+                  }
+                  if(ele.checked){
+                    checkList.push(ele.code)
+                  }
+                  plainOptions.push(ele.code)
+              })
+              if(childList.length==0){
+                  data.indeterminates=false
+              }
+              
+              
+              this.getItemData({
+                clickObj:{},
+                data: data,
+                curLayerNum:1,
+                checkList,
+                plainOptions,
+              })
+              
+
+          }
+          if(item.level==3){
+
           }
       },
 
       clearAll(){
           this.listArr1.forEach((item)=>{
-              item.checked=false
+              item.checked=false;
+              item.indeterminates=false;
           })
           this.listArr2.forEach((item)=>{
-              item.checked=false
+              item.checked=false;
+              item.indeterminates=false;
           })
           this.listArr3.forEach((item)=>{
               item.checked=false
+              item.indeterminates=false
           })
           this.listArr4.forEach((item)=>{
               item.checked=false
+              item.indeterminates=false
           })
           this.checkedShowList=[]
       },
 
+      getCheckedList(val){
+        console.log(val);
+        if(val.curLayerNum==1){
+          if(val.checkList.length>0){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.level!=1
+            })
+            // console.log(this.checkedShowList)
+            if(val.checkList.length==this.listArr1.length){
+                this.checkedShowList=[];
+                val.checkList.forEach((ele)=>{
+                  var result = this.checkedShowList.some(item => {
+                    if(item.code == ele){
+                        return true 
+                    } 
+                  })
+                  if(!result){
+                    this.listArr1.forEach((item)=>{
+                      if(ele==item.code){
+                          this.checkedShowList.push(item)
+                      }
+                    })
+                  }
+                
+                })
+            }else if(val.checkList.length<this.listArr1.length){
+              val.checkList.forEach((ele)=>{
+                var result = this.checkedShowList.some(item => {
+                    if(item.code == ele){
+                        return true 
+                    } 
+                })
+                if(!result){
+                  this.listArr1.forEach((item)=>{
+                    if(ele==item.code){
+                        this.checkedShowList.push(item)
+                    }
+                  })
+                }
+              
+              })
+            }
+            
+            // console.log(this.checkedShowList)
+          }else{
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.level!=1
+            })
+          }
+          
+        }else if(val.curLayerNum==2){
+          this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.code!=val.currentList[0].parentCode
+          })
+          
+          if(val.checkList.length>0&&val.checkList.length<val.currentList.length){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+            })
+            // console.log(this.checkedShowList)
+            val.checkList.forEach((ele)=>{
+              var result = this.checkedShowList.some(item => {
+                if(item.code == ele){
+                    return true 
+                } 
+              })
+              if(!result){
+                val.currentList.forEach((item)=>{
+                  if(ele==item.code){
+                      this.checkedShowList.push(item)
+                  }
+                })
+              }
+             
+            })
+            // console.log(this.checkedShowList)
+          }else if(val.checkList.length==0){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+
+            })
+          }else if(val.checkList.length==val.currentList.length){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+            })
+            this.listArr1.forEach((item)=>{
+                if(item.code==val.currentList[0].parentCode){
+                    this.checkedShowList.push(item)
+                }
+            })
+          }
+        }else if(val.curLayerNum==3){
+          this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.code!=val.currentList[0].parentCode
+          })
+          
+          if(val.checkList.length>0&&val.checkList.length<val.currentList.length){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+            })
+            console.log(this.checkedShowList)
+            val.checkList.forEach((ele)=>{
+              var result = this.checkedShowList.some(item => {
+                if(item.code == ele){
+                    return true 
+                } 
+              })
+              if(!result){
+                val.currentList.forEach((item)=>{
+                  if(ele==item.code){
+                      this.checkedShowList.push(item)
+                  }
+                })
+              }
+             
+            })
+            console.log(this.checkedShowList)
+          }else if(val.checkList.length==0){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+              
+            })
+          }else if(val.checkList.length==val.currentList.length){
+            this.checkedShowList=this.checkedShowList.filter((item)=>{
+              return item.parentCode!=val.currentList[0].parentCode
+            })
+            this.listArr2.forEach((item)=>{
+                if(item.code==val.currentList[0].parentCode){
+                    this.checkedShowList.push(item)
+                }
+            })
+          }
+        }else if(val.curLayerNum==4){
+
+        }
+      },
+
 
     },
     mounted() {

+ 4 - 4
src/views/modules/BatchCreate/newDirectedPackage.vue

@@ -436,7 +436,7 @@
                                                 <linkMultiSelect title='省份' :listArr='[]' :maxLayers='2' :listUrl='regionCityListUrl' @getSelectedArr='getSelectedCityArr'/>
                                             </a-tab-pane>
                                             <a-tab-pane key="development" tab="发展划分" >
-                                                <linkMultiSelect title='等级' :listArr='[]' url='' :maxLayers='3'  @getSelectedArr='getSelectedCityArr'/>
+                                                <linkMultiSelect title='等级' :listArr='[]' url='' :maxLayers='3' :listUrl='regionCityListUrl'  @getSelectedArr='getSelectedCityArr'/>
                                             </a-tab-pane>
                                         </a-tabs>
                                     </div>
@@ -444,10 +444,10 @@
                             </div>
                             <!-- 区县 -->
                             <div class="district" v-else-if="regionValue=='REGION_LEVEL_DISTRICT'">
-                                <linkMultiSelect title='省份' :listArr='[]' @getSelectedArr='getSelectedCityArr'/>
+                                <linkMultiSelect title='省份' :listArr='[]' :maxLayers='3' :listUrl='regionCityListUrl'  @getSelectedArr='getSelectedCityArr'/>
                             </div>
                             <!-- 商圈 -->
-                            <div class="businessCircle" v-else>
+                            <!-- <div class="businessCircle" v-else>
                                 <div class="tabChange">
                                     <div class="tabBox">
                                         <a-tabs v-model="businessTab" @change="businessTabChange">
@@ -465,7 +465,7 @@
                                         </a-tabs>
                                     </div>
                                 </div>
-                            </div>
+                            </div> -->
                             <div class="region_people">
                                 <a-radio-group v-model="regionPeopleValue" @change="regionPeopleChange">
                                     <a-radio value="HOME">居住在该地区的用户</a-radio>

+ 1 - 1
src/views/modules/Statistics/materialRank.vue

@@ -28,7 +28,7 @@
     </div>
     <a-table :columns="columns" :data-source="dataSource" tableLayout='auto' bordered :pagination='false' :loading='loading'>
       <div slot="videoU" slot-scope="test,records">
-        <img :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'" alt="" style="width:140px"
+        <img :src="records.coverUrl" alt="" style="width:140px"
           @click="openVideo(records.url)">
       </div>
       <span slot="convertRate" slot-scope="convertRate">{{ convertRate | toPercentage }}</span>

+ 1 - 1
src/views/modules/Statistics/performanceRelated/performanceRelated.vue

@@ -143,7 +143,7 @@
                         
                         <div slot="urls" slot-scope="test,records">
                             <img
-                            :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'"
+                            :src="records.coverUrl"
                             alt
                             style="width:100px"
                             @click="openVideo(records.url)"                           

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

@@ -84,7 +84,7 @@
       @change="sort"
     >
       <div slot="videoU" slot-scope="test,records">
-        <img  :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'"  alt=""  style="width:140px"  @click="openVideo(records.url)" @load="loadShow">
+        <img  :src="records.coverUrl"  alt=""  style="width:140px"  @click="openVideo(records.url)" @load="loadShow">
 
       </div>
       <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span>

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

@@ -93,7 +93,7 @@
       </span>
 
       <div slot="videoU" slot-scope="test,records">
-        <img  :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'"  alt="" style="width:140px" @click="openVideo(records.url)" @load="loadShow">
+        <img  :src="records.coverUrl"  alt="" style="width:140px" @click="openVideo(records.url)" @load="loadShow">
       </div>
       <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span>
       <span

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

@@ -93,7 +93,7 @@
     >
       <div slot="videoU" slot-scope="test,records">
         <img
-          :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'"
+          :src="records.coverUrl"
           alt
           style="width:140px"
           @click="openVideo(records.url)"

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

@@ -93,7 +93,7 @@
       </span>
 
       <div slot="videoU" slot-scope="test,records">
-       <img  :src="records.url+'?x-oss-process=video/snapshot,t_0,m_fast'"  alt="" style="width:140px" @click="openVideo(records.url)"  @load="loadShow">
+       <img  :src="records.coverUrl"  alt="" style="width:140px" @click="openVideo(records.url)"  @load="loadShow">
       </div>
       <span slot="ctr" slot-scope="ctr">{{ ctr | toPercentage }}</span>
       <span

+ 10 - 5
src/views/modules/actor/modules/ActorModal.vue

@@ -22,7 +22,9 @@
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
         >
-          <upload-to-ali
+
+        <uploadFile :value.sync="imageUrl" :fileCount="1" uploadType="image" :multiple="false" />
+          <!-- <upload-to-ali
             v-model="imageUrl"
             :customDomain="customDomain"
             multiple
@@ -34,14 +36,15 @@
             :size="1024000"
             :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
         </a-form-item>
         <a-form-item
           label="视频作品"
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
         >
-          <upload-to-ali
+        <uploadFile :value.sync="videoUrl" :fileCount="1" uploadType="video" :multiple="false" />
+          <!-- <upload-to-ali
             v-model="videoUrl"
             :customDomain="customDomain"
             multiple
@@ -53,7 +56,7 @@
             :size="1024000"
             :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
         </a-form-item>
         <a-form-item label="生日" :labelCol="labelCol" :wrapperCol="wrapperCol">
           <a-date-picker
@@ -87,11 +90,13 @@
   import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from 'moment'
   import UploadToAli from '@femessage/upload-to-ali'
+    import uploadFile from '@/components/uploadFile.vue'
   export default {
     name: "ActorModal",
     components: {
       UploadToAli,
-      JTreeSelect
+      JTreeSelect,
+      uploadFile
     },
     data() {
       return {

+ 1 - 1
src/views/modules/kuaishouapp/account/editGroup.vue

@@ -64,7 +64,7 @@
       </a-form-item>
       <a-form-item :label="campaignType == '3' ? ' ' : '链接'" :labelCol="{ lg: { span: 7 }, sm: { span: 7 } }"
         :wrapperCol="{ lg: { span: 10 }, sm: { span: 17 } }" v-if="campaignType != '2'"
-        :class="{ elseLabel: campaignType == '3' }">
+        :class="{ 'else-label': campaignType == '3' }">
         <!-- 请填写以http://或者https://开头的落地页地址,长度不超过1000个字符 -->
         <a-input placeholder="请填写链接"
           v-decorator="['url', { rules: [{ required: true, message: ' ' }, { validator: handleConfirmValue }] }]" />

+ 82 - 79
src/views/modules/kuaishouapp/account/stepForm/Step3.vue

@@ -266,10 +266,13 @@
         </a-button>
       </template>
       <a-form-item label="" class="add-image-material">
+        <uploadFile v-if="addImageVisible" :value.sync="urlListImage.url" :checkFile="fileWater"
+          @overUpload="overUploadImage" @removeUpload="deleteImage" :fileCount="15" uploadType="image" />
+        <!-- 
         <upload-to-ali style="width:100%" v-model="urlListImage.url" :customDomain="customDomain" :multiple="true"
           preview :region="region" :bucket="bucket" :accept="acceptImage" :max="15" :size="2048"
           :accessKeyId="accessKeyId" :accessKeySecret="accessKeySecret" :before-upload="fileWater" :dir="dirImg"
-          @delete='deleteImage' @loaded="overUploadImage"></upload-to-ali>
+          @delete='deleteImage' @loaded="overUploadImage"></upload-to-ali> -->
         <span v-if="material.filter(item => item == false).length > 0 && urlListImage.url.length > 0"
           style="color:red">上传素材的尺寸不符,请修改(<span v-for="(item, index) of material" :key="index"
             v-show="!item">第{{ index + 1 }}张</span>出错)</span>
@@ -286,10 +289,13 @@
         </a-button>
       </template>
       <a-form-item label="" class="add-image-material">
-        <upload-to-ali v-model="urlList.url" :customDomain="customDomain" preview :region="region" :bucket="bucket"
+        <uploadFile v-if="addVideoVisible" :checkFile="file" :value.sync="urlList.url" @overUpload="overUpload" :fileCount="10"
+          uploadType="video" :multiple="false" />
+
+        <!-- <upload-to-ali v-model="urlList.url" :customDomain="customDomain" preview :region="region" :bucket="bucket"
           :accept="acceptVideo" :max="10" :size="1024000" :accessKeyId="accessKeyId" :accessKeySecret="accessKeySecret"
           :before-upload="file" :dir="dirVideo" @loaded="overUpload">
-        </upload-to-ali>
+        </upload-to-ali> -->
         <span v-if="messageTip" style="color:red">{{messageTip}}</span>
       </a-form-item>
     </a-modal>
@@ -418,7 +424,7 @@
   } from '@/utils/videoControl' // 停止除当前外的其他视频播放,及停止所有视频播放的方法
   import checkMatemal from './stepModule/checkMatemal'
   import BMF from 'browser-md5-file'
-
+  import uploadFile from '@/components/uploadFile.vue'
 
   let nowIndex = 0
   let bestIndex = 0
@@ -428,7 +434,8 @@
     components: {
       UploadToAli,
       VuePreview,
-      checkMatemal
+      checkMatemal,
+      uploadFile
     },
     data() {
       return {
@@ -1068,76 +1075,76 @@
         that.imageArrList = []
         var img
         if (urlAll.length > 0) {
-          for (var i = 0; i < this.urlListImage.url.length; i++) {
+          for (var i = 0; i < urlAll.length; i++) {
             that.imageArrList.push({
               signature: this.urlListImage.md5[i],
-              url: this.urlListImage.url[i],
+              url: urlAll[i].url,
             })
 
             img = new Image()
-            img.src = this.urlListImage.url[i]
-            if (img.complete) {
-              // 打印
-              if (img.width == 720) {
-                if (img.height == 1280) {
-                  that.material.push(true)
-                } else {
-                  that.material.push(false)
-                }
-              } else if (img.width == 1080) {
-                if (img.height == 1920) {
-                  that.material.push(true)
-                } else {
-                  that.material.push(false)
-                }
-              } else if (img.width == 1280) {
-                if (img.height == 720) {
-                  that.material.push(true)
-                } else {
-                  that.material.push(false)
-                }
-              } else if (img.width == 1920) {
-                if (img.height == 1080) {
-                  that.material.push(true)
-                } else {
-                  that.material.push(false)
-                }
-              } else {
-                that.material.push(false)
-              }
-            } else {
-
-              img.onload = () => {
-                if (img.width == 720) {
-                  if (img.height == 1280) {
-                    that.material.push(true)
-                  } else {
-                    that.material.push(false)
-                  }
-                } else if (img.width == 1080) {
-                  if (img.height == 1920) {
-                    that.material.push(true)
-                  } else {
-                    that.material.push(false)
-                  }
-                } else if (img.width == 1280) {
-                  if (img.height == 720) {
-                    that.material.push(true)
-                  } else {
-                    that.material.push(false)
-                  }
-                } else if (img.width == 1920) {
-                  if (img.height == 1080) {
-                    that.material.push(true)
-                  } else {
-                    that.material.push(false)
-                  }
-                } else {
-                  that.material.push(false)
-                }
-
-              }
-            }
+            img.src = urlAll[i].url
+            // if (img.complete) {
+            //   // 打印
+            //   if (img.width == 720) {
+            //     if (img.height == 1280) {
+            //       that.material.push(true)
+            //     } else {
+            //       that.material.push(false)
+            //     }
+            //   } else if (img.width == 1080) {
+            //     if (img.height == 1920) {
+            //       that.material.push(true)
+            //     } else {
+            //       that.material.push(false)
+            //     }
+            //   } else if (img.width == 1280) {
+            //     if (img.height == 720) {
+            //       that.material.push(true)
+            //     } else {
+            //       that.material.push(false)
+            //     }
+            //   } else if (img.width == 1920) {
+            //     if (img.height == 1080) {
+            //       that.material.push(true)
+            //     } else {
+            //       that.material.push(false)
+            //     }
+            //   } else {
+            //     that.material.push(false)
+            //   }
+            // } else {
+
+            //   img.onload = () => {
+            //     if (img.width == 720) {
+            //       if (img.height == 1280) {
+            //         that.material.push(true)
+            //       } else {
+            //         that.material.push(false)
+            //       }
+            //     } else if (img.width == 1080) {
+            //       if (img.height == 1920) {
+            //         that.material.push(true)
+            //       } else {
+            //         that.material.push(false)
+            //       }
+            //     } else if (img.width == 1280) {
+            //       if (img.height == 720) {
+            //         that.material.push(true)
+            //       } else {
+            //         that.material.push(false)
+            //       }
+            //     } else if (img.width == 1920) {
+            //       if (img.height == 1080) {
+            //         that.material.push(true)
+            //       } else {
+            //         that.material.push(false)
+            //       }
+            //     } else {
+            //       that.material.push(false)
+            //     }
+
+            //   }
+            // }
           }
         }
 
@@ -1150,14 +1157,10 @@
         //   md5: []
         // }
         return new Promise(function (resolve, reject) {
-          for (let i = 0; i < file.length; i++) {
-            bmf.md5(file[i], (err, md5) => {
-              // that.urlListImage.name.push(file[i].name)
-              that.urlListImage.md5.push(md5)
-              resolve()
-
-            })
-          }
+          bmf.md5(file, (err, md5) => {
+            that.urlListImage.md5.push(md5)
+            resolve()
+          })
         })
       },
       overUpload(urlAll) {
@@ -1167,7 +1170,7 @@
         var bmf = new BMF()
         var that = this
         return new Promise(function (resolve, reject) {
-          bmf.md5(file[0], (err, md5) => {
+          bmf.md5(file, (err, md5) => {
 
 
             getAction('/kusiShouUpload/checkVideo', {

+ 1 - 1
src/views/modules/material/excellentMaterial.vue

@@ -220,7 +220,7 @@
                     }"></div>
                   <img v-if="active == 'IMAGE'" :src="items.url"
                     style="height:200px;max-width:100%;position:absolute;z-index:10;" />
-                  <img v-else :src="items.url + '?x-oss-process=video/snapshot,t_00000,m_fast'" alt=""
+                  <img v-else :src="items.coverUrl" alt=""
                     style="height:200px;max-width:100%;position:absolute;z-index:10;" />
                 </div>
 

+ 7 - 4
src/views/modules/material/fragmentMatemal.vue

@@ -384,12 +384,13 @@
         </a-form-item>
 
         <a-form-item :label-col="labelCol" :wrapper-col="wrapperCol" label="视频素材上传">
-          <upload-to-ali :customDomain="customDomain" preview :region="region" :bucket="bucket" :accept="acceptVideo"
+          <uploadFile :value.sync="urlList.url" :fileCount="1" uploadType="video" :multiple="false" />
+          <!-- <upload-to-ali :customDomain="customDomain" preview :region="region" :bucket="bucket" :accept="acceptVideo"
             :max="10" :size="1024000" :accessKeyId="accessKeyId" :accessKeySecret="accessKeySecret"
             :before-upload="file" :dir="dirVideo" @loaded="overUpload" v-decorator="[
               'url', // 给表单赋值或拉取表单时,该input对应的key
               { rules: [{ required: true, message: '请上传图片!' }] }
-            ]"></upload-to-ali>
+            ]"></upload-to-ali> -->
         </a-form-item>
         <a-form-item :label-col="labelCol" :wrapper-col="{
             xs: { span: 24 },
@@ -480,6 +481,7 @@
   } from '@/mixins/JeecgListMixin'
   import JEllipsis from '@/components/jeecg/JEllipsis'
   import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
   import {
     fileCheck,
     fileInsert,
@@ -525,7 +527,8 @@
       JEllipsis,
       UploadToAli,
       accountCheck,
-      checkMatemal
+      checkMatemal,
+      uploadFile
     },
 
     data() {
@@ -1250,7 +1253,7 @@
             }
             params.id = this.add ? null : this.id
             params.code = this.urlList.md5
-            params.url = values.url
+            params.url = this.urlList.url
             params.materialName = this.urlList.name
             params.userId = this.userInfo().id
             params.projectId = values.projectId

+ 17 - 20
src/views/modules/material/materialList.vue

@@ -303,7 +303,9 @@ a {
       </template>
       <a-form :form="form">
         <a-form-item :label-col="labelCol" :wrapper-col="wrapperCol" label="图片素材上传" class="add-image-material">
-          <upload-to-ali
+        <uploadFile :value.sync="urlList.url" :multiple='false'
+          @overUpload="overUpload" :fileCount="1" uploadType="image" />
+          <!-- <upload-to-ali
             style="width:160%"
             v-model="urlList.url"
             :customDomain="customDomain"
@@ -318,7 +320,7 @@ a {
             :before-upload="file"
             :dir="activeKey == 'image' ? dirImg : dirVideo"
             @loaded="overUpload"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
           <span v-if="material.filter(item => item == false).length > 0 && urlList.url != ''" style="color:red"
             >上传素材的尺寸不符,请修改</span
           >
@@ -386,22 +388,9 @@ a {
               {{ refuseReason ? refuseReason : '无原因' }}
             </a-form-item>
             <a-form-item label="截图" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" v-if="active == '2'">
-              <upload-to-ali
-                v-if="refuseFile"
-                disabled
-                v-model="refuseFile"
-                :customDomain="customDomain"
-                multiple
-                preview
-                :region="region"
-                :bucket="bucket"
-                :accept="acceptImage"
-                :max="10"
-                :size="1024000"
-                :accessKeyId="accessKeyId"
-                :accessKeySecret="accessKeySecret"
-                :dir="dirImg"
-              ></upload-to-ali>
+              <div v-if="refuseFile" style="width:100%">
+                    <img style="width:100px;height:auto;margin:5px"  @click="showBoHui(item)" :src="item" v-for="(item,index) in refuseFile" :key="index" alt="">
+                </div>
               <div v-else>无截图</div>
             </a-form-item>
           </a-form>
@@ -417,6 +406,7 @@ a {
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import JEllipsis from '@/components/jeecg/JEllipsis'
 import UploadToAli from '@femessage/upload-to-ali'
+import uploadFile from '@/components/uploadFile.vue'
 import { fileCheck, fileInsert, fileEdit } from '@/api/actor'
 import { getAction, postAction, postFile, downFile, downFilePost, deleteAction, putAction } from '@/api/manage'
 
@@ -435,7 +425,8 @@ export default {
     JEllipsis,
     UploadToAli,
     accountCheck,
-    selectTable
+    selectTable,
+    uploadFile
   },
 
   data() {
@@ -539,7 +530,9 @@ export default {
       noList: [],
       material: [],
       excellent: 0,
-      code: ''
+      code: '',
+      bohui:"",
+      bohuiShow:false
     }
   },
   filters: {
@@ -606,6 +599,10 @@ export default {
     }
   },
   methods: {
+    showBoHui(item){
+      this.bohui = item
+      this.bohuiShow = true
+    },
     setSuccess() {
       var params = {}
       params.id = this.code

File diff suppressed because it is too large
+ 1828 - 1539
src/views/modules/material/videoMaterial.vue


+ 6 - 2
src/views/modules/onlineTraining/onlineTrainingList.vue

@@ -112,10 +112,12 @@
         </a-form-item>
         <a-form-item :label-col="labelCol" :wrapper-col="wrapperCol" label="文件上传"
           v-show="(getData('title') && getData('topic'))||(oneList.length>0 && getData('topicAll'))">
-          <upload-to-ali v-model="fileUrl" :customDomain="customDomain" preview :region="region" :bucket="bucket"
+          <uploadFile :value.sync="fileUrl" :multiple='false':checkFile="file" :fileCount="1"
+            uploadType="video" />
+          <!-- <upload-to-ali v-model="fileUrl" :customDomain="customDomain" preview :region="region" :bucket="bucket"
             :accept="acceptVideo" :max="10" :size="1024000" :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret" :before-upload="file" :dir="dirVideo" @loaded="overUpload">
-          </upload-to-ali>
+          </upload-to-ali> -->
         </a-form-item>
 
       </a-form>
@@ -136,6 +138,7 @@
   import $ from 'jquery'
   import qs from 'qs'
   import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
   // document.write(textDes('https://ctop-media.oss-cn-beijing.aliyuncs.com/video/2020-03-20/20网服-1584693978588.mp4'))
   // document.write('<br>' + desDecrypt('s4HMPbmUfZ0=', 'ckplayerDesKey'))
   function textDes(str) {
@@ -250,6 +253,7 @@
     },
     components: {
       UploadToAli,
+      uploadFile
     },
     methods: {
       clear() {

+ 7 - 3
src/views/modules/prop/modules/ActorModal.vue

@@ -9,9 +9,11 @@
           <a-input placeholder="请输入道具名称" v-decorator="['name', validatorRules.name ]" />
         </a-form-item>
         <a-form-item label="照片" :labelCol="labelCol" :wrapperCol="wrapperCol">
-          <upload-to-ali v-model="imageUrl" :customDomain="customDomain" multiple preview :region="region"
+          <uploadFile  v-if="visible" :value.sync="imageUrl" :fileCount="10"
+            uploadType="image" />
+          <!-- <upload-to-ali v-model="imageUrl" :customDomain="customDomain" multiple preview :region="region"
             :bucket="bucket" :accept="acceptImage" :max="10" :size="1024000" :accessKeyId="accessKeyId"
-            :accessKeySecret="accessKeySecret"></upload-to-ali>
+            :accessKeySecret="accessKeySecret"></upload-to-ali> -->
         </a-form-item>
         <a-form-item label="道具类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
           <a-input placeholder="请输入道具类型" v-decorator="['type']" />
@@ -47,11 +49,13 @@
   import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from 'moment'
   import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
   export default {
     name: "ActorModal",
     components: {
       UploadToAli,
-      JTreeSelect
+      JTreeSelect,
+      uploadFile
     },
     data() {
       return {

+ 9 - 5
src/views/modules/yard/YardList.vue

@@ -134,15 +134,17 @@
 
     <!-- 新增图集 -->
     <a-modal v-model="addPhoto" title="新增图集" @ok="handleOk('photo')" @cancel="handleCancel('photo')">
-      <upload-to-ali style="margin:10px" v-model="imageUrl" :customDomain="customDomain" preview :region="region"
+        <uploadFile :value.sync="imageUrl" :fileCount="1" uploadType="image" :multiple="false" />
+      <!-- <upload-to-ali style="margin:10px" v-model="imageUrl" :customDomain="customDomain" preview :region="region"
         :bucket="bucket" :accept="acceptImage" :max="1" :size="1024000" :accessKeyId="accessKeyId"
-        :accessKeySecret="accessKeySecret"></upload-to-ali>
+        :accessKeySecret="accessKeySecret"></upload-to-ali> -->
     </a-modal>
     <!-- 新增作品 -->
     <a-modal v-model="addVideo" title="新增作品" @ok="handleOk('video')" @cancel="handleCancel('video')">
-      <upload-to-ali style="margin:10px" v-model="videoUrl" :customDomain="customDomain" preview :region="region"
+        <uploadFile :value.sync="videoUrl" :fileCount="1" uploadType="video" :multiple="false" />
+      <!-- <upload-to-ali style="margin:10px" v-model="videoUrl" :customDomain="customDomain" preview :region="region"
         :bucket="bucket" :accept="acceptVideo" :max="1" :size="1024000" :accessKeyId="accessKeyId"
-        :accessKeySecret="accessKeySecret"></upload-to-ali>
+        :accessKeySecret="accessKeySecret"></upload-to-ali> -->
     </a-modal>
 
     <yard-modal ref="modalForm" @ok="modalFormOk"></yard-modal>
@@ -157,6 +159,7 @@
   } from '@/mixins/JeecgListMixin'
   import JEllipsis from '@/components/jeecg/JEllipsis'
   import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
   import {
     yardPhotoList,
     yardVideoList,
@@ -171,7 +174,8 @@
     components: {
       JEllipsis,
       YardModal,
-      UploadToAli
+      UploadToAli,
+      uploadFile
     },
     data() {
       return {

+ 10 - 5
src/views/modules/yard/modules/YardModal.vue

@@ -28,7 +28,8 @@
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
         >
-          <upload-to-ali
+        <uploadFile v-if="visible" :value.sync="imageUrl" :fileCount="10" uploadType="image" />
+          <!-- <upload-to-ali
             v-model="imageUrl"
             :customDomain="customDomain"
             multiple
@@ -40,14 +41,16 @@
             :size="1024000"
             :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
         </a-form-item>
         <a-form-item
           label="视频"
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
         >
-          <upload-to-ali
+
+         <uploadFile  v-if="visible" :value.sync="videoUrl" :fileCount="1" uploadType="video" />
+          <!-- <upload-to-ali
             v-model="videoUrl"
             :customDomain="customDomain"
             multiple
@@ -59,7 +62,7 @@
             :size="1024000"
             :accessKeyId="accessKeyId"
             :accessKeySecret="accessKeySecret"
-          ></upload-to-ali>
+          ></upload-to-ali> -->
         </a-form-item>
 
         <a-form-item
@@ -91,11 +94,13 @@
   import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from 'moment'
   import UploadToAli from '@femessage/upload-to-ali'
+  import uploadFile from '@/components/uploadFile.vue'
   export default {
     name: "YardModal",
     components: {
       UploadToAli,
-      JTreeSelect
+      JTreeSelect,
+      uploadFile
     },
     data() {
       return {

+ 9 - 5
src/views/modules/yard/modules/yardDetail.vue

@@ -106,7 +106,8 @@ li {
       @ok="handleOk('photo')"
       @cancel="handleCancel('photo')"
     >
-      <upload-to-ali
+     <uploadFile :value.sync="imageUrl" :fileCount="1" uploadType="image" :multiple="false" />
+      <!-- <upload-to-ali
         style="margin:10px"
         v-model="imageUrl"
         :customDomain="customDomain"
@@ -118,7 +119,7 @@ li {
         :size="1024000"
         :accessKeyId="accessKeyId"
         :accessKeySecret="accessKeySecret"
-      ></upload-to-ali>
+      ></upload-to-ali> -->
     </a-modal>
     <!-- 新增作品 -->
     <a-modal
@@ -127,7 +128,8 @@ li {
       @ok="handleOk('video')"
       @cancel="handleCancel('video')"
     >
-      <upload-to-ali
+    <uploadFile :value.sync="videoUrl" :fileCount="1" uploadType="video" :multiple="false" />
+      <!-- <upload-to-ali
         style="margin:10px"
         v-model="videoUrl"
         :customDomain="customDomain"
@@ -139,7 +141,7 @@ li {
         :size="1024000"
         :accessKeyId="accessKeyId"
         :accessKeySecret="accessKeySecret"
-      ></upload-to-ali>
+      ></upload-to-ali> -->
     </a-modal>
   </div>
 </template>
@@ -149,13 +151,15 @@ import {
 
 } from '@/api/actor'
 import UploadToAli from '@femessage/upload-to-ali'
+import uploadFile from '@/components/uploadFile.vue'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import { closeAllVideoFun } from '@/utils/videoControl'
 export default {
   name: 'VmCard',
   mixins: [JeecgListMixin],
   components: {
-    UploadToAli
+    UploadToAli,
+    uploadFile
   },
   props: {},
   data: function() {

+ 1 - 1
src/views/ureport/UReportFileBindUserList.vue

@@ -97,7 +97,7 @@ export default {
       if (process.env.NODE_ENV === 'development') {
         url = 'http://39.106.184.70:8080/jeecg-boot/ureport/preview?_u=mysql:' + item.fileName
       } else if (process.env.NODE_ENV === 'production') {
-        url = 'http://api.tjyourong.com.cn/jeecg-boot/ureport/preview?_u=mysql:' + item.fileName
+        url = 'http://129.28.150.229:8804/jeecg-boot/ureport/preview?_u=mysql:' + item.fileName
       }
       window.open(url, '_blank')
     }

+ 1 - 1
src/views/ureport/UReportFileList.vue

@@ -191,7 +191,7 @@ export default {
       if (process.env.NODE_ENV === 'development') {
         url = 'http://api.tjyourong.com.cn/jeecg-boot/ureport/designer?_u=mysql:' + item.name
       } else if (process.env.NODE_ENV === 'production') {
-        url = 'http://api.tjyourong.com.cn/jeecg-boot/ureport/designer?_u=mysql:' + item.name
+        url = 'http://129.28.150.229:8804/jeecg-boot/ureport/designer?_u=mysql:' + item.name
       }
       window.open(url, '_blank')
     },

+ 12 - 6
vue.config.js

@@ -64,16 +64,22 @@ module.exports = {
          }
        },*/
       '/jeecg-boot': {
+       
         // target: 'http://192.168.1.90:8080', //请求本地 需要jeecg-boot后台项目  蒙蒙
-        target: 'http://192.168.1.72:8088', //请求本地 需要jeecg-boot后台项目  英豪
+       
+        // target: 'http://192.168.1.72:8088', //请求本地 需要jeecg-boot后台项目  英豪
+       
         // target: 'http://192.168.2.115:8080', //请求本地 需要jeecg-boot后台项目  祚云
         // target: 'http://192.168.1.94:8804', //请求本地 需要jeecg-boot后台项目  孙震
-        // target: 'http://192.168.1.51:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
+        target: 'http://192.168.1.51:8088', //请求本地 需要jeecg-boot后台项目  毕洁泉
         // target: 'http://192.168.1.165:8848', //请求本地 需要jeecg-boot后台项目  毕洁泉
-        // target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
-        // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目
-        // target: 'http://192.168.1.251:8088', //请求本地 需要jeecg-boot后台项目
-        // target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目
+        // target: 'http://api.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目 
+        // target: 'https://trac.tjyourong.com.cn', //请求本地 需要jeecg-boot后台项目 
+        // target: 'http://192.168.1.251:8088', //请求本地 需要jeecg-boot后台项目 
+        // target: 'http://adsp.tjyourong.com.cn/', //请求本地 需要jeecg-boot后台项目 
+
+        
+
         ws: false,
         changeOrigin: true,
         // pathRewrite: {