From 6c0161cbd09fc0dccfced698899ba48388f7c0dc Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Tue, 26 Sep 2023 14:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=95=86=E5=93=81?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=B7=BB=E5=8A=A0=E6=9D=83=E9=87=8D=E5=80=BC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/goods/observers/SaleObserver.php | 14 ++- app/common/models/Sale.php | 42 ++++----- min_img/bc_eweima.png | Bin 0 -> 1886 bytes min_img/icon-fontclass-zhiding.png | Bin 0 -> 1511 bytes .../js/components/marketing/promotion.js | 89 ++++++++++++++++-- 5 files changed, 111 insertions(+), 34 deletions(-) create mode 100644 min_img/bc_eweima.png create mode 100644 min_img/icon-fontclass-zhiding.png 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 0000000000000000000000000000000000000000..8f93fdbcffa488998c5043453de193b2b83cc744 GIT binary patch literal 1886 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 Y2g3%I8BL6V0{{R307*qoM6N<$f=DNyzW@LL literal 0 HcmV?d00001 diff --git a/min_img/icon-fontclass-zhiding.png b/min_img/icon-fontclass-zhiding.png new file mode 100644 index 0000000000000000000000000000000000000000..0efe3b606481a0cf64cd1164e9ca2c3bfd7b7502 GIT binary patch literal 1511 zcmV_`lhU;{(ru${MGB-7{7TZ$vU>RuC=xGlll4i>5Ywz(E9p1_)`}r zd8|xNPybw3S9e1!iwjWaGxu~JBRP^Qc6WDo{`EnttE)?5SzPisogwVAiV<9~w6ye# zSZEWPo12>w%i-#G%`+md;87&{QN88bHl(FcNB0iFh+54@m1Do|B6m@ zXJ_Z{=H}*J(Z(PFIuXY2po4)Ca&mGmGiPk_Bh1m!(e0+DrjJEiLj>t$PVxftMJG7v;NW1tr>EyLF%8W;&4{ip#Q<%Tl$2bJL?U~l16aRuBtGM1xI>PvxIHfe zlBK@BzI$_X^Dn-_Y;CnQHa7O%ZKl{WED9GF7vq)|tmQ-o1_r(q)6_(Cd4O+G!~o?~ zR#txC)KY3{YCf!}sCb`$HatB1HR6b)71Y_;IUuI30r({Dqa7{O*4Ex|s$@q;M<2rb z`ue`$pJVNV=cT2k?}fwRxOfcDjlvdQx#{lXeli%EvL>yl64Hg zJczZN5N{7DZaLB6TImE2GgZF8*aJ?qQSHVt04--_Wo3bn1BrGXh)(d7E(w;Gmw$^D z6n)HTuMdw~$AH4Z!gtsL^cI)bKcbBXqDum$i^#mZytk*Orhb~4nVH1IO$>J;701Mw zn3(usc6N3O>n}0P1JOmKZ`%$ryf{V^(QOA`H>!YTjtLTX_!e+5FotE02@oe=H^VJ+ zOx$L8Hu-pbVv%E{;}giY12>BtBOSOwN{(n#!6L^v9??Qdmj}sWiDOPZ)Q9jXgcw0P zmN@3j&pry)&=Vvlq=l-gs_Wa^+Z&NcWEWc%{6@KEP{)+?EXj#w3aDGkx+tcXN@i&k_5jyqpd%2Bb$Eo0*hd)gj=cDNcLmoLY~Om)6H1j!oJ4& z59=flhDaQDVv||bPcflSLz>!$Uz0lR$Ge*8xZ-F9uhH=g)z=^I`VV=gO+ntEGAjT8 N002ovPDHLkV1hfG)}jCa literal 0 HcmV?d00001 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); + } + + + + + }, });