|  | @ -21,15 +21,27 @@ | 
		
	
		
			
				|  |  |       <el-row class="in_release_item"> |  |  |       <el-row class="in_release_item"> | 
		
	
		
			
				|  |  |         <el-col class="step_1">第一步:设置时间</el-col> |  |  |         <el-col class="step_1">第一步:设置时间</el-col> | 
		
	
		
			
				|  |  |         <el-col class="step_form"> |  |  |         <el-col class="step_form"> | 
		
	
		
			
				|  |  |           <el-form-item label="发布时间" prop="release_start" :rules="[ |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           <el-form-item | 
		
	
		
			
				|  |  |  |  |  |             label="发布时间" | 
		
	
		
			
				|  |  |  |  |  |             prop="release_start" | 
		
	
		
			
				|  |  |  |  |  |             :rules="[ | 
		
	
		
			
				|  |  |               { required: true, message: '请选择发布时间', trigger: 'change' } |  |  |               { required: true, message: '请选择发布时间', trigger: 'change' } | 
		
	
		
			
				|  |  |             ]" label-width="100px"> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |             ]" | 
		
	
		
			
				|  |  |  |  |  |             label-width="100px" | 
		
	
		
			
				|  |  |  |  |  |           > | 
		
	
		
			
				|  |  |             <el-date-picker v-if="publishType == 0" v-model="form.release_start" value-format="yyyy-MM-dd HH:mm:ss" type="date" placeholder="选择日期" /> |  |  |             <el-date-picker v-if="publishType == 0" v-model="form.release_start" value-format="yyyy-MM-dd HH:mm:ss" type="date" placeholder="选择日期" /> | 
		
	
		
			
				|  |  |             <el-date-picker v-else v-model="form.release_start" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" /> |  |  |             <el-date-picker v-else v-model="form.release_start" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" /> | 
		
	
		
			
				|  |  |           </el-form-item> |  |  |           </el-form-item> | 
		
	
		
			
				|  |  |           <el-form-item v-if="publishType == 1" label="设置周期" prop="release_cycle" :rules="[ |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           <el-form-item | 
		
	
		
			
				|  |  |  |  |  |             v-if="publishType == 1" | 
		
	
		
			
				|  |  |  |  |  |             label="设置周期" | 
		
	
		
			
				|  |  |  |  |  |             prop="release_cycle" | 
		
	
		
			
				|  |  |  |  |  |             :rules="[ | 
		
	
		
			
				|  |  |               { required: true, message: '请设置周期', trigger: 'change' }, |  |  |               { required: true, message: '请设置周期', trigger: 'change' }, | 
		
	
		
			
				|  |  |             ]" :class="['set_weekly',{'no_margin': form.release_cycle == 2}]" label-width="100px"> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |             ]" | 
		
	
		
			
				|  |  |  |  |  |             :class="['set_weekly',{'no_margin': form.release_cycle == 2}]" | 
		
	
		
			
				|  |  |  |  |  |             label-width="100px" | 
		
	
		
			
				|  |  |  |  |  |           > | 
		
	
		
			
				|  |  |             <el-radio-group v-model="form.release_cycle" @change="clearCheckbox()"> |  |  |             <el-radio-group v-model="form.release_cycle" @change="clearCheckbox()"> | 
		
	
		
			
				|  |  |               <el-radio :label="1">每天</el-radio> |  |  |               <el-radio :label="1">每天</el-radio> | 
		
	
		
			
				|  |  |               <el-radio :label="2">每周</el-radio> |  |  |               <el-radio :label="2">每周</el-radio> | 
		
	
	
		
			
				|  | @ -61,16 +73,16 @@ | 
		
	
		
			
				|  |  |           <div class="step_select_list"> |  |  |           <div class="step_select_list"> | 
		
	
		
			
				|  |  |             <div class="step_upload" @click="selectContVisible = true"></div> |  |  |             <div class="step_upload" @click="selectContVisible = true"></div> | 
		
	
		
			
				|  |  |             <draggable v-model="selectedMaterial" class="drag_list" @end="dragEnd"> |  |  |             <draggable v-model="selectedMaterial" class="drag_list" @end="dragEnd"> | 
		
	
		
			
				|  |  |               <div v-for="(item, index) in selectedMaterial" :key="'list-'+index" :class="['material_item', 'item_cont']" @click="clickMaterialItem(item.material_id,item)"> |  |  |  | 
		
	
		
			
				|  |  |                 <img v-if="item.img_path || item.material_type == 1" :src="item.img_path" :onerror="defaultImg" alt /> |  |  |  | 
		
	
		
			
				|  |  |                 <div v-if="!item.img_path && item.material_type == 2" class="radio_img"></div> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |               <div v-for="(item, index) in selectedMaterial" :key="'list-'+index" :class="['material_item', 'item_cont']" @click="clickMaterialItem((item.material_id||item.id),item)"> | 
		
	
		
			
				|  |  |  |  |  |                 <img v-if="(item.img_path|| item.imgPath) || (item.material_type == 1 || item.type == 1)" :src="(item.img_path||item.imgPath)" :onerror="defaultImg" alt /> | 
		
	
		
			
				|  |  |  |  |  |                 <div v-if="(!item.img_path|| !item.imgPath) && (item.material_type == 2|| item.type == 2)" class="radio_img"></div> | 
		
	
		
			
				|  |  |                 <div class="item_format"> |  |  |                 <div class="item_format"> | 
		
	
		
			
				|  |  |                   <span class="item_type">{{ materialPostfix[index] }}</span> |  |  |                   <span class="item_type">{{ materialPostfix[index] }}</span> | 
		
	
		
			
				|  |  |                   <span v-if="item.material_type != '0'" class="item_time">{{ item.duration | getSeconds }}</span> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                   <span v-if="item.material_type != '0' || item.type != '0'" class="item_time">{{ item.duration | getSeconds }}</span> | 
		
	
		
			
				|  |  |                 </div> |  |  |                 </div> | 
		
	
		
			
				|  |  |                 <div class="file_name">{{ item.material_name }}</div> |  |  |  | 
		
	
		
			
				|  |  |                 <div v-if="contentIds.includes(item.material_id)" class="select_handle"> |  |  |  | 
		
	
		
			
				|  |  |                   <div class="select_delt" @click.stop="selectDelt(item.material_id,index)"> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                 <div class="file_name">{{ item.material_name || item.name }}</div> | 
		
	
		
			
				|  |  |  |  |  |                 <div v-if="contentIds.includes((item.material_id||item.id))" class="select_handle"> | 
		
	
		
			
				|  |  |  |  |  |                   <div class="select_delt" @click.stop="selectDelt((item.material_id||item.id),index)"> | 
		
	
		
			
				|  |  |                     <svg class="font-icon icon1" aria-hidden="true"> |  |  |                     <svg class="font-icon icon1" aria-hidden="true"> | 
		
	
		
			
				|  |  |                       <use xlink:href="#icon-guanbi2" /> |  |  |                       <use xlink:href="#icon-guanbi2" /> | 
		
	
		
			
				|  |  |                     </svg> |  |  |                     </svg> | 
		
	
	
		
			
				|  | @ -90,12 +102,16 @@ | 
		
	
		
			
				|  |  |       <el-row class="in_release_item"> |  |  |       <el-row class="in_release_item"> | 
		
	
		
			
				|  |  |         <el-col class="step_1">第三步:选择设备</el-col> |  |  |         <el-col class="step_1">第三步:选择设备</el-col> | 
		
	
		
			
				|  |  |         <el-col class="step_form"> |  |  |         <el-col class="step_form"> | 
		
	
		
			
				|  |  |           <el-form-item label="" prop="release_device" :rules="[ |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           <el-form-item | 
		
	
		
			
				|  |  |  |  |  |             label="" | 
		
	
		
			
				|  |  |  |  |  |             prop="release_device" | 
		
	
		
			
				|  |  |  |  |  |             :rules="[ | 
		
	
		
			
				|  |  |               { required: true, message: '请选择设备', trigger: 'change' }, |  |  |               { required: true, message: '请选择设备', trigger: 'change' }, | 
		
	
		
			
				|  |  |             ]"> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |             ]" | 
		
	
		
			
				|  |  |  |  |  |           > | 
		
	
		
			
				|  |  |             <el-radio-group v-model="form.release_device" @change="clearDevice()"> |  |  |             <el-radio-group v-model="form.release_device" @change="clearDevice()"> | 
		
	
		
			
				|  |  |               <el-radio label="1">所有设备</el-radio> |  |  |  | 
		
	
		
			
				|  |  |               <el-radio label="2">部分设备<i v-if="form.release_device == 2" class="radio_tip" @click="addDeviceTag()">添加</i></el-radio> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |               <el-radio :label="1">所有设备</el-radio> | 
		
	
		
			
				|  |  |  |  |  |               <el-radio :label="2">部分设备<i v-if="form.release_device == 2" class="radio_tip" @click="addDeviceTag()">添加</i></el-radio> | 
		
	
		
			
				|  |  |             </el-radio-group> |  |  |             </el-radio-group> | 
		
	
		
			
				|  |  |           </el-form-item> |  |  |           </el-form-item> | 
		
	
		
			
				|  |  |           <div v-if="form.release_device == 1" class="select_all_tip">所有设备都将被发送</div> |  |  |           <div v-if="form.release_device == 1" class="select_all_tip">所有设备都将被发送</div> | 
		
	
	
		
			
				|  | @ -127,7 +143,7 @@ | 
		
	
		
			
				|  |  |             </li> |  |  |             </li> | 
		
	
		
			
				|  |  |           </ul> |  |  |           </ul> | 
		
	
		
			
				|  |  |           <div class="material_list" style="min-height: 260px"> |  |  |           <div class="material_list" style="min-height: 260px"> | 
		
	
		
			
				|  |  |             <MaterialList ref="MaterialList" :is-multi-selected="isMultiSelected" :mulit-text="mulitText" :activeItemIndex="activeItemIndex" /> |  |  |  | 
		
	
		
			
				|  |  |  |  |  |             <MaterialList ref="MaterialList" :is-multi-selected="isMultiSelected" :mulit-text="mulitText" :active-item-index="activeItemIndex" /> | 
		
	
		
			
				|  |  |           </div> |  |  |           </div> | 
		
	
		
			
				|  |  |         </div> |  |  |         </div> | 
		
	
		
			
				|  |  |         <!-- 主题库 --> |  |  |         <!-- 主题库 --> | 
		
	
	
		
			
				|  | @ -243,10 +259,10 @@ | 
		
	
		
			
				|  |  | import draggable from 'vuedraggable' |  |  | import draggable from 'vuedraggable' | 
		
	
		
			
				|  |  | import ThemeGalleryList from '../components/ThemeGalleryList.vue' |  |  | import ThemeGalleryList from '../components/ThemeGalleryList.vue' | 
		
	
		
			
				|  |  | import MaterialList from '../components/MaterialCompontentList.vue' |  |  | import MaterialList from '../components/MaterialCompontentList.vue' | 
		
	
		
			
				|  |  | import { getMaterialByType } from '@/api/material/material' |  |  |  | 
		
	
		
			
				|  |  |  |  |  | import { getMaterialByType, FetchFindMaterialById } from '@/api/material/material' | 
		
	
		
			
				|  |  | import { ReqDeviceList } from '@/api/device/deviceList.js' |  |  | import { ReqDeviceList } from '@/api/device/deviceList.js' | 
		
	
		
			
				|  |  | import { FetchSaveRelease } from '@/api/release/release.js' |  |  |  | 
		
	
		
			
				|  |  | import { getSeconds, formatBytes } from '@/utils/index.js' |  |  |  | 
		
	
		
			
				|  |  |  |  |  | import { FetchSaveRelease, FetchGetReleaseDetailsById } from '@/api/release/release.js' | 
		
	
		
			
				|  |  |  |  |  | import { getSeconds, formatBytes, parseTime } from '@/utils/index.js' | 
		
	
		
			
				|  |  | export default { |  |  | export default { | 
		
	
		
			
				|  |  |   name: 'ImmediateRelease', |  |  |   name: 'ImmediateRelease', | 
		
	
		
			
				|  |  |   components: { |  |  |   components: { | 
		
	
	
		
			
				|  | @ -255,14 +271,14 @@ export default { | 
		
	
		
			
				|  |  |     MaterialList |  |  |     MaterialList | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   filters: { |  |  |   filters: { | 
		
	
		
			
				|  |  |     getSeconds (s) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     getSeconds(s) { | 
		
	
		
			
				|  |  |       return getSeconds(s) |  |  |       return getSeconds(s) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     formatBytes (bytes, decimals) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     formatBytes(bytes, decimals) { | 
		
	
		
			
				|  |  |       return formatBytes(bytes, decimals) |  |  |       return formatBytes(bytes, decimals) | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   data () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |   data() { | 
		
	
		
			
				|  |  |     return { |  |  |     return { | 
		
	
		
			
				|  |  |       orga_id: '133221333123111', |  |  |       orga_id: '133221333123111', | 
		
	
		
			
				|  |  |       selectedMaterial: [], // 从其他页面选择带过来的素材 |  |  |       selectedMaterial: [], // 从其他页面选择带过来的素材 | 
		
	
	
		
			
				|  | @ -272,7 +288,7 @@ export default { | 
		
	
		
			
				|  |  |       page: 1, |  |  |       page: 1, | 
		
	
		
			
				|  |  |       pageSize: 10, |  |  |       pageSize: 10, | 
		
	
		
			
				|  |  |       audioListData: [], // 音频list |  |  |       audioListData: [], // 音频list | 
		
	
		
			
				|  |  |       isMainBgm: null, //是最外层的bgm还是里面的 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |       isMainBgm: null, // 是最外层的bgm还是里面的 | 
		
	
		
			
				|  |  |       selectDeviceVisible: false, // 设备list - layer |  |  |       selectDeviceVisible: false, // 设备list - layer | 
		
	
		
			
				|  |  |       deviceAllTags: [], // 设备list |  |  |       deviceAllTags: [], // 设备list | 
		
	
		
			
				|  |  |       deviceTags: [], // 已选择设备list |  |  |       deviceTags: [], // 已选择设备list | 
		
	
	
		
			
				|  | @ -305,7 +321,7 @@ export default { | 
		
	
		
			
				|  |  |         // "rm_id": "关联id 新增则为null" |  |  |         // "rm_id": "关联id 新增则为null" | 
		
	
		
			
				|  |  |         // } |  |  |         // } | 
		
	
		
			
				|  |  |         release_materialDTOs: [], |  |  |         release_materialDTOs: [], | 
		
	
		
			
				|  |  |         release_start: '', // 发布开始时间 yyyy-MM-dd HH:mm:ss |  |  |  | 
		
	
		
			
				|  |  |  |  |  |         release_start: null, // 发布开始时间 yyyy-MM-dd HH:mm:ss | 
		
	
		
			
				|  |  |         release_type: '' // 发布类型 |  |  |         release_type: '' // 发布类型 | 
		
	
		
			
				|  |  |       }, |  |  |       }, | 
		
	
		
			
				|  |  |       contentIds: [], |  |  |       contentIds: [], | 
		
	
	
		
			
				|  | @ -381,18 +397,18 @@ export default { | 
		
	
		
			
				|  |  |         } |  |  |         } | 
		
	
		
			
				|  |  |       ], |  |  |       ], | 
		
	
		
			
				|  |  |       activeIndex: 0, |  |  |       activeIndex: 0, | 
		
	
		
			
				|  |  |       activeItemIndex: 0, |  |  |  | 
		
	
		
			
				|  |  |  |  |  |       activeItemIndex: 0 | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   computed: { |  |  |   computed: { | 
		
	
		
			
				|  |  |     changePlaceholder () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     changePlaceholder() { | 
		
	
		
			
				|  |  |       return this.publishType == 0 ? '即时发布 2022-01-01' : '定时发布 2022-01-01' |  |  |       return this.publishType == 0 ? '即时发布 2022-01-01' : '定时发布 2022-01-01' | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     defaultImg () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     defaultImg() { | 
		
	
		
			
				|  |  |       return 'this.src="' + require('@/assets/images/menu_bg_02.png') + '"' |  |  |       return 'this.src="' + require('@/assets/images/menu_bg_02.png') + '"' | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   created () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |   created() { | 
		
	
		
			
				|  |  |     this.selectedMaterial = [] |  |  |     this.selectedMaterial = [] | 
		
	
		
			
				|  |  |     this.selectedMaterial = JSON.parse(localStorage.getItem('selectedMaterial')) |  |  |     this.selectedMaterial = JSON.parse(localStorage.getItem('selectedMaterial')) | 
		
	
		
			
				|  |  |     // 素材类型格式处理 |  |  |     // 素材类型格式处理 | 
		
	
	
		
			
				|  | @ -405,7 +421,7 @@ export default { | 
		
	
		
			
				|  |  |       }) |  |  |       }) | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   mounted () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |   mounted() { | 
		
	
		
			
				|  |  |     if (this.$route.path === '/release') { |  |  |     if (this.$route.path === '/release') { | 
		
	
		
			
				|  |  |       this.materialTabItem.pop() |  |  |       this.materialTabItem.pop() | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
	
		
			
				|  | @ -414,15 +430,71 @@ export default { | 
		
	
		
			
				|  |  |     } |  |  |     } | 
		
	
		
			
				|  |  |     // 设备list |  |  |     // 设备list | 
		
	
		
			
				|  |  |     this.ReqDeviceList() |  |  |     this.ReqDeviceList() | 
		
	
		
			
				|  |  |  |  |  |     if (localStorage.getItem('releaseId')) { | 
		
	
		
			
				|  |  |  |  |  |       this.editRelease() | 
		
	
		
			
				|  |  |  |  |  |     } | 
		
	
		
			
				|  |  |   }, |  |  |   }, | 
		
	
		
			
				|  |  |   methods: { |  |  |   methods: { | 
		
	
		
			
				|  |  |  |  |  |     editRelease() { | 
		
	
		
			
				|  |  |  |  |  |       const release_id = JSON.parse(localStorage.getItem('releaseId')) | 
		
	
		
			
				|  |  |  |  |  |       const params = { | 
		
	
		
			
				|  |  |  |  |  |         release_id: release_id | 
		
	
		
			
				|  |  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |  |       FetchGetReleaseDetailsById(params).then(res => { | 
		
	
		
			
				|  |  |  |  |  |         if (res.code == 200) { | 
		
	
		
			
				|  |  |  |  |  |           console.log(res.data) | 
		
	
		
			
				|  |  |  |  |  |           const releaseInfo = res.data.release | 
		
	
		
			
				|  |  |  |  |  |           this.form.orga_id = releaseInfo.orgaId | 
		
	
		
			
				|  |  |  |  |  |           this.form.relaase_name = releaseInfo.relaaseName | 
		
	
		
			
				|  |  |  |  |  |           this.form.release_cycle = releaseInfo.releaseCycle | 
		
	
		
			
				|  |  |  |  |  |           if (this.form.release_cycle == 2) { | 
		
	
		
			
				|  |  |  |  |  |             this.selectWeekly = releaseInfo.releaseWeekly.split(',') | 
		
	
		
			
				|  |  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  |           this.form.is_topping = releaseInfo.isTopping | 
		
	
		
			
				|  |  |  |  |  |           this.form.release_device = releaseInfo.releaseDevice | 
		
	
		
			
				|  |  |  |  |  |           if (releaseInfo.releaseType == 1) { | 
		
	
		
			
				|  |  |  |  |  |             const arr = [] | 
		
	
		
			
				|  |  |  |  |  |             arr.push(parseTime(releaseInfo.releaseStart)) | 
		
	
		
			
				|  |  |  |  |  |             arr.push(parseTime(releaseInfo.releaseEnd)) | 
		
	
		
			
				|  |  |  |  |  |             this.form.release_start = arr | 
		
	
		
			
				|  |  |  |  |  |           } else { | 
		
	
		
			
				|  |  |  |  |  |             this.form.release_start = parseTime(releaseInfo.releaseStart) | 
		
	
		
			
				|  |  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |  |           if (releaseInfo.actualEnd) { | 
		
	
		
			
				|  |  |  |  |  |             this.form.actual_end = releaseInfo.actualEnd | 
		
	
		
			
				|  |  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |  |           this.form.bgm_main = releaseInfo.bgmMain | 
		
	
		
			
				|  |  |  |  |  |           this.form.release_deviceDTOs = res.data.release_devices | 
		
	
		
			
				|  |  |  |  |  |           // 获取素材list | 
		
	
		
			
				|  |  |  |  |  |           const materialIds = [] | 
		
	
		
			
				|  |  |  |  |  |           res.data.release_materials.map((item) => { | 
		
	
		
			
				|  |  |  |  |  |             materialIds.push(item.materialId) | 
		
	
		
			
				|  |  |  |  |  |           }) | 
		
	
		
			
				|  |  |  |  |  |           const params = { | 
		
	
		
			
				|  |  |  |  |  |             ids: materialIds | 
		
	
		
			
				|  |  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |  |           FetchFindMaterialById(params).then(res => { | 
		
	
		
			
				|  |  |  |  |  |             if (res.code == 200) { | 
		
	
		
			
				|  |  |  |  |  |               console.log(res.data) | 
		
	
		
			
				|  |  |  |  |  |               this.selectedMaterial = res.data | 
		
	
		
			
				|  |  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |           }) | 
		
	
		
			
				|  |  |  |  |  |         } else { | 
		
	
		
			
				|  |  |  |  |  |           this.$message.error(res.msg) | 
		
	
		
			
				|  |  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |  |       }) | 
		
	
		
			
				|  |  |  |  |  |     }, | 
		
	
		
			
				|  |  |     // 发布提交 |  |  |     // 发布提交 | 
		
	
		
			
				|  |  |     releaseSubmit (formName) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     releaseSubmit(formName) { | 
		
	
		
			
				|  |  |       this.$refs[formName].validate((valid) => { |  |  |       this.$refs[formName].validate((valid) => { | 
		
	
		
			
				|  |  |         if (valid) { |  |  |         if (valid) { | 
		
	
		
			
				|  |  |           this.form.orga_id = this.orga_id |  |  |           this.form.orga_id = this.orga_id | 
		
	
		
			
				|  |  |  |  |  |           // 发布类型 | 
		
	
		
			
				|  |  |  |  |  |           this.form.release_type = this.publishType | 
		
	
		
			
				|  |  |           // 先判断编辑还是新增 |  |  |           // 先判断编辑还是新增 | 
		
	
		
			
				|  |  |           this.form.actual_end = this.publishType == 0 ? null : '' |  |  |           this.form.actual_end = this.publishType == 0 ? null : '' | 
		
	
		
			
				|  |  |  |  |  |           // 设备选择判断 | 
		
	
		
			
				|  |  |           if (this.form.release_device) { |  |  |           if (this.form.release_device) { | 
		
	
		
			
				|  |  |             if (this.form.release_device == 1) { |  |  |             if (this.form.release_device == 1) { | 
		
	
		
			
				|  |  |               this.form.release_deviceDTOs = [] |  |  |               this.form.release_deviceDTOs = [] | 
		
	
	
		
			
				|  | @ -438,8 +510,7 @@ export default { | 
		
	
		
			
				|  |  |               }) |  |  |               }) | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |           } |  |  |           } | 
		
	
		
			
				|  |  |           this.form.release_type = this.publishType |  |  |  | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           // 根据发布类型 - 周期-时间 | 
		
	
		
			
				|  |  |           if (this.publishType == 0) { |  |  |           if (this.publishType == 0) { | 
		
	
		
			
				|  |  |             this.form.release_cycle = 0 |  |  |             this.form.release_cycle = 0 | 
		
	
		
			
				|  |  |             this.form.release_weekly = null |  |  |             this.form.release_weekly = null | 
		
	
	
		
			
				|  | @ -453,6 +524,7 @@ export default { | 
		
	
		
			
				|  |  |             this.form.release_start = arrDate[0] |  |  |             this.form.release_start = arrDate[0] | 
		
	
		
			
				|  |  |             this.form.release_end = arrDate[1] |  |  |             this.form.release_end = arrDate[1] | 
		
	
		
			
				|  |  |           } |  |  |           } | 
		
	
		
			
				|  |  |  |  |  |           // 判断是否有localstorage有相应的list数据 | 
		
	
		
			
				|  |  |           if (this.selectedMaterial) { |  |  |           if (this.selectedMaterial) { | 
		
	
		
			
				|  |  |             this.form.release_materialDTOs = this.selectedMaterial.map((item, index) => { |  |  |             this.form.release_materialDTOs = this.selectedMaterial.map((item, index) => { | 
		
	
		
			
				|  |  |               const json = {} |  |  |               const json = {} | 
		
	
	
		
			
				|  | @ -482,6 +554,7 @@ export default { | 
		
	
		
			
				|  |  |             } else { |  |  |             } else { | 
		
	
		
			
				|  |  |               this.form.bgm_main = null |  |  |               this.form.bgm_main = null | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  |  |  |  |             // 保存提交 | 
		
	
		
			
				|  |  |             FetchSaveRelease(this.form).then(res => { |  |  |             FetchSaveRelease(this.form).then(res => { | 
		
	
		
			
				|  |  |               if (res.code == 200) { |  |  |               if (res.code == 200) { | 
		
	
		
			
				|  |  |                 this.$message.success('发布成功!') |  |  |                 this.$message.success('发布成功!') | 
		
	
	
		
			
				|  | @ -494,13 +567,13 @@ export default { | 
		
	
		
			
				|  |  |             this.$message.error('请选择发布内容!') |  |  |             this.$message.error('请选择发布内容!') | 
		
	
		
			
				|  |  |           } |  |  |           } | 
		
	
		
			
				|  |  |         } else { |  |  |         } else { | 
		
	
		
			
				|  |  |           console.log('error submit!!'); |  |  |  | 
		
	
		
			
				|  |  |           return false; |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           console.log('error submit!!') | 
		
	
		
			
				|  |  |  |  |  |           return false | 
		
	
		
			
				|  |  |         } |  |  |         } | 
		
	
		
			
				|  |  |       }); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |       }) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 获取设备列表 |  |  |     // 获取设备列表 | 
		
	
		
			
				|  |  |     ReqDeviceList () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     ReqDeviceList() { | 
		
	
		
			
				|  |  |       const params = { |  |  |       const params = { | 
		
	
		
			
				|  |  |         device_id: '', |  |  |         device_id: '', | 
		
	
		
			
				|  |  |         device_name: '', |  |  |         device_name: '', | 
		
	
	
		
			
				|  | @ -517,11 +590,11 @@ export default { | 
		
	
		
			
				|  |  |       }) |  |  |       }) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 设备list - show |  |  |     // 设备list - show | 
		
	
		
			
				|  |  |     addDeviceTag () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     addDeviceTag() { | 
		
	
		
			
				|  |  |       this.selectDeviceVisible = true |  |  |       this.selectDeviceVisible = true | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 设备选中list |  |  |     // 设备选中list | 
		
	
		
			
				|  |  |     tagHandle (tag) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     tagHandle(tag) { | 
		
	
		
			
				|  |  |       if (this.deviceTags.length == 0) { |  |  |       if (this.deviceTags.length == 0) { | 
		
	
		
			
				|  |  |         this.deviceTags.push(tag) |  |  |         this.deviceTags.push(tag) | 
		
	
		
			
				|  |  |       } else { |  |  |       } else { | 
		
	
	
		
			
				|  | @ -536,15 +609,15 @@ export default { | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 删除已选择的设备 |  |  |     // 删除已选择的设备 | 
		
	
		
			
				|  |  |     deltTags (tag) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     deltTags(tag) { | 
		
	
		
			
				|  |  |       this.deviceTags.splice(this.deviceTags.indexOf(tag), 1) |  |  |       this.deviceTags.splice(this.deviceTags.indexOf(tag), 1) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 清空已选择的设备 |  |  |     // 清空已选择的设备 | 
		
	
		
			
				|  |  |     clearDevice () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     clearDevice() { | 
		
	
		
			
				|  |  |       this.deviceTags = [] |  |  |       this.deviceTags = [] | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 根据素材类型获取素材 |  |  |     // 根据素材类型获取素材 | 
		
	
		
			
				|  |  |     getMaterialByType () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     getMaterialByType() { | 
		
	
		
			
				|  |  |       const params = { |  |  |       const params = { | 
		
	
		
			
				|  |  |         'theme_name': '', |  |  |         'theme_name': '', | 
		
	
		
			
				|  |  |         'theme_type': this.themeType, |  |  |         'theme_type': this.themeType, | 
		
	
	
		
			
				|  | @ -572,7 +645,7 @@ export default { | 
		
	
		
			
				|  |  |       }) |  |  |       }) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 删除选择的素材 |  |  |     // 删除选择的素材 | 
		
	
		
			
				|  |  |     selectDelt (id, i) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     selectDelt(id, i) { | 
		
	
		
			
				|  |  |       const index = this.contentIds.indexOf(id) |  |  |       const index = this.contentIds.indexOf(id) | 
		
	
		
			
				|  |  |       this.contentIds.splice(index, 1) |  |  |       this.contentIds.splice(index, 1) | 
		
	
		
			
				|  |  |       this.selectedEditData.splice(index, 1) |  |  |       this.selectedEditData.splice(index, 1) | 
		
	
	
		
			
				|  | @ -580,7 +653,7 @@ export default { | 
		
	
		
			
				|  |  |       localStorage.setItem('selectedMaterial', JSON.stringify(this.selectedMaterial)) |  |  |       localStorage.setItem('selectedMaterial', JSON.stringify(this.selectedMaterial)) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 选中可编辑的 |  |  |     // 选中可编辑的 | 
		
	
		
			
				|  |  |     clickMaterialItem (id, item) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     clickMaterialItem(id, item) { | 
		
	
		
			
				|  |  |       const arr = this.contentIds |  |  |       const arr = this.contentIds | 
		
	
		
			
				|  |  |       if (arr.includes(id)) { |  |  |       if (arr.includes(id)) { | 
		
	
		
			
				|  |  |         const index = arr.indexOf(id) |  |  |         const index = arr.indexOf(id) | 
		
	
	
		
			
				|  | @ -594,9 +667,9 @@ export default { | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 编辑-已选择的 |  |  |     // 编辑-已选择的 | 
		
	
		
			
				|  |  |     selectEdit () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     selectEdit() { | 
		
	
		
			
				|  |  |       this.listEditVisible = true |  |  |       this.listEditVisible = true | 
		
	
		
			
				|  |  |       let form = { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |       const form = { | 
		
	
		
			
				|  |  |         showTime: '15', |  |  |         showTime: '15', | 
		
	
		
			
				|  |  |         showAnimation: '', |  |  |         showAnimation: '', | 
		
	
		
			
				|  |  |         showAnimationName: '' |  |  |         showAnimationName: '' | 
		
	
	
		
			
				|  | @ -607,12 +680,12 @@ export default { | 
		
	
		
			
				|  |  |         } |  |  |         } | 
		
	
		
			
				|  |  |       }) |  |  |       }) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     dragEnd () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     dragEnd() { | 
		
	
		
			
				|  |  |       // console.log(this.selectedEditData) |  |  |       // console.log(this.selectedEditData) | 
		
	
		
			
				|  |  |       // console.log(this.selectedMaterial) |  |  |       // console.log(this.selectedMaterial) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 选择音频 |  |  |     // 选择音频 | 
		
	
		
			
				|  |  |     selectAudioCont (type, index) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     selectAudioCont(type, index) { | 
		
	
		
			
				|  |  |       this.audioChecked = -1 |  |  |       this.audioChecked = -1 | 
		
	
		
			
				|  |  |       this.thisEditIndex = index |  |  |       this.thisEditIndex = index | 
		
	
		
			
				|  |  |       this.isMultiSelected = false |  |  |       this.isMultiSelected = false | 
		
	
	
		
			
				|  | @ -624,7 +697,7 @@ export default { | 
		
	
		
			
				|  |  |       this.isMainBgm = type == 0 ? 0 : 1 |  |  |       this.isMainBgm = type == 0 ? 0 : 1 | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 音频选中-单选 |  |  |     // 音频选中-单选 | 
		
	
		
			
				|  |  |     audioCheckedHandle (index) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     audioCheckedHandle(index) { | 
		
	
		
			
				|  |  |       if (index != this.audioChecked) { |  |  |       if (index != this.audioChecked) { | 
		
	
		
			
				|  |  |         this.audioChecked = index |  |  |         this.audioChecked = index | 
		
	
		
			
				|  |  |       } else { |  |  |       } else { | 
		
	
	
		
			
				|  | @ -632,7 +705,7 @@ export default { | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 音频选中 - 提交 |  |  |     // 音频选中 - 提交 | 
		
	
		
			
				|  |  |     audioCheckedSubmit () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     audioCheckedSubmit() { | 
		
	
		
			
				|  |  |       this.selectAudioVisible = false |  |  |       this.selectAudioVisible = false | 
		
	
		
			
				|  |  |       if (this.audioChecked != -1) { |  |  |       if (this.audioChecked != -1) { | 
		
	
		
			
				|  |  |         const index = this.audioChecked |  |  |         const index = this.audioChecked | 
		
	
	
		
			
				|  | @ -657,37 +730,37 @@ export default { | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 时间设置-切换到每天时 |  |  |     // 时间设置-切换到每天时 | 
		
	
		
			
				|  |  |     clearCheckbox () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     clearCheckbox() { | 
		
	
		
			
				|  |  |       if (this.form.release_cycle == 2) { |  |  |       if (this.form.release_cycle == 2) { | 
		
	
		
			
				|  |  |         this.selectWeekly = [] |  |  |         this.selectWeekly = [] | 
		
	
		
			
				|  |  |         this.form.release_weekly = [] |  |  |         this.form.release_weekly = [] | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 动画切换 |  |  |     // 动画切换 | 
		
	
		
			
				|  |  |     selectAnimation (event, item) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     selectAnimation(event, item) { | 
		
	
		
			
				|  |  |       item.showAnimationName = event.name |  |  |       item.showAnimationName = event.name | 
		
	
		
			
				|  |  |       item.showAnimation = event.key |  |  |       item.showAnimation = event.key | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 选择内容-素材库/主题库 tab |  |  |     // 选择内容-素材库/主题库 tab | 
		
	
		
			
				|  |  |     tabAll (index) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     tabAll(index) { | 
		
	
		
			
				|  |  |       this.activeIndex = index |  |  |       this.activeIndex = index | 
		
	
		
			
				|  |  |       this.activeItemIndex = 0 |  |  |       this.activeItemIndex = 0 | 
		
	
		
			
				|  |  |       this.isMultiSelected = false |  |  |       this.isMultiSelected = false | 
		
	
		
			
				|  |  |       this.mulitText = '多选' |  |  |       this.mulitText = '多选' | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 子菜单-tab |  |  |     // 子菜单-tab | 
		
	
		
			
				|  |  |     tabItem (index) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     tabItem(index) { | 
		
	
		
			
				|  |  |       this.activeItemIndex = index |  |  |       this.activeItemIndex = index | 
		
	
		
			
				|  |  |       console.log(this.activeItemIndex) |  |  |       console.log(this.activeItemIndex) | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 多选btn |  |  |     // 多选btn | 
		
	
		
			
				|  |  |     multiSelectBtn (type) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     multiSelectBtn(type) { | 
		
	
		
			
				|  |  |       this.isMultiSelected = !this.isMultiSelected |  |  |       this.isMultiSelected = !this.isMultiSelected | 
		
	
		
			
				|  |  |       if (this.isMultiSelected) { |  |  |       if (this.isMultiSelected) { | 
		
	
		
			
				|  |  |         this.mulitText = '取消' |  |  |         this.mulitText = '取消' | 
		
	
		
			
				|  |  |         // 已选择的内容中-list是否包含,包含即选中状态 |  |  |         // 已选择的内容中-list是否包含,包含即选中状态 | 
		
	
		
			
				|  |  |         this.selectedMaterial.forEach(item => { |  |  |         this.selectedMaterial.forEach(item => { | 
		
	
		
			
				|  |  |           this.$refs.MaterialList.selectedListId.push(item.material_id) |  |  |  | 
		
	
		
			
				|  |  |  |  |  |           this.$refs.MaterialList.selectedListId.push(item.material_id || item.id) | 
		
	
		
			
				|  |  |           this.$refs.MaterialList.selectedMaterial.push(item) |  |  |           this.$refs.MaterialList.selectedMaterial.push(item) | 
		
	
		
			
				|  |  |         }) |  |  |         }) | 
		
	
		
			
				|  |  |       } else { |  |  |       } else { | 
		
	
	
		
			
				|  | @ -700,7 +773,7 @@ export default { | 
		
	
		
			
				|  |  |       } |  |  |       } | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 素材选择 - 确认按钮 |  |  |     // 素材选择 - 确认按钮 | 
		
	
		
			
				|  |  |     uploadSelected () { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     uploadSelected() { | 
		
	
		
			
				|  |  |       this.selectContVisible = false |  |  |       this.selectContVisible = false | 
		
	
		
			
				|  |  |       this.selectedMaterial = [] |  |  |       this.selectedMaterial = [] | 
		
	
		
			
				|  |  |       this.selectedMaterial = this.$refs.MaterialList.selectedMaterial |  |  |       this.selectedMaterial = this.$refs.MaterialList.selectedMaterial | 
		
	
	
		
			
				|  | @ -715,7 +788,7 @@ export default { | 
		
	
		
			
				|  |  |       this.mulitText = '多选' |  |  |       this.mulitText = '多选' | 
		
	
		
			
				|  |  |     }, |  |  |     }, | 
		
	
		
			
				|  |  |     // 素材选择 - 取消按钮 |  |  |     // 素材选择 - 取消按钮 | 
		
	
		
			
				|  |  |     cancelContSelect (type) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  |     cancelContSelect(type) { | 
		
	
		
			
				|  |  |       this.isMultiSelected = false |  |  |       this.isMultiSelected = false | 
		
	
		
			
				|  |  |       if (type == 'audio') { |  |  |       if (type == 'audio') { | 
		
	
		
			
				|  |  |         this.selectAudioVisible = false |  |  |         this.selectAudioVisible = false | 
		
	
	
		
			
				|  | 
 |