video.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'video/index' + location.search,
  8. add_url: 'video/add',
  9. edit_url: 'video/edit',
  10. del_url: 'video/del',
  11. multi_url: 'video/multi',
  12. //import_url: 'video/import',
  13. table: 'video',
  14. }
  15. });
  16. var table = $("#table");
  17. // 初始化表格
  18. table.bootstrapTable({
  19. url: $.fn.bootstrapTable.defaults.extend.index_url,
  20. pk: 'id',
  21. sortName: 'video.id',
  22. searchFormVisible:true,
  23. columns: [
  24. [
  25. //{checkbox: true},
  26. {field: 'id', title: __('Id'),sortable:true,},
  27. {field: 'title', title: __('标题'),formatter(a){
  28. if(a.length>10){
  29. return `<span title="${a}">${a.substr(0,10)}...</span>`
  30. }
  31. return a
  32. }},
  33. {field: 'bg', title: __('Bg'),formatter: Table.api.formatter.image,events: Table.api.events.image},
  34. {field: 'src', title: __('Src'),formatter(link){
  35. return `<a target="_blank" href="${link}">查看</a>`
  36. }},
  37. {field: 'tag.name',operate:'LIKE', title: __('标签'),formatter(a,b){
  38. if(!b.tag){
  39. return
  40. }
  41. let tag=[]
  42. b.tag.split(',').forEach(item=>{
  43. tag.push(`<p class="label label-success">${item}</p>`)
  44. })
  45. return tag.join('<br>')
  46. },
  47. },
  48. {field: 'play_num', title: __('Play_num'),sortable:true,},
  49. {field: 'comment_num', title: __('Comment_num'),sortable:true,},
  50. {field: 'like_num', title: __('Like_num'),sortable:true,},
  51. {field: 'fav_num', title: __('Fav_num'),sortable:true,},
  52. {field: 'created_at', title: __('Created_at'),operate: "RANGE",formatter: Table.api.formatter.datetime,addclass:'datetimerange',sortable:true,},
  53. //{field: 'weight', title: __('Weight')},
  54. {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
  55. buttons:[
  56. {
  57. name: 'detail',
  58. text: __('查看卡点'),
  59. title: __('查看卡点'),
  60. classname: 'btn btn-xs btn-info btn-addtabs',
  61. url: 'video_point/index?xxxx=1',
  62. callback: function (data) {},
  63. visible: function (row) {
  64. return true;
  65. }
  66. }
  67. ]
  68. }
  69. ]
  70. ]
  71. });
  72. // 为表格绑定事件
  73. Table.api.bindevent(table);
  74. $(".btn-add").data("area", ["100%","100%"]);
  75. },
  76. add: function () {
  77. Controller.api.bindevent();
  78. $(document).on('click','.add-point',function (){
  79. let type=$(this).data('point'),time=Date.now()
  80. $('#point-list')
  81. .append($(`#point-all>.point-${type}`)
  82. .clone()
  83. .attr('data-id',time)
  84. .removeClass('hidden')[0]
  85. .outerHTML
  86. .replaceAll('$idx',time).replaceAll('$index',time+1))
  87. Controller.api.bindevent();
  88. })
  89. $(document).on('change','.choose-type input[type=radio]',function (){
  90. if(this.value==='txt'){
  91. $(this).parents('.form-group-choose-type').next().removeClass('hidden').next().addClass('hidden')
  92. $(this).parents('.point-list-one').find('.key-checkbox-image').attr('checked',false)
  93. }else{
  94. $(this).parents('.form-group-choose-type').next().addClass('hidden').next().removeClass('hidden')
  95. $(this).parents('.point-list-one').find('.key-checkbox-txt').attr('checked',false)
  96. }
  97. Controller.api.bindevent();
  98. })
  99. $(document).on('click','.add-image',function (){
  100. let a='';
  101. if($(this).hasClass('add-image-vote')){
  102. a='vote'
  103. }else if($(this).hasClass('add-image-choose')){
  104. a='choose'
  105. }
  106. let classEle=`.image-example-${a}`
  107. let ele=$(classEle)[0].outerHTML
  108. let time=$(this).parents('.point-list-one').data('id')
  109. ele=ele.replaceAll('$index',Date.now()).replaceAll('$idx',time).replaceAll(classEle.substr(1),'').replaceAll(` style="display: none;"`,'')
  110. $(this).parent().append(ele)
  111. Controller.api.bindevent()
  112. })
  113. $(document).on('click','.add-txt',function (){
  114. let ele=$(this).next().html()
  115. ele=ele.replaceAll(/\[\d+]"/g,`[${Date.now()}]"`)
  116. $(this).parent().append(ele)
  117. })
  118. $(document).on('click','.vote-add-txt-item',function (){
  119. $(this).parent().append($(this).next().html())
  120. })
  121. $(document).on('change','.title-type-change>select',function (){
  122. if(this.value==='txt'){
  123. $(this).parent().parent().next().removeClass('hidden').find('input').attr('disabled',false)
  124. $(this).parent().parent().next().next().addClass('hidden').find('input').attr('disabled',true)
  125. }else{
  126. $(this).parent().parent().next().next().removeClass('hidden').find('input').attr('disabled',false)
  127. $(this).parent().parent().next().addClass('hidden').find('input').attr('disabled',true)
  128. }
  129. })
  130. },
  131. edit: function () {
  132. Controller.api.bindevent();
  133. },
  134. api: {
  135. bindevent: function () {
  136. Form.api.bindevent($("form[role=form]"));
  137. }
  138. }
  139. };
  140. return Controller;
  141. });