mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2026-06-06 03:56:57 +08:00
百度小程序适配
This commit is contained in:
@ -73,7 +73,7 @@
|
||||
<view class="item bg-white {{item.is_operable == 0 ? 'item-disabled' : ''}}" style="border:1px solid {{item.bg_color_value}};">
|
||||
<view class="v-left fl">
|
||||
<view class="base single-text" style="color:{{item.bg_color_value}};">
|
||||
<text class="symbol">{{price_symbol}}</text>
|
||||
<text a:if="{{item.type == 0}}" class="symbol">{{price_symbol}}</text>
|
||||
<text class="price">{{item.discount_value}}</text>
|
||||
<text class="unit">{{item.type_unit}}</text>
|
||||
</view>
|
||||
|
||||
@ -81,11 +81,14 @@
|
||||
</view>
|
||||
|
||||
<!-- 扩展数据 -->
|
||||
<view a:if="{{extension_data.length > 0}}" class="extension-list bg-white spacing-mt">
|
||||
<view a:for="{{extension_data}}" class="item br-b oh">
|
||||
<view a:if="{{extension_data.length > 0}}" class="panel-item spacing-mt extension-list">
|
||||
<view class="panel-title">扩展数据</view>
|
||||
<view class="panel-content bg-white">
|
||||
<view a:for="{{extension_data}}" a:key="item" class="item br-b oh">
|
||||
<text class="title">{{item.name}}</text>
|
||||
<text class="content cr-888 br-l">{{item.tips}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<import src="/pages/common/bottom_line.axml" />
|
||||
|
||||
@ -68,7 +68,7 @@ App({
|
||||
// 请求地址
|
||||
request_url: "{{request_url}}",
|
||||
request_url: 'http://shopxo.com/',
|
||||
// request_url: 'https://dev.shopxo.net/',
|
||||
request_url: 'https://dev.shopxo.net/',
|
||||
|
||||
// 基础信息
|
||||
application_title: "{{application_title}}",
|
||||
|
||||
@ -41,14 +41,40 @@
|
||||
/**
|
||||
* 商品
|
||||
*/
|
||||
.goods .goods-item:not(:last-child) {
|
||||
.goods-group-list .goods-item:not(:last-child) {
|
||||
border-bottom: 1px dashed #efefef;
|
||||
}
|
||||
.goods-item {
|
||||
padding: 20rpx 10rpx;
|
||||
.goods-group-list {
|
||||
padding: 0 10rpx 10rpx 10rpx;
|
||||
}
|
||||
.goods-group-hd {
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
.goods-group-title {
|
||||
font-weight: bold;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.goods-group-alias {
|
||||
border: 1px solid #3bb4f2;
|
||||
color: #3bb4f2;
|
||||
padding: 2rpx 10rpx;
|
||||
border-radius: 6rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.goods-group-footer .original-price {
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.goods-group-map-submit {
|
||||
font-size: 24rpx;
|
||||
padding: 5rpx 20rpx;
|
||||
background: #f0f0f0;
|
||||
border-radius: 6rpx;
|
||||
}
|
||||
.goods-title, .goods-spec {
|
||||
margin-bottom: 10rpx;
|
||||
margin-bottom: 5rpx;
|
||||
}
|
||||
.goods-item {
|
||||
padding: 10rpx 0;
|
||||
}
|
||||
.goods-image {
|
||||
width: 160rpx;
|
||||
@ -119,6 +145,7 @@
|
||||
*/
|
||||
.extension-list {
|
||||
background-color: #ffffeb;
|
||||
border: 1px solid #ffe2cf;
|
||||
}
|
||||
.extension-list .item {
|
||||
padding: 20rpx 10rpx;
|
||||
@ -136,10 +163,10 @@
|
||||
.content-textarea-view,
|
||||
.content-textarea-view textarea {
|
||||
height: 180rpx;
|
||||
padding: 5rpx;
|
||||
}
|
||||
.content-textarea-view textarea,
|
||||
.content-textarea-view view {
|
||||
padding: 10rpx;
|
||||
padding: 12rpx;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -19,16 +19,14 @@ Page({
|
||||
common_site_type: 0,
|
||||
extraction_address: [],
|
||||
site_model: 0,
|
||||
buy_header_nav: [
|
||||
{ name: "快递邮寄", value: 0 },
|
||||
{ name: "自提点取货", value: 2 }
|
||||
],
|
||||
buy_header_nav: [{ name: "快递邮寄", value: 0 }, { name: "自提点取货", value: 2 }],
|
||||
|
||||
// 优惠劵
|
||||
plugins_coupon_data: null,
|
||||
plugins_use_coupon_id: 0,
|
||||
plugins_choice_coupon_value: '选择优惠劵',
|
||||
popup_plugins_coupon_status: false
|
||||
plugins_use_coupon_ids: [],
|
||||
plugins_choice_coupon_value: [],
|
||||
popup_plugins_coupon_status: false,
|
||||
popup_plugins_coupon_index: null
|
||||
},
|
||||
onLoad(params) {
|
||||
//params['data'] = '{"buy_type":"goods","goods_id":"1","stock":"1","spec":"[]"}';
|
||||
@ -63,7 +61,7 @@ Page({
|
||||
if ((cache_address || null) != null) {
|
||||
this.setData({
|
||||
address: cache_address,
|
||||
address_id: cache_address.id,
|
||||
address_id: cache_address.id
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -77,12 +75,11 @@ Page({
|
||||
var data = this.data.params;
|
||||
data['address_id'] = this.data.address_id;
|
||||
data['payment_id'] = this.data.payment_id;
|
||||
data['coupon_id'] = this.data.plugins_use_coupon_id;
|
||||
data['site_model'] = this.data.site_model;
|
||||
swan.request({
|
||||
url: app.get_request_url("index", "buy"),
|
||||
method: "POST",
|
||||
data: data,
|
||||
data: this.request_data_coupon_merge(data),
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.stopPullDownRefresh();
|
||||
@ -105,18 +102,23 @@ Page({
|
||||
|
||||
// 优惠劵选择处理
|
||||
if ((data.plugins_coupon_data || null) != null) {
|
||||
if ((data.plugins_coupon_data.coupon_choice || null) != null) {
|
||||
this.setData({ plugins_choice_coupon_value: data.plugins_coupon_data.coupon_choice.coupon.desc });
|
||||
} else {
|
||||
var coupon_count = (data.plugins_coupon_data.coupon_list || null) != null ? data.plugins_coupon_data.coupon_list.length : 0;
|
||||
this.setData({ plugins_choice_coupon_value: coupon_count > 0 ? '可选优惠劵' + coupon_count + '张' : '暂无可用优惠劵' });
|
||||
var plugins_choice_coupon_value = [];
|
||||
for (var i in data.plugins_coupon_data) {
|
||||
var cupk = data.plugins_coupon_data[i]['warehouse_id'];
|
||||
if ((data.plugins_coupon_data[i]['coupon_data']['coupon_choice'] || null) != null) {
|
||||
plugins_choice_coupon_value[cupk] = data.plugins_coupon_data[i]['coupon_data']['coupon_choice']['desc'];
|
||||
} else {
|
||||
var coupon_count = (data.plugins_coupon_data[i]['coupon_data']['coupon_list'] || null) != null ? data.plugins_coupon_data[i]['coupon_data'].coupon_list.length : 0;
|
||||
plugins_choice_coupon_value[cupk] = coupon_count > 0 ? '可选优惠劵' + coupon_count + '张' : '暂无可用优惠劵';
|
||||
}
|
||||
}
|
||||
this.setData({ plugins_choice_coupon_value: plugins_choice_coupon_value });
|
||||
}
|
||||
|
||||
// 地址
|
||||
this.setData({
|
||||
address: data.base.address || null,
|
||||
address_id: ((data.base.address || null) != null) ? data.base.address.id : null
|
||||
address_id: (data.base.address || null) != null ? data.base.address.id : null
|
||||
});
|
||||
swan.setStorage({
|
||||
key: app.data.cache_buy_user_address_select_key,
|
||||
@ -149,6 +151,17 @@ Page({
|
||||
});
|
||||
},
|
||||
|
||||
// 请求参数合并优惠券参数
|
||||
request_data_coupon_merge(data) {
|
||||
var coupon_ids = this.data.plugins_use_coupon_ids;
|
||||
if ((coupon_ids || null) != null && coupon_ids.length > 0) {
|
||||
for (var i in coupon_ids) {
|
||||
data['coupon_id_' + i] = coupon_ids[i];
|
||||
}
|
||||
}
|
||||
return data;
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.init();
|
||||
@ -166,7 +179,6 @@ Page({
|
||||
data['address_id'] = this.data.address_id;
|
||||
data['payment_id'] = this.data.payment_id;
|
||||
data['user_note'] = this.data.user_note_value;
|
||||
data['coupon_id'] = this.data.plugins_use_coupon_id;
|
||||
data['site_model'] = this.data.site_model;
|
||||
|
||||
// 数据验证
|
||||
@ -177,6 +189,7 @@ Page({
|
||||
if (this.data.common_order_is_booking != 1) {
|
||||
validation.push({ fields: 'payment_id', msg: '请选择支付方式' });
|
||||
}
|
||||
|
||||
if (app.fields_check(data, validation)) {
|
||||
// 加载loding
|
||||
swan.showLoading({ title: '提交中...' });
|
||||
@ -185,14 +198,14 @@ Page({
|
||||
swan.request({
|
||||
url: app.get_request_url("add", "buy"),
|
||||
method: "POST",
|
||||
data: data,
|
||||
data: this.request_data_coupon_merge(data),
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
if (res.data.code == 0) {
|
||||
if (res.data.data.order.status == 1) {
|
||||
if (res.data.data.order_status == 1) {
|
||||
swan.redirectTo({
|
||||
url: '/pages/user-order/user-order?is_pay=1&order_id=' + res.data.data.order.id
|
||||
url: '/pages/user-order/user-order?is_pay=1&order_ids=' + res.data.data.order_ids.join(',')
|
||||
});
|
||||
} else {
|
||||
swan.redirectTo({ url: '/pages/user-order/user-order' });
|
||||
@ -205,7 +218,6 @@ Page({
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
this.setData({ buy_submit_disabled_status: false });
|
||||
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
@ -235,7 +247,11 @@ Page({
|
||||
|
||||
// 优惠劵弹层开启
|
||||
plugins_coupon_open_event(e) {
|
||||
this.setData({ popup_plugins_coupon_status: true });
|
||||
var index = e.currentTarget.dataset.index;
|
||||
this.setData({
|
||||
popup_plugins_coupon_status: true,
|
||||
popup_plugins_coupon_index: index
|
||||
});
|
||||
},
|
||||
|
||||
// 优惠劵弹层关闭
|
||||
@ -245,19 +261,27 @@ Page({
|
||||
|
||||
// 优惠劵选择
|
||||
plugins_coupon_use_event(e) {
|
||||
var index = e.currentTarget.dataset.index;
|
||||
var wid = e.currentTarget.dataset.wid;
|
||||
var value = e.currentTarget.dataset.value;
|
||||
this.setData({
|
||||
plugins_use_coupon_id: value,
|
||||
popup_plugins_coupon_status: false
|
||||
});
|
||||
this.init();
|
||||
var temp = this.data.plugins_use_coupon_ids;
|
||||
// 是否已选择优惠券id
|
||||
if (temp.indexOf(value) == -1) {
|
||||
temp[wid] = value;
|
||||
this.setData({
|
||||
plugins_use_coupon_ids: temp,
|
||||
popup_plugins_coupon_status: false
|
||||
});
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
|
||||
// 不使用优惠劵
|
||||
plugins_coupon_not_use_event(e) {
|
||||
var wid = e.currentTarget.dataset.wid;
|
||||
var temp = this.data.plugins_use_coupon_ids;
|
||||
temp[wid] = 0;
|
||||
this.setData({
|
||||
plugins_use_coupon_id: 0,
|
||||
plugins_use_coupon_ids: temp,
|
||||
popup_plugins_coupon_status: false
|
||||
});
|
||||
this.init();
|
||||
@ -265,11 +289,11 @@ Page({
|
||||
|
||||
// 地址选择事件
|
||||
address_event(e) {
|
||||
if (this.data.common_site_type == 0 || (this.data.common_site_type == 4 && this.data.site_model == 0)) {
|
||||
if (this.data.common_site_type == 0 || this.data.common_site_type == 4 && this.data.site_model == 0) {
|
||||
swan.navigateTo({
|
||||
url: '/pages/user-address/user-address?is_back=1'
|
||||
});
|
||||
} else if (this.data.common_site_type == 2 || (this.data.common_site_type == 4 && this.data.site_model == 2)) {
|
||||
} else if (this.data.common_site_type == 2 || this.data.common_site_type == 4 && this.data.site_model == 2) {
|
||||
swan.navigateTo({
|
||||
url: '/pages/extraction-address/extraction-address?is_back=1'
|
||||
});
|
||||
@ -278,16 +302,15 @@ Page({
|
||||
}
|
||||
},
|
||||
|
||||
// 销售+自提 模式选择事件
|
||||
// 销售+自提 模式选择事件
|
||||
buy_header_nav_event(e) {
|
||||
var value = e.currentTarget.dataset.value || 0;
|
||||
if (value != this.data.site_model)
|
||||
{
|
||||
if (value != this.data.site_model) {
|
||||
// 数据设置
|
||||
this.setData({
|
||||
address: null,
|
||||
address_id: null,
|
||||
site_model: value,
|
||||
site_model: value
|
||||
});
|
||||
|
||||
// 删除地址缓存
|
||||
@ -297,4 +320,24 @@ Page({
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
|
||||
// 地图查看
|
||||
map_event(e) {
|
||||
var index = e.currentTarget.dataset.index || 0;
|
||||
var data = this.data.goods_list[index] || null;
|
||||
if (data == null) {
|
||||
app.showToast("地址有误");
|
||||
return false;
|
||||
}
|
||||
|
||||
var lng = parseFloat(data.lng || 0);
|
||||
var lat = parseFloat(data.lat || 0);
|
||||
swan.openLocation({
|
||||
latitude: lat,
|
||||
longitude: lng,
|
||||
scale: 18,
|
||||
name: data.name || data.alias || '',
|
||||
address: (data.province_name || '') + (data.city_name || '') + (data.county_name || '') + (data.address || '')
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -1,139 +1,153 @@
|
||||
<block s-if="common_site_type == 1">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: 2, msg: '展示型不允许提交订单'}}}"></template>
|
||||
</block>
|
||||
<block s-else>
|
||||
<view s-if="goods_list.length > 0" class="page">
|
||||
<!-- 销售+自提 模式选择 -->
|
||||
<view s-if="common_site_type == 4" class="buy-header-nav oh tc">
|
||||
<block s-for="{{buy_header_nav}}" s-key="key">
|
||||
<view class="item fl {{site_model == item.value ? 'cr-main' : 'cr-666'}}" data-value="{{item.value}}" bindtap="buy_header_nav_event">{{item.name}}</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!-- 地址 -->
|
||||
<block s-if="common_site_type == 0 || common_site_type == 2 || common_site_type == 4">
|
||||
<view class="address bg-white arrow-right" bindtap="address_event">
|
||||
<view s-if="address != null">
|
||||
<view class="address-base oh">
|
||||
<text s-if="(address.alias || null) != null" class="address-alias">{{address.alias}}</text>
|
||||
<text>{{address.name}}</text>
|
||||
<text class="fr">{{address.tel}}</text>
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: 2, msg: '展示型不允许提交订单'}}}"></template>
|
||||
</block>
|
||||
<block s-else>
|
||||
<view s-if="goods_list.length > 0" class="page">
|
||||
<!-- 销售+自提 模式选择 -->
|
||||
<view s-if="common_site_type == 4" class="buy-header-nav oh tc">
|
||||
<block s-for="item, index in buy_header_nav" s-key="key">
|
||||
<view class="item fl {{site_model == item.value ? 'cr-main' : 'cr-666'}}" data-value="{{item.value}}" bindtap="buy_header_nav_event">{{item.name}}</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!-- 地址 -->
|
||||
<block s-if="common_site_type == 0 || common_site_type == 2 || common_site_type == 4">
|
||||
<view class="address bg-white arrow-right" bindtap="address_event">
|
||||
<view s-if="address != null">
|
||||
<view class="address-base oh">
|
||||
<text s-if="(address.alias || null) != null" class="address-alias">{{address.alias}}</text>
|
||||
<text>{{address.name}}</text>
|
||||
<text class="fr">{{address.tel}}</text>
|
||||
</view>
|
||||
<view class="address-detail oh">
|
||||
<image class="icon fl" src="/images/user-address.png" mode="widthFix" />
|
||||
<view class="text fr">{{address.province_name}}{{address.city_name}}{{address.county_name}}{{address.address}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="address-detail oh">
|
||||
<image class="icon fl" src="/images/user-address.png" mode="widthFix" />
|
||||
<view class="text fr">{{address.province_name}}{{address.city_name}}{{address.county_name}}{{address.address}}</view>
|
||||
<view s-if="address == null" class="no-address cr-888">
|
||||
{{(common_site_type == 0 || (common_site_type == 4 && site_model == 0)) ? '请选择收货地址' : '请选择取货地址'}}
|
||||
</view>
|
||||
</view>
|
||||
<view s-if="address == null" class="no-address cr-888">
|
||||
{{(common_site_type == 0 || (common_site_type == 4 && site_model == 0)) ? '请选择收货地址' : '请选择取货地址'}}
|
||||
<view class="address-divider spacing-mb"></view>
|
||||
</block>
|
||||
|
||||
<!-- 商品数据 -->
|
||||
<view class="goods-group-list bg-white spacing-mb" s-for="group, index in goods_list" s-key="key">
|
||||
<!-- 仓库分组 -->
|
||||
<view class="goods-group-hd oh br-b">
|
||||
<view class="fl">
|
||||
<text class="goods-group-title">{{group.name}}</text>
|
||||
<text s-if="(group.alias || null) != null" class="goods-group-alias">{{group.alias}}</text>
|
||||
</view>
|
||||
<view s-if="(group.lng || null) != null && (group.lat || null) != null" class="fr">
|
||||
<view class="goods-group-map-submit br" data-index="{{index}}" bindtap="map_event">查看地图</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 商品 -->
|
||||
<view s-for="item, index in group.goods_items" s-key="keys" class="goods-item oh">
|
||||
<image class="goods-image fl" src="{{item.images}}" mode="aspectFill" />
|
||||
<view class="goods-base">
|
||||
<view class="goods-title multi-text">{{item.title}}</view>
|
||||
<block s-if="item.spec != null">
|
||||
<view class="goods-spec cr-888" s-for="spec, index in item.spec" s-key="key">{{spec.type}}:{{spec.value}}
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="oh goods-price">
|
||||
<text class="sales-price">{{price_symbol}}{{item.price}}
|
||||
</text>
|
||||
<text s-if="item.original_price > 0" class="original-price">{{price_symbol}}{{item.original_price}}
|
||||
</text>
|
||||
<text class="buy-number cr-888">x{{item.stock}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 优惠劵 -->
|
||||
<view s-if="(plugins_coupon_data || null) != null && (plugins_coupon_data[index] || null) != null && (plugins_coupon_data[index].coupon_data || null) != null && (plugins_coupon_data[index].coupon_data.coupon_list || null) != null && plugins_coupon_data[index].coupon_data.coupon_list.length > 0" class="plugins-coupon bg-white spacing-mb arrow-right" data-index="{{index}}" bindtap="plugins_coupon_open_event">
|
||||
<text class="cr-666">优惠劵</text>
|
||||
<text class="cr-ccc fr">{{((plugins_choice_coupon_value || null) != null && (plugins_choice_coupon_value[group.id] || null) != null) ? plugins_choice_coupon_value[group.id] : '请选择优惠券'}}</text>
|
||||
</view>
|
||||
<!-- 扩展数据展示 -->
|
||||
<view s-if="group.order_base.extension_data.length > 0" class="extension-list spacing-mt">
|
||||
<view s-for="item, index in group.order_base.extension_data" s-key="key" class="item oh">
|
||||
<text class="cr-666 fl">{{item.name}}
|
||||
</text>
|
||||
<text class="text-tips fr">{{item.tips}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 小计 -->
|
||||
<view class="oh tr goods-group-footer spacing-mt spacing-mb">
|
||||
<text s-if="group.order_base.total_price != group.order_base.actual_price" class="original-price">{{price_symbol}}{{group.order_base.total_price}}</text>
|
||||
<text class="sales-price">{{price_symbol}}{{group.order_base.actual_price}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="address-divider spacing-mb"></view>
|
||||
</block>
|
||||
|
||||
<!-- 商品 -->
|
||||
<view class="goods bg-white spacing-mb">
|
||||
<view s-for="item, index in goods_list" s-key="key" class="goods-item oh">
|
||||
<image class="goods-image fl" src="{{item.images}}" mode="aspectFill" />
|
||||
<view class="goods-base">
|
||||
<view class="goods-title multi-text">{{item.title}}</view>
|
||||
<block s-if="item.spec != null">
|
||||
<view class="goods-spec cr-888" s-for="spec, index in item.spec" s-key="key">{{spec.type}}:{{spec.value}}
|
||||
|
||||
<!-- 留言 -->
|
||||
<view class="content-textarea-view bg-white spacing-mb">
|
||||
<textarea s-if="!popup_plugins_coupon_status" bindinput="bind_user_note_event" value="{=user_note_value=}" maxlength="60" placeholder="留言" class="wh-auto" />
|
||||
<view s-if="popup_plugins_coupon_status" class="cr-888">{{user_note_value || '留言'}}</view>
|
||||
</view>
|
||||
|
||||
<!-- 支付方式 -->
|
||||
<view s-if="payment_list.length > 0 && common_order_is_booking != 1" class="payment-list bg-white oh">
|
||||
<view class="item tc fl" s-for="item, index in payment_list" s-key="key">
|
||||
<view class="item-content br {{(item.selected || '')}}" data-value="{{item.id}}" bindtap="payment_event">
|
||||
<image s-if="(item.logo || null) != null" class="icon" src="{{item.logo}}" mode="widthFix" />
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 导航 -->
|
||||
<view class="buy-nav oh wh-auto">
|
||||
<view class="nav-base bg-white fl br-t single-text">
|
||||
<text>合计:</text>
|
||||
<text class="sales-price">{{price_symbol}}{{total_price}}</text>
|
||||
</view>
|
||||
<view class="fr nav-submit">
|
||||
<button class="bg-main wh-auto" type="default" bindtap="buy_submit_event" disabled="{{buy_submit_disabled_status}}" hover-class="none">提交订单</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view s-if="goods_list.length == 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status, msg: data_list_loding_msg}}}"></template>
|
||||
</view>
|
||||
|
||||
<!-- 优惠劵选择 -->
|
||||
<component-popup status="{{popup_plugins_coupon_status}}" position="bottom" bindonclose="plugins_coupon_close_event">
|
||||
<view class="plugins-coupon-popup bg-white">
|
||||
<view class="close oh">
|
||||
<view class="fr" catchtap="plugins_coupon_close_event">
|
||||
<icon type="clear" size="20" />
|
||||
</view>
|
||||
</view>
|
||||
<view s-if="popup_plugins_coupon_index != null && (plugins_coupon_data || null) != null && (plugins_coupon_data[popup_plugins_coupon_index] || null) != null && (plugins_coupon_data[popup_plugins_coupon_index].coupon_data || null) != null && (plugins_coupon_data[popup_plugins_coupon_index].coupon_data.coupon_list || null) != null && plugins_coupon_data[popup_plugins_coupon_index].coupon_data.coupon_list.length > 0" class="coupon-container oh br-b">
|
||||
<view class="not-use-tips tc">
|
||||
<text data-wid="{{plugins_coupon_data[popup_plugins_coupon_index].warehouse_id}}" bindtap="plugins_coupon_not_use_event">不使用优惠劵</text>
|
||||
</view>
|
||||
<block s-for="item, index in plugins_coupon_data[popup_plugins_coupon_index].coupon_data.coupon_list" s-key="item">
|
||||
<view class="item spacing-mt bg-white {{plugins_use_coupon_ids.indexOf(item.id) != -1 ? 'item-disabled' : ''}}" style="border:1px solid {{item.coupon.bg_color_value}};">
|
||||
<view class="v-left fl">
|
||||
<view class="base single-text" style="color:{{item.coupon.bg_color_value}};">
|
||||
<text class="symbol">{{price_symbol}}</text>
|
||||
<text class="price">{{item.coupon.discount_value}}</text>
|
||||
<text class="unit">{{item.coupon.type_unit}}</text>
|
||||
<text s-if="(item.coupon.desc || null) != null" class="desc cr-888">{{item.coupon.desc}}</text>
|
||||
</view>
|
||||
<view s-if="(item.coupon.use_limit_type_name || null) != null" class="base-tips cr-666 single-text">{{item.coupon.use_limit_type_name}}</view>
|
||||
<view class="base-time cr-888 single-text">{{item.time_start_text}} 至 {{item.time_end_text}}</view>
|
||||
</view>
|
||||
<view class="v-right fr" style="background:{{item.coupon.bg_color_value}};" data-wid="{{plugins_coupon_data[popup_plugins_coupon_index].warehouse_id}}" data-value="{{item.id}}" bindtap="plugins_coupon_use_event">
|
||||
<text class="circle"></text>
|
||||
<text>{{plugins_use_coupon_ids.indexOf(item.id) != -1 ? '已选' : '选择'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="oh goods-price">
|
||||
<text class="sales-price">{{price_symbol}}{{item.price}}
|
||||
</text>
|
||||
<text s-if="item.original_price > 0" class="original-price">{{price_symbol}}{{item.original_price}}
|
||||
</text>
|
||||
<text class="buy-number cr-888">x{{item.stock}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 留言 -->
|
||||
<view class="content-textarea-view bg-white spacing-mb">
|
||||
<textarea s-if="!popup_plugins_coupon_status" bindinput="bind_user_note_event" value="{=user_note_value=}" maxlength="60" placeholder="留言" class="wh-auto" />
|
||||
<view s-if="popup_plugins_coupon_status" class="cr-888">{{user_note_value || '留言'}}</view>
|
||||
</view>
|
||||
|
||||
<!-- 优惠劵 -->
|
||||
<view s-if="(plugins_coupon_data || null) != null && plugins_coupon_data.coupon_list.length > 0" class="plugins-coupon bg-white spacing-mb arrow-right" bindtap="plugins_coupon_open_event">
|
||||
<text class="cr-666">优惠劵</text>
|
||||
<text class="cr-ccc fr">{{plugins_choice_coupon_value}}</text>
|
||||
</view>
|
||||
|
||||
<!-- 扩展数据展示 -->
|
||||
<view s-if="extension_data.length > 0" class="extension-list spacing-mb">
|
||||
<view s-for="item, index in extension_data" s-key="key" class="item oh">
|
||||
<text class="cr-666 fl">{{item.name}}
|
||||
</text>
|
||||
<text class="text-tips fr">{{item.tips}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 支付方式 -->
|
||||
<view s-if="payment_list.length > 0 && common_order_is_booking != 1" class="payment-list bg-white oh">
|
||||
<view class="item tc fl" s-for="item, index in payment_list" s-key="key">
|
||||
<view class="item-content br {{(item.selected || '')}}" data-value="{{item.id}}" bindtap="payment_event">
|
||||
<image s-if="(item.logo || null) != null" class="icon" src="{{item.logo}}" mode="widthFix" />
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 导航 -->
|
||||
<view class="buy-nav oh wh-auto">
|
||||
<view class="nav-base bg-white fl br-t single-text">
|
||||
<text>合计:</text>
|
||||
<text class="sales-price">{{price_symbol}}{{total_price}}</text>
|
||||
</view>
|
||||
<view class="fr nav-submit">
|
||||
<button class="bg-main wh-auto" type="default" bindtap="buy_submit_event" disabled="{{buy_submit_disabled_status}}" hover-class="none">提交订单</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view s-if="goods_list.length == 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status, msg: data_list_loding_msg}}}"></template>
|
||||
</view>
|
||||
|
||||
<!-- 优惠劵选择 -->
|
||||
<component-popup status="{{popup_plugins_coupon_status}}" position="bottom" bindonclose="plugins_coupon_close_event">
|
||||
<view class="plugins-coupon-popup bg-white">
|
||||
<view class="close oh">
|
||||
<view class="fr" catchtap="plugins_coupon_close_event">
|
||||
<icon type="clear" size="20" />
|
||||
</view>
|
||||
</view>
|
||||
<view s-if="(plugins_coupon_data || null) != null && plugins_coupon_data.coupon_list.length > 0" class="coupon-container oh br-b">
|
||||
<view class="not-use-tips tc">
|
||||
<text bindtap="plugins_coupon_not_use_event">不使用优惠劵</text>
|
||||
</view>
|
||||
<block s-for="item, index in plugins_coupon_data.coupon_list" s-key="item">
|
||||
<view class="item spacing-mt bg-white" style="border:1px solid {{item.coupon.bg_color_value}};">
|
||||
<view class="v-left fl">
|
||||
<view class="base single-text" style="color:{{item.coupon.bg_color_value}};">
|
||||
<text class="symbol">{{price_symbol}}</text>
|
||||
<text class="price">{{item.coupon.discount_value}}</text>
|
||||
<text class="unit">{{item.coupon.type_unit}}</text>
|
||||
<text s-if="(item.coupon.desc || null) != null" class="desc cr-888">{{item.coupon.desc}}</text>
|
||||
</view>
|
||||
<view s-if="(item.coupon.use_limit_type_name || null) != null" class="base-tips cr-666 single-text">{{item.coupon.use_limit_type_name}}</view>
|
||||
<view class="base-time cr-888 single-text">{{item.time_start_text}} 至 {{item.time_end_text}}</view>
|
||||
</view>
|
||||
<view class="v-right fr" style="background:{{item.coupon.bg_color_value}};" data-index="{{index}}" data-value="{{item.id}}" bindtap="plugins_coupon_use_event">
|
||||
<text class="circle"></text>
|
||||
<text>{{plugins_use_coupon_id == item.id ? '已选' : '选择'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</component-popup>
|
||||
</block>
|
||||
</component-popup>
|
||||
</block>
|
||||
@ -1,58 +1,91 @@
|
||||
/**
|
||||
左侧导航
|
||||
*/
|
||||
.left-nav {
|
||||
height: 100vh;
|
||||
background: #ececec;
|
||||
width: 230rpx;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.left-nav .items {
|
||||
height: 120rpx;
|
||||
line-height: 120rpx;
|
||||
font-size: 34rpx;
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
border-left: 3px solid #ececec;
|
||||
border-right: 3px solid #ececec;
|
||||
overflow: hidden;
|
||||
}
|
||||
.left-nav .items:not(:last-child) {
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
}
|
||||
.nav-active {
|
||||
border-left: 3px solid #e23f36 !important;
|
||||
border-right: 3px solid #fff !important;
|
||||
color: #e23f36;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
右侧内容
|
||||
*/
|
||||
.right-content {
|
||||
height: 100vh;
|
||||
width: calc( 100% - 230rpx );
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.content-items {
|
||||
float: left;
|
||||
width: calc(33.33% - 20rpx);
|
||||
padding: 20rpx 10rpx;
|
||||
* 左侧导航
|
||||
*/
|
||||
.left-nav {
|
||||
height: 100vh;
|
||||
background: #fff;
|
||||
width: 210rpx;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.left-nav .items {
|
||||
height: 120rpx;
|
||||
line-height: 120rpx;
|
||||
font-size: 34rpx;
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.content-items .text {
|
||||
color: #666;
|
||||
border-left: 3px solid #fff;
|
||||
border-right: 3px solid #fff;
|
||||
overflow: hidden;
|
||||
}
|
||||
.left-nav .items:not(:last-child) {
|
||||
border-bottom: 1px solid #f1f1f1;
|
||||
}
|
||||
.nav-active {
|
||||
background: #f5f5f5;
|
||||
border-left: 3px solid #e23f36 !important;
|
||||
border-right: 3px solid #f5f5f5 !important;
|
||||
color: #e23f36 !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* 右侧内容
|
||||
*/
|
||||
.right-container {
|
||||
height: 100vh;
|
||||
width: calc( 100% - 210rpx );
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.right-content {
|
||||
padding: 0 20rpx 20rpx 20rpx;
|
||||
}
|
||||
.one-content {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.one-content, .two-content {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.one-vice-name {
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
.one-desc {
|
||||
color: #999;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.two-name {
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
background: #f5f5f5;
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.content-item {
|
||||
display: -webkit-inline-box;
|
||||
width: calc(33.33% - 20rpx);
|
||||
padding: 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.content-item .content {
|
||||
margin: 0 auto;
|
||||
padding: 15rpx 0;
|
||||
}
|
||||
.content-item .text {
|
||||
font-size: 28rpx;
|
||||
line-height: 46rpx;
|
||||
}
|
||||
.content-items .icon {
|
||||
}
|
||||
.content-item .icon {
|
||||
width: 100%;
|
||||
height: 120rpx;
|
||||
}
|
||||
}
|
||||
.model-one {
|
||||
padding: 10rpx;
|
||||
}
|
||||
.model-one .content-item:nth-child(3n) {
|
||||
border-right: 0;
|
||||
}
|
||||
@ -1,13 +1,11 @@
|
||||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
tab_active: 0,
|
||||
tab_active_text_color: '#d2364c',
|
||||
tab_active_line_color: '#d2364c',
|
||||
data_list_loding_status: 1,
|
||||
data_bottom_line_status: false,
|
||||
nav_active_index: 0,
|
||||
data_list: [],
|
||||
data_content: []
|
||||
category_show_level: 3,
|
||||
data_content: null
|
||||
},
|
||||
|
||||
onShow() {
|
||||
@ -32,27 +30,25 @@ Page({
|
||||
success: res => {
|
||||
swan.stopPullDownRefresh();
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
var data_content = [];
|
||||
if (data.length > 0) {
|
||||
data[0]['active'] = 'nav-active';
|
||||
data_content = data[0]['items'];
|
||||
}
|
||||
this.setData({
|
||||
data_list: data,
|
||||
data_content: data_content,
|
||||
data_list_loding_status: data.length == 0 ? 0 : 3,
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
|
||||
// 页面信息设置
|
||||
this.set_page_info();
|
||||
var category = res.data.data.category;
|
||||
var data_content = [];
|
||||
var index = this.data.nav_active_index || 0;
|
||||
if (category.length > 0) {
|
||||
category[index]['active'] = 'nav-active';
|
||||
data_content = category[index];
|
||||
}
|
||||
this.setData({
|
||||
data_list: category,
|
||||
category_show_level: res.data.data.category_show_level || 3,
|
||||
data_content: data_content,
|
||||
data_list_loding_status: category.length == 0 ? 0 : 3,
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
},
|
||||
@ -62,7 +58,6 @@ Page({
|
||||
data_list_loding_status: 2,
|
||||
data_bottom_line_status: true
|
||||
});
|
||||
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
@ -82,7 +77,8 @@ Page({
|
||||
}
|
||||
this.setData({
|
||||
data_list: temp_data,
|
||||
data_content: temp_data[index]['items']
|
||||
data_content: temp_data[index],
|
||||
nav_active_index: index
|
||||
});
|
||||
},
|
||||
|
||||
@ -91,25 +87,14 @@ Page({
|
||||
swan.navigateTo({ url: '/pages/goods-search/goods-search?category_id=' + e.currentTarget.dataset.value });
|
||||
},
|
||||
|
||||
// web页面信息设置
|
||||
set_page_info() {
|
||||
swan.setPageInfo({
|
||||
title: app.data.application_title+' - 商品分类',
|
||||
keywords: app.data.application_describe,
|
||||
description: app.data.application_describe,
|
||||
image: (this.data.data_list.length == 0) ? [] : app.array_notempty(this.data.data_list.map(function (v) { return v.big_images;})).slice(0,3)
|
||||
});
|
||||
},
|
||||
|
||||
// 自定义分享
|
||||
onShareAppMessage() {
|
||||
var user = app.get_user_cache_info() || null;
|
||||
var user_id = (user != null && (user.id || null) != null) ? user.id : 0;
|
||||
var user_id = user != null && (user.id || null) != null ? user.id : 0;
|
||||
return {
|
||||
title: app.data.application_title,
|
||||
desc: app.data.application_describe,
|
||||
path: '/pages/goods-category/goods-category?referrer=' + user_id
|
||||
};
|
||||
},
|
||||
|
||||
}
|
||||
});
|
||||
@ -1,4 +1,3 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
}
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
@ -1,23 +1,77 @@
|
||||
<view class='left-nav'>
|
||||
<block s-for="item, index in data_list" s-key="key">
|
||||
<view class='items {{item.active || ""}}' data-index="{{index}}" bindtap='nav_event'>
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class='right-content bg-white'>
|
||||
<block s-if="data_content.length > 0">
|
||||
<block s-for="v, index in data_content" s-key="keys">
|
||||
<view class="content-items" data-value="{{v.id}}" bindtap="category_event">
|
||||
<image s-if="(v.icon || null) != null" src="{{v.icon}}" mode="aspectFit" class="icon" />
|
||||
<view class="text single-text">{{v.name}}</view>
|
||||
<view s-if="data_list.length > 0">
|
||||
<block s-if="category_show_level == 1">
|
||||
<!-- 一级模式 -->
|
||||
<view class="model-one oh">
|
||||
<block s-for="v, index in data_list" s-key="key">
|
||||
<view class="content-item" data-value="{{v.id}}" bindtap="category_event">
|
||||
<view class="content bg-white wh-auto">
|
||||
<image s-if="(v.icon || null) != null" src="{{v.icon}}" mode="aspectFit" class="icon" />
|
||||
<view class="text single-text">{{v.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<view s-if="data_list.length == 0 && data_list_loding_status != 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status}}}">
|
||||
</template>
|
||||
</view>
|
||||
<block s-else>
|
||||
<!-- 一级内导航 -->
|
||||
<view class='left-nav'>
|
||||
<block s-for="item, index in data_list" s-key="key">
|
||||
<view class='items {{item.active || ""}}' data-index="{{index}}" bindtap='nav_event'>
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class='right-container'>
|
||||
<!-- 一级内基础容 -->
|
||||
<view s-if="(data_content || null) != null" class="right-content">
|
||||
<view s-if="(data_content.vice_name || null) != null || (data_content.describe || null) != null" class="one-content bg-white" data-value="{{data_content.id}}" bindtap="category_event">
|
||||
<view s-if="(data_content.vice_name || null) != null" class="one-vice-name cr-main" style="color:{{data_content.bg_color}};">{{data_content.vice_name}}</view>
|
||||
<view s-if="(data_content.describe || null) != null" class="one-desc">{{data_content.describe}}</view>
|
||||
</view>
|
||||
<!-- 一二级数据渲染 -->
|
||||
<block s-if="data_content.items.length > 0">
|
||||
<!-- 二级模式 -->
|
||||
<block s-if="category_show_level == 2">
|
||||
<view class="two-content bg-white oh">
|
||||
<block s-for="v, index in data_content.items" s-key="key">
|
||||
<view class="content-item" data-value="{{v.id}}" bindtap="category_event">
|
||||
<view class="content wh-auto">
|
||||
<image s-if="(v.icon || null) != null" src="{{v.icon}}" mode="aspectFit" class="icon" />
|
||||
<view class="text single-text">{{v.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 三级模式 -->
|
||||
<block s-if="category_show_level == 3">
|
||||
<block s-for="v, index in data_content.items" s-key="key">
|
||||
<view class="bg-white oh">
|
||||
<view class="tc two-name" data-value="{{v.id}}" bindtap="category_event">{{v.name}}</view>
|
||||
<block s-if="v.items.length > 0">
|
||||
<block s-for="vs, index in v.items" s-key="key">
|
||||
<view class="content-item" data-value="{{vs.id}}" bindtap="category_event">
|
||||
<view class="content wh-auto">
|
||||
<image s-if="(vs.icon || null) != null" src="{{vs.icon}}" mode="aspectFit" class="icon" />
|
||||
<view class="text single-text">{{vs.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
<block s-else>
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: 0, msg: '没有子分类数据'}}}"></template>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<view s-if="data_list.length == 0 && data_list_loding_status != 0">
|
||||
<import src="/pages/common/nodata.swan" />
|
||||
<template is="nodata" data="{{{status: data_list_loding_status}}}"></template>
|
||||
</view>
|
||||
@ -66,7 +66,7 @@
|
||||
<view class="item bg-white {{item.is_operable == 0 ? 'item-disabled' : ''}}" style="border:1px solid {{item.bg_color_value}};">
|
||||
<view class="v-left fl">
|
||||
<view class="base single-text" style="color:{{item.bg_color_value}};">
|
||||
<text class="symbol">{{price_symbol}}</text>
|
||||
<text s-if="item.type == 0" class="symbol">{{price_symbol}}</text>
|
||||
<text class="price">{{item.discount_value}}</text>
|
||||
<text class="unit">{{item.type_unit}}</text>
|
||||
</view>
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
price_symbol: app.data.price_symbol,
|
||||
params: {},
|
||||
default_round_success_icon: app.data.default_round_success_icon,
|
||||
default_round_error_icon: app.data.default_round_error_icon
|
||||
|
||||
@ -2,10 +2,6 @@
|
||||
<image class="pay-icon" s-if="params.code == '9000'" mode="widthFix" src="{{default_round_success_icon}}" />
|
||||
<image class="pay-icon" s-else mode="widthFix" src="{{default_round_error_icon}}" />
|
||||
<text class="dis-block">{{params.msg}}</text>
|
||||
<view s-if="params.code == '9000'" class="price-box">
|
||||
<text class="sales-price">{{price_symbol}}{{params.total_price}}</text>
|
||||
<text class="price-unit cr-888">元</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="btn-box">
|
||||
|
||||
@ -44,26 +44,27 @@ Page({
|
||||
self.setData({
|
||||
detail: data.data,
|
||||
detail_list:[
|
||||
{name: "订单号", value: data.data.order_no || ''},
|
||||
{name: "订单模式", value: data.data.order_model_name || ''},
|
||||
{name: "状态", value: data.data.status_name || ''},
|
||||
{name: "支付状态", value: data.data.pay_status_name || ''},
|
||||
{name: "单价", value: data.data.price || ''},
|
||||
{name: "总价", value: data.data.total_price || ''},
|
||||
{name: "优惠金额", value: data.data.preferential_price || ''},
|
||||
{name: "增加金额", value: data.data.increase_price || '' },
|
||||
{name: "支付金额", value: data.data.pay_price || ''},
|
||||
{name: "支付方式", value: (data.data.payment_name || '') + ((data.data.is_under_line_text || null) == null ? '' : '(' + data.data.is_under_line_text +')')},
|
||||
{name: "快递公司", value: data.data.express_name || ''},
|
||||
{name: "快递单号", value: data.data.express_number || ''},
|
||||
{name: "用户留言", value: data.data.user_note || ''},
|
||||
{name: "创建时间", value: data.data.add_time || ''},
|
||||
{name: "确认时间", value: data.data.confirm_time || ''},
|
||||
{name: "支付时间", value: data.data.pay_time || ''},
|
||||
{name: "发货时间", value: data.data.delivery_time || ''},
|
||||
{name: "收货时间", value: data.data.collect_time || ''},
|
||||
{name: "取消时间", value: data.data.cancel_time || ''},
|
||||
{name: "关闭时间", value: data.data.close_time || ''},
|
||||
{name: "出货仓库", value: data.data.warehouse_name || ''},
|
||||
{name: "订单模式", value: data.data.order_model_name || '' },
|
||||
{name: "订单编号", value: data.data.order_no || ''},
|
||||
{name: "订单状态", value: data.data.status_name || ''},
|
||||
{name: "支付状态", value: data.data.pay_status_name || ''},
|
||||
{name: "订单单价", value: data.data.price || ''},
|
||||
{name: "订单总价", value: data.data.total_price || ''},
|
||||
{name: "优惠金额", value: data.data.preferential_price || ''},
|
||||
{name: "增加金额", value: data.data.increase_price || '' },
|
||||
{name: "支付金额", value: data.data.pay_price || ''},
|
||||
{name: "支付方式", value: (data.data.payment_name || '') + ((data.data.is_under_line_text || null) == null ? '' : '(' + data.data.is_under_line_text +')')},
|
||||
{name: "快递公司", value: data.data.express_name || ''},
|
||||
{name: "快递单号", value: data.data.express_number || ''},
|
||||
{name: "用户留言", value: data.data.user_note || ''},
|
||||
{name: "创建时间", value: data.data.add_time || ''},
|
||||
{name: "确认时间", value: data.data.confirm_time || ''},
|
||||
{name: "支付时间", value: data.data.pay_time || ''},
|
||||
{name: "发货时间", value: data.data.delivery_time || ''},
|
||||
{name: "收货时间", value: data.data.collect_time || ''},
|
||||
{name: "取消时间", value: data.data.cancel_time || ''},
|
||||
{name: "关闭时间", value: data.data.close_time || ''},
|
||||
],
|
||||
extension_data: data.data.extension_data || [],
|
||||
site_fictitious: data.site_fictitious || null,
|
||||
|
||||
@ -1,88 +1,107 @@
|
||||
/*
|
||||
* 导航
|
||||
*/
|
||||
.nav {
|
||||
background: #eee;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
}
|
||||
.nav .item {
|
||||
width: 16.66%;
|
||||
}
|
||||
|
||||
/*
|
||||
* 列表
|
||||
*/
|
||||
.scroll-box{
|
||||
height: calc(100vh - 80rpx);
|
||||
}
|
||||
.goods-base {
|
||||
min-height: 160rpx;
|
||||
margin-left: 180rpx;
|
||||
position: relative;
|
||||
}
|
||||
.goods-title {
|
||||
line-height: 36rpx;
|
||||
}
|
||||
.list-item .goods-item:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.goods-item {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.goods-title, .goods-spec {
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.goods-image {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.goods-price {
|
||||
.nav {
|
||||
background: #eee;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
}
|
||||
.nav .item {
|
||||
width: 16.66%;
|
||||
}
|
||||
|
||||
/*
|
||||
* 列表
|
||||
*/
|
||||
.scroll-box{
|
||||
height: calc(100vh - 80rpx);
|
||||
}
|
||||
.goods-base {
|
||||
min-height: 160rpx;
|
||||
margin-left: 180rpx;
|
||||
position: relative;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.buy-number {
|
||||
}
|
||||
.goods-title {
|
||||
line-height: 36rpx;
|
||||
}
|
||||
.list-item .goods-item:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.goods-item {
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.goods-title, .goods-spec {
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.goods-image {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.goods-price {
|
||||
position: relative;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.buy-number {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.item-base, .item-describe, .item-operation {
|
||||
padding: 20rpx 10rpx 20rpx 10rpx;
|
||||
}
|
||||
.submit-cancel {
|
||||
border: 1px solid #f7c3b3;
|
||||
color: #f7c3b3 !important;
|
||||
}
|
||||
.item-operation button:not(:first-child) {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.item-operation button {
|
||||
padding: 0 35rpx;
|
||||
}
|
||||
.orderaftersale-btn-text {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.item-base, .item-describe, .item-operation {
|
||||
padding: 20rpx 10rpx 20rpx 10rpx;
|
||||
}
|
||||
.submit-cancel {
|
||||
border: 1px solid #f7c3b3;
|
||||
color: #f7c3b3 !important;
|
||||
}
|
||||
.item-operation button:not(:first-child) {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.item-operation button {
|
||||
padding: 0 35rpx;
|
||||
}
|
||||
.orderaftersale-btn-text {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
color: #4d7fa7;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
.payment-list {
|
||||
padding: 40rpx 0;
|
||||
}
|
||||
.payment-list .item {
|
||||
width: 50%;
|
||||
}
|
||||
.payment-list .item-content {
|
||||
margin: 20rpx;
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.payment-list .item-content image {
|
||||
width: 50rpx;
|
||||
height: 50rpx !important;
|
||||
vertical-align: middle;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
color: #4d7fa7;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
.payment-list {
|
||||
padding: 40rpx 0;
|
||||
}
|
||||
.payment-list .item {
|
||||
width: 50%;
|
||||
}
|
||||
.payment-list .item-content {
|
||||
margin: 20rpx;
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
.payment-list .item-content image {
|
||||
width: 50rpx;
|
||||
height: 50rpx !important;
|
||||
vertical-align: middle;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择
|
||||
*/
|
||||
.selected .icon {
|
||||
width: 35rpx;
|
||||
height: 35rpx !important;
|
||||
margin: 0 20rpx 0 10rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并支付按钮
|
||||
*/
|
||||
.pay-merge-submit {
|
||||
width: 220rpx;
|
||||
left: calc(50% - 110rpx);
|
||||
bottom: 50rpx;
|
||||
}
|
||||
@ -13,10 +13,10 @@ Page({
|
||||
is_show_payment_popup: false,
|
||||
payment_list: [],
|
||||
payment_id: 0,
|
||||
temp_pay_value: 0,
|
||||
temp_pay_index: 0,
|
||||
temp_pay_value: '',
|
||||
nav_status_list: [{ name: "全部", value: "-1" }, { name: "待付款", value: "1" }, { name: "待发货", value: "2" }, { name: "待收货", value: "3" }, { name: "已完成", value: "4" }, { name: "已失效", value: "5,6" }],
|
||||
nav_status_index: 0
|
||||
nav_status_index: 0,
|
||||
order_select_ids: []
|
||||
},
|
||||
|
||||
onLoad(params) {
|
||||
@ -58,7 +58,7 @@ Page({
|
||||
} else {
|
||||
this.setData({
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false,
|
||||
data_bottom_line_status: false
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -107,13 +107,8 @@ Page({
|
||||
|
||||
// 下订单支付处理
|
||||
if (this.data.load_status == 0) {
|
||||
if ((this.data.params.is_pay || 0) == 1 && (this.data.params.order_id || 0) != 0) {
|
||||
for (var i in temp_data_list) {
|
||||
if (this.data.params.order_id == temp_data_list[i]['id']) {
|
||||
this.pay_handle(this.data.params.order_id, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((this.data.params.is_pay || 0) == 1 && (this.data.params.order_ids || null) != null) {
|
||||
this.pay_handle(this.data.params.order_ids);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -188,7 +183,7 @@ Page({
|
||||
this.setData({
|
||||
is_show_payment_popup: true,
|
||||
temp_pay_value: e.currentTarget.dataset.value,
|
||||
temp_pay_index: e.currentTarget.dataset.index
|
||||
order_select_ids: []
|
||||
});
|
||||
},
|
||||
|
||||
@ -202,11 +197,11 @@ Page({
|
||||
var payment_id = e.currentTarget.dataset.value || 0;
|
||||
this.setData({ payment_id: payment_id });
|
||||
this.payment_popup_event_close();
|
||||
this.pay_handle(this.data.temp_pay_value, this.data.temp_pay_index);
|
||||
this.pay_handle(this.data.temp_pay_value);
|
||||
},
|
||||
|
||||
// 支付方法
|
||||
pay_handle(order_id, index) {
|
||||
pay_handle(order_ids) {
|
||||
var self = this;
|
||||
// 加载loding
|
||||
swan.showLoading({ title: "请求中..." });
|
||||
@ -215,85 +210,96 @@ Page({
|
||||
url: app.get_request_url("pay", "order"),
|
||||
method: "POST",
|
||||
data: {
|
||||
id: order_id,
|
||||
ids: order_ids,
|
||||
payment_id: this.data.payment_id
|
||||
},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
swan.hideLoading();
|
||||
if (res.data.code == 0) {
|
||||
// 支付方式类型
|
||||
switch (res.data.data.is_payment_type) {
|
||||
// 正常线上支付
|
||||
case 0 :
|
||||
swan.requestPolymerPayment({
|
||||
// 支付方式类型
|
||||
switch (res.data.data.is_payment_type) {
|
||||
// 正常线上支付
|
||||
case 0:
|
||||
swan.requestPolymerPayment({
|
||||
orderInfo: res.data.data.data,
|
||||
success: function (res) {
|
||||
// 数据设置
|
||||
self.order_item_pay_success_handle(index);
|
||||
success: function (res) {
|
||||
// 数据设置
|
||||
self.order_item_pay_success_handle(order_ids);
|
||||
|
||||
// 跳转支付页面
|
||||
swan.navigateTo({
|
||||
url: "/pages/paytips/paytips?code=9000&total_price=" + self.data.data_list[index]['total_price']
|
||||
});
|
||||
},
|
||||
fail: function (res) {
|
||||
app.showToast('支付失败');
|
||||
}
|
||||
});
|
||||
break;
|
||||
// 跳转支付页面
|
||||
swan.navigateTo({
|
||||
url: "/pages/paytips/paytips?code=9000"
|
||||
});
|
||||
},
|
||||
fail: function (res) {
|
||||
app.showToast('支付失败');
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
// 线下支付
|
||||
case 1 :
|
||||
var temp_data_list = self.data.data_list;
|
||||
temp_data_list[index]['is_under_line'] = 1;
|
||||
self.setData({ data_list: temp_data_list });
|
||||
app.alert({ msg: res.data.msg, is_show_cancel: 0});
|
||||
break;
|
||||
// 线下支付
|
||||
case 1:
|
||||
var order_ids_arr = order_ids.split(',');
|
||||
var temp_data_list = self.data.data_list;
|
||||
for (var i in temp_data_list) {
|
||||
if (order_ids_arr.indexOf(temp_data_list[i]['id']) != -1) {
|
||||
temp_data_list[i]['is_under_line'] = 1;
|
||||
}
|
||||
}
|
||||
self.setData({ data_list: temp_data_list });
|
||||
app.alert({ msg: res.data.msg, is_show_cancel: 0 });
|
||||
break;
|
||||
|
||||
// 钱包支付
|
||||
case 2 :
|
||||
self.order_item_pay_success_handle(index);
|
||||
app.showToast('支付成功', 'success');
|
||||
break;
|
||||
// 钱包支付
|
||||
case 2:
|
||||
self.order_item_pay_success_handle(order_ids);
|
||||
app.showToast('支付成功', 'success');
|
||||
break;
|
||||
|
||||
// 默认
|
||||
default :
|
||||
app.showToast('支付类型有误');
|
||||
}
|
||||
// 默认
|
||||
default:
|
||||
app.showToast('支付类型有误');
|
||||
}
|
||||
} else {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
swan.hideLoading();
|
||||
app.showToast("服务器请求出错");
|
||||
app.showToast('服务器请求出错');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 支付成功数据设置
|
||||
order_item_pay_success_handle(index) {
|
||||
// 数据设置
|
||||
order_item_pay_success_handle(order_ids) {
|
||||
var order_ids_arr = order_ids.split(',');
|
||||
var temp_data_list = this.data.data_list;
|
||||
switch (parseInt(temp_data_list[index]['order_model'])) {
|
||||
// 销售模式
|
||||
case 0:
|
||||
temp_data_list[index]['status'] = 2;
|
||||
temp_data_list[index]['status_name'] = '待发货';
|
||||
break;
|
||||
|
||||
// 自提模式
|
||||
case 2:
|
||||
temp_data_list[index]['status'] = 2;
|
||||
temp_data_list[index]['status_name'] = '待取货';
|
||||
break;
|
||||
// 数据设置
|
||||
for (var i in temp_data_list) {
|
||||
if (order_ids_arr.indexOf(temp_data_list[i]['id']) != -1) {
|
||||
switch (parseInt(temp_data_list[i]['order_model'])) {
|
||||
// 销售模式
|
||||
case 0:
|
||||
temp_data_list[i]['status'] = 2;
|
||||
temp_data_list[i]['status_name'] = '待发货';
|
||||
break;
|
||||
|
||||
// 虚拟模式
|
||||
case 3:
|
||||
temp_data_list[index]['status'] = 3;
|
||||
temp_data_list[index]['status_name'] = '待收货';
|
||||
break;
|
||||
// 自提模式
|
||||
case 2:
|
||||
temp_data_list[i]['status'] = 2;
|
||||
temp_data_list[i]['status_name'] = '待取货';
|
||||
break;
|
||||
|
||||
// 虚拟模式
|
||||
case 3:
|
||||
temp_data_list[i]['status'] = 3;
|
||||
temp_data_list[i]['status_name'] = '待收货';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.setData({ data_list: temp_data_list });
|
||||
},
|
||||
@ -395,8 +401,11 @@ Page({
|
||||
nav_event(e) {
|
||||
this.setData({
|
||||
nav_status_index: e.currentTarget.dataset.index || 0,
|
||||
data_page: 1
|
||||
data_page: 1,
|
||||
order_select_ids: []
|
||||
});
|
||||
|
||||
// 重新拉取数据
|
||||
this.get_data_list(1);
|
||||
},
|
||||
|
||||
@ -421,4 +430,28 @@ Page({
|
||||
url: "/pages/user-order-comments/user-order-comments?id=" + e.currentTarget.dataset.value
|
||||
});
|
||||
},
|
||||
|
||||
// 选中处理
|
||||
selected_event(e) {
|
||||
var oid = e.currentTarget.dataset.oid || 0;
|
||||
var temp_select_ids = this.data.order_select_ids;
|
||||
if (temp_select_ids.indexOf(oid) == -1) {
|
||||
temp_select_ids.push(oid);
|
||||
} else {
|
||||
for (var i in temp_select_ids) {
|
||||
if (temp_select_ids[i] == oid) {
|
||||
temp_select_ids.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.setData({ order_select_ids: temp_select_ids });
|
||||
},
|
||||
|
||||
// 合并支付
|
||||
pay_merge_event(e) {
|
||||
this.setData({
|
||||
is_show_payment_popup: true,
|
||||
temp_pay_value: this.data.order_select_ids.join(',')
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -11,10 +11,13 @@
|
||||
<view class="list-content">
|
||||
<view class="list-item bg-white spacing-mb" s-if="data_list.length > 0" s-for="item, index in data_list" s-key="key">
|
||||
<view class="item-base oh br-b">
|
||||
<text class="cr-666">{{item.add_time}}</text>
|
||||
<text class="fr cr-main">
|
||||
{{item.status_name}}<text s-if="(item.is_under_line_text || null) != null">({{item.is_under_line_text}})</text>
|
||||
</text>
|
||||
<!-- 选择 -->
|
||||
<view s-if="nav_status_index == 1" bindtap="selected_event" data-oid="{{item.id}}" class="fl selected">
|
||||
<image class="icon" src="/images/default-select{{tools.indexOf(order_select_ids, item.id) ? '-active' : ''}}-icon.png" mode="widthFix" />
|
||||
</view>
|
||||
<!-- 基础信息 -->
|
||||
<text class="fl cr-666">{{item.warehouse_name}}</text>
|
||||
<text class="fr cr-main">{{item.status_name}}<text s-if="(item.is_under_line_text || null) != null">({{item.is_under_line_text}})</text></text>
|
||||
</view>
|
||||
<view s-for="detail, index in item.items" s-key="key" class="goods-item br-b-dashed oh">
|
||||
<navigator url="/pages/user-order-detail/user-order-detail?id={{item.id}}" hover-class="none">
|
||||
@ -26,7 +29,7 @@
|
||||
{{spec.type}}:{{spec.value}}
|
||||
</view>
|
||||
</block>
|
||||
<view s-if="(item.is_can_launch_aftersale == 1 || (detail.orderaftersale || null) != null) && ($detail.orderaftersale_btn_text || null) != null" class="orderaftersale-btn-text" catchtap="orderaftersale_event" data-oid="{{item.id}}" data-did="{{detail.id}}">{{detail.orderaftersale_btn_text}}</view>
|
||||
<view s-if="(item.is_can_launch_aftersale == 1 || (detail.orderaftersale || null) != null) && (detail.orderaftersale_btn_text || null) != null" class="orderaftersale-btn-text" catchtap="orderaftersale_event" data-oid="{{item.id}}" data-did="{{detail.id}}">{{detail.orderaftersale_btn_text}}</view>
|
||||
</view>
|
||||
<view class="oh goods-price">
|
||||
<text class="sales-price">{{price_symbol}}{{detail.price}}</text>
|
||||
@ -56,6 +59,11 @@
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
<!-- 合并支付 -->
|
||||
<view s-if="nav_status_index == 1 && order_select_ids.length > 0">
|
||||
<button class="submit-fixed pay-merge-submit" type="default" size="mini" hover-class="none" bindtap="pay_merge_event">合并支付</button>
|
||||
</view>
|
||||
|
||||
<!-- 支付方式 popup -->
|
||||
<component-popup status="{{is_show_payment_popup}}" position="bottom" bindonclose="payment_popup_event_close">
|
||||
<view s-if="payment_list.length > 0" class="payment-list oh bg-white">
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
<view class="item bg-white {{item.is_operable == 0 ? 'item-disabled' : ''}}" style="border:1px solid {{item.bg_color_value}};">
|
||||
<view class="v-left fl">
|
||||
<view class="base single-text" style="color:{{item.bg_color_value}};">
|
||||
<text class="symbol">{{price_symbol}}</text>
|
||||
<text wx:if="{{item.type == 0}}" class="symbol">{{price_symbol}}</text>
|
||||
<text class="price">{{item.discount_value}}</text>
|
||||
<text class="unit">{{item.type_unit}}</text>
|
||||
</view>
|
||||
|
||||
Reference in New Issue
Block a user