189 lines
7.2 KiB
JavaScript
189 lines
7.2 KiB
JavaScript
|
layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'tree', 'xmSelect', 'laydate'], function () {
|
||
|
let $ = layui.jquery,
|
||
|
form = layui.form,
|
||
|
table = layui.table,
|
||
|
layer = layui.layer,
|
||
|
laydate = layui.laydate,
|
||
|
xmSelect = layui.xmSelect,
|
||
|
miniTab = layui.miniTab;
|
||
|
|
||
|
/**** index begin ***/
|
||
|
//index页面
|
||
|
if ($('.location-index-page').length > 0) {
|
||
|
miniTab.listen();
|
||
|
|
||
|
laydate.render({
|
||
|
elem: '#publish-date',
|
||
|
});
|
||
|
|
||
|
// 渲染表格
|
||
|
let listUrl = $('#table-container').data('url');
|
||
|
let insTb = table.render({
|
||
|
elem: '#table-container',
|
||
|
toolbar: '#toolbar-tpl',
|
||
|
defaultToolbar: ['filter', 'exports', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
|
||
|
title: '搜索'
|
||
|
, layEvent: 'search'
|
||
|
, icon: 'layui-icon-search'
|
||
|
}],
|
||
|
url: listUrl,
|
||
|
method: 'post',
|
||
|
even: true,
|
||
|
limits: [10,20,50,100,200,500,1000],
|
||
|
request: {
|
||
|
pageName: 'page',
|
||
|
limitName: 'size',
|
||
|
},
|
||
|
parseData: function (res) {
|
||
|
return {
|
||
|
"code": res.code, //解析接口状态
|
||
|
"msg": res.msg, //解析提示文本
|
||
|
"count": res.data.total, //解析数据长度
|
||
|
"data": res.data.list //解析数据列表
|
||
|
};
|
||
|
},
|
||
|
page: true,
|
||
|
cols: [[
|
||
|
{type: 'checkbox'},
|
||
|
{field: 'id', minWidth: 80, title: '编号ID'},
|
||
|
{field: 'title', minWidth: 200, title: '标题'},
|
||
|
{field: 'category', minWidth: 100, title: '栏目'},
|
||
|
{field: 'published_at', minWidth: 200, title: '发布时间'},
|
||
|
{field: 'sort', minWidth: 60, title: '排序', edit: 'text'},
|
||
|
{templet: '#row-hot', field: 'hot', minWidth: 120,align: 'center', title: '热门'},
|
||
|
{templet: '#row-top', field: 'top', minWidth: 120,align: 'center', title: '置顶'},
|
||
|
{templet: '#row-operate', minWidth: 250, field: 'right', align: 'center', title: '操作', fixed: 'right'}
|
||
|
]],
|
||
|
done: function () {
|
||
|
Tools.setInsTb(insTb);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
let modifyUrl = $('#row-modify').data('url');
|
||
|
|
||
|
// switch变更
|
||
|
function changeSwitch(filter) {
|
||
|
form.on('switch(' + filter + ')', function (obj) {
|
||
|
let val = obj.elem.checked ? 1 : 0;
|
||
|
$.post(modifyUrl, {id: this.value, field: this.name, value: val}, function (res) {
|
||
|
layer.msg(res.msg)
|
||
|
if (res.code !== 0) {
|
||
|
//操作不成功则刷新页面
|
||
|
insTb.reload();
|
||
|
}
|
||
|
})
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// 监听搜索操作
|
||
|
form.on('submit(data-search-btn)', function (data) {
|
||
|
let categoryIds = [];
|
||
|
let checkData = $('#ids-data').val();
|
||
|
categoryIds = checkData.split(',');
|
||
|
data.field.category_id = categoryIds;
|
||
|
//执行搜索重载
|
||
|
table.reload('table-container', {
|
||
|
page: {curr: 1}
|
||
|
, where: {searchParams: data.field}
|
||
|
}, 'data');
|
||
|
|
||
|
return false;
|
||
|
});
|
||
|
|
||
|
//监听行工具条
|
||
|
table.on('tool(table-container)', function (obj) {
|
||
|
let data = obj.data;
|
||
|
let layEvent = obj.event;
|
||
|
let url = $($(this).context).data('href');
|
||
|
let title = $($(this).context).data('title');
|
||
|
let width = $($(this).context).data('width') ? $($(this).context).data('width') : '100%';
|
||
|
let height = $($(this).context).data('height') ? $($(this).context).data('height') : '100%';
|
||
|
let insTb = Tools.getInsTb();
|
||
|
|
||
|
switch (layEvent) {
|
||
|
// 行 删除
|
||
|
case 'del':
|
||
|
let ids = [data.id];
|
||
|
delRow(url, ids, insTb);
|
||
|
return false;
|
||
|
//其他 默认为打开弹出层
|
||
|
default:
|
||
|
openLayer(url, title, width, height);
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
changeSwitch('changeRecommend');//监听推荐改变
|
||
|
changeSwitch('changeTop');//监听置顶
|
||
|
changeSwitch('changeHot');//监听热门
|
||
|
}
|
||
|
/*** index end ***/
|
||
|
|
||
|
// add和edit页面
|
||
|
if ($('.location-operate-page').length > 0) {
|
||
|
let parentMenu = $('#parent-menu');
|
||
|
let menuList = parentMenu.data('menu') ? parentMenu.data('menu') : [];
|
||
|
let showList = parentMenu.data('show') ? parentMenu.data('show') : [];//各栏目 可展示字段列表
|
||
|
let xmSelectDisabled = parentMenu.data('disabled') ? parentMenu.data('disabled') : false;//是否禁止选中
|
||
|
xmSelect.render({
|
||
|
el: '#parent-menu',
|
||
|
paging: false,
|
||
|
autoRow: true,
|
||
|
radio: true,
|
||
|
clickClose: true,
|
||
|
name: 'category_id',
|
||
|
tips: '请选择栏目',
|
||
|
direction: 'auto',
|
||
|
height: 'auto',
|
||
|
disabled:xmSelectDisabled,
|
||
|
model: {
|
||
|
icon: 'hidden',
|
||
|
},
|
||
|
prop: {
|
||
|
name: 'title',
|
||
|
value: 'id',
|
||
|
},
|
||
|
tree: {
|
||
|
show: true,
|
||
|
strict: false,
|
||
|
clickCheck: true,
|
||
|
expandedKeys: true,
|
||
|
clickExpand: false
|
||
|
},
|
||
|
theme: {
|
||
|
color: '#1e84ff',
|
||
|
},
|
||
|
data: menuList,
|
||
|
on: function (data) {
|
||
|
//arr: 当前多选已选中的数据
|
||
|
let arr = data.arr;
|
||
|
//change, 此次选择变化的数据,数组
|
||
|
let change = data.change;
|
||
|
//isAdd, 此次操作是新增还是删除
|
||
|
// let isAdd = data.isAdd;
|
||
|
|
||
|
// console.log(arr, 'arr')
|
||
|
// console.log(change, 'change')
|
||
|
// console.log('已有: '+arr.length+' 变化: '+change.length+', 状态: ' + isAdd, 'desc')
|
||
|
if (arr.length > 0 && change.length > 0) {
|
||
|
//切换
|
||
|
$('.field-div').hide();//全部隐藏
|
||
|
let currentCateId = arr[0].id;//当前栏目ID
|
||
|
|
||
|
// if(archiveCoverSize[currentCateId]!=undefined&&archiveCoverSize[currentCateId].archive_cover_size){
|
||
|
// $('#archive_cover_size').text(archiveCoverSize[currentCateId].archive_cover_size)
|
||
|
// }else{
|
||
|
// $('#archive_cover_size').text('请上传合适尺寸的图片')
|
||
|
// }
|
||
|
|
||
|
let showFields = showList[currentCateId] ? showList[currentCateId] : [];
|
||
|
// console.log(showFields, 'show current')
|
||
|
// 显示选择栏目的字段
|
||
|
$.each(showFields, function (index, val) {
|
||
|
$('.current-field-' + val).show();
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
});
|