Files
littleTiger/application/admin/view/goods/_goods.html

1051 lines
49 KiB
HTML
Raw Normal View History

2019-02-28 19:48:21 +08:00
<include file="public/layout" />
<!--物流配置 css -start-->
<script src="__ROOT__/public/static/js/layer/laydate/laydate.js"></script>
<style>
ul.group-list {
width: 96%;min-width: 1000px; margin: auto 5px;list-style: disc outside none;
}
.err{color:#F00; display:none;}
ul.group-list li {
white-space: nowrap;float: left;
width: 150px; height: 25px;
padding: 3px 5px;list-style-type: none;
list-style-position: outside;border: 0px;margin: 0px;
}
.row .table-bordered td .btn,.row .table-bordered td img{
vertical-align: middle;
}
.row .table-bordered td{
padding: 8px;
line-height: 1.42857143;
}
.table-bordered{
width: 100%
}
.table-bordered tr td{
border: 1px solid #f4f4f4;
}
.btn-success {
color: #fff;background-color: #449d44;border-color: #398439 solid 1px;
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.col-xs-8 {
width: 66%;
}
.col-xs-4 {
width: 33%;
}
.col-xs-4, .col-xs-8 {
float: left;
}
.row .tab-pane h4{
padding: 10px 0;
}
.row .tab-pane h4 input{
vertical-align: middle;
}
.table-striped>tbody>tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.ncap-form-default .title{
border-bottom: 0
}
.ncap-form-default dl.row, .ncap-form-all dd.opt{
/*border-color: #F0F0F0;*/
border: none;
}
.ncap-form-default dl.row:hover, .ncap-form-all dd.opt:hover{
border: none;box-shadow: inherit;
}
.addprine{display: inline; }
.alisth{margin-top: 10px}
.p_plus strong{cursor: pointer;margin-left: 4px;}
.freight_template {
font-size: 14px;
display: inline-block;
padding: 0px 10px;
}
.err{color:#F00; display:none;}
</style>
<!--物流配置 css -end-->
<!--以下是在线编辑器 代码 -->
<load href="__ROOT__/public/plugins/Ueditor/ueditor.config.js"/>
<load href="__ROOT__/public/plugins/Ueditor/ueditor.all.min.js"/>
<script type="text/javascript" charset="utf-8" src="__ROOT__/public/plugins/Ueditor/lang/zh-cn/zh-cn.js"></script>
<!--以上是在线编辑器 代码 end-->
<body style="background-color: #FFF; overflow: auto;">
<div id="append_parent"></div>
<div id="ajaxwaitid"></div>
<div class="page">
<div class="fixed-bar">
<div class="item-title">
<div class="subject">
<h3>商品设置</h3>
<h5>商品基本信息设置</h5>
</div>
<ul class="tab-base nc-row">
<li><a href="javascript:void(0);" data-index='1' class="tab current"><span>通用信息</span></a></li>
<li><a href="javascript:void(0);" data-index='2' class="tab"><span>商品相册</span></a></li>
<li><a href="javascript:void(0);" data-index='3' class="tab"><span>商品模型</span></a></li>
<li><a href="javascript:void(0);" data-index='5' class="tab"><span>积分折扣</span></a></li>
</ul>
</div>
</div>
<!-- 操作说明 -->
<div class="explanation" id="explanation">
<div class="title" id="checkZoom"><i class="fa fa-lightbulb-o"></i>
<h4 title="提示相关设置操作时应注意的要点">操作提示</h4>
<span id="explanationZoom" title="收起提示"></span> </div>
<ul>
<li>请务必正确填写商品信息</li>
</ul>
</div>
<!--表单数据-->
<form method="post" id="addEditGoodsForm">
<input type="hidden" name="goods_id" value="{$goods.goods_id}">
<input type="hidden" name="__token__" value="{$Request.token}" />
<input type="hidden" value="{$Request.param.is_distribut}" name="is_distribut" disabled="disabled"/>
<input type="hidden" value="{$level_cat['1']}" name="level_cat_1" disabled="disabled"/>
<input type="hidden" value="{$level_cat['2']}" name="level_cat_2" disabled="disabled"/>
<input type="hidden" value="{$level_cat['3']}" name="level_cat_3" disabled="disabled"/>
<input type="hidden" value="{$goods['brand_id']|default = 0}" name="goods_brand_id" disabled="disabled"/>
<!--通用信息-->
<div class="ncap-form-default tab_div_1">
<dl class="row">
<dt class="tit"><em>*</em>
<label>商品名称</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.goods_name}" name="goods_name" class="input-txt"/>
<span class="err" id="err_goods_name"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit"><em>*</em>
<label>商品分类</label>
</dt>
<dd class="opt">
<select name="cat_id" id="cat_id" class="small form-control">
<option value="0">请选择商品分类</option>
<foreach name="cat_list" item="v" key="k">
<option value="{$v['id']}" <if condition="$v['id'] eq $level_cat['1']">selected="selected"</if>>
{$v['name']}
</option>
</foreach>
</select>
<select name="cat_id_2" id="cat_id_2" onChange="get_category(this.value,'cat_id_3','0');getCategoryBrandList(this.value)" class="small form-control">
<option value="0">请选择商品分类</option>
</select>
<select name="cat_id_3" id="cat_id_3" class="small form-control">
<option value="0">请选择商品分类</option>
</select>
<span class="err" id="err_cat_id"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品简介</label>
</dt>
<dd class="opt">
<textarea rows="3" cols="80" name="goods_remark" class="input-txt">{$goods.goods_remark}</textarea>
<span id="err_goods_remark" class="err"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品货号</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.goods_sn}" name="goods_sn" class="input-txt"/>
<span class="err" id="err_goods_sn"></span>
<p class="notic">如果不填会自动生成</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>SPU</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.spu}" name="spu" class="input-txt"/>
<span class="err" id="err_spu"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>SKU</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.sku}" name="sku" class="input-txt"/>
<span class="err" id="err_sku"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品品牌</label>
</dt>
<dd class="opt">
<select name="brand_id" id="brand_id" class="small form-control">
<option value="">所有品牌</option>
<foreach name="brandList" item="v" key="k">
<option value="{$v['id']}" <if condition="$v['id'] eq $goods['brand_id'] ">selected="selected"</if>>
{$v['name']}
</option>
</foreach>
</select>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>供应商</label>
</dt>
<dd class="opt">
<select name="suppliers_id" id="suppliers_id" class="small form-control">
<option value="0">不指定供应商属于本店商品</option>
<foreach name="suppliersList" item="v" key="k">
<option value="{$v['suppliers_id']}" <if condition="$v['suppliers_id'] eq $goods['suppliers_id'] ">selected="selected"</if>>
{$v['suppliers_name']}
</option>
</foreach>
</select>
</dd>
</dl>
<dl class="row">
<dt class="tit"><em>*</em>
<label>本店售价</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.shop_price}" name="shop_price" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>
<span class="err" id="err_shop_price"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit"><em>*</em>
<label>市场价</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.market_price}" name="market_price" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>
<span class="err" id="err_market_price"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>成本价</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.cost_price}" name="cost_price" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>
<span class="err" id="err_cost_price"></span>
</dd>
</dl>
<!--<dl class="row">-->
<!--<dt class="tit">-->
<!--<label>佣金</label>-->
<!--</dt>-->
<!--<dd class="opt">-->
<!--<input type="text" value="{$goods.commission}" name="commission" class="t_mane"-->
<!--onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>-->
<!--<span class="err" id="err_commission"></span>-->
<!--<p class="notic">用于分销的分成金额</p>-->
<!--</dd>-->
<!--</dl>-->
<dl class="row">
<dt class="tit">
<label>图片上传</label>
</dt>
<dd class="opt">
<div class="input-file-show">
<span class="show">
<a id="img_a" target="_blank" class="nyroModal" rel="gal" href="{$goods.original_img}">
<i id="img_i" class="fa fa-picture-o"
onMouseOver="layer.tips('<img src={$goods.original_img}>',this,{tips: [1, '#fff']});" onMouseOut="layer.closeAll();"></i>
</a>
</span>
<span class="type-file-box">
<input type="text" id="imagetext" name="original_img" value="{$goods.original_img}" class="type-file-text">
<input type="button" name="button" id="button1" value="选择上传..." class="type-file-button">
<input class="type-file-file" onClick="GetUploadify(1,'','goods','img_call_back')" size="30"
title="点击前方预览图可查看大图,点击按钮选择文件并提交表单后上传生效">
</span>
</div>
<span class="err"></span>
<p class="notic">请上传图片格式文件</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>视频上传</label>
</dt>
<dd class="opt">
<div class="input-file-show">
<span class="type-file-box">
<input type="text" id="videotext" name="video" value="{$goods.video}" class="type-file-text">
<span id="video_button">
<if condition="$goods.video">
<input type="button" onclick="delupload()" value="删除视频" class="type-file-button">
<else/>
<input type="button" name="button" id="videobutton1" value="选择上传..." class="type-file-button">
<input class="type-file-file" onClick="GetUploadify(1,'','goods','video_call_back','Flash')"
size="30" title="点击按钮选择文件并提交表单后上传生效">
</if>
</span>
</span>
</div>
<span class="err"></span>
<p class="notic">请上传视频格式文件</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品重量</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.weight}" name="weight" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>
<span class="err" id="err_weight"></span>
<p class="notic"> 务必设置商品重量, 用于计算物流费.以克为单位</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品体积</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.volume}" name="volume" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"/>
<span class="err" id="err_volume"></span>
<p class="notic"> 务必设置商品体积, 用于计算物流费.以立方米为单位</p>
</dd>
</dl>
<dl class="row goods_shipping">
<dt class="tit">
<label><em>*</em>是否包邮</label>
</dt>
<dd class="opt">
<div class="onoff">
<label id="is_free_shipping_label_1" for="is_free_shipping1" class="cb-enable <if condition='$goods.is_free_shipping eq 1'>selected</if>"></label>
<label id="is_free_shipping_label_0" for="is_free_shipping0" class="cb-disable <if condition='$goods.is_free_shipping eq 0'>selected</if>"></label>
<input id="is_free_shipping1" autocomplete="off" class="is_free_shipping" name="is_free_shipping" value="1" type="radio" <if condition="$goods[is_free_shipping] eq 1"> checked="checked"</if>>
<input id="is_free_shipping0" autocomplete="off" class="is_free_shipping" name="is_free_shipping" value="0" type="radio" <if condition="$goods[is_free_shipping] eq 0"> checked="checked"</if>>
<div class="freight_template" style="display: none;">
<span>运费模板</span>
<select name="template_id">
<option value="0">请选择运费模板</option>
<volist name="freight_template" id="template">
<option value="{$template.template_id}"<if condition="$template['template_id'] eq $goods['template_id'] ">selected="selected"</if>>{$template.template_name}</option>
</volist>
</select>
<empty name="freight_template"><span style="color: red;">没有可选的运费模板,请前去<a href="{:U('Freight/index')}" target="_blank">添加</a></span></empty>
</div>
</div>
<span class="err" id="err_is_free_shipping"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>总库存</label>
</dt>
<dd class="opt">
<if condition="$goods[goods_id] gt 0">
<input type="text" value="{$goods.store_count}" class="t_mane" name="store_count"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" />
<else />
<input type="text" value="{$tpshop_config[basic_default_storage]}" class="t_mane" name="store_count"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" />
</if>
<span class="err" id="err_store_count"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品关键词</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.keywords}" name="keywords" class="input-txt"/>
<span class="err" id="err_keywords"></span>
<p class="notic">多个关键词,用空格隔开</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>是否为虚拟商品</label>
</dt>
<dd class="opt">
<if condition="$goods['goods_id'] gt 0">
<if condition="$goods['is_virtual'] eq 1">
<span></span>
<input name="is_virtual" value="1" type="hidden" disabled="disabled">
<else/>
<span></span>
<input name="is_virtual" value="0" type="hidden" disabled="disabled">
</if>
<else/>
<div class="onoff">
<label for="is_virtual1" class="cb-enable <if condition='$goods.is_virtual eq 1'>selected</if>"></label>
<label for="is_virtual0" class="cb-disable <if condition='$goods.is_virtual eq 0'>selected</if>"></label>
<input class="is_virtual" id="is_virtual1" name="is_virtual" value="1" type="radio" <if condition="$goods[is_virtual] eq 1"> checked="checked"</if>>
<input class="is_virtual" id="is_virtual0" name="is_virtual" value="0" type="radio" <if condition="$goods[is_virtual] eq 0"> checked="checked"</if>>
</div>
</if>
<span class="err" id="err_is_virtual"></span>
<p class="notic"></p>
</dd>
</dl>
<dl class="row virtual" style="display: none;">
<dt class="tit">
<label>虚拟商品有效期至</label>
</dt>
<dd class="opt virtual">
<input id="virtual_indate" name="virtual_indate" value="{$goods[virtual_indate]|default=time()|date='Y-m-d',###}" class="input-txt" type="text">
<span class="err" id="err_virtual_indate"></span>
<p class="notic">虚拟商品可兑换的有效期,过期后商品不能购买,电子兑换码不能使用。</p>
</dd>
</dl>
<dl class="row virtual" style="display: none;">
<dt class="tit">
<label>虚拟商品购买上限</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.virtual_limit}" class="t_mane" name="virtual_limit"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"
onblur="checkInputNum(this.name,1,10,'',1);" />
<span class="err" id="err_virtual_limit"></span>
<p class="notic">请填写1~10之间的数字虚拟商品最高购买数量不能超过10个。</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>虚拟销售量</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.virtual_sales_sum}" name="virtual_sales_sum" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"
onblur="checkInputNum(this.name,0,9999999,'',1);" />
<span class="err" id="err_virtual_sales_sum"></span>
<p class="notic"> 虚拟销售量请输入0~9999999虚拟销售量 + 真实销量</p>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>虚拟收藏量</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.virtual_collect_sum}" name="virtual_collect_sum" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')"
onblur="checkInputNum(this.name,0,9999999,'',1);"/>
<span class="err" id="err_virtual_collect_sum"></span>
<p class="notic"> 虚拟收藏量请输入0~9999999虚拟收藏量 + 真实收藏量</p>
</dd>
</dl>
<!--百度云url-->
<dl class="row">
<dt class="tit">
<label>百度云url</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.url}" name="url" class="input-txt"/>
</dd>
</dl>
<!--百度云账号-->
<dl class="row">
<dt class="tit">
<label>百度云账号</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.gooduser}" name="gooduser" class="t_mane"/>
</dd>
</dl>
<!--百度云密码-->
<dl class="row">
<dt class="tit">
<label>百度云密码</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.goodpwd}" name="goodpwd" class="t_mane"/>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>商品详情描述</label>
</dt>
<dd class="opt">
<textarea class="span12 ckeditor" id="goods_content" name="goods_content" title="">{$goods.goods_content}</textarea>
<span class="err" id="err_goods_content"></span>
</dd>
</dl>
</div>
<!--通用信息-->
<!-- 商品相册-->
<div class="ncap-form-default tab_div_2" style="display:none;">
<dl class="row">
<div class="tab-pane" id="tab_goods_images">
<table class="table table-bordered">
<tbody>
<tr>
<td>
<volist name="goods['goods_images']" id="image">
<div style="width:100px; text-align:center; margin: 5px; display:inline-block;" class="goods_xc">
<input type="hidden" value="{$image['image_url']}" name="goods_images[]">
<a onClick="" href="{$image['image_url']}" target="_blank"><img width="100" height="100" src="{$image['image_url']}"></a>
<br>
<a href="javascript:void(0)" onClick="ClearPicArr2(this,'{$image.image_url}')">删除</a>
</div>
</volist>
<div class="goods_xc" style="width:100px; text-align:center; margin: 5px; display:inline-block;">
<input type="hidden" name="goods_images[]" value="" />
<a href="javascript:void(0);" onClick="GetUploadify(10,'','goods','call_back2');"><img src="/public/images/add-button.jpg" width="100" height="100" /></a>
<br/>
<a href="javascript:void(0)">&nbsp;&nbsp;</a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</dl>
</div>
<!-- 商品相册-->
<!-- 商品模型-->
<div class="ncap-form-default tab_div_3" style="display:none;">
<dl class="row">
<div class="tab-pane" id="tab_goods_spec">
<table class="table table-bordered" id="goods_spec_table">
<tr>
<td>商品模型:</td>
<td>
<a class="btn" id="new_type_info"><i class="fa fa-plus"></i>新增</a>
<select name="goods_type" id="goods_type" class="form-control" style="width:200px;">
<option value="0">选择商品模型</option>
<foreach name="goodsType" item="vo" key="k" >
<option value="{$vo.id}"<if condition="$goods[goods_type] eq $vo[id]"> selected="selected" </if> >{$vo.name}</option>
</foreach>
</select>
<a class="btn" id="type_info"><i class="fa fa-pencil-square-o"></i>编辑</a>
<span class="err" id="err_item"></span>
</td>
</tr>
</table>
<div class="row">
<!-- ajax 返回规格-->
<div id="ajax_spec_data" class="col-xs-8" ></div>
<div class="col-xs-4" >
<table class="table table-bordered" id="goods_attr_table">
<tr>
<td><b>商品属性</b> </td>
</tr>
</table>
</div>
</div>
</div>
</dl>
</div>
<!-- 商品模型-->
<!--积分折扣-->
<div class="ncap-form-default tab_div_5" style="display:none;">
<dl class="row">
<dt class="tit">
<label>价格阶梯</label>
</dt>
<dd class="opt">
<div class="alisth0" id="alisth_0">
单次购买个数达到<input type="text" class="input-number addprine" name="ladder_amount[]" <if condition="$goods['price_ladder']">value="{$goods['price_ladder'][0]['amount']}"</if> onpaste="this.value=this.value.replace(/[^\d.]/g,'')" onkeyup="this.value=this.value.replace(/[^\d.]/g,'')" style="width: 100px;" >&nbsp;
价格<input type="text" class="input-number addprine" name="ladder_price[]" <if condition="$goods['price_ladder']">value="{$goods['price_ladder'][0]['price']}"</if> onpaste="this.value=this.value.replace(/[^\d.]/g,'')" onkeyup="this.value=this.value.replace(/[^\d.]/g,'')" style="width: 100px;" >
<a class="p_plus" href="javascript:;"><strong>[+]</strong></a>
</div>
<volist name="goods['price_ladder']" id="vo" offset="1">
<div class="alisth">
单次购买个数达到<input type="text" class="input-number addprine" name="ladder_amount[]" value="{$vo['amount']}" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" style="width: 100px;" >&nbsp;
价格<input type="text" class="input-number addprine" name="ladder_price[]" value="{$vo['price']}" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" style="width: 100px;" >
<a class="p_plus" onclick='$(this).parent().remove();'><strong>[-]</strong></a>
</div>
</volist>
<span class="err" id="err_ladder_amount"></span>
<span class="err" id="err_ladder_price"></span>
</dd>
<script>
$(function(){
$('.p_plus').click(function() {
var html = "<div class='alisth'>"
+ "单次购买个数达到"
+ "<input type='text' class='input-number addprine' name='ladder_amount[]' style='width: 100px;' value=''/>"
+ "&nbsp;&nbsp;价格"
+ "<input type='text' class='input-number addprine' name='ladder_price[]' style='width: 100px;' value=''>"
+ "<a class='p_plus' onclick='$(this).parent().remove();'>&nbsp;<strong>[-]</strong></a>"
+ "</div>";
$('#alisth_0').after(html);
});
})
</script>
</dl>
<dl class="row">
<dt class="tit">
<label>赠送积分</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.give_integral}" name="give_integral" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" /> 订单完成后赠送积分
<span class="err" id="err_give_integral"></span>
</dd>
</dl>
<dl class="row">
<dt class="tit">
<label>兑换积分</label>
</dt>
<dd class="opt">
<input type="text" value="{$goods.exchange_integral}" name="exchange_integral" class="t_mane"
onKeyUp="this.value=this.value.replace(/[^\d.]/g,'')" onpaste="this.value=this.value.replace(/[^\d.]/g,'')" />
不得高于商品最低价格与兑换比的积如果设置0则不支持积分抵扣
<span class="err" id="err_exchange_integral"></span>
</dd>
</dl>
</div>
<div class="ncap-form-default">
<div class="bot">
<a href="JavaScript:void(0);" id="submit" class="ncap-btn-big ncap-btn-green">确认提交</a>
<span class="err" id="err_goods_id"></span>
</div>
</div>
</form>
<!--表单数据-->
</div>
<div id="goTop"> <a href="JavaScript:void(0);" id="btntop"><i class="fa fa-angle-up"></i></a><a href="JavaScript:void(0);" id="btnbottom"><i class="fa fa-angle-down"></i></a></div>
<script>
/** 商品规格相关 js*/
$(function(){
// 商品模型切换时 ajax 调用 返回不同的属性输入框
$(document).on("change",'#goods_type',function(){
var goods_id = $("input[name='goods_id']").val();
var type_id = $(this).val();
get_goods_spec_select(goods_id, type_id);
get_goods_attr_select(goods_id, type_id);
})
})
//商品模型切换时,返回不同的规格输入框
function get_goods_spec_select(goods_id, type_id){
$.ajax({
type: 'post',
data: {goods_id: goods_id, type_id: type_id},
url: "{:U('admin/Goods/ajaxGetSpecSelect')}",
success: function (data) {
$("#ajax_spec_data").html('').append(data);
ajaxGetSpecInput(); // 触发完 马上触发 规格输入框
}
});
}
//商品模型切换时,返回不同的属性输入框
function get_goods_attr_select(goods_id, type_id) {
$.ajax({
type: 'GET',
data: {goods_id: goods_id, type_id: type_id},
url: "/index.php/admin/Goods/ajaxGetAttrInput",
dataType: 'json',
success: function (data) {
var html = '';
var item_html;
$.each(data, function (index, item) {
item_html = '';
item_html += '<tr class="attr_'+ item.attr_id +'"><td>'+ item.attr_name +'</td> <td>' +
'<select name="attr_'+ item.attr_id +'[]"><option value="0"></option>';
if(item.attr_values_to_array.length > 0){
$.each(item.attr_values_to_array, function (i, n) {
if(item.goods_attr != null && item.goods_attr.attr_value == n){
item_html += '<option selected="selected" value="'+ n +'">'+n+'</option>';
}else{
item_html += '<option value="'+ n +'">'+n+'</option>';
}
})
}
item_html += '</select>' + '</td>' + '</tr>';
html += item_html;
});
$("#goods_attr_table tr:gt(0)").remove();
$("#goods_attr_table").append(html);
}
});
}
$(document).ready(function(){
$('#virtual_indate').layDate();
$("#goods_type").trigger('change'); // 触发商品规格
initFreight();
initIsVirtual();
initCategory();
});
//提交
$(function(){
$(document).on("click",'#submit',function(){
$('#submit').attr('disabled', true);
var is_distribut = $("input[name='is_distribut']").val();
var item_array = new Array();
$("img[id^=item_img_]").parent("span[data-img_id]").prevAll("button[class='btn btn-success']").each(function (i,v) {
item_array[i] = parseInt($(v).attr('data-item_id'));
})//所有选中的item
var item_img_array = new Array();
$("button[class='btn btn-success']").next("span[data-img_id]").find("img[id^=item_img_][src!='/public/images/add-button.jpg']").each(function (index,value) {
item_img_array[index] = parseInt($(value).attr('id').slice(9));
})//所有选中item下面上传了图片的
//判断所有算中item上传的图片为空 或者所有选中item=所有选中的图片
if (item_array.sort().toString() != item_img_array.sort().toString() && item_img_array.length != 0) {
layer.alert("已选规格必须全部都传图或都不传图" , {icon:2, time:2000});
return;
}
$.ajax({
type: "POST",
url: "{:U('Goods/save')}",
data: $("#addEditGoodsForm").serialize(),
async:false,
dataType: "json",
error: function () {
layer.alert("服务器繁忙, 请联系管理员!");
},
success: function (data) {
if (data.status == 1) {
layer.msg(data.msg,{icon: 1,time: 2000},function(){
if(is_distribut > 0){
location.href = "{:U('Distribut/goods_list')}";
}else{
location.href = "{:U('Goods/goodsList')}";
}
});
} else {
$('#submit').attr('disabled',false);
$.each(data.result, function (index, item) {
$('span.err').show();
$('#err_'+index).text(item);
});
layer.msg(data.msg, {icon: 2,time: 3000});
}
}
});
})
})
//选择分类
$(function(){
$(document).on("change",'#cat_id',function(){
var v = $(this).val();
get_category(v,'cat_id_2','0');
if(v==0){
$('#cat_id_2').empty().html("<option value='0'>请选择商品分类</option>");
}
$('#cat_id_3').empty().html("<option value='0'>请选择商品分类</option>");
})
})
//规格批量填充
$(function () {
$(document).on("click", '#item_fill', function () {
var item_price_fill = $("#item_price").val();
var item_cost_price_fill = $("#item_cost_price").val();
var item_commission_fill = $("#item_commission").val();
var item_store_count_fill = $("#item_store_count").val();
var item_sku_fill = $("#item_sku").val();
$("input[name$='[price]']").val(item_price_fill);
$("input[name$='[cost_price]']").val(item_cost_price_fill);
$("input[name$='[commission]']").val(item_commission_fill);
$("input[name$='[store_count]']").val(item_store_count_fill);
$("input[name$='[sku]']").each(function(i,o){
if(item_sku_fill != ''){
$(this).val(item_sku_fill);
item_sku_fill++;
}else{
$(this).val('');
}
})
})
})
//虚拟和免邮事件
$(function(){
$(document).on("click",'.is_virtual',function(){
initIsVirtual();
})
$(document).on("click", '.is_free_shipping', function (e) {
initFreight();
})
})
//初始化虚拟商品设置
function initIsVirtual() {
var goods_id = $("input[name='goods_id']").val();
var is_virtual;
if (goods_id > 0) {
is_virtual = $("input[name='is_virtual']").val();
} else {
is_virtual = $("input[name='is_virtual']:checked").val();
}
if (is_virtual == 1) {
$('.virtual').show();
$('#is_free_shipping_label_1').trigger('click');
initFreight();
$(".goods_shipping").hide();
} else {
$('.virtual').hide();
$(".goods_shipping").show();
}
}
//初始化运费设置
function initFreight() {
var is_free_shipping = $("input[name='is_free_shipping']:checked").val();
if (is_free_shipping == 0) {
$('.freight_template').show();
} else {
$('.freight_template').hide();
}
}
//编辑时默认选中某个商品分类
function initCategory(){
var level_cat_1 = $("input[name='level_cat_1']").val();
var level_cat_2 = $("input[name='level_cat_2']").val();
var level_cat_3 = $("input[name='level_cat_3']").val();
if(level_cat_2 > 0){
get_category(level_cat_1,'cat_id_2',level_cat_2);
}
if(level_cat_3 > 0){
get_category(level_cat_2,'cat_id_3',level_cat_3 );
getCategoryBrandList(level_cat_2);
}
}
var url="{:url('Admin/Ueditor/index',array('savePath'=>'goods'))}";
var ue = UE.getEditor('goods_content',{
toolbars: [[
'fullscreen', 'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
'directionalityltr', 'directionalityrtl', 'indent', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
'simpleupload', 'insertimage', 'emotion', 'scrawl', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
'print', 'preview', 'searchreplace', 'drafts', 'help'
]],
serverUrl :url,
zIndex: 999,
initialFrameWidth: "100%", //初化宽度
initialFrameHeight: 300, //初化高度
focus: false, //初始化时是否让编辑器获得焦点true或false
maximumWords: 99999, removeFormatAttributes: 'class,style,lang,width,height,align,hspace,valign',//允许的最大字符数 'fullscreen',
pasteplain:false, //是否默认为纯文本粘贴。false为不使用纯文本粘贴true为使用纯文本粘贴
autoHeightEnabled: true
});
// 上传商品图片成功回调函数
function call_back(fileurl_tmp){
$("#original_img").val(fileurl_tmp);
$("#original_img2").attr('href', fileurl_tmp);
}
// 上传商品相册回调函数
function call_back2(paths) {
var last_div = $(".goods_xc:last").prop("outerHTML");
for (var i = 0; i < paths.length; i++) {
$(".goods_xc:eq(0)").before(last_div); // 插入一个 新图片
$(".goods_xc:eq(0)").find('a:eq(0)').attr('href', paths[i]).attr('onclick', '').attr('target', "_blank");// 修改他的链接地址
$(".goods_xc:eq(0)").find('img').attr('src', paths[i]);// 修改他的图片路径
$(".goods_xc:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr2(this,'" + paths[i] + "')").text('删除');
$(".goods_xc:eq(0)").find('input').val(paths[i]); // 设置隐藏域 要提交的值
}
}
//上传之后删除组图
function ClearPicArr2(obj, path) {
$.ajax({
type: 'GET',
url: "{:U('Admin/Uploadify/delupload')}",
data: {action: "del", filename: path},
success: function () {
$(obj).parent().remove(); // 删除完服务器的, 再删除 html上的图片
}
});
// 删除数据库记录
$.ajax({
type: 'GET',
url: "{:U('Admin/Goods/del_goods_images')}",
data: {filename: path},
success: function () {
}
});
}
// 属性输入框的加减事件
function addAttr(a) {
var attr = $(a).parent().parent().prop("outerHTML");
attr = attr.replace('addAttr', 'delAttr').replace('+', '-');
$(a).parent().parent().after(attr);
}
// 属性输入框的加减事件
function delAttr(a) {
$(a).parent().parent().remove();
}
//插件切换列表
$('.tab-base').find('.tab').click(function(){
$('.tab-base').find('.tab').each(function(){
$(this).removeClass('current');
});
$(this).addClass('current');
var tab_index = $(this).data('index');
$(".tab_div_1, .tab_div_2, .tab_div_3, .tab_div_4,.tab_div_5").hide();
$(".tab_div_"+tab_index).show();
});
//上传图片回调事件
function img_call_back(fileurl_tmp) {
$("#imagetext").val(fileurl_tmp);
$("#img_a").attr('href', fileurl_tmp);
$("#img_i").attr('onmouseover', "layer.tips('<img src=" + fileurl_tmp + ">',this,{tips: [1, '#fff']});");
}
//上传视频回调事件
function video_call_back(fileurl_tmp) {
$("#videotext").val(fileurl_tmp);
$("#video_a").attr('href', fileurl_tmp);
$("#video_i").attr('onmouseover', "layer.tips('<img src=" + fileurl_tmp + ">',this,{tips: [1, '#fff']});");
if (typeof(fileurl_tmp) != 'undefined') {
$('#video_button').html('<input type="button" onclick="delupload()" value="删除视频" class="type-file-button" >');
}
}
//品牌选项框
function getCategoryBrandList(val) {
if(val == 0) return false;
var goods_brand_id = $("input[name='goods_brand_id']").val();
$.ajax({
'url': "{:U('goods/getCategoryBrandList')}",
'data': {cart_id: val},
'dataType': 'json',
success: function (data) {
if (data.status == 1) {
var html = '<option value="">所有品牌</option>';
for (var i = 0; i < data.result.length; i++) {
var bind_id = data.result[i].id;
if (goods_brand_id == bind_id) {
html += '<option value="' + bind_id + '" selected>' + data.result[i].name + '</option>'
} else {
html += '<option value="' + bind_id + '">' + data.result[i].name + '</option>'
}
}
$('#brand_id').empty().html(html);
}
}
})
}
//删除上传图片事件
function delupload() {
$.ajax({
url: "{:U('Uploadify/delupload')}",
data: {url: $('#videotext').val()},
success: function (data) {
if (data == 1) {
layer.msg('删除成功!', {icon: 1});
$('#videotext').val('');
var html = '<input type="button" name="button" id="videobutton1" value="选择上传..." class="type-file-button"> <input class="type-file-file" onClick="GetUploadify(1,\'\',\'goods\',\'video_call_back\',\'Flash\')" size="30" hidefocus="true" nc_type="change_site_logo" title="点击按钮选择文件并提交表单后上传生效">';
$('#video_button').html(html);
} else {
layer.msg('删除失败', {icon: 2});
}
},
error: function () {
layer.msg('网络繁忙,请稍后再试!', {icon: 2});
}
})
}
$(document).on('click', '#type_info', function () {
var type_id = $('#goods_type').val();
if(type_id > 0){
add_edit_type(type_id);
}else{
layer.msg('请选择商品模型', {icon: 2});
}
});
$(document).on('click', '#new_type_info', function () {
add_edit_type(0);
});
function add_edit_type(type_id) {
var url = '/index.php?m=Admin&c=Goods&a=type';
if(type_id){
url += '&id='+type_id;
}
layer.open({
type: 2,
title: '添加/编辑商品模型',
shadeClose: true,
shade: 0.2,
area: ['75%', '75%'],
content: url,
cancel: function () {
$('#goods_type').trigger('change');
}
});
}
function get_goods_type_list(type_id) {
$.ajax({
type: 'post',
data: {type_id:type_id},
url: "{:U('admin/Goods/ajaxGetGoodsTypeList')}",
success: function (data) {
$("#goods_type").html(JSON.parse(data)) ;
var goods_id = $("input[name='goods_id']").val();
get_goods_spec_select(goods_id, type_id);
get_goods_attr_select(goods_id, type_id);
}
});
}
function save_type_call_back(type_id)
{
get_goods_type_list(type_id);
layer.closeAll();
}
</script>
</body>
</html>