|
@@ -1,7 +1,7 @@
|
|
<template>
|
|
<template>
|
|
<div class='app-container'>
|
|
<div class='app-container'>
|
|
- <el-form class="form" label-width="auto" ref="form" :model="data.form" :rules="data.rules">
|
|
|
|
- <el-form-item class="chooseAudio" label="内容音频:" prop="audioList">
|
|
|
|
|
|
+ <el-form class="form" label-width="100px" ref="form" :model="data.form" :rules="data.rules">
|
|
|
|
+ <el-form-item class="chooseAudio" label="插播音频:" prop="audioList">
|
|
<div class="audioList" v-for="(item, index) in data.form.audioList" :key="item.id">
|
|
<div class="audioList" v-for="(item, index) in data.form.audioList" :key="item.id">
|
|
<el-tag v-show="item.type === 0 || item.type === 1" size="large" :closable="checkClose()"
|
|
<el-tag v-show="item.type === 0 || item.type === 1" size="large" :closable="checkClose()"
|
|
@close="handleClose(index)">
|
|
@close="handleClose(index)">
|
|
@@ -14,20 +14,31 @@
|
|
</div>
|
|
</div>
|
|
<el-button v-if="checkClose()" icon="Plus" @click="getDialog">选择音频</el-button>
|
|
<el-button v-if="checkClose()" icon="Plus" @click="getDialog">选择音频</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="内容设定:" prop="name">
|
|
|
|
|
|
+ <el-form-item class="chooseAudio" label="内容设定:" prop="name">
|
|
|
|
+ <div class="audioList">
|
|
|
|
+ <el-tag v-if="data.form.name" size="large" style="height: 50px; line-height: 20px">
|
|
|
|
+ <div>{{ data.form.name }}</div>
|
|
|
|
+ <div>{{ data.disabledDate[0] }} - {{ data.disabledDate[1] }}</div>
|
|
|
|
+ </el-tag>
|
|
|
|
+ </div>
|
|
<el-button icon="Plus" @click="getContentDialog">选择内容</el-button>
|
|
<el-button icon="Plus" @click="getContentDialog">选择内容</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="播放时间:" prop="listDate">
|
|
<el-form-item label="播放时间:" prop="listDate">
|
|
<div class="date" v-for="(item, index) in data.dateList">
|
|
<div class="date" v-for="(item, index) in data.dateList">
|
|
<el-date-picker v-model="data.dateList[index]" type="datetimerange" start-placeholder="开始时间"
|
|
<el-date-picker v-model="data.dateList[index]" type="datetimerange" start-placeholder="开始时间"
|
|
end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
|
|
end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
|
|
- @change="handleChangeDate($event, index)" />
|
|
|
|
|
|
+ :disabled-date="getDisabledDate" @change="handleChangeDate($event, index)" />
|
|
<el-link v-show="data.dateList.length > 1" icon="CircleClose" :underline="false"
|
|
<el-link v-show="data.dateList.length > 1" icon="CircleClose" :underline="false"
|
|
@click="handleDeleteDate(index)" />
|
|
@click="handleDeleteDate(index)" />
|
|
<el-link v-show="data.dateList.length - 1 === index" icon="CirclePlus" :underline="false"
|
|
<el-link v-show="data.dateList.length - 1 === index" icon="CirclePlus" :underline="false"
|
|
@click="handlePushDate" />
|
|
@click="handlePushDate" />
|
|
</div>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item v-if="data.form.id" label="当前状态:" prop="status">
|
|
|
|
+ <el-select v-model="data.form.status" placeholder="请选择当前状态">
|
|
|
|
+ <el-option v-for="item in sys_change_status" :key="item.value" :value="item.value" :label="item.label" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div class="form-btn">
|
|
<div class="form-btn">
|
|
<el-button @click="getClose">取消</el-button>
|
|
<el-button @click="getClose">取消</el-button>
|
|
@@ -92,17 +103,21 @@
|
|
<el-input v-model="settingData.form.name" placeholder="请输入内容名称" clearable />
|
|
<el-input v-model="settingData.form.name" placeholder="请输入内容名称" clearable />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-button type="primary" @click="getSearch">搜索</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="getSearchContent">搜索</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
- <el-table>
|
|
|
|
- <el-table-column label="内容ID" align="center"></el-table-column>
|
|
|
|
- <el-table-column label="内容名称" align="center"></el-table-column>
|
|
|
|
- <el-table-column label="当前状态" align="center"></el-table-column>
|
|
|
|
- <el-table-column label="播放时段" align="center"></el-table-column>
|
|
|
|
- <el-table-column label="操作" align="center">
|
|
|
|
|
|
+ <el-table :data="settingData.tableData">
|
|
|
|
+ <el-table-column label="内容ID" prop="id" align="center" width="200" />
|
|
|
|
+ <el-table-column label="内容名称" prop="name" align="center" width="200" />
|
|
|
|
+ <el-table-column label="当前状态" prop="status" align="center" width="100" :formatter="statusFormatter" />
|
|
|
|
+ <el-table-column label="播放时段" align="center">
|
|
|
|
+ <template #default="scope">
|
|
|
|
+ {{ scope.row.startTime }} - {{ scope.row.endTime }}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="操作" align="center" width="100">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
- <el-button type="primary" link>选择</el-button>
|
|
|
|
|
|
+ <el-button type="primary" link @click="handleCheckTime(scope.row)">选择</el-button>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -111,6 +126,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
|
+import { submit } from '@/api/content/insert'
|
|
import { useAudioList, useAudioClass, useSettingList } from '@/hooks/index'
|
|
import { useAudioList, useAudioClass, useSettingList } from '@/hooks/index'
|
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
const { proxy } = getCurrentInstance();
|
|
@@ -130,6 +146,8 @@ const data = reactive({
|
|
},
|
|
},
|
|
// 时间段
|
|
// 时间段
|
|
dateList: [[]],
|
|
dateList: [[]],
|
|
|
|
+ // 限制时段
|
|
|
|
+ disabledDate: [],
|
|
// 分页
|
|
// 分页
|
|
radioOptions: [{
|
|
radioOptions: [{
|
|
value: 0,
|
|
value: 0,
|
|
@@ -148,8 +166,14 @@ const data = reactive({
|
|
audioList: [{
|
|
audioList: [{
|
|
required: true, message: '请选择音频', trigger: 'change'
|
|
required: true, message: '请选择音频', trigger: 'change'
|
|
}],
|
|
}],
|
|
|
|
+ name: [{
|
|
|
|
+ required: true, message: '请选择需要插播的内容设定', trigger: 'change'
|
|
|
|
+ }],
|
|
listDate: [{
|
|
listDate: [{
|
|
required: true, message: '请选择播放时间', trigger: 'change'
|
|
required: true, message: '请选择播放时间', trigger: 'change'
|
|
|
|
+ }],
|
|
|
|
+ status: [{
|
|
|
|
+ required: true, message: '请选择当前状态', trigger: 'change'
|
|
}]
|
|
}]
|
|
},
|
|
},
|
|
business_store: []
|
|
business_store: []
|
|
@@ -244,6 +268,11 @@ const getSearch = () => {
|
|
getAudio()
|
|
getAudio()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+const getSearchContent = () => {
|
|
|
|
+ settingData.form.pageNum = 1
|
|
|
|
+ getSetting()
|
|
|
|
+}
|
|
|
|
+
|
|
// 重置
|
|
// 重置
|
|
const getRefresh = () => {
|
|
const getRefresh = () => {
|
|
audioData.form = {
|
|
audioData.form = {
|
|
@@ -290,6 +319,15 @@ const handleChooseAudio = (e) => {
|
|
dialogVisible_audio.value = false
|
|
dialogVisible_audio.value = false
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 选择时段
|
|
|
|
+const handleCheckTime = (e) => {
|
|
|
|
+ data.form.contentPlayTimeId = e.id
|
|
|
|
+ data.form.name = e.name
|
|
|
|
+ data.disabledDate = [e.startTime, e.endTime]
|
|
|
|
+ proxy.$modal.msgSuccess('选择成功!')
|
|
|
|
+ dialogVisible_content.value = false
|
|
|
|
+}
|
|
|
|
+
|
|
// 确定
|
|
// 确定
|
|
const getPush = () => {
|
|
const getPush = () => {
|
|
data.form.audioList = []
|
|
data.form.audioList = []
|
|
@@ -332,25 +370,40 @@ const handleChangeDate = (e, index) => {
|
|
const start = new Date(e[0]).getTime()
|
|
const start = new Date(e[0]).getTime()
|
|
const end = new Date(e[1]).getTime()
|
|
const end = new Date(e[1]).getTime()
|
|
|
|
|
|
- for (let i = 0; i < data.dateList.length; i++) {
|
|
|
|
- if (i !== index) {
|
|
|
|
- let st = new Date(data.dateList[i][0]).getTime()
|
|
|
|
- let en = new Date(data.dateList[i][1]).getTime()
|
|
|
|
|
|
+ let disabledStart = new Date(data.disabledDate[0]).getTime()
|
|
|
|
+ let disabledEnd = new Date(data.disabledDate[1]).getTime()
|
|
|
|
+
|
|
|
|
+ if (start > disabledStart && end < disabledEnd) {
|
|
|
|
+ for (let i = 0; i < data.dateList.length; i++) {
|
|
|
|
+ if (i !== index) {
|
|
|
|
+ let st = new Date(data.dateList[i][0]).getTime()
|
|
|
|
+ let en = new Date(data.dateList[i][1]).getTime()
|
|
|
|
|
|
- if (start >= st && start <= en || end >= st && end <= en || start <= st && end >= en || end <= st && start >= en) {
|
|
|
|
- data.dateList.splice(index, 1)
|
|
|
|
- proxy.$modal.msgError("该时间段已设置!")
|
|
|
|
- return false
|
|
|
|
|
|
+ if (start >= st && start <= en || end >= st && end <= en || start <= st && end >= en || end <= st && start >= en) {
|
|
|
|
+ data.dateList[index] = []
|
|
|
|
+ proxy.$modal.msgError("该时间段已设置!")
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ data.form.listDate.push({
|
|
|
|
+ startTime: data.dateList[i][0],
|
|
|
|
+ endTime: data.dateList[i][1]
|
|
|
|
+ })
|
|
}
|
|
}
|
|
- data.form.listDate.push({
|
|
|
|
- startTime: data.dateList[i][0],
|
|
|
|
- endTime: data.dateList[i][1]
|
|
|
|
- })
|
|
|
|
|
|
+ } else {
|
|
|
|
+ data.dateList[index] = []
|
|
|
|
+ proxy.$modal.msgError("请在所选内容设定时间范围内插播")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 禁选时间
|
|
|
|
+const getDisabledDate = (e) => {
|
|
|
|
+ if (data.disabledDate.length > 0) {
|
|
|
|
+ return e.getTime() < new Date(data.disabledDate[0]).getTime() - 8.64e7 || e.getTime() > new Date(data.disabledDate[1]).getTime()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
// 所属企业
|
|
// 所属企业
|
|
const index = ref(0)
|
|
const index = ref(0)
|
|
const handleChangeTenant = (e, i) => {
|
|
const handleChangeTenant = (e, i) => {
|
|
@@ -361,7 +414,7 @@ const handleChangeTenant = (e, i) => {
|
|
|
|
|
|
// 取消
|
|
// 取消
|
|
const getClose = () => {
|
|
const getClose = () => {
|
|
- proxy.$tab.closeOpenPage('/content/setting')
|
|
|
|
|
|
+ proxy.$tab.closeOpenPage('/content/insert')
|
|
}
|
|
}
|
|
|
|
|
|
// 提交
|
|
// 提交
|
|
@@ -472,4 +525,8 @@ watch(() => audioData.form.type, (val) => {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.date:last-child{
|
|
|
|
+ margin: 0;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|