392 lines
20 KiB
HTML
Executable File
392 lines
20 KiB
HTML
Executable File
{extend name='public/base' /}
|
|
{block name='content'}
|
|
{include file='public/content_header' /}
|
|
<script src="https://www.layuicdn.com/layui/layui.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css">
|
|
<style type="text/css">
|
|
/* 图片展示
|
|
----------------------------------------------- */
|
|
ul.albums {
|
|
display: block;
|
|
min-height: 1px;
|
|
height: auto;
|
|
overflow: hidden;
|
|
padding: 5px 0;
|
|
margin: 0 15px;
|
|
border: 1px dashed #ccc;
|
|
}
|
|
ul.albums li {
|
|
position: relative;
|
|
display: inline-block;
|
|
padding: 5px;
|
|
border: 1px solid #e5e5e5;
|
|
margin: 5px 0 0 20px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
ul.albums li a.btn-close {
|
|
display: block;
|
|
position: absolute;
|
|
z-index: 2;
|
|
top: -8px;
|
|
right: -10px;
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
ul.albums li a.btn-fm{width: 100px;
|
|
display:none;
|
|
height: 100px;
|
|
border: 0px;
|
|
opacity: 0.5;
|
|
background-color: #000;
|
|
line-height: 100px;
|
|
text-align: center;
|
|
color: #fff;
|
|
position: absolute;}
|
|
ul.albums li:hover a.btn-fm{ display: block; }
|
|
ul.albums li a.btn-fm_z{
|
|
display:none;
|
|
color: #ccc;
|
|
border: 0px;
|
|
background-color: #000;
|
|
position: absolute;
|
|
bottom: 5px;
|
|
left: 5px;
|
|
opacity: 0.6;
|
|
width: 40px;
|
|
text-align: center;
|
|
}
|
|
</style>
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="box box-primary">
|
|
<!-- 表单头部 -->
|
|
<div class="box-header with-border">
|
|
<div class="btn-group">
|
|
<a class="btn flat btn-sm btn-default BackButton">
|
|
<i class="fa fa-arrow-left"></i>
|
|
返回
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<!-- 表单 -->
|
|
<form id="dataForm" class="form-horizontal dataForm" action="" method="post"
|
|
enctype="multipart/form-data">
|
|
<div class="box-body" style="height: 725px;">
|
|
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
|
|
<ul class="layui-tab-title">
|
|
<li class="layui-this">基本设置</li>
|
|
<li>商品详情</li>
|
|
</ul>
|
|
<div class="layui-tab-content">
|
|
<div class="layui-tab-item layui-show">
|
|
<div class="form-group">
|
|
<label for="name" class="col-sm-2 control-label">商品名称</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input id="name" name="name" value="{$data.name|default=''}" placeholder="请输入商品名称" type="text" class="form-control field-text">
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="goods_category_id" class="col-sm-2 control-label">所属分类</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<select name="goods_category_id" id="goods_category_id"
|
|
class="form-control field-select" data-placeholder="请选择所属分类">
|
|
<option value=""></option>
|
|
{$goods_category_list|raw}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$('#goods_category_id').select2();
|
|
</script>
|
|
<div class="form-group">
|
|
<label for="img" class="col-sm-2 control-label">上传图片</label>
|
|
<ul class="albums" id="albums">
|
|
{foreach name="imgurl_list" item="img1"}
|
|
<li class="img">
|
|
<a class="btn-close layui-btn-primary" title="删除" href="javascript:void(0)" onclick="removeImg(this)">
|
|
<i class="layui-icon" style="font-size: 20px; line-height: 20px;"></i>
|
|
</a>
|
|
<a class="btn-fm layui-btn-primary" title="设为封面" href="javascript:void(0)" onclick="removeImg_l(this)">设置为封面</a>
|
|
<a class="btn-fm_z layui-btn-primary" {if $img1.is_cover == 1}style="display: block;"{/if} title="封面" href="javascript:void(0)">封面</a>
|
|
<img src="{$img1['thumb_image']}" width="100" height="100">
|
|
<input type="hidden" name="ori_img[]" class="ori_img" value="{$img1['ori_image']}">
|
|
<input type="hidden" name="thumb_img[]" class="thumb_img" class="inputAlbums" value="{$img1['thumb_image']}">
|
|
</li>
|
|
{/foreach}
|
|
<li id="nophoto" ><img src="/static/admin/images/nophoto_100x100.png"></li>
|
|
</ul>
|
|
<input type="hidden" name="ori_fm_img" id="ori_fm_img" value="{$ori_img|default=''}">
|
|
<input type="hidden" name="thumb_img_f" id="thumb_img_f" value="{$thumb_img|default=''}">
|
|
</div>
|
|
<script type="text/javascript">
|
|
layui.use(['upload','laydate','form'], function(){
|
|
var form = layui.form;
|
|
var upload = layui.upload;
|
|
//执行实例
|
|
upload.render({
|
|
elem: '#nophoto' //绑定元素
|
|
,url: "{:url('file/icon')}" //接口url
|
|
,data:{type:1,width:750,heigh:461}
|
|
,field:'image'
|
|
,multiple: true
|
|
,done: function(res){
|
|
var html='';
|
|
html+='<li class="img">';
|
|
html+='<a class="btn-close layui-btn-primary" title="删除" href="javascript:void(0)" onclick="removeImg(this)">';
|
|
html+='<i class="layui-icon" style="font-size: 20px; line-height: 20px;"></i>';
|
|
html+='</a>';
|
|
html+='<a class="btn-fm layui-btn-primary" title="设为封面" href="javascript:void(0)" onclick="removeImg_l(this)" img="">设置为封面</a>';
|
|
html+='<a class="btn-fm_z layui-btn-primary" title="封面" href="javascript:void(0)">封面</a>';
|
|
html+='<img src="'+res.data.avatar_logo_thum+'" width="100" height="100">'
|
|
html+='<input type="hidden" name="ori_img[]" class="ori_img" value="'+res.data.avatar_logo+'">';
|
|
html+='<input type="hidden" name="thumb_img[]" class="thumb_img" class="inputAlbums" value="'+res.data.avatar_logo_thum+'">';
|
|
html+='</li>';
|
|
$(".albums").prepend(html);
|
|
}
|
|
,error: function(){
|
|
layer.tips('图片错误', '#btn');
|
|
return false;
|
|
}
|
|
});
|
|
});
|
|
|
|
function removeImg(obj){
|
|
$(obj).parent().remove();
|
|
var img=$('.img').length;
|
|
if(img==5){
|
|
$('#nophoto').hide();
|
|
}else{
|
|
$('#nophoto').show();
|
|
}
|
|
var ori_img=$(obj).siblings('.ori_img').val();
|
|
var thumb_img=$('#thumb_img').val();
|
|
if(ori_img==ori_fm_img){
|
|
$('#ori_fm_img').val('');
|
|
$('#thumb_img_f').val('');
|
|
}
|
|
}
|
|
|
|
function removeImg_l(obj){
|
|
var thumb_img=$(obj).siblings('.thumb_img').val();
|
|
var ori_img=$(obj).siblings('.ori_img').val();
|
|
$('#ori_fm_img').val(ori_img);
|
|
$('#thumb_img_f').val(thumb_img);
|
|
$('.btn-fm_z').css('display','none');
|
|
$(obj).siblings('.btn-fm_z').css('display','block');
|
|
}
|
|
</script>
|
|
<div class="form-group">
|
|
<label for="price" class="col-sm-2 control-label">售价</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input id="price" name="price" value="{$data.price|default='0.00'}"
|
|
placeholder="请输入售价" type="number" class="form-control field-number">
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="attr" class="col-sm-2 control-label">规格</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input id="attr" name="attr" value="{$data.attr|default=''}"
|
|
placeholder="请输入规格" type="text" class="form-control field-number">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="stock" class="col-sm-2 control-label">库存</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input id="stock" name="stock" value="{$data.stock|default='100'}"
|
|
placeholder="请输入库存" type="number" class="form-control field-number">
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$('#stock')
|
|
.bootstrapNumber({
|
|
upClass: 'success',
|
|
downClass: 'primary',
|
|
center: true
|
|
});
|
|
</script>
|
|
<div class="form-group">
|
|
<label for="status" class="col-sm-2 control-label">是否上架</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input class="input-switch" id="status" value="1" {if(!isset($data)
|
|
||$data.status==1)}checked{/if} type="checkbox"/>
|
|
<input class="switch field-switch" placeholder="是否上架" name="status"
|
|
value="{$data.status|default='1'}" hidden/>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$('#status').bootstrapSwitch({
|
|
onText: "是",
|
|
offText: "否",
|
|
onColor: "success",
|
|
offColor: "danger",
|
|
onSwitchChange: function (event, state) {
|
|
$(event.target).closest('.bootstrap-switch').next().val(state ? '1' : '0').change();
|
|
}
|
|
});
|
|
</script>
|
|
<div class="form-group">
|
|
<label for="is_recommend" class="col-sm-2 control-label">热门推荐</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input class="input-switch" id="is_recommend" value="1" {if(!isset($data)
|
|
||$data.is_recommend==1)}checked{/if} type="checkbox"/>
|
|
<input class="switch field-switch" placeholder="是否上架" name="is_recommend"
|
|
value="{$data.is_recommend|default='1'}" hidden/>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$('#is_recommend').bootstrapSwitch({
|
|
onText: "是",
|
|
offText: "否",
|
|
onColor: "success",
|
|
offColor: "danger",
|
|
onSwitchChange: function (event, state) {
|
|
$(event.target).closest('.bootstrap-switch').next().val(state ? '1' : '0').change();
|
|
}
|
|
});
|
|
</script>
|
|
<div class="form-group">
|
|
<label for="sort_number" class="col-sm-2 control-label">排序(升序)</label>
|
|
<div class="col-sm-10 col-md-4">
|
|
<input id="sort_number" name="sort_number" value="{$data.sort_number|default='1000'}"
|
|
placeholder="请输入排序(升序)" type="text" class="form-control field-text">
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$('#sort_number')
|
|
.bootstrapNumber({
|
|
upClass: 'success',
|
|
downClass: 'primary',
|
|
center: true
|
|
});
|
|
</script>
|
|
</div>
|
|
<div class="layui-tab-item">
|
|
<div class="form-group">
|
|
<label for="detail" class="col-sm-2 control-label">商品详情</label>
|
|
<div class="col-sm-10">
|
|
<script id="detail" name="detail" type="text/plain">{$data.detail|raw|default=''}</script>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
UE.delEditor('detail');
|
|
var ue = UE.getEditor('detail',{
|
|
serverUrl :UEServer,
|
|
});
|
|
ue.ready(function() {
|
|
ue.setHeight(500); //设置高度
|
|
});
|
|
</script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 表单底部 -->
|
|
<div class="box-footer">
|
|
{:token()}
|
|
<div class="col-sm-2">
|
|
</div>
|
|
<div class="col-sm-10 col-md-4">
|
|
{if !isset($data)}
|
|
<div class="btn-group pull-right">
|
|
<label class="createContinue">
|
|
<input type="checkbox" value="1" id="_create" name="_create"
|
|
title="继续添加数据">继续添加</label>
|
|
</div>
|
|
{/if}
|
|
<div class="btn-group">
|
|
<button type="submit" class="btn flat btn-info dataFormSubmit">
|
|
保存
|
|
</button>
|
|
</div>
|
|
<div class="btn-group">
|
|
<button type="reset" class="btn flat btn-default dataFormReset">
|
|
重置
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<script>
|
|
/** 表单验证 **/
|
|
$('#dataForm').validate({
|
|
rules: {
|
|
'goods_category_id': {
|
|
required: true,
|
|
},
|
|
'brand_id': {
|
|
required: true,
|
|
},
|
|
'name': {
|
|
required: true,
|
|
},
|
|
'origin_price': {
|
|
required: true,
|
|
},
|
|
'price': {
|
|
required: true,
|
|
},
|
|
'attr': {
|
|
required: true,
|
|
},
|
|
'detail': {
|
|
required: true,
|
|
},
|
|
'weight': {
|
|
required: true,
|
|
},
|
|
'stock': {
|
|
required: true,
|
|
},
|
|
'sort_number': {
|
|
required: true,
|
|
},
|
|
'status': {
|
|
required: true,
|
|
},
|
|
|
|
},
|
|
messages: {
|
|
'goods_category_id': {
|
|
required: "所属分类不能为空",
|
|
},
|
|
'brand_id': {
|
|
required: "品牌不能为空",
|
|
},
|
|
'name': {
|
|
required: "名称不能为空",
|
|
},
|
|
'origin_price': {
|
|
required: "原价不能为空",
|
|
},
|
|
'price': {
|
|
required: "售价不能为空",
|
|
},
|
|
'attr': {
|
|
required: "规格不能为空",
|
|
},
|
|
'detail': {
|
|
required: "详情不能为空",
|
|
},
|
|
'weight': {
|
|
required: "重量不能为空",
|
|
},
|
|
'stock': {
|
|
required: "库存不能为空",
|
|
},
|
|
'sort_number': {
|
|
required: "排序(升序不能为空",
|
|
},
|
|
'status': {
|
|
required: "是否上架不能为空",
|
|
},
|
|
|
|
}
|
|
});
|
|
</script>
|
|
{/block} |