tmp: 部分代码与UnishopV5结合,但是代码有严重缺陷

This commit is contained in:
2025-12-20 15:30:39 +08:00
parent ed5181b382
commit e263a616f6
183 changed files with 31316 additions and 18590 deletions

View File

@@ -64,7 +64,10 @@ export default {
longitude: null, // 经度
evaluateCount: 0, // 商品评论数量
deliveryType: null, // 配送方式
isVirtual: 0 //是否为虚拟商品
isVirtual: 0 ,//是否为虚拟商品
hasGlobalStore:false,
saleStore:'all',
isInitStoreData:false,
}
},
created() {
@@ -73,10 +76,7 @@ export default {
if (this.location) {
this.latitude = this.location.latitude;
this.longitude = this.location.longitude;
} else {
this.$util.getLocation();
}
this.getStoreData();
},
watch: {
location: function (nVal) {
@@ -95,26 +95,24 @@ export default {
this.source_member = params.source_member;
this.whetherCollection = params.whetherCollection;
this.posterParams = params.posterParams;
this.shareUrl = params.shareUrl;
this.goodsRoute = params.goodsRoute;
this.posterApi = params.posterApi;
this.isVirtual = params.isVirtual;
this.deliveryType = params.deliveryType;
this.evaluateConfig = params.evaluateConfig;
this.saleStore = params.sale_store;
if (this.evaluateConfig.evaluate_show == 1) {
//商品评论
this.getGoodsEvaluate(params.evaluateList);
this.evaluateCount = params.evaluateCount;
}
for (let k in this.deliveryType) {
if (k == 'store') {
this.isShowStore = true;
}
if( params.goods_class != 2 && params.goods_class !=3) this.isShowStore = true;
if(!this.isInitStoreData){
this.isInitStoreData = true;
this.getStoreData();
}
this.getService();
this.videoContext = uni.createVideoContext('goodsVideo');
@@ -144,11 +142,12 @@ export default {
closeStoreListPopup() {
this.$refs.storeListPopup.close();
},
getStoreData() {
getStoreData(){
//门店列表
let data = {
page: this.storeList.page,
page_size: this.storeList.page_size
page_size: this.storeList.page_size,
store_ids:this.saleStore
};
if (this.latitude && this.longitude) {
data.latitude = this.latitude;
@@ -161,6 +160,9 @@ export default {
if (this.storeList.page == 1) this.storeList.data == [];
if (res.code >= 0 && res.data) {
this.storeList.data = this.storeList.data.concat(res.data.list);
res.data.list.forEach(item=>{
if(item.store_id == this.globalStoreInfo.store_id) this.hasGlobalStore = true;
})
} else {
this.$util.showToast({
title: res.message
@@ -189,9 +191,6 @@ export default {
if (this.goodsEvaluate[index].images) this.goodsEvaluate[index].images = this.goodsEvaluate[index].images.split(",");
if (this.goodsEvaluate[index].is_anonymous == 1) this.goodsEvaluate[index].member_name = this.goodsEvaluate[index].member_name.replace(this.goodsEvaluate[index].member_name.substring(1, this.goodsEvaluate[index].member_name.length - 1), '***')
})
// if (this.goodsEvaluate.images) this.goodsEvaluate.images = this.goodsEvaluate.images.split(",");
// if (this.goodsEvaluate.is_anonymous == 1) this.goodsEvaluate.member_name = this.goodsEvaluate.member_name.replace(
// this.goodsEvaluate.member_name.substring(1, this.goodsEvaluate.member_name.length - 1), '***')
}
},
// 预览评价图片
@@ -263,6 +262,8 @@ export default {
copyUrl() {
let text = this.$config.h5Domain + this.shareUrl;
if (this.memberInfo && this.memberInfo.member_id) text += '&source_member=' + this.memberInfo.member_id;
var store_info = this.$store.state.globalStoreInfo;
if (store_info) text += '&store_id=' + store_info.store_id;
this.$util.copy(text, () => {
this.closeSharePopup();
});
@@ -283,10 +284,11 @@ export default {
getGoodsPoster() {
uni.showLoading({
'title': '海报生成中...'
})
});
//活动海报信息
if (this.memberInfo && this.memberInfo.member_id) this.posterParams.source_member = this.memberInfo.member_id;
var store_info = this.$store.state.globalStoreInfo;
if (store_info) this.posterParams.store_id= store_info.store_id;
this.$api.sendRequest({
url: this.posterApi,
data: {

View File

@@ -39,37 +39,37 @@
<slot name="price"></slot>
</view>
<view class="newdetail margin-bottom" v-if="goodsSkuDetail.isinformation == 0">
<view class="newdetail margin-bottom">
<!-- 入口区域 -->
<slot name="entrance"></slot>
<!-- 配送 -->
<!-- @click="$refs.deliveryType.open()" -->
<view class="item delivery-type" v-if="goodsSkuDetail.is_virtual == 0" >
<view class="label">{{$lang('send')}}</view>
<view class="item delivery-type" v-if="goodsSkuDetail.is_virtual == 0" @click="$refs.deliveryType.open()">
<view class="label">配送</view>
<block v-if="deliveryType">
<view class="box">
<block v-for="(item, index) in deliveryType" :key="index">
<text v-if="goodsSkuDetail.support_trade_type.indexOf(index) != -1">{{$lang('express')}}</text>
<!-- {{ item.name }} -->
<text v-if="goodsSkuDetail.support_trade_type.indexOf(index) != -1">{{ item.name }}</text>
</block>
</view>
<text class="iconfont icon-right"></text>
</block>
<block v-else>
<view class="box">未配置</view>
<view class="box">商家未配置配送方式</view>
</block>
</view>
<!-- 门店 -->
<!-- <view class="item store-wrap" @click="openStoreListPopup()" v-if="addonIsExist.store && globalStoreInfo && isShowStore">
<view class="label">门店</view>
<view class="list-wrap">
<view class="item store-wrap" @click="openStoreListPopup()" v-if="addonIsExist.store && globalStoreInfo && isShowStore">
<view class="label">适用门店</view>
<view class="list-wrap" v-if="hasGlobalStore">
<view class="name-wrap">
<text class="icondiy icon-system-shop"></text>
<text class="name">{{globalStoreInfo.store_name}}</text>
<text class="name">{{ globalStoreInfo.store_name}}</text>
</view>
<view class="close-desc" v-if="globalStoreInfo.status == 0 && globalStoreInfo.close_desc">
{{ globalStoreInfo.close_desc }}
</view>
<view class="other-wrap">
<text class="distance" v-if="parseFloat(globalStoreInfo.distance)">距离{{ globalStoreInfo.distance > 1 ? globalStoreInfo.distance + 'km' : globalStoreInfo.distance * 1000 + 'm' }}</text>
<text class="decorate" v-if="parseFloat(globalStoreInfo.distance)">.</text>
@@ -77,8 +77,23 @@
</view>
</view>
</view>
<view class="list-wrap" v-else-if="storeList && storeList.data.length">
<view class="name-wrap">
<text class="icondiy icon-system-shop"></text>
<text class="name">{{ storeList.data[0].store_name}}</text>
</view>
<view class="close-desc" v-if="storeList.data[0].status == 0 && storeList.data[0].close_desc">
{{ storeList.data[0].close_desc }}
</view>
<view class="other-wrap">
<text class="distance" v-if="parseFloat(storeList.data[0].distance)">距离{{ storeList.data[0].distance > 1 ? storeList.data[0].distance + 'km' : storeList.data[0].distance * 1000 + 'm' }}</text>
<text class="decorate" v-if="parseFloat(storeList.data[0].distance)">.</text>
<view class="address">{{ storeList.data[0].full_address + storeList.data[0].address }}
</view>
</view>
</view>
<text class="iconfont icon-right"></text>
</view> -->
</view>
<view class="item service" @click="openMerchantsServicePopup()" v-if="goodsSkuDetail.goods_service.length">
<view class="label">服务</view>
@@ -96,34 +111,6 @@
</view>
<text class="iconfont icon-right"></text>
</view>
</view>
<!--多规格区域-->
<view class="newdetail margin-bottom" v-if="goodsSkuDetail.sku_spec_format">
<!-- 入口区域 -->
<slot name="skuspec"></slot>
</view>
<view class="newdetail margin-bottom" v-if="goodsSkuDetail.merch_id > 0">
<!-- 入口区域 -->
<slot name="entrance"></slot>
<!-- 商家 -->
<view class="item store-wrap" @click="$util.redirectTo('/pages_promotion/merch/detail', { merch_id: goodsSkuDetail.merch_id })">
<view class="list-wrap" style="display: flex;">
<view class="name-wrap">
<image :src="$util.img(goodsSkuDetail.merchinfo.merch_image)" mode="widthFix" style="width: 100rpx;height: 100rpx;border-radius: 50rpx;"></image>
</view>
<view class="other-wrap">
<view class="address" style="margin-left: 30rpx;">
<view>{{goodsSkuDetail.merchinfo.merch_name}}</view>
<view style="font-size: 24rpx;color: #888;">官方认证商家值得信赖</view>
</view>
</view>
</view>
<text class="iconfont icon-right"></text>
</view>
</view>
<!-- 配送方式 -->
@@ -182,7 +169,7 @@
<uni-popup ref="storeListPopup" type="bottom">
<view class="goods-merchants-service-popup-layer popup-layer store-list-wrap">
<view class="head-wrap" @click="closeStoreListPopup()">
<text>门店列表</text>
<text>适用门店</text>
<text class="iconfont icon-close"></text>
</view>
<scroll-view scroll-y>
@@ -200,6 +187,8 @@
距离{{ item.distance > 1 ? item.distance + 'km' : item.distance * 1000 + 'm' }}
</text>
</view>
<view class="item-close-desc" v-if="item.status == 0 && item.close_desc">{{ item.close_desc }}
</view>
<view class="item-time" v-if="item.open_date">营业时间{{ item.open_date }}
</view>
<view class="item-address">{{ item.full_address + item.address }}</view>
@@ -228,7 +217,7 @@
</view>
<!-- 促销 -->
<!-- <view class="community-model" @touchmove.prevent.stop @click.stop="onCloseCommunity()" v-show="isCommunity">
<view class="community-model" @touchmove.prevent.stop @click.stop="onCloseCommunity()" v-show="isCommunity">
<view class="community-model-content" @click.stop>
<view class="community-model-content-radius">
<view>添加社群</view>
@@ -241,13 +230,13 @@
<view class="community-model-close" @click.stop="onCloseCommunity()">
<text class="iconfont icon-close"></text>
</view>
</view> -->
</view>
<!-- 参与流程 -->
<slot name="articipation"></slot>
<!-- 商品评价 -->
<view class="group-wrap" v-if="evaluateConfig.evaluate_show == 1 && goodsSkuDetail.isinformation == 0" style="display: none;">
<view class="group-wrap" v-if="evaluateConfig.evaluate_show == 1">
<view class="goods-evaluate" @click="toEvaluateDetail(goodsSkuDetail.goods_id)">
<view class="tit">
<!-- <view class="tit" :class="{ active: goodsEvaluate.content }"> -->
@@ -263,8 +252,7 @@
</view>
</view>
</view>
<view class="evaluate-item" v-for="(item, index) in goodsEvaluate" :key="index"
v-if="item.content">
<view class="evaluate-item" v-for="(item, index) in goodsEvaluate" :key="index" v-if="item.content">
<view class="evaluator">
<view class="evaluator-info">
<view class="evaluator-face">
@@ -294,7 +282,7 @@
</view>
</view>
</view>
<view class="goods-attr" v-if="goodsSkuDetail.goods_attr_format && goodsSkuDetail.goods_attr_format.length > 0">
<view class="title">规格属性</view>
<view class="attr-wrap">
@@ -315,24 +303,19 @@
</view>
</view>
<!-- 详情 -->
<view class="goods-detail-tab">
<view class="detail-tab">
<view class="tab-item">{{$lang('details')}}</view>
<view class="tab-item">商品详情</view>
</view>
<view class="detail-content active">
<view class="detail-content-item">
<view class="goods-details" v-if="goodsSkuDetail.goods_content">
<!-- <rich-text :nodes="goodsSkuDetail.goods_content" @click="showImg($event)" :data-nodes="goodsSkuDetail.goods_content"></rich-text> -->
<!-- {{goodsSkuDetail.goods_content}} -->
<mp-html :content="goodsSkuDetail.goods_content" />
<!-- :loading="loading" @preview="preview" @navigate="navigate" -->
<ns-mp-html :content="goodsSkuDetail.goods_content"></ns-mp-html>
</view>
<view class="goods-details active" v-else></view>
<view class="goods-details active" v-else>该商家暂无上传相关详情哦</view>
<view class="goods-details" v-if="service && service.is_display == 1 && service.content">
<rich-text :nodes="service.content" @click="showImg($event)" :data-nodes="service.content"></rich-text>
<ns-mp-html :content="service.content"></ns-mp-html>
</view>
</view>
</view>