细节优化
parent
f26d24cf11
commit
98aa293e95
|
|
@ -11,6 +11,7 @@
|
|||
namespace app\admin\controller;
|
||||
|
||||
use think\facade\Hook;
|
||||
use app\service\BaseService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\RegionService;
|
||||
use app\service\BrandService;
|
||||
|
|
@ -173,11 +174,11 @@ class Goods extends Common
|
|||
$data = $ret['data'][0];
|
||||
|
||||
// 获取商品编辑规格
|
||||
$specifications = GoodsService::GoodsEditSpecifications($ret['data'][0]['id']);
|
||||
$specifications = GoodsService::GoodsEditSpecifications($data['id']);
|
||||
$this->assign('specifications', $specifications);
|
||||
|
||||
// 获取商品编辑参数
|
||||
$parameters = GoodsService::GoodsEditParameters($ret['data'][0]['id']);
|
||||
$parameters = GoodsService::GoodsEditParameters($data['id']);
|
||||
$this->assign('parameters', $parameters);
|
||||
}
|
||||
|
||||
|
|
@ -197,7 +198,7 @@ class Goods extends Common
|
|||
// 站点类型
|
||||
$this->assign('common_site_type_list', lang('common_site_type_list'));
|
||||
// 当前系统设置的站点类型
|
||||
$this->assign('common_site_type', MyC('common_site_type', 0, true));
|
||||
$this->assign('common_site_type', BaseService::SiteTypeValue());
|
||||
|
||||
// 商品参数类型
|
||||
$this->assign('common_goods_parameters_type_list', lang('common_goods_parameters_type_list'));
|
||||
|
|
|
|||
|
|
@ -50,11 +50,8 @@ class GoodsCategory extends Common
|
|||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 是否启用
|
||||
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
|
||||
|
||||
// 是否
|
||||
$this->assign('common_is_text_list', lang('common_is_text_list'));
|
||||
// 静态数据
|
||||
$this->assign('common_is_text_list', lang('common_is_text_list'));
|
||||
|
||||
// 商品分类
|
||||
$this->assign('goods_category_list', GoodsService::GoodsCategoryAll());
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@
|
|||
<span>plugins_view_admin_goods_save</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_view_admin_goods_save_data) and is_array($plugins_view_admin_goods_save_data)}}
|
||||
{{if !empty($plugins_view_admin_goods_save_data) and is_array($plugins_view_admin_goods_save_data) and !empty(array_filter($plugins_view_admin_goods_save_data))}}
|
||||
{{foreach $plugins_view_admin_goods_save_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat'])}}
|
||||
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat']) and $data['address_data']['lng'] neq 0 and $data['address_data']['lat'] neq 0}}
|
||||
<div class="am-margin-top-xs">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
|
||||
</div>
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
<span>{{$data.address_data.county_name}}</span>
|
||||
<span>{{$data.address_data.address}}</span>
|
||||
</p>
|
||||
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat'])}}
|
||||
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat']) and $data['address_data']['lng'] neq 0 and $data['address_data']['lat'] neq 0}}
|
||||
<div class="am-margin-top-xs">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($module_data['address_data']['lng']) and !empty($module_data['address_data']['lat'])}}
|
||||
{{if !empty($module_data['address_data']['lng']) and !empty($module_data['address_data']['lat']) and $module_data['address_data']['lng'] neq 0 and $module_data['address_data']['lat'] neq 0}}
|
||||
<div class="am-margin-top-xs">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$module_data.address_data.lng}}" data-lat="{{$module_data.address_data.lat}}"> 查看位置</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,35 @@
|
|||
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/site/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/site/index', ['nav_type'=>$nav_type, 'view_type'=>$view_type])}}" enctype="multipart/form-data">
|
||||
<!-- 是否预约模式 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_order_is_booking.name}}<span class="am-form-group-label-tips">{{$data.common_order_is_booking.describe}}</span></label>
|
||||
<select name="{{$data.common_order_is_booking.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_order_is_booking.error_tips}}" required>
|
||||
{{foreach $common_is_text_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_order_is_booking']['value']) and $data['common_order_is_booking']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 库存 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_is_deduction_inventory.name}}<span class="am-form-group-label-tips">{{$data.common_is_deduction_inventory.describe}}</span></label>
|
||||
<select name="{{$data.common_is_deduction_inventory.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_is_deduction_inventory.error_tips}}" required>
|
||||
{{foreach $common_is_text_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_is_deduction_inventory']['value']) and $data['common_is_deduction_inventory']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_deduction_inventory_rules.name}}<span class="am-form-group-label-tips">{{$data.common_deduction_inventory_rules.describe}}</span></label>
|
||||
<select name="{{$data.common_deduction_inventory_rules.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_deduction_inventory_rules.error_tips}}" required>
|
||||
{{foreach $common_deduction_inventory_rules_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_deduction_inventory_rules']['value']) and $data['common_deduction_inventory_rules']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 订单批量支付 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_is_enable_order_bulk_pay.name}}<span class="am-form-group-label-tips">{{$data.home_is_enable_order_bulk_pay.describe}}</span></label>
|
||||
<select name="{{$data.home_is_enable_order_bulk_pay.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_is_enable_order_bulk_pay.error_tips}}" required>
|
||||
|
|
|
|||
|
|
@ -35,6 +35,14 @@
|
|||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_search_is_keywords_where_and.name}}<span class="am-form-group-label-tips">{{$data.home_search_is_keywords_where_and.describe}}</span></label>
|
||||
<select name="{{$data.home_search_is_keywords_where_and.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.home_search_is_keywords_where_and.error_tips}}" required>
|
||||
{{foreach $common_is_text_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['home_search_is_keywords_where_and']['value']) and $data['home_search_is_keywords_where_and']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_search_is_brand.name}}<span class="am-form-group-label-tips">{{$data.home_search_is_brand.describe}}</span></label>
|
||||
|
|
|
|||
|
|
@ -33,34 +33,6 @@
|
|||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 是否预约模式 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_order_is_booking.name}}<span class="am-form-group-label-tips">{{$data.common_order_is_booking.describe}}</span></label>
|
||||
<select name="{{$data.common_order_is_booking.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_order_is_booking.error_tips}}" required>
|
||||
{{foreach $common_is_text_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_order_is_booking']['value']) and $data['common_order_is_booking']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 库存 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_is_deduction_inventory.name}}<span class="am-form-group-label-tips">{{$data.common_is_deduction_inventory.describe}}</span></label>
|
||||
<select name="{{$data.common_is_deduction_inventory.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_is_deduction_inventory.error_tips}}" required>
|
||||
{{foreach $common_is_text_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_is_deduction_inventory']['value']) and $data['common_is_deduction_inventory']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.common_deduction_inventory_rules.name}}<span class="am-form-group-label-tips">{{$data.common_deduction_inventory_rules.describe}}</span></label>
|
||||
<select name="{{$data.common_deduction_inventory_rules.only_tag}}" class="am-radius chosen-select" data-validation-message="{{$data.common_deduction_inventory_rules.error_tips}}" required>
|
||||
{{foreach $common_deduction_inventory_rules_list as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['common_deduction_inventory_rules']['value']) and $data['common_deduction_inventory_rules']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
{{if !empty($module_data['lat'])}}
|
||||
<p class="am-margin-top-xs"><span>纬度:</span>{{$module_data.lat}}</p>
|
||||
{{/if}}
|
||||
{{if !empty($module_data['lng']) and !empty($module_data['lat'])}}
|
||||
{{if !empty($module_data['lng']) and !empty($module_data['lat']) and $module_data['lng'] neq 0 and $module_data['lat'] neq 0}}
|
||||
<div class="am-margin-top-xs">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$module_data.lng}}" data-lat="{{$module_data.lat}}"> 查看位置</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -66,33 +66,37 @@
|
|||
<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>
|
||||
<div class="am-form-group plug-file-upload-view">
|
||||
<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">
|
||||
<li>
|
||||
{{if !empty($data['idcard_front_old'])}}
|
||||
<input type="text" name="idcard_front" value="{{$data.idcard_front_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_front'])}}{{$attachment_host}}/static/common/images/default-idcard-front.jpg{{else /}}{{$data.idcard_front}}{{/if}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_front">+上传人像面图片</div>
|
||||
</div>
|
||||
<div class="am-fl am-margin-left-lg">
|
||||
<ul class="plug-file-upload-view images-idcard_back" data-form-name="idcard_back" data-max-number="1" data-dialog-type="images">
|
||||
<li>
|
||||
{{if !empty($data['idcard_back_old'])}}
|
||||
<input type="text" name="idcard_back" value="{{$data.idcard_back_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_back'])}}{{$attachment_host}}/static/common/images/default-idcard-back.jpg{{else /}}{{$data.idcard_back}}{{/if}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_back">+上传国微面图片</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>
|
||||
<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">
|
||||
<li>
|
||||
{{if !empty($data['idcard_front_old'])}}
|
||||
<input type="text" name="idcard_front" value="{{$data.idcard_front_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_front'])}}{{$attachment_host}}/static/common/images/default-idcard-front.jpg{{else /}}{{$data.idcard_front}}{{/if}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_front">+上传人像面图片</div>
|
||||
</div>
|
||||
<div class="am-fl am-margin-left-lg">
|
||||
<ul class="plug-file-upload-view images-idcard_back" data-form-name="idcard_back" data-max-number="1" data-dialog-type="images">
|
||||
<li>
|
||||
{{if !empty($data['idcard_back_old'])}}
|
||||
<input type="text" name="idcard_back" value="{{$data.idcard_back_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_back'])}}{{$attachment_host}}/static/common/images/default-idcard-back.jpg{{else /}}{{$data.idcard_back}}{{/if}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_back">+上传国微面图片</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ function ArrayKeys($data)
|
|||
*/
|
||||
function GoodsSalesModelType($site_type)
|
||||
{
|
||||
return ($site_type == -1) ? MyC('common_site_type', 0, true) : $site_type;
|
||||
return ($site_type == -1) ? \app\service\BaseService::SiteTypeValue() : $site_type;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -380,7 +380,7 @@ function IsGoodsSiteTypeConsistent($site_type)
|
|||
}
|
||||
|
||||
// 系统站点类型
|
||||
$common_site_type = MyC('common_site_type', 0, true);
|
||||
$common_site_type = \app\service\BaseService::SiteTypeValue();
|
||||
|
||||
// 是否一致
|
||||
if($common_site_type == $site_type)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
namespace app\index\controller;
|
||||
|
||||
use think\facade\Hook;
|
||||
use app\service\BaseService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\UserService;
|
||||
use app\service\UserAddressService;
|
||||
|
|
@ -58,7 +59,7 @@ class Buy extends Common
|
|||
return redirect(MyUrl('index/buy/index'));
|
||||
} else {
|
||||
// 站点类型,是否开启了展示型
|
||||
if(MyC('common_site_type', 0, true) == 1)
|
||||
if(BaseService::SiteTypeValue() == 1)
|
||||
{
|
||||
$this->assign('msg', '展示型不允许提交订单');
|
||||
return $this->fetch('public/tips_error');
|
||||
|
|
@ -101,11 +102,6 @@ class Buy extends Common
|
|||
{
|
||||
unset($params['address_id']);
|
||||
}
|
||||
|
||||
// 页面数据
|
||||
$this->assign('base', $buy_base);
|
||||
$this->assign('buy_goods', $buy_goods);
|
||||
$this->assign('params', $params);
|
||||
|
||||
// 加载百度地图api
|
||||
$this->assign('is_load_baidu_map_api', 1);
|
||||
|
|
@ -116,6 +112,10 @@ class Buy extends Common
|
|||
// 浏览器名称
|
||||
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('订单确认', 1));
|
||||
|
||||
// 页面数据
|
||||
$this->assign('base', $buy_base);
|
||||
$this->assign('buy_goods', $buy_goods);
|
||||
$this->assign('params', $params);
|
||||
return $this->fetch();
|
||||
} else {
|
||||
$this->assign('msg', isset($ret['msg']) ? $ret['msg'] : '参数错误');
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use think\Controller;
|
|||
use think\facade\Hook;
|
||||
use app\module\FormHandleModule;
|
||||
use app\service\SystemService;
|
||||
use app\service\BaseService;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\NavigationService;
|
||||
|
|
@ -299,7 +300,7 @@ class Common extends Controller
|
|||
$this->assign('currency_symbol', ResourcesService::CurrencyDataSymbol());
|
||||
|
||||
// 站点类型
|
||||
$this->assign('common_site_type', MyC('common_site_type', 0, true));
|
||||
$this->assign('common_site_type', BaseService::SiteTypeValue());
|
||||
|
||||
// 预约模式
|
||||
$this->assign('common_order_is_booking', MyC('common_order_is_booking', 0, true));
|
||||
|
|
@ -404,6 +405,9 @@ class Common extends Controller
|
|||
$this->assign('home_site_security_record_name', MyC('home_site_security_record_name'));
|
||||
$this->assign('home_site_security_record_url', MyC('home_site_security_record_url'));
|
||||
|
||||
// 默认不加载放大镜
|
||||
$this->assign('is_load_imagezoom', 0);
|
||||
|
||||
// 默认不加载百度地图api
|
||||
$this->assign('is_load_baidu_map_api', 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -143,6 +143,9 @@ class Goods extends Common
|
|||
// 是否商品详情页展示相册
|
||||
$this->assign('common_is_goods_detail_show_photo', MyC('common_is_goods_detail_show_photo', 0, true));
|
||||
|
||||
// 加载放大镜
|
||||
$this->assign('is_load_imagezoom', 1);
|
||||
|
||||
return $this->fetch();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
{{if $common_site_type eq 4}}
|
||||
<div data-am-widget="tabs" class="am-tabs am-tabs-d2 buy-header-nav">
|
||||
<ul class="am-tabs-nav am-cf">
|
||||
<li {{if !isset($params['site_model']) or (isset($params['site_model']) and $params.site_model eq 0)}}class="am-active"{{/if}}><a href="javascript:;" data-value="0">快递邮寄</a></li>
|
||||
<li {{if isset($params['site_model']) and $params.site_model eq 2}}class="am-active"{{/if}}><a href="javascript:;" data-value="2">自提点取货</a></li>
|
||||
<li {{if isset($base['site_model']) and $base['site_model'] eq 0}}class="am-active"{{/if}}><a href="javascript:;" data-value="0">快递邮寄</a></li>
|
||||
<li {{if isset($base['site_model']) and $base['site_model'] eq 2}}class="am-active"{{/if}}><a href="javascript:;" data-value="2">自提点取货</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 销售型 - 用户地址 -->
|
||||
{{if $common_site_type eq 0 or ($common_site_type eq 4 and (!isset($params['site_model']) or isset($params['site_model']) and $params.site_model eq 0))}}
|
||||
{{if isset($base['site_model']) and $base['site_model'] eq 0}}
|
||||
<div class="address user-address-container">
|
||||
<div class="control">
|
||||
<h3>
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
{{/if}}
|
||||
|
||||
<!-- 自提点 - 自提地址 -->
|
||||
{{if $common_site_type eq 2 or ($common_site_type eq 4 and isset($params['site_model']) and $params.site_model eq 2)}}
|
||||
{{if isset($base['site_model']) and $base['site_model'] eq 2}}
|
||||
<div class="address extraction-address-container">
|
||||
<div class="control">
|
||||
<h3>确认自提点地址</h3>
|
||||
|
|
@ -648,7 +648,7 @@
|
|||
<input type="hidden" name="address_id" value="{{if isset($base['address']) and isset($base['address']['id'])}}{{$base.address.id}}{{else /}}{{if isset($params['address_id'])}}{{$params.address_id}}{{else /}}-1{{/if}}{{/if}}" />
|
||||
<input type="hidden" name="payment_id" value="{{if isset($params['payment_id'])}}{{$params.payment_id}}{{else /}}0{{/if}}" />
|
||||
<input type="hidden" name="user_note" value="" />
|
||||
<input type="hidden" name="site_model" value="{{if isset($params['site_model'])}}{{$params.site_model}}{{else /}}0{{/if}}" />
|
||||
<input type="hidden" name="site_model" value="{{if isset($base['site_model'])}}{{$base.site_model}}{{else /}}0{{/if}}" />
|
||||
<!-- 订单确认页面提交订单表单内部钩子-开始 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
<!-- 是否启用 开始 -->
|
||||
<div class="am-form-group">
|
||||
<label>{{:L('common_view_enable_title')}}</label>
|
||||
<div>
|
||||
<foreach name="common_is_enable_list" item="v">
|
||||
<label class="am-radio-inline am-margin-right-sm">
|
||||
<input type="radio" name="is_enable" value="{{$v.id}}" <if condition="isset($data['is_enable']) and $data['is_enable'] eq $v['id']">checked="checked"<else /><if condition="!isset($data['is_enable']) and isset($v['checked']) and $v['checked'] eq true">checked="checked"</if></if> data-am-ucheck /> {{$v.name}}
|
||||
</label>
|
||||
</foreach>
|
||||
</div>
|
||||
<label>是否启用</label>
|
||||
<div>
|
||||
{{foreach :lang('common_is_enable_list') as $v}}
|
||||
<label class="am-radio-inline am-margin-right-sm">
|
||||
<input type="radio" name="is_enable" value="{{$v.id}}" {{if isset($data['is_enable']) and $data['is_enable'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_enable']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
|
||||
</label>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
<!-- 是否启用 结束 -->
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<div class="am-form-group">
|
||||
<label>SEO标题<span class="am-form-group-label-tips">一般不超过80个字符</span></label>
|
||||
<input type="text" name="seo_title" placeholder="SEO标题" maxlength="100" data-validation-message="SEO标题格式 最多80个字符" class="am-radius" {{if !empty($data['seo_title'])}} value="{{$data.seo_title}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>SEO关键字<span class="am-form-group-label-tips">一般不超过100个字符,多个关键字以半圆角逗号 [ , ] 隔开</span></label>
|
||||
<input type="text" name="seo_keywords" placeholder="SEO关键字" maxlength="130" data-validation-message="SEO关键字格式 最多130个字符" class="am-radius" {{if !empty($data['seo_keywords'])}} value="{{$data.seo_keywords}}"{{/if}} />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>SEO描述<span class="am-form-group-label-tips">一般不超过200个字符</span></label>
|
||||
<textarea rows="4" name="seo_desc" maxlength="230" class="am-radius" placeholder="SEO描述" data-validation-message="SEO描述格式 最多230个字符">{{if !empty($data['seo_desc'])}}{{$data.seo_desc}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
|
@ -28,7 +28,9 @@
|
|||
<script type='text/javascript' src="{{$public_host}}static/common/lib/assets/js/amazeui.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
|
||||
<!-- 图片放大镜 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/imagezoom/jquery.imagezoom.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
{{if isset($is_load_imagezoom) and $is_load_imagezoom eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/imagezoom/jquery.imagezoom.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- echarts 图表 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/echarts.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
<div class="am-margin-top-lg am-text-center">
|
||||
<img src="{{$attachment_host}}/static/common/images/loading.gif" />
|
||||
<p>处理中...</p>
|
||||
</div>
|
||||
|
|
@ -108,6 +108,7 @@
|
|||
{{/if}}
|
||||
|
||||
<div class="am-padding-sm am-nbfc">
|
||||
<a href="{{:MyUrl('index/user/reginfo')}}" target="_blank" class="am-fl">免费注册</a>
|
||||
<a href="{{:MyUrl('index/user/forgetpwdinfo')}}" target="_blank" class="am-fr">忘记密码?</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -24,14 +24,14 @@
|
|||
<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}} />
|
||||
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" {{if !empty($data['address'])}} value="{{$data.address}}"{{/if}} required />
|
||||
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式1~80个字符之间" class="am-radius" {{if !empty($data['address'])}} value="{{$data.address}}"{{/if}} required />
|
||||
<span class="am-input-group-btn">
|
||||
<button type="button" class="am-btn am-btn-default am-radius" id="map-location-submit"><span class="am-icon-map-marker"></span> 定位</button>
|
||||
</span>
|
||||
</div>
|
||||
<div id="map" data-level="17" class="am-margin-top-xs"></div>
|
||||
{{else /}}
|
||||
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" {{if !empty($data['address'])}} value="{{$data.address}}"{{/if}} required />
|
||||
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式1~80个字符之间" class="am-radius" {{if !empty($data['address'])}} value="{{$data.address}}"{{/if}} required />
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<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>
|
||||
<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">
|
||||
|
|
|
|||
|
|
@ -335,8 +335,11 @@ php;
|
|||
// sql文件
|
||||
$sql = file_get_contents(ROOT.'config/shopxo.sql');
|
||||
|
||||
//替换表前缀
|
||||
$sql = str_replace("`s_", " `{$params['DB_PREFIX']}", $sql);
|
||||
// 替换表前缀
|
||||
if($params['DB_PREFIX'] != 'sxo_')
|
||||
{
|
||||
$sql = str_replace("`sxo_", " `{$params['DB_PREFIX']}", $sql);
|
||||
}
|
||||
|
||||
// 编码替换,utf8mb4则做替换操作
|
||||
$charset = $this->charset_type_list[$params['DB_CHARSET']];
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
<div class="am-form-group">
|
||||
<label class="am-u-sm-2 am-form-label">数据表前缀</label>
|
||||
<div class="am-u-sm-10">
|
||||
<input type="text" name="DB_PREFIX" placeholder="数据表前缀" value="s_" class="am-radius am-input-sm" data-validation-message="请填写数据表前缀" required />
|
||||
<input type="text" name="DB_PREFIX" placeholder="数据表前缀" value="sxo_" class="am-radius am-input-sm" data-validation-message="请填写数据表前缀" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class BaseService
|
|||
// 配置信息
|
||||
$config = [
|
||||
// 基础
|
||||
'common_site_type' => (int) MyC('common_site_type', 0, true),
|
||||
'common_site_type' => self::SiteTypeValue(),
|
||||
'common_shop_notice' => MyC('common_shop_notice', null, true),
|
||||
'common_app_is_enable_search' => (int) MyC('common_app_is_enable_search', 1),
|
||||
'common_app_is_enable_answer' => (int) MyC('common_app_is_enable_answer', 1),
|
||||
|
|
@ -134,7 +134,7 @@ class BaseService
|
|||
$controller_name = strtolower(request()->controller());
|
||||
$action_name = strtolower(request()->action());
|
||||
|
||||
// 接口返回信息钩子
|
||||
// 钩子
|
||||
$hook_name = 'plugins_service_base_data_return_'.$module_name.'_'.$controller_name.'_'.$action_name;
|
||||
Hook::listen($hook_name, [
|
||||
'hook_name' => $hook_name,
|
||||
|
|
@ -145,5 +145,29 @@ class BaseService
|
|||
|
||||
return DataReturn('success', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 站点类型
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-04-04
|
||||
* @desc description
|
||||
*/
|
||||
public static function SiteTypeValue()
|
||||
{
|
||||
// 当前站点类型、默认销售型(0销售型, 1展示型, 2自提点, 3虚拟销售, 4销售+自提)
|
||||
$value = (int) MyC('common_site_type', 0, true);
|
||||
|
||||
// 钩子
|
||||
$hook_name = 'plugins_service_base_site_type_value';
|
||||
Hook::listen($hook_name, [
|
||||
'hook_name' => $hook_name,
|
||||
'is_backend' => true,
|
||||
'value' => &$value,
|
||||
]);
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -12,6 +12,7 @@ namespace app\service;
|
|||
|
||||
use think\Db;
|
||||
use think\facade\Hook;
|
||||
use app\service\BaseService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\UserService;
|
||||
use app\service\UserAddressService;
|
||||
|
|
@ -697,7 +698,7 @@ class BuyService
|
|||
|
||||
// 站点模式 0销售, 2自提, 4销售+自提, 则其它正常模式
|
||||
$user_site_model = isset($params['site_model']) ? intval($params['site_model']) : 0;
|
||||
$common_site_type = MyC('common_site_type', 0, true);
|
||||
$common_site_type = BaseService::SiteTypeValue();
|
||||
$site_model = ($common_site_type == 4) ? $user_site_model : $common_site_type;
|
||||
|
||||
// 商品销售模式
|
||||
|
|
@ -951,7 +952,7 @@ class BuyService
|
|||
public static function OrderInsert($params = [])
|
||||
{
|
||||
// 站点类型,是否开启了展示型
|
||||
$common_site_type = MyC('common_site_type', 0, true);
|
||||
$common_site_type = BaseService::SiteTypeValue();
|
||||
if($common_site_type == 1)
|
||||
{
|
||||
return DataReturn('展示型不允许提交订单', -1);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ namespace app\service;
|
|||
|
||||
use think\Db;
|
||||
use think\facade\Hook;
|
||||
use app\service\BaseService;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\BrandService;
|
||||
use app\service\RegionService;
|
||||
|
|
@ -2625,6 +2626,7 @@ class GoodsService
|
|||
'title' => '点此按钮到下一步确认购买信息',
|
||||
'name' => (MyC('common_order_is_booking', 0, true) == 1) ? '立即预约' : '立即购买',
|
||||
'class' => $class_name,
|
||||
'icon' => '',
|
||||
];
|
||||
|
||||
// 商品类型是否和当前站点类型一致
|
||||
|
|
@ -2638,6 +2640,7 @@ class GoodsService
|
|||
'title' => '加入购物车',
|
||||
'name' => '加入购物车',
|
||||
'class' => $class_name,
|
||||
'icon' => 'am-icon-opencart',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -2689,7 +2692,7 @@ class GoodsService
|
|||
$path = 'static'.DS.'upload'.DS.'images'.DS.'goods_qrcode'.DS.APPLICATION_CLIENT_TYPE.DS.date('Y', $add_time).DS.date('m', $add_time).DS.date('d', $add_time).DS;
|
||||
|
||||
// 名称增加站点模式(站点模式不一样商品url地址也会不一样)
|
||||
$filename = $goods_id.MyC('common_site_type', 0, true).'.png';
|
||||
$filename = $goods_id.BaseService::SiteTypeValue().'.png';
|
||||
|
||||
// 二维码处理参数
|
||||
$params = [
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ class NavigationService
|
|||
]);
|
||||
|
||||
// 缓存
|
||||
cache(config('shopxo.cache_common_home_nav_'.$nav_type.'_key'), $data);
|
||||
cache(config('shopxo.cache_common_home_nav_'.$nav_type.'_key'), $data, 60);
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
|
@ -845,7 +845,7 @@ class NavigationService
|
|||
'is_system' => 1,
|
||||
],
|
||||
[
|
||||
'name' => '我的收藏',
|
||||
'name' => '商品收藏',
|
||||
'url' => MyUrl('index/usergoodsfavor/index'),
|
||||
'contains' => ['indexusergoodsfavorindex'],
|
||||
'is_show' => 1,
|
||||
|
|
|
|||
|
|
@ -1295,7 +1295,7 @@ class OrderService
|
|||
// 商品信息
|
||||
$vs['images'] = ResourcesService::AttachmentPathViewHandle($vs['images']);
|
||||
$vs['goods_url'] = MyUrl('index/goods/index', ['id'=>$vs['goods_id']]);
|
||||
$vs['total_price'] = $vs['buy_number']*$vs['price'];
|
||||
$vs['total_price'] = PriceNumberFormat($vs['buy_number']*$vs['price']);
|
||||
|
||||
// 规格
|
||||
if(!empty($vs['spec']))
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ class SearchService
|
|||
|
||||
// 获取商品总数
|
||||
$result['total'] = (int) Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->where($where_base)->where(function($query) use($where_keywords) {
|
||||
$query->whereOr($where_keywords);
|
||||
self::SearchKeywordsWhereJoinType($query, $where_keywords);
|
||||
})->where(function($query) use($where_screening_price) {
|
||||
$query->whereOr($where_screening_price);
|
||||
})->count('DISTINCT g.id');
|
||||
|
|
@ -91,7 +91,7 @@ class SearchService
|
|||
{
|
||||
// 查询数据
|
||||
$data = Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->field($field)->where($where_base)->where(function($query) use($where_keywords) {
|
||||
$query->whereOr($where_keywords);
|
||||
self::SearchKeywordsWhereJoinType($query, $where_keywords);
|
||||
})->where(function($query) use($where_screening_price) {
|
||||
$query->whereOr($where_screening_price);
|
||||
})->group('g.id')->order($order_by)->limit($m, $n)->select();
|
||||
|
|
@ -106,6 +106,31 @@ class SearchService
|
|||
return DataReturn('处理成功', 0, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索关系类型
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-04-02
|
||||
* @desc description
|
||||
* @param [object] $query [查询对象]
|
||||
* @param [array] $where_keywords [搜索关键字]
|
||||
*/
|
||||
public static function SearchKeywordsWhereJoinType($query, $where_keywords)
|
||||
{
|
||||
// 搜索关键字默认或的关系
|
||||
$join = 'whereOr';
|
||||
|
||||
// 是否开启并且关系
|
||||
if(MyC('home_search_is_keywords_where_and') == 1)
|
||||
{
|
||||
$join = 'where';
|
||||
}
|
||||
|
||||
// 条件设置
|
||||
$query->$join($where_keywords);
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索条件处理
|
||||
* @author Devil
|
||||
|
|
@ -372,7 +397,7 @@ class SearchService
|
|||
if(!empty($where_base) || !empty($where_keywords) || !empty($where_screening_price))
|
||||
{
|
||||
$ids = Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->where($where_base)->where(function($query) use($where_keywords) {
|
||||
$query->whereOr($where_keywords);
|
||||
self::SearchKeywordsWhereJoinType($query, $where_keywords);
|
||||
})->where(function($query) use($where_screening_price) {
|
||||
$query->whereOr($where_screening_price);
|
||||
})->group('g.brand_id')->column('g.brand_id');
|
||||
|
|
@ -459,7 +484,7 @@ class SearchService
|
|||
|
||||
// 一维数组、参数值去重
|
||||
$data = Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->join(['__GOODS_PARAMS__'=>'gp'], 'g.id=gp.goods_id')->where($where_base)->where(function($query) use($where_keywords) {
|
||||
$query->whereOr($where_keywords);
|
||||
self::SearchKeywordsWhereJoinType($query, $where_keywords);
|
||||
})->where(function($query) use($where_screening_price) {
|
||||
$query->whereOr($where_screening_price);
|
||||
})->group('gp.value')->field('gp.value')->select();
|
||||
|
|
@ -489,7 +514,7 @@ class SearchService
|
|||
|
||||
// 一维数组、参数值去重
|
||||
$data = Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->join(['__GOODS_SPEC_VALUE__'=>'gsv'], 'g.id=gsv.goods_id')->where($where_base)->where(function($query) use($where_keywords) {
|
||||
$query->whereOr($where_keywords);
|
||||
self::SearchKeywordsWhereJoinType($query, $where_keywords);
|
||||
})->where(function($query) use($where_screening_price) {
|
||||
$query->whereOr($where_screening_price);
|
||||
})->group('gsv.value')->field('gsv.value')->select();
|
||||
|
|
|
|||
|
|
@ -85,8 +85,8 @@ class StatisticalService
|
|||
self::$seven_time_end = time();
|
||||
|
||||
// 上月
|
||||
self::$last_month_time_start = strtotime(date('Y-m-01 00:00:00', strtotime('-1 month')));
|
||||
self::$last_month_time_end = strtotime(date('Y-m-t 23:59:59', strtotime('-1 month')));
|
||||
self::$last_month_time_start = strtotime(date('Y-m-01 00:00:00', strtotime('-1 month', strtotime(date('Y-m', time())))));
|
||||
self::$last_month_time_end = strtotime(date('Y-m-t 23:59:59', strtotime('-1 month', strtotime(date('Y-m', time())))));
|
||||
|
||||
// 当月
|
||||
self::$same_month_time_start = strtotime(date('Y-m-01 00:00:00'));
|
||||
|
|
|
|||
|
|
@ -104,6 +104,10 @@ class UserAddressService
|
|||
{
|
||||
if(!empty($data))
|
||||
{
|
||||
// 地区
|
||||
$region_ids = array_unique(array_merge(array_column($data, 'province'), array_column($data, 'city'), array_column($data, 'county')));
|
||||
$region = empty($region_ids) ? [] : RegionService::RegionName($region_ids);
|
||||
|
||||
$users = [];
|
||||
foreach($data as &$v)
|
||||
{
|
||||
|
|
@ -118,9 +122,14 @@ class UserAddressService
|
|||
}
|
||||
|
||||
// 地区
|
||||
$v['province_name'] = RegionService::RegionName($v['province']);
|
||||
$v['city_name'] = RegionService::RegionName($v['city']);
|
||||
$v['county_name'] = RegionService::RegionName($v['county']);
|
||||
$v['province_name'] = (!empty($v['province']) && !empty($region) && array_key_exists($v['province'], $region)) ? $region[$v['province']] : '';
|
||||
$v['city_name'] = (!empty($v['city']) && !empty($region) && array_key_exists($v['city'], $region)) ? $region[$v['city']] : '';
|
||||
$v['county_name'] = (!empty($v['county']) && !empty($region) && array_key_exists($v['county'], $region)) ? $region[$v['county']] : '';
|
||||
|
||||
// 地区
|
||||
$v['province_name'] = (!empty($v['province']) && array_key_exists($v['province'], $region)) ? $region[$v['province']] : '';
|
||||
$v['city_name'] = (!empty($v['city']) && array_key_exists($v['city'], $region)) ? $region[$v['city']] : '';
|
||||
$v['county_name'] = (!empty($v['county']) && array_key_exists($v['county'], $region)) ? $region[$v['county']] : '';
|
||||
|
||||
// 附件
|
||||
if(isset($v['idcard_front']))
|
||||
|
|
@ -347,7 +356,6 @@ class UserAddressService
|
|||
$is_default = isset($params['is_default']) ? intval($params['is_default']) : 0;
|
||||
$data = [
|
||||
'alias' => empty($params['alias']) ? '' : $params['alias'],
|
||||
'address' => $params['address'],
|
||||
'name' => $params['name'],
|
||||
'tel' => $params['tel'],
|
||||
'province' => intval($params['province']),
|
||||
|
|
|
|||
|
|
@ -32,169 +32,5 @@ return array (
|
|||
'log_write' =>
|
||||
array (
|
||||
),
|
||||
'plugins_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_navigation_header_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_goods_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_base' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_buy_group_goods_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_user_login_success_record' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_extends_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_admin_user_save' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_user_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_price_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_home_goods_inside_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_search_goods_inside_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_type' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_users_center_left_menu_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_header_navigation_top_right_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_user_index' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_user_detail' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_admin_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_js' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_warehouse_goods_inventory_deduct' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_warehouse_goods_inventory_rollback' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_warehouse_goods_inventory_sync' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_goods_field_status_update' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_goods_delete' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_goods_save_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_editor_path_type_admin_goods_saveinfo' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_right_content_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_base_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_base_buy_nav_min_inside_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_warehouse_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_system_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_buy_form_inside' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_buy_base_confirm_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_view_admin_order_list_operate' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_order_status_change_history_success_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_order_aftersale_audit_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
'plugins_service_goods_buy_nav_button_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\store\\Hook',
|
||||
),
|
||||
);
|
||||
?>
|
||||
1843
config/shopxo.sql
1843
config/shopxo.sql
File diff suppressed because one or more lines are too long
|
|
@ -654,12 +654,4 @@ table.am-table .am-btn-danger:hover {
|
|||
max-height: calc(100% - 50px);
|
||||
overflow-x: auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 表单带面板
|
||||
*/
|
||||
form .am-panel .am-form-group:last-child,
|
||||
form .am-panel .business-form-group:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
|
@ -1,6 +1,19 @@
|
|||
$(function()
|
||||
{
|
||||
// 支付操作
|
||||
// 混合列表选择
|
||||
$('.business-item ul li').on('click', function()
|
||||
{
|
||||
if($(this).hasClass('selected'))
|
||||
{
|
||||
$('form input[name='+$(this).parent().data('type')+'_id]').val(0);
|
||||
$(this).removeClass('selected');
|
||||
} else {
|
||||
$('form input[name='+$(this).parent().data('type')+'_id]').val($(this).data('value'));
|
||||
$(this).addClass('selected').siblings('li').removeClass('selected');
|
||||
}
|
||||
});
|
||||
|
||||
// 发货操作
|
||||
$('.submit-delivery').on('click', function()
|
||||
{
|
||||
$('form.delivery-form input[name=id]').val($(this).data('id'));
|
||||
|
|
@ -15,19 +28,6 @@ $(function()
|
|||
}
|
||||
});
|
||||
|
||||
// 混合列表选择
|
||||
$('.business-item ul li').on('click', function()
|
||||
{
|
||||
if($(this).hasClass('selected'))
|
||||
{
|
||||
$('form input[name='+$(this).parent().data('type')+'_id]').val(0);
|
||||
$(this).removeClass('selected');
|
||||
} else {
|
||||
$('form input[name='+$(this).parent().data('type')+'_id]').val($(this).data('value'));
|
||||
$(this).addClass('selected').siblings('li').removeClass('selected');
|
||||
}
|
||||
});
|
||||
|
||||
// 发货操作表单
|
||||
FromInit('form.form-validation-delivery');
|
||||
$('form.delivery-form button[type=submit]').on('click', function()
|
||||
|
|
|
|||
|
|
@ -807,4 +807,12 @@ button.colorpicker-submit img {
|
|||
#verify-img-value {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 表单带面板
|
||||
*/
|
||||
form .am-panel .am-form-group:last-child,
|
||||
form .am-panel .business-form-group:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
|
@ -813,8 +813,18 @@ function TreeFormSaveBackHandle(e)
|
|||
Tree(json.pid, $('#tree').data('node-url'), 1, 1, 1);
|
||||
} else {
|
||||
json['json'] = e.data;
|
||||
|
||||
// 拼接html数据
|
||||
var html = TreeItemHtmlHandle(json, 0, 1, 1);
|
||||
$('#tree table tbody').append(html);
|
||||
|
||||
// 首次则增加table标签容器
|
||||
if($('#tree table tbody').length > 0)
|
||||
{
|
||||
$('#tree table tbody').append(html);
|
||||
|
||||
} else {
|
||||
$('#tree').html('<table class="am-table am-table-striped am-table-hover"><tbody>'+html+'</tbody></table>');
|
||||
}
|
||||
// 刚刚创建的数据不支持新增操作
|
||||
// 因为级数据还不在父级选择节点数据中
|
||||
// 需要刷新页面重新加载数据
|
||||
|
|
@ -1672,7 +1682,7 @@ function TreeFormInit()
|
|||
$title.text($title.attr('data-add-title'));
|
||||
|
||||
// 填充数据
|
||||
var data = {"id":"", "pid":0, "name":"", "sort":0, "is_enable":1, "icon":""};
|
||||
var data = {"id":"", "pid":0, "name":"", "sort":0, "is_enable":1, "icon":"", "seo_title":"", "seo_keywords":"", "seo_desc":""};
|
||||
|
||||
// 额外处理数据
|
||||
data = FunSaveWinAdditional(data, 'init');
|
||||
|
|
|
|||
|
|
@ -895,6 +895,7 @@ img.common-user-icon {
|
|||
.user-offcanvas-bar:after {content:none;}
|
||||
.user-main { padding: 0 5px; }
|
||||
.user-content-body { padding: 0 0 5px 10px; }
|
||||
.user-offcanvas-bar ul.user-sidebar-list { padding-bottom: 1px; }
|
||||
}
|
||||
@media only screen and (min-width: 1025px) {
|
||||
.user-main { padding: 0; }
|
||||
|
|
@ -905,6 +906,7 @@ img.common-user-icon {
|
|||
.user-offcanvas-bar:after {background:#BABABA;}
|
||||
.user-sidebar-list a:hover,.user-sidebar-list a:active {-webkit-transition:background-color .3s ease;-moz-transition:background-color .3s ease;-ms-transition:background-color .3s ease;-o-transition:background-color .3s ease;transition:background-color .3s ease;background:#E4E4E4;}
|
||||
.user-content-body { padding: 0 5px 5px 5px; }
|
||||
.user-offcanvas-bar ul { margin-bottom: 0; }
|
||||
}
|
||||
.user-main { padding-top: 10px; }
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ input{font-size:12px;font-size:100%;outline:none;line-height:normal;color:#444;}
|
|||
/*详情*/
|
||||
.detail-content img { max-width: 100%; height: auto; }
|
||||
|
||||
@media only screen and (min-width:640px) {
|
||||
@media only screen and (min-width:641px) {
|
||||
.theme-span{height:0px;background:#fff ;}
|
||||
.theme-popover{box-shadow:0 0 10px #666;position:fixed;top:20%;left:calc(50% - 250px);width:500px;bottom:auto;border:solid 6px #d3d3d3;border-radius:3px;}
|
||||
.theme-poptit{display: none;}
|
||||
|
|
@ -254,7 +254,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
display: block;
|
||||
float: left;
|
||||
text-align: center;
|
||||
width: 98px;
|
||||
width: 120px;
|
||||
color: #FFF;
|
||||
border: 1px solid #d2364c;
|
||||
background-color: #d2364c;
|
||||
|
|
@ -270,13 +270,13 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
@media only screen and (min-width:640px) {
|
||||
@media only screen and (min-width:641px) {
|
||||
.buy-nav .buy-submit-container .buy-btn:not(:last-child) {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.buy-nav .buy-nav-opt {
|
||||
position: absolute;
|
||||
margin-left: 235px;
|
||||
margin-left: 285px;
|
||||
display: block;
|
||||
}
|
||||
.buy-nav .buy-nav-opt .nav-icon-home {
|
||||
|
|
@ -294,7 +294,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
}
|
||||
.buy-nav-opt-button-number-0,
|
||||
.buy-nav-opt-button-number-1 {
|
||||
margin-left: 120px !important;
|
||||
margin-left: 135px !important;
|
||||
}
|
||||
.goods-not-buy-tips {
|
||||
width: 85px;
|
||||
|
|
@ -307,7 +307,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
margin-top: 10px !important;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width:641px) {
|
||||
@media only screen and (max-width:640px) {
|
||||
.buy-nav .buy-submit-container,
|
||||
.goods-not-buy-tips {
|
||||
width: 60%;
|
||||
|
|
@ -362,7 +362,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
}
|
||||
@media only screen and (min-width: 1025px) {
|
||||
.buy-nav .buy-nav-opt {
|
||||
margin-left: 235px;
|
||||
margin-left: 280px;
|
||||
}
|
||||
.buy-nav .buy-nav-opt .nav-icon:not(:last-child) {
|
||||
margin-right: 15px;
|
||||
|
|
@ -392,7 +392,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
/*左侧商品-看了又看*/
|
||||
.browse { display: none; }
|
||||
|
||||
@media only screen and (min-width:640px) {
|
||||
@media only screen and (min-width:641px) {
|
||||
/*导航固定*/
|
||||
ul.am-tabs-nav.am-nav.am-nav-tabs {margin-right:10px ;margin-left: 10px;width: auto;}
|
||||
.scoll{float: left;width: calc(45% - 20px);}
|
||||
|
|
@ -572,7 +572,7 @@ flex: 1 1 0%;line-height: 16px;cursor: pointer;}
|
|||
.goods-plugins-view-panel-container p:not(:first-child) {
|
||||
border-top: 1px dashed #ffdbdf;
|
||||
}
|
||||
@media only screen and (max-width:641px) {
|
||||
@media only screen and (max-width:640px) {
|
||||
.goods-plugins-view-panel-container p {
|
||||
padding: 5px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,10 +100,10 @@ $(function()
|
|||
});
|
||||
|
||||
// 登录事件
|
||||
$('.login-event').on('click', function()
|
||||
$(document).on('click', '.login-event', function()
|
||||
{
|
||||
// 是否登录
|
||||
if(__user_id__ == 0)
|
||||
if((__user_id__ || 0) == 0)
|
||||
{
|
||||
ModalLoad(__modal_login_url__, '', 'common-login-modal');
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue