This commit is contained in:
2025-12-27 09:01:32 +08:00
commit 24647b844e
712 changed files with 2718 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"uni-popup": "/components/uni-popup/uni-popup-sku-new",
"ns-login": "/components/ns-login/ns-login"
}
}

View File

@@ -0,0 +1 @@
<view data-event-opts="{{[['touchmove',[['',['$event']]]]]}}" class="goods-sku data-v-944a57a4" catchtouchmove="__e"><uni-popup vue-id="3b19f8cf-1" type="{{popupType}}" data-ref="skuPopup" class="data-v-944a57a4 vue-ref" bind:__l="__l" vue-slots="{{['default']}}"><view class="sku-layer data-v-944a57a4"><view class="sku-content data-v-944a57a4"><view class="sku-info data-v-944a57a4" style="{{'height:'+(systemInfo.windowHeight*2+'rpx')+';'}}"><view class="header data-v-944a57a4"><view data-event-opts="{{[['tap',[['previewMedia']]]]}}" class="img-wrap data-v-944a57a4" bindtap="__e"><image src="{{$root.g0}}" data-event-opts="{{[['error',[['imageError']]]]}}" binderror="__e" class="data-v-944a57a4"></image></view><view class="main data-v-944a57a4"><view class="goodname data-v-944a57a4">{{goodsDetail.goods_name}}</view><view class="other-info data-v-944a57a4"><block wx:if="{{goodsDetail.stock_show}}"><view class="stock color-tip data-v-944a57a4">{{'库存'+goodsDetail.stock+goodsDetail.unit}}</view></block><block wx:if="{{$root.m0}}"><view class="starting-num data-v-944a57a4">{{'起售'+goodsDetail.min_buy+'件'}}</view></block></view></view></view><view class="body-item data-v-944a57a4"><scroll-view class="wrap data-v-944a57a4" scroll-y="{{true}}"><block wx:for="{{$root.l1}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="sku-list-wrap data-v-944a57a4"><text class="title font-size-tag data-v-944a57a4">{{item.$orig.spec_name}}</text><view class="sku-list_item data-v-944a57a4"><block wx:for="{{item.l0}}" wx:for-item="item_value" wx:for-index="index_value" wx:key="index_value"><view data-event-opts="{{[['tap',[['change',['$0','$1'],[[['goodsDetail.goods_spec_format','',index],['value','',index_value,'sku_id']],[['goodsDetail.goods_spec_format','',index],['value','',index_value,'spec_id']]]]]]]}}" class="{{['items','color-line-border','font-size-tag','data-v-944a57a4',(item_value.$orig['selected']||skuId==item_value.$orig.sku_id)?'selected':'',(item_value.$orig['disabled']||!item_value.$orig['selected']&&disabled)?'disabled':'']}}" bindtap="__e"><block wx:if="{{item_value.$orig.image}}"><image src="{{item_value.g1}}" data-event-opts="{{[['error',[['valueImageError',[index,index_value]]]]]}}" binderror="__e" class="data-v-944a57a4"></image></block><text class="data-v-944a57a4">{{item_value.$orig.spec_value_name}}</text></view></block></view></view></block></scroll-view></view><view class="footer data-v-944a57a4"><view class="sku-name font-size-goods-tag data-v-944a57a4"><block wx:if="{{goodsDetail.sku_spec_format}}">已选择:<block wx:for="{{goodsDetail.sku_spec_format}}" wx:for-item="item" wx:for-index="index" wx:key="index"><text class="color-tip data-v-944a57a4">{{item.spec_value_name}}</text></block></block></view><view class="footer-bottom data-v-944a57a4"><view class="footer-left data-v-944a57a4"><view class="price-wrap data-v-944a57a4"><text class="price price-font data-v-944a57a4">{{"¥"+goodsDetail.show_price}}</text></view></view><view class="footer-right data-v-944a57a4"><block wx:if="{{number>0}}"><view class="change_num data-v-944a57a4"><view data-event-opts="{{[['tap',[['changeNum',['-']]]]]}}" class="num-action data-v-944a57a4" bindtap="__e"><text class="desc iconfont icon-jianshao color-base-text data-v-944a57a4"></text><view class="click-event data-v-944a57a4"></view></view><input class="uni-input data-v-944a57a4" type="number" placeholder="0" data-event-opts="{{[['blur',[['blur',['$event']]]],['input',[['__set_model',['','number','$event',[]]],['keyInput',[false]]]]]}}" value="{{number}}" bindblur="__e" bindinput="__e"/><view class="num-action data-v-944a57a4" id="{{'select-sku-num-'+goodsDetail.goods_id}}" data-event-opts="{{[['tap',[['changeNum',['+','$event']]]]]}}" bindtap="__e"><text class="add iconfont icon-add-fill color-base-text change_hover data-v-944a57a4"></text><view class="click-event data-v-944a57a4"></view></view></view></block><block wx:else><block wx:if="{{number==0&&isLoad}}"><view class="data-v-944a57a4"><view class="num-action data-v-944a57a4"><block wx:if="{{goodsDetail.stock&&goodsDetail.stock!=0}}"><button type="primary" data-event-opts="{{[['tap',[['confirm',['$event']]]]]}}" bindtap="__e" class="data-v-944a57a4">加入购物车</button></block><block wx:else><button type="primary" disabled="true" class="data-v-944a57a4">确定</button></block><view class="click-event data-v-944a57a4"></view></view></view></block></block></view></view></view></view></view></view><view data-event-opts="{{[['tap',[['closeSkuPopup']]]]}}" class="sku-close iconfont icon-close-guanbi data-v-944a57a4" bindtap="__e"></view></uni-popup><ns-login vue-id="3b19f8cf-2" data-ref="login" class="data-v-944a57a4 vue-ref" bind:__l="__l"></ns-login></view>

View File

@@ -0,0 +1,2 @@
.sku-content.data-v-944a57a4{background:#fff;border-radius:20rpx}.sku-close.data-v-944a57a4{color:#fff;width:50rpx;text-align:center;font-size:60rpx;border-radius:50%;margin:40rpx auto 0}.sku-layer .sku-info.data-v-944a57a4{width:600rpx;height:60vh!important;position:relative;z-index:999}.sku-layer .sku-info .header.data-v-944a57a4{padding:30rpx;display:flex;position:relative;border-bottom:2rpx solid rgba(0,0,0,.1);z-index:2}.sku-layer .sku-info .header .img-wrap.data-v-944a57a4{width:114rpx;height:114rpx;margin-right:20rpx;border-radius:8rpx;overflow:hidden;border:2rpx solid rgba(0,0,0,.1);padding:2rpx;background-color:#fff;line-height:208rpx}.sku-layer .sku-info .header .img-wrap image.data-v-944a57a4{width:100%;height:100%}.sku-layer .sku-info .main.data-v-944a57a4{font-size:24rpx;line-height:40rpx;flex:1;width:0}.sku-layer .sku-info .main .goodname.data-v-944a57a4{word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.3}.sku-layer .sku-info .main .other-info.data-v-944a57a4{margin-top:20rpx;display:flex;align-items:center;justify-content:space-between}.sku-layer .sku-info .main .starting-num.data-v-944a57a4{color:#909399;font-size:24rpx}.footer-left .price.data-v-944a57a4{word-wrap:break-word;font-size:32rpx;color:var(--price-color)}.sku-layer .sku-info .main .stock.data-v-944a57a4{line-height:1;font-size:24rpx}.sku-layer .sku-info .main .sku-name.data-v-944a57a4{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:90rpx;overflow:hidden}.sku-layer .sku-info .main .sku-name text.data-v-944a57a4{margin-right:10rpx}.sku-layer .sku-info .sku-close.data-v-944a57a4{position:absolute;top:20rpx;right:20rpx;width:40rpx;height:80rpx;font-size:50rpx}.sku-layer .body-item.data-v-944a57a4{padding:0 30rpx 30rpx 30rpx;height:calc(100% - 282rpx);box-sizing:border-box;overflow:scroll}.sku-layer .body-item .wrap.data-v-944a57a4{height:calc(100% - 116rpx)}.sku-layer .body-item .sku-list-wrap .title.data-v-944a57a4{font-weight:400;padding:20rpx 0;margin:0;display:block}.sku-layer .body-item .sku-list-wrap .sku-list_item.data-v-944a57a4{display:flex;flex-wrap:wrap}.sku-layer .body-item .sku-list-wrap .items.data-v-944a57a4{text-align:center;position:relative;display:inline-block;border:2rpx solid #eee;padding:4rpx 30rpx;border-radius:8rpx;margin:0 20rpx 20rpx 0;background-color:#fff!important}.sku-layer .body-item .sku-list-wrap .items.disabled.data-v-944a57a4{border:2rpx dashed}.sku-layer .body-item .sku-list-wrap .items image.data-v-944a57a4{height:48rpx;width:48rpx;border-radius:4rpx;margin-right:10rpx;display:inline-block;vertical-align:middle}.sku-layer .body-item .number-wrap .number-line.data-v-944a57a4{padding:20rpx 0;line-height:72rpx}.sku-layer .body-item .number-wrap .title.data-v-944a57a4{font-weight:400}.sku-layer .body-item .number-wrap .number.data-v-944a57a4{height:72rpx;border-radius:6rpx;float:right}.sku-layer .body-item .number-wrap .number button.data-v-944a57a4{display:inline-block;line-height:64rpx;height:68rpx;width:60rpx;font-size:48rpx;box-sizing:initial;border:2rpx solid;padding:0;margin:0;border-radius:0}.sku-layer .body-item .number-wrap .number button.decrease.data-v-944a57a4{border-right:2rpx solid #fff!important}.sku-layer .body-item .number-wrap .number button.increase.data-v-944a57a4{border-left:2rpx solid #fff!important}.sku-layer .body-item .number-wrap .number button.data-v-944a57a4:after{border-radius:0;border:none}.sku-layer .body-item .number-wrap .number input.data-v-944a57a4{display:inline-block;line-height:64rpx;height:68rpx;width:72rpx;text-align:center;font-weight:700;border:2rpx solid;margin:0;padding:0;vertical-align:top}.sku-layer .footer.data-v-944a57a4{width:calc(100% - 60rpx);position:absolute;bottom:26rpx;color:#fff;z-index:1;border-top:1rpx solid #eee;padding:30rpx 30rpx 0;background-color:#fff}.sku-layer .footer .sku-name text.data-v-944a57a4{margin-right:10rpx}.sku-layer .footer .footer-bottom.data-v-944a57a4{margin-top:24rpx;display:flex;justify-content:be;align-items:center}.sku-layer .footer .footer-bottom .footer-left.data-v-944a57a4{flex:1}.sku-layer .footer .footer-bottom .footer-right.data-v-944a57a4{width:238rpx;text-align:right}.sku-layer .footer .footer-bottom .footer-right button.data-v-944a57a4{margin-right:0;width:210rpx;height:60rpx;line-height:60rpx;font-size:30rpx}.position-bottom.data-v-944a57a4{bottom:98rpx!important}.change_num.data-v-944a57a4{display:flex;align-items:center;justify-content:flex-end}.change_num > text.data-v-944a57a4,
.change_num .iconfont.data-v-944a57a4{font-size:48rpx}.change_num input.data-v-944a57a4{width:70rpx;height:36rpx;line-height:36rpx;text-align:center}.change_num .num-action.data-v-944a57a4{position:relative}.change_num .num-action .click-event.data-v-944a57a4{position:absolute;width:2rpx;height:2rpx;left:0;top:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:5}.data-v-944a57a4 .uni-popup__wrapper{background:transparent!important}.data-v-944a57a4 .sku-layer .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box{background:transparent!important}.data-v-944a57a4 .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box{background:transparent!important}

View File

@@ -0,0 +1,10 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/ns-goods-sku/ns-goods-sku-index"],{"91d0":function(s,i,t){"use strict";t.r(i);var o=t("b74d"),e=t("d19d");for(var d in e)["default"].indexOf(d)<0&&function(s){t.d(i,s,(function(){return e[s]}))}(d);var n=t("828b"),u=Object(n["a"])(e["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);i["default"]=u.exports},b74d:function(s,i,t){"use strict";t.d(i,"b",(function(){return e})),t.d(i,"c",(function(){return d})),t.d(i,"a",(function(){return o}));var o={nsLogin:function(){return Promise.all([t.e("common/vendor"),t.e("components/ns-login/ns-login")]).then(t.bind(null,"17d0"))},nsGoodsSku:function(){return t.e("components/ns-goods-sku/ns-goods-sku").then(t.bind(null,"8db3"))}},e=function(){var s=this.$createElement;this._self._c},d=[]},d126:function(s,i,t){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var o={name:"ns-goods-sku-index",components:{nsGoodsSku:function(){t.e("components/ns-goods-sku/ns-goods-sku").then(function(){return resolve(t("8db3"))}.bind(null,t)).catch(t.oe)}},data:function(){return{timeout:{},isRepeat:!1,goodsDetail:{}}},created:function(){},methods:{addCart:function(s,i,t){if(this.storeToken)return"detail"==s||i.is_virtual?(this.$util.redirectTo("/pages/goods/detail",{goods_id:i.goods_id}),!1):void(i.goods_spec_format?this.multiSpecificationGoods(i):this.singleSpecificationGoods(i,t));this.$refs.login.open("/pages/index/index")},singleSpecificationGoods:function(s,i){var t=this,o=this.cartList["goods_"+s.goods_id]&&this.cartList["goods_"+s.goods_id]["sku_"+s.sku_id]?this.cartList["goods_"+s.goods_id]["sku_"+s.sku_id]:null,e=o?o.num:0,d=o&&o.cart_id?"/api/cart/edit":"/api/cart/add",n=s.min_buy>0?s.min_buy:1,u=e>=n?e:n,a=u;o&&o.cart_id&&(a+=s.min_buy>0?s.min_buy:1);var r=o?o.cart_id:0;if(a>parseInt(s.stock))this.$util.showToast({title:"商品库存不足"});else if(s.is_limit&&s.max_buy&&a>parseInt(s.max_buy))this.$util.showToast({title:"该商品每人限购".concat(s.max_buy).concat(s.unit||"件")});else{if(o)this.cartList["goods_"+s.goods_id]["sku_"+s.sku_id].num=a;else{this.cartList["goods_"+s.goods_id]||(this.cartList["goods_"+s.goods_id]={});var c=s.discount_price;s.member_price>0&&Number(s.member_price)<=Number(s.discount_price)&&(c=s.member_price),this.cartList["goods_"+s.goods_id]["sku_"+s.sku_id]={cart_id:r,goods_id:s.goods_id,sku_id:s.sku_id,num:a,discount_price:c}}this.isRepeat||(this.isRepeat=!0,this.$emit("addCart",i.currentTarget.id),this.$api.sendRequest({url:d,data:{cart_id:r,sku_id:s.sku_id,num:a},success:function(i){t.isRepeat=!1,0==i.code?(0==r&&(t.cartList["goods_"+s.goods_id]["sku_"+s.sku_id].cart_id=i.data),t.$util.showToast({title:"商品添加购物车成功"}),t.$store.commit("setCartChange"),t.$store.dispatch("cartCalculate"),t.$emit("cartListChange",t.cartList)):t.$util.showToast({title:i.message})}}))}},multiSpecificationGoods:function(s){var i=this;this.$api.sendRequest({url:"/api/goodssku/getInfoForCategory",data:{sku_id:s.sku_id},success:function(s){if(s.code>=0){var t=s.data;t.unit=t.unit||"件",t.sku_images?t.sku_images=t.sku_images.split(","):t.sku_images=[],t.goods_spec_format&&t.goods_image&&(t.goods_image=t.goods_image.split(","),t.sku_images=t.goods_image.concat(t.sku_images)),t.sku_spec_format&&(t.sku_spec_format=JSON.parse(t.sku_spec_format)),t.goods_spec_format&&(t.goods_spec_format=JSON.parse(t.goods_spec_format)),1==t.promotion_type&&(t.discountTimeMachine=i.$util.countDown(t.end_time-s.timestamp)),1==t.promotion_type&&t.discountTimeMachine?t.member_price>0&&Number(t.member_price)<=Number(t.discount_price)?t.show_price=t.member_price:t.show_price=t.discount_price:t.member_price>0?t.show_price=t.member_price:t.show_price=t.price,i.goodsDetail=t,i.$nextTick((function(){i.$refs.goodsSku&&i.$refs.goodsSku.show("join_cart",(function(s){var t=i.cartList["goods_"+s.goods_id],o=null;t&&t["sku_"+s.sku_id]&&(o=t["sku_"+s.sku_id]),o?i.cartList["goods_"+s.goods_id]["sku_"+s.sku_id].num=s.num:(i.cartList["goods_"+s.goods_id]||(i.cartList["goods_"+s.goods_id]={}),i.cartList["goods_"+s.goods_id]["sku_"+s.sku_id]={cart_id:s.cart_id,goods_id:s.goods_id,sku_id:s.sku_id,num:s.num,discount_price:s.discount_price}),i.$store.dispatch("cartCalculate"),i.$emit("cartListChange",i.cartList),setTimeout((function(){i.$store.commit("setCartChange")}),100)}))}))}}})},refreshGoodsSkuDetail:function(s){this.goodsDetail=Object.assign({},this.goodsDetail,s)}}};i.default=o},d19d:function(s,i,t){"use strict";t.r(i);var o=t("d126"),e=t.n(o);for(var d in o)["default"].indexOf(d)<0&&function(s){t.d(i,s,(function(){return o[s]}))}(d);i["default"]=e.a}}]);
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'components/ns-goods-sku/ns-goods-sku-index-create-component',
{
'components/ns-goods-sku/ns-goods-sku-index-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('df3c')['createComponent'](__webpack_require__("91d0"))
})
},
[['components/ns-goods-sku/ns-goods-sku-index-create-component']]
]);

View File

@@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"ns-login": "/components/ns-login/ns-login",
"ns-goods-sku": "/components/ns-goods-sku/ns-goods-sku"
}
}

View File

@@ -0,0 +1 @@
<view class="goods-sku"><ns-login class="vue-ref" vue-id="0c7f829d-1" data-ref="login" bind:__l="__l"></ns-login><block wx:if="{{goodsDetail.goods_id}}"><ns-goods-sku class="vue-ref" vue-id="0c7f829d-2" goods-id="{{goodsDetail.goods_id}}" goods-detail="{{goodsDetail}}" max-buy="{{goodsDetail.max_buy}}" min-buy="{{goodsDetail.min_buy}}" data-ref="goodsSku" data-event-opts="{{[['^refresh',[['refreshGoodsSkuDetail']]]]}}" bind:refresh="__e" bind:__l="__l"></ns-goods-sku></block></view>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
{
"component": true,
"usingComponents": {
"uni-popup": "/components/uni-popup/uni-popup-sku",
"ns-form": "/components/ns-form/ns-form",
"ns-login": "/components/ns-login/ns-login"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.sku-info{max-height:75vh;height:45vh;position:relative;z-index:999}.sku-info .header{padding:30rpx 30rpx 20rpx 210rpx;position:relative;border-bottom:2rpx solid #eee;min-height:170rpx}.sku-info .header .img-wrap{width:160rpx;height:160rpx;position:absolute;left:20rpx;border-radius:10rpx;overflow:hidden;padding:2rpx;background-color:#fff;line-height:208rpx}.sku-info .header .img-wrap image{width:inherit;height:inherit}.sku-info .main{font-size:24rpx;line-height:40rpx;padding-right:40rpx}.sku-info .main .price-wrap{font-weight:700}.sku-info .main .price-wrap .unit{margin-right:4rpx}.sku-info .main .stock{font-size:24rpx;color:#909399;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:70rpx;overflow:hidden}.sku-info .main .price{word-wrap:break-word}.sku-info .main .sku-name{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;height:42rpx}.sku-info .main .sku-name .spec-value::after{content:"/"}.sku-info .main .sku-name .spec-value:last-child::after{content:""}.sku-info .sku-close{position:absolute;top:20rpx;right:40rpx;width:40rpx;height:80rpx;font-size:40rpx}.body-item{padding:0 30rpx;height:calc(100% - 360rpx);box-sizing:border-box;overflow:scroll}.body-item .wrap{height:calc(100% - 60rpx)}.body-item .sku-list-wrap{padding-bottom:0rpx}.body-item .sku-list-wrap .title{padding:20rpx 0;display:block}.body-item .sku-list-wrap .items{position:relative;display:inline-block;border:2rpx solid #eee;padding:4rpx 30rpx;border-radius:8rpx;margin:0 20rpx 20rpx 0;background-color:#fff;font-size:24rpx}.body-item .sku-list-wrap .selected{color:var(--base-color);border-color:var(--base-color)}.body-item .sku-list-wrap .items.disabled{border:2rpx dashed}.body-item .sku-list-wrap .items image{height:44rpx;width:44rpx;border-radius:10rpx;margin-right:10rpx;display:inline-block;vertical-align:middle}.body-item .number-wrap .number-line{padding:20rpx 0;line-height:72rpx;display:flex}.body-item .number-wrap .title{font-weight:400}.body-item .number-wrap .number{display:flex;height:72rpx;border-radius:6rpx;float:right;justify-content:flex-end;flex:1}.body-item .number-wrap .number button{display:inline-block;line-height:64rpx;height:68rpx;width:60rpx;font-size:48rpx;box-sizing:initial;border:2rpx solid #eee;padding:0;margin:0;border-radius:0;background-color:#fff!important}.body-item .number-wrap .number button.disabled{background:#f7f7f7!important}.body-item .number-wrap .number button.decrease{border-right-width:0!important}.body-item .number-wrap .number button.increase{border-left:0!important}.body-item .number-wrap .number button:after{border-radius:0;border:none}.body-item .number-wrap .number input{display:inline-block;line-height:64rpx;height:68rpx;min-width:90rpx;text-align:center;font-weight:700;border:2rpx solid;margin:0;vertical-align:top;background-color:#f8f8f8!important;flex:0;padding:0 5px}.footer{height:100rpx;width:100%;position:absolute;bottom:30rpx;bottom:calc(30rpx + constant(safe-area-inset-bottom));bottom:calc(30rpx + env(safe-area-inset-bottom));color:#fff;z-index:1;display:flex;justify-content:center;align-items:flex-start}.footer button{width:100%;height:80rpx;background-color:var(--goods-btn-color);font-weight:700;border:none}.presale-stock{height:auto!important}.balance{margin-left:10rpx;display:inline-block;line-height:1.3;font-size:24rpx}.balance text{font-weight:400}.balance .unit{margin-right:0!important}