define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'video/index' + location.search,
add_url: 'video/add',
edit_url: 'video/edit',
del_url: 'video/del',
multi_url: 'video/multi',
//import_url: 'video/import',
table: 'video',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'video.id',
searchFormVisible:true,
columns: [
[
//{checkbox: true},
{field: 'id', title: __('Id'),sortable:true,},
{field: 'title', title: __('标题'),formatter(a){
if(a.length>10){
return `${a.substr(0,10)}...`
}
return a
}},
{field: 'bg', title: __('Bg'),formatter: Table.api.formatter.image,events: Table.api.events.image},
{field: 'src', title: __('Src'),formatter(link){
return `查看`
}},
{field: 'tag.name',operate:'LIKE', title: __('标签'),formatter(a,b){
if(!b.tag){
return
}
let tag=[]
b.tag.split(',').forEach(item=>{
tag.push(`
${item}
`)
})
return tag.join('
')
},
},
{field: 'play_num', title: __('Play_num'),sortable:true,},
{field: 'comment_num', title: __('Comment_num'),sortable:true,},
{field: 'like_num', title: __('Like_num'),sortable:true,},
{field: 'fav_num', title: __('Fav_num'),sortable:true,},
{field: 'created_at', title: __('Created_at'),operate: "RANGE",formatter: Table.api.formatter.datetime,addclass:'datetimerange',sortable:true,},
//{field: 'weight', title: __('Weight')},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
buttons:[
{
name: 'detail',
text: __('查看卡点'),
title: __('查看卡点'),
classname: 'btn btn-xs btn-info btn-addtabs',
url: 'video_point/index?xxxx=1',
callback: function (data) {},
visible: function (row) {
return true;
}
}
]
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
$(".btn-add").data("area", ["100%","100%"]);
},
add: function () {
Controller.api.bindevent();
$(document).on('click','.add-point',function (){
let type=$(this).data('point'),time=Date.now()
$('#point-list')
.append($(`#point-all>.point-${type}`)
.clone()
.attr('data-id',time)
.removeClass('hidden')[0]
.outerHTML
.replaceAll('$idx',time).replaceAll('$index',time+1))
Controller.api.bindevent();
})
$(document).on('change','.choose-type input[type=radio]',function (){
if(this.value==='txt'){
$(this).parents('.form-group-choose-type').next().removeClass('hidden').next().addClass('hidden')
$(this).parents('.point-list-one').find('.key-checkbox-image').attr('checked',false)
}else{
$(this).parents('.form-group-choose-type').next().addClass('hidden').next().removeClass('hidden')
$(this).parents('.point-list-one').find('.key-checkbox-txt').attr('checked',false)
}
Controller.api.bindevent();
})
$(document).on('click','.add-image',function (){
let a='';
if($(this).hasClass('add-image-vote')){
a='vote'
}else if($(this).hasClass('add-image-choose')){
a='choose'
}
let classEle=`.image-example-${a}`
let ele=$(classEle)[0].outerHTML
let time=$(this).parents('.point-list-one').data('id')
ele=ele.replaceAll('$index',Date.now()).replaceAll('$idx',time).replaceAll(classEle.substr(1),'').replaceAll(` style="display: none;"`,'')
$(this).parent().append(ele)
Controller.api.bindevent()
})
$(document).on('click','.add-txt',function (){
let ele=$(this).next().html()
ele=ele.replaceAll(/\[\d+]"/g,`[${Date.now()}]"`)
$(this).parent().append(ele)
})
$(document).on('click','.vote-add-txt-item',function (){
$(this).parent().append($(this).next().html())
})
$(document).on('change','.title-type-change>select',function (){
if(this.value==='txt'){
$(this).parent().parent().next().removeClass('hidden').find('input').attr('disabled',false)
$(this).parent().parent().next().next().addClass('hidden').find('input').attr('disabled',true)
}else{
$(this).parent().parent().next().next().removeClass('hidden').find('input').attr('disabled',false)
$(this).parent().parent().next().addClass('hidden').find('input').attr('disabled',true)
}
})
},
edit: function () {
Controller.api.bindevent();
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});