商品地址优化

master
gongfuxiang 2022-02-12 18:17:26 +08:00
parent 178fafef6d
commit dd1b18124f
23 changed files with 325 additions and 336 deletions

View File

@ -1,5 +1,5 @@
<template>
<view>
<view>
<view v-if="(propData || null) != null && propData.length > 0">
<block v-for="(floor, index) in propData" :key="index">
<block v-if="floor.goods_list.length > 0 && floor.home_data_location == propLocation">
@ -17,9 +17,9 @@
</scroll-view>
</view>
<view class="goods-list">
<view v-for="(goods, index2) in floor.goods_list" :key="vi" class="goods bg-white border-radius-main oh pr">
<view v-for="(goods, index2) in floor.goods_list" :key="index2" class="goods bg-white border-radius-main oh pr">
<!-- 商品主体内容 -->
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + goods.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + goods.id" hover-class="none">
<image class="goods-img dis-block" :src="goods.images" mode="aspectFit"></image>
<view class="goods-base padding-horizontal-main margin-top-sm">
<view class="goods-title multi-text margin-bottom-sm">{{goods.title}}</view>
@ -39,18 +39,18 @@
</view>
</view>
</block>
</block>
</block>
</view>
</view>
</template>
</view>
</template>
<script>
const app = getApp();
export default {
data() {
return {};
},
components: {},
export default {
data() {
return {};
},
components: {},
props: {
propCurrencySymbol: {
type: String,
@ -71,15 +71,15 @@
propLabel: {
type: [Array,Object,String],
default: null
}
},
}
},
methods: {
// url
url_event(e) {
app.globalData.url_event(e);
}
}
};
</script>
<style>
}
};
</script>
<style>
</style>

View File

@ -108,7 +108,7 @@
<view v-if="(buy_datetime_info || null) != null && (buy_datetime_info.is_select || false) == true" class="buy-data-item bg-white border-radius-main spacing-mb arrow-right">
<text class="cr-base">{{buy_datetime_info.title}}</text>
<view class="right-value dis-inline-block fr tr">
<component-time-select :propTitle="buy_datetime_info.placeholder" :propRangeDay="buy_datetime_info.range_day || 2" :propRangeStartTime="buy_datetime_info.time_start" :propRangeEndTime="buy_datetime_info.time_end" :propDisabled="buy_datetime_info.disabled" :propIsShow="buy_datetime_info.status" @selectEvent="buy_datetime_event">
<component-time-select :propTitle="buy_datetime_info.title" :propRangeDay="buy_datetime_info.range_day || 2" :propRangeStartTime="buy_datetime_info.time_start" :propRangeEndTime="buy_datetime_info.time_end" :propDisabled="buy_datetime_info.disabled" :propIsShow="buy_datetime_info.status" @selectEvent="buy_datetime_event">
<text v-if="(buy_datetime_info.value || null) == null" class="cr-grey">{{buy_datetime_info.placeholder}}</text>
<text v-else class="cr-base">{{buy_datetime_info.value}}</text>
</component-time-select>

View File

@ -14,7 +14,7 @@
</view>
<view class="items">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<!-- 图片 -->
<image :class="'goods-image fl radius '+((item.is_error || 0) == 1 ? 'opacity' : '')" :src="item.images" mode="aspectFill"></image>
<!-- 错误 -->
@ -26,7 +26,7 @@
<!-- 基础 -->
<view class="goods-base">
<!-- 标题规格 -->
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<view :class="'goods-title multi-text margin-bottom-sm '+((item.is_error || 0) == 1 ? 'cr-grey' : '')">{{item.title}}</view>
</navigator>
<view v-if="item.spec != null" class="margin-bottom-sm">
@ -184,7 +184,7 @@
var user = app.globalData.get_user_info(this, "init");
if (user != false) {
//
if (app.globalData.user_is_need_login(user)) {
if (app.globalData.user_is_need_login(user)) {
uni.stopPullDownRefresh();
uni.showModal({
title: '温馨提示',
@ -204,9 +204,9 @@
});
}
}
});
//
});
//
app.globalData.show_share_menu();
} else {
this.get_data();
@ -217,9 +217,9 @@
data_list_loding_status: 0,
data_bottom_line_status: false,
data_list_loding_msg: '请先授权用户信息'
});
//
});
//
app.globalData.show_share_menu();
}
},
@ -264,11 +264,11 @@
if (app.globalData.is_login_check(res.data, this, 'get_data')) {
app.globalData.showToast(res.data.msg);
}
}
//
setTimeout(function() {
app.globalData.show_share_menu();
}
//
setTimeout(function() {
app.globalData.show_share_menu();
}, 1000);
},
fail: () => {

View File

@ -509,7 +509,7 @@
<!-- 在线客服 -->
<block v-if="goods != null">
<component-online-service :propIsNav="true" :propCard="true" :propTitle="goods.title" :propImg="goods.images" :propPath="'/pages/goods-detail/goods-detail?goods_id='+goods.id"></component-online-service>
<component-online-service :propIsNav="true" :propCard="true" :propTitle="goods.title" :propImg="goods.images" :propPath="'/pages/goods-detail/goods-detail?id='+goods.id"></component-online-service>
</block>
<block v-else>
<component-online-service :propIsNav="true"></component-online-service>
@ -744,132 +744,120 @@
//
init() {
//
if ((this.params.goods_id || null) == null) {
uni.stopPullDownRefresh();
this.setData({
data_bottom_line_status: false,
data_list_loding_status: 2,
data_list_loding_msg: '商品ID有误'
});
} else {
uni.showLoading({
title: '加载中...'
});
this.setData({
data_list_loding_status: 1
});
uni.request({
url: app.globalData.get_request_url("detail", "goods"),
method: "POST",
data: {
goods_id: this.params.goods_id
},
dataType: "json",
success: res => {
uni.stopPullDownRefresh();
uni.hideLoading();
if (res.data.code == 0) {
var data = res.data.data;
var goods = data.goods;
this.setData({
data_bottom_line_status: true,
data_list_loding_status: 3,
goods: goods,
indicator_dots: goods.photo.length > 1,
autoplay: goods.photo.length > 1,
goods_photo: goods.photo,
nav_more_list: data.nav_more_list || [],
goods_specifications_choose: goods.specifications.choose || [],
goods_content_app: goods.content_app || [],
buy_number: goods.buy_min_number || 1,
nav_favor_button_info: {
"text": (goods.is_favor == 1 ? '已' : '') + '收藏',
"status": goods.is_favor
},
buy_button: data.buy_button || null,
top_nav_title_data: data.middle_tabs_nav || [],
goods_spec_base_price: goods.price,
goods_spec_base_original_price: goods.original_price,
goods_spec_base_inventory: goods.inventory,
goods_spec_base_images: goods.images,
show_field_price_text: goods.show_field_price_text == '价格' ? null : goods.show_field_price_text.replace(/<[^>]+>/g, "") || null,
plugins_seckill_data: data.plugins_seckill_data || null,
plugins_seckill_is_valid: (data.plugins_seckill_data || null) != null && (data.plugins_seckill_data.is_valid || 0) == 1 ? 1 : 0,
plugins_coupon_data: data.plugins_coupon_data || null,
quick_nav_cart_count: data.common_cart_total || 0,
plugins_salerecords_data: (data.plugins_salerecords_data || null) == null || data.plugins_salerecords_data.length <= 0 ? null : data.plugins_salerecords_data,
plugins_shop_data: (data.plugins_shop_data || null) == null || data.plugins_shop_data.length <= 0 ? null : data.plugins_shop_data,
plugins_wholesale_data: ((data.plugins_wholesale_data || null) == null) ? null : data.plugins_wholesale_data,
plugins_label_data: (data.plugins_label_data || null) == null || (data.plugins_label_data.base || null) == null || (data.plugins_label_data.data || null) == null || data.plugins_label_data.data.length <= 0 ? null : data.plugins_label_data
});
uni.showLoading({
title: '加载中...'
});
this.setData({
data_list_loding_status: 1
});
uni.request({
url: app.globalData.get_request_url("detail", "goods"),
method: "POST",
data: this.params,
dataType: "json",
success: res => {
uni.stopPullDownRefresh();
uni.hideLoading();
if (res.data.code == 0) {
var data = res.data.data;
var goods = data.goods;
this.setData({
data_bottom_line_status: true,
data_list_loding_status: 3,
goods: goods,
indicator_dots: goods.photo.length > 1,
autoplay: goods.photo.length > 1,
goods_photo: goods.photo,
nav_more_list: data.nav_more_list || [],
goods_specifications_choose: goods.specifications.choose || [],
goods_content_app: goods.content_app || [],
buy_number: goods.buy_min_number || 1,
nav_favor_button_info: {
"text": (goods.is_favor == 1 ? '已' : '') + '收藏',
"status": goods.is_favor
},
buy_button: data.buy_button || null,
top_nav_title_data: data.middle_tabs_nav || [],
goods_spec_base_price: goods.price,
goods_spec_base_original_price: goods.original_price,
goods_spec_base_inventory: goods.inventory,
goods_spec_base_images: goods.images,
show_field_price_text: goods.show_field_price_text == '价格' ? null : goods.show_field_price_text.replace(/<[^>]+>/g, "") || null,
plugins_seckill_data: data.plugins_seckill_data || null,
plugins_seckill_is_valid: (data.plugins_seckill_data || null) != null && (data.plugins_seckill_data.is_valid || 0) == 1 ? 1 : 0,
plugins_coupon_data: data.plugins_coupon_data || null,
quick_nav_cart_count: data.common_cart_total || 0,
plugins_salerecords_data: (data.plugins_salerecords_data || null) == null || data.plugins_salerecords_data.length <= 0 ? null : data.plugins_salerecords_data,
plugins_shop_data: (data.plugins_shop_data || null) == null || data.plugins_shop_data.length <= 0 ? null : data.plugins_shop_data,
plugins_wholesale_data: ((data.plugins_wholesale_data || null) == null) ? null : data.plugins_wholesale_data,
plugins_label_data: (data.plugins_label_data || null) == null || (data.plugins_label_data.base || null) == null || (data.plugins_label_data.data || null) == null || data.plugins_label_data.data.length <= 0 ? null : data.plugins_label_data
});
//
this.setData({
//
share_info: {
title: goods.title,
desc: goods.simple_desc || goods.seo_desc,
path: '/pages/goods-detail/goods-detail',
query: 'goods_id=' + goods.id,
img: goods.images
},
//
share_product: {
item_code: goods.id.toString(),
title: goods.title,
image_list: goods.photo.map(function(v) {
return v.images;
}),
desc: goods.simple_desc || goods.seo_desc,
category_list: goods.category_names || [],
src_mini_program_path: '/pages/goods-detail/goods-detail?goods_id=' + goods.id,
brand_info: {
name: goods.brand_name || ''
}
//
this.setData({
//
share_info: {
title: goods.title,
desc: goods.simple_desc || goods.seo_desc,
path: '/pages/goods-detail/goods-detail',
query: 'id=' + goods.id,
img: goods.images
},
//
share_product: {
item_code: goods.id.toString(),
title: goods.title,
image_list: goods.photo.map(function(v) {
return v.images;
}),
desc: goods.simple_desc || goods.seo_desc,
category_list: goods.category_names || [],
src_mini_program_path: '/pages/goods-detail/goods-detail?id=' + goods.id,
brand_info: {
name: goods.brand_name || ''
}
});
//
if (this.plugins_shop_data != null) {
this.setData({
nav_home_button_info: {
"text": "店铺",
"icon": this.plugins_shop_data.shop_icon,
"value": "/pages/plugins/shop/detail/detail?id=" + this
.plugins_shop_data.id
}
});
}
//
this.goods_specifications_choose_handle_dont(0);
//
this.plugins_salerecords_tips_handle();
} else {
});
//
if (this.plugins_shop_data != null) {
this.setData({
data_bottom_line_status: false,
data_list_loding_status: 0,
data_list_loding_msg: res.data.msg
nav_home_button_info: {
"text": "店铺",
"icon": this.plugins_shop_data.shop_icon,
"value": "/pages/plugins/shop/detail/detail?id=" + this
.plugins_shop_data.id
}
});
}
//
app.globalData.show_share_menu();
},
fail: () => {
uni.stopPullDownRefresh();
uni.hideLoading();
//
this.goods_specifications_choose_handle_dont(0);
//
this.plugins_salerecords_tips_handle();
} else {
this.setData({
data_bottom_line_status: false,
data_list_loding_status: 2,
data_list_loding_msg: '服务器请求出错'
data_list_loding_status: 0,
data_list_loding_msg: res.data.msg
});
app.globalData.showToast("服务器请求出错");
}
});
}
//
app.globalData.show_share_menu();
},
fail: () => {
uni.stopPullDownRefresh();
uni.hideLoading();
this.setData({
data_bottom_line_status: false,
data_list_loding_status: 2,
data_list_loding_msg: '服务器请求出错'
});
app.globalData.showToast("服务器请求出错");
}
});
},
//
@ -1078,17 +1066,17 @@
});
return false;
} else {
var data = this.params;
data['goods_id'] = this.goods.id;
data['spec'] = JSON.stringify(spec);
data['stock'] = this.buy_number;
uni.showLoading({
title: '处理中...'
});
uni.request({
url: app.globalData.get_request_url('save', 'cart'),
method: 'POST',
data: {
"goods_id": this.goods.id,
"stock": this.buy_number,
"spec": JSON.stringify(spec)
},
data: data,
dataType: 'json',
success: res => {
uni.hideLoading();
@ -1195,15 +1183,15 @@
if (spec.length <= 0) {
return false;
}
var self = this;
//
var data = this.params;
data['id'] = this.goods.id;
data['spec'] = JSON.stringify(spec);
uni.request({
url: app.globalData.get_request_url('spectype', 'goods'),
method: 'POST',
data: {
"id": this.goods.id,
"spec": JSON.stringify(spec)
},
data: data,
dataType: 'json',
success: (res) => {
if (res.data.code == 0) {
@ -1263,14 +1251,14 @@
}
//
var data = this.params;
data['id'] = this.goods.id;
data['spec'] = JSON.stringify(spec);
data['stock'] = this.buy_number;
uni.request({
url: app.globalData.get_request_url('specdetail', 'goods'),
method: 'POST',
data: {
"id": this.goods.id,
"spec": JSON.stringify(spec),
"stock": this.buy_number,
},
data: data,
dataType: 'json',
success: res => {
if (res.data.code == 0) {
@ -1375,14 +1363,14 @@
}
//
var data = this.params;
data['id'] = this.goods.id;
data['spec'] = spec;
data['stock'] = this.buy_number;
uni.request({
url: app.globalData.get_request_url('stock', 'goods'),
method: 'POST',
data: {
"id": this.goods.id,
"spec": spec,
"stock": this.buy_number,
},
data: data,
dataType: 'json',
success: res => {
if (res.data.code == 0) {

View File

@ -18,7 +18,7 @@
<view v-if="data_list.length > 0" class="data-list padding-horizontal-main padding-top-main oh">
<view v-for="(item, index) in data_list" :key="index" class="item border-radius-main bg-white padding-bottom-sm margin-bottom-main oh pr">
<!-- 商品主体内容 -->
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>

View File

@ -83,7 +83,7 @@
<swiper-item class="padding-right-main">
<view class="item bg-white border-radius-main oh pr ht-auto">
<!-- 商品主体内容 -->
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="goods-base padding-left padding-right margin-top-sm">
<view class="goods-title multi-text margin-bottom-sm">{{item.title}}</view>
@ -108,16 +108,16 @@
</block>
</swiper>
</view>
</view>
<!-- 活动配置-楼层顶部 - 插件 -->
<block v-if="(plugins_activity_data || null) != null && plugins_activity_data.length > 0">
<component-activity-list :propData="plugins_activity_data" propLocation="0" :propLabel="plugins_label_data" :propCurrencySymbol="currency_symbol"></component-activity-list>
</block>
<!-- 博客-楼层顶部 - 插件 -->
<block v-if="(plugins_blog_data || null) != null">
<component-blog-list :propConfig="plugins_blog_data.base" :propData="plugins_blog_data.data" propLocation="0"></component-blog-list>
</view>
<!-- 活动配置-楼层顶部 - 插件 -->
<block v-if="(plugins_activity_data || null) != null && plugins_activity_data.length > 0">
<component-activity-list :propData="plugins_activity_data" propLocation="0" :propLabel="plugins_label_data" :propCurrencySymbol="currency_symbol"></component-activity-list>
</block>
<!-- 博客-楼层顶部 - 插件 -->
<block v-if="(plugins_blog_data || null) != null">
<component-blog-list :propConfig="plugins_blog_data.base" :propData="plugins_blog_data.data" propLocation="0"></component-blog-list>
</block>
<!-- 楼层数据 -->
@ -146,7 +146,7 @@
<view v-if="floor.goods.length > 0" class="goods-list">
<view v-for="(goods, index2) in floor.goods" :key="index2" class="goods bg-white border-radius-main oh pr">
<!-- 商品主体内容 -->
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + goods.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + goods.id" hover-class="none">
<image class="goods-img dis-block" :src="goods.images" mode="aspectFit"></image>
<view class="goods-base padding-horizontal-main margin-top-sm">
<view class="goods-title multi-text margin-bottom-sm">{{goods.title}}</view>
@ -169,14 +169,14 @@
</block>
</block>
<!-- 活动配置-楼层底部 - 插件 -->
<block v-if="(plugins_activity_data || null) != null && plugins_activity_data.length > 0">
<component-activity-list :propData="plugins_activity_data" propLocation="1" :propLabel="plugins_label_data" :propCurrencySymbol="currency_symbol"></component-activity-list>
</block>
<!-- 博客-楼层底部 - 插件 -->
<block v-if="(plugins_blog_data || null) != null">
<component-blog-list :propConfig="plugins_blog_data.base" :propData="plugins_blog_data.data" propLocation="1"></component-blog-list>
<!-- 活动配置-楼层底部 - 插件 -->
<block v-if="(plugins_activity_data || null) != null && plugins_activity_data.length > 0">
<component-activity-list :propData="plugins_activity_data" propLocation="1" :propLabel="plugins_label_data" :propCurrencySymbol="currency_symbol"></component-activity-list>
</block>
<!-- 博客-楼层底部 - 插件 -->
<block v-if="(plugins_blog_data || null) != null">
<component-blog-list :propConfig="plugins_blog_data.base" :propData="plugins_blog_data.data" propLocation="1"></component-blog-list>
</block>
<!--- 底部购买记录 - 插件 -->
@ -196,7 +196,7 @@
<text v-if="(item.user.province || null) != null"><text class="padding-left-xs padding-right-xs">-</text>{{item.user.province}}</text>
</view>
<view class="item-content fl">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none" class="single-text">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none" class="single-text">
<image mode="widthFix" :src="item.images" class="va-m br"></image>
<text class="margin-left-sm single-text">{{item.title}}</text>
</navigator>
@ -218,7 +218,7 @@
</view>
<!-- 留言 -->
<view v-if="load_status == 1 && common_app_is_enable_answer == 1" class="bg-white border-radius-main oh spacing-10">
<view v-if="load_status == 1 && common_app_is_enable_answer == 1" class="bg-white border-radius-main oh spacing-mt">
<navigator url="/pages/answer-form/answer-form" hover-class="none">
<image mode="widthFix" :src="static_url+'answer-form.jpg'" class="wh-auto border-radius-main"></image>
</navigator>
@ -259,8 +259,8 @@
import componentNoData from "../../components/no-data/no-data";
import componentBottomLine from "../../components/bottom-line/bottom-line";
import componentCopyright from "../../components/copyright/copyright";
import componentOnlineService from "../../components/online-service/online-service";
import componentActivityList from "../../components/activity-list/activity-list";
import componentOnlineService from "../../components/online-service/online-service";
import componentActivityList from "../../components/activity-list/activity-list";
import componentBlogList from "../../components/blog-list/blog-list";
var common_static_url = app.globalData.get_static_url('common');
@ -295,8 +295,8 @@
// +
top_content_style: 'background-image: url("'+static_url+'nav-top.png");'+'padding-top:'+(bar_height+8)+'px;',
search_style: '',
search_is_fixed: 0,
//
search_is_fixed: 0,
//
is_single_page: app.globalData.is_current_single_page() || 0,
//
plugins_seckill_is_valid: 0,
@ -315,8 +315,8 @@
plugins_popupscreen_cache_key: 'plugins_popupscreen_cache_key',
plugins_popupscreen_timer: null,
//
plugins_mourning_data: 0,
//
plugins_mourning_data: 0,
//
plugins_blog_data: null
};
},
@ -332,8 +332,8 @@
componentNoData,
componentBottomLine,
componentCopyright,
componentOnlineService,
componentActivityList,
componentOnlineService,
componentActivityList,
componentBlogList
},
props: {},
@ -410,7 +410,7 @@
plugins_label_data: (data.plugins_label_data || null) == null || (data.plugins_label_data.base || null) == null || (data.plugins_label_data.data || null) == null || data.plugins_label_data.data.length <= 0 ? null : data.plugins_label_data,
plugins_homemiddleadv_data: (data.plugins_homemiddleadv_data || null) == null || data.plugins_homemiddleadv_data.length <= 0 ? null : data.plugins_homemiddleadv_data,
plugins_popupscreen_data: data.plugins_popupscreen_data || null,
plugins_mourning_data: data.plugins_mourning_data || 0,
plugins_mourning_data: data.plugins_mourning_data || 0,
plugins_blog_data: data.plugins_blog_data || null
});

View File

@ -26,7 +26,7 @@
</view>
<view class="data-list oh">
<view v-for="(item, index) in data.goods_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>
@ -159,9 +159,9 @@
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg
});
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -14,23 +14,23 @@
</view>
</view>
</view>
<view class="padding-main border-radius-main bg-white oh spacing-mb">
<view v-if="(data.video_url || null) != null && (data.is_live_play || 0) == 0">
<video :src="data.video_url" class="wh-auto" :autoplay="false" :controls="true"></video>
</view>
<view class="padding-main border-radius-main bg-white oh spacing-mb">
<view v-if="(data.video_url || null) != null && (data.is_live_play || 0) == 0">
<video :src="data.video_url" class="wh-auto" :autoplay="false" :controls="true"></video>
</view>
<mp-html :content="data.content" />
</view>
<!-- 上一篇下一篇 -->
<view v-if="(last_next || null) != null" class="last-next-data spacing-mb">
<view v-if="(last_next.last || null) != null">
<text class="cr-gray va-m">上一篇</text>
<navigator :url="last_next.last.url" open-type="redirect" hover-class="none" class="dis-inline-block va-m cr-blue">{{last_next.last.title}}</navigator>
</view>
<view v-if="(last_next.next || null) != null" class="margin-top-sm">
<text class="cr-gray va-m">下一篇</text>
<navigator :url="last_next.next.url" open-type="redirect" hover-class="none" class="dis-inline-block va-m cr-blue">{{last_next.next.title}}</navigator>
</view>
</view>
<!-- 上一篇下一篇 -->
<view v-if="(last_next || null) != null" class="last-next-data spacing-mb">
<view v-if="(last_next.last || null) != null">
<text class="cr-gray va-m">上一篇</text>
<navigator :url="last_next.last.url" open-type="redirect" hover-class="none" class="dis-inline-block va-m cr-blue">{{last_next.last.title}}</navigator>
</view>
<view v-if="(last_next.next || null) != null" class="margin-top-sm">
<text class="cr-gray va-m">下一篇</text>
<navigator :url="last_next.next.url" open-type="redirect" hover-class="none" class="dis-inline-block va-m cr-blue">{{last_next.next.title}}</navigator>
</view>
</view>
<!-- 推荐博文 -->
@ -59,7 +59,7 @@
</view>
<view class="goods-list oh">
<view v-for="(item, index) in data.goods_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>
@ -96,7 +96,7 @@
params: null,
data_base: null,
data: null,
right_list: [],
right_list: [],
last_next: null,
//
share_info: {}
@ -161,7 +161,7 @@
data_list_loding_status: 3,
data_base: data.base || null,
data: blog,
right_list: data.right_list || [],
right_list: data.right_list || [],
last_next: data.last_next || null
});
@ -184,9 +184,9 @@
data_list_loding_msg: res.data.msg
});
app.globalData.showToast(res.data.msg);
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -83,7 +83,7 @@
</view>
<view class="goods-list oh">
<view v-for="(item, index) in goods_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>

View File

@ -23,7 +23,7 @@
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="30">
<view v-if="data_list.length > 0" class="data-list oh padding-horizontal-main padding-top-main">
<view v-for="(item, index) in data_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>

View File

@ -39,7 +39,7 @@
</view>
<view class="data-list oh">
<view v-for="(item, index) in data_base.goods_exchange_data" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods.id" hover-class="none">
<image class="goods-img dis-block" :src="item.goods.images" mode="aspectFit"></image>
<view class="padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.goods.title}}</view>
@ -167,9 +167,9 @@
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg
});
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -105,13 +105,12 @@
/**
*
*/
.left-content {
width: 180rpx;
height: calc(100% - 120rpx);
*/
.left-content-actual {
padding-bottom: 120rpx;
overflow-x: hidden;
overflow-y: auto;
}
.left-content {
width: 180rpx;
}
.left-content .item {
height: 80rpx;
@ -136,13 +135,12 @@
/**
*
*/
*/
.right-content-actual {
padding-bottom: 105rpx;
}
.right-content {
width: calc(100% - 220rpx);
height: calc(100% - 110rpx);
padding-bottom: 110rpx;
overflow-x: hidden;
overflow-y: auto;
width: calc(100% - 220rpx);
}
.goods-list .goods-img {
width: 160rpx;
@ -205,8 +203,6 @@
z-index: 2;
}
.cart-content .cart-list {
overflow-x: hidden;
overflow-y: auto;
max-height: 60vh;
}
.cart-content .cart-list .goods-img {

View File

@ -13,10 +13,10 @@
<!-- 搜索 -->
<view class="nav-search fr va-m">
<!-- #ifndef H5 || MP-KUAISHOU -->
<component-search @onsearch="search_button_event" @onicon="search_icon_event" :propIsIconOnEvent="true" :propIsOnEvent="true" :propIsRequired="false" propIcon="scan" propIconColor="#fff" propPlaceholderClass="cr-grey" propTextColor="#fff" propPlaceholder="商品搜索" propBgColor="rgb(0 0 0 / 60%)" propBrColor="rgb(78 78 78)"></component-search>
<component-search @onsearch="search_button_event" @onicon="search_icon_event" :propIsIconOnEvent="true" :propIsOnEvent="true" :propIsRequired="false" propIcon="scan" propIconColor="#fff" propPlaceholderClass="cr-grey" propTextColor="#fff" propPlaceholder="商品搜索" propBgColor="rgba(0, 0, 0, 0.1)" propBrColor="rgb(205 205 205 / 60%)"></component-search>
<!-- #endif -->
<!-- #ifdef H5 || MP-KUAISHOU -->
<component-search @onsearch="search_button_event" :propIsOnEvent="true" :propIsRequired="false" propIconColor="#9A9A9A" propPlaceholderClass="cr-grey" propTextColor="#fff" propPlaceholder="商品搜索" propBgColor="rgb(0 0 0 / 60%)" propBrColor="rgb(78 78 78)"></component-search>
<component-search @onsearch="search_button_event" :propIsOnEvent="true" :propIsRequired="false" propIconColor="#9A9A9A" propPlaceholderClass="cr-grey" propTextColor="#fff" propPlaceholder="商品搜索" propBgColor="rgba(0, 0, 0, 0.1)" propBrColor="rgb(205 205 205 / 60%)"></component-search>
<!-- #endif -->
</view>
</view>
@ -75,62 +75,66 @@
<!-- 内容 -->
<view class="content oh">
<block v-if="(data || null) != null && data.length > 0">
<view class="left-content fl bg-white">
<view :class="'item tc cr-base text-size-xs cp ' + (nav_active_index == -1 ? 'active cr-main border-color-main fw-b' : '')" :data-index="-1" @tap="nav_event"></view>
<block v-for="(item, ni) in data" :key="ni">
<view :class="'item tc cr-base text-size-xs pr cp ' + (nav_active_index == ni ? 'active cr-main border-color-main fw-b' : '')" :data-index="ni" @tap="nav_event">
<text>{{item.name}}</text>
<view v-if="(item.buy_number || 0) > 0" class="badge-icon pa">
<component-badge :propNumber="item.buy_number"></component-badge>
<scroll-view :scroll-y="true" class="left-content fl ht-auto bg-white">
<view class="left-content-actual">
<view :class="'item tc cr-base text-size-xs cp ' + (nav_active_index == -1 ? 'active cr-main border-color-main fw-b' : '')" :data-index="-1" @tap="nav_event"></view>
<block v-for="(item, ni) in data" :key="ni">
<view :class="'item tc cr-base text-size-xs pr cp ' + (nav_active_index == ni ? 'active cr-main border-color-main fw-b' : '')" :data-index="ni" @tap="nav_event">
<text>{{item.name}}</text>
<view v-if="(item.buy_number || 0) > 0" class="badge-icon pa">
<component-badge :propNumber="item.buy_number"></component-badge>
</view>
</view>
</view>
</block>
</view>
<view class="right-content padding-right-main fr goods-list">
<block v-if="goods_count > 0">
<block v-for="(item, index) in data" :key="index">
<block v-if="nav_active_index == -1 || nav_active_index == index">
<block v-if="(item.goods_list || null) != null && item.goods_list.length > 0">
<view v-if="nav_active_index == -1" class="text-size-sm fw-b padding-bottom-sm">{{item.name}}</view>
<view v-for="(goods, gindex) in item.goods_list" :key="goods.id" class="item bg-white padding-main border-radius-main oh spacing-mb">
<navigator :url="'/pages/goods-detail/goods-detail?is_opt_back=1&goods_id='+goods.id" hover-class="none">
<image :src="goods.images" mode="widthFix" class="goods-img radius fl br"></image>
<view class="goods-base fr">
<view class="goods-base-content">
<view class="goods-title text-size-sm single-text">{{goods.title}}</view>
<view v-if="(goods.simple_desc || null) != null" class="simple-desc cr-red text-size-xs margin-top-xs multi-text">{{goods.simple_desc}}</view>
</view>
<view class="margin-top-sm oh">
<view class="sales-price text-size-sm single-text dis-inline-block va-m">{{currency_symbol}}{{goods.min_price}}</view>
<view class="tc fr">
<block v-if="(goods.is_alone_buy || 0) == 0">
<view v-if="(goods.buy_number || 0) > 0" class="dis-inline-block va-m cp" :data-index="index" :data-gindex="gindex" data-type="0" @tap.stop="buy_number_event">
<uni-icons type="minus" size="22" color="#f00" ></uni-icons>
</view>
<view v-if="(goods.buy_number || 0) > 0" class="buy-number dis-inline-block cr-base text-size-sm padding-left-xs padding-right-xs va-m">{{goods.buy_number}}</view>
<view class="dis-inline-block va-m cp" :data-index="index" :data-gindex="gindex" data-type="1" @tap.stop="buy_number_event">
<uni-icons type="plus" size="22" color="#1AAD19" ></uni-icons>
</view>
</block>
<block v-else>
<text class="cr-grey text-size-xs">{{goods.is_alone_buy_msg}}</text>
</block>
</block>
</view>
</scroll-view>
<scroll-view :scroll-y="true" class="right-content padding-right-main fr ht-auto goods-list">
<view class="right-content-actual">
<block v-if="goods_count > 0">
<block v-for="(item, index) in data" :key="index">
<block v-if="nav_active_index == -1 || nav_active_index == index">
<block v-if="(item.goods_list || null) != null && item.goods_list.length > 0">
<view v-if="nav_active_index == -1" class="text-size-sm fw-b padding-bottom-sm">{{item.name}}</view>
<view v-for="(goods, gindex) in item.goods_list" :key="goods.id" class="item bg-white padding-main border-radius-main oh spacing-mb">
<navigator :url="'/pages/goods-detail/goods-detail?id='+goods.id+'&is_opt_back=1&buy_use_type_index='+buy_use_type_index" hover-class="none">
<image :src="goods.images" mode="widthFix" class="goods-img radius fl br"></image>
<view class="goods-base fr">
<view class="goods-base-content">
<view class="goods-title text-size-sm single-text">{{goods.title}}</view>
<view v-if="(goods.simple_desc || null) != null" class="simple-desc cr-red text-size-xs margin-top-xs multi-text">{{goods.simple_desc}}</view>
</view>
<view class="margin-top-sm oh">
<view class="sales-price text-size-sm single-text dis-inline-block va-m">{{currency_symbol}}{{goods.min_price}}</view>
<view class="tc fr">
<block v-if="(goods.is_error || 0) == 0">
<view v-if="(goods.buy_number || 0) > 0" class="dis-inline-block va-m cp" :data-index="index" :data-gindex="gindex" data-type="0" @tap.stop="buy_number_event">
<uni-icons type="minus" size="22" color="#f00" ></uni-icons>
</view>
<view v-if="(goods.buy_number || 0) > 0" class="buy-number dis-inline-block cr-base text-size-sm padding-left-xs padding-right-xs va-m">{{goods.buy_number}}</view>
<view class="dis-inline-block va-m cp" :data-index="index" :data-gindex="gindex" data-type="1" @tap.stop="buy_number_event">
<uni-icons type="plus" size="22" color="#1AAD19" ></uni-icons>
</view>
</block>
<block v-else>
<text class="cr-grey text-size-xs">{{goods.is_error_msg}}</text>
</block>
</view>
</view>
</view>
</view>
</navigator>
</view>
</block>
<block v-else-if="nav_active_index != -1">
<component-no-data propStatus="0" propMsg="无相关数据"></component-no-data>
</navigator>
</view>
</block>
<block v-else-if="nav_active_index != -1">
<component-no-data propStatus="0" propMsg="无相关数据"></component-no-data>
</block>
</block>
</block>
</block>
</block>
<block v-else>
<component-no-data propStatus="0" propMsg="无相关数据"></component-no-data>
</block>
</view>
<block v-else>
<component-no-data propStatus="0" propMsg="无相关数据"></component-no-data>
</block>
</view>
</scroll-view>
</block>
<block v-else>
<!-- 提示信息 -->
@ -138,6 +142,7 @@
</block>
</view>
<view class="pr">
<!-- 购物车 -->
<block v-if="cart_status">
@ -153,9 +158,9 @@
<text class="cr-red va-m text-size-xs margin-left-xs">清空</text>
</view>
</view>
<view class="cart-list goods-list">
<scroll-view :scroll-y="true" class="cart-list goods-list">
<view v-for="(goods, index) in cart.data" :key="index" class="item padding-main oh spacing-mb">
<navigator :url="'/pages/goods-detail/goods-detail?is_opt_back=1&goods_id='+goods.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id='+goods.goods_id+'&is_opt_back=1&buy_use_type_index='+buy_use_type_index" hover-class="none">
<image :src="goods.images" mode="widthFix" class="goods-img radius fl br"></image>
<view class="goods-base fr">
<view class="goods-base-content">
@ -182,7 +187,7 @@
</view>
</navigator>
</view>
</view>
</scroll-view>
</block>
<block v-else>
<component-no-data propStatus="0" propMsg="请先选购商品"></component-no-data>
@ -493,7 +498,7 @@
} else {
//
uni.navigateTo({
url: '/pages/goods-detail/goods-detail?is_opt_back=1&is_opt_buy_status=1&opt_buy_event_type=cart&goods_id='+temp_goods.id
url: '/pages/goods-detail/goods-detail?id='+temp_goods.id+'&is_opt_back=1&is_opt_buy_status=1&opt_buy_event_type=cart&buy_use_type_index='+this.buy_use_type_index
});
return false;
}
@ -802,8 +807,8 @@
for(var k in temp_data[i]['goods_list']) {
if(temp_data[i]['goods_list'][k]['id'] == value) {
//
if((temp_data[i]['goods_list'][k]['is_alone_buy'] || 0) != 0) {
app.globalData.showToast(temp_data[i]['goods_list'][k]['is_alone_buy_msg']);
if((temp_data[i]['goods_list'][k]['is_error'] || 0) != 0) {
app.globalData.showToast(temp_data[i]['goods_list'][k]['is_error_msg']);
return false;
}
goods_id = value;

View File

@ -23,7 +23,7 @@
<view class="goods bg-white padding-main border-radius-main spacing-mb">
<view class="br-b padding-bottom-main fw-b text-size">商品信息</view>
<view v-for="(item, index) in detail.items" :key="index" class="goods-item br-b-dashed oh padding-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-image fl radius" :src="item.images" mode="aspectFill"></image>
<view class="goods-base pr">
<view class="multi-text">{{item.title}}</view>
@ -173,7 +173,7 @@
{name: "创建时间", value: data.data.add_time || ''},
{name: "添加时间", value: data.data.add_time || ''},
{name: "接收时间", value: data.data.receive_time || ''},
{name: "服务时间", value: data.data.service_time || ''},
{name: "服务时间", value: data.data.service_time || ''},
{name: "完成时间", value: data.data.success_time || ''},
{name: "取消时间", value: data.data.cancel_time || ''},
],

View File

@ -26,7 +26,7 @@
<view v-if="goods.length > 0">
<view class="data-list oh">
<view v-for="(item, index) in goods" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>
@ -159,9 +159,9 @@
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg
});
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -93,7 +93,7 @@
<block v-if="goods_list.length > 0">
<block v-for="(item, index) in goods_list" :key="index">
<view v-if="item.active != 0" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top">
<view class="multi-text">{{item.title}}</view>
@ -261,9 +261,9 @@
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg
});
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -17,7 +17,7 @@
<scroll-view :scroll-y="true" class="scroll-box scroll-box-ece-nav" @scrolltolower="scroll_lower" lower-threshold="30">
<view v-if="data_list.length > 0" class="data-list padding-horizontal-main padding-top-main oh">
<view v-for="(item, index) in data_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="base padding-horizontal-main margin-top">
<view class="multi-text">{{item.title}}</view>

View File

@ -56,7 +56,7 @@
</view>
<view class="data-list oh">
<view v-for="(item, index) in data.goods_list" :key="index" class="item padding-bottom-sm border-radius-main bg-white margin-bottom-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.id" hover-class="none">
<image class="goods-img dis-block" :src="item.images" mode="aspectFit"></image>
<view class="padding-horizontal-main margin-top-sm">
<view class="multi-text">{{item.title}}</view>
@ -185,9 +185,9 @@
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg
});
}
//
}
//
app.globalData.show_share_menu();
},
fail: () => {

View File

@ -3,7 +3,7 @@
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="30">
<view v-if="data_list.length > 0" class="padding-horizontal-main padding-top-main">
<view v-for="(item, index) in data_list" :key="index" class="padding-main border-radius-main oh bg-white spacing-mb">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-image fl radius" :src="item.images" mode="aspectFill"></image>
<view class="goods-base">
<view class="goods-title multi-text">{{item.title}}</view>

View File

@ -3,7 +3,7 @@
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="30">
<view v-if="data_list.length > 0" class="padding-horizontal-main padding-top-main">
<view v-for="(item, index) in data_list" :key="index" class="padding-main border-radius-main oh bg-white spacing-mb">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-image fl radius" :src="item.images" mode="aspectFill"></image>
<view class="goods-base">
<view class="goods-title multi-text">{{item.title}}</view>

View File

@ -5,7 +5,7 @@
<form @submit="formSubmit" class="form-container">
<view v-for="(item, index) in detail.items" :key="index" class="form-gorup oh">
<view class="oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-image fl radius br margin-right-lg" :src="item.images" mode="aspectFill"></image>
</navigator>
<view class="item-base fl margin-top-sm">
@ -84,14 +84,14 @@
this.setData({
params: params
});
},
onShow() {
//
this.init();
//
app.globalData.show_share_menu();
},
onShow() {
//
this.init();
//
app.globalData.show_share_menu();
},
//

View File

@ -23,7 +23,7 @@
<view class="goods bg-white padding-main border-radius-main spacing-mb">
<view class="br-b padding-bottom-main fw-b text-size">商品信息</view>
<view v-for="(item, index) in detail.items" :key="index" class="goods-item br-b-dashed oh padding-main">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + item.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + item.goods_id" hover-class="none">
<image class="goods-image fl radius" :src="item.images" mode="aspectFill"></image>
<view class="goods-base pr">
<view class="multi-text">{{item.title}}</view>

View File

@ -4,7 +4,7 @@
<!-- 商品 -->
<view class="goods padding-main border-radius-main bg-white spacing-mb">
<view class="goods-item oh">
<navigator :url="'/pages/goods-detail/goods-detail?goods_id=' + order_data.items.goods_id" hover-class="none">
<navigator :url="'/pages/goods-detail/goods-detail?id=' + order_data.items.goods_id" hover-class="none">
<image class="goods-image fl radius" :src="order_data.items.images" mode="aspectFill"></image>
<view class="goods-base">
<view class="multi-text">{{order_data.items.title}}</view>
@ -291,9 +291,9 @@
onShow() {
//
this.init();
//
this.init();
//
app.globalData.show_share_menu();
},