You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zhishifufei_php/application/admin/view/special/special_examine/special.php

565 lines
30 KiB

{extend name="public/container" /}
{block name="head_top"}
<link rel="stylesheet" href="//g.alicdn.com/de/prismplayer/2.9.21/skins/default/aliplayer-min.css">
<script src="//g.alicdn.com/de/prismplayer/2.9.21/aliplayer-min.js"></script>
<style>
.xl-chrome-ext-bar {
display: none;
}
.prism-player .prism-cc-btn,
.prism-player .prism-setting-list .prism-setting-cc,
.prism-player .prism-setting-list .prism-setting-audio,
.prism-player .prism-setting-list .prism-setting-quality {
display: none;
}
.layui-col-md12 img {
max-width: 100%;
max-height: 500px;
vertical-align: top;
}
.layui-form-item img~img {
margin-left: 10px;
}
.layui-form-radioed.layui-radio-disbaled>i {
color: #0092DC !important;
}
.layui-disabled,
.layui-disabled:hover {
color: #333 !important;
cursor: auto !important;
}
.layui-form-radioed.layui-disabled,
.layui-form-radioed.layui-disabled:hover {
color: #0092DC !important;
}
.rich-text {
min-height: 100px;
padding: 4px 7px;
border: 1px solid #dddee1;
}
</style>
{/block}
{block name="content"}
<div v-cloak id="app" class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-form">
<div class="layui-tab layui-tab-brief" lay-filter="tab">
<ul class="layui-tab-title">
<li v-for="(item, index) in tabTitle" :key="item.value" :class="{ 'layui-this': !index }">{{ item.title }}</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-form-item">
<label class="layui-form-label">专题名称:</label>
<div class="layui-input-block">
<input :value="special.title" disabled type="text" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专题简介:</label>
<div class="layui-input-block">
<textarea disabled class="layui-textarea">{{ special.abstract }}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专题类型:</label>
<div class="layui-input-block">
<input :value="type" disabled type="text" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专题标签:</label>
<div class="layui-input-block">
<button v-for="(item, index) in special.label" :key="index" type="button" class="layui-btn layui-btn-normal layui-btn-sm">{{item}}</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专题排序:</label>
<div class="layui-input-inline">
<input :value="special.sort" disabled type="text" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专题封面:</label>
<div class="layui-input-block">
<img width="60" height="60" :src="special.image" @click="look(special.image)">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">推广海报:</label>
<div class="layui-input-block">
<img width="60" height="60" :src="special.poster_image" @click="look(special.poster_image)">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">客服二维码:</label>
<div class="layui-input-block">
<img width="60" height="60" :src="special.service_code" @click="look(special.service_code)">
</div>
</div>
<div v-if="!special.is_light" class="layui-form-item">
<label class="layui-form-label">专题Banner:</label>
<div class="layui-input-block">
<img v-for="(item, index) in special.banner" width="60" height="60" :src="item.pic" @click="look(special.banner, index)">
</div>
</div>
<div v-if="special.type === 4" class="layui-form-item">
<label class="layui-form-label">直播时间:</label>
<div class="layui-input-inline">
<input :value="liveInfo.start_play_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.type === 4" class="layui-form-item">
<label class="layui-form-label">直播时长:</label>
<div class="layui-input-inline">
<input :value="liveInfo.start_play_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.type === 4" class="layui-form-item">
<label class="layui-form-label">开播提醒:</label>
<div class="layui-input-block">
<input type="radio" name="is_remind" disabled value="1" title="是" :checked="liveInfo.is_remind == 1">
<input type="radio" name="is_remind" disabled value="0" title="否" :checked="liveInfo.is_remind == 0">
</div>
</div>
<div v-if="special.type === 4 && liveInfo.is_remind" class="layui-form-item">
<label class="layui-form-label">提醒时间:</label>
<div class="layui-input-inline">
<input :value="liveInfo.remind_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.type === 4" class="layui-form-item">
<label class="layui-form-label">直播录制:</label>
<div class="layui-input-block">
<input type="radio" name="is_recording" disabled value="1" title="是" :checked="liveInfo.is_recording == 1">
<input type="radio" name="is_recording" disabled value="0" title="否" :checked="liveInfo.is_recording == 0">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">仅会员可见:</label>
<div class="layui-input-block">
<input type="radio" name="is_mer_visible" disabled value="1" title="是" :checked="special.is_mer_visible == 1">
<input type="radio" name="is_mer_visible" disabled value="0" title="否" :checked="special.is_mer_visible == 0">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">有效期:</label>
<div class="layui-input-inline">
<input :value="special.validity" disabled type="text" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">付费方式:</label>
<div class="layui-input-block">
<input type="radio" name="pay_type" disabled value="0" title="免费" :checked="special.pay_type == 0">
<input type="radio" name="pay_type" disabled value="1" title="付费" :checked="special.pay_type == 1">
<input type="radio" name="pay_type" disabled value="2" title="加密" :checked="special.pay_type == 2">
</div>
</div>
<div v-if="special.pay_type" class="layui-form-item">
<label class="layui-form-label">购买金额:</label>
<div class="layui-input-inline">
<input :value="special.money" disabled type="text" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">会员付费方式:</label>
<div class="layui-input-block">
<input type="radio" name="member_pay_type" disabled value="0" title="免费" :checked="special.member_pay_type == 0">
<input type="radio" name="member_pay_type" disabled value="1" title="付费" :checked="special.member_pay_type == 1">
</div>
</div>
<div v-if="special.member_pay_type" class="layui-form-item">
<label class="layui-form-label">会员购买金额:</label>
<div class="layui-input-inline">
<input :value="special.member_money" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.pay_type" class="layui-form-item">
<label class="layui-form-label">单独分销:</label>
<div class="layui-input-block">
<input type="radio" name="is_alone" disabled value="1" title="开启" :checked="special.is_alone == 1">
<input type="radio" name="is_alone" disabled value="0" title="关闭" :checked="special.is_alone == 0">
</div>
</div>
<div v-if="special.pay_type && special.is_alone" class="layui-form-item">
<label class="layui-form-label">一级返佣比例:</label>
<div class="layui-input-inline">
<input :value="special.brokerage_ratio" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.pay_type && special.is_alone" class="layui-form-item">
<label class="layui-form-label">二级返佣比例:</label>
<div class="layui-input-inline">
<input :value="special.brokerage_two" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.pay_type" class="layui-form-item">
<label class="layui-form-label">拼团状态:</label>
<div class="layui-input-block">
<input type="radio" name="is_pink" disabled value="1" title="开启" :checked="special.is_pink == 1">
<input type="radio" name="is_pink" disabled value="0" title="关闭" :checked="special.is_pink == 0">
</div>
</div>
<div v-if="special.pay_type && special.is_pink" class="layui-form-item">
<label class="layui-form-label">拼团金额:</label>
<div class="layui-input-inline">
<input :value="special.pink_money" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.pay_type && special.is_pink" class="layui-form-item">
<label class="layui-form-label">拼团人数:</label>
<div class="layui-input-inline">
<input :value="special.pink_number" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.is_pink" class="layui-form-item">
<label class="layui-form-label">拼团开始时间:</label>
<div class="layui-input-inline">
<input :value="special.pink_strar_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.is_pink" class="layui-form-item">
<label class="layui-form-label">拼团结束时间:</label>
<div class="layui-input-inline">
<input :value="special.pink_end_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.is_pink" class="layui-form-item">
<label class="layui-form-label">拼团时间:</label>
<div class="layui-input-inline">
<input :value="special.pink_time" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.is_pink" class="layui-form-item">
<label class="layui-form-label">模拟成团:</label>
<div class="layui-input-inline">
<input type="radio" name="is_fake_pink" disabled value="1" title="开启" :checked="special.is_fake_pink == 1">
<input type="radio" name="is_fake_pink" disabled value="0" title="关闭" :checked="special.is_fake_pink == 0">
</div>
</div>
<div v-if="special.is_pink" class="layui-form-item">
<label class="layui-form-label">补齐比例:</label>
<div class="layui-input-inline">
<input :value="special.fake_pink_number" disabled type="text" class="layui-input">
</div>
</div>
<div v-if="special.is_light" class="layui-form-item">
<label class="layui-form-label">试看:</label>
<div class="layui-input-inline">
<input type="radio" name="is_try" disabled value="1" title="开启" :checked="special.singleProfile.is_try == 1">
<input type="radio" name="is_try" disabled value="0" title="关闭" :checked="special.singleProfile.is_try == 0">
</div>
</div>
<div v-if="special.is_light && special.light_type !== 1 && special.singleProfile.is_try" class="layui-form-item">
<label class="layui-form-label">试看时长:</label>
<div class="layui-input-inline">
<input :value="special.singleProfile.try_time" disabled type="text" class="layui-input">
</div>
</div>
</div>
<div class="layui-tab-item">
<div v-if="special.is_light" class="rich-text" v-html="special.abstract"></div>
<div v-else class="rich-text" v-html="special.profile.content"></div>
</div>
<div v-if="special.is_light" class="layui-tab-item">
<div class="layui-row layui-col-space15">
<div v-if="special.light_type === 1 && special.singleProfile.is_try" class="layui-col-md12" v-html="special.singleProfile.try_content"></div>
<div v-if="special.light_type === 1" class="layui-col-md12" v-html="special.singleProfile.content"></div>
<div v-else class="layui-col-md12">
<div id="J_prismPlayer"></div>
</div>
</div>
</div>
<div v-else class="layui-tab-item">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<table id="source" lay-filter="source"></table>
</div>
</div>
</div>
</div>
</div>
</div>
<form class="layui-form" lay-filter="form" action="">
<div class="layui-form-item">
<label class="layui-form-label">审核状态:</label>
<div class="layui-input-block">
<input type="radio" name="status" value="1" title="通过" lay-filter="status">
<input type="radio" name="status" value="-1" title="拒绝" lay-filter="status">
</div>
</div>
<div v-if="status === -1" class="layui-form-item">
<label class="layui-form-label">拒绝原因:</label>
<div class="layui-input-block">
<textarea name="fail_message" required lay-verify="required" placeholder="请输入拒绝原因" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="*">提交</button>
</div>
</div>
</form>
</div>
</div>
</div>
<script type="text/html" id="image">
<img width="60" height="60" src="{{d.image}}" lay-event="image">
</script>
<script type="text/html" id="type">
{{# if(d.type === 1) { }}
图文
{{# } else if (d.type === 2) { }}
音频
{{# } else { }}
视频
{{# } }}
</script>
<script type="text/html" id="toolbar">
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">详情</a>
</script>
{/block}
{block name="foot"}
<script src="{__ADMIN_PATH}js/layuiList.js"></script>
<script>
require(['vue'], function (Vue) {
var special = {$special},
liveInfo = {$liveInfo},
form = layui.form,
layer = layui.layer,
parentLayer = parent.layui.layer,
table = layui.table,
element = layui.element,
tabTitle = [
{
title: '信息',
value: 1
},
{
title: '详情',
value: 2
},
{
title: '素材',
value: 3
},
{
title: '内容',
value: 4
}
];
for (var index = tabTitle.length; index--;) {
if (special.type === 4) {
tabTitle[index].title = '直播' + tabTitle[index].title;
if (tabTitle[index].value === 3 || tabTitle[index].value === 4) {
tabTitle.splice(index, 1);
}
} else if (special.type === 5) {
tabTitle[index].title = '专栏' + tabTitle[index].title;
if (tabTitle[index].value === 3 || tabTitle[index].value === 4) {
tabTitle.splice(index, 1);
}
} else {
tabTitle[index].title = '专题' + tabTitle[index].title;
if (special.is_light) {
if (tabTitle[index].value === 3) {
tabTitle.splice(index, 1);
}
} else {
if (tabTitle[index].value === 4) {
tabTitle.splice(index, 1);
}
}
}
}
new Vue({
el: '#app',
data: {
special: special,
liveInfo: liveInfo,
tabTitle: tabTitle,
status: 1
},
computed: {
type: function () {
switch (this.special.type) {
case 1: return '图文专题';
case 2: return '音频专题';
case 3: return '视频专题';
case 4: return '直播专题';
case 5: return '专栏专题';
case 6: return '轻专题';
}
}
},
mounted: function () {
this.$nextTick(function () {
var vm = this;
this.getSourceList();
form.val('form', {
status: this.status
});
form.render();
form.on('radio(status)', function (data) {
vm.status = Number(data.value);
});
form.on('submit(*)', function (data) {
vm.status === 1 ? vm.success() : vm.fail(data.field.fail_message);
return false;
});
element.on('tab(tab)', function (data) {
if (data.index === 2) {
if (vm.special.type === 1 || vm.special.type === 2 || vm.special.type === 3) {
table.resize('source');
}
} else {
if (vm.special.type === 6 && vm.special.light_type !== 1 && vm.player && vm.player.getStatus() === 'playing') {
vm.player.pause();
}
}
});
table.on('tool(source)', function (obj) {
if (obj.event === 'detail') {
layer.open({
type: 2,
title: obj.data.title,
maxmin: true,
area: ['90%', '90%'],
content: layList.U({
a: 'getSources',
q: {
id: obj.data.source_id
}
})
});
} else if (obj.event === 'image') {
vm.look(obj.data.image);
}
});
// 轻专题
if (this.special.is_light) {
if (this.special.light_type !== 1) {
if (this.special.singleProfile.videoId) {
// 点播
layList.basePost(layList.U({
a: 'video_upload_address_voucher'
}), {
FileName: '',
type: 3,
image: '',
videoId: this.special.singleProfile.videoId
}, function (res) {
$.getJSON(res.msg, function (data) {
vm.createPlayer(data.PlayInfoList.PlayInfo[0].PlayURL);
});
});
} else {
this.createPlayer(this.special.singleProfile.link);
}
}
}
});
},
methods: {
// 审核通过
success: function () {
layList.baseGet(layList.U({
a: 'succ',
p: {
id: this.special.id
}
}), function (res) {
layer.msg(res.msg, {
icon: 1,
time: 2000
}, function () {
parentLayer.close(parentLayer.getFrameIndex(window.name));
});
});
},
// 审核拒绝
fail: function (message) {
layList.basePost(layList.U({
a: 'fail',
p: {
id: this.special.id
}
}), {
message: message
}, function (res) {
layer.msg(res.msg, {
icon: 1,
time: 2000
}, function () {
parentLayer.close(parentLayer.getFrameIndex(window.name));
});
});
},
look: function () {
var data = [];
if (arguments.length === 1) {
data.push({
src: arguments[0]
});
} else {
arguments[0].forEach(function (item) {
data.push({
src: item.pic
});
});
}
layer.photos({
photos: {
start: arguments[1] || 0,
data: data
},
anim: 5
});
},
// 获得已关联的素材
getSourceList: function () {
table.render({
elem: '#source',
url: layList.U({
a: 'get_source_sure_list'
}),
where: {
id: this.special.id,
order: this.special.sort_order
},
cols: [[
{field: 'id', title: 'ID', align: 'center'},
{field: 'title', title: '名称', align: 'center'},
{field: 'type', title: '类型', align: 'center', templet: '#type'},
{field: 'image', title: '封面', align: 'center', templet: '#image'},
{field: 'sort', title: '排序', align: 'center'},
{fixed: 'right', title: '操作', align: 'center', toolbar: '#toolbar'}
]],
});
},
// 创建播放器
createPlayer: function (source) {
this.player = new Aliplayer({
id: 'J_prismPlayer',
height: '500px',
autoplay: false,
source: source
}, function (player) {
console.log('The player is created.');
});
}
}
});
});
</script>
{/block}