chore(组件): 更新依赖

This commit is contained in:
2026-01-05 18:31:42 +08:00
parent 405f37a3f6
commit 531dc347f7
7 changed files with 729 additions and 726 deletions

View File

@@ -161,15 +161,11 @@ let menuButtonInfo = {};
menuButtonInfo = uni.getMenuButtonBoundingClientRect(); menuButtonInfo = uni.getMenuButtonBoundingClientRect();
// #endif // #endif
import nsGoodsSkuCategory from '@/components/ns-goods-sku/ns-goods-sku-category.vue';
import DiyMinx from './minx.js' import DiyMinx from './minx.js'
var contentWrapHeight, query, cartPosition; var contentWrapHeight, query, cartPosition;
// 商品分类 // 商品分类
export default { export default {
components: {
nsGoodsSkuCategory
},
name: 'diy-category', name: 'diy-category',
props: { props: {
value: { value: {

View File

@@ -1,6 +1,6 @@
<template> <template>
<view class="goods-sku" @touchmove.prevent.stop> <view class="goods-sku" @touchmove.prevent.stop>
<uni-popup ref="skuPopup" :type="popupType"> <uni-popup-sku-category ref="skuPopup" :type="popupType">
<view class="sku-layer"> <view class="sku-layer">
<view class="sku-content"> <view class="sku-content">
<view class="sku-info" :style="{ height: systemInfo.windowHeight * 2 + 'rpx' }"> <view class="sku-info" :style="{ height: systemInfo.windowHeight * 2 + 'rpx' }">
@@ -9,19 +9,21 @@
<image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" /> <image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" />
</view> </view>
<view class="main"> <view class="main">
<view class="goodname">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? goodsDetail.en_goods_name : goodsDetail.goods_name) }}</view> <view class="goodname">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ?
goodsDetail.en_goods_name : goodsDetail.goods_name) }}</view>
<view class="other-info"> <view class="other-info">
<view class="stock color-tip" v-if="goodsDetail.stock_show"> <view class="stock color-tip" v-if="goodsDetail.stock_show">
库存{{ goodsDetail.stock }}{{ goodsDetail.unit }}</view> 库存{{ goodsDetail.stock }}{{ goodsDetail.unit }}</view>
<view class="starting-num" v-if="parseFloat(goodsDetail.min_buy)"> <view class="starting-num" v-if="parseFloat(goodsDetail.min_buy)">
起售{{goodsDetail.min_buy}} 起售{{ goodsDetail.min_buy }}
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="body-item"> <view class="body-item">
<scroll-view scroll-y class="wrap"> <scroll-view scroll-y class="wrap">
<view class="sku-list-wrap" v-for="(item, index) in goodsDetail.goods_spec_format" :key="index"> <view class="sku-list-wrap" v-for="(item, index) in goodsDetail.goods_spec_format"
:key="index">
<text class="title font-size-tag">{{ item.spec_name }}</text> <text class="title font-size-tag">{{ item.spec_name }}</text>
<view class="sku-list_item"> <view class="sku-list_item">
<view v-for="(item_value, index_value) in item.value" :key="index_value" :class="{ <view v-for="(item_value, index_value) in item.value" :key="index_value" :class="{
@@ -29,7 +31,9 @@
disabled: item_value['disabled'] || (!item_value['selected'] && disabled) disabled: item_value['disabled'] || (!item_value['selected'] && disabled)
}" class="items color-line-border font-size-tag" }" class="items color-line-border font-size-tag"
@click="change(item_value.sku_id, item_value.spec_id)"> @click="change(item_value.sku_id, item_value.spec_id)">
<image v-if="item_value.image" :src="$util.img(item_value.image, { size: 'small' })" @error="valueImageError(index, index_value)" /> <image v-if="item_value.image"
:src="$util.img(item_value.image, { size: 'small' })"
@error="valueImageError(index, index_value)" />
<text>{{ item_value.spec_value_name }}</text> <text>{{ item_value.spec_value_name }}</text>
</view> </view>
</view> </view>
@@ -40,7 +44,8 @@
<view class="sku-name font-size-goods-tag"> <view class="sku-name font-size-goods-tag">
<template v-if="goodsDetail.sku_spec_format" class="color-tip"> <template v-if="goodsDetail.sku_spec_format" class="color-tip">
已选择 已选择
<text class="color-tip" v-for="(item, index) in goodsDetail.sku_spec_format" :key="index">{{ item.spec_value_name }}</text> <text class="color-tip" v-for="(item, index) in goodsDetail.sku_spec_format"
:key="index">{{ item.spec_value_name }}</text>
</template> </template>
</view> </view>
<view class="footer-bottom"> <view class="footer-bottom">
@@ -55,15 +60,19 @@
<text class="desc iconfont icon-jianshao color-base-text"></text> <text class="desc iconfont icon-jianshao color-base-text"></text>
<view class="click-event"></view> <view class="click-event"></view>
</view> </view>
<input type="number" class="uni-input" @blur="blur" v-model="number" placeholder="0" @input="keyInput(false)" /> <input type="number" class="uni-input" @blur="blur" v-model="number"
<view class="num-action" :id="'select-sku-num-' + goodsDetail.goods_id" @click="changeNum('+', $event)"> placeholder="0" @input="keyInput(false)" />
<text class="add iconfont icon-add-fill color-base-text change_hover"></text> <view class="num-action" :id="'select-sku-num-' + goodsDetail.goods_id"
@click="changeNum('+', $event)">
<text
class="add iconfont icon-add-fill color-base-text change_hover"></text>
<view class="click-event"></view> <view class="click-event"></view>
</view> </view>
</view> </view>
<view v-else-if="number == 0 && isLoad"> <view v-else-if="number == 0 && isLoad">
<view class="num-action"> <view class="num-action">
<button type="primary" v-if="goodsDetail.stock && goodsDetail.stock != 0" @click="confirm($event)">加入购物车</button> <button type="primary" v-if="goodsDetail.stock && goodsDetail.stock != 0"
@click="confirm($event)">加入购物车</button>
<button type="primary" disabled="true" v-else>确定</button> <button type="primary" disabled="true" v-else>确定</button>
<view class="click-event"></view> <view class="click-event"></view>
</view> </view>
@@ -75,20 +84,16 @@
</view> </view>
</view> </view>
<view class="sku-close iconfont icon-close-guanbi" @click="closeSkuPopup()"></view> <view class="sku-close iconfont icon-close-guanbi" @click="closeSkuPopup()"></view>
</uni-popup> </uni-popup-sku-category>
<ns-login ref="login"></ns-login> <ns-login ref="login"></ns-login>
</view> </view>
</template> </template>
<script> <script>
import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup-sku-new.vue'; // 商品SKU
// 商品SKU export default {
export default {
name: 'ns-goods-sku-category', name: 'ns-goods-sku-category',
components: {
uniPopup
},
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -147,7 +152,7 @@
this.$refs.skuPopup.open(); this.$refs.skuPopup.open();
}, },
hide() { hide() {
if(this.$refs.skuPopup) this.$refs.skuPopup.close(); if (this.$refs.skuPopup) this.$refs.skuPopup.close();
}, },
change(skuId, spec_id) { change(skuId, spec_id) {
if (this.disabled) return; if (this.disabled) return;
@@ -457,14 +462,14 @@
this.btnSwitch = false; this.btnSwitch = false;
}, },
fail: res => { fail: res => {
if(this.$refs.skuPopup) this.$refs.skuPopup.close(); if (this.$refs.skuPopup) this.$refs.skuPopup.close();
this.btnSwitch = false; this.btnSwitch = false;
} }
}); });
}); });
}, },
closeSkuPopup() { closeSkuPopup() {
if(this.$refs.skuPopup) this.$refs.skuPopup.close(); if (this.$refs.skuPopup) this.$refs.skuPopup.close();
}, },
imageError() { imageError() {
this.goodsDetail.sku_image = this.$util.getDefaultImage().goods; this.goodsDetail.sku_image = this.$util.getDefaultImage().goods;
@@ -532,31 +537,31 @@
return cart; return cart;
} }
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.sku-content { .sku-content {
background: #ffffff; background: #ffffff;
border-radius: 20rpx; border-radius: 20rpx;
} }
.sku-close { .sku-close {
color: #fff; color: #fff;
width: 50rpx; width: 50rpx;
text-align: center; text-align: center;
font-size: 60rpx; font-size: 60rpx;
border-radius: 50%; border-radius: 50%;
margin: 40rpx auto 0; margin: 40rpx auto 0;
} }
.sku-layer .sku-info { .sku-layer .sku-info {
width: 600rpx; width: 600rpx;
height: 60vh !important; height: 60vh !important;
position: relative; position: relative;
z-index: 999; z-index: 999;
} }
.sku-layer .sku-info .header { .sku-layer .sku-info .header {
// padding: 30rpx 0 30rpx 300rpx; // padding: 30rpx 0 30rpx 300rpx;
/* #ifdef MP-ALIPAY */ /* #ifdef MP-ALIPAY */
// padding: 50rpx 0 50rpx 300rpx; // padding: 50rpx 0 50rpx 300rpx;
@@ -566,9 +571,9 @@
position: relative; position: relative;
border-bottom: 2rpx solid rgba(0, 0, 0, 0.1); border-bottom: 2rpx solid rgba(0, 0, 0, 0.1);
z-index: 2; z-index: 2;
} }
.sku-layer .sku-info .header .img-wrap { .sku-layer .sku-info .header .img-wrap {
width: 114rpx; width: 114rpx;
height: 114rpx; height: 114rpx;
margin-right: 20rpx; margin-right: 20rpx;
@@ -584,21 +589,21 @@
padding: 2rpx; padding: 2rpx;
background-color: #fff; background-color: #fff;
line-height: 208rpx; line-height: 208rpx;
} }
.sku-layer .sku-info .header .img-wrap image { .sku-layer .sku-info .header .img-wrap image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.sku-layer .sku-info .main { .sku-layer .sku-info .main {
font-size: 24rpx; font-size: 24rpx;
line-height: 40rpx; line-height: 40rpx;
flex: 1; flex: 1;
width: 0; width: 0;
} }
.sku-layer .sku-info .main .goodname { .sku-layer .sku-info .main .goodname {
word-wrap: break-word; word-wrap: break-word;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@@ -606,78 +611,78 @@
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
line-height: 1.3; line-height: 1.3;
} }
.sku-layer .sku-info .main .other-info { .sku-layer .sku-info .main .other-info {
margin-top: 20rpx; margin-top: 20rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.sku-layer .sku-info .main .starting-num { .sku-layer .sku-info .main .starting-num {
color: $color-tip; color: $color-tip;
font-size: $font-size-tag; font-size: $font-size-tag;
} }
.footer-left .price { .footer-left .price {
word-wrap: break-word; word-wrap: break-word;
font-size: $font-size-toolbar; font-size: $font-size-toolbar;
color: var(--price-color); color: var(--price-color);
} }
.sku-layer .sku-info .main .stock { .sku-layer .sku-info .main .stock {
line-height: 1; line-height: 1;
font-size: $font-size-tag; font-size: $font-size-tag;
} }
.sku-layer .sku-info .main .sku-name { .sku-layer .sku-info .main .sku-name {
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
height: 90rpx; height: 90rpx;
overflow: hidden; overflow: hidden;
} }
.sku-layer .sku-info .main .sku-name text { .sku-layer .sku-info .main .sku-name text {
margin-right: 10rpx; margin-right: 10rpx;
} }
.sku-layer .sku-info .sku-close { .sku-layer .sku-info .sku-close {
position: absolute; position: absolute;
top: 20rpx; top: 20rpx;
right: 20rpx; right: 20rpx;
width: 40rpx; width: 40rpx;
height: 80rpx; height: 80rpx;
font-size: 50rpx; font-size: 50rpx;
} }
.sku-layer .body-item { .sku-layer .body-item {
padding: 0 30rpx 30rpx 30rpx; padding: 0 30rpx 30rpx 30rpx;
height: calc(100% - 282rpx); height: calc(100% - 282rpx);
box-sizing: border-box; box-sizing: border-box;
overflow: scroll; overflow: scroll;
} }
.sku-layer .body-item .wrap { .sku-layer .body-item .wrap {
height: calc(100% - 116rpx); height: calc(100% - 116rpx);
} }
.sku-layer .body-item .sku-list-wrap {} .sku-layer .body-item .sku-list-wrap {}
.sku-layer .body-item .sku-list-wrap .title { .sku-layer .body-item .sku-list-wrap .title {
font-weight: 400; font-weight: 400;
padding: 20rpx 0; padding: 20rpx 0;
margin: 0; margin: 0;
display: block; display: block;
} }
.sku-layer .body-item .sku-list-wrap .sku-list_item { .sku-layer .body-item .sku-list-wrap .sku-list_item {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.sku-layer .body-item .sku-list-wrap .items { .sku-layer .body-item .sku-list-wrap .items {
text-align: center; text-align: center;
position: relative; position: relative;
display: inline-block; display: inline-block;
@@ -686,39 +691,39 @@
border-radius: 8rpx; border-radius: 8rpx;
margin: 0 20rpx 20rpx 0; margin: 0 20rpx 20rpx 0;
background-color: #fff !important; background-color: #fff !important;
} }
.sku-layer .body-item .sku-list-wrap .items.disabled { .sku-layer .body-item .sku-list-wrap .items.disabled {
border: 2rpx dashed; border: 2rpx dashed;
} }
.sku-layer .body-item .sku-list-wrap .items image { .sku-layer .body-item .sku-list-wrap .items image {
height: 48rpx; height: 48rpx;
width: 48rpx; width: 48rpx;
border-radius: 4rpx; border-radius: 4rpx;
margin-right: 10rpx; margin-right: 10rpx;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
.sku-layer .body-item .number-wrap .number-line { .sku-layer .body-item .number-wrap .number-line {
padding: 20rpx 0; padding: 20rpx 0;
line-height: 72rpx; line-height: 72rpx;
} }
.sku-layer .body-item .number-wrap .title { .sku-layer .body-item .number-wrap .title {
font-weight: 400; font-weight: 400;
} }
.sku-layer .body-item .number-wrap .limit-txt {} .sku-layer .body-item .number-wrap .limit-txt {}
.sku-layer .body-item .number-wrap .number { .sku-layer .body-item .number-wrap .number {
height: 72rpx; height: 72rpx;
border-radius: 6rpx; border-radius: 6rpx;
float: right; float: right;
} }
.sku-layer .body-item .number-wrap .number button { .sku-layer .body-item .number-wrap .number button {
display: inline-block; display: inline-block;
line-height: 64rpx; line-height: 64rpx;
height: 68rpx; height: 68rpx;
@@ -729,22 +734,22 @@
padding: 0; padding: 0;
margin: 0; margin: 0;
border-radius: 0; border-radius: 0;
} }
.sku-layer .body-item .number-wrap .number button.decrease { .sku-layer .body-item .number-wrap .number button.decrease {
border-right: 2rpx solid #fff !important; border-right: 2rpx solid #fff !important;
} }
.sku-layer .body-item .number-wrap .number button.increase { .sku-layer .body-item .number-wrap .number button.increase {
border-left: 2rpx solid #fff !important; border-left: 2rpx solid #fff !important;
} }
.sku-layer .body-item .number-wrap .number button:after { .sku-layer .body-item .number-wrap .number button:after {
border-radius: 0; border-radius: 0;
border: none; border: none;
} }
.sku-layer .body-item .number-wrap .number input { .sku-layer .body-item .number-wrap .number input {
display: inline-block; display: inline-block;
line-height: 64rpx; line-height: 64rpx;
height: 68rpx; height: 68rpx;
@@ -755,9 +760,9 @@
margin: 0; margin: 0;
padding: 0; padding: 0;
vertical-align: top; vertical-align: top;
} }
.sku-layer .footer { .sku-layer .footer {
width: calc(100% - 60rpx); width: calc(100% - 60rpx);
position: absolute; position: absolute;
bottom: 26rpx; bottom: 26rpx;
@@ -775,9 +780,9 @@
margin-right: 10rpx; margin-right: 10rpx;
} }
} }
} }
.sku-layer .footer .footer-bottom { .sku-layer .footer .footer-bottom {
margin-top: 24rpx; margin-top: 24rpx;
display: flex; display: flex;
justify-content: be; justify-content: be;
@@ -799,36 +804,36 @@
line-height: 60rpx; line-height: 60rpx;
font-size: 30rpx; font-size: 30rpx;
} }
} }
.position-bottom { .position-bottom {
bottom: 98rpx !important; bottom: 98rpx !important;
} }
// 数量加减样式 // 数量加减样式
.change_num { .change_num {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
} }
.change_num>text, .change_num>text,
.change_num .iconfont { .change_num .iconfont {
font-size: 48rpx; font-size: 48rpx;
} }
.change_num input { .change_num input {
width: 70rpx; width: 70rpx;
height: 36rpx; height: 36rpx;
line-height: 36rpx; line-height: 36rpx;
text-align: center; text-align: center;
} }
.change_num .num-action { .change_num .num-action {
position: relative; position: relative;
} }
.change_num .num-action .click-event { .change_num .num-action .click-event {
position: absolute; position: absolute;
width: 2rpx; width: 2rpx;
height: 2rpx; height: 2rpx;
@@ -836,17 +841,17 @@
top: 0; top: 0;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
z-index: 5; z-index: 5;
} }
/deep/ .uni-popup__wrapper { /deep/ .uni-popup__wrapper {
background: transparent !important; background: transparent !important;
} }
/deep/ .sku-layer .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box { /deep/ .sku-layer .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box {
background: transparent !important; background: transparent !important;
} }
/deep/ .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box { /deep/ .uni-popup__wrapper.uni-custom .uni-popup__wrapper-box {
background: transparent !important; background: transparent !important;
} }
</style> </style>

View File

@@ -1,6 +1,6 @@
<template> <template>
<view class="goods-sku" @touchmove.prevent.stop> <view class="goods-sku" @touchmove.prevent.stop>
<uni-popup ref="skuPopup" type="bottom" class="sku-layer" @change="popclose"> <uni-popup-sku ref="skuPopup" type="bottom" class="sku-layer" @change="popclose">
<view class="sku-info" :style="{ height: skuHeight }"> <view class="sku-info" :style="{ height: skuHeight }">
<view class="header"> <view class="header">
<block v-if="type == 'point' && goodsDetail.type && goodsDetail.type != 1"> <block v-if="type == 'point' && goodsDetail.type && goodsDetail.type != 1">
@@ -208,19 +208,15 @@
<button type="primary" v-else disabled="true">该商品已下架</button> <button type="primary" v-else disabled="true">该商品已下架</button>
</view> </view>
</view> </view>
</uni-popup> </uni-popup-sku>
<ns-login ref="login"></ns-login> <ns-login ref="login"></ns-login>
</view> </view>
</template> </template>
<script> <script>
import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup-sku.vue';
// 商品SKU // 商品SKU
export default { export default {
name: 'ns-goods-sku', name: 'ns-goods-sku',
components: {
uniPopup
},
props: { props: {
goodsId: { goodsId: {
type: [Number, String], type: [Number, String],

View File

@@ -955,7 +955,15 @@
"custom": { "custom": {
"diy-*(\\W.*)": "@/components-diy/diy$1.vue", "diy-*(\\W.*)": "@/components-diy/diy$1.vue",
"uni-*(\\W.*)": "@/uni_modules/uni$1/components/uni$1/uni$1.vue", "uni-*(\\W.*)": "@/uni_modules/uni$1/components/uni$1/uni$1.vue",
"MescrollUni": "@/components/mescroll/my-list-mescroll.vue"
"mescroll-uni": "@/components/mescroll/my-list-mescroll.vue",
"ns-goods-sku-index": "@/components/ns-goods-sku/ns-goods-sku-index.vue",
"ns-goods-sku-category": "@/components/ns-goods-sku/ns-goods-sku-category.vue",
"x-skeleton": "@/uni_modules/x-skeleton/components/x-skeleton/x-skeleton.vue",
"mp-html": "@/uni_modules/mp-html/components/mp-html/mp-html.vue",
"uni-popup-sku": "@/uni_modules/uni-popup/components/uni-popup/uni-popup-sku.vue",
"uni-popup-sku-category": "@/uni_modules/uni-popup/components/uni-popup/uni-popup-sku-category.vue"
} }
}, },
"preloadRule": { "preloadRule": {

View File

@@ -7,8 +7,6 @@
<script> <script>
import htmlParser from '@/common/js/html-parser'; import htmlParser from '@/common/js/html-parser';
export default { export default {
components: {
},
data() { data() {
return { return {
content:'', content:'',