提交 d6540fa0 编写于 作者: D devil_gong

支付宝小程序在线客服

上级 47464567
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- table nav start -->
{{include file="appconfig/nav" /}}
<!-- table nav end -->
<!-- tips -->
<div class="am-alert am-alert-warning" data-am-alert>
<p>PS:如【APP/小程序】中开启(开启在线客服),则以下配置必填 [企业编码] 和 [聊天窗编码]</p>
</div>
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/appconfig/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/appconfig/index', ['nav_type'=>'alipaymini'])}}" enctype="multipart/form-data">
<div class="am-form-group">
<label>{{$data.common_app_mini_alipay_tnt_inst_id.name}}<span class="am-form-group-label-tips">{{$data.common_app_mini_alipay_tnt_inst_id.describe}}</span></label>
<input type="text" name="{{$data.common_app_mini_alipay_tnt_inst_id.only_tag}}" placeholder="{{$data.common_app_mini_alipay_tnt_inst_id.name}}" data-validation-message="{{$data.common_app_mini_alipay_tnt_inst_id.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_app_mini_alipay_tnt_inst_id.value}}"{{/if}} />
</div>
<div class="am-form-group">
<label>{{$data.common_app_mini_alipay_scene.name}}<span class="am-form-group-label-tips">{{$data.common_app_mini_alipay_scene.describe}}</span></label>
<input type="text" name="{{$data.common_app_mini_alipay_scene.only_tag}}" placeholder="{{$data.common_app_mini_alipay_scene.name}}" data-validation-message="{{$data.common_app_mini_alipay_scene.error_tips}}" class="am-radius" {{if !empty($data)}}value="{{$data.common_app_mini_alipay_scene.value}}"{{/if}} />
</div>
<div class="am-form-group am-form-group-refreshing">
<input type="hidden" name="nav_type" value="{{$nav_type}}" />
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
......@@ -108,4 +108,4 @@
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end
\ No newline at end of file
<!-- footer end -->
\ No newline at end of file
......@@ -8,4 +8,7 @@
<li {{if $nav_type eq 'weixinmini'}}class="am-active"{{/if}} data-type="weixinmini">
<a href="{{:MyUrl('admin/appconfig/index', ['nav_type'=>'weixinmini'])}}">微信小程序</a>
</li>
<li {{if $nav_type eq 'alipaymini'}}class="am-active"{{/if}} data-type="alipaymini">
<a href="{{:MyUrl('admin/appconfig/index', ['nav_type'=>'alipaymini'])}}">支付宝小程序</a>
</li>
</ul>
\ No newline at end of file
......@@ -39,4 +39,4 @@
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end
\ No newline at end of file
<!-- footer end -->
\ No newline at end of file
......@@ -138,6 +138,13 @@ class Goods extends Common
'plugins_coupon_data' => $this->PluginsCouponGoods($goods_id),
];
// 支付宝小程序在线客服
if(APPLICATION_CLIENT_TYPE == 'alipay')
{
$result['common_app_mini_alipay_tnt_inst_id'] = MyC('common_app_mini_alipay_tnt_inst_id', null, true);
$result['common_app_mini_alipay_scene'] = MyC('common_app_mini_alipay_scene', null, true);
}
// 秒杀
if($result['common_app_is_limitedtimediscount'] == 1)
{
......
......@@ -57,10 +57,17 @@ class Index extends Common
'common_app_is_enable_search' => (int) MyC('common_app_is_enable_search', 1),
'common_app_is_enable_answer' => (int) MyC('common_app_is_enable_answer', 1),
'common_app_is_header_nav_fixed' => (int) MyC('common_app_is_header_nav_fixed', 0),
'common_app_is_online_service' => (int) MyC('common_app_is_online_service', 0),
'common_app_is_online_service' => (int) MyC('common_app_is_online_service', 0),
'common_app_is_limitedtimediscount' => $common_app_is_limitedtimediscount,
];
// 支付宝小程序在线客服
if(APPLICATION_CLIENT_TYPE == 'alipay')
{
$result['common_app_mini_alipay_tnt_inst_id'] = MyC('common_app_mini_alipay_tnt_inst_id', null, true);
$result['common_app_mini_alipay_scene'] = MyC('common_app_mini_alipay_scene', null, true);
}
// 秒杀
if($common_app_is_limitedtimediscount == 1)
{
......
......@@ -449,6 +449,13 @@ class User extends Common
'common_app_is_head_vice_nav' => (int) MyC('common_app_is_head_vice_nav', 0),
);
// 支付宝小程序在线客服
if(APPLICATION_CLIENT_TYPE == 'alipay')
{
$result['common_app_mini_alipay_tnt_inst_id'] = MyC('common_app_mini_alipay_tnt_inst_id', null, true);
$result['common_app_mini_alipay_scene'] = MyC('common_app_mini_alipay_scene', null, true);
}
// 返回数据
return DataReturn('success', 0, $result);
}
......
......@@ -1193,9 +1193,10 @@ class BuyService
{
// 订单收货地址
$data = [
'order_id' => $order_id,
'user_id' => $user_id,
'order_id' => $order_id,
'user_id' => $user_id,
'address_id' => isset($address['id']) ? intval($address['id']) : 0,
'alias' => isset($address['alias']) ? $address['alias'] : '',
'name' => isset($address['name']) ? $address['name'] : '',
'tel' => isset($address['tel']) ? $address['tel'] : '',
'province' => isset($address['province']) ? intval($address['province']) : 0,
......
......@@ -413,4 +413,11 @@ textarea {
.common-quick-nav image {
width: 60rpx;
height: 60rpx;
}
/**
* 在线客服
*/
.common-online-service {
bottom: 35%;
}
\ No newline at end of file
......@@ -67,8 +67,8 @@ App({
// 请求地址
request_url: "{{request_url}}",
// request_url: 'http://tp5-dev.com/',
// request_url: 'http://test.shopxo.net/',
request_url: 'http://tp5-dev.com/',
request_url: 'http://dev.shopxo.net/',
// 基础信息
application_title: "{{application_title}}",
......@@ -669,4 +669,10 @@ App({
return true;
},
// 获取用户openid
get_user_openid() {
var user = this.get_user_cache_info();
return (user == false) ? null : user.alipay_openid || null;
},
});
......@@ -27,10 +27,11 @@
"pages/user-orderaftersale/user-orderaftersale",
"pages/user-orderaftersale-detail/user-orderaftersale-detail",
"pages/coupon/coupon",
"pages/user-coupon/user-coupon"
"pages/user-coupon/user-coupon",
"pages/extraction-address/extraction-address"
],
"window": {
"defaultTitle": "{{application_title}}",
"defaultTitle": "test",
"titleBarColor": "#d2364c"
},
"tabBar": {
......
......@@ -80,7 +80,9 @@ Page({
}, 2000);
} else {
this.setData({form_submit_loading: false});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -76,7 +76,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -12,7 +12,7 @@
padding: 10rpx 35rpx 10rpx 10rpx;
}
.address-detail .icon {
width: 35rpx;
width: 30rpx;
height: 35rpx !important;
}
.address-detail .text {
......@@ -30,6 +30,13 @@
height: 85rpx;
line-height: 85rpx;
}
.address-alias {
border: 1px solid #d2364c;
color: #d2364c;
padding: 2rpx 10rpx;
border-radius: 6rpx;
margin-right: 10rpx;
}
/**
* 商品
......
<view a:if="{{goods_list.length > 0}}" class="page">
<!-- 地址 -->
<view class="address bg-white arrow-right">
<navigator url="/pages/user-address/user-address?is_back=1" hover-class="none">
<view a:if="{{address != null}}">
<view class="address-base oh">
<text>{{address.name}}</text>
<text class="fr">{{address.tel}}</text>
<block a:if="{{common_site_type == 1}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: 2, msg: '展示型不允许提交订单'}}"></template>
</block>
<block a:else>
<view a:if="{{goods_list.length > 0}}" class="page">
<!-- 地址 -->
<block a:if="{{common_site_type == 0 || common_site_type == 2}}">
<view class="address bg-white arrow-right" onTap="address_event">
<view a:if="{{address != null}}">
<view class="address-base oh">
<text a: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 a:if="{{address == null}}" class="no-address cr-888">
请选择地址
</view>
</view>
<view a:if="{{address == null}}" class="no-address cr-888">
请选择地址
</view>
</navigator>
</view>
<view class="address-divider spacing-mb"></view>
<view class="address-divider spacing-mb"></view>
</block>
<!-- 商品 -->
<view class="goods bg-white spacing-mb">
<view a:for="{{goods_list}}" 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 a:if="{{item.spec != null}}">
<view class="goods-spec cr-888" a:for="{{item.spec}}" a:for-item="spec">
{{spec.type}}:{{spec.value}}
</view>
</block>
</view>
<view class="oh goods-price">
<text class="sales-price">¥{{item.price}}
</text>
<text a:if="{{item.original_price > 0}}" class="original-price">¥{{item.original_price}}
</text>
<text class="buy-number cr-888">x{{item.stock}}
</text>
<!-- 商品 -->
<view class="goods bg-white spacing-mb">
<view a:for="{{goods_list}}" 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 a:if="{{item.spec != null}}">
<view class="goods-spec cr-888" a:for="{{item.spec}}" a:for-item="spec">
{{spec.type}}:{{spec.value}}
</view>
</block>
</view>
<view class="oh goods-price">
<text class="sales-price">¥{{item.price}}
</text>
<text a:if="{{item.original_price > 0}}" class="original-price">¥{{item.original_price}}
</text>
<text class="buy-number cr-888">x{{item.stock}}
</text>
</view>
</view>
</view>
</view>
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea a:if="{{!popup_plugins_coupon_status}}" onInput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" />
<view a:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
</view>
<!-- 优惠劵 -->
<view a:if="{{(plugins_coupon_data || null) != null && plugins_coupon_data.coupon_list.length > 0}}" class="plugins-coupon bg-white spacing-mb arrow-right" onTap="plugins_coupon_open_event">
<text class="cr-666">优惠劵</text>
<text class="cr-ccc fr">{{plugins_choice_coupon_value}}</text>
</view>
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea a:if="{{!popup_plugins_coupon_status}}" onInput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" />
<view a:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
</view>
<!-- 扩展数据展示 -->
<view a:if="{{extension_data.length > 0}}" class="extension-list spacing-mb">
<view a:for="{{extension_data}}" class="item oh">
<text class="cr-666">{{item.name}}
</text>
<text class="text-tips fr">{{item.tips}}
</text>
<!-- 优惠劵 -->
<view a:if="{{(plugins_coupon_data || null) != null && plugins_coupon_data.coupon_list.length > 0}}" class="plugins-coupon bg-white spacing-mb arrow-right" onTap="plugins_coupon_open_event">
<text class="cr-666">优惠劵</text>
<text class="cr-ccc fr">{{plugins_choice_coupon_value}}</text>
</view>
</view>
<!-- 支付方式 -->
<view a:if="{{payment_list.length > 0 && common_order_is_booking != 1}}" class="payment-list bg-white oh">
<view class="item tc fl" a:for="{{payment_list}}">
<view class="item-content br {{(item.selected || '')}}" data-value="{{item.id}}" onTap="payment_event">
<image a:if="{{(item.logo || null) != null}}" class="icon" src="{{item.logo}}" mode="widthFix" />
<text>{{item.name}}</text>
<!-- 扩展数据展示 -->
<view a:if="{{extension_data.length > 0}}" class="extension-list spacing-mb">
<view a:for="{{extension_data}}" class="item oh">
<text class="cr-666">{{item.name}}
</text>
<text class="text-tips fr">{{item.tips}}
</text>
</view>
</view>
</view>
<!-- 导航 -->
<view class="buy-nav oh wh-auto">
<view class="nav-base bg-white fl single-text">
<text>合计:</text>
<text class="sales-price">¥{{total_price}}</text>
<!-- 支付方式 -->
<view a:if="{{payment_list.length > 0 && common_order_is_booking != 1}}" class="payment-list bg-white oh">
<view class="item tc fl" a:for="{{payment_list}}">
<view class="item-content br {{(item.selected || '')}}" data-value="{{item.id}}" onTap="payment_event">
<image a:if="{{(item.logo || null) != null}}" class="icon" src="{{item.logo}}" mode="widthFix" />
<text>{{item.name}}</text>
</view>
</view>
</view>
<view class="fr nav-submit">
<button class="bg-main wh-auto" type="default" onTap="buy_submit_event" disabled="{{buy_submit_disabled_status}}" hover-class="none">提交订单</button>
<!-- 导航 -->
<view class="buy-nav oh wh-auto">
<view class="nav-base bg-white fl single-text">
<text>合计:</text>
<text class="sales-price">¥{{total_price}}</text>
</view>
<view class="fr nav-submit">
<button class="bg-main wh-auto" type="default" onTap="buy_submit_event" disabled="{{buy_submit_disabled_status}}" hover-class="none">提交订单</button>
</view>
</view>
</view>
</view>
<view a:if="{{goods_list.length == 0}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>
<view a:if="{{goods_list.length == 0}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>
<!-- 优惠劵选择 -->
<popup show="{{popup_plugins_coupon_status}}" position="bottom" onClose="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 a: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 onTap="plugins_coupon_not_use_event">不使用优惠劵</text>
<!-- 优惠劵选择 -->
<popup show="{{popup_plugins_coupon_status}}" position="bottom" onClose="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>
<block a:for="{{plugins_coupon_data.coupon_list}}">
<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">¥</text>
<text class="price">{{item.coupon.discount_value}}</text>
<text class="unit">{{item.coupon.type_unit}}</text>
<text a:if="{{(item.coupon.desc || null) != null}}" class="desc cr-888">{{item.coupon.desc}}</text>
<view a: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 onTap="plugins_coupon_not_use_event">不使用优惠劵</text>
</view>
<block a:for="{{plugins_coupon_data.coupon_list}}">
<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">¥</text>
<text class="price">{{item.coupon.discount_value}}</text>
<text class="unit">{{item.coupon.type_unit}}</text>
<text a:if="{{(item.coupon.desc || null) != null}}" class="desc cr-888">{{item.coupon.desc}}</text>
</view>
<view a: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}}" onTap="plugins_coupon_use_event">
<text class="circle"></text>
<text>{{plugins_use_coupon_id == item.id ? '已选' : '选择'}}</text>
</view>
<view a: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}}" onTap="plugins_coupon_use_event">
<text class="circle"></text>
<text>{{plugins_use_coupon_id == item.id ? '已选' : '选择'}}</text>
</view>
</view>
</block>
</block>
</view>
</view>
</view>
</popup>
\ No newline at end of file
</popup>
</block>
\ No newline at end of file
......@@ -15,6 +15,8 @@ Page({
extension_data: [],
payment_id: 0,
common_order_is_booking: 0,
common_site_type: 0,
extraction_address: [],
// 优惠劵
plugins_coupon_data: null,
......@@ -23,6 +25,7 @@ Page({
popup_plugins_coupon_status: false,
},
onLoad(params) {
//params['data'] = '{"buy_type":"goods","goods_id":"1","stock":"1","spec":"[]"}';
if((params.data || null) == null || app.get_length(JSON.parse(params.data)) == 0)
{
my.alert({
......@@ -49,6 +52,16 @@ Page({
// 获取数据列表
init() {
// 订单参数信息是否正确
if (this.data.params == null) {
this.setData({
data_list_loding_status: 2,
data_list_loding_msg: '订单信息有误',
});
my.stopPullDownRefresh();
return false;
}
// 本地缓存地址
if(this.data.is_first == 0)
{
......@@ -59,12 +72,7 @@ Page({
{
this.setData({
address: cache_address.data,
address_id: cache_address.data.id
});
} else {
this.setData({
address: null,
address_id: 0
address_id: cache_address.data.id || 0,
});
}
}
......@@ -100,6 +108,8 @@ Page({
extension_data: data.extension_data || [],
data_list_loding_status: 3,
common_order_is_booking: data.common_order_is_booking || 0,
common_site_type: data.common_site_type || 0,
extraction_address: data.base.extraction_address || [],
plugins_coupon_data: data.plugins_coupon_data || null,
});
......@@ -116,18 +126,14 @@ Page({
}
// 地址
if (this.data.address == null || this.data.address_id == 0) {
if((data.base.address || null) != null) {
this.setData({
address: data.base.address,
address_id: data.base.address.id,
});
my.setStorage({
key: app.data.cache_buy_user_address_select_key,
data: data.base.address,
});
}
}
this.setData({
address: data.base.address || null,
address_id: ((data.base.address || null) != null && (data.base.address.id || null) != null) ? data.base.address.id : null,
});
my.setStorage({
key: app.data.cache_buy_user_address_select_key,
data: data.base.address || null,
});
// 支付方式
this.payment_list_data(data.payment_list);
......@@ -137,7 +143,9 @@ Page({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -172,9 +180,11 @@ Page({
data['coupon_id'] = this.data.plugins_use_coupon_id;
// 数据验证
var validation = [
{ fields: 'address_id', msg: '请选择地址' }
];
var validation = [];
if (this.data.common_site_type == 0 || this.data.common_site_type == 2)
{
validation.push({ fields: 'address_id', msg: '请选择地址', is_can_zero: 1 });
}
if (this.data.common_order_is_booking != 1) {
validation.push({ fields: 'payment_id', msg: '请选择支付方式' });
}
......@@ -264,4 +274,21 @@ Page({
this.init();
},
// 地址选择事件
address_event(e) {
if(this.data.common_site_type == 0)
{
my.navigateTo({
url: '/pages/user-address/user-address?is_back=1'
});
} else if (this.data.common_site_type == 2)
{
my.navigateTo({
url: '/pages/extraction-address/extraction-address?is_back=1'
});
} else {
app.showToast('当前模式不允许使用地址');
}
},
});
<view a:if="{{data_list.length > 0}}" class="{{common_site_type == 1 ? '' : 'page'}}">
<view a:if="{{data_list.length > 0}}" class="page">
<view a:for="{{data_list}}" class="goods-item oh bg-white {{common_site_type == 1 ? 'exhibition-mode-data' : ''}}">
<swipe-action index="{{index}}" restore="{{swipe_index === null || swipe_index !== index}}" right="{{item.right}}" onRightItemClick="right_item_event" onSwipeStart="swipe_start_event" extra="{{index}}">
<!-- 选择 -->
......
......@@ -104,7 +104,9 @@ Page({
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
<template name="copyright">
<view class="copyright">
<view class="text">Powered by ShopXO v1.7.0</view>
<view class="text">Powered by ShopXO v1.8.0</view>
</view>
</template>
\ No newline at end of file
......@@ -62,7 +62,9 @@ Page({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
.item {
padding: 10rpx 10rpx 0 10rpx;
}
.base, .address, .operation {
padding: 20rpx 0;
}
.address .item-icon {
width: 30rpx;
height: 35rpx !important;
}
.address-alias {
border: 1px solid #d2364c;
color: #d2364c;
padding: 2rpx 10rpx;
border-radius: 6rpx;
margin-right: 10rpx;
}
.address .text {
line-height: 44rpx;
width: calc(100% - 40rpx);
}
.operation .map-submit {
margin-left: 20rpx;
}
\ No newline at end of file
<view class="page">
<view a:if="{{data_list.length > 0}}">
<view class="item bg-white spacing-mb" a:for="{{data_list}}" a:key="key">
<view onTap="address_conent_event" data-index="{{index}}">
<view class="base oh">
<text a:if="{{(item.alias || null) != null}}" class="address-alias">{{item.alias}}</text>
<text>{{item.name}}</text>
<text class="fr">{{item.tel}}</text>
</view>
<view class="address oh">
<image class="item-icon fl" src="/images/user-address.png" mode="widthFix" />
<view class="text fr">{{item.province_name}}{{item.city_name}}{{item.county_name}}{{item.address}}</view>
</view>
</view>
<view class="operation br-t oh">
<button a:if="{{item.lng > 0 && item.lat > 0}}" class="fr cr-666 map-submit br" type="default" size="mini" onTap="address_map_event" data-index="{{index}}" hover-class="none">查看地图</button>
</view>
</view>
</view>
<view a:if="{{data_list.length == 0}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status}}"></template>
</view>
<import src="/pages/common/bottom_line.axml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
\ No newline at end of file
const app = getApp();
Page({
data: {
data_list_loding_status: 1,
data_bottom_line_status: false,
data_list: [],
params: null,
is_default: 0,
},
onLoad(params) {
this.setData({ params: params });
},
onShow() {
my.setNavigationBar({ title: app.data.common_pages_title.extraction_address });
this.init();
},
// 初始化
init() {
var user = app.get_user_cache_info(this, "init");
// 用户未绑定用户则转到登录页面
if (app.user_is_need_login(user)) {
my.redirectTo({
url: "/pages/login/login?event_callback=init"
});
return false;
} else {
// 获取数据
this.get_data_list();
}
},
// 获取数据列表
get_data_list() {
// 加载loding
my.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
// 获取数据
my.request({
url: app.get_request_url("extraction", "useraddress"),
method: "POST",
data: {},
dataType: "json",
success: res => {
my.hideLoading();
my.stopPullDownRefresh();
if (res.data.code == 0) {
if (res.data.data.length > 0) {
// 获取当前默认地址
var is_default = 0;
for (var i in res.data.data) {
if (res.data.data[i]['is_default'] == 1) {
is_default = res.data.data[i]['id'];
}
}
// 设置数据
this.setData({
data_list: res.data.data,
is_default: is_default,
data_list_loding_status: 3,
data_bottom_line_status: true,
});
} else {
this.setData({
data_list_loding_status: 0
});
}
} else {
this.setData({
data_list_loding_status: 0
});
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
my.hideLoading();
my.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.get_data_list();
},
// 地图查看
address_map_event(e) {
var index = e.currentTarget.dataset.index || 0;
var ads = this.data.data_list[index] || null;
if (ads == null)
{
app.showToast("地址有误");
return false;
}
var lng = parseFloat(ads.lng_gcj || 0);
var lat = parseFloat(ads.lat_gcj || 0);
if (lng <= 0 || lat <= 0) {
app.showToast("坐标有误");
return false;
}
my.openLocation({
latitude: lat,
longitude: lng,
scale: 18,
name: ads.alias || '',
address: (ads.province_name || '') + (ads.city_name || '') + (ads.county_name || '') + (ads.address || ''),
});
},
// 地址内容事件
address_conent_event(e) {
var index = e.currentTarget.dataset.index || 0;
var is_back = this.data.params.is_back || 0;
if (is_back == 1) {
my.setStorage({
key: app.data.cache_buy_user_address_select_key,
data: this.data.data_list[index]
});
my.navigateBack();
}
},
});
......@@ -125,8 +125,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -198,7 +198,7 @@
.goods-base .goods-price {
padding-right: 100rpx;
position: relative;
min-height: 80rpx;
min-height: 90rpx;
}
.goods-base .goods-price .original-price {
margin-top: 10rpx;
......@@ -230,6 +230,32 @@
border-radius:1px;
}
/**
* 视频
*/
.goods-video {
width: 100%;
position: absolute;
top: 0;
left: 0;
text-align: center;
z-index:1;
}
.goods-video video {
width: 100%;
height: 65vh;
}
.goods-video-submit {
position: absolute;
left: 30rpx;
top: calc(65vh - 110rpx);
z-index: 2;
}
.goods-video-submit image {
width: 80rpx;
height: 80rpx;
}
/*
* 限时秒杀 - 插件
......
......@@ -15,6 +15,17 @@
</block>
</swiper>
<!-- 视频 -->
<block a:if="{{goods.video.length > 0}}">
<view a:if="{{goods_video_is_autoplay}}" class="goods-video">
<video src="{{goods.video}}" autoplay="{{goods_video_is_autoplay}}" show-center-play-btn="{{true}}" controls="{{false}}" show-play-btn="{{false}}" enable-progress-gesture="{{false}}" show-fullscreen-btn="{{false}}"></video>
</view>
<view class="goods-video-submit">
<image a:if="{{!goods_video_is_autoplay}}" class="goods-video-play" onTap="goods_video_play_event" src="/images/goods-detail-video-play.png" mode="aspectFit"></image>
<image a:if="{{goods_video_is_autoplay}}" class="goods-video-close" onTap="goods_video_close_event" src="/images/goods-detail-video-close.png" mode="aspectFit"></image>
</view>
</block>
<!-- 标题 -->
<view class="goods-title multi-text" style="color:{{goods.title_color}}">{{goods.title}}</view>
......@@ -35,7 +46,7 @@
</view>
<text a:if="{{(show_field_price_text || null) != null}}" class="price-icon">{{show_field_price_text}}</text>
<text class="sales-price">¥{{goods.price}}</text>
<view a:if="{{(goods.original_price || null) != null && goods.original_price > 0}}" class="original-price">¥{{goods.original_price}}</view>
<view a:if="{{(goods.original_price || null) != null && goods.original_price != '0.00'}}" class="original-price">¥{{goods.original_price}}</view>
</view>
<view class="base-grid oh">
<view class="fl tl">
......@@ -194,6 +205,12 @@
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>
<!-- 在线客服 -->
<view a:if="{{common_app_is_online_service == 1}}">
<import src="/pages/lib/online-service/content.axml" />
<template is="online_service" data="{{tnt_inst_id: common_app_mini_alipay_tnt_inst_id || null, scene: common_app_mini_alipay_scene || null, openid: common_app_mini_alipay_openid || null}}"></template>
</view>
<!-- 购物车 -->
<navigator url="/pages/cart/cart" open-type="switchTab" hover-class="none">
<view class="common-quick-nav quick-nav-cart">
......
......@@ -31,8 +31,16 @@ Page({
goods_spec_base_images: '',
show_field_price_text: null,
goods_video_is_autoplay: false,
common_app_is_use_mobile_detail: 1,
// 在线客服
common_app_is_online_service: 0,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
common_app_mini_alipay_openid: null,
// 限时秒杀插件
common_app_is_limitedtimediscount: 0,
plugins_limitedtimediscount_data: null,
......@@ -123,8 +131,19 @@ Page({
plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null,
plugins_coupon_data: data.plugins_coupon_data || null,
quick_nav_cart_count: data.common_cart_total || 0,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
// 限时秒杀倒计时
if (this.data.common_app_is_limitedtimediscount == 1 && this.data.plugins_limitedtimediscount_data != null) {
this.plugins_limitedtimediscount_countdown();
......@@ -294,7 +313,9 @@ Page({
});
app.showToast(res.data.msg, 'success');
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -331,7 +352,9 @@ Page({
this.popup_close_event();
app.showToast(res.data.msg, 'success');
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -460,7 +483,9 @@ Page({
this.setData({goods_specifications_choose: temp_data});
}
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -515,7 +540,9 @@ Page({
goods_spec_base_inventory: res.data.data.inventory,
});
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -659,6 +686,16 @@ Page({
});
},
// 视频播放
goods_video_play_event(e) {
this.setData({ goods_video_is_autoplay: true});
},
// 视频关闭
goods_video_close_event(e) {
this.setData({ goods_video_is_autoplay: false });
},
// 显示秒杀插件-倒计时
plugins_limitedtimediscount_countdown() {
// 销毁之前的任务
......
......@@ -75,6 +75,12 @@
<import src="/pages/common/bottom_line.axml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
<!-- 在线客服 -->
<view a:if="{{common_app_is_online_service == 1}}">
<import src="/pages/lib/online-service/content.axml" />
<template is="online_service" data="{{tnt_inst_id: common_app_mini_alipay_tnt_inst_id || null, scene: common_app_mini_alipay_scene || null, openid: common_app_mini_alipay_openid || null}}"></template>
</view>
<!-- 版权 -->
<view a:if="{{load_status == 1}}">
<import src="/pages/common/copyright.axml" />
......
......@@ -11,6 +11,12 @@ Page({
common_app_is_enable_search: 1,
common_app_is_enable_answer: 1,
common_app_is_header_nav_fixed: 0,
// 在线客服
common_app_is_online_service: 0,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
common_app_mini_alipay_openid: null,
// 限时秒杀插件
common_app_is_limitedtimediscount : 0,
......@@ -58,8 +64,19 @@ Page({
data_list_loding_status: data.data_list.length == 0 ? 0 : 3,
common_app_is_limitedtimediscount: data.common_app_is_limitedtimediscount || 0,
plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
// 限时秒杀倒计时
if (this.data.common_app_is_limitedtimediscount == 1 && this.data.plugins_limitedtimediscount_data != null)
{
......
<template name="online_service">
<view a:if="{{(tnt_inst_id || null) != null && (scene || null) != null}}" class="common-quick-nav common-online-service">
<contact-button tnt-inst-id="{{tnt_inst_id}}" scene="{{scene}}" size="90rpx*90rpx" icon="/pages/lib/online-service/icon.png" alipay-card-no="{{openid || ''}}" />
</view>
</template>
\ No newline at end of file
......@@ -98,7 +98,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -108,7 +108,9 @@ Page({
self.init_value();
}, 500);
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -5,7 +5,7 @@
padding: 20rpx 0;
}
.address .item-icon {
width: 35rpx;
width: 30rpx;
height: 35rpx !important;
}
.address .text {
......
......@@ -85,8 +85,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg, 'success');
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -98,7 +98,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -66,7 +66,9 @@ Page({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -96,7 +96,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -95,7 +95,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -98,7 +98,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -56,7 +56,9 @@ Page({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
/*
* 地址信息
*/
.address {
padding: 10rpx;
}
......@@ -24,17 +27,20 @@
line-height: 85rpx;
}
/*
* 商品信息
*/
.goods-base {
min-height: 160rpx;
margin-left: 180rpx;
}
.goods .goods-item:not(:last-child) {
border-bottom: 1px dashed #efefef;
.goods .goods-item:last-child {
border-bottom: 0;
}
.goods-item {
padding: 20rpx 10rpx;
}
.goods-title, .goods-spec {
.goods-title, .goods-attribute {
margin-bottom: 10rpx;
}
.goods-image {
......@@ -50,26 +56,37 @@
right: 0;
bottom: 0;
}
.order-describe {
padding: 20rpx 10rpx;
}
/*
* 基础信息
* 面板信息
*/
.detail-list {
padding: 0 10rpx;
}
.detail-list .item {
.panel-item .panel-title {
background: #fff;
font-weight: bold;
padding: 15rpx;
border-bottom: 2px solid #eee;
font-size: 34rpx;
}
.panel-item .panel-content .item {
padding: 20rpx 0;
}
.detail-list .item .title {
.panel-item .panel-content .item:last-child {
border: 0;
}
.panel-item .panel-content .item .title {
width: 25%;
padding-left: 20rpx;
}
.detail-list .item .content {
.panel-item .panel-content .item .content {
width: calc(75% - 50rpx);
padding-left: 20rpx;
min-height: 46rpx;
}
.detail-list .item view {
.panel-item .panel-content .item .title,
.panel-item .panel-content .item .content {
line-height: 46rpx;
}
......@@ -84,4 +101,59 @@
}
.extension-list .item .content {
padding-left: 20rpx;
}
/*
* 虚拟销售信息
*/
.site-fictitious .panel-content {
padding: 0 20rpx;
}
.site-fictitious .panel-content .tips-value {
color: #f37b1d;
background-color: #fff2e9;
border-color: #ffebdb;
padding: 10rpx;
margin-top: 20rpx;
}
.site-fictitious .panel-content .left-image {
width: 80rpx;
height: 80rpx;
}
.site-fictitious .panel-content .right-value,
.site-fictitious .panel-content .right-value .rich-text-value {
width: calc(100% - 100rpx);
}
.site-fictitious .panel-content .item {
position: relative;
}
.site-fictitious .panel-content .right-value .rich-text-value {
position: absolute;
top: 0;
right: 0;
}
/*
* 自提信息
*/
.site-extraction .panel-content {
padding: 20rpx;
}
.site-extraction .panel-content .code {
background: #5eb95e;
color: #fff;
}
.site-extraction .panel-content .code,
.address-map-submit {
padding: 1rpx 16rpx;
border-radius: 6rpx;
}
.site-extraction .panel-content .qrcode {
margin-top: 15rpx;
width: 300rpx;
height: 300rpx;
}
.address-map-submit {
margin-left: 20rpx;
background: #f5f5f5;
}
\ No newline at end of file
<view a:if="{{detail != null}}">
<view class="address bg-white spacing-mb">
<!-- 地址 -->
<view a:if="{{detail.order_model == 0 || detail.order_model == 2}}" class="address bg-white spacing-mb">
<view class="address-base oh">
<text>{{detail.receive_name}}</text>
<text class="fr">{{detail.receive_tel}}</text>
<text>{{detail.address_data.name}}</text>
<text class="fr">{{detail.address_data.tel}}</text>
</view>
<view class="address-detail oh">
<image class="icon fl" src="/images/user-address.png" mode="widthFix" />
<view class="text fr">{{detail.receive_province_name}}{{detail.receive_city_name}}{{detail.receive_county_name}}{{detail.receive_address}}</view>
<view class="text fr">
{{detail.address_data.province_name}}{{detail.address_data.city_name}}{{detail.address_data.county_name}}{{detail.address_data.address}}
<text a:if="{{detail.order_model == 2 && (detail.address_data.lng_gcj || 0) > 0 && (detail.address_data.lat_gcj || 0) > 0}}" class="cr-666 br address-map-submit" onTap="address_map_event">查看位置</text>
</view>
</view>
</view>
<!-- 商品列表 -->
<view class="goods bg-white spacing-mb">
<view a:for="{{detail.items}}" class="goods-item oh">
<view a:for="{{detail.items}}" class="goods-item br-b-dashed oh">
<navigator url="/pages/goods-detail/goods-detail?goods_id={{item.goods_id}}" hover-class="none">
<image class="goods-image fl" src="{{item.images}}" mode="aspectFill" />
<view class="goods-base">
......@@ -29,13 +34,48 @@
</view>
</navigator>
</view>
<view class="order-describe">{{detail.describe}}</view>
</view>
<!-- 虚拟销售数据 -->
<view a:if="{{detail.order_model == 3 && detail.pay_status == 1 && (detail.status == 3 || detail.status == 4)}}" class="panel-item spacing-mt site-fictitious">
<view class="panel-title">{{site_fictitious.title || '密钥信息'}}</view>
<view class="panel-content bg-white oh">
<view a:if="{{(site_fictitious.tips || null) != null}}" class="tips-value">
<rich-text nodes="{{site_fictitious.tips}}"></rich-text>
</view>
<view a:for="{{detail.items}}" class="item br-b-dashed oh">
<image class="left-image br fl" src="{{item.images}}" mode="aspectFill" />
<view class="right-value fr">
<view a:if="{{(item.fictitious_goods_value || null) != null}}" class="rich-text-value">
<rich-text nodes="{{item.fictitious_goods_value}}"></rich-text>
</view>
<text a:else class="cr-888">未配置数据</text>
</view>
</view>
</view>
</view>
<!-- 自提信息 -->
<view a:if="{{detail.order_model == 2 && (detail.status == 2 || detail.status == 3) && (detail.extraction_data || null) != null}}" class="panel-item spacing-mt site-extraction">
<view class="panel-title">取货信息</view>
<view class="panel-content bg-white oh">
<view>
<text>取货码:</text>
<text class="code">{{detail.extraction_data.code || '取货码不存在、请联系管理员'}}</text>
</view>
<image a:if="{{(detail.extraction_data.images || null) != null}}" class="br qrcode" src="{{detail.extraction_data.images}}" mode="aspectFill" />
</view>
</view>
<!-- 订单基础数据 -->
<view a:if="{{detail_list.length > 0}}" class="detail-list bg-white">
<view a:for="{{detail_list}}" class="item br-b oh">
<view class="title fl">{{item.name}}</view>
<view class="content cr-888 fl br-l">{{item.value}}</view>
<view a:if="{{detail_list.length > 0}}" class="panel-item spacing-mt">
<view class="panel-title">基础数据</view>
<view class="panel-content bg-white">
<view a:for="{{detail_list}}" class="item br-b oh">
<view class="title fl">{{item.name}}</view>
<view class="content cr-888 fl br-l">{{item.value}}</view>
</view>
</view>
</view>
......
const app = getApp();
import parse from 'mini-html-parser2';
Page({
data: {
params: null,
......@@ -9,9 +10,11 @@ Page({
detail: null,
detail_list: [],
extension_data: [],
site_fictitious: null,
},
onLoad(params) {
//params['id'] = 7;
this.setData({params: params});
this.init();
},
......@@ -41,40 +44,78 @@ Page({
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
detail: data,
detail: data.data,
detail_list:[
{name: "订单号", value: data.order_no || ''},
{name: "状态", value: data.status_name || ''},
{name: "支付状态", value: data.pay_status_name || ''},
{name: "单价", value: data.price || ''},
{name: "总价", value: data.total_price || ''},
{name: "优惠金额", value: data.preferential_price || ''},
{name: "增加金额", value: data.increase_price || '' },
{name: "支付金额", value: data.pay_price || ''},
{name: "支付方式", value: data.payment_name || ''},
{name: "快递公司", value: data.express_name || ''},
{name: "快递单号", value: data.express_number || ''},
{name: "用户留言", value: data.user_note || ''},
{name: "创建时间", value: data.add_time || ''},
{name: "确认时间", value: data.confirm_time || ''},
{name: "支付时间", value: data.pay_time || ''},
{name: "发货时间", value: data.delivery_time || ''},
{name: "收货时间", value: data.collect_time || ''},
{name: "取消时间", value: data.close_time || ''},
{name: "关闭时间", value: data.close_time || ''},
{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 || ''},
{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.close_time || ''},
{name: "关闭时间", value: data.data.close_time || ''},
],
extension_data: data.extension_data || [],
extension_data: data.data.extension_data || [],
site_fictitious: data.site_fictitious || null,
data_list_loding_status: 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
// web内容转化
if(data.data.order_model == 3 && data.data.pay_status == 1 && (data.data.status == 3 || data.data.status == 4))
{
// 密钥信息
var items = data.data.items;
for(var i in items)
{
var value = items[i]['fictitious_goods_value'] || null;
if(value != null)
{
parse(value, (err, nodes) => {
if (!err) {
items[i]['fictitious_goods_value'] = nodes;
}
});
}
}
// 提示信息
var tips = data.site_fictitious.tips || null;
if(tips != null)
{
parse(tips, (err, nodes) => {
if (!err) {
tips = nodes;
}
});
}
this.setData({
'detail.items': items,
'site_fictitious.tips': tips,
});
}
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -90,6 +131,31 @@ Page({
});
},
// 地图查看
address_map_event(e) {
if ((this.data.detail.address_data || null) == null)
{
app.showToast("地址有误");
return false;
}
var ads = this.data.detail.address_data;
var lng = parseFloat(ads.lng_gcj || 0);
var lat = parseFloat(ads.lat_gcj || 0);
if (lng <= 0 || lat <= 0) {
app.showToast("坐标有误");
return false;
}
my.openLocation({
latitude: lat,
longitude: lng,
scale: 18,
name: ads.alias || '',
address: (ads.province_name || '') + (ads.city_name || '') + (ads.county_name || '') + (ads.address || ''),
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
......
......@@ -24,7 +24,7 @@
.goods-title {
line-height: 36rpx;
}
.list-item .goods-item:not(:last-child) {
.list-item .goods-item:last-child {
border-bottom: 1px dashed #efefef;
}
.goods-item {
......
......@@ -14,7 +14,7 @@
<text class="cr-666">{{item.add_time}}</text>
<text class="fr cr-main">{{item.status_name}}</text>
</view>
<view a:for="{{item.items}}" a:for-item="detail" class="goods-item oh">
<view a:for="{{item.items}}" a:for-item="detail" class="goods-item br-b-dashed oh">
<navigator url="/pages/user-order-detail/user-order-detail?id={{item.id}}" hover-class="none">
<image class="goods-image fl" src="{{detail.images}}" mode="aspectFill" />
<view class="goods-base">
......@@ -34,10 +34,10 @@
</navigator>
</view>
<view class="item-describe tr cr-666">{{item.describe}}</view>
<view a:if="{{item.status <= 3 || (item.status == 4 && item.user_is_comments == 0)}}" class="item-operation tr br-t">
<view a:if="{{item.status == 1 || item.status == 3 || (item.status == 4 && item.user_is_comments == 0) || (item.status == 2 && item.order_model != 2)}}" class="item-operation tr br-t">
<button a:if="{{item.status <= 1}}" class="submit-cancel" type="default" size="mini" onTap="cancel_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">取消</button>
<button a:if="{{item.status == 1}}" class="submit-pay cr-666" type="default" size="mini" onTap="pay_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">支付</button>
<button a:if="{{item.status == 2}}" class="submit-rush cr-666" type="default" size="mini" onTap="rush_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">催催</button>
<button a:if="{{item.status == 2 && item.order_model != 2}}" class="submit-rush cr-666" type="default" size="mini" onTap="rush_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">催催</button>
<button a:if="{{item.status == 3}}" class="submit-success cr-666" type="default" size="mini" onTap="collect_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">收货</button>
<button a:if="{{item.status == 4 && item.user_is_comments == 0}}" class="submit-success cr-666 br" type="default" size="mini" onTap="comments_event" data-value="{{item.id}}" data-index="{{index}}" hover-class="none">评论</button>
</view>
......
......@@ -164,7 +164,9 @@ Page({
data_list_loding_status: 0,
load_status: 1,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -166,7 +166,9 @@ Page({
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -134,8 +134,9 @@ Page({
data_list_loding_status: 0,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -70,6 +70,12 @@
<view class="tips">{{common_user_center_notice}}</view>
</view>
<!-- 在线客服 -->
<view a:if="{{common_app_is_online_service == 1}}">
<import src="/pages/lib/online-service/content.axml" />
<template is="online_service" data="{{tnt_inst_id: common_app_mini_alipay_tnt_inst_id || null, scene: common_app_mini_alipay_scene || null, openid: common_app_mini_alipay_openid || null}}"></template>
</view>
<!-- 版权 -->
<import src="/pages/common/copyright.axml" />
<template is="copyright"></template>
......@@ -23,6 +23,13 @@ Page({
// 远程自定义导航
navigation: [],
// 在线客服
common_app_is_online_service: 0,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
common_app_mini_alipay_openid: null,
// 是否启用头部小导航
common_app_is_head_vice_nav: 0,
},
......@@ -104,9 +111,22 @@ Page({
head_nav_list: temp_head_nav_list,
navigation: data.navigation || [],
common_app_is_head_vice_nav: data.common_app_is_head_vice_nav || 0,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
<template name="copyright">
<view class="copyright">
<view class="text">Powered by ShopXO v1.7.0</view>
<view class="text">Powered by ShopXO v1.8.0</view>
</view>
</template>
\ No newline at end of file
......@@ -196,7 +196,7 @@
.goods-base .goods-price {
padding-right: 100rpx;
position: relative;
min-height: 80rpx;
min-height: 90rpx;
}
.goods-base .goods-price .original-price {
margin-top: 8rpx;
......
......@@ -39,7 +39,7 @@
</view>
<text s-if="(show_field_price_text || null) != null" class="price-icon">{{show_field_price_text}}</text>
<text class="sales-price">¥{{goods.price}}</text>
<view s-if="(goods.original_price || null) != null && goods.original_price > 0" class="original-price">¥{{goods.original_price}}</view>
<view s-if="(goods.original_price || null) != null && goods.original_price != '0.00'" class="original-price">¥{{goods.original_price}}</view>
</view>
<view class="base-grid oh">
<view class="fl tl">
......
<template name="copyright">
<view class="copyright">
<view class="text">Powered by ShopXO v1.7.0</view>
<view class="text">Powered by ShopXO v1.8.0</view>
</view>
</template>
\ No newline at end of file
......@@ -46,7 +46,7 @@
</view>
<text qq:if="{{(show_field_price_text || null) != null}}" class="price-icon">{{show_field_price_text}}</text>
<text class="sales-price">{{goods.price}}</text>
<view qq:if="{{(goods.original_price || null) != null && goods.original_price > 0}}" class="original-price">{{goods.original_price}}</view>
<view qq:if="{{(goods.original_price || null) != null && goods.original_price != '0.00'}}" class="original-price">{{goods.original_price}}</view>
</view>
<view class="base-grid oh">
<view class="fl tl">
......
......@@ -197,7 +197,7 @@
.goods-base .goods-price {
padding-right: 100rpx;
position: relative;
min-height: 80rpx;
min-height: 90rpx;
}
.goods-base .goods-price .original-price {
margin-top: 8rpx;
......
<template name="copyright">
<view class="copyright">
<view class="text">Powered by ShopXO v1.7.0</view>
<view class="text">Powered by ShopXO v1.8.0</view>
</view>
</template>
\ No newline at end of file
......@@ -46,7 +46,7 @@
</view>
<text tt:if="{{(show_field_price_text || null) != null}}" class="price-icon">{{show_field_price_text}}</text>
<text class="sales-price">¥{{goods.price}}</text>
<view tt:if="{{(goods.original_price || null) != null && goods.original_price > 0}}" class="original-price">¥{{goods.original_price}}</view>
<view tt:if="{{(goods.original_price || null) != null && goods.original_price != '0.00'}}" class="original-price">¥{{goods.original_price}}</view>
</view>
<view class="base-grid oh">
<view class="fl tl">
......
......@@ -197,7 +197,7 @@
.goods-base .goods-price {
padding-right: 100rpx;
position: relative;
min-height: 80rpx;
min-height: 90rpx;
}
.goods-base .goods-price .original-price {
margin-top: 8rpx;
......
......@@ -117,7 +117,6 @@ Page({
address: data.base.address || null,
address_id: ((data.base.address || null) != null && (data.base.address.id || null) != null) ? data.base.address.id : null,
});
wx.setStorage({
key: app.data.cache_buy_user_address_select_key,
data: data.base.address || null,
......
......@@ -9,6 +9,7 @@
<view class="address bg-white arrow-right" bindtap="address_event">
<view wx:if="{{address != null}}">
<view class="address-base oh">
<text wx:if="{{(address.alias || null) != null}}" class="address-alias">{{address.alias}}</text>
<text>{{address.name}}</text>
<text class="fr">{{address.tel}}</text>
</view>
......
......@@ -12,7 +12,7 @@
padding: 10rpx 35rpx 10rpx 10rpx;
}
.address-detail .icon {
width: 35rpx;
width: 30rpx;
height: 35rpx !important;
}
.address-detail .text {
......@@ -30,6 +30,13 @@
height: 85rpx;
line-height: 85rpx;
}
.address-alias {
border: 1px solid #d2364c;
color: #d2364c;
padding: 2rpx 10rpx;
border-radius: 6rpx;
margin-right: 10rpx;
}
/**
* 商品
......
<template name="copyright">
<view class="copyright">
<view class="text">Powered by ShopXO v1.7.0</view>
<view class="text">Powered by ShopXO v1.8.0</view>
</view>
</template>
\ No newline at end of file
......@@ -5,7 +5,7 @@
padding: 20rpx 0;
}
.address .item-icon {
width: 35rpx;
width: 30rpx;
height: 35rpx !important;
}
.address-alias {
......
......@@ -50,7 +50,6 @@ Page({
data_list_loding_status: 0,
data_bottom_line_status: true,
});
app.showToast(res.data.msg);
}
},
......
......@@ -482,7 +482,9 @@ Page({
this.setData({goods_specifications_choose: temp_data});
}
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......@@ -536,7 +538,9 @@ Page({
goods_spec_base_inventory: res.data.data.inventory,
});
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -44,7 +44,7 @@
</view>
<text wx:if="{{(show_field_price_text || null) != null}}" class="price-icon">{{show_field_price_text}}</text>
<text class="sales-price">¥{{goods.price}}</text>
<view wx:if="{{(goods.original_price || null) != null && goods.original_price > 0}}" class="original-price">¥{{goods.original_price}}</view>
<view wx:if="{{(goods.original_price || null) != null && goods.original_price != '0.00'}}" class="original-price">¥{{goods.original_price}}</view>
</view>
<view class="base-grid oh">
<view class="fl tl">
......
......@@ -196,7 +196,7 @@
.goods-base .goods-price {
padding-right: 100rpx;
position: relative;
min-height: 80rpx;
min-height: 90rpx;
}
.goods-base .goods-price .original-price {
margin-top: 8rpx;
......
......@@ -91,8 +91,9 @@ Page({
this.setData({
data_list_loding_status: 0
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -89,7 +89,9 @@ Page({
self.init_value();
}, 500);
} else {
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -5,7 +5,7 @@
padding: 20rpx 0;
}
.address .item-icon {
width: 35rpx;
width: 30rpx;
height: 35rpx !important;
}
.address-alias {
......
......@@ -56,7 +56,9 @@ Page({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
app.showToast(res.data.msg);
if (app.is_login_check(res.data)) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
......
......@@ -9,7 +9,7 @@
<image class="icon fl" src="/images/user-address.png" mode="widthFix" />
<view class="text fr">
{{detail.address_data.province_name}}{{detail.address_data.city_name}}{{detail.address_data.county_name}}{{detail.address_data.address}}
<text wx:if="{{detail.order_model == 2 && (detail.status == 2 || detail.status == 3) && (detail.address_data.lng_gcj || 0) > 0 && (detail.address_data.lat_gcj || 0) > 0}}" class="cr-666 br address-map-submit" bindtap="address_map_event">查看位置</text>
<text wx:if="{{detail.order_model == 2 && (detail.address_data.lng_gcj || 0) > 0 && (detail.address_data.lat_gcj || 0) > 0}}" class="cr-666 br address-map-submit" bindtap="address_map_event">查看位置</text>
</view>
</view>
</view>
......
/*
* 地址信息
*/
.address {
padding: 10rpx;
}
......@@ -24,6 +27,9 @@
line-height: 85rpx;
}
/*
* 商品信息
*/
.goods-base {
min-height: 160rpx;
margin-left: 180rpx;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册