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; });