|
@@ -0,0 +1,507 @@
|
|
|
|
+<style>
|
|
|
|
+/* 商品类型选择卡片样式 */
|
|
|
|
+.goods-type-selection {
|
|
|
|
+ display: flex;
|
|
|
|
+ gap: 0;
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card {
|
|
|
|
+ position: relative;
|
|
|
|
+ display: block;
|
|
|
|
+ width: 150px;
|
|
|
|
+ height: 34px;
|
|
|
|
+ border: 1px solid #ddd;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ background: #fff;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ transition: all 0.3s ease;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ margin-right: 15px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card:hover {
|
|
|
|
+ border-color: #4a90e2;
|
|
|
|
+ box-shadow: 0 1px 3px rgba(74, 144, 226, 0.1);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card input[type="radio"] {
|
|
|
|
+ display: none;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card input[type="radio"]:checked + .card-content {
|
|
|
|
+ background: #f0f7ff;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card input[type="radio"]:checked ~ .check-icon {
|
|
|
|
+ opacity: 1;
|
|
|
|
+ transform: scale(1);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card input[type="radio"]:checked {
|
|
|
|
+ & ~ * {
|
|
|
|
+ border-color: #4a90e2;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card input[type="radio"]:checked ~ .card-content ~ .goods-type-card {
|
|
|
|
+ border-color: #4a90e2;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card:has(input[type="radio"]:checked) {
|
|
|
|
+ border-color: #4a90e2;
|
|
|
|
+ background: #f0f7ff;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.card-content {
|
|
|
|
+ padding: 8px 12px;
|
|
|
|
+ height: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
+ align-items: center;
|
|
|
|
+ text-align: left;
|
|
|
|
+ transition: background 0.3s ease;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.type-title {
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ font-weight: normal;
|
|
|
|
+ color: #333;
|
|
|
|
+ margin-right: 6px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.type-subtitle {
|
|
|
|
+ font-size: 11px;
|
|
|
|
+ color: #999;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.check-icon {
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 2px;
|
|
|
|
+ right: 2px;
|
|
|
|
+ width: 14px;
|
|
|
|
+ height: 14px;
|
|
|
|
+ background: #4a90e2;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ opacity: 0;
|
|
|
|
+ transform: scale(0);
|
|
|
|
+ transition: all 0.3s ease;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.check-icon i {
|
|
|
|
+ color: white;
|
|
|
|
+ font-size: 8px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 兼容性样式 - 当浏览器不支持:has()时的备用方案 */
|
|
|
|
+.goods-type-card.selected {
|
|
|
|
+ border-color: #4a90e2;
|
|
|
|
+ background: #f0f7ff;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.goods-type-card.selected .check-icon {
|
|
|
|
+ opacity: 1;
|
|
|
|
+ transform: scale(1);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 选项卡错误状态样式 */
|
|
|
|
+.nav-tabs .tab-error {
|
|
|
|
+ color: #d9534f !important;
|
|
|
|
+ border-bottom-color: #d9534f !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.nav-tabs .tab-error:hover,
|
|
|
|
+.nav-tabs .tab-error:focus {
|
|
|
|
+ color: #c9302c !important;
|
|
|
|
+ border-bottom-color: #c9302c !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.nav-tabs .tab-error .error-icon {
|
|
|
|
+ animation: pulse 1.5s infinite;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@keyframes pulse {
|
|
|
|
+ 0% { opacity: 1; }
|
|
|
|
+ 50% { opacity: 0.5; }
|
|
|
|
+ 100% { opacity: 1; }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 表单字段错误高亮样式 */
|
|
|
|
+.error-highlight {
|
|
|
|
+ border-color: #d9534f !important;
|
|
|
|
+ box-shadow: 0 0 0 0.2rem rgba(217, 83, 79, 0.25) !important;
|
|
|
|
+ background-color: #fdf2f2 !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.error-highlight:focus {
|
|
|
|
+ border-color: #d9534f !important;
|
|
|
|
+ box-shadow: 0 0 0 0.2rem rgba(217, 83, 79, 0.25) !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 提交按钮禁用状态样式 */
|
|
|
|
+.btn[type="submit"].disabled {
|
|
|
|
+ pointer-events: none;
|
|
|
|
+ opacity: 0.6;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 选项卡内容区域的错误提示样式 */
|
|
|
|
+.tab-error-message {
|
|
|
|
+ background-color: #f2dede;
|
|
|
|
+ border: 1px solid #ebccd1;
|
|
|
|
+ color: #a94442;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.tab-error-message .error-list {
|
|
|
|
+ margin: 0;
|
|
|
|
+ padding-left: 20px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.tab-error-message .error-list li {
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 表单验证状态样式 */
|
|
|
|
+.form-group.has-error .control-label {
|
|
|
|
+ color: #d9534f;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.form-group.has-error .form-control {
|
|
|
|
+ border-color: #d9534f;
|
|
|
|
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.form-group.has-error .form-control:focus {
|
|
|
|
+ border-color: #d9534f;
|
|
|
|
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px rgba(217, 83, 79, 0.4);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 选项卡成功状态样式 */
|
|
|
|
+.nav-tabs .tab-success {
|
|
|
|
+ color: #5cb85c !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.nav-tabs .tab-success .success-icon {
|
|
|
|
+ color: #5cb85c;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* 响应式调整 */
|
|
|
|
+@media (max-width: 768px) {
|
|
|
|
+ .goods-type-card {
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin-right: 0;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .goods-type-selection {
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|
|
|
|
+
|
|
|
|
+<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
|
|
|
+
|
|
|
|
+ <div class="panel panel-default panel-intro">
|
|
|
|
+ <div class="panel-heading">
|
|
|
|
+ <ul class="nav nav-tabs nav-group">
|
|
|
|
+ <li class="active"><a href="#basics" data-toggle="tab">基础信息</a></li>
|
|
|
|
+ <li><a href="#skus" data-toggle="tab">价格库存</a></li>
|
|
|
|
+ <li><a href="#delivery" data-toggle="tab">配送设置</a></li>
|
|
|
|
+ <li><a href="#detail" data-toggle="tab">商品详情</a></li>
|
|
|
|
+ <li><a href="#params" data-toggle="tab">商品参数</a></li>
|
|
|
|
+ <li><a href="#sales" data-toggle="tab">销售设置</a></li>
|
|
|
|
+ </ul>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="panel-body">
|
|
|
|
+ <div id="myTabContent" class="tab-content">
|
|
|
|
+ <div class="tab-pane fade active in" id="basics">
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="goods-type-selection">
|
|
|
|
+ {foreach name="goodsTypeList" item="vo"}
|
|
|
|
+ <label class="goods-type-card" for="row[type]-{$key|htmlentities}">
|
|
|
|
+ <input id="row[type]-{$key|htmlentities}" name="row[type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.type"}checked{/in} data-rule="required" />
|
|
|
|
+ <div class="card-content">
|
|
|
|
+ <div class="type-title">{$vo|htmlentities}</div>
|
|
|
|
+ <div class="type-subtitle">
|
|
|
|
+ {switch name="$key"}
|
|
|
|
+ {case value="1"}(物流发货){/case}
|
|
|
|
+ {case value="2"}(自动发货){/case}
|
|
|
|
+ {case value="3"}(虚拟发货){/case}
|
|
|
|
+ {case value="4"}(到店核销){/case}
|
|
|
|
+ {default /}
|
|
|
|
+ {/switch}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="check-icon">
|
|
|
|
+ <i class="fa fa-check"></i>
|
|
|
|
+ </div>
|
|
|
|
+ </label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Goods_sn')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-goods_sn" data-rule="required" class="form-control" name="row[goods_sn]" type="text" value="{$row.goods_sn|htmlentities}" placeholder="请输入商品编码">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Subtitle')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-sub_title" data-rule="max:200" class="form-control" name="row[sub_title]" type="text" value="{$row.sub_title|htmlentities}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Category_ids')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-category_ids" data-rule="required" data-multiple="true" data-source="shop/category/index/noKeyField/100" data-format-item="{spacer} {name}" class="form-control selectpage" name="row[category_ids]" type="text" value="{$row.category_ids}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="input-group">
|
|
|
|
+ <input id="c-image" data-rule="required" class="form-control" size="50" name="row[image]" type="text" value="{$row.image}">
|
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
|
+ <span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
|
|
|
+ <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
|
|
|
+ </div>
|
|
|
|
+ <span class="msg-box n-right" for="c-image"></span>
|
|
|
|
+ </div>
|
|
|
|
+ <ul class="row list-inline faupload-preview" id="p-image"></ul>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Images')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="input-group">
|
|
|
|
+ <input id="c-images" data-rule="required" class="form-control" size="50" name="row[images]" type="text" value="{$row.images}">
|
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
|
+ <span><button type="button" id="faupload-images" class="btn btn-danger faupload" data-input-id="c-images" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="true" data-preview-id="p-images"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
|
|
|
+ <span><button type="button" id="fachoose-images" class="btn btn-primary fachoose" data-input-id="c-images" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
|
|
|
+ </div>
|
|
|
|
+ <span class="msg-box n-right" for="c-images"></span>
|
|
|
|
+ </div>
|
|
|
|
+ <ul class="row list-inline faupload-preview" id="p-images"></ul>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="attributes"></div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Brand')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-brand_id" data-source="shop/brand/index" class="form-control selectpage" name="row[brand_id]" type="text" value="{$row.brand_id}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Guarantee')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-guarantee_ids" data-source="shop/guarantee/index" data-multiple="true" class="form-control selectpage" name="row[guarantee_ids]" type="text" value="{$row.guarantee_ids}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Unit')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-unit_id" data-source="shop/brand/index" class="form-control selectpage" name="row[unit_id]" type="text" value="{$row.unit_id}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Supplier')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-supplier_id" data-source="shop/brand/index" class="form-control selectpage" name="row[supplier_id]" type="text" value="{$row.supplier_id}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-weigh" data-rule="required|integer|min:0" class="form-control" name="row[weigh]" type="number" value="{$row.weigh}" min="0">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('上架类型')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+
|
|
|
|
+ <div class="radio">
|
|
|
|
+ {foreach name="onlineTypeList" item="vo"}
|
|
|
|
+ <label for="row[online_type]-{$key|htmlentities}"><input id="row[online_type]-{$key|htmlentities}" name="row[online_type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.online_type"}checked{/in} /> {$vo|htmlentities}</label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="form-group" id="scheduled-online-time" style="display:none;">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('上架时间')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-scheduled_online_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[scheduled_online_time]" type="text" value="{$row.scheduled_online_time}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="form-group" id="offline-time-setting" style="display:none;">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('定时下架')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="checkbox">
|
|
|
|
+ <label for="row[is_auto_offline]">
|
|
|
|
+ <input id="c-is_auto_offline" name="row[is_auto_offline]" type="checkbox" value="1" {in name="1" value="$row.is_auto_offline"}checked{/in}>
|
|
|
|
+ {:__('自动下架')}
|
|
|
|
+ </label>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="scheduled-offline-time" style="display:none; margin-top:10px;">
|
|
|
|
+ <input id="c-scheduled_offline_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[scheduled_offline_time]" type="text" value="{$row.scheduled_offline_time}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab-pane fade" id="skus">
|
|
|
|
+ {include file="shop/goods/add_sku" /}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab-pane fade" id="delivery">
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Delivery_type')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+
|
|
|
|
+ <div class="radio">
|
|
|
|
+ {foreach name="deliveryTypeList" item="vo"}
|
|
|
|
+ <label for="row[delivery_type]-{$key|htmlentities}"><input id="row[delivery_type]-{$key|htmlentities}" data-rule="required" name="row[delivery_type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.delivery_type"}checked{/in} /> {$vo|htmlentities}</label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- 快递配送设置 - 只有选择物流配送时显示 -->
|
|
|
|
+ <div class="form-group" data-favisible="delivery_type=EXPRESS">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('运费设置')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="radio">
|
|
|
|
+ {foreach name="expressTypeList" item="vo"}
|
|
|
|
+ <label for="row[express_type]-{$key|htmlentities}"><input id="row[express_type]-{$key|htmlentities}" name="row[express_type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.express_type"}checked{/in} /> {$vo|htmlentities}</label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- 统一运费 - 选择物流配送且选择统一运费时显示 -->
|
|
|
|
+ <div class="form-group" data-favisible="delivery_type=EXPRESS&&express_type=2">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('固定运费')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="input-group">
|
|
|
|
+ <input id="c-express_freight" class="form-control" name="row[express_freight]" type="number" value="{$row.express_freight|default='0.00'}" step="0.01" min="0">
|
|
|
|
+ <span class="input-group-addon">元</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- 运费模板 - 选择物流配送且选择运费模板时显示,且设为必填 -->
|
|
|
|
+ <div class="form-group" data-favisible="delivery_type=EXPRESS&&express_type=3">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('运费模板')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-express_template_id" data-rule="required" data-source="shop/freight/index" class="form-control selectpage" name="row[express_template_id]" type="text" value="{$row.express_template_id}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab-pane fade" id="detail">
|
|
|
|
+ <div class="row">
|
|
|
|
+ <div class="col-md-6">
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-10">
|
|
|
|
+ <textarea id="c-content" class="form-control editor" rows="15" name="row[content]" cols="50">{$row.content|htmlentities}</textarea>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="col-md-6">
|
|
|
|
+ <div class="panel panel-default">
|
|
|
|
+ <div class="panel-heading">
|
|
|
|
+ <h3 class="panel-title">{:__('商品详情预览')}</h3>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="panel-body">
|
|
|
|
+ <div id="content-preview" style="overflow-y: auto; border: 1px solid #e5e5e5; min-height: 450px; padding: 10px;"></div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab-pane fade" id="params">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tab-pane fade" id="sales">
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Stock_show_type')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+
|
|
|
|
+ <div class="radio">
|
|
|
|
+ {foreach name="stockShowTypeList" item="vo"}
|
|
|
|
+ <label for="row[stock_show_type]-{$key|htmlentities}"><input id="row[stock_show_type]-{$key|htmlentities}" data-rule="required" name="row[stock_show_type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.stock_show_type"}checked{/in} /> {$vo|htmlentities}</label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Sales_show_type')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <div class="radio">
|
|
|
|
+ {foreach name="salesShowTypeList" item="vo"}
|
|
|
|
+ <label for="row[sales_show_type]-{$key|htmlentities}"><input id="row[sales_show_type]-{$key|htmlentities}" data-rule="required" name="row[sales_show_type]" type="radio" value="{$key|htmlentities}" {in name="key" value="$row.sales_show_type"}checked{/in} /> {$vo|htmlentities}</label>
|
|
|
|
+ {/foreach}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Virtual_sales')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-virtual_sales" class="form-control" name="row[virtual_sales]" type="number" step="1" min="0" value="{$row.virtual_sales|default='0'}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Keywords')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <input id="c-keywords" class="form-control" name="row[keywords]" type="text" value="{$row.keywords|htmlentities}">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="form-group">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <textarea id="c-description" class="form-control" cols="10" rows="5" name="row[description]">{$row.description|htmlentities}</textarea>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div id="goods-sku"></div>
|
|
|
|
+
|
|
|
|
+ <div class="form-group layer-footer">
|
|
|
|
+ <label class="control-label col-xs-12 col-sm-2"></label>
|
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
|
+ <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
|
|
|
+ <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</form>
|
|
|
|
+
|
|
|
|
+{include file="shop/goods/attributetpl" /}
|
|
|
|
+{include file="shop/common/cardtpl" /}
|