official_website/app/admin/view/batch_column/index.html

462 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{extend name="foxcms" /}
{block name="css"}
<style>
.foxui-dialog__wrapper .foxui-dialog__body{
max-height: 520px;
overflow-y: auto;
padding-top: 10px !important;
padding-bottom: 10px !important;
}
</style>
{/block}
{block name="body"}
<input name="bcid" value="{$bcid}" type="hidden" />
<input name="tempType" type="hidden"/>
<input type="hidden" name="path" value="" />
<input type="hidden" name="file" value="" />
<input type="hidden" name="activepath" value="{$activepath}" />
<div class="foxcms-content-inner">
<!-- page content -->
<div class="batch-add-content">
<div class="section section-panel">
<div class="section-title">批量新增栏目</div>
<div class="section-main">
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label class="foxui-required">内容模型:</label>
</div>
<div class="input-box">
<div class="foxui-select">
<div class="foxui-select-handle foxui-select-icon">
<input class="foxui-select-input foxui-size-small" readonly="readonly" placeholder="请选择内容模型" data-id="{$modelRecords[0]['id']}" value="{$modelRecords[0]['title']}" name="column_model">
<i class="foxui-icon-close-circle" style="display: none;"></i>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide">
{foreach $modelRecords as $modelRecord }
<li class="foxui-select-item" data-id="{$modelRecord.id}" onclick="modelChange(event)">{$modelRecord.title}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>所属栏目:</label>
</div>
<div class="input-box">
<div class="foxui-select">
<div class="foxui-select-handle foxui-select-icon">
<input class="foxui-select-input foxui-size-small" readonly="readonly" placeholder="请选择栏目" value="" name="pid">
<i class="foxui-icon-close-circle" style="display: none;"></i>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide">
{foreach $columns as $key=>$vo }
<li class="foxui-select-item" data-id="{$vo.id}">{$vo.name}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label class="foxui-required">列表模板:</label>
</div>
<div class="input-box">
<div class="foxui-select">
<div class="foxui-select-handle foxui-select-icon">
<input class="foxui-select-input foxui-size-small" readonly="readonly" placeholder="请选择列表模板" value="list_{$modelRecords[0]['id']}.html" name="column_template" onclick="clikTemplate(1)">
<i class="foxui-icon-close-circle" style="display: none;"></i>
</div>
</div>
</div>
<a class="foxui-link foxui-link-primary" href="/{$adminPath}/template_file/addFile?type=1&columnId={$cid}">新建模板</a>
</div>
</div>
<div class="section-main-item model-template">
<div class="foxui-input-group">
<div class="input-label">
<label class="foxui-required">文档模板:</label>
</div>
<div class="input-box">
<div class="foxui-select">
<div class="foxui-select-handle foxui-select-icon">
<input class="foxui-select-input foxui-size-small" readonly="readonly" placeholder="请选择文档模板" value="view_{$modelRecords[0]['id']}.html" name="model_template" onclick="clikTemplate(2)">
<i class="foxui-icon-close-circle"></i>
</div>
</div>
</div>
<a class="foxui-link foxui-link-primary" href="/{$adminPath}/template_file/addFile?type=1&columnId={$cid}">新建模板</a>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label class="foxui-required">栏目名称:</label>
</div>
<div class="block-box">
<ul class="column-title">
<li>排序</li>
<li>顶层栏目名称</li>
<li class="child-column">
<span>子栏目名称</span>
<b>(如"目录名称1,目录名称2..." 多个栏目填写时用英文","分开)</b>
</li>
<li>
<button class="foxui-text-primary delete" id="addColumnBtn">
<i class="foxui-icon-jiahao-o"></i>
<span>添加栏目</span>
</button>
</li>
</ul>
<ul class="foxui-drag foxui-drag-container" id="columnContainer">
<li class="foxui-drag-item">
<div class="foxui-drag-content">
<div class="column">
<i class="foxui-drag-handle foxui-icon-liebiao-o"></i>
</div>
<div class="column">
<div class="foxui-input-group">
<div class="foxui-input-suffix">
<input class="foxui-size-small" maxlength="10" placeholder="栏目名称" value="">
<i class="foxui-suffix-icon foxui-suffix-count">2/10</i>
</div>
</div>
</div>
<div class="column">
<input class="foxui-size-small" placeholder="子栏目名称,多个用英文&quot;,&quot;分开" value="">
</div>
<div class="column">
<button class="foxui-size-small color-primary delete">
<i class="foxui-icon-shanchu-o"></i>
<span>删除</span>
</button>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="foxcms-content-footer">
<button class="is-long foxui-size-small foxui-solid-primary" id="save">保存</button>
</div>
{include file="footed-copy"/}
{/block}
{block name="js"}
<script>
// 添加栏目
$('#addColumnBtn').on('click', function () {
$('#columnContainer').append(
[
'<li class="foxui-drag-item" style="display: none">',
'<div class="foxui-drag-content">',
'<div class="column">',
'<i class="foxui-drag-handle foxui-icon-liebiao-o"></i>',
'</div>',
'<div class="column">',
'<div class="foxui-input-group">',
'<div class="foxui-input-suffix">',
'<input class="foxui-size-small" maxlength="10" placeholder="栏目名称" value="" />',
'<i class="foxui-suffix-icon foxui-suffix-count">0/10</i>',
'</div>',
'</div>',
'</div>',
'<div class="column">',
`<input class='foxui-size-small' placeholder='子栏目名称,多个用英文","分开' value='' />`,
'</div>',
'<div class="column">',
'<button class="foxui-size-small color-primary delete">',
'<i class="foxui-icon-shanchu-o"></i>',
'<span>删除</span>',
'</button>',
'</div>',
'</div>',
'</li>',
].join('')
);
$('#columnContainer .foxui-drag-item:last-child').slideDown('fast');
});
// 删除栏目
$(document).on('click', '#columnContainer .delete', function (event) {
const currentTarget = event.currentTarget;
foxui.dialog({
title: '删除',
content: '您确定要删除吗',
cancelText: '取消',
confirmText: '删除',
buttonType: 'danger',
confirm: function (callback) {
callback();
// 添加加载层
foxui.loading();
// 摸拟后台删除成功后执行
setTimeout(() => {
foxui.closeLoading();
// 删除数据
$(currentTarget)
.closest('.foxui-drag-item')
.slideUp('fast', function () {
$(this).remove();
});
}, 200);
},
});
});
//获取对应模型
function getModelHtml(model){
$.ajax({
type: "get",
url: ADMIN_PATH + '/BatchColumn/getModelHtml?model=' + model,
dataType:"json",
async:false,
success:function(res){
if(res.code ==1 && res.data){
let data = res.data;
if(data.is_view == 1){
$('input[name="column_template"]').val(data.column_template);
$('input[name="model_template"]').val(data.model_template);
$('.model-template').show();
}else{
$('input[name="column_template"]').val(data.column_template);
$('.model-template').hide();
}
}else{
console.log("查询模型失败。。。。");
}
},error:function(res){
console.log("查询模型失败。。。。");
}
});
}
</script>
<script>
//模型切换
function modelChange(event){
let model = $(event.target).attr("data-id");
if(model == "single"){
$('.model-template').hide();
}else{
$('.model-template').show();
}
getModelHtml(model);
}
//点击文件
function clikFile(obj){
let path = $(obj).find('span').attr('data-path');
let file = $(obj).find('span').attr('data-file');
$('input[name="path"]').val(path);
let file_path = "";
if(path == undefined || path == ""){
file_path = file;
}else{
let activepath = $('input[name="activepath"]').val();
path = path.substr((activepath.length));
if(path != undefined && path != ""){
file_path = path + "/" + file;
}else{
file_path = file;
}
}
$('input[name="file"]').val(file_path);
$(obj).closest(".foxui-table-tr").siblings().css("background-color","");//移除兄弟节点样式
$(obj).closest(".foxui-table-tr").css("background-color","#dadae9");
}
//点击目录
function clikDir(obj){
$(obj).closest('.foxui-dialog__wrapper').find('.foxui-icon-guanbi-o').click();
let path = $(obj).find('span').attr('data-path');
selectTemplate(path);
}
//type 1:栏目模板 2模型模板
function clikTemplate(tempType){
$('input[name="tempType"]').val(tempType);
selectTemplate();
}
function selectTemplate(path){
let contentHtml = `<div class="foxui-table foxui-table-border-bottom foxui-table-stripe foxui-table-hover">`;
contentHtml += ` <ul class="foxui-table-thead">
<li class="foxui-table-tr">
<div class="foxui-table-th">文件名</div>
<div class="foxui-table-th">文件大小</div>
<div class="foxui-table-th">更新时间</div>
</li>
</ul>`;
contentHtml += `<ul class="foxui-table-tbody">`
let data = {activepath:path};
$.ajax({
type: "get",
url: "{:url('Column/temp')}",
dataType:"json",
data:data,
async:false,
success:function(res){
if(res.code ==1 && res.data){
let data = res.data;
if(path == undefined){
path = "";
}
data.forEach((item, index)=>{
if(item.filetype == 'dir' || item.filetype == 'dir2'){
if(item.filepath != ""){
contentHtml += `<li class="foxui-table-tr foxui-padding-bottom-8 foxui-padding-top-8" onclick="clikDir(this)" style="cursor: pointer;" >`;
if(item.filetype == 'dir'){
contentHtml += '<i class="foxui-icon-mulu-f foxui-margin-right-4 foxui-color-warning" style="font-size:18px"></i><span data-path="'+ item.filepath +'">'+item.filename+'</span>';
}else {
contentHtml += '<i class="foxui-icon-wenjianjia-f foxui-margin-right-4 foxui-color-warning" style="font-size:18px"></i><span data-path="'+ item.filepath +'">'
+ "返回上级" + item.intro
+'</span>';
}
}
}else{
contentHtml += `<li class="foxui-table-tr" onclick="clikFile(this)" style="cursor: pointer;">`;
if(item.filetype == 'htm' || item.filetype == 'html'){
contentHtml += '<div class="foxui-table-td"><i class="foxui-icon-wenzhang-f foxui-margin-right-4 foxui-color-primary" style="font-size: 18px"></i><span data-path="'+ path +'" data-file="'+ item.filename +'" >'+item.filename +'</span></div>';
}else{
contentHtml += `<div class="foxui-table-td"><i class="foxui-icon-wenzhang-f foxui-margin-right-4 foxui-color-primary" style="font-size: 18px"></i><span data-path="${path}">${item.filename}</span></div>`;
}
}
contentHtml += `<div class="foxui-table-td">`+ item.filesize+`</div>`;
contentHtml += `<div class="foxui-table-td">`+ item.filetime+`</div>`;
contentHtml += `</li>`;
})
}
},error:function(res){
console.log("查询图片失败。。。。");
}
});
contentHtml += `</ul>`;
contentHtml += `</div>`;
foxui.dialog({
title: '选择模板',
content: contentHtml,
cancelText: '取消',
confirmText: '确定',
buttonSize: 'small',
buttonAlign: 'center',
width: '900px',
buttonWidth: '300px',
border: true,
confirm: function (callback) {
let tempType = $('input[name="tempType"]').val();
if(tempType == 1){
let file = $('input[name="file"]').val();
$('input[name="column_template"]').val(file);
}else if(tempType == 2){
let file = $('input[name="file"]').val();
$('input[name="model_template"]').val(file);
}
callback();
},
cancel: function () {
},
});
}
/**
* 获取栏目数据
* @param li 栏目项对象
* @returns {{column: (*|Window.jQuery|string), objArr: *[]}}
*/
function getColumns(li){
let inputs =$(li).find('input');
let colunm = {
'column_model':$('input[name="column_model"]').attr('data-id'),
'pid':$('input[name="pid"]').attr('data-id'),
'column_template':$('input[name="column_template"]').val(),
'model_template':$('input[name="model_template"]').val()};
$(inputs).each( (index, item)=>{
let itval = $(item).val();//栏目值
if(index == 0){
colunm.name = itval;
}else{
colunm.colunmstr = itval;
}
});
return colunm;
}
//保存
$('#save').click(function() {
let dataArr = [];
$("#columnContainer>li").each(function (index, item){
dataArr.push(getColumns(item));
});
let pid = $('input[name="pid"]').attr('data-id')??0;
let data = {'columns': JSON.stringify(dataArr), 'pid':pid};
foxui.dialog({
title: '保存',
content: '您确定要保存吗',
cancelText: '取消',
confirmText: '保存',
confirm: function() {
ajaxR('save','post',data,{},function (res) {
if (res.code == 1) {
foxui.message({
type:'success',
text:res.msg
})
setTimeout('myrefresh()', 100); //指定10秒刷新一次
} else {
foxui.message({
type:'warning',
text:res.msg
})
}
}, function (res) {
foxui.message({
type:'danger',
text: res.responseJSON.msg
})
})
},
cancel: function() {
foxui.message({
type: 'warning',
text: '取消操作'
})
},
});
})
</script>
{/block}