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/barrage/special_barrage.php

291 lines
14 KiB

{extend name="public/container"}
{block name='head_top'}
<style>
.layui-form-item .special-label i{display: inline-block;width: 18px;height: 18px;font-size: 18px;color: #fff;}
.layui-form-item .label-box p{line-height: inherit;}
.m-t-5{margin-top:5px;}
#app .layui-barrage-box{margin-bottom: 10px;margin-top: 10px;margin-left: 10px;border: 1px solid #0092DC;border-radius: 5px;cursor: pointer;position: relative;}
#app .layui-barrage-box.border-color{border-color: #0bb20c;}
#app .layui-barrage-box .del-text{position: absolute;top: 0;left: 0;background-color: rgba(0,0,0,0.5);color: #ffffff;width: 92%;text-align: center;}
#app .layui-barrage-box p{padding:5px 5px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
#app .layui-empty-text{text-align: center;font-size: 18px;}
#app .layui-empty-text p{padding: 10px 10px;}
</style>
{/block}
{block name="content"}
<div class="layui-fluid">
<div class="layui-card" id="app" v-cloak>
<div class="layui-card-header">拼团弹幕</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<form action="" class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">弹幕开关</label>
<div class="layui-input-block">
<input type="checkbox" checked="" name="open_barrage" lay-skin="switch" :value="open_barrage" lay-filter='is_show' lay-text="打开|关闭" :checked="open_barrage">
</div>
</div>
</form>
</div>
<div class="layui-col-md12">
<form action="" class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label required">头像:(300*300</label>
<div class="layui-input-block">
<div class="upload-image-box" v-if="avatar">
<img :src="avatar" alt="" style="border-radius: 5px;">
<div class="mask">
<p><i class="fa fa-eye" @click="look(avatar)"></i><i class="fa fa-trash-o" @click="avatar = ''"></i></p>
</div>
</div>
<div class="upload-image" v-show="!avatar" @click="upload(1)">
<div class="fiexd"><i class="fa fa-plus"></i></div>
<p>上传图片</p>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">昵称:</label>
<div class="layui-input-inline">
<input type="text" name="title" v-model="nickname" maxlength="30" autocomplete="off" placeholder="请输入昵称" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序:</label>
<div class="layui-input-inline">
<input type="number" name="sort" v-model="sort" autocomplete="off" 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="action" value="1" title="开团" v-model="action" lay-filter="action">
<input type="radio" name="action" value="2" title="参团" v-model="action" lay-filter="action">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" type="button" @click="save_barrage">{{id ? '立即修改':'立即提交'}}</button>
<button class="layui-btn layui-btn-primary clone" type="button" @click="empty_barrage">清空</button>
</div>
</div>
</form>
</div>
<div class="layui-col-md12">
<blockquote class="layui-elem-quote layui-quote-nm" style="margin: 10px;">
点击列表里面的弹幕可进行修改,取消修改请点击【清空】按钮;
</blockquote>
<div class="layui-row">
<div class="layui-col-md1 layui-barrage-box" :class="id==item.id ? 'border-color':'' " v-for="(item,index) in barrageList" @click.stop="set_barrage(item)">
<p @click.stop="del_barrage(item,index)" class="del-text"><span>删除</span></p>
<img :src="item.avatar" alt="" style="width: 100%;height: 136px;">
<p><span>用户名:</span>{{ item.nickname.length > 6 ? item.nickname.slice(0,5) : item.nickname }}</p>
<p><span>排序:</span>{{ item.sort }}</p>
<p><span>类型:</span>{{ item.action==1 ? '开团':'参团' }}</p>
</div>
<div class="layui-col-md12 layui-empty-text" v-if="barrageList.length <= 0">
<p>暂无数据</p>
</div>
</div>
<div class="layui-row" style="text-align: right;">
<div ref="barrage_page"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="{__ADMIN_PATH}js/request.js"></script>
<script type="text/javascript" src="{__ADMIN_PATH}js/layuiList.js"></script>
<script type="text/javascript" src="{__MODULE_PATH}widget/OssUpload.js"></script>
{/block}
{block name='script'}
<script>
var open_barrage=<?=$open_barrage ? (int)$open_barrage : 0?>;
require(['vue'],function(Vue) {
new Vue({
el: "#app",
data: {
avatar:'',
nickname:'',
sort:0,
action:1,
id:0,
open_barrage:open_barrage,
barrageList:[],
loading:false,
loadend:false,
page:1,
limit:22,
is_show:false
},
watch:{
page:function () {
this.get_barrage_list();
}
},
methods:{
del_barrage:function(item,index){
var that=this;
layList.layer.confirm('是否删除【'+item.nickname+'】虚拟用户的弹幕?', {
btn: ['删除','我在想想'] //按钮
}, function(){
layList.baseGet(layList.U({a:'del_barrage',q:{id:item.id}}),function () {
that.get_barrage_list();
layList.msg('删除成功');
});
}, function(){
that.get_barrage_list();
});
},
set_barrage:function(item){
this.action=item.action;
this.avatar=item.avatar;
this.avatar.is_show=false;
this.$set(this,'avatar',this.avatar);
this.sort=item.sort;
this.id=item.id;
this.nickname=item.nickname;
this.$nextTick(function () {
layList.form.render('radio');
})
},
empty_barrage:function(){
if(this.id){
this.avatar='';
this.nickname='';
this.sort=0;
this.action=1;
this.id=0;
}else{
this.avatar='';
this.nickname='';
this.sort=0;
this.action=1;
}
},
save_barrage:function(){
var that=this;
if(!this.avatar) return layList.msg('请上传虚拟用户头像');
if(!this.nickname) return layList.msg('请输入虚拟用户昵称');
layList.loadFFF();
layList.basePost(layList.U({a:'save_barrage'}),{nickname:that.nickname,avatar:that.avatar,action:that.action,sort:that.sort,id:that.id},function (res) {
layList.loadClear();
if(that.id) return layList.msg('修改成功',function () {
that.avatar='';
that.nickname='';
that.sort=0;
that.action=1;
that.id=0;
that.$nextTick(function () {
layList.form.render('radio');
})
});
layList.layer.confirm('添加成功,是保留当前内容?', {
btn: ['保留','清空'] //按钮
}, function(index){
that.get_barrage_list();
layList.layer.close(index);
}, function(){
that.avatar='';
that.nickname='';
that.sort=0;
that.action=1;
that.get_barrage_list();
});
},function (res) {
layList.loadClear();
});
},
//删除图片
delect:function(act,key,index) {
var that = this;
that.avatar = '';
},
//查看图片
look:function(pic){
$eb.openImage(pic);
},
//鼠标移入事件
enter:function(){
this.avatar.is_show=true;
this.$set(this,'avatar',this.avatar);
},
//鼠标移出事件
leave:function(){
this.avatar.is_show=false;
this.$set(this,'avatar',this.avatar);
},
changeIMG:function(key,value,multiple){
if(multiple){
var that = this;
value.map(function (v) {
that[key].push({pic:v,is_show:false});
});
this.$set(this,key,this[key]);
}else{
this.$set(this,key,value);
}
},
//上传图片
upload:function() {
ossUpload.createFrame('选择头像',{fodder:'avatar'},{w:800,h:550});
},
get_barrage_list:function(){
var that=this;
if(that.loading) return;
if(that.loadend) return;
that.loading=true;
layList.baseGet(layList.U({a:'get_barrage_list',q:{page:that.page,limit:that.limit}}),function (res){
that.loading=false;
that.$set(that,'barrageList',res.data.list);
that.page === 1 && that.set_page(res.data.count);
that.$nextTick(function () {
layList.form.render('radio');
})
},function (res) {
that.loading=false;
});
},
set_page:function (count){
var that=this;
layList.laypage.render({
elem: this.$refs.barrage_page,
count: count,
limit:this.limit,theme: '#1E9FFF',
jump:function (obj,first) {
if (!first) {
that.page=obj.curr;
}
}
});
}
},
mounted:function () {
var that=this;
this.$nextTick(function () {
layList.form.render();
});
this.get_barrage_list();
window.changeIMG = this.changeIMG;
layList.form.on('radio(action)',function (data) {
that.action=data.value;
});
layList.switch('is_show',function (odj,value) {
if(odj.elem.checked==true){
layList.baseGet(layList.Url({a:'set_barrage_show',p:{value:1,key_nime:'open_barrage'}}),function (res) {
layList.msg(res.msg);
});
}else{
layList.baseGet(layList.Url({a:'set_barrage_show',p:{value:0,key_nime:'open_barrage'}}),function (res) {
layList.msg(res.msg);
});
}
});
}
})
})
</script>
{/block}