diff --git a/app/backend/modules/goods/observers/SaleObserver.php b/app/backend/modules/goods/observers/SaleObserver.php index cea5edf4..309795be 100644 --- a/app/backend/modules/goods/observers/SaleObserver.php +++ b/app/backend/modules/goods/observers/SaleObserver.php @@ -13,12 +13,20 @@ use Illuminate\Database\Eloquent\Model; class SaleObserver extends \app\common\observers\BaseObserver { - public function saving( $model) - { - + public function saving( $model){ // if (!empty($model->id) &&$model->isDirty()) { // (new \app\common\services\operation\SaleLog($model, 'update')); // } + + // 处理阶梯价信息 + $weightValueLadder = $model->weight_value_ladder ?? []; + foreach($weightValueLadder as $weightValueLadderIndex => $weightValueLadderItem){ + if((float)$weightValueLadderItem['where'] <= 0 || (float)$weightValueLadderItem['num'] <= 0) unset($weightValueLadder[$weightValueLadderIndex]); + } + $model->weight_value_ladder = $weightValueLadder ?? []; + + + } public function updating( $model) diff --git a/app/common/models/Sale.php b/app/common/models/Sale.php index 3f29e163..ecb31575 100644 --- a/app/common/models/Sale.php +++ b/app/common/models/Sale.php @@ -19,32 +19,32 @@ use app\backend\modules\goods\observers\SaleObserver; class Sale extends BaseModel { public $table = 'yz_goods_sale'; - public $attributes = [ - 'max_point_deduct' => '', - 'min_point_deduct' => '', - 'max_balance_deduct' => '', - 'min_balance_deduct' => '', + 'max_point_deduct' => '', + 'min_point_deduct' => '', + 'max_balance_deduct' => '', + 'min_balance_deduct' => '', 'has_all_point_deduct' => 0, - 'all_point_deduct' => 0, - 'is_sendfree' => 0, - 'ed_num' => '', - 'ed_full' => 0, - 'ed_reduction' => 0, - 'ed_money' => '', - 'point' => '', - 'bonus' => 0, - 'award_balance' => 0, - 'pay_reward_balance' => 0, - 'point_type' => 0, - 'max_once_point' => 0, - - 'ed_areas' => '', + 'all_point_deduct' => 0, + 'is_sendfree' => 0, + 'ed_num' => '', + 'ed_full' => 0, + 'ed_reduction' => 0, + 'ed_money' => '', + 'point' => '', + 'bonus' => 0, + 'award_balance' => 0, + 'pay_reward_balance' => 0, + 'point_type' => 0, + 'max_once_point' => 0, + 'ed_areas' => '', 'push_goods_ids' => 0, - 'is_push' => 0, + 'is_push' => 0, + 'weight_value_type' => 0, + 'weight_value_num' => 0, + 'weight_value_ladder' => [], ]; - protected $appends = ['point_deduct_type']; protected $guarded = ['']; diff --git a/min_img/bc_eweima.png b/min_img/bc_eweima.png new file mode 100644 index 00000000..8f93fdbc Binary files /dev/null and b/min_img/bc_eweima.png differ diff --git a/min_img/icon-fontclass-zhiding.png b/min_img/icon-fontclass-zhiding.png new file mode 100644 index 00000000..0efe3b60 Binary files /dev/null and b/min_img/icon-fontclass-zhiding.png differ diff --git a/resources/views/goods/assets/js/components/marketing/promotion.js b/resources/views/goods/assets/js/components/marketing/promotion.js index 5fdbb870..db7e82f8 100644 --- a/resources/views/goods/assets/js/components/marketing/promotion.js +++ b/resources/views/goods/assets/js/components/marketing/promotion.js @@ -3,11 +3,11 @@ define({ template: `
+
单品优惠
-
@@ -49,12 +49,49 @@ define({
- + +
+
+
权重值设置
+
+
+ + 普通赠送 + 阶梯赠送 +
普通赠送:购买人、购买人上级、购买人上级的上级赠送指定的权重值
+
阶梯赠送:购买人、购买人上级分别获取对应顺序的权重值(顺序为用户成为经销商的先后顺序。如果经销商身份为黑名单则不赠送权重值)
+
+ + + + +
如果设置为空或者0则不赠送权重值
+
+ +
+
+ + + + + + + + + + 删除 + +
+ 增加阶梯 +
例如:设置小于等于10赠送100权重值;小于等于32赠送120权重值。则第1~10位经销商赠送100权重值,第11~32位经销商赠送120权重值,第33位及之后所有经销商均不赠送权重值
+
+
+
+
余额设置
-
@@ -99,12 +136,11 @@ define({
如果设置为空为0,则采用余额统一设置
- +
积分设置
-
@@ -183,12 +219,11 @@ define({
- +
其他设置
-
-
@@ -421,6 +455,18 @@ define({ height: 80%; overflow-y: scroll; } + .ladder-content{ + min-width: 550px!important; + + } + .ladder-content .ladder-row{ + margin-bottom: 5px!important;; + } + .ladder-content .ladder-row .ladder-input{ + width: 200px!important;; + } + + `, props: { form: { @@ -497,6 +543,7 @@ define({ all_point_deduct: { validator: floatNum }, max_balance_deduct: { validator: floatNum }, min_balance_deduct: { validator: floatNum }, + weight_value_num: { validator: floatNum }, }, goodsDialog: false, areaDialog: false, @@ -542,7 +589,11 @@ define({ min_balance_deduct:'', is_push: 0, push_goods_ids: [], - is_store:0 + is_store:0, + // 权重值设置 + weight_value_type: 0, + weight_value_num: 0, + weight_value_ladder: {}, }, }; }, @@ -573,6 +624,10 @@ define({ this.json.min_balance_deduct = sale.min_balance_deduct ? sale.min_balance_deduct : ''; this.json.is_push = sale.is_push ? sale.is_push : 0; this.json.push_goods_ids = sale.push_goods_ids ? sale.push_goods_ids : []; + // 权重值 + this.json.weight_value_type = sale.weight_value_type ? sale.weight_value_type : 0; + this.json.weight_value_num = sale.weight_value_num ? sale.weight_value_num : 0; + this.json.weight_value_ladder = sale.weight_value_ladder ? JSON.parse(sale.weight_value_ladder) : {}; } }, methods: { @@ -668,7 +723,6 @@ define({ this.json.ed_areaids = area_ids.join(","); this.areaDialog = false }, - // 商品 searchGoods (page=this.paginationOpt.page) { if (this.goodsKey === "") { @@ -710,5 +764,20 @@ define({ } }); }, + // 权重值相关处理 + addLadder(){ + this.json.weight_value_ladder = Object.values(this.json.weight_value_ladder).concat({where: '', num: ''}); + }, + delLadder(index){ + let weightValueLadder = Object.assign({},this.json.weight_value_ladder); + delete weightValueLadder[index]; + + this.json.weight_value_ladder = Object.values(weightValueLadder); + } + + + + + }, });