Browse Source

发布3

dev
xuhuajiao 3 years ago
parent
commit
8fc39fdcdf
  1. 24
      src/views/components/MaterialCompontentList.vue
  2. 166
      src/views/immediateRelease/index.vue

24
src/views/components/MaterialCompontentList.vue

@ -41,6 +41,10 @@ export default {
isMultiSelected: {
type: Boolean,
required: true
},
activeItemIndex: {
type: Number,
required: true
}
},
data () {
@ -50,6 +54,8 @@ export default {
thisFoldId: null, // ID
materialFolders: [], // list
materialList: [], // list
materialType: null,
materialTypeNot: null,
materialPostfix: [], //
selectedMaterial: [], //
selectedListId: [], // material_id
@ -72,6 +78,15 @@ export default {
if (newName === false) {
this.selectedListId = []
}
},
activeItemIndex (val) {
if (val == 0) {
this.materialType = null
this.materialTypeNot = 2
} else {
this.materialType = val - 1
}
this.getMaterialList()
}
},
mounted () {
@ -84,7 +99,6 @@ export default {
this.materialList = []
let params
if (this.isToFolder) {
console.log('文件夹内')
let folder_id
if (this.isReturn) {
folder_id = this.rootFolderId
@ -95,8 +109,8 @@ export default {
params = {
'folder_id': folder_id,
'material_name': null,
'material_type': null,
'material_type_not': '2',
'material_type': this.materialType,
'material_type_not': this.materialTypeNot,
'orga_id': this.orga_id
}
} else {
@ -105,8 +119,8 @@ export default {
params = {
'folder_id': null,
'material_name': null,
'material_type': null,
'material_type_not': '2',
'material_type': this.materialType,
'material_type_not': this.materialTypeNot,
'orga_id': this.orga_id
}
}

166
src/views/immediateRelease/index.vue

@ -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) {

Loading…
Cancel
Save