|
|
@ -7,11 +7,13 @@ |
|
|
|
<el-col :span="18"> |
|
|
|
<div class="input_wrap"> |
|
|
|
<span class="input_label">名称</span> |
|
|
|
<el-input v-model="form.relaase_name" :placeholder="changePlaceholder" class="input_name" /> |
|
|
|
<el-form-item prop="relaase_name" :rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]"> |
|
|
|
<el-input v-model="form.relaase_name" :placeholder="changePlaceholder" class="input_name" /> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" class="release_right"> |
|
|
|
<el-button round class="release_btn" type="primary" @click="releaseSubmit">发布</el-button> |
|
|
|
<el-button round class="release_btn" type="primary" @click="releaseSubmit('form')">发布</el-button> |
|
|
|
<el-button round type="primary">关闭</el-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
@ -26,16 +28,14 @@ |
|
|
|
<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 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"> |
|
|
|
<el-radio-group v-model="form.release_cycle" @change="clearCheckbox()"> |
|
|
|
<el-radio :label="1">每天</el-radio> |
|
|
|
<el-radio :label="2">每周</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item v-if="form.release_cycle == 2" :class="{'weekly_margin': form.release_cycle == 2}" prop="release_weekly" :rules="[ |
|
|
|
{ required: true, message: '请选择周期时间', trigger: 'change' }, |
|
|
|
]"> |
|
|
|
<el-form-item v-if="form.release_cycle == 2" :class="{'weekly_margin': form.release_cycle == 2}" prop="release_weekly"> |
|
|
|
<el-checkbox-group v-model="selectWeekly"> |
|
|
|
<el-checkbox v-for="item in weeklyList" :key="item.id" :label="item.id" :value="item.id" name="type">{{ item.name }}</el-checkbox> |
|
|
|
</el-checkbox-group> |
|
|
@ -123,11 +123,11 @@ |
|
|
|
<!-- 素材库 --> |
|
|
|
<div v-if="activeIndex === 0"> |
|
|
|
<ul class="tab_item"> |
|
|
|
<li v-for="(item, index) in materialTabItem" :key="index" :class="{'active': activeItemIndex === index}" @click="tab(index)">{{ item.name }}<span>{{ item.num }}</span> |
|
|
|
<li v-for="(item, index) in materialTabItem" :key="index" :class="{'active': activeItemIndex === index}" @click="tabItem(index)">{{ item.name }}<span>{{ item.num }}</span> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
<div class="material_list" style="min-height: 260px"> |
|
|
|
<MaterialList ref="MaterialList" :is-multi-selected="isMultiSelected" :mulit-text="mulitText" /> |
|
|
|
<MaterialList ref="MaterialList" :is-multi-selected="isMultiSelected" :mulit-text="mulitText" :activeItemIndex="activeItemIndex" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 主题库 --> |
|
|
@ -396,7 +396,7 @@ export default { |
|
|
|
this.selectedMaterial = [] |
|
|
|
this.selectedMaterial = JSON.parse(localStorage.getItem('selectedMaterial')) |
|
|
|
// 素材类型格式处理 |
|
|
|
if (this.selectedMaterial.length != 0) { |
|
|
|
if (this.selectedMaterial) { |
|
|
|
this.selectedMaterial.forEach((item, key) => { |
|
|
|
this.materialPostfix[key] = item.deposit_url.substring( |
|
|
|
item.deposit_url.lastIndexOf('.') + 1, |
|
|
@ -417,73 +417,87 @@ export default { |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 发布提交 |
|
|
|
releaseSubmit () { |
|
|
|
console.log(this.form) |
|
|
|
this.form.orga_id = this.orga_id |
|
|
|
if (this.form.release_device == 1) { |
|
|
|
this.form.release_deviceDTOs = [] |
|
|
|
} else { |
|
|
|
if (this.deviceTags.length == 0) { |
|
|
|
this.$message.error('请选择设备 !') |
|
|
|
return |
|
|
|
} |
|
|
|
this.form.release_deviceDTOs = this.deviceTags.map(item => { |
|
|
|
const json = {} |
|
|
|
json.device_id = item.device_id |
|
|
|
return json |
|
|
|
}) |
|
|
|
} |
|
|
|
this.form.release_type = this.publishType |
|
|
|
// 先判断编辑还是新增 |
|
|
|
this.form.actual_end = this.publishType == 0 ? null : '' |
|
|
|
if (this.publishType == 0) { |
|
|
|
this.form.release_cycle = 0 |
|
|
|
this.form.release_weekly = null |
|
|
|
this.form.release_end = this.form.release_start |
|
|
|
} |
|
|
|
if (this.form.release_cycle == 2) { |
|
|
|
this.form.release_weekly = this.selectWeekly.join(',') |
|
|
|
} |
|
|
|
if (this.form.release_start instanceof Array) { |
|
|
|
const arrDate = this.form.release_start |
|
|
|
this.form.release_start = arrDate[0] |
|
|
|
this.form.release_end = arrDate[1] |
|
|
|
} |
|
|
|
this.form.release_materialDTOs = this.selectedMaterial.map((item, index) => { |
|
|
|
const json = {} |
|
|
|
if (item.material_type == 0) { |
|
|
|
json.duration = (item.showTime || item.showAnimationName || item.showAnimation) ? item.showTime : 15 |
|
|
|
json.effect = (item.showTime || item.showAnimationName || item.showAnimation) ? item.showAnimation : 0 |
|
|
|
json.bgm_path = (item.showAudioName || item.showAudioUrl) ? item.showAudioUrl : null |
|
|
|
} else { |
|
|
|
json.duration = 0 |
|
|
|
json.effect = 0 |
|
|
|
json.bgm_path = null |
|
|
|
} |
|
|
|
json.material_id = item.material_id |
|
|
|
json.material_name = item.material_name |
|
|
|
json.img_path = item.img_path |
|
|
|
json.file_size = item.file_size |
|
|
|
json.rm_id = null |
|
|
|
json.ranking = index + 1 |
|
|
|
return json |
|
|
|
}) |
|
|
|
const isBgm = this.selectedMaterial.find(item => { |
|
|
|
return item.material_type == 2 |
|
|
|
}) |
|
|
|
if (isBgm) { |
|
|
|
this.form.bgm_main = isBgm.deposit_url |
|
|
|
} else { |
|
|
|
this.form.bgm_main = null |
|
|
|
} |
|
|
|
saveRelease(this.form).then(res => { |
|
|
|
if (res.code == 200) { |
|
|
|
this.$message.success('发布成功!') |
|
|
|
localStorage.removeItem('selectedMaterial') |
|
|
|
releaseSubmit (formName) { |
|
|
|
this.$refs[formName].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
this.form.orga_id = this.orga_id |
|
|
|
// 先判断编辑还是新增 |
|
|
|
this.form.actual_end = this.publishType == 0 ? null : '' |
|
|
|
if (this.form.release_device) { |
|
|
|
if (this.form.release_device == 1) { |
|
|
|
this.form.release_deviceDTOs = [] |
|
|
|
} else { |
|
|
|
if (this.deviceTags.length == 0) { |
|
|
|
this.$message.error('请选择设备 !') |
|
|
|
return |
|
|
|
} |
|
|
|
this.form.release_deviceDTOs = this.deviceTags.map(item => { |
|
|
|
const json = {} |
|
|
|
json.device_id = item.device_id |
|
|
|
return json |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
this.form.release_type = this.publishType |
|
|
|
|
|
|
|
if (this.publishType == 0) { |
|
|
|
this.form.release_cycle = 0 |
|
|
|
this.form.release_weekly = null |
|
|
|
this.form.release_end = this.form.release_start |
|
|
|
} |
|
|
|
if (this.form.release_cycle == 2) { |
|
|
|
this.form.release_weekly = this.selectWeekly.join(',') |
|
|
|
} |
|
|
|
if (this.form.release_start instanceof Array) { |
|
|
|
const arrDate = this.form.release_start |
|
|
|
this.form.release_start = arrDate[0] |
|
|
|
this.form.release_end = arrDate[1] |
|
|
|
} |
|
|
|
if (this.selectedMaterial) { |
|
|
|
this.form.release_materialDTOs = this.selectedMaterial.map((item, index) => { |
|
|
|
const json = {} |
|
|
|
if (item.material_type == 0) { |
|
|
|
json.duration = (item.showTime || item.showAnimationName || item.showAnimation) ? item.showTime : 15 |
|
|
|
json.effect = (item.showTime || item.showAnimationName || item.showAnimation) ? item.showAnimation : 0 |
|
|
|
json.bgm_path = (item.showAudioName || item.showAudioUrl) ? item.showAudioUrl : null |
|
|
|
} else { |
|
|
|
json.duration = 0 |
|
|
|
json.effect = 0 |
|
|
|
json.bgm_path = null |
|
|
|
} |
|
|
|
json.material_id = item.material_id |
|
|
|
json.material_name = item.material_name |
|
|
|
json.img_path = item.img_path |
|
|
|
json.file_size = item.file_size |
|
|
|
json.rm_id = null |
|
|
|
json.ranking = index + 1 |
|
|
|
return json |
|
|
|
}) |
|
|
|
// 判断最外层是否有bgm |
|
|
|
const isBgm = this.selectedMaterial.find(item => { |
|
|
|
return item.material_type == 2 |
|
|
|
}) |
|
|
|
if (isBgm) { |
|
|
|
this.form.bgm_main = isBgm.deposit_url |
|
|
|
} else { |
|
|
|
this.form.bgm_main = null |
|
|
|
} |
|
|
|
saveRelease(this.form).then(res => { |
|
|
|
if (res.code == 200) { |
|
|
|
this.$message.success('发布成功!') |
|
|
|
localStorage.removeItem('selectedMaterial') |
|
|
|
} else { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$message.error('请选择发布内容!') |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.$message.error(res.msg) |
|
|
|
console.log('error submit!!'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
}) |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 获取设备列表 |
|
|
|
ReqDeviceList () { |
|
|
@ -661,8 +675,10 @@ export default { |
|
|
|
this.isMultiSelected = false |
|
|
|
this.mulitText = '多选' |
|
|
|
}, |
|
|
|
tab (index) { |
|
|
|
// 子菜单-tab |
|
|
|
tabItem (index) { |
|
|
|
this.activeItemIndex = index |
|
|
|
console.log(this.activeItemIndex) |
|
|
|
}, |
|
|
|
// 多选btn |
|
|
|
multiSelectBtn (type) { |
|
|
|