|
Server : Apache System : Linux iZ6xhqomji47p1Z 5.10.134-15.al8.x86_64 #1 SMP Thu Jul 20 00:44:04 CST 2023 x86_64 User : www ( 1000) PHP Version : 8.1.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/fsjlkj.cn/application/admin/template/system/ |
{include file="public/layout" /}
<script type="text/javascript" src="__SKIN__/js/clipboard.min.js"></script>
<body class="bodystyle" style="overflow-y: scroll; cursor: default; -moz-user-select: inherit;">
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
<div class="page" style="min-width: auto;">
{include file="system/bar" /}
<div class="flexigrid">
<div class="mDiv pt0">
<div class="ftitle">
{eq name="'Links@index'|is_check_access" value="1"}
<div class="sDiv">
<div class="fbutton" style="float: none;">
<a href="javascript:void(0);" data-closereload="1" data-href="{:url('System/config_type', ['newframe'=>1])}" onclick="openFullframe(this, '分组管理');">
<div class="adds">
<span>分组管理</span>
</div>
</a>
</div>
</div>
{/eq}
</div>
<form class="navbar-form form-inline" id="searchForm" action="{:U('System/customvar_index')}" method="get" onsubmit="layer_loading('正在处理');">
{$searchform.hidden|default=''}
<div class="sDiv">
<div class="sDiv2">
<select name="type_id" class="select" style="margin:0px 5px;">
<option value="">--全部--</option>
{volist name="config_type" id="vo"}
<option value="{$vo.id}" {eq name="$Request.param.type_id" value="$vo.id"}selected{/eq}>{$vo.type_name}</option>
{/volist}
</select>
</div>
<div class="sDiv2">
<input type="text" size="30" name="keywords" value="{$Request.param.keywords}" class="qsbox" placeholder="搜索相关数据...">
<input type="submit" class="btn" value="搜索">
<i class="iconfont e-sousuo"></i>
</div>
</div>
</form>
</div>
<div class="hDiv">
<div class="hDivBox">
<table cellspacing="0" cellpadding="0" style="width: 100%">
<thead>
<tr>
<th class="sign w20 none" axis="col0">
<div class="tc"></div>
</th>
<th abbr="article_time" axis="col4" class="w250">
<div class="tl pl10">变量名称</div>
</th>
<th abbr="ac_id" axis="col4" class="w150">
<div class="tc">表单类型</div>
</th>
<th abbr="ac_id" axis="col4">
<div style="padding-left: 15px;">变量值</div>
</th>
<th abbr="ac_id" axis="col4" class="w150">
<div class="tc">分组</div>
</th>
<th axis="col1" class="w150">
<div class="tc">操作</div>
</th>
</tr>
</thead>
</table>
</div>
</div>
<div class="bDiv" style="height: auto; min-height: auto;">
<form id="PostForm">
<div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
<table style="width: 100%">
<tbody id="tbody">
{empty name="list"}
<tr>
<td class="no-data" align="center" axis="col0" colspan="50">
<i class="fa fa-exclamation-circle"></i>没有符合条件的数据
</td>
</tr>
{else/}
{foreach name="list" item="vo" key="k" }
<tr class="tr" id="tr_{$k}">
<td class="sign none">
<div class="w20 tc">
<input type="hidden" name="attr_id[]" value="{$vo.attr_id}">
<input type="hidden" name="attr_var_name[]" value="{$vo.attr_var_name}">
</div>
</td>
<td>
<div class="w250 tl">
<span class="pl10">
<span class="span_showhide span_attr_name">{$vo.attr_name}</span>
<input type="text" name="attr_name[]" value="{$vo.attr_name}" class="w200 input_showhide" style="display: none;">
</span>
</div>
</td>
<td>
<div class="w150 tc">
{eq name="$vo.attr_input_type" value="4"}
<span title="不允许更改">开关类型</span>
<input type="hidden" name="attr_input_type[]" value="{$vo.attr_input_type}" class="w200">
{else /}
<span class="span_showhide span_attr_input_type">
{if condition="$vo['attr_input_type'] == 2"}
多行文本
{elseif condition="$vo['attr_input_type'] == 3" /}
上传图片
{else /}
单行文本
{/if}
</span>
<select name="attr_input_type[]" class="input_showhide none" onchange="change_attr_input_type(this);">
<option value="0" {eq name="$vo.attr_input_type" value="0"}selected{/eq}>单行文本</option>
<option value="2" {eq name="$vo.attr_input_type" value="2"}selected{/eq}>多行文本</option>
<option value="3" {eq name="$vo.attr_input_type" value="3"}selected{/eq}>上传图片</option>
<!-- <option value="4" {eq name="$vo.attr_input_type" value="4"}selected{/eq}>开关类型</option> -->
</select>
{/eq}
</div>
</td>
<td style="width: 100%">
<div style="padding-left: 15px;" class="ncap-form-default">
<span class="span_showhide span_attr_value">
{if condition="4 == $vo['attr_input_type']"}
{notempty name='$vo.value'}
开启
{else /}
关闭
{/notempty}
{elseif condition="3 == $vo['attr_input_type']"}
<img src="{$vo.value|get_default_pic=###}" height="50">
{else /}
{$vo.value|default=''}
{/if}
</span>
{switch name="$vo['attr_input_type']" }
{case value="1"}
{/case}
{case value="2"}
<textarea rows="5" cols="60" name="attr_value[]" style="height:36px;" class="input_showhide none">{$vo.value|default=''}</textarea>
{/case}
{case value="3"}
<span class="input-file-show input_showhide" style="display: none;">
<span class="show">
<a id="img_a_{$vo['attr_var_name']}" class="nyroModal" rel="gal" href="{$vo.value|default='javascript:void(0);'}" target="_blank">
<i id="img_i_{$vo['attr_var_name']}" class="fa fa-picture-o" {notempty name="$vo.value"}onmouseover="layer_tips=layer.tips('<img src={$vo.value|default=''} class=\'layer_tips_img\'>',this,{tips: [1, '#fff']});"{/notempty} onmouseout="layer.close(layer_tips);"></i>
</a>
</span>
<span class="type-file-box">
<input type="text" id="{$vo['attr_var_name']}" name="attr_value[]" value="{$vo.value|default=''}" class="type-file-text" autocomplete="off">
<input type="button" name="button" id="button1" value="选择上传..." class="type-file-button">
<input class="type-file-file" onClick="GetUploadify(1,'','allimg','{$vo['attr_var_name']}_img_call_back')" size="30" hidefocus="true" nc_type="change_site_logo" title="点击前方预览图可查看大图,点击按钮选择文件并提交表单后上传生效">
</span>
</span>
<script type="text/javascript">
function {$vo['attr_var_name']}_img_call_back(fileurl_tmp)
{
$("#{$vo['attr_var_name']}").val(fileurl_tmp);
$("#img_a_{$vo['attr_var_name']}").attr('href', fileurl_tmp);
$("#img_i_{$vo['attr_var_name']}").attr('onmouseover', "layer_tips=layer.tips('<img src="+fileurl_tmp+" class=\\'layer_tips_img\\'>',this,{tips: [1, '#fff']});");
}
</script>
{/case}
{case value="4"}
<div class="onoff input_showhide" style="display: none;">
<label for="{$vo['attr_var_name']}1" class="cb-enable {if condition='!empty($vo.value)'}selected{/if}">开启</label>
<label for="{$vo['attr_var_name']}0" class="cb-disable {if condition='empty($vo.value)'}selected{/if}">关闭</label>
<input id="{$vo['attr_var_name']}1" onclick="attr_switch(this);" value="1" type="radio" {if condition="!empty($vo.value)"} checked="checked"{/if}>
<input id="{$vo['attr_var_name']}0" onclick="attr_switch(this);" value="0" type="radio" {if condition="empty($vo.value)"} checked="checked"{/if}>
<input type="hidden" name="attr_value[]" value="{$vo.value|default='0'}" class="input-txt">
</div>
{/case}
{default /}
<input type="text" name="attr_value[]" value="{$vo.value|default=''}" class="input_showhide input-txt" style="display: none;">
{/switch}
</div>
</td>
<td>
<div class="w150 tc">
<span class="pl10">
<span class="span_showhide span_attr_type_id">{$vo.type_name}</span>
<select name="attr_type_id[]" class="input_showhide none">
{volist name="config_type" id="type"}
<option value="{$type.id}" {eq name="$vo.type_id" value="$type.id"}selected{/eq}>{$type.type_name}</option>
{/volist}
</select>
</span>
</div>
</td>
<td class="">
<div class="w150 tl">
{eq name="'System@customvar_save'|is_check_access" value="1"}
<a class="btn blue" href="javascript:void(0);" onClick="customvar_edit(this);">编辑</a>
{/eq}
{eq name="'System@customvar_del'|is_check_access" value="1"}
{eq name='$main_lang' value='$admin_lang'}
<a class="btn red" href="javascript:void(0);" data-id="{$vo.id}" onClick="customvar_del(this);" {eq name='$recycle_switch' value='1'} data-deltype="del" {else /} data-deltype="pseudo" {/eq}>删除</a>
{/eq}
{/eq}
<a class="btn blue" href="javascript:void(0);" onclick="copyToClipBoard('{$vo.attr_var_name}', '{$vo.attr_var_title}')">标签调用</a>
</div>
</td>
</tr>
{/foreach}
{/empty}
</tbody>
</table>
</div>
</form>
<div class="iDiv" style="display: none;"></div>
</div>
<div class="tDiv">
<div class="tDiv2">
{eq name='$main_lang' value='$admin_lang'}
<div class="fbutton">
<a href="javascript:void(0);" onclick="customvar_add();">
<div class="add" title="新增变量">
<span class="red"><i class="fa fa-plus"></i>新增变量</span>
</div>
</a>
</div>
{/eq}
<div class="fbutton">
<a href="javascript:void(0);" onclick="customvar_save(this);">
<div class="add" title="保存">
<span class=""><i class="fa fa-save"></i>保存</span>
</div>
</a>
</div>
{include file="public/page" /}
</div>
<div style="clear:both"></div>
</div>
<!--分页位置-->
</div>
</div>
<script type="text/javascript">
$('#searchForm select[name=type_id]').change(function(){
$('#searchForm').submit();
});
var config_type_list = {$config_type|json_encode};
var attr_input_type_list = {$attr_input_type|json_encode};
$(document).ready(function(){
// 表格行点击选中切换
$('#flexigrid > table>tbody >tr').click(function(){
$(this).toggleClass('trSelected');
});
// 点击刷新数据
$('.fa-refresh').click(function(){
location.href = location.href;
});
});
function showtext(classname){
var clipboard1 = new Clipboard("."+classname);clipboard1.on("success", function(e) {layer.msg("复制成功");});clipboard1.on("error", function(e) {layer.msg("复制失败!请手动复制", {icon:5});});
}
// tr数,取唯一标识
var tr_id = $('#tbody tr').length;
function customvar_add(){
var html = '';
html += '<tr class="tr" id="tr_'+tr_id+'">';
html += ' <td class="sign none">';
html += ' <div class="w20 tc"> ';
html += ' </div>';
html += ' </td>';
html += ' <td>';
html += ' <div class="w250 tl"> ';
html += ' <span class="pl10">';
html += ' <input type="text" name="attr_name[]" value="" class="w200 input_showhide">';
html += ' </span>';
html += ' </div>';
html += ' </td>';
html += ' <td>';
html += ' <div class="w150 tc">';
html += ' <select name="attr_input_type[]" class="input_showhide" onchange="change_attr_input_type(this);">';
for(var i in attr_input_type_list){
html += ' <option value="'+i+'">'+attr_input_type_list[i]+'</option>';
}
html += ' </select>';
html += ' </div>';
html += ' </td>';
html += ' <td style="width: 100%">';
html += ' <div style="padding-left: 15px;" class="ncap-form-default">';
html += ' <input type="text" name="attr_value[]" value="" class="input_showhide input-txt">';
html += ' </div>';
html += ' </td>';
html += ' <td>';
html += ' <div class="w150 tc">';
html += ' <select name="attr_type_id[]" class="input_showhide">';
for(var i in config_type_list){
html += ' <option value="'+config_type_list[i].id+'">'+config_type_list[i].type_name+'</option>';
}
html += ' </select>';
html += ' </div>';
html += ' </td>';
html += ' <td class="">';
html += ' <div class="w150 tl">';
html += ' <a class="btn grey" href="javascript:void(0);">编辑</a>';
html += ' <a href="javascript:void(0);" class="btn red" onclick="$(\'#tr_'+tr_id+'\').remove();"><i class="fa fa-trash-o"></i>删除</a> ';
html += ' <a class="btn grey" href="javascript:void(0);">标签调用</a>';
html += ' </div>';
html += ' </td>';
html += '</tr>';
if ($('input[name*=attr_name]').length == 0) {
$('#tbody').html(html);
} else {
$('#tbody').append(html);
}
tr_id += 1;
}
function change_attr_input_type(obj)
{
var html = '';
var attr_input_type = $(obj).val();
var trObj = $(obj).parent().parent().parent();
var tr_id = trObj.attr('id');
if (2 == attr_input_type) {
html += '<textarea rows="5" cols="60" name="attr_value[]" style="height:36px;" class="input_showhide"></textarea>';
} else if (3 == attr_input_type) {
html += '<span class="input-file-show input_showhide">';
html += ' <span class="show">';
html += ' <a id="img_a_'+tr_id+'" class="nyroModal" rel="gal" href="javascript:void(0);" target="_blank">';
html += ' <i id="img_i_'+tr_id+'" class="fa fa-picture-o" onmouseover="" onmouseout="layer.close(layer_tips);"></i>';
html += ' </a>';
html += ' </span>';
html += ' <span class="type-file-box">';
html += ' <input type="text" id="web_attr_'+tr_id+'" name="attr_value[]" value="" class="type-file-text" autocomplete="off">';
html += ' <input type="button" name="button" id="button1" value="选择上传..." class="type-file-button">';
html += ' <input class="type-file-file" onClick="GetUploadify(1,\'\',\'allimg\',\''+tr_id+'_img_call_back\')" size="30" hidefocus="true" nc_type="change_site_logo" title="点击前方预览图可查看大图,点击按钮选择文件并提交表单后上传生效">';
html += ' </span>';
html += '</span>';
html += '<script type="text/javascript">';
html += ' function '+tr_id+'_img_call_back(fileurl_tmp)';
html += ' {';
html += ' $("#web_attr_'+tr_id+'").val(fileurl_tmp);';
html += ' $("#img_a_'+tr_id+'").attr("href", fileurl_tmp);';
html += ' $("#img_i_'+tr_id+'").attr("onmouseover", "layer_tips=layer.tips(\'<img src="+fileurl_tmp+" class=\\\\\\\'layer_tips_img\\\\\\\'>\',this,{tips: [1, \'#fff\']});");';
html += ' }';
html += '<\/script>';
} else if (4 == attr_input_type) {
html += '<div class="onoff input_showhide">';
html += ' <label for="'+tr_id+'_1" class="cb-enable">开启</label>';
html += ' <label for="'+tr_id+'_0" class="cb-disable selected">关闭</label>';
html += ' <input id="'+tr_id+'_1" onclick="attr_switch(this);" value="1" type="radio">';
html += ' <input id="'+tr_id+'_0" onclick="attr_switch(this);" value="0" type="radio" checked="checked">';
html += ' <input type="hidden" name="attr_value[]" value="0" class="input-txt">';
html += '</div>';
} else {
html += '<input type="text" name="attr_value[]" value="" class="input_showhide input-txt">';
}
trObj.find('.ncap-form-default').html(html);
}
function attr_switch(obj)
{
var attr_value = $(obj).val();
$(obj).parent().find("input[name='attr_value[]']").val(attr_value);
}
function customvar_edit(obj)
{
var trObj = $(obj).parent().parent().parent();
trObj.find('.input_showhide').show();
trObj.find('.span_showhide').hide();
$(obj).removeAttr('onclick').unbind('click').click(function(){customvar_save_one(this);}).css("color","red").html("保存");
}
//提交保存单条
function customvar_save_one(obj){
var trObj = $(obj).parent().parent().parent();
var attr_id = trObj.find(('input[name*=attr_id]')).val();
var attr_var_name = trObj.find(('input[name*=attr_var_name]')).val();
var attr_name = trObj.find(('input[name*=attr_name]')).val();
var attr_input_type = trObj.find(('select[name*=attr_input_type]')).val();
if (attr_input_type === undefined){ //开关类型
var attr_input_type = trObj.find(('input[name*=attr_input_type]')).val();
}
var attr_value = trObj.find(('[name*=attr_value]')).val();
var attr_type_id = trObj.find(('select[name*=attr_type_id]')).val();
if (attr_name === '') {
layer.alert('变量名称不能为空!', {
shade: layer_shade,
area: ['480px', '190px'],
move: false,
title: '提示',
btnAlign:'r',
closeBtn: 3,
success: function () {
$(".layui-layer-content").css('text-align', 'left');
}
});
return false;
}
layer_loading('正在处理');
$.ajax({
type : 'post',
url : "{:url('System/customvar_save_one')}",
data : {attr_id:attr_id,attr_var_name:attr_var_name,attr_name:attr_name,attr_input_type:attr_input_type,attr_value:attr_value,type_id:attr_type_id,_ajax:1},
dataType : 'json',
success : function(res){
layer.closeAll();
if(res.code == 1){
layer.msg(res.msg, {shade: 0.1, time: 1000}, function(){
// window.location.reload();
});
trObj.find(".span_attr_name").html(attr_name);
trObj.find(".span_attr_input_type").html(attr_input_type_list[attr_input_type]);
trObj.find(".span_attr_value").html(res.data.attr_value); //返回正确的值
trObj.find(".span_attr_type_id").html(config_type_list[attr_type_id].type_name);
trObj.find('.input_showhide').hide();
trObj.find('.span_showhide').show();
$(obj).removeAttr('onclick').unbind('click').click(function(){customvar_edit(this);}).css("color","#3478bc").html("编辑");
}else{
showErrorAlert(res.msg);
}
},
error: function(e){
layer.closeAll();
showErrorAlert(e.responseText);
}
});
}
// 提交保存全部
function customvar_save(obj){
if ($('input[name*=attr_name]').length == 0) {
layer.alert('至少新增一个自定义变量!', {
shade: layer_shade,
area: ['480px', '190px'],
move: false,
title: '提示',
btnAlign:'r',
closeBtn: 3,
success: function () {
$(".layui-layer-content").css('text-align', 'left');
}
});
return false;
} else {
var is_empty = true;
$('input[name*=attr_name]').each(function(index, item){
if ($.trim($(item).val()) != '') {
is_empty = false;
return false;
}
});
if (true == is_empty) {
layer.alert('变量名称不能为空!', {
shade: layer_shade,
area: ['480px', '190px'],
move: false,
title: '提示',
btnAlign:'r',
closeBtn: 3,
success: function () {
$(".layui-layer-content").css('text-align', 'left');
}
});
return false;
}
}
var url = "{:url('System/customvar_save', ['_ajax'=>1])}";
layer_loading('正在处理');
$.ajax({
type : 'post',
url : url,
data : $('#PostForm').serialize(),
dataType : 'json',
success : function(res){
layer.closeAll();
if(res.code == 1){
layer.msg(res.msg, {icon: 6, time: 1000}, function(){
// parent.gourl(res.url);
window.location.href = res.url;
});
}else{
showErrorMsg(res.msg);
}
},
error: function(e){
layer.closeAll();
showErrorAlert(e.responseText);
}
});
}
function customvar_del(obj) {
var deltype = $(obj).attr('data-deltype');
var confirm_title = '确认删除至回收站?';
if ('del' == deltype){
confirm_title = '确认删除?';
}
layer.confirm(confirm_title, {
shade: layer_shade,
area: ['480px', '190px'],
move: false,
title: '提示',
btnAlign:'r',
closeBtn: 3,
btn: ['确定', '取消'] ,//按钮
success: function () {
$(".layui-layer-content").css('text-align', 'left');
}
}, function(){
// 确定
layer_loading('正在处理');
$.ajax({
type : 'post',
url : "{:url('System/customvar_del')}",
data : {del_id:$(obj).attr('data-id'),deltype:deltype,_ajax:1},
dataType : 'json',
success : function(data){
layer.closeAll();
if(data.code == 1){
layer.msg(data.msg, {icon: 6});
window.location.reload();
// $('#dl_'+$(obj).attr('data-attr_var_name')).remove();
}else{
layer.msg(data.msg, {icon: 5,time: 2000});
}
}
});
}, function(index){
layer.close(index);
return false;// 取消
}
);
}
/**
* 代码调用js
* @param id id
* @param limit 条数
*/
function copyToClipBoard(attr_var_name, attr_var_title) {
var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>变量值:</dd>'
contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{'+'eyou:global name=\''+attr_var_name+'\' /}"></dd>'
contentdiv += '<dd>变量名称:</dd>'
contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{'+'eyou:global name=\''+attr_var_title+'\' /}"></dd>'
height = '250px';
contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将相应标签复制并粘贴到对应模板文件中!</dd></dl></div>'
layer.open({
shade: layer_shade,
title: '标签调用',
type: 1,
skin: 'layui-layer-demo',
area: ['480px', height], //宽高
content: contentdiv
});
}
</script>
{include file="public/footer" /}