vr-shopxo-source/app/admin/view/default/goods/spec.html

330 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- 规格快捷操作 -->
<div class="spec-quick am-margin-bottom-lg">
<div>
{{if is_array(MyLang('common_service.goods.form_spec_top_list_tips'))}}
<div class="am-alert am-alert-warning am-radius" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>{{:implode('</p><p>', MyLang('common_service.goods.form_spec_top_list_tips'))}}</p>
</div>
{{/if}}
<!-- 规格模板 -->
<div class="am-inline-block business-operations-submit" id="specifications-quick-container"
data-spec-template-tips="{{:MyLang('common_service.goods.form_spec_template_tips')}}"
data-spec-template-name-tips="{{:MyLang('common_service.goods.form_spec_template_name_exist_tips')}}"
>
<select class="am-radius chosen-select" data-placeholder="{{:MyLang('common_service.goods.form_spec_template_placeholder')}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_template_message')}}">
<option value="">{{:MyLang('common_service.goods.form_spec_template_placeholder')}}</option>
{{if !empty($goods_base_template) and !empty($goods_base_template['spec']) and is_array($goods_base_template['spec'])}}
{{foreach $goods_base_template.spec as $v}}
<option value="{{$v.content}}" data-origin-name="{{$v.name}}">{{$v.name}}</option>
{{/foreach}}
{{/if}}
</select>
</div>
<span class="business-operations-submit am-margin-left-sm quick-spec-title-add">+ {{:MyLang('common_service.goods.form_spec_quick_add_title')}}</span>
<span class="business-operations-submit am-margin-left-sm am-icon-gg quick-spec-created"> {{:MyLang('common_service.goods.form_spec_quick_generate_title')}}</span>
</div>
<div class="goods-specifications am-margin-top-sm" {{if empty($data['spec_base'])}}style="display: none;"{{/if}}>
<table class="am-table am-table-bordered am-table-centered am-table-striped am-table-hover table-thead-beautify">
<thead>
<tr>
<th class="spec-quick-th-title">{{:MyLang('common_service.goods.form_spec_type_title')}}</th>
<th class="spec-quick-th-value">{{:MyLang('common_service.goods.form_spec_value_title')}}</th>
</tr>
</thead>
<tbody>
{{if !empty($data['spec_base'])}}
{{foreach $data.spec_base as $spec_base_key=>$spec_base}}
<tr>
<td class="am-text-middle">
<i class="am-close quick-title-remove">×</i>
<input type="text" value="{{$spec_base.title}}" name="spec_base_title_{{$spec_base_key}}" placeholder="{{:MyLang('common_service.goods.form_spec_type_title')}}" />
</td>
<td class="spec-quick-td-value am-cf">
{{if !empty($spec_base['value'])}}
{{foreach $spec_base.value as $value}}
<div class="am-fl am-margin-xs value-item">
<input type="text" class="am-fl" name="spec_base_value_{{$spec_base_key}}[]" value="{{$value}}" placeholder="{{:MyLang('common_service.goods.form_spec_value_title')}}" />
<i class="am-close quick-value-remove">×</i>
</div>
{{/foreach}}
{{/if}}
<div class="am-fl am-margin-xs value-item am-text-left"><span class="business-operations-submit quick-spec-value-add" data-index="{{$spec_base_key}}">+ {{:MyLang('common_service.goods.form_spec_value_add_title')}}</span>
</div>
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
</div>
</div>
<!-- 规格常规操作 -->
<div>
<span class="business-operations-submit specifications-nav-title-add">+ {{:MyLang('common_service.goods.form_spec_value_add_title')}}</span>
<span class="business-operations-submit am-margin-left-sm specifications-nav-set-all am-icon-cogs" data-am-modal="{target: '#spec-popup-all-operation'}"> {{:MyLang('common_service.goods.form_spec_advanced_batch_setup_title')}}</span>
<span class="am-text-warning am-margin-left-sm">{{:MyLang('common_service.goods.form_spec_list_content_tips')}}</span>
</div>
<div class="goods-specifications am-padding-top-sm">
<!-- 规格列表 -->
<div class="specifications-container am-scrollable-horizontal">
<table class="am-table am-table-bordered am-table-centered specifications-table am-margin-bottom-sm am-table-striped am-table-hover table-thead-beautify am-margin-bottom-0"
data-spec-add-max-number="{{:MyC('common_spec_add_max_number', 3, true)}}"
data-spec-max-error="{{:MyLang('common_service.goods.form_spec_max_error')}}"
data-spec-type-name="{{:MyLang('common_service.goods.form_spec_type_title')}}"
data-spec-value-name="{{:MyLang('common_service.goods.form_spec_value_title')}}"
data-spec-type-message="{{:MyLang('common_service.goods.form_spec_type_message')}}"
data-spec-value-message="{{:MyLang('common_service.goods.form_spec_value_message')}}"
data-spec-empty-data-tips="{{:MyLang('common_service.goods.form_spec_empty_data_tips')}}"
data-spec-empty-fill-tips="{{:MyLang('common_service.goods.form_spec_empty_fill_tips')}}"
data-spec-images-name="{{:MyLang('form_upload_images_title')}}"
data-spec-images-message="{{:MyLang('common_service.goods.form_spec_images_message')}}"
data-spec-add-value-message="{{:MyLang('common_service.goods.form_spec_value_add_title')}}"
data-spec-min-tips-message="{{:MyLang('common_service.goods.form_spec_min_tips_message')}}"
data-spec-all-name="{{:MyLang('all_title')}}"
data-spec-quick-error="{{:MyLang('common_service.goods.form_spec_quick_error')}}"
data-spec-quick-tips-title="{{:MyLang('reminder_title')}}"
data-spec-quick-tips-msg="{{:MyLang('common_service.goods.form_spec_quick_tips_msg')}}"
data-spec-quick-success="{{:MyLang('created_success')}}"
data-move-type-tips="{{:MyLang('common_service.goods.form_spec_move_type_tips')}}"
data-move-top-tips="{{:MyLang('common_service.goods.form_spec_move_top_tips')}}"
data-move-bottom-tips="{{:MyLang('common_service.goods.form_spec_move_bottom_tips')}}"
>
<thead class="title-nav">
<tr>
{{if !empty($specifications['type'])}}
{{foreach $specifications.type as $type_v}}
<th class="table-title table-title-{{$type_v.id}}">
<i class="am-close title-nav-remove" data-index="{{$type_v.id}}">×</i>
<input type="text" name="specifications_name_{{$type_v.id}}" placeholder="{{:MyLang('common_service.goods.form_spec_type_title')}}" value="{{$type_v.name}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_type_message')}}" required />
</th>
{{/foreach}}
{{/if}}
<th class="title-start">
<span>{{:MyLang('common_service.goods.form_spec_thead_price_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_original_price_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_buy_min_number_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_buy_max_number_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_weight_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_volume_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th>
<span>{{:MyLang('common_service.goods.form_spec_thead_barcode_title')}}</span>
<i class="am-icon-edit"></i>
</th>
<th class="extend-btn">{{:MyLang('extend_title')}}</th>
<th class="operation-btn">{{:MyLang('operate_title')}}</th>
</tr>
</thead>
<tbody>
{{if empty($specifications['value'])}}
<tr class="line-0" data-line-tag=".line-0">
<td class="am-text-middle value-start">
<input type="text" name="specifications_price[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_price_title')}}" class="am-radius" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_price_message')}}" data-is-clearout="0" required />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_original_price[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_original_price_title')}}" class="am-radius" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_original_price_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_buy_min_number[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_buy_min_number_title')}}" class="am-radius" min="0" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_buy_min_number_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_buy_max_number[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_buy_max_number_title')}}" class="am-radius" min="0" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_buy_max_number_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_weight[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_weight_title')}}" class="am-radius" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_weight_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_volume[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_volume_title')}}" class="am-radius" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_volume_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_coding[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}" class="am-radius" maxlength="60" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_coding_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_barcode[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_barcode_title')}}" class="am-radius" maxlength="60" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_barcode_message')}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="hidden" name="specifications_extends[]" class="line-extend-input" />
<a href="javascript:;" class="am-text-xs am-text-secondary line-extend-btn">{{:MyLang('edit_title')}}</a>
</td>
<td class="am-text-middle">
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-sm line-move" data-type="top">{{:MyLang('moveup_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-sm line-move" data-type="bottom">{{:MyLang('movedown_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-xs line-copy">{{:MyLang('copy_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-danger line-remove">{{:MyLang('remove_title')}}</a>
</td>
</tr>
{{/if}}
{{if !empty($specifications['value'])}}
{{foreach $specifications.value as $line_k=>$line_v}}
<tr class="line-{{$line_k}} {{if $line_k gt 0}} line-not-first{{/if}}" data-line-tag=".line-{{$line_k}}">
{{foreach $line_v as $v}}
{{if isset($v['data_type'])}}
{{switch v.data_type}}
{{case spec}}
<td class="am-text-middle table-value table-value-{{$v.data.key}}">
<input type="text" name="specifications_value_{{$v.data.key}}[]" placeholder="{{:MyLang('common_service.goods.form_spec_value_title')}}" value="{{$v.data.value}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_value_message')}}" data-is-clearout="0" required />
</td>
{{/case}}
{{case base}}
<td class="am-text-middle value-start">
<input type="text" name="specifications_price[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_price_title')}}" class="am-radius" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_price_message')}}" value="{{if isset($v['data']['price'])}}{{$v.data.price}}{{/if}}" data-is-clearout="0" required />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_original_price[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_original_price_title')}}" class="am-radius" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_original_price_message')}}" value="{{if $v['data']['original_price'] gt 0}}{{$v.data.original_price}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_buy_min_number[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_buy_min_number_title')}}" class="am-radius" min="0" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_buy_min_number_message')}}" value="{{if !empty($v['data']['buy_min_number'])}}{{$v.data.buy_min_number}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_buy_max_number[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_buy_max_number_title')}}" class="am-radius" min="0" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_buy_max_number_message')}}" value="{{if !empty($v['data']['buy_max_number'])}}{{$v.data.buy_max_number}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_weight[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_weight_title')}}" class="am-radius" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_weight_message')}}" value="{{if isset($v['data']['weight']) and $v['data']['weight'] gt 0}}{{$v.data.weight}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="number" name="specifications_volume[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_volume_title')}}" class="am-radius" max="100000000" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_volume_message')}}" value="{{if isset($v['data']['volume']) and $v['data']['volume'] gt 0}}{{$v.data.volume}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_coding[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}" class="am-radius" maxlength="60" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_coding_message')}}" value="{{if isset($v['data']['coding'])}}{{$v.data.coding}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="text" name="specifications_barcode[]" placeholder="{{:MyLang('common_service.goods.form_spec_thead_barcode_title')}}" class="am-radius" maxlength="60" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_barcode_message')}}" value="{{if isset($v['data']['barcode'])}}{{$v.data.barcode}}{{/if}}" data-is-clearout="0" />
</td>
<td class="am-text-middle">
<input type="hidden" name="specifications_extends[]" value="{{$v.data.extends}}" class="line-extend-input" />
<a href="javascript:;" class="am-text-xs am-text-secondary line-extend-btn">{{:MyLang('edit_title')}}</a>
</td>
<td class="am-text-middle">
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-sm line-move" data-type="top">{{:MyLang('moveup_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-sm line-move" data-type="bottom">{{:MyLang('movedown_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-secondary am-margin-right-xs line-copy">{{:MyLang('copy_title')}}</a>
<a href="javascript:;" class="am-text-xs am-text-danger line-remove">{{:MyLang('remove_title')}}</a>
</td>
{{/case}}
{{/switch}}
{{/if}}
{{/foreach}}
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
</div>
<div class="am-margin-top-sm">
<span class="business-operations-submit specifications-line-add">+ {{:MyLang('common_service.goods.form_spec_row_add_title')}}</span>
</div>
<div class="spec-images-list">
<div class="am-alert am-radius">
<span>{{:MyLang('common_service.goods.form_spec_images_tips')}}</span>
<span class="business-operations-submit specifications-line-images-add">+ {{:MyLang('common_service.goods.form_spec_images_add_title')}}</span>
<span class="business-operations-submit specifications-line-images-auto-add am-margin-left-sm am-icon-dot-circle-o"> {{:MyLang('common_service.goods.form_spec_images_add_auto_first')}}<input type="text" class="am-inline-block am-text-center am-margin-horizontal-xs am-radius" value="1" />{{:MyLang('common_service.goods.form_spec_images_add_auto_last')}}</span>
</div>
<ul class="spec-images-content">
{{if !empty($specifications['type'])}}
{{foreach $specifications.type as $type}}
{{if !empty($type['value'])}}
{{foreach $type.value as $spec_key=>$spec}}
{{if !empty($spec['images'])}}
<li class="spec-images-items spec-images-items-{{$type.id}}{{$spec_key}}">
<input type="text" name="spec_images_name[{{$type.id}}{{$spec_key}}]" placeholder="{{:MyLang('common_service.goods.form_spec_images_type_title')}}" class="am-radius am-text-center" data-validation-message="{{:MyLang('common_service.goods.form_spec_images_type_message')}}" value="{{$spec.name}}" required >
<ul class="plug-file-upload-view spec-images-view-{{$type.id}}{{$spec_key}}" data-form-name="spec_images[{{$type.id}}{{$spec_key}}]" data-max-number="1" data-delete='0' data-dialog-type="images">
<li>
<input type="hidden" name="spec_images[{{$type.id}}{{$spec_key}}]" value="{{$spec.images_old}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_images_images_message')}}" required />
<img src="{{$spec.images}}" />
<i>×</i>
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.spec-images-view-{{$type.id}}{{$spec_key}}">+ {{:MyLang('form_upload_images_title')}}</div>
</li>
{{/if}}
{{/foreach}}
{{/if}}
{{/foreach}}
{{/if}}
</ul>
</div>
</div>
<!-- 所有规格批量操作弹层 -->
<div class="am-popup" id="spec-popup-all-operation">
<div class="am-popup-inner">
<div class="am-popup-hd">
<h4 class="am-popup-title">{{:MyLang('common_service.goods.form_spec_advanced_batch_setup_title')}}</h4>
<span data-am-modal-close class="am-close">&times;</span>
</div>
<div class="am-popup-bd">
<div class="am-alert am-alert-secondary spec-title-container"></div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_price_title')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.goods.form_spec_thead_price_title')}}" class="am-radius popup_all_price" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_price_message')}}" />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_original_price_title')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.goods.form_spec_thead_original_price_title')}}" class="am-radius popup_all_original_price" pattern="{{$default_price_regex}}" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_original_price_message')}}" />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_weight_title')}}</label>
<input type="number" placeholder="{{:MyLang('common_service.goods.form_spec_thead_weight_title')}}" class="am-radius popup_all_weight" maxlength="80" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_weight_message')}}" />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_volume_title')}}</label>
<input type="number" placeholder="{{:MyLang('common_service.goods.form_spec_thead_volume_title')}}" class="am-radius popup_all_volume" maxlength="80" min="0.00" max="100000000.00" step="0.01" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_volume_message')}}" />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}" class="am-radius popup_all_coding" maxlength="80" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_coding_message')}}" />
</div>
<div class="am-form-group">
<label class="am-block">{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}</label>
<input type="text" placeholder="{{:MyLang('common_service.goods.form_spec_thead_coding_title')}}" class="am-radius popup_all_barcode" maxlength="80" data-validation-message="{{:MyLang('common_service.goods.form_spec_thead_coding_message')}}" />
</div>
<div class="am-form-group am-form-group-refreshing am-text-center">
<div class="am-padding-vertical-sm">
<button type="button" class="am-btn am-btn-warning am-radius am-btn-sm am-margin-right-lg" data-am-modal-close>{{:MyLang('cancel_title')}}</button>
<button type="button" class="am-btn am-btn-secondary am-radius am-btn-sm am-margin-left-lg">{{:MyLang('confirm_title')}}</button>
</div>
</div>
</div>
</div>
</div>
<!-- 单个规格批量操作弹层 -->
<div class="am-modal am-modal-no-btn" tabindex="-1" id="spec-modal-all-operation">
<div class="am-modal-dialog">
<div class="am-modal-hd">{{:MyLang('common_service.goods.form_spec_all_operate_title')}}
<a href="javascript: void(0)" class="am-close" data-am-modal-close>&times;</a>
</div>
<div class="am-modal-bd">
<div class="am-input-group am-input-group-sm">
<input type="text" class="am-form-field" placeholder="{{:MyLang('common_service.goods.form_spec_all_operate_placeholder')}}" />
<span class="am-input-group-btn">
<button type="button" class="am-btn am-btn-default">{{:MyLang('confirm_title')}}</button>
</span>
</div>
</div>
</div>
</div>