| Server IP : 156.238.232.47 / Your IP : 216.73.216.150 Web Server : nginx/1.25.3 System : Linux C202504152095410 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : www ( 1000) PHP Version : 8.3.25 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 MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /www/data/wwwroot/26022724.961104.xyz/application/admin/template/shop_product/ |
Upload File : |
{include file="public/layout" /}
<body style="overflow: auto; cursor: default; -moz-user-select: inherit;background-color:#F4F4F4;">
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
{include file="shop/left" /}
<div id="geduan_div" class="h10"></div>
<div id="page_div" class="page min-hg-c mb-20" style="min-width: auto;box-shadow: none;">
<div class="flexigrid flexigrid2" style="min-height: 600px;">
<div class="mDiv">
<div class="ftitle">
{eq name="$Think.const.CONTROLLER_NAME.'@add'|is_check_access" value="1"}
<div class="fbutton" style="float: none; display: none;" id="div_add">
<a href="{gt name="$Request.param.typeid" value="0"}{:url('ShopProduct/add', ['typeid'=>$Request.param.typeid, 'callback_url'=>$callback_url])}{else /}javascript:quick_release('{$is_product_arctype}');{/gt}">
<div class="add">
<span><i class="layui-icon layui-icon-addition"></i>发布商品</span>
</div>
</a>
</div>
{/eq}
</div>
<form class="navbar-form form-inline" id="searchForm" action="{:url('ShopProduct/index')}" method="get" onsubmit="layer_loading('正在处理');">
{$searchform.hidden|default=''}
<div class="sDiv">
{include file="shop_product/tags_btn" /}
<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="bDiv" style="height: auto;">
<div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
<table style="width: 100%;">
<thead style="background-color: #f2f2f2; line-height: 40px;">
<tr>
<th class="sign w40" axis="col0">
<div class="tc"><input type="checkbox" autocomplete="off" class="checkAll"></div>
</th>
<!-- <th abbr="article_title" axis="col3" class="w70">
<div class="tc">ID</div>
</th> -->
<th align="center" abbr="article_title" axis="col3" class="w60">
<div class="">商品信息</div>
</th>
<th align="left" abbr="article_title" axis="col3" class="">
<div class=""></div>
</th>
<th align="left" abbr="" axis="col3" class="w150">
<div class="sort_style"><a href="{:getArchivesSortUrl('users_price')}">价格 <i {eq name='$Request.param.orderby' value='users_price'}{eq name='$Request.param.orderway' value='asc'}class="asc"{else /}class="desc"{/eq}{/eq}></i></a></div>
</th>
<th align="left" abbr="" axis="col3" class="w150">
<div class="sort_style"><a href="{:getArchivesSortUrl('stock_count')}">库存 <i {eq name='$Request.param.orderby' value='stock_count'}{eq name='$Request.param.orderway' value='asc'}class="asc"{else /}class="desc"{/eq}{/eq}></i></a></div>
</th>
<th abbr="article_time" axis="col6" class="w80">
<div class="sort_style"><a href="{:getArchivesSortUrl('sales_num')}" title="实际销量值">销量 <i {eq name='$Request.param.orderby' value='sales_num'}{eq name='$Request.param.orderway' value='asc'}class="asc"{else /}class="desc"{/eq}{/eq}></i></a></div>
</th>
<th abbr="article_time" axis="col6" class="w120">
<div class="">分类</div>
</th>
<th align="center" abbr="article_time" axis="col6" class="w80">
<div class="">状态</div>
</th>
<th axis="col1" class="w160">
<div class="">操作</div>
</th>
<th abbr="article_time" axis="col6" class="w60 tc">
<div class="sort_style"><a href="{:getArchivesSortUrl('sort_order')}">排序 <i {eq name='$Request.param.orderby' value='sort_order'}{eq name='$Request.param.orderway' value='asc'}class="asc"{else /}class="desc"{/eq}{/eq}></i></a></div>
</th>
</tr>
</thead>
<tbody>
{empty name="list"}
<tr>
<td class="no-data" align="center" axis="col0" colspan="50">
<div class="no_row">
<div class="no_pic"><img src="__SKIN__/images/null-data.png"></div>
</div>
</td>
</tr>
{else/}
{foreach name="list" item="vo" key="k" }
<tr>
<td class="sign">
<div class="tc w40"><input type="checkbox" autocomplete="off" name="ids[]" value="{$vo.aid}"></div>
</td>
<!-- <td class="sort">
<div class="tc w70">{$vo.aid}</div>
</td> -->
<td class="w60">
<div class="tc">
<a href="{:url('ShopProduct/edit',array('id'=>$vo['aid'], 'callback_url'=>$callback_url))}" style='{eq name="vo.is_b" value="1"} font-weight: bold; {/eq}'>
<img width="60" height="60" src="{$vo.litpic}">
</a>
</div>
</td>
<td class="goods-item">
<div class="fl" style="padding-left: 10px;">
<div class="title">
{eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
<a href="{:url('ShopProduct/edit',array('id'=>$vo['aid'], 'callback_url'=>$callback_url))}" style='{eq name="$vo.is_b" value="1"}font-weight: bold;{/eq}'>{$vo.title}</a>
{else /}
{$vo.title}
{/eq}
</div>
</div>
</td>
<td class="w150">
<div class="goodsQuickEdit">¥{$vo.users_price}
<a href="JavaScript:void(0);" class="none" data-url="{:url('ShopProduct/goods_quick_edit', ['aid'=>$vo.aid])}" onclick="eopnGoodsQuickEdit(this, {$vo.goodsSpec});"><i class="iconfont e-bianji"></i></a>
</div>
</td>
<td class="w150">
<div class="goodsQuickEdit">{$vo.stock_count}
<a href="JavaScript:void(0);" class="none" data-url="{:url('ShopProduct/goods_quick_edit', ['aid'=>$vo.aid])}" onclick="eopnGoodsQuickEdit(this, {$vo.goodsSpec});"><i class="iconfont e-bianji"></i></a>
</div>
</td>
<td class="w80">
<div class="">{$vo.sales_num}</div>
</td>
<td>
<div class="w120 ellipsis">
<a href="{:url('ShopProduct/index', array('typeid'=>$vo['typeid']))}" title="{$vo.typename}">
{$vo.typename|default='<i class="red">数据出错!</i>'}
</a>
</div>
</td>
<td class="">
<div class="w80">{egt name="$vo.arcrank" value="0" }销售中{else/}仓库中{/egt}</div>
</td>
<td align="center" class="operation">
<div class="">
{eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
<a href="{:url('ShopProduct/edit',array('id'=>$vo['aid'], 'callback_url'=>$callback_url))}" class="btn blue">
编辑
</a>
<i></i>
{/eq}
{eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
<a class="btn red" href="javascript:void(0);" data-url="{:url('ShopProduct/del')}" data-id="{$vo.aid}" {eq name="$global['web_recycle_switch']" value='1'} data-deltype="del" {else /} data-deltype="pseudo" {/eq} onClick="delfun(this);">
删除
</a>
<i></i>
{/eq}
<a href="{$vo.arcurl}" target="_blank" class="btn blue">浏览</a>
</div>
</td>
<td class="sort">
<div class="w60 tc">
{eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
<input type="text" onchange="changeTableVal('archives', 'aid', '{$vo.aid}', 'sort_order' ,this);" size="4" value="{$vo.sort_order}" />
{else /}
{$vo.sort_order}
{/eq}
</div>
</td>
</tr>
{/foreach}
{/empty}
</tbody>
</table>
</div>
<div class="iDiv" style="display: none;"></div>
</div>
{notempty name="list"}
<div class="footer-oper">
<span class="ml15">
<input type="checkbox" autocomplete="off" class="checkAll">
</span>
<div class="nav-dropup">
<button class="layui-btn layui-btn-primary dropdown-bt">批量操作<i class="layui-icon layui-icon-up"></i></button>
<div class="dropdown-menus" style="display:none; {if condition='0 < $pager->totalRows && ($pager->totalRows < 2 || $pager->listRows < 2)'}top:28px;bottom:unset;border-bottom:1px solid rgba(0,0,0,.15);border-top:none;min-height: 250px;{/if}">
{eq name="'Archives@batch_attr'|is_check_access" value="1"}
<a href="javascript:void(0);" onclick="batch_attr(this, 'ids', '批量新增属性');" data-url="{:url('Archives/batch_attr', ['opt'=>'add'])}">新增属性</a>
<a href="javascript:void(0);" onclick="batch_attr(this, 'ids', '批量删除属性');" data-url="{:url('Archives/batch_attr', ['opt'=>'del'])}">删除属性</a>
<hr class="layui-bg-gray">
{/eq}
{eq name="'Archives@batch_copy'|is_check_access" value="1"}
<a href="javascript:void(0);" onclick="func_batch_copy(this, 'ids');" data-url="{:url('Archives/batch_copy', array('typeid'=>$Request.param.typeid))}">复制商品</a>
{/eq}
{eq name="'Archives@move'|is_check_access" value="1"}
<a href="javascript:void(0);" onclick="func_move(this, 'ids');" data-url="{:url('Archives/move', array('typeid'=>$Request.param.typeid))}">移动商品</a>
{/eq}
{eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
<a href="javascript:void(0);" onclick="batch_del(this, 'ids');" data-url="{:url('ShopProduct/del')}" {eq name="$global['web_recycle_switch']" value='1'} data-deltype="del" {else /} data-deltype="pseudo" {/eq}>删除商品</a>
{/eq}
{eq name="'Archives@check'|is_check_access" value="1"}
<hr class="layui-bg-gray">
<a href="javascript:void(0);" onclick="batch_check(this, 'ids');" data-url="{:url('Archives/check')}">审核商品</a>
<a href="javascript:void(0);" onclick="batch_check(this, 'ids');" data-url="{:url('Archives/uncheck')}">取消审核</a>
{/eq}
</div>
</div>
{eq name="'RecycleBin@archives_index'|is_check_access" value="1"}
{neq name="$global['web_recycle_switch']" value='1'}<a href="{:url('RecycleBin/archives_index')}" class="layui-btn layui-btn-primary" title="回收站">回收站</a>{/neq}
{/eq}
{include file="public/page" /}
</div>
{/notempty}
</div>
</div>
<script type="text/javascript">
$(function(){
try{
if (typeof(eval('is_conceal_1649209614'))=="function" && is_conceal_1649209614()){
$(".page").css("margin-left","");
}else{
$(".page").css("margin-left","110px");
}
}catch(e){}
$('#div_add').show();
$('input[name*=ids]').click(function(){
if ($('input[name*=ids]').length == $('input[name*=ids]:checked').length) {
$('.checkAll').prop('checked','checked');
} else {
$('.checkAll').prop('checked', false);
}
});
$('input[type=checkbox].checkAll').click(function(){
$('input[type=checkbox]').prop('checked',this.checked);
});
// 清除由原内容管理、栏目管理跳转过来时携带的特定参数
top.$('#Shop_home').attr('data-click', '');
});
$(document).ready(function() {
// 表格行点击选中切换
$('#flexigrid > table>tbody >tr').click(function() {
$(this).toggleClass('trSelected');
});
// 点击刷新数据
$('.fa-refresh').click(function() {
location.href = location.href;
});
// 批量操作
$(".dropdown-bt").click(function(){
$(".dropdown-menus").slideToggle(200);
event.stopPropagation();
})
$(document).click(function(){
$(".dropdown-menus").slideUp(200);
event.stopPropagation();
});
$(".goodsQuickEdit").mouseenter(function() {
$(this).find('a').show();
});
$(".goodsQuickEdit").mouseleave(function() {
$(this).find('a').hide();
});
});
function eopnGoodsQuickEdit(obj, goodsSpec) {
var iframe = document.createElement('iframe');
iframe.style.cssText = 'position: absolute; visibility: hidden; width: 0; height: 0; border: none;';
iframe.src = $(obj).data('url');
iframe.onload = function() {
var iframeWindow = iframe.contentWindow || iframe.contentDocument.defaultView;
var pageWidth = iframeWindow.document.documentElement.scrollWidth + 0; // 获取页面宽度并加上 20
var pageHeight = iframeWindow.document.documentElement.scrollHeight + 70; // 获取页面高度并加上 20
var viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); // 获取屏幕可视区域的高度
var maxHeight = Math.floor(viewportHeight * 0.8); // 计算弹窗的最大高度为屏幕可视区域高度的 80%
var popupHeight = Math.min(pageHeight, maxHeight); // 取页面高度和最大高度的较小值作为弹窗的高度
layer.open({
type: 2,
fixed: true,
maxmin: false,
shadeClose: false,
shade: layer_shade,
area: [pageWidth + 'px', popupHeight + 'px'], // 将页面宽度和弹窗高度作为弹窗的高宽
title: '快捷编辑',
content: $(obj).data('url')
});
document.body.removeChild(iframe);
};
document.body.appendChild(iframe);
}
var aids = '';
function func_move(obj, name) {
var a = [];
var k = 0;
aids = '';
$('input[name^=' + name + ']').each(function(i, o) {
if ($(o).is(':checked')) {
a.push($(o).val());
if (k > 0) {
aids += ',';
}
aids += $(o).val();
k++;
}
})
if (a.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;
}
var url = $(obj).attr('data-url');
//iframe窗
layer.open({
type: 2,
title: '移动文档',
fixed: true, //不固定
shadeClose: false,
shade: layer_shade,
maxmin: false, //开启最大化最小化按钮
area: ['480px', '360px'],
content: url
});
}
/**
* 批量审核
*/
function batch_check(obj, name) {
var url = $(obj).attr('data-url');
var a = [];
$('input[name^='+name+']').each(function(i,o){
if($(o).is(':checked')){
a.push($(o).val());
}
})
if(a.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;
}
// title = '批量审核';
// btn = ['确定', '取消']; //按钮
// // 删除按钮
// layer.confirm(title, {
// title: false,
// btn: btn //按钮
// }, function () {
layer_loading('正在处理');
$.ajax({
type: "POST",
url: url,
data: {ids:a, _ajax:1},
dataType: 'json',
success: function (res) {
layer.closeAll();
if(res.code == 1){
layer.msg(res.msg, {icon: 1, time:1000}, function(){
window.location.reload()
});
}else{
layer.alert(res.msg, {icon: 2, title:false});
}
},
error:function(e){
layer.closeAll();
layer.alert(e.responseText, {icon: 2, title:false});
}
});
// }, function (index) {
// layer.closeAll(index);
// });
}
/**
* 获取修改之前的内容
*/
function get_aids() {
return aids;
}
</script>
<script type="text/javascript">
/*模拟下拉选择 select */
$('.cate-select').on('click', '.placeholder', function(e) {
var parent = $(this).closest('.cate-select');
if (!parent.hasClass('is-open')) {
parent.addClass('is-open');
$('.cate-select.is-open').not(parent).removeClass('is-open');
} else {
parent.removeClass('is-open');
}
e.stopPropagation();
}).on('click', 'ul>li', function() {
var parent = $(this).closest('.cate-select');
parent.removeClass('is-open').find('.placeholder').text($(this).text());
});
$('body').on('click', function() {
$('.cate-select.is-open').removeClass('is-open');
});
</script>
{include file="public/footer" /}
<script>
try{
var mt20_1649209614 = sessionStorage.getItem("mt20_1649209614");
if (mt20_1649209614 == 1){
$("#geduan_div").removeClass("h10");
}else{
$("#geduan_div").addClass("h10");
}
}catch(e){}
</script>