388 lines
12 KiB
JavaScript
388 lines
12 KiB
JavaScript
|
/*
|
|||
|
* @Descripttion :
|
|||
|
* @Author : liuzhifang
|
|||
|
* @Date : 2022-08-10 14:35:18
|
|||
|
* @LastEditors : liuzhifang
|
|||
|
* @LastEditTime : 2022-08-10 15:57:14
|
|||
|
*/
|
|||
|
|
|||
|
// 已安装
|
|||
|
// const webInstalledDataList = [
|
|||
|
// // type 1、只有电脑端; 2、只有移动端; 3、有电脑端和移动端; 4、自适应
|
|||
|
// { id: 1, title: '广告公司网站源码传媒公司', serial: 'FOX0001', src: 'https://file.liuzhifang.com/web/web01.jpg', isUsed: 1, type: '3' },
|
|||
|
// ];
|
|||
|
|
|||
|
// 未安装
|
|||
|
// const webUninstalledDataList = [
|
|||
|
// { id: 1, title: '广告公司网站源码传媒公司', author: '黔狐掌柜', src: 'https://file.liuzhifang.com/web/web05.jpg', type: '4' },
|
|||
|
// ];
|
|||
|
|
|||
|
//初始化模板查询
|
|||
|
function templateInit(){
|
|||
|
let tabContent = $(".foxui-tabs-header .foxui-tabs-item.is-active").html();
|
|||
|
let runStatus = 2;
|
|||
|
let keyword = $('input[name="keyword"]').val();
|
|||
|
if(tabContent.indexOf("已安装模板") != -1){
|
|||
|
runStatus = 1;
|
|||
|
}
|
|||
|
let datas = {
|
|||
|
"keyword": $.trim(keyword),
|
|||
|
"bcid": bcid,
|
|||
|
runStatus
|
|||
|
};
|
|||
|
initTemplateList(datas, runStatus);//查询
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* 初始化表格
|
|||
|
*/
|
|||
|
function initTemplateList(param, runStatus) {
|
|||
|
let bcid = $("input[name='bcid']").val();
|
|||
|
param.bcid = bcid;
|
|||
|
param.runStatus = runStatus;
|
|||
|
let data = getTemplate(param);
|
|||
|
if(runStatus == 1){//已安装
|
|||
|
initInstalledTemplateList(data); // 已安装模板
|
|||
|
}else if(runStatus == 2){//未安装
|
|||
|
initUninstalledTemplateList(data); // 未安装模板
|
|||
|
}
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
//获取模型数据
|
|||
|
function getTemplate(datas){
|
|||
|
let data= null;
|
|||
|
$.ajax({
|
|||
|
type: "post",
|
|||
|
url: ADMIN_PATH + '/LocalTemplate/index',
|
|||
|
dataType: "json",
|
|||
|
data: datas,
|
|||
|
async:false,
|
|||
|
success: function(res) {
|
|||
|
if (res.code == 1 && res.data) {
|
|||
|
data = res.data;
|
|||
|
}
|
|||
|
},
|
|||
|
error: function(res) {
|
|||
|
console.log("查询模板失败。。。")
|
|||
|
}
|
|||
|
});
|
|||
|
return data;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 已安装模板初始化
|
|||
|
* @param {*}
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 14:58:47
|
|||
|
*/
|
|||
|
function initInstalledTemplateList(data) {
|
|||
|
|
|||
|
let pageSize = data.per_page,
|
|||
|
total = data.total,
|
|||
|
currentPage = data.current_page;
|
|||
|
let dataList = data.data;
|
|||
|
// 初始化列表数据
|
|||
|
_appendToInstalledList(dataList);
|
|||
|
// 初始化分页
|
|||
|
foxui.pagination(
|
|||
|
{
|
|||
|
el: '#installedPagination',
|
|||
|
currentPage: currentPage,
|
|||
|
total: total,
|
|||
|
onchange: function ({ currentPage, pageSize, total }, callback) {
|
|||
|
// 获取页码相关数据,添加异步请求
|
|||
|
callback({ total, pageSize, currentPage });
|
|||
|
let param = {currentPage, pageSize};
|
|||
|
initTemplateList(param,1);//已安装
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
type: 'plain',
|
|||
|
pageSize: pageSize,
|
|||
|
isShowJump: true,
|
|||
|
isShowTotal: true,
|
|||
|
isShowSize: true,
|
|||
|
}
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 未安装模板初始化
|
|||
|
* @param {*} data
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 16:16:53
|
|||
|
*/
|
|||
|
function initUninstalledTemplateList(data) {
|
|||
|
let pageSize = data.per_page,
|
|||
|
total = data.total,
|
|||
|
currentPage = data.current_page;
|
|||
|
let dataList = data.data;
|
|||
|
$("#unCount").html(total);//未安装的模板
|
|||
|
// 初始化列表数据
|
|||
|
_appendToUninstalledList(dataList);
|
|||
|
// 初始化分页
|
|||
|
foxui.pagination(
|
|||
|
{
|
|||
|
el: '#uninstalledPagination',
|
|||
|
currentPage: currentPage,
|
|||
|
total: total,
|
|||
|
onchange: function ({ currentPage, pageSize, total }, callback) {
|
|||
|
callback({ total, pageSize, currentPage });
|
|||
|
let param = {currentPage, pageSize};
|
|||
|
initTemplateList(param,2);//已安装
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
type: 'plain',
|
|||
|
pageSize: pageSize,
|
|||
|
isShowJump: true,
|
|||
|
isShowTotal: true,
|
|||
|
isShowSize: true,
|
|||
|
}
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 已安装模板->使用模板
|
|||
|
* @param {*}
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 16:37:43
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .use', function () {
|
|||
|
let $this = $(this),
|
|||
|
$curItem = $this.closest('.template-item'),
|
|||
|
$actItem = $this.closest('.foxui-row').find('.template-item').filter('.is-active');
|
|||
|
|
|||
|
foxui.dialog({
|
|||
|
title: '<i class="foxui-icon-info-solid" style="color:#ffcc00; font-size:20px; margin-right: 6px;"></i><span>确认提示</span>',
|
|||
|
content: '<span style="margin-left: 26px;">启用此模板作为前端网站模板,是否继续?</span>',
|
|||
|
confirmText: '确定',
|
|||
|
cancelText: '取消',
|
|||
|
confirm: function (callback) {
|
|||
|
const id = $this.closest('.template-item').attr('data-id');
|
|||
|
callback();
|
|||
|
foxui.loading();
|
|||
|
|
|||
|
// 异步提交数据
|
|||
|
console.log(id);
|
|||
|
setTimeout(() => {
|
|||
|
$actItem.removeClass('is-active');
|
|||
|
$curItem.addClass('is-active');
|
|||
|
foxui.closeLoading();
|
|||
|
}, 1500);
|
|||
|
},
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 已安装模板->设置模板
|
|||
|
* @param {*}
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 16:43:45
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .set', function () {
|
|||
|
const id = $(this).closest('.template-item').attr('data-id');
|
|||
|
window.location.href = `local_template_set.html?id=${id}`;
|
|||
|
});
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 已安装模板->导出模板
|
|||
|
* @param {*}
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-08-10 15:08:34
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .export', function () {
|
|||
|
alert('导出模板');
|
|||
|
});
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 已安装模板->卸载模板
|
|||
|
* @param {*} event
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-20 09:43:46
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .uninstall', function () {
|
|||
|
const id = $(this).closest('.template-item').attr('data-id');
|
|||
|
window.location.href = `uninstall_template.html?id=${id}`;
|
|||
|
});
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 未安装模板->安装模板
|
|||
|
* @param {*} event
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-19 19:49:32
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .install', function () {
|
|||
|
const id = $(this).closest('.template-item').attr('data-id');
|
|||
|
window.location.href = `install_template.html?id=${id}`;
|
|||
|
});
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 未安装模板->删除模板
|
|||
|
* @param {*} event
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-19 19:51:50
|
|||
|
*/
|
|||
|
$(document).on('click', '.template-item .delete', function () {
|
|||
|
const $this = $(this),
|
|||
|
id = $this.closest('.template-item').attr('data-id');
|
|||
|
foxui.dialog({
|
|||
|
title: '删除',
|
|||
|
content: '您确定要删除此模板吗',
|
|||
|
confirmText: '删除',
|
|||
|
cancelText: '取消',
|
|||
|
buttonType: 'danger',
|
|||
|
confirm: function (callback) {
|
|||
|
callback();
|
|||
|
// 添加异步请求,删除数据
|
|||
|
console.log(id);
|
|||
|
$this.closest('.foxui-col-sm-4').remove();
|
|||
|
foxui.message({
|
|||
|
text: '删除成功',
|
|||
|
type: 'success',
|
|||
|
});
|
|||
|
},
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
/* 子方法
|
|||
|
---------------------------------------------------------------------------------------------------- */
|
|||
|
/**
|
|||
|
* @description: 更新已安装模板列表
|
|||
|
* @param {*} dataList
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 14:55:04
|
|||
|
*/
|
|||
|
function _appendToInstalledList(dataList) {
|
|||
|
const html = _listInstalledHtml(dataList);
|
|||
|
$('.foxui-tabs .foxui-tabs-pane .installed').empty().append(html);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 更新未安装模板列表
|
|||
|
* @param {*} dataList
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 16:14:59
|
|||
|
*/
|
|||
|
function _appendToUninstalledList(dataList) {
|
|||
|
const html = _listUninstalledHtml(dataList);
|
|||
|
$('.foxui-tabs .foxui-tabs-pane .uninstalled').empty().append(html);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 生成已安装模板列表 html
|
|||
|
* @param {*} dataList
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 14:55:23
|
|||
|
*/
|
|||
|
function _listInstalledHtml(dataList) {
|
|||
|
let htmlArr = [];
|
|||
|
dataList.forEach(item => {
|
|||
|
htmlArr.push(
|
|||
|
[
|
|||
|
'<div class="foxui-col-xs-4 foxui-col-sm-4">',
|
|||
|
`<div class="template-item ${item.run_status === 1 ? 'is-active' : ''}" data-id="${item.id}">`,
|
|||
|
'<div class="template-main">',
|
|||
|
`<img src="${item.thumb_url || ''}" />`,
|
|||
|
'</div>',
|
|||
|
'<div class="template-footer">',
|
|||
|
'<div class="serial-number">',
|
|||
|
'<div class="left trapezoid">',
|
|||
|
`<span class="serial">${item.code || ''}</span>`,
|
|||
|
'</div>',
|
|||
|
'<div class="right">',
|
|||
|
`${_typeHtml(item.type)}`,
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
`<div class="title">${item.title || ''}</div>`,
|
|||
|
'</div>',
|
|||
|
'<div class="template-mask">',
|
|||
|
'<div class="center-btns">',
|
|||
|
'<button class="foxui-size-medium foxui-solid-primary use">启用模板</button>',
|
|||
|
'</div>',
|
|||
|
'<div class="btn-list">',
|
|||
|
'<button class="foxui-solid-info foxui-size-mini foxui-solid-primary set">',
|
|||
|
'<i class="foxui-icon-shezhi-o"></i>',
|
|||
|
'</button>',
|
|||
|
'<button class="foxui-solid-info foxui-size-mini foxui-solid-primary export">',
|
|||
|
'<i class="foxui-icon-shangchuan-o"></i>',
|
|||
|
'</button>',
|
|||
|
'<button class="foxui-solid-info foxui-size-mini foxui-solid-primary uninstall">',
|
|||
|
'<i class="foxui-icon-shanchu-o"></i>',
|
|||
|
'</button>',
|
|||
|
'</div>',
|
|||
|
'<i class="foxui-icon-mark-top-center mark inuse">启用</i>',
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
].join('')
|
|||
|
);
|
|||
|
});
|
|||
|
return htmlArr.join('');
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 生成未安装模板列表 html
|
|||
|
* @param {*} dataList
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 16:14:24
|
|||
|
*/
|
|||
|
function _listUninstalledHtml(dataList) {
|
|||
|
let htmlArr = [];
|
|||
|
dataList.forEach(item => {
|
|||
|
htmlArr.push(
|
|||
|
[
|
|||
|
'<div class="foxui-col-xs-4 foxui-col-sm-4">',
|
|||
|
`<div class="template-item" data-id="${item.id}">`,
|
|||
|
'<div class="template-main">',
|
|||
|
`<img src="${item.thumb_url || ''}" />`,
|
|||
|
'</div>',
|
|||
|
'<div class="template-footer">',
|
|||
|
'<div class="serial-number">',
|
|||
|
'<div class="left">',
|
|||
|
`<span class="author">作者:${item.author || ''}</span>`,
|
|||
|
'</div>',
|
|||
|
'<div class="right">',
|
|||
|
`${_typeHtml(item.type)}`,
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
`<div class="title">${item.title || ''}</div>`,
|
|||
|
'</div>',
|
|||
|
'<div class="template-mask">',
|
|||
|
'<div class="center-btns">',
|
|||
|
'<button class="foxui-size-medium foxui-solid-primary install"">安装模板</button>',
|
|||
|
'<button class="foxui-size-medium foxui-solid-danger delete">删除模板</button>',
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
'</div>',
|
|||
|
].join('')
|
|||
|
);
|
|||
|
});
|
|||
|
return htmlArr.join('');
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @description: 模板类型 html
|
|||
|
* @param {*} type
|
|||
|
* @return {*}
|
|||
|
* @Date: 2022-01-18 15:14:49
|
|||
|
*/
|
|||
|
function _typeHtml(type) {
|
|||
|
switch (type) {
|
|||
|
case '1':
|
|||
|
return `<i class="foxui-icon-pc"></i>`;
|
|||
|
case '2':
|
|||
|
return `<i class="foxui-icon-phone"></i>`;
|
|||
|
case '3':
|
|||
|
return `<i class="foxui-icon-pc"></i><i class="foxui-icon-phone"></i>`;
|
|||
|
case '4':
|
|||
|
return `<i class="foxui-icon-pc-phone"></i>`;
|
|||
|
default:
|
|||
|
return '';
|
|||
|
}
|
|||
|
}
|