mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2026-07-07 14:25:32 +08:00
细节优化
This commit is contained in:
@ -66,7 +66,7 @@ class UserAddress extends Base
|
||||
'data' => $data,
|
||||
|
||||
// 加载地图api
|
||||
'is_load_map_api' => 1,
|
||||
'is_load_map_api' => MyC('home_user_address_map_status'),
|
||||
];
|
||||
|
||||
// 编辑器文件存放地址
|
||||
|
||||
@ -10,26 +10,26 @@
|
||||
<a href="{{:MyUrl('admin/admin/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>用户名{{if empty($data)}}<span class="am-form-group-label-tips-must">必填</span><span class="am-form-group-label-tips">创建后不可更改</span>{{else /}}<span class="am-form-group-label-tips">不可更改</span>{{/if}}</label>
|
||||
<label>用户名{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">创建后不可更改</span>{{else /}}<span class="am-form-group-label-tips">不可更改</span>{{/if}}</label>
|
||||
<input type="text" name="username" placeholder="用户名" pattern="{{:MyConst('common_regex_username')}}" data-validation-message="用户名格式 5~18 个字符(可以是字母数字下划线)" class="am-radius" {{if !empty($data['username'])}}value="{{$data.username}}" disabled{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>登录密码{{if empty($data)}}<span class="am-form-group-label-tips-must">必填</span>{{else /}}<span class="am-form-group-label-tips">选填</span>{{/if}}</label>
|
||||
<label>登录密码{{if empty($data)}}<span class="am-form-group-label-tips-must">*</span>{{else /}}<span class="am-form-group-label-tips">输入则修改密码</span>{{/if}}</label>
|
||||
<input type="password" name="login_pwd" placeholder="登录密码" pattern="{{:MyConst('common_regex_pwd')}}" data-validation-message="密码格式 6~18 个字符" class="am-radius" autocomplete="off" {{if empty($data)}}required{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>手机号码<span class="am-form-group-label-tips">选填</span></label>
|
||||
<label>手机号码</label>
|
||||
<input type="text" name="mobile" placeholder="手机号码" pattern="{{:MyConst('common_regex_mobile')}}" data-validation-message="手机号码格式错误" class="am-radius" {{if !empty($data['mobile'])}}value="{{$data.mobile}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>电子邮箱<span class="am-form-group-label-tips">选填</span></label>
|
||||
<label>电子邮箱</label>
|
||||
<input type="email" name="email" placeholder="电子邮箱" maxlength="60" data-validation-message="电子邮箱格式错误、最多60个字符" class="am-radius" value="{{if !empty($data['email'])}}{{$data.email}}{{/if}}" />
|
||||
</div>
|
||||
{{include file="lib/gender" /}}
|
||||
|
||||
{{if !isset($data['id']) or $admin['id'] neq $data['id']}}
|
||||
<div class="am-form-group">
|
||||
<label>权限组<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<label>权限组<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select class="am-radius chosen-select" name="role_id" data-validation-message="请选择所属角色组" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $role_list as $v}}
|
||||
@ -40,7 +40,7 @@
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>状态<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<label>状态<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="status" class="am-radius chosen-select" data-validation-message="请选择用户状态" required>
|
||||
{{foreach :MyConst('common_admin_status_list') as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['status']) and $data['status'] eq $v['value']}}selected{{else /}}{{if !isset($data['status']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
|
||||
|
||||
@ -10,12 +10,12 @@
|
||||
<a href="{{:MyUrl('admin/appcenternav/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>所属平台</label>
|
||||
<label>所属平台<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="platform" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="所属平台有误" data-validation-message="请选择所属平台" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_platform_type as $v}}
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>事件类型</label>
|
||||
<select name="event_type" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="事件值类型有误" data-validation-message="请选择事件类型" required>
|
||||
<select name="event_type" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="事件值类型有误" data-validation-message="请选择事件类型">
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_app_event_type as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['event_type']) and $data['event_type'] eq $v['value']}}selected{{else /}}{{if !isset($data['event_type']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
|
||||
@ -45,7 +45,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">导航图标</label>
|
||||
<label class="block">导航图标<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="请上传图片" required />
|
||||
|
||||
@ -10,12 +10,12 @@
|
||||
<a href="{{:MyUrl('admin/apphomenav/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>所属平台</label>
|
||||
<label>所属平台<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="platform" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="所属平台有误" data-validation-message="请选择所属平台" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_platform_type as $v}}
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>事件类型</label>
|
||||
<select name="event_type" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="事件值类型有误" data-validation-message="请选择事件类型" required>
|
||||
<select name="event_type" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="事件值类型有误" data-validation-message="请选择事件类型">
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_app_event_type as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['event_type']) and $data['event_type'] eq $v['value']}}selected{{else /}}{{if !isset($data['event_type']) and isset($v['checked']) and $v['checked'] eq true}}selected{{/if}}{{/if}}>{{$v.name}}</option>
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">导航图标</label>
|
||||
<label class="block">导航图标<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="请上传图片" required />
|
||||
|
||||
@ -4,46 +4,66 @@
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" action="{{:MyUrl('admin/article/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/article/index', $params)}}">
|
||||
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/article/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/article/index', $params)}}">
|
||||
<legend>
|
||||
<span class="am-text-default">文章{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
|
||||
<a href="{{:MyUrl('admin/article/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>标题</label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
|
||||
<input type="text" name="title" placeholder="标题" minlength="2" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-form-field am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit" type="button" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</span>
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>标题<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
|
||||
<input type="text" name="title" placeholder="标题" minlength="2" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-form-field am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
|
||||
<span class="am-input-group-btn">
|
||||
<button class="am-btn am-btn-default am-btn-xs colorpicker-submit" type="button" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>文章分类<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="article_category_id" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择文章分类" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $article_category_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['article_category_id']) and $data['article_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-cf">
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>跳转url地址<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '带http://或https://,仅web端有效', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<input type="url" name="jump_url" placeholder="跳转url地址" data-validation-message="跳转url地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.jump_url}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="block">是否启用</label>
|
||||
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}}checked="true"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="block">首页推荐</label>
|
||||
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_home_recommended'] eq 1}}checked="true"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>文章分类</label>
|
||||
<select name="article_category_id" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择文章分类" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $article_category_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['article_category_id']) and $data['article_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>跳转url地址<span class="am-form-group-label-tips">带http://或https://,仅web端有效</span></label>
|
||||
<input type="url" name="jump_url" placeholder="跳转url地址" data-validation-message="跳转url地址格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.jump_url}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">是否启用</label>
|
||||
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_enable'] eq 1}}checked="true"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">首页推荐</label>
|
||||
<input name="is_home_recommended" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if !empty($data) and $data['is_home_recommended'] eq 1}}checked="true"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>内容</label>
|
||||
<label>内容<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'article'])}}" placeholder="内容格式 10~105000 个字符之间" {{else /}} placeholder="内容格式 10~105000 个字符之间更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容格式 10~105000 个字符之间" required>{{if !empty($data)}}{{$data.content}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
||||
@ -71,7 +91,7 @@
|
||||
{{include file="lib/seo" /}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/articlecategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
|
||||
@ -4,54 +4,77 @@
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" action="{{:MyUrl('admin/brand/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/brand/index', $params)}}" enctype="multipart/form-data">
|
||||
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/brand/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/brand/index', $params)}}" enctype="multipart/form-data">
|
||||
<legend>
|
||||
<span class="am-text-default">品牌{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
|
||||
<a href="{{:MyUrl('admin/brand/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="30" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>品牌分类</label>
|
||||
<select name="brand_category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="可选择..." data-validation-message="请选择品牌分类" required>
|
||||
{{foreach $brand_category as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_category_ids']) and is_array($data['brand_category_ids']) and in_array($v['id'], $data['brand_category_ids'])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="30" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>品牌分类<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="brand_category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="可选择..." data-validation-message="请选择品牌分类" required>
|
||||
{{foreach $brand_category as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_category_ids']) and is_array($data['brand_category_ids']) and in_array($v['id'], $data['brand_category_ids'])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>官网地址<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="url" placeholder="官网地址、以http://或https://开头" name="website_url" data-validation-message="官网地址格式有误" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>官网地址</label>
|
||||
<input type="url" placeholder="官网地址、以http://或https://开头" name="website_url" data-validation-message="官网地址格式有误" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>描述</label>
|
||||
<textarea rows="1" name="describe" maxlength="230" class="am-radius" placeholder="描述" data-validation-message="描述最多230个字符">{{if !empty($data['describe'])}} {{$data.describe}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>描述</label>
|
||||
<textarea rows="5" name="describe" maxlength="230" class="am-radius" placeholder="描述" data-validation-message="描述最多230个字符">{{if !empty($data['describe'])}} {{$data.describe}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">LOGO<span class="am-form-group-label-tips">建议150x50像素</span></label>
|
||||
<ul class="plug-file-upload-view brand-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['logo'])}}
|
||||
<li>
|
||||
<input type="text" name="logo" value="{{$data.logo}}" />
|
||||
<img src="{{$data.logo}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.brand-logo-images-view">+上传图片</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">是否启用</label>
|
||||
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">LOGO<span class="am-form-group-label-tips">建议150*50px</span></label>
|
||||
<ul class="plug-file-upload-view brand-logo-images-view" data-form-name="logo" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['logo'])}}
|
||||
<li>
|
||||
<input type="text" name="logo" value="{{$data.logo}}" />
|
||||
<img src="{{$data.logo}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.brand-logo-images-view">+上传图片</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="{{if isset($data['sort'])}}{{$data.sort}}{{else /}}0{{/if}}" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="block">是否启用</label>
|
||||
<input name="is_enable" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_enable']) and $data['is_enable'] eq 1) or !isset($data['is_enable'])}}checked="true"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 插件扩展数据 start -->
|
||||
@ -78,7 +101,7 @@
|
||||
{{include file="lib/seo" /}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/brandcategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<a href="{{:MyUrl('admin/customview/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>标题</label>
|
||||
<label>标题<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="title" placeholder="标题" minlength="2" maxlength="60" data-validation-message="标题长度 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>内容{{if IsMobile()}}<span class="am-form-group-label-tips">更多编辑功能请使用电脑访问</span>{{/if}}</label>
|
||||
<label>内容<span class="am-form-group-label-tips-must">*</span>{{if IsMobile()}}<span class="am-form-group-label-tips">更多编辑功能请使用电脑访问</span>{{/if}}</label>
|
||||
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'customview'])}}" placeholder="内容长度最少 10~105000 个字符" {{else /}} placeholder="内容长度最少 10~105000 个字符更多编辑功能请使用电脑访问" {{/if}} data-validation-message="内容长度最少 10~105000 个字符" required>{{if !empty($data)}}{{$data.content}}{{/if}}</textarea>
|
||||
</div>
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
|
||||
@ -31,9 +31,13 @@
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.express-icon-images-view">+上传图片</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>官网地址</label>
|
||||
<input type="url" placeholder="官网地址、以http://或https://开头" name="website_url" data-validation-message="官网地址格式有误" class="am-radius" {{if !empty($data['website_url'])}} value="{{$data.website_url}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
|
||||
|
||||
@ -4,13 +4,13 @@
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" action="{{:MyUrl('admin/goods/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/goods/index', $params)}}" enctype="multipart/form-data">
|
||||
<form class="am-form form-validation am-form-pure am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/goods/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/goods/index', $params)}}" enctype="multipart/form-data">
|
||||
<legend>
|
||||
<span class="am-text-default">商品{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
|
||||
<a href="{{:MyUrl('admin/goods/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
|
||||
<nav class="goods-nav">
|
||||
<nav class="goods-nav goods-nav-retract" style="right:-110px;">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="javascript:;" data-value="#goods-nav-base">基础信息</a>
|
||||
@ -42,8 +42,8 @@
|
||||
<li>
|
||||
<a href="javascript:;" data-value="#goods-nav-seo">SEO</a>
|
||||
</li>
|
||||
<li class="am-text-center am-padding-xs nav-shrink-submit">
|
||||
<i class="am-icon-angle-double-right am-icon-sm"></i>
|
||||
<li class="am-text-center am-padding-xs nav-shrink-submit" style="width:50px;left:-80px;">
|
||||
<i class="am-icon-sm am-icon-angle-double-left"></i>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
@ -54,139 +54,180 @@
|
||||
<h3 class="am-panel-title">基础信息</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd am-padding-vertical-xs">
|
||||
<div class="am-form-group">
|
||||
<label>标题名称<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="text" name="title" placeholder="标题名称" minlength="2" maxlength="160" data-validation-message="标题名称格式 2~160 个字符" class="am-form-field am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
|
||||
<span class="am-input-group-btn">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs colorpicker-submit" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</span>
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>标题名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="hidden" name="title_color" value="{{if !empty($data['title_color'])}}{{$data.title_color}}{{/if}}" />
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="text" name="title" placeholder="标题名称" minlength="2" maxlength="160" data-validation-message="标题名称格式 2~160 个字符" class="am-form-field am-radius" {{if !empty($data)}} value="{{$data.title}}" {{/if}} {{if !empty($data['title_color'])}} style="color:{{$data.title_color}};" {{/if}} required />
|
||||
<span class="am-input-group-btn">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs colorpicker-submit" data-input-tag="input[name='title']" data-color-tag="input[name='title_color']">
|
||||
<img src="{{$attachment_host}}/static/common/images/colorpicker.png" />
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>商品简述<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="text" name="simple_desc" placeholder="商品简述" maxlength="230" data-validation-message="商品简述格式 最多230个字符" class="am-radius" {{if !empty($data)}} value="{{$data.simple_desc}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>商品型号<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="text" name="model" placeholder="商品型号" maxlength="30" data-validation-message="商品型号格式 最多30个字符" class="am-radius" {{if !empty($data)}} value="{{$data.model}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>商品分类<span class="am-form-group-label-tips-must">至少选择一个</span></label>
|
||||
<br />
|
||||
<select name="category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="请选择..." data-validation-message="请至少选择一个商品分类" data-base-template-url="{{:MyUrl('admin/goods/basetemplate')}}" required>
|
||||
{{if !empty($goods_category_list)}}
|
||||
{{foreach $goods_category_list as $v}}
|
||||
<option value="{{$v.id}}" {{if !empty($data['category_ids']) and in_array($v['id'], $data['category_ids'])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{if !empty($v['items'])}}
|
||||
{{foreach $v.items as $vs}}
|
||||
<option style="padding-left: 20px;" value="{{$vs.id}}" {{if !empty($data['category_ids']) and in_array($vs['id'], $data['category_ids'])}}selected{{/if}}>{{if empty($vs['items'])}}├{{else /}}└{{/if}}² {{$vs.name}}</option>
|
||||
{{if !empty($vs['items'])}}
|
||||
{{foreach $vs.items as $kss=>$vss}}
|
||||
<option style="padding-left: 40px;" value="{{$vss.id}}" {{if !empty($data['category_ids']) and in_array($vss['id'], $data['category_ids'])}}selected{{/if}}>{{if $kss eq count($vs['items'])-1}}└{{else /}}├{{/if}}³ {{$vss.name}}</option>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>商品分类<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<br />
|
||||
<select name="category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="请选择..." data-validation-message="请至少选择一个商品分类" data-base-template-url="{{:MyUrl('admin/goods/basetemplate')}}" required>
|
||||
{{if !empty($goods_category_list)}}
|
||||
{{foreach $goods_category_list as $v}}
|
||||
<option value="{{$v.id}}" {{if !empty($data['category_ids']) and in_array($v['id'], $data['category_ids'])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{if !empty($v['items'])}}
|
||||
{{foreach $v.items as $vs}}
|
||||
<option style="padding-left: 20px;" value="{{$vs.id}}" {{if !empty($data['category_ids']) and in_array($vs['id'], $data['category_ids'])}}selected{{/if}}>{{if empty($vs['items'])}}├{{else /}}└{{/if}}² {{$vs.name}}</option>
|
||||
{{if !empty($vs['items'])}}
|
||||
{{foreach $vs.items as $kss=>$vss}}
|
||||
<option style="padding-left: 40px;" value="{{$vss.id}}" {{if !empty($data['category_ids']) and in_array($vss['id'], $data['category_ids'])}}selected{{/if}}>{{if $kss eq count($vs['items'])-1}}└{{else /}}├{{/if}}³ {{$vss.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>品牌<span class="am-form-group-label-tips">可选</span></label>
|
||||
<br />
|
||||
<select name="brand_id" class="am-radius chosen-select" data-placeholder="请选择..." data-validation-message="请选择品牌">
|
||||
{{if !empty($brand_list)}}
|
||||
<option value="0">请选择...</option>
|
||||
{{foreach $brand_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_id']) and $data['brand_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>生产地<span class="am-form-group-label-tips">可选</span></label>
|
||||
<br />
|
||||
<select name="place_origin" class="am-radius chosen-select" data-placeholder="请选择..." data-validation-message="请选择生产地">
|
||||
<option value="0">请选择...</option>
|
||||
{{if !empty($region_province_list)}}
|
||||
{{foreach $region_province_list as $v}}
|
||||
<option value="{{$v.id}}" {{if !empty($data['place_origin']) and $v['id'] eq $data['place_origin']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>库存单位<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="inventory_unit" placeholder="库存单位" minlength="1" maxlength="6" data-validation-message="库存单位格式 1~6 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.inventory_unit}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>购买赠送积分比例<span class="am-form-group-label-tips">选填</span><span class="am-form-group-label-tips">按照商品金额比例乘以数量的比例进行发放</span></label>
|
||||
<div class="am-alert am-alert-warning am-radius am-margin-top-0" data-am-alert>
|
||||
<p>订单完成自动将发放到用户锁定积分、再由脚本自动发放到有效积分</p>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-input-group am-input-group-sm am-margin-top-xs">
|
||||
<input type="number" name="give_integral" placeholder="购买赠送积分" min="0" max="100" data-validation-message="购买赠送积分比例 0~100 的数字" class="am-form-field am-radius" {{if !empty($data['give_integral'])}} value="{{$data.give_integral}}"{{/if}} />
|
||||
<span class="am-input-group-btn">
|
||||
<button type="button" class="am-btn am-btn-default am-radius">%</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>最低起购数量<span class="am-form-group-label-tips-must">必填</span><span class="am-form-group-label-tips">默认数值 1</span></label>
|
||||
<input type="number" name="buy_min_number" placeholder="最低起购数量" min="1" max="100000000" data-validation-message="最低起购数量 1~100000000" class="am-radius" value="{{if empty($data) or empty($data['buy_min_number'])}}1{{else /}}{{$data.buy_min_number}}{{/if}}" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>单次最大购买数量<span class="am-form-group-label-tips">选填</span><span class="am-form-group-label-tips">单次最大数值 100000000, 小于等于0或空则不限</span></label>
|
||||
<input type="number" name="buy_max_number" placeholder="单次最大购买数量" min="0" max="100000000" data-validation-message="单次最大购买数量 1~100000000" class="am-radius" {{if !empty($data['buy_max_number'])}} value="{{$data.buy_max_number}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>商品类型<span class="am-form-group-label-tips">可选</span></label>
|
||||
<div class="am-alert am-alert-warning am-radius am-margin-top-0" data-am-alert>
|
||||
<p>1. 当前系统配置的站点类型为[ <strong class="am-text-danger">{{$common_site_type_list[$common_site_type]['name']}}</strong> ]</p>
|
||||
<p>2. 如果商品类型未配置则跟随系统配置的站点类型</p>
|
||||
<p>3. 当设置的商品类型不在系统设置的站点类型包含的时候,商品加入购物车功能将失效</p>
|
||||
</div>
|
||||
<select name="site_type" class="am-radius chosen-select am-margin-top-xs" data-placeholder="可选择..." data-validation-message="请选择商品类型">
|
||||
<option value="">可选择...</option>
|
||||
{{if !empty($common_site_type_list)}}
|
||||
{{foreach $common_site_type_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['site_type']) and $v['value'] eq $data['site_type']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">封面图片<span class="am-form-group-label-tips">选传</span><span class="am-form-group-label-tips">留空则取相册第一张图、建议800*800px</span></label>
|
||||
<ul class="plug-file-upload-view goods-recommended-images-view" data-form-name="images" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['images'])}}
|
||||
<li>
|
||||
<input type="text" name="images" value="{{$data.images}}" />
|
||||
<img src="{{$data.images}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.goods-recommended-images-view">+上传图片</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">扣减库存<span class="am-form-group-label-tips">可选</span><span class="am-form-group-label-tips">扣除规则根据后台配置->扣除库存规则而定</span></label>
|
||||
<input name="is_deduction_inventory" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_deduction_inventory']) and $data['is_deduction_inventory'] eq 1) or empty($data)}}checked="true"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">上下架<span class="am-form-group-label-tips">可选</span><span class="am-form-group-label-tips">下架后用户不可见</span></label>
|
||||
<input name="is_shelves" value="1" type="checkbox" data-off-text="下架" data-on-text="上架" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_shelves']) and $data['is_shelves'] eq 1) or empty($data)}}checked="true"{{/if}} />
|
||||
</div>
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>商品简述</label>
|
||||
<input type="text" name="simple_desc" placeholder="商品简述" maxlength="230" data-validation-message="商品简述格式 最多230个字符" class="am-radius" {{if !empty($data)}} value="{{$data.simple_desc}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>商品型号</label>
|
||||
<input type="text" name="model" placeholder="商品型号" maxlength="30" data-validation-message="商品型号格式 最多30个字符" class="am-radius" {{if !empty($data)}} value="{{$data.model}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">品牌</label>
|
||||
<select name="brand_id" class="am-radius chosen-select" data-placeholder="请选择..." data-validation-message="请选择品牌">
|
||||
{{if !empty($brand_list)}}
|
||||
<option value="0">请选择...</option>
|
||||
{{foreach $brand_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_id']) and $data['brand_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">生产地</label>
|
||||
<select name="place_origin" class="am-radius chosen-select" data-placeholder="请选择..." data-validation-message="请选择生产地">
|
||||
<option value="0">请选择...</option>
|
||||
{{if !empty($region_province_list)}}
|
||||
{{foreach $region_province_list as $v}}
|
||||
<option value="{{$v.id}}" {{if !empty($data['place_origin']) and $v['id'] eq $data['place_origin']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>库存单位<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="inventory_unit" placeholder="库存单位" minlength="1" maxlength="6" data-validation-message="库存单位格式 1~6 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.inventory_unit}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>购买赠送积分比例<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '1. 按照商品金额比例乘以数量的比例进行发放<br />2. 订单完成自动将发放到用户锁定积分<br />3. 站点设置->扩展中脚本处理发放积分', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="number" name="give_integral" placeholder="购买赠送积分" min="0" max="100" data-validation-message="购买赠送积分比例 0~100 的数字" class="am-form-field am-radius" {{if !empty($data['give_integral'])}} value="{{$data.give_integral}}"{{/if}} />
|
||||
<span class="am-input-group-btn">
|
||||
<button type="button" class="am-btn am-btn-default am-radius">%</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>最低起购数量<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="number" name="buy_min_number" placeholder="最低起购数量" min="1" max="100000000" data-validation-message="最低起购数量 1~100000000" class="am-radius" value="{{if empty($data) or empty($data['buy_min_number'])}}1{{else /}}{{$data.buy_min_number}}{{/if}}" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>单次最大购买数量<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '1. 单次最大数值 100000000<br />2. 小于等于0或空则不限', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<input type="number" name="buy_max_number" placeholder="单次最大购买数量" min="0" max="100000000" data-validation-message="单次最大购买数量 1~100000000" class="am-radius" {{if !empty($data['buy_max_number'])}} value="{{$data.buy_max_number}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-cf">
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>商品类型</label>
|
||||
<div class="am-alert am-alert-warning am-radius am-margin-top-0" data-am-alert>
|
||||
<p>1. 当前系统配置的站点类型为[ <strong class="am-text-danger">{{$common_site_type_list[$common_site_type]['name']}}</strong> ]</p>
|
||||
<p>2. 如果商品类型未配置则跟随系统配置的站点类型</p>
|
||||
<p>3. 当设置的商品类型不在系统设置的站点类型包含的时候,商品加入购物车功能将失效</p>
|
||||
</div>
|
||||
<select name="site_type" class="am-radius chosen-select am-margin-top-xs" data-placeholder="可选择..." data-validation-message="请选择商品类型">
|
||||
<option value="">可选择...</option>
|
||||
{{if !empty($common_site_type_list)}}
|
||||
{{foreach $common_site_type_list as $v}}
|
||||
<option value="{{$v.value}}" {{if isset($data['site_type']) and $v['value'] eq $data['site_type']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-md-6 am-padding-horizontal-0">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">封面图片<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '留空则取相册第一张图、建议800*800px', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<ul class="plug-file-upload-view goods-recommended-images-view" data-form-name="images" data-max-number="1" data-dialog-type="images">
|
||||
{{if !empty($data['images'])}}
|
||||
<li>
|
||||
<input type="text" name="images" value="{{$data.images}}" />
|
||||
<img src="{{$data.images}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.goods-recommended-images-view">+上传图片</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-6 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label class="block">扣减库存<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '扣除规则根据后台配置->扣除库存规则而定', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<input name="is_deduction_inventory" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_deduction_inventory']) and $data['is_deduction_inventory'] eq 1) or empty($data)}}checked="true"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="block">上下架<a href="javascript:;" class="am-icon-question-circle am-text-warning am-form-group-label-tips-icon am-margin-left-sm" data-am-popover="{content: '下架后用户不可见', trigger: 'hover focus', theme: 'sm'}"></a></label>
|
||||
<input name="is_shelves" value="1" type="checkbox" data-off-text="下架" data-on-text="上架" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_shelves']) and $data['is_shelves'] eq 1) or empty($data)}}checked="true"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 商品规格 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-operations">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">商品规格<span class="am-form-group-label-tips-must">必填</span></h3>
|
||||
<h3 class="am-panel-title">商品规格<span class="am-form-group-label-tips-must">*</span></h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -198,7 +239,7 @@
|
||||
<!-- 商品参数 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-parameters">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">商品参数<span class="am-form-group-label-tips">选填</span></h3>
|
||||
<h3 class="am-panel-title">商品参数</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -245,7 +286,7 @@
|
||||
<!-- 相册 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-photo">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">商品相册<span class="am-form-group-label-tips-must">必传</span></h3>
|
||||
<h3 class="am-panel-title">商品相册<span class="am-form-group-label-tips-must">*</span></h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -272,7 +313,7 @@
|
||||
<!-- 视频 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-video">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">商品视频<span class="am-form-group-label-tips">选传</span></h3>
|
||||
<h3 class="am-panel-title">商品视频</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -297,7 +338,7 @@
|
||||
<!-- 手机详情 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-app">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">手机详情<span class="am-form-group-label-tips">选填</span></h3>
|
||||
<h3 class="am-panel-title">手机详情</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -310,11 +351,10 @@
|
||||
data-required="1"
|
||||
data-images-name="content_app_images"
|
||||
data-content-name="content_app_text"
|
||||
data-images-title="图片"
|
||||
data-images-name="上传图片"
|
||||
data-images-title="上传图片"
|
||||
data-content-title="文本内容"
|
||||
data-delete-name="删除"
|
||||
data-drag-name="拖拽排序"
|
||||
data-delete-title="删除"
|
||||
data-drag-title="拖拽排序"
|
||||
>
|
||||
{{if !empty($data['content_app'])}}
|
||||
{{foreach $data.content_app as $v}}
|
||||
@ -338,8 +378,8 @@
|
||||
<textarea rows="5" name="content_app_text_{{$v.id}}" maxlength="105000" class="am-radius" placeholder="文本内容" data-validation-message="文本内容最多 105000 个字符">{{if !empty($v)}}{{$v.content_old|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<a href="javascript:;" class="am-text-xs am-text-danger content-app-items-rem-sub">删除</a>
|
||||
<a href="javascript:;" class="am-text-xs am-margin-left-lg drag-sort-submit">拖拽排序</a>
|
||||
<a href="javascript:;" class="am-text-xs am-text-danger am-icon-remove content-app-items-rem-sub"> 删除</a>
|
||||
<a href="javascript:;" class="am-text-xs am-margin-left-lg am-icon-arrows drag-sort-submit"> 拖拽排序</a>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
@ -352,7 +392,7 @@
|
||||
<!-- 电脑详情 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-web">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">电脑详情<span class="am-form-group-label-tips-must">必填</span></h3>
|
||||
<h3 class="am-panel-title">电脑详情<span class="am-form-group-label-tips-must">*</span></h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -364,7 +404,7 @@
|
||||
<!-- 虚拟信息 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-fictitious">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">虚拟信息<span class="am-form-group-label-tips">选填</span></h3>
|
||||
<h3 class="am-panel-title">虚拟信息</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd business-form-group">
|
||||
<div class="am-margin-horizontal-sm">
|
||||
@ -403,14 +443,14 @@
|
||||
<!-- SEO信息 -->
|
||||
<div class="am-panel am-panel-default" id="goods-nav-seo">
|
||||
<div class="am-panel-hd">
|
||||
<h3 class="am-panel-title">SEO信息<span class="am-form-group-label-tips">选填</span></h3>
|
||||
<h3 class="am-panel-title">SEO信息</h3>
|
||||
</div>
|
||||
<div class="am-panel-bd am-padding-vertical-xs">
|
||||
{{include file="lib/seo" /}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if isset($data) and !empty($data['id']) and (!isset($is_copy) or $is_copy neq 1)}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/goodscategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">icon图标</label>
|
||||
<label class="block">icon图标<span class="am-form-group-label-tips">建议100x100px</span></label>
|
||||
<ul class="plug-file-upload-view goods-category-icon-images-view" data-form-name="icon" data-max-number="1" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="hidden" name="icon" value="" />
|
||||
@ -31,7 +31,7 @@
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.goods-category-icon-images-view">+上传图片</div>
|
||||
</div>
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">大图片<span class="am-form-group-label-tips">建议大小360x360像素</span></label>
|
||||
<label class="block">大图片<span class="am-form-group-label-tips">建议360x360px</span></label>
|
||||
<ul class="plug-file-upload-view goods-category-big_images-images-view" data-form-name="big_images" data-max-number="1" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="hidden" name="big_images" value="" />
|
||||
@ -49,7 +49,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<div class="am-form-group region-linkage" data-url="{{:MyUrl('admin/region/node')}}">
|
||||
<label class="block">省市区{{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}<span class="am-form-group-label-tips-must">必选</span>{{else /}}<span class="am-form-group-label-tips">可选</span>{{/if}}</label>
|
||||
<label class="block">省市区{{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}<span class="am-form-group-label-tips-must">*</span>{{/if}}</label>
|
||||
<select name="province" data-next="city" class="am-radius chosen-select" data-placeholder="省份" data-validation-message="请选择省份" data-value="{{if isset($data['province'])}}{{$data.province}}{{else /}}0{{/if}}" {{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}required{{/if}}>
|
||||
<option value="">省份</option>
|
||||
</select>
|
||||
|
||||
@ -21,12 +21,12 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/link/Save')}}" method="POST" request-type="ajax-reload" request-value="">
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>链接地址<span class="am-form-group-label-tips">带http://或https://</span></label>
|
||||
<input type="url" placeholder="链接地址" name="url" data-validation-message="链接地址格式有误" class="am-radius" required />
|
||||
<label>链接地址<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="url" placeholder="链接地址、以http://或https://开头" name="url" data-validation-message="链接地址格式有误" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
|
||||
@ -66,12 +66,12 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>导航名称</label>
|
||||
<label>导航名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="导航名称" name="name" minlength="2" maxlength="16" data-validation-message="导航名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>url地址<span class="am-form-group-label-tips">带http://或https://</span></label>
|
||||
<input type="url" placeholder="url地址" name="url" data-validation-message="url格式有误" class="am-radius" required />
|
||||
<label>url地址<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="url" placeholder="url地址、以http://或https://开头" name="url" data-validation-message="url格式有误" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
@ -112,7 +112,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>文章</label>
|
||||
<label>文章<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select class="am-radius chosen-select" name="value" data-placeholder="请选择..." data-validation-message="文章选择有误" required>
|
||||
<option value="">请选择...</option>
|
||||
{{foreach $article_list as $v}}
|
||||
@ -170,7 +170,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>自定义页面</label>
|
||||
<label>自定义页面<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select class="am-radius chosen-select" name="value" data-placeholder="请选择..." data-validation-message="自定义页面选择有误" required>
|
||||
<option value="">请选择...</option>
|
||||
{{foreach $customview_list as $v}}
|
||||
@ -221,7 +221,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>商品分类</label>
|
||||
<label>商品分类<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select class="am-radius chosen-select" name="value" data-placeholder="请选择..." data-validation-message="商品分类选择有误" required>
|
||||
<option value="">请选择...</option>
|
||||
{{foreach $goods_category_list as $v}}
|
||||
@ -282,7 +282,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>页面设计</label>
|
||||
<label>页面设计<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select class="am-radius chosen-select" name="value" data-placeholder="请选择..." data-validation-message="页面设计选择有误" required>
|
||||
<option value="">请选择...</option>
|
||||
{{foreach $design_list as $v}}
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
{{include file="public/not_data" /}}
|
||||
{{else /}}
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~30 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>适用终端</label>
|
||||
<label>适用终端<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="apply_terminal" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="可选择..." data-validation-message="至少选择一个适用终端" required>
|
||||
{{foreach $common_platform_type as $v}}
|
||||
{{if isset($data) and isset($data['apply_terminal_old']) and is_array($data['apply_terminal_old']) and in_array($v['value'], $data['apply_terminal_old'])}}
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>权限名称</label>
|
||||
<label>权限名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="权限名称" name="name" minlength="2" maxlength="16" data-validation-message="权限名称格式 2~8 个字符之间" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
@ -71,7 +71,7 @@
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>顺序</label>
|
||||
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" required />
|
||||
<input type="number" placeholder="顺序" name="sort" min="0" max="255" data-validation-message="顺序 0~255 之间的数值" class="am-radius" value="0" />
|
||||
</div>
|
||||
{{include file="lib/is_show" /}}
|
||||
<div class="am-form-popup-submit">
|
||||
|
||||
@ -10,12 +10,12 @@
|
||||
<a href="{{:MyUrl('admin/quicknav/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>所属平台</label>
|
||||
<label>所属平台<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="platform" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="所属平台有误" data-validation-message="请选择所属平台" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_platform_type as $v}}
|
||||
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>事件类型</label>
|
||||
<label>事件类型<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="event_type" class="am-radius chosen-select" data-placeholder="可选择..." placeholder="事件值类型有误" data-validation-message="请选择事件类型" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_app_event_type as $v}}
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">导航图标</label>
|
||||
<label class="block">导航图标<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="请上传图片" required />
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/region/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<a href="{{:MyUrl('admin/role/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>角色名称</label>
|
||||
<label>角色名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="角色名称" name="name" minlength="2" maxlength="16" data-validation-message="角色名称格式 2~8 个字符之间" class="am-radius" {{if !empty($data)}}value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
|
||||
@ -21,15 +21,15 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/screeningprice/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group">
|
||||
<label>名称</label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="名称" name="name" minlength="2" maxlength="16" data-validation-message="名称格式 2~16 个字符" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>最小价格</label>
|
||||
<label>最小价格<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="number" placeholder="最小价格" name="min_price" maxlength="10" data-validation-message="最小价格有误" class="am-radius" value="0" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>最大价格</label>
|
||||
<label>最大价格<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="number" placeholder="最大价格" name="max_price" maxlength="10" data-validation-message="最大价格有误" class="am-radius" value="0" required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
|
||||
@ -10,12 +10,12 @@
|
||||
<a href="{{:MyUrl('admin/slide/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
</legend>
|
||||
<div class="am-form-group">
|
||||
<label>名称<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="60" data-validation-message="名称格式 2~60 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>所属平台<span class="am-form-group-label-tips-must">必选</span></label>
|
||||
<label>所属平台<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<select name="platform" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择所属平台" required>
|
||||
<option value="">可选择...</option>
|
||||
{{foreach $common_platform_type as $v}}
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-file">
|
||||
<label class="block">轮播图片<span class="am-form-group-label-tips-must">必传</span></label>
|
||||
<label class="block">轮播图片<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<ul class="plug-file-upload-view slide-images_url-images-view" data-form-name="images_url" data-max-number="1" data-delete="0" data-dialog-type="images">
|
||||
<li>
|
||||
<input type="text" name="images_url" value="{{if !empty($data['images_url'])}}{{$data.images_url}}{{/if}}" data-validation-message="请上传图片" required />
|
||||
@ -50,7 +50,7 @@
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.slide-images_url-images-view">+上传图片</div>
|
||||
<div class="am-alert am-alert-warning" data-am-alert>
|
||||
<button type="button" class="am-close">×</button>
|
||||
<p>1. PC端建议尺寸:1920x500px</p>
|
||||
<p>1. PC端建议尺寸:1920x480px</p>
|
||||
<p>2. 手机端建议尺寸:1200x360px</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-full-screen" action="{{:MyUrl('admin/user/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/user/index', $params)}}">
|
||||
<form class="am-form form-validation am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/user/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/user/index', $params)}}">
|
||||
<legend>
|
||||
<span class="am-text-default">用户{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
|
||||
<a href="{{:MyUrl('admin/user/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
@ -209,7 +209,7 @@
|
||||
{{/if}}
|
||||
<!-- 插件扩展数据 end -->
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-horizontal-0">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" action="{{:MyUrl('admin/useraddress/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/useraddress/index', $params)}}">
|
||||
<form class="am-form form-validation am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/useraddress/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/useraddress/index', $params)}}">
|
||||
<legend>
|
||||
<span class="am-text-default">用户地址{{if empty($data['id'])}}添加{{else /}}编辑{{/if}}</span>
|
||||
<a href="{{:MyUrl('admin/useraddress/index', $params)}}" class="am-fr am-text-sm am-margin-top-sm am-icon-mail-reply"> 返回</a>
|
||||
@ -22,26 +22,38 @@
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>用户id<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>用户id<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="number" name="user_id" placeholder="用户id" min="0" data-validation-message="请填写用户id" class="am-radius" {{if !empty($data['user_id'])}} value="{{$data.user_id}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>别名<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data['alias'])}} value="{{$data.alias}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>姓名<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>电话<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data['tel'])}} value="{{$data.tel}}"{{/if}} required />
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-8 am-padding-horizontal-0">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-8 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>姓名<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-4 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>别名</label>
|
||||
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data['alias'])}} value="{{$data.alias}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-4 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>电话<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data['tel'])}} value="{{$data.tel}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{include file="lib/region_linkage" /}}
|
||||
<div class="am-form-group">
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="lng" id="form-lng" {{if !empty($data['lng'])}} value="{{$data.lng}}"{{/if}} />
|
||||
<input type="hidden" name="lat" id="form-lat" {{if !empty($data['lat'])}} value="{{$data.lat}}"{{/if}} />
|
||||
@ -59,18 +71,18 @@
|
||||
</div>
|
||||
<div class="am-alert am-alert-secondary">
|
||||
<div class="am-form-group">
|
||||
<label>身份证姓名<span class="am-form-group-label-tips">选填,请务必与上传的身份证件姓名保持一致</span></label>
|
||||
<label>身份证姓名<span class="am-form-group-label-tips">请务必与上传的身份证件姓名保持一致</span></label>
|
||||
<input type="text" name="idcard_name" placeholder="身份证姓名" minlength="0" maxlength="16" data-validation-message="身份证姓名格式最多 16 个字符" class="am-radius" {{if !empty($data['idcard_name'])}} value="{{$data.idcard_name}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>身份证号码<span class="am-form-group-label-tips">选填,请务必与上传的身份证件号码保持一致</span></label>
|
||||
<label>身份证号码<span class="am-form-group-label-tips">请务必与上传的身份证件号码保持一致</span></label>
|
||||
<input type="text" name="idcard_number" placeholder="身份证号码" minlength="0" maxlength="18" data-validation-message="身份证号码格式最多 18 个字符" class="am-radius" {{if !empty($data['idcard_number'])}} value="{{$data.idcard_number}}"{{/if}} />
|
||||
</div>
|
||||
{{if empty($data) or empty($data['user_id'])}}
|
||||
<p class="am-text-center am-text-warning am-margin-top-sm">先关联用户后再上传身份证图片</p>
|
||||
{{else /}}
|
||||
<div class="am-form-group plug-file-upload-view">
|
||||
<label>身份证照片<span class="am-form-group-label-tips">选填,请使用身份证原件拍摄,图片要清晰</span></label>
|
||||
<label>身份证照片<span class="am-form-group-label-tips">请使用身份证原件拍摄,图片要清晰</span></label>
|
||||
<div class="am-nbfc user-address-idcard-images">
|
||||
<div class="am-fl">
|
||||
<ul class="plug-file-upload-view images-idcard_front" data-form-name="idcard_front" data-max-number="1" data-dialog-type="images">
|
||||
@ -101,7 +113,7 @@
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if !empty($data['id'])}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -11,30 +11,30 @@
|
||||
</legend>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>名称<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>名称<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="名称" minlength="2" maxlength="30" data-validation-message="名称格式 2~30 个字符之间" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>别名<span class="am-form-group-label-tips">选填</span></label>
|
||||
<label>别名</label>
|
||||
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.alias}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>权重<span class="am-form-group-label-tips">选填、权重数值越大代表权重越高</span></label>
|
||||
<label>权重<span class="am-form-group-label-tips">权重数值越大代表权重越高</span></label>
|
||||
<input type="number" name="level" placeholder="权重" minlength="0" maxlength="16" data-validation-message="请输入有效权重数值" class="am-radius" {{if !empty($data)}} value="{{$data.level}}"{{/if}} />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>联系人<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>联系人<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="contacts_name" placeholder="联系人" minlength="2" maxlength="16" data-validation-message="联系人格式 2~16 个字符之间" class="am-radius" {{if !empty($data)}} value="{{$data.contacts_name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>联系电话<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>联系电话<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="contacts_tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.contacts_tel}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
{{include file="lib/region_linkage" /}}
|
||||
<div class="am-form-group">
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="lng" id="form-lng" {{if !empty($data)}} value="{{$data.lng}}"{{/if}} />
|
||||
<input type="hidden" name="lat" id="form-lat" {{if !empty($data)}} value="{{$data.lat}}"{{/if}} />
|
||||
|
||||
@ -79,7 +79,7 @@ class UserAddress extends Common
|
||||
'is_footer' => 0,
|
||||
|
||||
// 加载地图
|
||||
'is_load_map_api' => 1,
|
||||
'is_load_map_api' => MyC('home_user_address_map_status'),
|
||||
|
||||
// 编辑器文件存放地址
|
||||
'editor_path_type' => ResourcesService::EditorPathTypeValue(UserAddressService::EditorAttachmentPathType($this->user['id'])),
|
||||
|
||||
@ -233,7 +233,7 @@
|
||||
{{if !empty($buy_goods)}}
|
||||
<div class="goods-group-list">
|
||||
{{foreach $buy_goods as $v}}
|
||||
<div class="am-panel am-panel-default am-margin-top-sm am-margin-bottom-0">
|
||||
<div class="am-panel am-panel-default am-margin-top-sm am-margin-bottom-0 am-radius">
|
||||
<div class="am-panel-hd">
|
||||
<!-- 分组导航内部开始钩子-开始 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
@ -327,7 +327,7 @@
|
||||
{{/php}}
|
||||
<!-- 分组导航内部结束钩子-结束 -->
|
||||
</div>
|
||||
<div class="am-panel-bd am-radius">
|
||||
<div class="am-panel-bd">
|
||||
<!-- 分组商品顶部钩子-开始 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<div class="am-form-group region-linkage" data-url="{{:MyUrl('index/region/index')}}">
|
||||
<label class="block">省市区{{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}<span class="am-form-group-label-tips-must">必选</span>{{else /}}<span class="am-form-group-label-tips">可选</span>{{/if}}</label>
|
||||
<label class="block">省市区{{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}<span class="am-form-group-label-tips-must">*</span>{{/if}}</label>
|
||||
<select name="province" data-next="city" class="am-radius chosen-select" data-placeholder="省份" data-validation-message="请选择省份" data-value="{{if isset($data['province'])}}{{$data.province}}{{else /}}0{{/if}}" {{if isset($is_force_region_choice) and $is_force_region_choice eq 1}}required{{/if}}>
|
||||
<option value="">省份</option>
|
||||
</select>
|
||||
|
||||
@ -343,6 +343,14 @@
|
||||
{{if !empty($data.express_name)}}{{$data.express_name}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{if !empty($data['express_website_url'])}}
|
||||
<div class="items am-cf">
|
||||
<div class="items-title am-fl">快递官网:</div>
|
||||
<div class="items-detail am-fl">
|
||||
<a href="{{$data.express_website_url}}" target="_blank" class="am-text-primary">{{$data.express_website_url}}</a>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($data.express_number)}}
|
||||
<div class="items am-cf">
|
||||
<div class="items-title am-fl">快递单号:</div>
|
||||
@ -518,12 +526,19 @@
|
||||
</a>
|
||||
<div class="am-nbfc">
|
||||
<a href="{{$goods.goods_url}}" target="_blank" class="am-nowrap-initial">{{$goods.title}}</a>
|
||||
{{if !empty($goods.spec)}}
|
||||
<ul class="goods-spec am-margin-top-xs">
|
||||
{{foreach $goods.spec as $spec}}
|
||||
<li>{{$spec.type}}:{{$spec.value}}</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{if !empty($goods.spec_text)}}
|
||||
<div class="am-margin-top-xs am-nowrap-initial">{{$goods.spec_text}}</div>
|
||||
{{/if}}
|
||||
{{if ($data['is_can_launch_aftersale'] eq 1 or !empty($goods['orderaftersale'])) and !empty($goods['orderaftersale_btn_text'])}}
|
||||
<div class="am-fr">
|
||||
<a href="{{:MyUrl('index/orderaftersale/detail', ['oid'=>$data['id'], 'did'=>$goods['id']])}}" target="_blank" class="am-text-primary">
|
||||
{{if empty($goods['orderaftersale'])}}
|
||||
{{$goods.orderaftersale_btn_text}}
|
||||
{{else /}}
|
||||
<span class="{{if $goods['orderaftersale']['status'] eq 3}}am-text-success{{else /}}am-text-secondary{{/if}}">{{$goods.orderaftersale_btn_text}}</span>
|
||||
{{/if}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -118,17 +118,17 @@
|
||||
<span class="am-text-danger am-margin-left-lg">已退 {{$item.returned_quantity}} / {{$module_data.currency_data.currency_symbol}}{{$item.refund_price}}</span>
|
||||
{{/if}}
|
||||
|
||||
<div class="am-fr">
|
||||
{{if ($module_data['is_can_launch_aftersale'] eq 1 or !empty($item['orderaftersale'])) and !empty($item['orderaftersale_btn_text'])}}
|
||||
<a href="{{:MyUrl('index/orderaftersale/detail', ['oid'=>$module_data['id'], 'did'=>$item['id']])}}" target="_blank">
|
||||
{{if empty($item['orderaftersale'])}}
|
||||
{{$item.orderaftersale_btn_text}}
|
||||
{{else /}}
|
||||
<span class="{{if $item['orderaftersale']['status'] eq 3}}am-text-success{{else /}}am-text-secondary{{/if}}">{{$item.orderaftersale_btn_text}}</span>
|
||||
{{/if}}
|
||||
</a>
|
||||
{{if ($module_data['is_can_launch_aftersale'] eq 1 or !empty($item['orderaftersale'])) and !empty($item['orderaftersale_btn_text'])}}
|
||||
<div class="am-fr">
|
||||
<a href="{{:MyUrl('index/orderaftersale/detail', ['oid'=>$module_data['id'], 'did'=>$item['id']])}}" target="_blank" class="am-text-primary">
|
||||
{{if empty($item['orderaftersale'])}}
|
||||
{{$item.orderaftersale_btn_text}}
|
||||
{{else /}}
|
||||
<span class="{{if $item['orderaftersale']['status'] eq 3}}am-text-success{{else /}}am-text-secondary{{/if}}">{{$item.orderaftersale_btn_text}}</span>
|
||||
{{/if}}
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed" />
|
||||
{{/foreach}}
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
|
||||
<!-- content -->
|
||||
<div class="am-container user-main">
|
||||
|
||||
<!-- user menu start -->
|
||||
{{include file="public/user_menu" /}}
|
||||
<!-- user menu end -->
|
||||
@ -46,7 +45,7 @@
|
||||
|
||||
<!-- 商品列表 -->
|
||||
{{if !empty($goods)}}
|
||||
<div class="am-panel am-panel-default order-base-panel">
|
||||
<div class="am-panel am-panel-default order-base-panel am-radius">
|
||||
<div class="am-panel-bd">
|
||||
<!-- 用户订单售后详情顶部-开始 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
@ -87,12 +86,8 @@
|
||||
</a>
|
||||
<div class="am-nbfc">
|
||||
<a href="{{$goods.goods_url}}" target="_blank" class="goods-title">{{$goods.title}}</a>
|
||||
{{if !empty($goods.spec)}}
|
||||
<ul class="goods-spec am-margin-top-xs">
|
||||
{{foreach $goods.spec as $spec}}
|
||||
<li>{{$spec.type}}:{{$spec.value}}</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{if !empty($goods.spec_text)}}
|
||||
<div class="am-margin-top-xs am-nowrap-initial">{{$goods.spec_text}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
@ -130,7 +125,7 @@
|
||||
<!-- 用户订单售后详情商品底部顶部-结束 -->
|
||||
|
||||
<!-- 基础信息 -->
|
||||
<div class="am-alert am-alert-secondary">
|
||||
<div class="am-alert am-alert-secondary am-radius">
|
||||
{{if !empty($order.price)}}
|
||||
<div class="items am-cf">
|
||||
<div class="items-title am-fl">商品总价:</div>
|
||||
@ -231,7 +226,7 @@
|
||||
<!-- 选择售后操作类型 -->
|
||||
<div class="am-cf aftersale-type">
|
||||
{{foreach $common_order_aftersale_type_list as $v}}
|
||||
<div class="items-align {{$v.class}}" data-type="{{$v.value}}">
|
||||
<div class="am-radius items-align {{$v.class}}" data-type="{{$v.value}}">
|
||||
<div class="items-middle">
|
||||
<div class="am-fl icon">
|
||||
<i class="{{$v.icon}}"></i>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- 退款 -->
|
||||
<ul class="aftersale-step am-cf am-text-center return-only-money-step {{if empty($new_aftersale_data) or $new_aftersale_data['status'] gt 3 or $new_aftersale_data['type'] eq 1}}none{{/if}}">
|
||||
<ul class="aftersale-step am-cf am-text-center am-radius return-only-money-step {{if empty($new_aftersale_data) or $new_aftersale_data['status'] gt 3 or $new_aftersale_data['type'] eq 1}}none{{/if}}">
|
||||
{{if !empty($step_data['step0'])}}
|
||||
{{foreach $step_data.step0 as $step}}
|
||||
<li class="am-text-truncate {{if $step.is_active eq 1}} selected{{/if}} {{if $step.is_end eq 1}} selected-end{{/if}}">
|
||||
@ -17,7 +17,7 @@
|
||||
</ul>
|
||||
|
||||
<!-- 退货/退款 -->
|
||||
<ul class="aftersale-step am-cf am-text-center return-money-goods-step {{if empty($new_aftersale_data) or $new_aftersale_data['status'] gt 3 or $new_aftersale_data['type'] eq 0}}none{{/if}}">
|
||||
<ul class="aftersale-step am-cf am-text-center am-radius return-money-goods-step {{if empty($new_aftersale_data) or $new_aftersale_data['status'] gt 3 or $new_aftersale_data['type'] eq 0}}none{{/if}}">
|
||||
{{if !empty($step_data['step1'])}}
|
||||
{{foreach $step_data.step1 as $step}}
|
||||
<li class="am-text-truncate {{if $step.is_active eq 1}} selected{{/if}} {{if $step.is_end eq 1}} selected-end{{/if}}">
|
||||
|
||||
@ -115,7 +115,7 @@
|
||||
<div class="am-topbar-right am-hide-sm-only">
|
||||
<!-- 快捷百宝箱 -->
|
||||
{{if MyC('home_navigation_main_quick_status') eq 1}}
|
||||
<div class="navigation-main-quick">
|
||||
<div class="navigation-main-quick am-radius">
|
||||
<a href="javascript:;" class="am-block" data-am-modal="{target: '#left-main-quick-popup'}">
|
||||
<span class="am-icon-sliders icon"></span>
|
||||
<b class="am-block"></b>
|
||||
|
||||
@ -3,23 +3,35 @@
|
||||
<!-- conntent start -->
|
||||
<div class="am-padding-sm">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation" method="post" action="{{:MyUrl('index/useraddress/save')}}" request-type="ajax-reload" request-value="parent">
|
||||
<div class="am-form-group">
|
||||
<label>别名<span class="am-form-group-label-tips">选填</span></label>
|
||||
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data['alias'])}} value="{{$data.alias}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>姓名<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>电话<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data['tel'])}} value="{{$data.tel}}"{{/if}} required />
|
||||
<form class="am-form form-validation am-form-full-screen am-form-popup-fixed" method="post" action="{{:MyUrl('index/useraddress/save')}}" request-type="ajax-reload" request-value="parent">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-8 am-padding-horizontal-0">
|
||||
<div class="am-cf">
|
||||
<div class="am-u-sm-8 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>姓名<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-4 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>别名</label>
|
||||
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data['alias'])}} value="{{$data.alias}}"{{/if}} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-u-sm-4 am-padding-horizontal-0">
|
||||
<div class="am-form-group">
|
||||
<label>电话<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data['tel'])}} value="{{$data.tel}}"{{/if}} required />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{include file="lib/region_linkage" /}}
|
||||
<div class="am-form-group">
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">必填</span></label>
|
||||
<label>详细地址<span class="am-form-group-label-tips-must">*</span></label>
|
||||
{{if MyC('home_user_address_map_status') eq 1}}
|
||||
<div class="am-input-group am-input-group-sm">
|
||||
<input type="hidden" name="lng" id="form-lng" {{if !empty($data['lng'])}} value="{{$data.lng}}"{{/if}} />
|
||||
@ -81,7 +93,7 @@
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" {{if !empty($data['id'])}} value="{{$data.id}}"{{/if}} />
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
</div>
|
||||
|
||||
@ -23,7 +23,7 @@ use app\service\ResourcesService;
|
||||
class ExpressService
|
||||
{
|
||||
/**
|
||||
* 获取地区名称
|
||||
* 获取快递名称
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
@ -56,6 +56,40 @@ class ExpressService
|
||||
return (!empty($data) && is_array($data) && array_key_exists($express_ids, $data)) ? $data[$express_ids] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取快递信息
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-19
|
||||
* @desc description
|
||||
* @param [array|int] $express_ids [快递id]
|
||||
*/
|
||||
public static function ExpressData($express_ids = 0)
|
||||
{
|
||||
if(empty($express_ids))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// 参数处理查询数据
|
||||
if(is_array($express_ids))
|
||||
{
|
||||
$express_ids = array_filter(array_unique($express_ids));
|
||||
}
|
||||
if(!empty($express_ids))
|
||||
{
|
||||
$data = self::DataHandle(Db::name('Express')->where(['id'=>$express_ids])->column('id,name,website_url,icon', 'id'));
|
||||
}
|
||||
|
||||
// id数组则直接返回
|
||||
if(is_array($express_ids))
|
||||
{
|
||||
return empty($data) ? [] : $data;
|
||||
}
|
||||
return (!empty($data) && is_array($data) && array_key_exists($express_ids, $data)) ? $data[$express_ids] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 快递列表
|
||||
* @author Devil
|
||||
@ -113,11 +147,8 @@ class ExpressService
|
||||
*/
|
||||
public static function ExpressNodeSon($params = [])
|
||||
{
|
||||
// id
|
||||
$id = isset($params['id']) ? intval($params['id']) : 0;
|
||||
|
||||
// 获取数据
|
||||
$field = 'id,pid,icon,name,sort,is_enable';
|
||||
$field = 'id,pid,icon,name,website_url,sort,is_enable';
|
||||
$data = Db::name('Express')->field($field)->where(['pid'=>$id])->order('sort asc')->select()->toArray();
|
||||
if(!empty($data))
|
||||
{
|
||||
@ -167,11 +198,12 @@ class ExpressService
|
||||
|
||||
// 数据
|
||||
$data = [
|
||||
'name' => $params['name'],
|
||||
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
|
||||
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
|
||||
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
|
||||
'icon' => $attachment['data']['icon'],
|
||||
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
|
||||
'name' => $params['name'],
|
||||
'website_url' => empty($params['website_url']) ? '' : $params['website_url'],
|
||||
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
|
||||
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
|
||||
'icon' => $attachment['data']['icon'],
|
||||
];
|
||||
|
||||
// 添加
|
||||
|
||||
@ -491,7 +491,7 @@ class GoodsService
|
||||
* @desc description
|
||||
* @param [array] $ids [分类id数组]
|
||||
* @param [int] $is_enable [是否启用 null, 0否, 1是]
|
||||
* @param [int] $level [指定级别 null, 整数、默认则全部下级]
|
||||
* @param [int] $level [指定级别 null, 整数(1~3)、默认则全部上级]
|
||||
*/
|
||||
public static function GoodsCategoryParentIds($ids = [], $is_enable = null, $level = null)
|
||||
{
|
||||
|
||||
@ -1261,10 +1261,10 @@ class OrderService
|
||||
$user_list = UserService::GetUserViewInfo(array_column($data, 'user_id'));
|
||||
}
|
||||
|
||||
// 快递名称
|
||||
// 快递信息
|
||||
if(in_array('express_id', $keys))
|
||||
{
|
||||
$express_list = ExpressService::ExpressName(array_column($data, 'express_id'));
|
||||
$express_list = ExpressService::ExpressData(array_column($data, 'express_id'));
|
||||
}
|
||||
|
||||
// 支付方式名称
|
||||
@ -1350,7 +1350,17 @@ class OrderService
|
||||
$v['pay_status_name'] = (in_array($v['status'], [2,3,4]) && $v['pay_status'] == 0) ? '待确认' : $order_pay_status[$v['pay_status']]['name'];
|
||||
|
||||
// 快递公司
|
||||
$v['express_name'] = (!empty($express_list) && is_array($express_list) && array_key_exists($v['express_id'], $express_list)) ? $express_list[$v['express_id']] : null;
|
||||
$express = (!empty($express_list) && is_array($express_list) && array_key_exists($v['express_id'], $express_list)) ? $express_list[$v['express_id']] : null;
|
||||
if(empty($express))
|
||||
{
|
||||
$v['express_name'] = '';
|
||||
$v['express_icon'] = '';
|
||||
$v['express_website_url'] = '';
|
||||
} else {
|
||||
$v['express_name'] = $express['name'];
|
||||
$v['express_icon'] = $express['icon'];
|
||||
$v['express_website_url'] = $express['website_url'];
|
||||
}
|
||||
|
||||
// 支付方式
|
||||
$v['payment_name'] = (!empty($payment_list) && is_array($payment_list) && array_key_exists($v['id'], $payment_list)) ? $payment_list[$v['id']] : null;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
right:0;
|
||||
width:80px;
|
||||
position:fixed;
|
||||
z-index:1000;
|
||||
z-index:10001;
|
||||
border:1px solid #eee;
|
||||
border-right:0px;
|
||||
}
|
||||
@ -149,7 +149,7 @@ ul {
|
||||
overflow:hidden;
|
||||
}
|
||||
.content-app-items > li {
|
||||
border:3px dashed #eee;
|
||||
border:1px dashed #eee;
|
||||
padding:10px;
|
||||
}
|
||||
ul li {
|
||||
|
||||
@ -501,7 +501,7 @@ $(function()
|
||||
html += '<label class="block">'+$app_content.data('images-title')+'</label>';
|
||||
html += '<ul class="plug-file-upload-view goods-content-app-images-view-'+index+'" data-form-name="'+images_name+'_'+index+'" data-max-number="1" data-dialog-type="images">';
|
||||
html += '</ul>';
|
||||
html += '<div class="plug-file-upload-submit" data-view-tag="ul.goods-content-app-images-view-'+index+'">+'+$app_content.data('images-name')+'</div>';
|
||||
html += '<div class="plug-file-upload-submit" data-view-tag="ul.goods-content-app-images-view-'+index+'">+'+$app_content.data('images-title')+'</div>';
|
||||
html += '</div>';
|
||||
|
||||
// 右侧
|
||||
@ -512,8 +512,8 @@ $(function()
|
||||
html += '</div>';
|
||||
|
||||
// 操作按钮
|
||||
html += '<a href="javascript:;" class="am-text-xs am-text-danger content-app-items-rem-sub">'+$app_content.data('delete-name')+'</a>';
|
||||
html += ' <a href="javascript:;" class="am-text-xs am-margin-left-lg drag-sort-submit">'+$app_content.data('drag-name')+'</a>';
|
||||
html += '<a href="javascript:;" class="am-text-xs am-text-danger am-icon-remove content-app-items-rem-sub"> '+$app_content.data('delete-title')+'</a>';
|
||||
html += ' <a href="javascript:;" class="am-text-xs am-margin-left-lg am-icon-arrows drag-sort-submit"> '+$app_content.data('drag-title')+'</a>';
|
||||
html += '</li>';
|
||||
$app_content.append(html);
|
||||
$app_content.attr('index', index);
|
||||
|
||||
@ -2923,6 +2923,30 @@ function CommonGoodsChoiceSpecType()
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 二维码初始化
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2023-01-09
|
||||
* @desc description
|
||||
*/
|
||||
function ViewQrCodeInit()
|
||||
{
|
||||
$('.view-qrcode-init').each(function()
|
||||
{
|
||||
var text = $(this).text();
|
||||
if(text !== '')
|
||||
{
|
||||
$(this).empty().qrcode({
|
||||
text: text,
|
||||
width: parseInt($(this).data('width') || 100),
|
||||
height: parseInt($(this).data('height') || 100)
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 公共数据操作
|
||||
$(function()
|
||||
@ -2933,6 +2957,9 @@ $(function()
|
||||
// 颜色选择器初始化
|
||||
ColorPickerInit();
|
||||
|
||||
// 二维码初始化
|
||||
ViewQrCodeInit();
|
||||
|
||||
// 表格字段数据排序
|
||||
$('.form-sort-container .sort-icon').on('click', function()
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -139,7 +139,7 @@ ul.progress li.current .title {
|
||||
float: left;
|
||||
}
|
||||
.order-base {
|
||||
border: 1px solid #ddd;
|
||||
border: 1px solid #f0f0f0;
|
||||
}
|
||||
.order-base .am-panel-default {
|
||||
border-color: #fff;
|
||||
@ -149,7 +149,7 @@ ul.progress li.current .title {
|
||||
margin: 0;
|
||||
}
|
||||
.order-base .base-left {
|
||||
border-right: 1px solid #ddd;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
}
|
||||
.order-base .base-right {
|
||||
padding-top: 0;
|
||||
@ -157,7 +157,7 @@ ul.progress li.current .title {
|
||||
}
|
||||
@media only screen and (max-width: 641px) {
|
||||
.order-base .base-right {
|
||||
border: 1px solid #ddd;
|
||||
border: 1px solid #f0f0f0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user