提交 c3e284f6 编写于 作者: D devil_gong

应用优化,新增营销应用

上级 fc137da5
......@@ -10,6 +10,7 @@
// +----------------------------------------------------------------------
namespace app\index\controller;
use think\facade\Hook;
use app\service\GoodsService;
use app\service\SeoService;
......@@ -69,6 +70,51 @@ class Goods extends Common
// 商品收藏总数
$ret['data'][0]['favor_count'] = GoodsService::GoodsFavorTotal(['goods_id'=>$id]);
// 商品页面基础信息顶部钩子
$this->assign('plugins_view_goods_detail_base_top_data', Hook::listen('plugins_view_goods_detail_base_top',
[
'hook_name' => 'plugins_view_goods_detail_base_top',
'is_backend' => false,
'goods_id' => $id,
'goods' => &$ret['data'][0],
]));
// 商品页面基础信息面板底部钩子
$this->assign('plugins_view_goods_detail_panel_bottom_data', Hook::listen('plugins_view_goods_detail_panel_bottom',
[
'hook_name' => 'plugins_view_goods_detail_panel_bottom',
'is_backend' => false,
'goods_id' => $id,
'goods' => &$ret['data'][0],
]));
// 商品页面tabs顶部钩子
$this->assign('plugins_view_goods_detail_tabs_top_data', Hook::listen('plugins_view_goods_detail_tabs_top',
[
'hook_name' => 'plugins_view_goods_detail_tabs_top',
'is_backend' => false,
'goods_id' => $id,
'goods' => &$ret['data'][0],
]));
// 商品页面tabs顶部钩子
$this->assign('plugins_view_goods_detail_tabs_bottom_data', Hook::listen('plugins_view_goods_detail_tabs_bottom',
[
'hook_name' => 'plugins_view_goods_detail_tabs_bottom',
'is_backend' => false,
'goods_id' => $id,
'goods' => &$ret['data'][0],
]));
// 商品页面左侧顶部钩子
$this->assign('plugins_view_goods_detail_left_top_data', Hook::listen('plugins_view_goods_detail_left_top',
[
'hook_name' => 'plugins_view_goods_detail_left_top',
'is_backend' => false,
'goods_id' => $id,
'goods' => &$ret['data'][0],
]));
// 商品数据
$this->assign('goods', $ret['data'][0]);
......
......@@ -80,18 +80,32 @@
<h1 class="detail-title" {{if !empty($goods.title_color)}}style="color:{{$goods.title_color}};"{{/if}}>{{$goods.title}}</h1>
</div>
<div class="tb-detail-list">
<!--价格-->
<!-- 商品页面基础信息顶部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_goods_detail_base_top</span>
</div>
{{/if}}
{{if !empty($plugins_view_goods_detail_base_top_data) and is_array($plugins_view_goods_detail_base_top_data)}}
{{foreach $plugins_view_goods_detail_base_top_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<!-- 基础面板 -->
<div class="tb-detail-price">
{{if isset($goods['original_price']) and $goods['original_price'] gt 0}}
{{if isset($goods['original_price']) and $goods['original_price'] gt 0 and !empty($goods['show_field_original_price_text'])}}
<div class="items price iteminfo_price">
<dt>原价</dt>
<dt>{{$goods.show_field_original_price_text|raw}}</dt>
<dd>
<b class="sys_item_mktprice">¥ {{$goods.original_price}}</b>
</dd>
</div>
{{/if}}
<div class="items price iteminfo_mktprice">
<dt>销售价</dt>
<dt>{{if empty($goods['show_field_price_text'])}}销售价{{else /}}{{$goods.show_field_price_text|raw}}{{/if}}</dt>
<dd>
<em>¥</em>
<b class="sys_item_price" data-original-price="{{$goods.price}}">{{$goods.price}}</b>
......@@ -101,17 +115,31 @@
<i class="am-icon-qrcode am-icon-sm"></i>
<img class="qrcode-images am-img-thumbnail" src="{{$qrcode_url}}" />
</div>
<!-- 商品页面基础信息面板底部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_goods_detail_panel_bottom</span>
</div>
{{/if}}
{{if !empty($plugins_view_goods_detail_panel_bottom_data) and is_array($plugins_view_goods_detail_panel_bottom_data)}}
{{foreach $plugins_view_goods_detail_panel_bottom_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
</div>
<!--销量-->
<ul class="tm-ind-panel">
<li class="tm-ind-item tm-ind-sellCount canClick">
<li class="tm-ind-item">
<div class="tm-indcon"><span class="tm-label">累计销量</span><span class="tm-count">{{$goods.sales_count}}</span></div>
</li>
<li class="tm-ind-item tm-ind-sumCount canClick">
<li class="tm-ind-item">
<div class="tm-indcon"><span class="tm-label">浏览次数</span><span class="tm-count">{{$goods.access_count}}</span></div>
</li>
<li class="tm-ind-item tm-ind-reviewCount canClick tm-line3">
<li class="tm-ind-item">
<div class="tm-indcon"><span class="tm-label">累计评价</span><span class="tm-count">{{$goods.comments_count}}</span></div>
</li>
</ul>
......@@ -237,9 +265,24 @@
</div>
</div>
<!-- 详情/推荐商品-->
<!-- 左侧-->
<div class="introduce am-container">
<div class="browse">
<!-- 商品页面左侧顶部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_goods_detail_left_top</span>
</div>
{{/if}}
{{if !empty($plugins_view_goods_detail_left_top_data) and is_array($plugins_view_goods_detail_left_top_data)}}
{{foreach $plugins_view_goods_detail_left_top_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<!-- 详情/推荐商品-->
<div class="mc">
<ul>
<div class="mt">
......@@ -263,7 +306,24 @@
</ul>
</div>
</div>
<!-- 右侧内容 -->
<div class="introduce-main">
<!-- 商品页面tabs顶部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_goods_detail_tabs_top</span>
</div>
{{/if}}
{{if !empty($plugins_view_goods_detail_tabs_top_data) and is_array($plugins_view_goods_detail_tabs_top_data)}}
{{foreach $plugins_view_goods_detail_tabs_top_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<!-- tab -->
<div class="am-tabs" data-am-tabs>
<ul class="am-avg-sm-2 am-tabs-nav am-nav am-nav-tabs" data-am-sticky="{animation: 'slide-top'}">
<li class="am-active">
......@@ -329,6 +389,20 @@
</div>
</div>
</div>
<!-- 商品页面tabs底部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
<div class="plugins-tag">
<span>plugins_view_goods_detail_tabs_bottom</span>
</div>
{{/if}}
{{if !empty($plugins_view_goods_detail_tabs_bottom_data) and is_array($plugins_view_goods_detail_tabs_bottom_data)}}
{{foreach $plugins_view_goods_detail_tabs_bottom_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
</div>
</div>
</div>
......
......@@ -133,14 +133,16 @@ class Admin extends Controller
public function sliderinfo($params = [])
{
// 数据
$data = [];
if(!empty($params['id']))
{
$data_params = array(
'where' => ['id'=>intval($params['id'])],
);
$ret = Service::SlideList($data_params);
$this->assign('data', empty($ret['data'][0]) ? [] : $ret['data'][0]);
$data = empty($ret['data'][0]) ? [] : $ret['data'][0];
}
$this->assign('data', $data);
return $this->fetch('../../../plugins/view/answers/admin/sliderinfo');
}
......
......@@ -37,7 +37,7 @@ class Hook extends Controller
if(is_array($params['header']))
{
// 获取应用数据
$ret = PluginsService::PluginsData('answers', ['images']);
$ret = PluginsService::PluginsData('answers', ['images', 'images_bottom']);
if($ret['code'] == 0 && !empty($ret['data']['application_name']))
{
$nav = [
......
......@@ -39,7 +39,7 @@ class Index extends Controller
public function index($params = [])
{
// 基础数据
$base = PluginsService::PluginsData('answers', ['images']);
$base = PluginsService::PluginsData('answers', ['images', 'images_bottom']);
$this->assign('plugins_answers_data', isset($base['data']) ? $base['data'] : []);
// 幻灯片
......@@ -93,7 +93,7 @@ class Index extends Controller
public function detail($params = [])
{
// 基础数据
$base = PluginsService::PluginsData('answers', ['images']);
$base = PluginsService::PluginsData('answers', ['images', 'images_bottom']);
$this->assign('plugins_answers_data', isset($base['data']) ? $base['data'] : []);
// 商品数据
......@@ -148,7 +148,7 @@ class Index extends Controller
return redirect(PluginsHomeUrl('answers', 'index', 'search', ['answers_keywords'=>$answers_keywords]));
} else {
// 基础数据
$base = PluginsService::PluginsData('answers', ['images']);
$base = PluginsService::PluginsData('answers', ['images', 'images_bottom']);
$this->assign('plugins_answers_data', isset($base['data']) ? $base['data'] : []);
// 商品数据
......
......@@ -87,6 +87,7 @@ class Service
[
'checked_type' => 'fun',
'key_name' => 'url',
'is_checked' => 1,
'checked_data' => 'CheckUrl',
'error_msg' => 'url格式有误',
],
......@@ -240,7 +241,7 @@ class Service
$field = 'g.id,g.title';
// 获取数据
return GoodsService::CategoryGoodsList(['where'=>$where, 'm'=>0, 'n'=>100, 'field'=>$field]);
return GoodsService::CategoryGoodsList(['where'=>$where, 'm'=>0, 'n'=>100, 'field'=>$field, 'is_admin_access'=>1]);
}
/**
......
......@@ -111,7 +111,7 @@ class Hook
$params['data']['extension_data'][] = [
'name' => $show_name,
'price' => $price,
'type' => 0,
'type' => 1,
'tips' => '+¥'.$price.'元',
];
......
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\newuserreduction;
use think\Controller;
use app\service\PluginsService;
/**
* 新用户立减 - 后台管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Admin extends Controller
{
/**
* 首页
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
$ret = PluginsService::PluginsData('newuserreduction');
if($ret['code'] == 0)
{
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/newuserreduction/admin/index');
} else {
return $ret['msg'];
}
}
/**
* 编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function saveinfo($params = [])
{
$ret = PluginsService::PluginsData('newuserreduction');
if($ret['code'] == 0)
{
// 是否
$is_whether_list = [
0 => array('id' => 0, 'name' => '否', 'checked' => true),
1 => array('id' => 1, 'name' => '是'),
];
$this->assign('is_whether_list', $is_whether_list);
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/newuserreduction/admin/saveinfo');
} else {
return $ret['msg'];
}
}
/**
* 数据保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function save($params = [])
{
return PluginsService::PluginsDataSave(['plugins'=>'newuserreduction', 'data'=>$params]);
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\newuserreduction;
use think\Db;
use app\service\PluginsService;
/**
* 新用户立减 - 钩子入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Hook
{
/**
* 应用响应入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-09T14:25:44+0800
* @param [array] $params [输入参数]
*/
public function run($params = [])
{
if(!empty($params['hook_name']))
{
switch($params['hook_name'])
{
// 立减计算
case 'plugins_service_buy_handle' :
$ret = $this->ReductionCalculate($params);
break;
default :
$ret = '';
}
return $ret;
}
}
/**
* 立减计算
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-03-21
* @desc description
* @param [array] $params [输入参数]
*/
public function ReductionCalculate($params = [])
{
$ret = PluginsService::PluginsData('newuserreduction');
if($ret['code'] == 0)
{
// 是否设置需满金额
if(isset($ret['data']['full_amount']) && $ret['data']['full_amount'] > 0 && $params['data']['base']['total_price'] < $ret['data']['full_amount'])
{
return DataReturn('无需处理', 0);
}
// 默认金额
$price = isset($ret['data']['price']) ? (float) $ret['data']['price'] : 0;
$unit = '元';
$price_show = $price;
if($price > 0 && $this->IsNewUser($params))
{
// 是否随机
if(isset($ret['data']['is_random']) && $ret['data']['is_random'] == 1)
{
// 随机金额需要提交步骤生效
if(!isset($params['params']['is_order_submit']) || $params['params']['is_order_submit'] != 1)
{
$price = 0;
$price_show = '随机减';
$unit = '';
} else {
$price = $this->RandomFloat(0, $price);
$price_show = $price;
}
}
// 扩展展示数据
$show_name = empty($ret['data']['show_name']) ? '新用户立减' : $ret['data']['show_name'];
$params['data']['extension_data'][] = [
'name' => $show_name,
'price' => $price,
'type' => 0,
'tips' => '-¥'.$price_show.$unit,
];
// 金额
$params['data']['base']['increase_price'] -= $price;
$params['data']['base']['actual_price'] -= $price;
}
return DataReturn('无需处理', 0);
} else {
return $ret['msg'];
}
}
/**
* 是否满足新用户条件
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-03-25
* @desc description
* @param [array] $params [输入参数]
*/
private function IsNewUser($params = [])
{
// 用户信息是否存在
if(empty($params['params']['user']))
{
return false;
}
// 获取用户订单
// 订单状态(0待确认, 1已确认/待支付, 2已支付/待发货, 3已发货/待收货, 4已完成, 5已取消, 6已关闭)
$where = [
['user_id', '=', intval($params['params']['user']['id'])],
['status', '<=', 4],
];
$temp = Db::name('Order')->where($where)->count();
return empty($temp);
}
/**
* 生成随机金额
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-03-25
* @desc description
* @param [int] $min [最小值]
* @param [int] $max [最大值]
*/
private function RandomFloat($min = 0, $max = 10)
{
return sprintf("%.2f", $min+mt_rand()/mt_getrandmax()*($max-$min));
}
}
?>
\ No newline at end of file
{
"base":{
"plugins":"newuserreduction",
"name":"新用户立减",
"logo":"\/static\/upload\/images\/plugins_newuserreduction\/2019\/03\/25\/1553483752670109.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"新用户立减优惠",
"apply_terminal":[
"pc",
"h5",
"app",
"alipay",
"weixin",
"baidu"
],
"apply_version":[
"1.4.0"
],
"is_home":false
},
"hook":{
"plugins_service_buy_handle":[
"app\\plugins\\newuserreduction\\Hook"
]
}
}
\ No newline at end of file
......@@ -168,7 +168,7 @@ class Hook extends Controller
// 获取应用数据
$ret = PluginsService::PluginsData('touristbuy');
$login_name = empty($ret['data']['login_name']) ? '游客登录' : $ret['data']['login_name'];
return '<a href="'.PluginsHomeUrl('touristbuy', 'index', 'login', ['is_parent'=>$is_parent]).'" class="am-btn am-btn-warning am-btn-xs am-radius plugins-touristbuy-login-info-btn">'.$ret['data']['login_name'].'</a>';
return '<a href="'.PluginsHomeUrl('touristbuy', 'index', 'login', ['is_parent'=>$is_parent]).'" class="am-btn am-btn-warning am-btn-xs am-radius plugins-touristbuy-login-info-btn">'.$login_name.'</a>';
}
return '';
}
......
......@@ -90,11 +90,11 @@ class Hook extends Controller
$original_price_placeholder = isset($ret['data']['original_price_placeholder']) ? $ret['data']['original_price_placeholder'] : '';
// 销售价
$price_placeholder = isset($ret['data']['price_placeholder']) ? $ret['data']['price_placeholder'] : '';
$price_placeholder = empty($ret['data']['price_placeholder']) ? '登录可见' : $ret['data']['price_placeholder'];
switch($params['hook_name'])
{
// 商品数据处理
// 商品数据处理
case 'plugins_service_goods_handle_end' :
// 商品原价
if(isset($params['goods']['original_price']))
......
......@@ -24,7 +24,7 @@
<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" {{if !empty($data)}} value="{{$data.url}}"{{/if}} required />
<input type="url" placeholder="url地址" name="url" data-validation-message="url格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.url}}"{{/if}} />
</div>
<div class="am-form-group am-form-file">
......
......@@ -22,7 +22,7 @@
<ul class="am-slides">
{{foreach $plugins_answers_slider as $k=>$v}}
<li>
<a href="{{$v.url}}" target="_blank">
<a href="{{if empty($v['url'])}}javascript:;{{else /}}{{$v.url}}{{/if}}" target="_blank">
<img src="{{$v.images_url}}" alt="{{$v.name}}">
<div class="am-slider-desc">
<div class="am-slider-counter">
......
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">新用户立减</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="newuserreduction-content">
<div class="items">
<label>展示名称</label>
<div>
{{if empty($data['show_name'])}}
新用户立减
{{else /}}
{{$data.show_name}}
{{/if}}
</div>
</div>
<div class="items">
<label>需满金额</label>
<div>
{{if empty($data['full_amount'])}}
不限
{{else /}}
{{$data.full_amount}}
{{/if}}
</div>
</div>
<div class="items">
<label>立减金额</label>
<div>
{{if empty($data['price'])}}
未设置
{{else /}}
{{$data.price}}
{{/if}}
</div>
</div>
<div class="items">
<label>是否随机</label>
<div>
{{if isset($data['is_random']) and $data['is_random'] eq 1}}
{{else /}}
{{/if}}
</div>
</div>
<a href="{{:PluginsAdminUrl('newuserreduction', 'admin', 'saveinfo')}}" class="am-btn am-btn-secondary am-radius btn-loading-example am-btn-sm am-btn-block edit-submit">编辑</a>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('newuserreduction', 'admin', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('newuserreduction', 'admin', 'index')}}" enctype="multipart/form-data">
<legend>
<span class="fs-16">新用户立减</span>
<a href="{{:PluginsAdminUrl('newuserreduction', 'admin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group">
<label>展示名称<span class="am-form-group-label-tips">默认 新用户立减</span></label>
<input type="text" name="show_name" placeholder="展示名称" maxlength="16" data-validation-message="展示名称格式最多 16 个字符" class="am-radius" value="{{if !empty($data['show_name'])}}{{$data.show_name}}{{else /}}新用户立减{{/if}}" />
</div>
<div class="am-form-group">
<label>需满金额<span class="am-form-group-label-tips">订单金额大于等于该金额 空则不限</span></label>
<input type="number" name="full_amount" placeholder="需满金额" min="0.00" step="0.01" data-validation-message="请填写有效的需满金额" class="am-radius" value="{{if isset($data['full_amount']) and $data['full_amount'] gt 0}}{{$data.full_amount}}{{/if}}" />
</div>
<div class="am-form-group">
<label>立减金额<span class="am-form-group-label-tips">开启随机则0~当前设置的金额随机取值</span></label>
<input type="number" name="price" placeholder="立减金额" min="0.00" step="0.01" data-validation-message="请填写有效的立减金额" class="am-radius" value="{{if isset($data['price']) and $data['price'] gt 0}}{{$data.price}}{{/if}}" />
</div>
<div class="am-form-group">
<label>是否随机<span class="am-form-group-label-tips">0~立减金额之间</span></label>
<div>
{{foreach $is_whether_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_random" value="{{$v.id}}" {{if isset($data['is_random']) and $data['is_random'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_random']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
</div>
<div class="am-form-group business-form-block am-form-group-refreshing">
<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>
</form>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
......@@ -25,7 +25,7 @@
{{if !empty($data['price_placeholder'])}}
{{$data.price_placeholder}}
{{else /}}
<span class="empty-text">未填写</span>
<span class="empty-text">登录可见</span>
{{/if}}
</div>
</div>
......
......@@ -21,12 +21,12 @@
<div class="am-form-group">
<label>原价占位符</label>
<input type="text" name="original_price_placeholder" placeholder="原价占位符" maxlength="16" data-validation-message="原价占位符最多16个字符" class="am-radius" value="{{if !empty($data)}}{{$data.original_price_placeholder}}{{/if}}" />
<input type="text" name="original_price_placeholder" placeholder="原价占位符" maxlength="16" data-validation-message="原价占位符最多16个字符" class="am-radius" value="{{if !empty($data['original_price_placeholder'])}}{{$data.original_price_placeholder}}{{/if}}" />
</div>
<div class="am-form-group">
<label>销售价占位符</label>
<input type="text" name="price_placeholder" placeholder="销售价占位符" maxlength="16" data-validation-message="销售价占位符最多16个字符" class="am-radius" value="{{if !empty($data)}}{{$data.price_placeholder}}{{/if}}" />
<label>销售价占位符<span class="am-form-group-label-tips">默认 登录可见</span></label>
<input type="text" name="price_placeholder" placeholder="销售价占位符" maxlength="16" data-validation-message="销售价占位符最多16个字符" class="am-radius" value="{{if !empty($data['price_placeholder'])}}{{$data.price_placeholder}}{{/if}}" />
</div>
<div class="am-form-group am-form-group-refreshing">
......
......@@ -708,6 +708,7 @@ class BuyService
}
// 清单商品
$params['is_order_submit'] = 1;
$buy = self::BuyTypeGoodsList($params);
if(!isset($buy['code']) || $buy['code'] != 0)
{
......
......@@ -365,6 +365,10 @@ class GoodsService
$v['content_app'] = self::GoodsContentApp(['goods_id'=>$v['id']]);
}
// 展示字段
$v['show_field_original_price_text'] = '原价';
$v['show_field_price_text'] = '销售价';
// 商品处理前钩子
$hook_name = 'plugins_service_goods_handle_end';
$ret = Hook::listen($hook_name, [
......
......@@ -115,6 +115,7 @@ return array (
'plugins_service_buy_handle' =>
array (
0 => 'app\\plugins\\freightfee\\Hook',
1 => 'app\\plugins\\newuserreduction\\Hook',
),
);
?>
\ No newline at end of file
......@@ -15,7 +15,7 @@
return [
// 开发模式
'is_develop' => true,
'is_develop' => false,
// 默认编码
'default_charset' => 'utf-8',
......
此差异已折叠。
......@@ -73,7 +73,6 @@
}
.content ul.am-gallery-bordered li .submit-state {
height: 28px;
line-height: 28px;
border-radius: 2px;
font-size: 12px;
}
......
......@@ -156,7 +156,7 @@ ul.am-tabs-nav.am-nav.am-nav-tabs {background: #F5F5F5;}
.iteminfo_parameter a:hover{text-decoration: none;color:initial ;}
.tm-indcon .tm-label,.tb-detail-price dt{display:inline; width:60px; white-space:nowrap; text-align:right; color:#888;}
.tb-detail-price .items { display: inline-block; }
.tb-detail-price .items:not(:last-child) { margin-right:10px; }
.tb-detail-price .items:not(:first-child) { margin-left:10px; }
/* 二维码 */
.goods-qrcode{position: absolute; bottom: 5px; right: 10px; cursor: pointer; color: #666; width: 150px; text-align: right;}
......@@ -329,7 +329,6 @@ li.am-comment{ width:100%}
.iteminfo_mktprice {padding-top: 10px;}
.iteminfo_parameter {padding-left: 50px;}
.tb-detail-hd,.tb-detail-price{text-align: left;}
.tb-detail-price .items {margin-left: 0px;}
.tb-detail-hd h1 {font-size: 16px;}
.match{margin:0px auto;max-width: 1000px;padding-top:20px ;background: #fff;}
......@@ -375,13 +374,13 @@ li.am-comment{ width:100%}
/*价格*/
.tb-detail-hd h1 {font-size:18px;}
.tb-detail-price { height:75px;padding-top:10px; }
.tb-detail-price { height:75px;padding:10px; }
/*.tb-detail-price{background: #F7F7F7 url(data:image/png;base64,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); }*/
.tb-detail-price{ background: #fcf1e3 url(../images/goods_meta_bg.png); background-size: cover; -moz-background-size: cover; background-repeat: no-repeat; }
.tb-detail-price .items {display: block;margin:0px 10px;}
.tb-detail-price .items {display: block;margin-left:0 !important;}
.tb-detail-price .items dt {width: 70px;float:left;text-align: left;}
.sys_item_price{font-size: 24px;font-weight: bold; line-height: 16px;}
.sys_item_mktprice{font-size:14px ;}
.sys_item_mktprice{font-size:14px;}
/*规格*/
......
/**
* 首页
*/
.newuserreduction-content .items {
margin: 10px 0 20px 0;
border-bottom: 1px dashed #f1f1f1;
padding-bottom: 20px;
}
.newuserreduction-content .edit-submit {
margin-bottom: 20px;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册