DiverseYouthNightSchool/public/assets/js/backend/school/help/cate.js

393 lines
19 KiB
JavaScript
Raw Normal View History

2024-12-30 18:09:23 +08:00
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function ($, undefined, Backend, Table, Form, Template) {
var Controller = {
index: function () {
Table.api.init();
this.table.first();
this.table.second();
},
table:{
first: function () {
var table = $("#table1");
// 初始化表格
table.bootstrapTable({
url: 'school/help/cate/index' + location.search,
toolbar: '#toolbar1',
pk: 'id',
extend: {
index_url: 'school/help/cate/index' + location.search,
add_url: 'school/help/cate/add'+ location.search,
edit_url: 'school/help/cate/edit'+ location.search,
del_url: 'school/help/cate/del',
multi_url: 'school/help/cate/multi',
import_url: 'school/help/cate/import',
table: 'school_help_cate',
},
sortName: 'weigh',
fixedColumns: true,
fixedRightNumber: 1,
onLoadSuccess: function (data) {
$("#table1").on("change", "input[data-index][type='checkbox']", function (e) {
// var ids = $(this).data("index"); //数据id
// var checked = $(this).prop('checked'); //选中状态
// Layer.alert(JSON.stringify(Table.api.selecteddata(table)));
let numbers = Table.api.selecteddata(table);
// 过滤偶数然后将其乘以10最后求和
let sumOfDoubledEvens = numbers.map(item => item.id).join(","); // 求和
2024-12-31 14:10:47 +08:00
$("#myTabContent2 .form-commonsearch input[name='cate_title']").val(sumOfDoubledEvens);
2024-12-30 18:09:23 +08:00
$("#myTabContent2 .btn-refresh").trigger("click");
});
2024-12-31 14:10:47 +08:00
$("#table1").on("change", "input:checkbox[name='btSelectAll']", function (e) {
// var ids = $(this).data("index"); //数据id
// var checked = $(this).prop('checked'); //选中状态
// Layer.alert(JSON.stringify(Table.api.selecteddata(table)));
let numbers = Table.api.selecteddata(table);
// 过滤偶数然后将其乘以10最后求和
let sumOfDoubledEvens = numbers.map(item => item.id).join(","); // 求和
$("#myTabContent2 .form-commonsearch input[name='cate_title']").val(sumOfDoubledEvens);
$("#myTabContent2 .btn-refresh").trigger("click");
});
2024-12-30 18:09:23 +08:00
},
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'pid', title: __('Pid'),visible:false},
2024-12-31 14:10:47 +08:00
{field: 'name', title: __('Name') ,width:180, align: 'left', formatter: Controller.api.formatter.name, clickToSelect: !false},
2024-12-30 18:09:23 +08:00
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.toggle},
2025-01-13 18:03:44 +08:00
{field: 'weigh', title: __('Weigh'),visible:false, operate: false},
{field: 'createtime', title: __('Createtime'),visible:false, operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
2024-12-30 18:09:23 +08:00
{field: 'updatetime', title: __('Updatetime'),visible:false, operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{
field: 'id',
title: '展开子项',
icon: 'fa fa-chevron-up',
operate: false,
formatter: Controller.api.formatter.subnode
},
{field: 'operate', title: __('Operate'), table: table , buttons: [
{
name: 'add',
text: __('添加子分类'),
title: __('添加子分类'),
classname: 'btn btn-xs btn-warning btn-magic btn-dialog',
icon: 'fa fa-plus',
url: add_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
2024-12-31 14:10:47 +08:00
// {
// name: 'article',
// title: '文章列表',
// text: '文章列表',
// icon: 'fa fa-list',
// classname: 'btn btn-primary btn-xs btn-click',
// click: function (e, data) {
// $("#myTabContent2 .form-commonsearch input[name='help_cate_ids']").val(data.id);
// $("#myTabContent2 .btn-refresh").trigger("click");
// }
// },
2024-12-30 18:09:23 +08:00
{
name: 'article',
2024-12-31 14:10:47 +08:00
text: __('添加文章'),
title: __('添加文章'),
classname: 'btn btn-danger btn-xs btn-dialog',
icon: 'fa fa-files-o',
// dropdown : '更多',
url: article_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
2024-12-30 18:09:23 +08:00
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
pagination: false,
search: false,
commonSearch: false,
rowAttributes: function (row, index) {
return row.pid == 0 ? {} : {style: "display:none"};
}
});
// 为表格绑定事件
Table.api.bindevent(table);
var btnSuccessEvent = function (data, ret) {
if ($(this).hasClass("btn-change")) {
var index = $(this).data("index");
var row = Table.api.getrowbyindex(table, index);
row.ismenu = $("i.fa.text-gray", this).length > 0 ? 1 : 0;
table.bootstrapTable("updateRow", {index: index, row: row});
} else if ($(this).hasClass("btn-delone")) {
if ($(this).closest("tr[data-index]").find("a.btn-node-sub.disabled").length > 0) {
$(this).closest("tr[data-index]").remove();
} else {
table.bootstrapTable('refresh');
}
} else if ($(this).hasClass("btn-dragsort")) {
table.bootstrapTable('refresh');
}
// Fast.api.refreshmenu();
$(".btn-refresh").trigger("click");
return false;
};
//表格内容渲染前
table.on('pre-body.bs.table', function (e, data) {
var options = table.bootstrapTable("getOptions");
options.escape = true;
});
//当内容渲染完成后
table.on('post-body.bs.table', function (e, data) {
var options = table.bootstrapTable("getOptions");
options.escape = false;
//点击切换/排序/删除操作后刷新左侧菜单
$(".btn-change[data-id],.btn-delone,.btn-dragsort").data("success", btnSuccessEvent);
});
table.on('post-body.bs.table', function (e, settings, json, xhr) {
//显示隐藏子节点
$(">tbody>tr[data-index] > td", this).on('click', "a.btn-node-sub", function () {
var status = $(this).data("shown") ? true : false;
$("a[data-pid='" + $(this).data("id") + "']").each(function () {
$(this).closest("tr").toggle(!status);
});
if (status) {
$("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
}
$(this).data("shown", !status);
$("i", this).toggleClass("fa-caret-down").toggleClass("fa-caret-right");
return false;
});
});
//隐藏子节点
$(document).on("collapse", ".btn-node-sub", function () {
if ($("i", this).length > 0) {
$("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
}
$("i", this).removeClass("fa-caret-down").addClass("fa-caret-right");
$(this).data("shown", false);
$(this).closest("tr").toggle(false);
});
//批量删除后的回调
$(".toolbar > .btn-del,.toolbar .btn-more~ul>li>a").data("success", function (e) {
// Fast.api.refreshmenu();
$(".btn-refresh").trigger("click");
});
//展开隐藏一级
$(document.body).on("click", ".btn-toggle", function (e) {
$("a[data-id][data-pid][data-pid!=0].disabled").closest("tr").hide();
var that = this;
var show = $("i", that).hasClass("fa-chevron-down");
$("i", that).toggleClass("fa-chevron-down", !show).toggleClass("fa-chevron-up", show);
$("a[data-id][data-pid][data-pid!=0]").not('.disabled').closest("tr").toggle(show);
$(".btn-node-sub[data-pid=0]").data("shown", show);
});
//展开隐藏全部
$(document.body).on("click", ".btn-toggle-all", function (e) {
var that = this;
var show = $("i", that).hasClass("fa-plus");
$("i", that).toggleClass("fa-plus", !show).toggleClass("fa-minus", show);
$(".btn-node-sub:not([data-pid=0])").closest("tr").toggle(show);
$(".btn-node-sub").data("shown", show);
$(".btn-node-sub > i").toggleClass("fa-caret-down", show).toggleClass("fa-caret-right", !show);
});
2024-12-31 14:10:47 +08:00
// // 获取选中项
// $(document).on("click", "#table1 .btn-selected", function () {
// Layer.alert(JSON.stringify(Table.api.selecteddata(table)));
// });
2024-12-30 18:09:23 +08:00
},
second: function () {
var table = $("#table2");
// 初始化表格
table.bootstrapTable({
url: 'school/help/article/index' + location.search,
toolbar: '#toolbar2',
extend: {
index_url: 'school/help/article/index' + location.search,
add_url: 'school/help/article/add'+ location.search,
edit_url: 'school/help/article/edit',
del_url: 'school/help/article/del',
multi_url: 'school/help/article/multi',
import_url: 'school/help/article/import',
table: 'school_help_article',
},
pk: 'id',
sortName: 'weigh',
fixedColumns: true,
fixedRightNumber: 1,
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
2024-12-31 14:10:47 +08:00
// {field: 'help_cate_ids', title: __('Help_cate_ids'), operate: 'LIKE', table: table, class: 'autocontent', searchList: cateListJson, formatter: Table.api.formatter.flag},
{field: 'cate_title', title: __('Help_cate_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'title', title: __('Title'), operate: '=', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
2024-12-30 18:09:23 +08:00
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
{field: 'hot', title: __('Hot'), searchList: {"0":__('Hot 0'),"1":__('Hot 1')}, formatter: Table.api.formatter.normal},
{field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'weigh', title: __('Weigh'), operate: false},
{field: 'views', title: __('Views')},
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
},
recyclebin: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
'dragsort_url': ''
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: 'school/help/cate/recyclebin' + location.search,
pk: 'id',
sortName: 'id',
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'name', title: __('Name'), align: 'left'},
{
field: 'deletetime',
title: __('Deletetime'),
operate: 'RANGE',
addclass: 'datetimerange',
formatter: Table.api.formatter.datetime
},
{
field: 'operate',
width: '140px',
title: __('Operate'),
table: table,
events: Table.api.events.operate,
buttons: [
{
name: 'Restore',
text: __('Restore'),
classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
icon: 'fa fa-rotate-left',
url: 'school/help/cate/restore',
refresh: true
},
{
name: 'Destroy',
text: __('Destroy'),
classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
icon: 'fa fa-times',
url: 'school/help/cate/destroy',
refresh: true
}
],
formatter: Table.api.formatter.operate
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
api: {
formatter: {
name: function (value, row, index) {
2024-12-31 14:10:47 +08:00
// value = value.toString().replace(/(&|&)nbsp;/g, ' ');
value = htmlDecode(value);
2024-12-30 18:09:23 +08:00
var caret = row.haschild == 1 || row.ismenu == 1 ? '<i class="fa fa-caret-right"></i>' : '';
2024-12-31 14:10:47 +08:00
value = caret + value;
2024-12-30 18:09:23 +08:00
value = !row.ismenu || row.status == 'hidden' ? "<span class='text-muted'>" + value + "</span>" : value;
return '<a href="javascript:;" data-id="' + row.id + '" data-pid="' + row.pid + '" class="'
+ (row.haschild == 1 || row.ismenu == 1 ? 'text-primary' : 'disabled') + ' btn-node-sub">' + value + '</a>';
},
subnode: function (value, row, index) {
return '<a href="javascript:;" data-toggle="tooltip" title="' + __('Toggle sub menu') + '" data-id="' + row.id + '" data-pid="' + row.pid + '" class="btn btn-xs '
+ (row.haschild == 1 || row.ismenu == 1 ? 'btn-success' : 'btn-default disabled') + ' btn-node-sub"><i class="fa fa-sitemap"></i></a>';
}
},
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
2024-12-31 14:10:47 +08:00
function htmlDecode(input) {
var doc = new DOMParser().parseFromString(input, 'text/html');
return doc.documentElement.textContent;
}
2024-12-30 18:09:23 +08:00
var add_url = function (row,dom) {
return 'school/help/cate/add?pid='+row.id;
}
2024-12-31 14:10:47 +08:00
var article_url = function (row,dom) {
console.log(row);
return 'school/help/article/add?help_cate_ids='+row.id;
}
2024-12-30 18:09:23 +08:00
return Controller;
});