|
@@ -419,6 +419,11 @@ a {
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-col>
|
|
|
|
+ <a-col :md="8" :sm="8">
|
|
|
|
+ <a-form-item label="设计负责人">
|
|
|
|
+ <a-input placeholder="请输入设计负责人" v-model="queryParam.leaderName"></a-input>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-col>
|
|
|
|
|
|
<a-col :md="8" :sm="8">
|
|
<a-col :md="8" :sm="8">
|
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
|
@@ -447,6 +452,12 @@ a {
|
|
>新增</a-button
|
|
>新增</a-button
|
|
>
|
|
>
|
|
<a-button
|
|
<a-button
|
|
|
|
+ @click="batchUploadVisible=true"
|
|
|
|
+ type="primary"
|
|
|
|
+ icon="plus"
|
|
|
|
+ >批量新增</a-button
|
|
|
|
+ >
|
|
|
|
+ <a-button
|
|
@click="onCheckAllChange"
|
|
@click="onCheckAllChange"
|
|
v-if="
|
|
v-if="
|
|
queryParam.productId &&
|
|
queryParam.productId &&
|
|
@@ -798,6 +809,9 @@ a {
|
|
<a-menu-item key="5">
|
|
<a-menu-item key="5">
|
|
<a href="javascript:;" style="margin-right: 20px" @click="editTagList(items)">修改标签</a>
|
|
<a href="javascript:;" style="margin-right: 20px" @click="editTagList(items)">修改标签</a>
|
|
</a-menu-item>
|
|
</a-menu-item>
|
|
|
|
+ <a-menu-item key="6" v-show="active !== '1'" v-if="items.userId == userInfo().id">
|
|
|
|
+ <a href="javascript:;" style="margin-right: 20px" @click="editMaterialName(items)">修改素材名称</a>
|
|
|
|
+ </a-menu-item>
|
|
</a-menu>
|
|
</a-menu>
|
|
</a-dropdown>
|
|
</a-dropdown>
|
|
<a-checkbox :value="items.id" style="float: right" v-show="active == '1'"></a-checkbox>
|
|
<a-checkbox :value="items.id" style="float: right" v-show="active == '1'"></a-checkbox>
|
|
@@ -814,10 +828,13 @@ a {
|
|
style="float: right"
|
|
style="float: right"
|
|
v-if="dataSource.length > 0"
|
|
v-if="dataSource.length > 0"
|
|
showQuickJumper
|
|
showQuickJumper
|
|
|
|
+ showSizeChanger
|
|
:pageSize.sync="ipagination.pageSize"
|
|
:pageSize.sync="ipagination.pageSize"
|
|
:total="ipagination.total"
|
|
:total="ipagination.total"
|
|
v-model="ipagination.current"
|
|
v-model="ipagination.current"
|
|
|
|
+ :pageSizeOptions="ipagination.pageSizeOptions"
|
|
@change="getDataSource"
|
|
@change="getDataSource"
|
|
|
|
+ @showSizeChange="getDataSourceSize"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div v-else style="width: 100%; height: 400px; display: flex; justify-content: center; align-items: center">
|
|
<div v-else style="width: 100%; height: 400px; display: flex; justify-content: center; align-items: center">
|
|
@@ -831,6 +848,25 @@ a {
|
|
</a-spin>
|
|
</a-spin>
|
|
</a-tab-pane>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</a-tabs>
|
|
|
|
+ <a-modal title="修改素材名称" @cancel="editMaterialVisible=false" v-if="editMaterialVisible" v-model="editMaterialVisible">
|
|
|
|
+ <template slot="footer">
|
|
|
|
+ <a-button key="back" @click="editMaterialVisible=false">取消</a-button>
|
|
|
|
+ <a-button type="primary" @click="handleOkEditMaterialName" :loading="loadingEdit">确定</a-button>
|
|
|
|
+ </template>
|
|
|
|
+ <a-form :form="editMaterialform">
|
|
|
|
+ <a-form-model-item
|
|
|
|
+ label="素材名称"
|
|
|
|
+ >
|
|
|
|
+ <a-input placeholder="请填写素材名称"
|
|
|
|
+ v-decorator="[
|
|
|
|
+ 'name',
|
|
|
|
+ {
|
|
|
|
+ rules: [{ required: true, message: '素材名称不能为空' }]
|
|
|
|
+ }
|
|
|
|
+ ]" />
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-form>
|
|
|
|
+ </a-modal>
|
|
<a-modal title="封面上传" @cancel="closeImage" @afterClose="closeImage" v-model="addImageVisible">
|
|
<a-modal title="封面上传" @cancel="closeImage" @afterClose="closeImage" v-model="addImageVisible">
|
|
<template slot="footer">
|
|
<template slot="footer">
|
|
<a-button key="back" @click="closeImage">取消</a-button>
|
|
<a-button key="back" @click="closeImage">取消</a-button>
|
|
@@ -906,6 +942,238 @@ a {
|
|
</div>
|
|
</div>
|
|
</a-modal>
|
|
</a-modal>
|
|
|
|
|
|
|
|
+ <a-modal
|
|
|
|
+ title="批量上传素材"
|
|
|
|
+ v-model="batchUploadVisible"
|
|
|
|
+ v-if="batchUploadVisible"
|
|
|
|
+ :maskClosable="false"
|
|
|
|
+ :width="1200"
|
|
|
|
+ >
|
|
|
|
+ <template slot="footer">
|
|
|
|
+ <a-button type="primary" @click="handleOkBatch" :loading="loadingBatch">确定</a-button>
|
|
|
|
+ </template>
|
|
|
|
+ <a-form-model
|
|
|
|
+ ref="ruleForm"
|
|
|
|
+ :model="ruleForm"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ >
|
|
|
|
+
|
|
|
|
+ <a-form-model-item ref="name" label="项目选择" prop="projectId" :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '项目不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="ruleForm.projectId"
|
|
|
|
+ @change="getProjectId"
|
|
|
|
+ @focus="getParticipateList"
|
|
|
|
+ showSearch
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ @search="getParticipateList"
|
|
|
|
+ :disabled="!add"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option :value="item.projectId" v-for="item of dataElse" :key="item.id">
|
|
|
|
+ {{ item.projectName }} {{
|
|
|
|
+ item.mediaId == '1'
|
|
|
|
+ ? '头条'
|
|
|
|
+ : item.mediaId == '2'
|
|
|
|
+ ? '快手'
|
|
|
|
+ : item.mediaId == '3'
|
|
|
|
+ ? '头条内广'
|
|
|
|
+ : '快手内广'
|
|
|
|
+ }} {{ item.advertiserName }}
|
|
|
|
+ </a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="视频上传" prop="videoList" v-if="ruleForm.projectId!=''">
|
|
|
|
+ <uploadFile
|
|
|
|
+ :checkFile="ruleFormFile"
|
|
|
|
+ :value.sync="ruleForm.urlList"
|
|
|
|
+ @overUpload="ruleFormOverUpload"
|
|
|
|
+ @removeUpload="ruleFormRemoveUpload"
|
|
|
|
+ :fileCount="10"
|
|
|
|
+ :sizeCheck="true"
|
|
|
|
+ uploadType="video"
|
|
|
|
+ :multiple="true"
|
|
|
|
+ v-if="batchUploadVisible"
|
|
|
|
+ />
|
|
|
|
+ <!-- <uploadFile
|
|
|
|
+ :checkFile="file"
|
|
|
|
+ :value.sync="urlList.url"
|
|
|
|
+ @overUpload="overUpload"
|
|
|
|
+ @removeUpload="removeUpload"
|
|
|
|
+ :fileCount="2"
|
|
|
|
+ uploadType="video"
|
|
|
|
+ :multiple="true"
|
|
|
|
+ /> -->
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+
|
|
|
|
+ <a-form-model-item :wrapper-col="{ span: 14 , offset:4}">
|
|
|
|
+ <el-collapse v-model="activeCollapse" accordion v-if="ruleForm.urlList.length>0">
|
|
|
|
+ <el-collapse-item :title="'视频'+(index+1)" :name="index" v-for="(items,index) of ruleForm.urlListData" :key="index">
|
|
|
|
+ <a-form-model-item label="视频" :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }">
|
|
|
|
+ <video :src="items.url" style="width:150px"></video>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="素材名称"
|
|
|
|
+ :key="index"
|
|
|
|
+ :prop="'urlListData.'+index+'.materialName'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '素材名称必填',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <a-input placeholder="请输入素材名称" v-model="items.materialName"></a-input>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+
|
|
|
|
+ <a-form-model-item label="剪辑"
|
|
|
|
+ :key="index"
|
|
|
|
+ :prop="'urlListData.'+index+'.clipId'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '剪辑必选',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="items.clipId"
|
|
|
|
+ showSearch
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option :value="item.userId" v-for="item of ascription.clipId" :key="item.userId">{{
|
|
|
|
+ item.userName
|
|
|
|
+ }}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="策划"
|
|
|
|
+ :prop="'urlListData.' + index + '.planId'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '策划必选',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="items.planId"
|
|
|
|
+ showSearch
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option :value="item.userId" v-for="item of ascription.planId" :key="item.userId">{{
|
|
|
|
+ item.userName
|
|
|
|
+ }}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="拍摄"
|
|
|
|
+ :prop="'urlListData.'+index+'.shotId'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model="items.shotId"
|
|
|
|
+ showSearch
|
|
|
|
+ optionFilterProp="children"
|
|
|
|
+ :filterOption="filterOption"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option :value="item.userId" v-for="item of ascription.shotId" :key="item.userId">{{
|
|
|
|
+ item.userName
|
|
|
|
+ }}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+
|
|
|
|
+ <a-form-model-item label="形式标签"
|
|
|
|
+ :prop="'urlListData.'+index+'.modalityTagList'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '形式标签必选',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <el-cascader
|
|
|
|
+ placeholder="搜索你想要的形式标签"
|
|
|
|
+ :options="departTreeModality"
|
|
|
|
+ v-model="items.modalityTagList"
|
|
|
|
+ :props="{
|
|
|
|
+ multiple: true,
|
|
|
|
+ value: 'id',
|
|
|
|
+ label: 'tagName',
|
|
|
|
+ emitPath: false,
|
|
|
|
+ checkStrictly: true,
|
|
|
|
+ expandTrigger: 'hover',
|
|
|
|
+ }"
|
|
|
|
+ filterable
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="场景标签"
|
|
|
|
+ :prop="'urlListData.'+index+'.senceTagList'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '场景标签必选',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <el-cascader
|
|
|
|
+ placeholder="搜索你想要的场景标签"
|
|
|
|
+ :options="departTreeSence"
|
|
|
|
+ v-model="items.senceTagList"
|
|
|
|
+ :props="{
|
|
|
|
+ multiple: true,
|
|
|
|
+ value: 'id',
|
|
|
|
+ label: 'tagName',
|
|
|
|
+ emitPath: false,
|
|
|
|
+ checkStrictly: true,
|
|
|
|
+ expandTrigger: 'hover',
|
|
|
|
+ }"
|
|
|
|
+ filterable
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item label="基调标签"
|
|
|
|
+ :prop="'urlListData.'+index+'.modTagList'"
|
|
|
|
+ :label-col="{ span: 4 }"
|
|
|
|
+ :wrapper-col="{ span: 14 }"
|
|
|
|
+ :rules="{
|
|
|
|
+ required: true,
|
|
|
|
+ message: '基调标签必选',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ }">
|
|
|
|
+ <el-cascader
|
|
|
|
+ placeholder="搜索你想要的基调标签"
|
|
|
|
+ :options="departTreeMod"
|
|
|
|
+ v-model="items.modTagList"
|
|
|
|
+ :props="{
|
|
|
|
+ multiple: true,
|
|
|
|
+ value: 'id',
|
|
|
|
+ label: 'tagName',
|
|
|
|
+ emitPath: false,
|
|
|
|
+ checkStrictly: true,
|
|
|
|
+ expandTrigger: 'hover',
|
|
|
|
+ }"
|
|
|
|
+ filterable
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ <a-form-model-item :wrapper-col="{ span: 14,offset:4 }" v-if="index == 0">
|
|
|
|
+ <a-button type="primary" @click="syncDesign">剩余素材同步设计人员</a-button>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </el-collapse-item>
|
|
|
|
+ </el-collapse>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-form-model>
|
|
|
|
+ </a-modal>
|
|
|
|
+
|
|
|
|
+
|
|
<a-modal
|
|
<a-modal
|
|
:title="add ? '添加素材' : '修改素材'"
|
|
:title="add ? '添加素材' : '修改素材'"
|
|
v-model="visible"
|
|
v-model="visible"
|
|
@@ -1808,7 +2076,7 @@ a {
|
|
<script>
|
|
<script>
|
|
import changeFace from '@/views/modules/Statistics/change-face/change-face';
|
|
import changeFace from '@/views/modules/Statistics/change-face/change-face';
|
|
import PermissionModal from './modules/DepartModal'
|
|
import PermissionModal from './modules/DepartModal'
|
|
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
|
|
|
|
|
+import { JeecgListMixin } from '@/mixins/videoMaterialMixin'
|
|
import JEllipsis from '@/components/jeecg/JEllipsis'
|
|
import JEllipsis from '@/components/jeecg/JEllipsis'
|
|
import UploadToAli from '@femessage/upload-to-ali'
|
|
import UploadToAli from '@femessage/upload-to-ali'
|
|
import { fileCheck, fileCheckImage, fileEdit, fileEditAll, fileInsertV2 } from '@/api/actor'
|
|
import { fileCheck, fileCheckImage, fileEdit, fileEditAll, fileInsertV2 } from '@/api/actor'
|
|
@@ -1824,6 +2092,7 @@ import uploadFile from '@/components/uploadFile.vue'
|
|
import { closeAllVideoFun, stopOtherVideo } from '@/utils/videoControl'
|
|
import { closeAllVideoFun, stopOtherVideo } from '@/utils/videoControl'
|
|
import accountCheck from './accountCheck'
|
|
import accountCheck from './accountCheck'
|
|
import accountCheckBytedance from './accountCheckBytedance'
|
|
import accountCheckBytedance from './accountCheckBytedance'
|
|
|
|
+let md5Arr = []
|
|
export default {
|
|
export default {
|
|
name: 'video-material',
|
|
name: 'video-material',
|
|
mixins: [JeecgListMixin],
|
|
mixins: [JeecgListMixin],
|
|
@@ -1841,6 +2110,13 @@ export default {
|
|
|
|
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ ruleForm:{
|
|
|
|
+ projectId:'',
|
|
|
|
+ urlList:[],
|
|
|
|
+ urlListData:[]
|
|
|
|
+ },
|
|
|
|
+ loadingBatch:false,
|
|
|
|
+ batchUploadVisible:false,
|
|
controlLoading: false,
|
|
controlLoading: false,
|
|
defaultCurrent: 1,
|
|
defaultCurrent: 1,
|
|
settlementColumns: [
|
|
settlementColumns: [
|
|
@@ -1935,7 +2211,9 @@ export default {
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
],
|
|
-
|
|
|
|
|
|
+ editMaterialVisible:false,
|
|
|
|
+ editMaterialId:'',
|
|
|
|
+ loadingEdit:false,
|
|
addImageVisible: false,
|
|
addImageVisible: false,
|
|
addImageData: null,
|
|
addImageData: null,
|
|
projectId: '',
|
|
projectId: '',
|
|
@@ -2017,6 +2295,7 @@ export default {
|
|
detail: false,
|
|
detail: false,
|
|
form: this.$form.createForm(this),
|
|
form: this.$form.createForm(this),
|
|
formPerson: this.$form.createForm(this),
|
|
formPerson: this.$form.createForm(this),
|
|
|
|
+ editMaterialform: this.$form.createForm(this),
|
|
tags: [],
|
|
tags: [],
|
|
refuseFile: [],
|
|
refuseFile: [],
|
|
refuseReason: '',
|
|
refuseReason: '',
|
|
@@ -2065,7 +2344,8 @@ export default {
|
|
allDetailData: null,
|
|
allDetailData: null,
|
|
dataAllList: [],
|
|
dataAllList: [],
|
|
dataSourceFace: [],
|
|
dataSourceFace: [],
|
|
- totalAll: 0
|
|
|
|
|
|
+ totalAll: 0,
|
|
|
|
+ activeCollapse: 0
|
|
}
|
|
}
|
|
},
|
|
},
|
|
filters: {
|
|
filters: {
|
|
@@ -2181,8 +2461,158 @@ export default {
|
|
// this.loadData()
|
|
// this.loadData()
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
+ batchUploadVisible:function(n,o){
|
|
|
|
+ if(!n){
|
|
|
|
+ md5Arr = []
|
|
|
|
+ this. ruleForm={
|
|
|
|
+ projectId:'',
|
|
|
|
+ urlList:[],
|
|
|
|
+ urlListData:[]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // :checkFile="ruleFormFile"
|
|
|
|
+ // :value.sync="ruleForm.urlList"
|
|
|
|
+ // @overUpload="ruleFormOverUpload"
|
|
|
|
+ // @removeUpload="ruleFormRemoveUpload"
|
|
|
|
+ ruleFormFile(file){
|
|
|
|
+ var bmf = new BMF()
|
|
|
|
+ var that = this
|
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
|
+ bmf.md5(file, (err, md5) => {
|
|
|
|
+ let videoInfo = {name:file.name,md5:md5}
|
|
|
|
+ if(md5Arr.findIndex(item=>item==md5)>-1){
|
|
|
|
+ reject()
|
|
|
|
+ that.$message.error('素材'+file.name+'已经上传')
|
|
|
|
+ return
|
|
|
|
+ }else{
|
|
|
|
+ md5Arr.push(md5)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // that.ruleForm.urlList = []
|
|
|
|
+ fileCheck({
|
|
|
|
+ code: md5,
|
|
|
|
+ projectId: that.ruleForm.projectId,
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.code == 0) {
|
|
|
|
+ that.$message.error('素材'+file.name+'已经上传')
|
|
|
|
+
|
|
|
|
+ reject()
|
|
|
|
+ } else {
|
|
|
|
+ resolve()
|
|
|
|
+ // reject()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ ruleFormOverUpload(urlAll){
|
|
|
|
+ this.ruleForm.urlListData = urlAll.map(item=>{
|
|
|
|
+ return {
|
|
|
|
+ url:item.url,
|
|
|
|
+ planId:undefined,
|
|
|
|
+ clipId:undefined,
|
|
|
|
+ shotId:undefined,
|
|
|
|
+ modTagList:[],
|
|
|
|
+ modalityTagList:[],
|
|
|
|
+ senceTagList:[],
|
|
|
|
+ materialName:''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ ruleFormRemoveUpload(file){
|
|
|
|
+ //media-1301855440.cos.ap-chongqing.myqcloud.com/video/2021-08-16/03-1629102879421.mp4
|
|
|
|
+ let index = this.ruleForm.urlListData.findIndex(item=>item.url==file.url)
|
|
|
|
+ md5Arr = []
|
|
|
|
+ if(index>-1){
|
|
|
|
+
|
|
|
|
+ this.ruleForm.urlListData.splice(index,1)
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleOkBatch(){
|
|
|
|
+ this.$refs.ruleForm.validate(valid => {
|
|
|
|
+ if(valid){
|
|
|
|
+ if(this.ruleForm.urlListData.length == 0){
|
|
|
|
+ this.$message.error('请上传视频素材')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.loadingBatch = true
|
|
|
|
+ let params = {}
|
|
|
|
+ params.projectId = this.ruleForm.projectId
|
|
|
|
+ params.videoArray = this.ruleForm.urlListData.map(item=>{
|
|
|
|
+ return {
|
|
|
|
+ ...item,
|
|
|
|
+ ascription:{
|
|
|
|
+ planId:item.planId,
|
|
|
|
+ clipId:item.clipId,
|
|
|
|
+ shotId:item.shotId,
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ postAction('/insertV3',params).then(res=>{
|
|
|
|
+ this.loadingBatch = false
|
|
|
|
+ if(res.success){
|
|
|
|
+ md5Arr = []
|
|
|
|
+ this.$message.success('上传成功')
|
|
|
|
+ this.batchUploadVisible = false
|
|
|
|
+ this.loadData(1)
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error(res.message)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error('有必填项未填')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ syncDesign(){
|
|
|
|
+ let clipId = this.ruleForm.urlListData[0].clipId
|
|
|
|
+ let planId = this.ruleForm.urlListData[0].planId
|
|
|
|
+ let shotId = this.ruleForm.urlListData[0].shotId
|
|
|
|
+ this.ruleForm.urlListData = this.ruleForm.urlListData.map(item=>{
|
|
|
|
+ return {
|
|
|
|
+ ...item,
|
|
|
|
+ clipId,
|
|
|
|
+ planId,
|
|
|
|
+ shotId
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ editMaterialName(item) {
|
|
|
|
+ this.editMaterialVisible = true
|
|
|
|
+ this.editMaterialId = item.id
|
|
|
|
+ this.$nextTick(()=>{
|
|
|
|
+ this.editMaterialform.setFieldsValue({name:item.materialName})
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ handleOkEditMaterialName(){
|
|
|
|
+ this.editMaterialform.validateFieldsAndScroll((err, values) => {
|
|
|
|
+ if (err) {
|
|
|
|
+ // 这里做逻辑处理
|
|
|
|
+ } else {
|
|
|
|
+ this.loadingEdit = true
|
|
|
|
+ let params={}
|
|
|
|
+ params.id = this.editMaterialId
|
|
|
|
+ params.name = values.name
|
|
|
|
+ postAction('/ctop/materialInfo/editName', params).then(res=>{
|
|
|
|
+ this.loadingEdit = false
|
|
|
|
+ if(res.success){
|
|
|
|
+ this.$message.success('修改成功')
|
|
|
|
+ this.editMaterialVisible = false
|
|
|
|
+ this.editMaterialform.resetFields()
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error(res.message)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
// TODO 推送操作
|
|
// TODO 推送操作
|
|
handlePushData(list) {
|
|
handlePushData(list) {
|
|
const paramsData = {
|
|
const paramsData = {
|
|
@@ -3443,6 +3873,14 @@ export default {
|
|
},
|
|
},
|
|
getDataSource(page, pageSize) {
|
|
getDataSource(page, pageSize) {
|
|
this.ipagination.current = page
|
|
this.ipagination.current = page
|
|
|
|
+ this.ipagination.pageSize = pageSize
|
|
|
|
+ this.checkArr = []
|
|
|
|
+ this.checkAll = false
|
|
|
|
+ this.loadData()
|
|
|
|
+ },
|
|
|
|
+ getDataSourceSize(page, pageSize) {
|
|
|
|
+ this.ipagination.current = 1
|
|
|
|
+ this.ipagination.pageSize = pageSize
|
|
this.checkArr = []
|
|
this.checkArr = []
|
|
this.checkAll = false
|
|
this.checkAll = false
|
|
this.loadData()
|
|
this.loadData()
|