gdpaomg
This commit is contained in:
commit
2afd55f79e
@ -259,12 +259,13 @@ export default {
|
||||
return vm.$u.post('Order/buyer_cancel', params);
|
||||
},
|
||||
// add_refund
|
||||
refundOrder({ order_id, goods_id, refund_amount, refund_type = 1 } = {}) {
|
||||
refundOrder({ order_id, goods_id, goods_num, reason_info, refund_amount } = {}) {
|
||||
return vm.$u.post('order/add_refund', {
|
||||
order_id: order_id,
|
||||
goods_id: goods_id,
|
||||
refund_amount: refund_amount,
|
||||
refund_type: refund_type,
|
||||
goods_num: goods_num,
|
||||
reason_info: reason_info,
|
||||
});
|
||||
},
|
||||
// 删除订单
|
||||
|
@ -52,7 +52,7 @@ const install = (Vue, vm) => {
|
||||
} else {
|
||||
// 如果返回false,则会调用Promise的reject回调,
|
||||
// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中,res为服务端的返回值
|
||||
return false;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="order-btn" v-if="[1, 2, 3, 4, 8].indexOf(order.view_type) >= 0">
|
||||
<view class="cancel" v-if="order.view_type == 3 || order.view_type == 2" @click="toOtherPage('RefundOrder')">申请退款</view>
|
||||
<view class="cancel" v-if="(order.view_type == 3 || order.view_type == 2) && order.is_refund == 1" @click="toOtherPage('RefundOrder')">申请退款</view>
|
||||
<view class="cancel" v-if="order.view_type == 3" @click="toOtherPage('Logistics')">查看物流</view>
|
||||
<view class="logistics" v-if="order.view_type == 3" @click="confirmReceive">确认收货</view>
|
||||
<view class="comment" v-if="order.view_type == 4" @click="toOtherPage('Comment')">立即评价</view>
|
||||
@ -47,7 +47,7 @@ export default {
|
||||
props: {
|
||||
order: Object
|
||||
},
|
||||
created() {
|
||||
mounted() {
|
||||
this.viewState();
|
||||
},
|
||||
methods: {
|
||||
@ -81,6 +81,7 @@ export default {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// console.log(state);
|
||||
this.state = state;
|
||||
},
|
||||
cancelOrder() {
|
||||
|
@ -36,6 +36,7 @@
|
||||
box-sizing: border-box;
|
||||
border-radius: 6rpx;
|
||||
margin-right: 26rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.xuanzhong{
|
||||
border: #ff780f 1rpx solid;
|
||||
|
@ -22,10 +22,17 @@
|
||||
<text class="store-name">{{ goodsInfo.store_name }}</text>
|
||||
<text class="goods-name">{{ goodsInfo.goods_name }}</text>
|
||||
</view>
|
||||
<view class="pic">
|
||||
<text>¥{{ goodsInfo.goods_price }}</text>
|
||||
<s>¥{{ goodsInfo.goods_marketprice }}</s>
|
||||
</view>
|
||||
<view class="price-collect">
|
||||
<view class="pic" v-if="type != 3">
|
||||
<text>¥{{ goodsInfo.goods_price }}</text>
|
||||
<s>¥{{ goodsInfo.goods_marketprice }}</s>
|
||||
</view>
|
||||
<view class="collect">
|
||||
<u-icon name="star" color="#474747" size="28" v-if="1"></u-icon>
|
||||
<u-icon name="star-fill" color="#FF7807" size="28" v-else></u-icon>
|
||||
<text>收藏</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="hr"></view>
|
||||
<!-- <navs :value="领券"></navs> -->
|
||||
@ -135,11 +142,11 @@
|
||||
</u-popup>
|
||||
<!-- 普通商品 tool -->
|
||||
<view class="tloos" v-if="type == 1">
|
||||
<view class="navs" @click="toOthersPage('pageC/merchant/index?id=' + storeInfo.store_id)">
|
||||
<view class="navs" @click="toOthersPage('pageC/merchant/index?id=' + storeInfo.store_id)" v-if="!showSpec">
|
||||
<image src="/static/image/common/18.png"></image>
|
||||
店铺
|
||||
</view>
|
||||
<view class="navs" style="margin-right:30rpx">
|
||||
<view class="navs" style="margin-right:30rpx" v-if="!showSpec">
|
||||
<image src="/static/image/common/19.png"></image>
|
||||
客服
|
||||
</view>
|
||||
@ -154,7 +161,7 @@
|
||||
</view>
|
||||
<!-- 秒杀 tool -->
|
||||
<view class="spike-tool" v-if="type==3">
|
||||
<view class="left">
|
||||
<view class="left" v-if="!showSpec">
|
||||
<view @click="toOthersPage('pageC/merchant/index?id=' + storeInfo.store_id)">
|
||||
<image src="/static/image/common/18.png"></image>
|
||||
<text>店铺</text>
|
||||
@ -222,7 +229,6 @@ export default {
|
||||
// console.log(option);
|
||||
this.type = Number(option.type);
|
||||
this.id = option.id;
|
||||
this.getGoodsDetails(this.id);
|
||||
this.setTitle();
|
||||
},
|
||||
onShow() {
|
||||
@ -230,6 +236,7 @@ export default {
|
||||
this.showSpec = false;
|
||||
this.showGroupUser = false;
|
||||
this.showInvolvementUser = false;
|
||||
this.getGoodsDetails(this.id);
|
||||
},
|
||||
onNavigationBarButtonTap(e) {
|
||||
if(e.index == 0) this.$u.route('/pageC/cart/index');
|
||||
@ -331,6 +338,7 @@ export default {
|
||||
this.glist = res.data.data.spec_list;
|
||||
this.user_suc = res.data.data.user_suc;
|
||||
this.groupUser =res.data.data.user;
|
||||
console.log(this.groupUser);
|
||||
}
|
||||
})
|
||||
},
|
||||
@ -372,13 +380,14 @@ export default {
|
||||
}
|
||||
if(this.type == 2) {
|
||||
if(type == 'involvement') {
|
||||
// const userId = uni.getStorageSync('user_info').member.member_id;
|
||||
this.$store.commit('setGroupHeadId', this.involvemenGroupInfo[0].user_id);
|
||||
console.log(this.$store.state.pintuangroup_headid);
|
||||
Object.assign(params, {
|
||||
pintuan_id: this.id,
|
||||
pintuangroup_id: this.involvemenGroupInfo[0].pintuangroup_id,
|
||||
})
|
||||
} else {
|
||||
const userId = uni.getStorageSync('user_info').member.member_id;
|
||||
this.$store.commit('setGroupHeadId', userId);
|
||||
Object.assign(params, {
|
||||
pintuan_id: this.id,
|
||||
})
|
||||
@ -563,18 +572,31 @@ export default {
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
.pic{
|
||||
>text{
|
||||
font-size: 32rpx;
|
||||
color: #FF3131;
|
||||
}
|
||||
>s{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
display: inline-block;
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
}
|
||||
.price-collect {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.pic{
|
||||
>text{
|
||||
font-size: 32rpx;
|
||||
color: #FF3131;
|
||||
}
|
||||
>s{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
display: inline-block;
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
}
|
||||
.collect {
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
> text {
|
||||
margin-left: 12rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.comment {
|
||||
margin-top: 20rpx;
|
||||
|
@ -179,12 +179,13 @@ export default {
|
||||
let params = {
|
||||
pintuan_id: this.orderInfo.pintuan_id,
|
||||
}
|
||||
// console.log(this.involvemenGroupInfo);
|
||||
// console.log(this.orderInfo);
|
||||
// console.log(this.$store.state.pintuangroup_headid);
|
||||
if(this.orderInfo.pintuangroup_id) {
|
||||
Object.assign(params, { pintuangroup_headid: this.$store.state.pintuangroup_headid });
|
||||
Object.assign(params, { pintuangroup_id: this.orderInfo.pintuangroup_id });
|
||||
}
|
||||
// console.log(params);
|
||||
console.log(params);
|
||||
this.$u.api.withImmediate(params).then(res => {
|
||||
this.showGroupUser = false;
|
||||
this.showInvolvementUser = false;
|
||||
@ -200,7 +201,6 @@ export default {
|
||||
if(!this.debounce) return;
|
||||
this.debounce = false;
|
||||
if(this.orderType == 2) {
|
||||
// this.sendOrder(0);
|
||||
this.withImmediate();
|
||||
} else if(this.orderType == 1) {
|
||||
this.sendOrder(0);
|
||||
@ -256,7 +256,6 @@ export default {
|
||||
// console.log(params);
|
||||
this.$u.api.sendOrder(params).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
// this.withImmediate();
|
||||
this.$u.route({
|
||||
type: 'redirect',
|
||||
url: '/pageC/cart/cashier',
|
||||
|
@ -4,7 +4,7 @@
|
||||
<view v-for="(store, s_index) in list" :key="s_index" class="cart-item">
|
||||
<view class="store">
|
||||
<u-checkbox v-model="store.checked" shape="circle" active-color="#FF780F" icon-size="35" :name="s_index" @change="storeaAloneChange"></u-checkbox>
|
||||
<view class="name">
|
||||
<view class="name" @click="viewStoreDetails(store.store_id)">
|
||||
<image :src="store.store_avatar"></image>
|
||||
<view>{{ store.store_name }}</view>
|
||||
</view>
|
||||
@ -12,9 +12,9 @@
|
||||
<view class="goods">
|
||||
<u-checkbox-group @change="goodsChange($event, s_index)">
|
||||
<view v-for="(goods, g_index) in store.goods" :key="g_index" class="goods-item">
|
||||
<u-checkbox v-model="goods.checked" shape="circle" active-color="#FF780F" icon-size="35" :name="g_index" ></u-checkbox>
|
||||
<image :src="goods.goods_image"></image>
|
||||
<view class="info">
|
||||
<u-checkbox v-model="goods.checked" shape="circle" active-color="#FF780F" icon-size="35" :name="g_index"></u-checkbox>
|
||||
<image :src="goods.goods_image" @click="viewGoodsDetails(goods.goods_id)"></image>
|
||||
<view class="info" @click="viewGoodsDetails(goods.goods_id)">
|
||||
<view class="name u-line-2">{{ goods.goods_name }}</view>
|
||||
<view class="cart-info">
|
||||
<view class="price">¥{{ goods.goods_price }}</view>
|
||||
@ -204,6 +204,23 @@ export default {
|
||||
})
|
||||
this.list[value[1]].checked = checked;
|
||||
this.storeChange();
|
||||
},
|
||||
viewStoreDetails(sid) {
|
||||
this.$u.route({
|
||||
url: 'pageC/merchant/index',
|
||||
params: {
|
||||
id: sid
|
||||
}
|
||||
})
|
||||
},
|
||||
viewGoodsDetails(gid) {
|
||||
this.$u.route({
|
||||
url: 'pageB/sdetails/index',
|
||||
params: {
|
||||
id: gid,
|
||||
type: 1,
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
onNavigationBarButtonTap(btn) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="imageTop">
|
||||
<image :src="url"></image>
|
||||
<image :src="url" mode="aspectFit"></image>
|
||||
</view>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="listItem">
|
||||
<video v-if="type == '2'" :src="url" :show-fullscreen-btn="true"></video>
|
||||
<image v-else :src="url"></image>
|
||||
<image v-else :src="url" mode="aspectFit"></image>
|
||||
</view>
|
||||
</template>
|
||||
<style lang="scss" scoped>
|
||||
|
@ -14,7 +14,7 @@
|
||||
</view>
|
||||
<scroll-view scroll-y class="scroll-container" :style="{ height: scrollHeight }" @scrolltolower="loadMore">
|
||||
<view class="goods-container">
|
||||
<view v-for="goods in goodsList" :key="goods.goods_id" class="goods-view" @click="toDetailsPage(goods.goods_id)">
|
||||
<view v-for="(goods, index) in goodsList" :key="index" class="goods-view" @click="toDetailsPage(goods.goods_id)">
|
||||
<goodsItem :info="goods"></goodsItem>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -37,19 +37,16 @@
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="main">
|
||||
<view class="video-image" v-if="cur==0 && indextop.length">
|
||||
<scroll-view class="video-image" scroll-y v-if="cur==0 && indextop.length" :style="{ height: scrollHeiht }">
|
||||
<view v-for="item in indextop" :key="item.id">
|
||||
<videoTop :url="item.url" v-if="item.type == 2"></videoTop>
|
||||
<imageTop v-else :url="item.url"></imageTop>
|
||||
<videoTop :url="item.article_pic" v-if="item.type == 2"></videoTop>
|
||||
<imageTop v-else :url="item.article_pic"></imageTop>
|
||||
</view>
|
||||
<view style="display: flex;flex-wrap: wrap;" v-if="indexlist.length">
|
||||
<listitem :style="{'margin-left': index%2 == 1 ? '20rpx':'0'}" v-for="(item,index) in indexlist" :key="item.id" :type="item.type" :url="item.url"></listitem>
|
||||
<listitem :style="{'margin-left': index%2 == 1 ? '20rpx':'0'}" v-for="(item,index) in indexlist" :key="item.id" :type="item.type" :url="item.article_pic"></listitem>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 商品筛选排序未完成 -->
|
||||
</scroll-view>
|
||||
<view class="item" v-if="cur==1">
|
||||
<!-- <item v-for="item in list" :key="item.gc_id" :info="item" class="item"></item> -->
|
||||
<goods :sid="sid"></goods>
|
||||
</view>
|
||||
</view>
|
||||
@ -87,10 +84,12 @@ export default {
|
||||
sid: '',
|
||||
show: false,
|
||||
cur: 0,
|
||||
list:[],
|
||||
indexlist:[],
|
||||
indextop:[],
|
||||
info:{}
|
||||
list: [],
|
||||
indexlist: [],
|
||||
indextop: [],
|
||||
info: {},
|
||||
page: 0,
|
||||
scrollHeiht: '',
|
||||
}
|
||||
},
|
||||
components:{
|
||||
@ -101,7 +100,8 @@ export default {
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.getStoreInfo();
|
||||
this.getStoreImgVideoList();
|
||||
this.getArticlelist();
|
||||
// this.getStoreImgVideoList();
|
||||
},
|
||||
onNavigationBarButtonTap(e) {
|
||||
// console.log(e.index);
|
||||
@ -114,7 +114,7 @@ export default {
|
||||
if(current == 0) {
|
||||
this.$u.route('/pageC/merchant/storeClassify', { id: this.sid });
|
||||
} else if(current == 2) {
|
||||
this.$u.route('./details', { id: this.sid });
|
||||
this.$u.route('/pageC/merchant/details', { id: this.sid });
|
||||
}
|
||||
},
|
||||
getStoreInfo() {
|
||||
@ -140,12 +140,38 @@ export default {
|
||||
this.$u.toast(res.message);
|
||||
})
|
||||
},
|
||||
getArticlelist() {
|
||||
this.$u.api.getArticlelist({
|
||||
page: this.page,
|
||||
is_video_img: 0,
|
||||
store_id: this.sid,
|
||||
}).then(res => {
|
||||
uni.stopPullDownRefresh();
|
||||
if (res.errCode == 0) {
|
||||
// this.articleList = res.data.list;
|
||||
if(res.data.list.length > 0) {
|
||||
this.indextop = [res.data.list[0]]
|
||||
this.indextop = [res.data.list[0], res.data.list[1]];
|
||||
}
|
||||
if(res.data.list.length > 1) {
|
||||
this.indextop.push(res.data.list[1]);
|
||||
this.indexlist.push(...res.data.list.slice(2,));
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
setViewHeight() {
|
||||
const res = uni.getSystemInfoSync();
|
||||
this.scrollHeiht = res.windowHeight - (73 + 20 + 170) + 'px';
|
||||
}
|
||||
},
|
||||
onLoad(option){
|
||||
this.sid = option.id;
|
||||
console.log(this.sid);
|
||||
// console.log(this.sid);
|
||||
this.getStoreInfo();
|
||||
this.getStoreImgVideoList();
|
||||
this.getArticlelist();
|
||||
this.setViewHeight();
|
||||
// this.getStoreImgVideoList();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -193,6 +193,10 @@
|
||||
sendMessage() {//发送消息
|
||||
if (this.content.trim() != '') {
|
||||
this.imService.sendPrivateTextMessage(this.friend.uuid, this.content);
|
||||
let that = this
|
||||
setTimeout(function(){
|
||||
that.scrollToBottom();
|
||||
},500)
|
||||
}
|
||||
this.content = "";
|
||||
},
|
||||
@ -322,7 +326,7 @@
|
||||
}
|
||||
|
||||
.chatInterface .message-item{
|
||||
max-height: 400rpx;
|
||||
/* max-height: 400rpx; */
|
||||
margin-top: 40rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
@ -342,7 +346,7 @@
|
||||
.chatInterface .content{
|
||||
font-size: 34rpx;
|
||||
line-height: 44rpx;
|
||||
max-height: 400rpx;
|
||||
/* max-height: 400rpx; */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: right;
|
||||
@ -356,6 +360,7 @@
|
||||
.chatInterface .content .text-content{
|
||||
padding: 16rpx;
|
||||
border-radius: 12rpx;
|
||||
max-width: 520rpx;
|
||||
}
|
||||
.chatInterface .content .pending{
|
||||
background: url("../images/pending.gif") no-repeat center;
|
||||
@ -528,5 +533,83 @@
|
||||
left: 50%;
|
||||
margin:-20rpx;
|
||||
}
|
||||
.chatInterface .avatar{
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
}
|
||||
.chatInterface .avatar img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.chatInterface .content{
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
.chatInterface .content span{
|
||||
font-family: Source Han Sans CN;
|
||||
letter-spacing: -0.41px;
|
||||
color: #262628;
|
||||
background: #efefef;
|
||||
display: inline-block;
|
||||
word-break: break-all;
|
||||
}
|
||||
.chatInterface .message-item.self{
|
||||
margin-right: 0;
|
||||
}
|
||||
.chatInterface .message-item.self .avatar{
|
||||
margin-right: 0;
|
||||
float: right;
|
||||
}
|
||||
.chatInterface .message-item.self .content{
|
||||
text-align: right;
|
||||
float: right;
|
||||
}
|
||||
.chatInterface .message-item.self .content span{
|
||||
color: #ffffff;
|
||||
background:#D02129;
|
||||
word-break: break-all;
|
||||
text-align: left;
|
||||
max-width: 520rpx;
|
||||
}
|
||||
.chatInterface .action-box{
|
||||
background: #FAFAFA;
|
||||
display: flex;
|
||||
align-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.chatInterface .message-input{
|
||||
background: #efefef;
|
||||
border: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.chatInterface .send-message-btn{
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: #95949A;
|
||||
}
|
||||
|
||||
.chatInterface .member-layer{
|
||||
width:100%;
|
||||
height: 100%;
|
||||
background: #FFFFFF;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.member-layer .member{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.chatInterface .group-icon{
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.chatInterface .gray{
|
||||
color: gray!important;
|
||||
text-decoration: none!important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
@ -29,6 +29,7 @@
|
||||
</view>
|
||||
<view class="edit-tips">注意:修改手机号需要原手机号获取验证码,无原手机验证码,请联系客服</view>
|
||||
<view class="edit-btn" @click="updateMemberInfo">完成</view>
|
||||
<u-toast ref="uToast" />
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@ -155,8 +156,11 @@ export default {
|
||||
birthday: this.birthday,
|
||||
}).then(res => {
|
||||
if (res.errCode == 0) {
|
||||
this.getUserInfo();
|
||||
// this.$u.toast(res.message);
|
||||
// this.getUserInfo();
|
||||
this.$refs.uToast.show({
|
||||
title: res.message,
|
||||
back: true,
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -68,7 +68,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn" v-if="['1', '2', '4', '6'].indexOf(orderstate) >= 0">
|
||||
<view class="cancel" v-if="orderstate == '4' || orderstate == '1'" @click="toOtherPage('RefundOrder')">申请退款</view>
|
||||
<view class="cancel" v-if="(orderstate == '4' || orderstate == '1') && orderInfo.is_refund == 1" @click="toOtherPage('RefundOrder')">申请退款</view>
|
||||
<view class="cancel" v-if="orderstate == '1'" @click="toOtherPage('Logistics')">查看物流</view>
|
||||
<view class="logistics" v-if="orderstate == '1'" @click="confirmReceive">确认收货</view>
|
||||
<view class="comment" v-if="orderstate == '2'" @click="toOtherPage('Comment')">立即评价</view>
|
||||
|
@ -134,7 +134,7 @@ export default {
|
||||
if(load == 'reload') this.orderList = res.data;
|
||||
else if(load == 'loadmore') this.orderList.push(...res.data);
|
||||
}
|
||||
return res;
|
||||
return res.data.length;
|
||||
},
|
||||
// 售后
|
||||
async getAfterSaleList({ load = 'loadmore' } = {}) {
|
||||
@ -146,7 +146,7 @@ export default {
|
||||
if(load == 'reload') this.orderList = res.data;
|
||||
else if(load == 'loadmore') this.orderList.push(...res.data);
|
||||
}
|
||||
return res;
|
||||
return res.data.length;
|
||||
},
|
||||
// 试穿
|
||||
async goodsTryOrderList({ load = 'loadmore' } = {}) {
|
||||
@ -159,7 +159,7 @@ export default {
|
||||
if(load == 'reload') this.orderList = res.data.list;
|
||||
else if(load == 'loadmore') this.orderList.push(...res.data.list);
|
||||
}
|
||||
return res;
|
||||
return res.data.list.length;
|
||||
},
|
||||
reachBottom() {
|
||||
// 大于15条才会加载更多
|
||||
@ -173,9 +173,9 @@ export default {
|
||||
// else
|
||||
if(this.current == 4) promise = this.goodsTryOrderList();
|
||||
else promise = this.getOrderList();
|
||||
promise.then(res => {
|
||||
promise.then(length => {
|
||||
this.loadStatus.splice(this.current, 1, "nomore");
|
||||
if(res.data.length == 0) this.page--;
|
||||
if(length == 0) this.page--;
|
||||
}).catch(() => {
|
||||
this.loadStatus.splice(this.current, 1, "nomore");
|
||||
this.page--;
|
||||
|
@ -31,22 +31,24 @@
|
||||
<view class="refund-price">
|
||||
<view class="price">
|
||||
<view class="title">退款金额</view>
|
||||
<view class="value">¥{{ (goods.goods_pay_price * num).toFixed(2) }}</view>
|
||||
<view class="value">¥{{ totalPrice }}</view>
|
||||
</view>
|
||||
<view class="tips">若退款成功,将退还给您 ¥{{ (goods.goods_pay_price * num).toFixed(2) }}</view>
|
||||
<view class="tips">若退款成功,将退还给您 ¥{{ totalPrice }}</view>
|
||||
</view>
|
||||
<view class="refund-text">
|
||||
<view class="title">申请说明</view>
|
||||
<u-input v-model="refundText" type="textarea" placeholder="必填,请详细说明退款理由" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="submit-btn">提交申请</view>
|
||||
<view class="submit-btn" @click="applyRefund">提交申请</view>
|
||||
<u-toast ref="uToast" />
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
oid: '',
|
||||
goodsList: [],
|
||||
goods: {
|
||||
goods_num: 0,
|
||||
@ -57,7 +59,13 @@ export default {
|
||||
num: 0,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
totalPrice() {
|
||||
return (this.goods.goods_pay_price * this.num).toFixed(2);
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.oid = option.oid;
|
||||
this.getOrderInfo(option.oid);
|
||||
},
|
||||
methods: {
|
||||
@ -81,16 +89,41 @@ export default {
|
||||
// uni.stopPullDownRefresh(); // 结束刷新
|
||||
})
|
||||
},
|
||||
verifyParams() {
|
||||
if(!this.goods.goods_id) {
|
||||
this.$u.toast('请选择退款商品');
|
||||
return false;
|
||||
}
|
||||
if(this.num == 0) {
|
||||
this.$u.toast('请选择退款数量');
|
||||
return false;
|
||||
}
|
||||
if(this.$u.test.isEmpty(this.refundText)) {
|
||||
this.$u.toast('退款说明不可为空');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
applyRefund() {
|
||||
if(!this.verifyParams()) return false;
|
||||
let params = {
|
||||
order_id: this.order.order_id,
|
||||
// goods_id: goods_id,
|
||||
// refund_amount: refund_amount,
|
||||
order_id: this.oid,
|
||||
goods_id: this.goods.goods_id,
|
||||
refund_amount: Number(this.totalPrice),
|
||||
reason_info: this.refundText,
|
||||
goods_num: this.num,
|
||||
}
|
||||
this.$u.api.refundOrder(params).then(res => {
|
||||
this.$u.toast(res.message);
|
||||
if(res.errCode == 0) {
|
||||
|
||||
this.$refs.uToast.show({
|
||||
title: res.message,
|
||||
back: true,
|
||||
})
|
||||
} else {
|
||||
this.$refs.uToast.show({
|
||||
title: res.message,
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -158,7 +158,7 @@
|
||||
<view class="order-popup">
|
||||
<view class="check">
|
||||
<text>选择订单</text>
|
||||
<u-icon name="close" color="#A29FA3" size="32"></u-icon>
|
||||
<u-icon name="close" color="#A29FA3" size="32" @click="showPopup=false"></u-icon>
|
||||
</view>
|
||||
<scroll-view scroll-y class="order-list">
|
||||
<u-radio-group v-model="value" @change="radioChange">
|
||||
@ -271,7 +271,7 @@ export default {
|
||||
})
|
||||
},
|
||||
confirmType(e) {
|
||||
console.log(e);
|
||||
// console.log(e);
|
||||
this.type = e[0];
|
||||
},
|
||||
async getOrderList({ load = 'reload' } = {}) {
|
||||
@ -424,6 +424,12 @@ export default {
|
||||
})
|
||||
},
|
||||
animationfinish(e) {
|
||||
this.goodsStatus = '';
|
||||
this.type = {};
|
||||
this.name = '';
|
||||
this.phone = '';
|
||||
this.area = '';
|
||||
this.address = '';
|
||||
// 可重新提交订单
|
||||
this.debounce = true;
|
||||
let current = e.detail.current;
|
||||
@ -443,9 +449,6 @@ export default {
|
||||
this.choose = false;
|
||||
}
|
||||
},
|
||||
close(){
|
||||
this.showPopup = false
|
||||
},
|
||||
showToast(message, type) {
|
||||
this.$refs.uToast.show({
|
||||
title: message,
|
||||
|
@ -21,7 +21,7 @@
|
||||
<image :src="item.avatar"></image>
|
||||
</view>
|
||||
<view class="title">{{item.name}}</view>
|
||||
<view class="contentes">{{item.text}}</view>
|
||||
<view class="contentes u-line-1">{{item.text}}</view>
|
||||
<view class="times">{{item.time}}</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -129,7 +129,8 @@
|
||||
onFriendListChange(onlineFriends) {
|
||||
//todo:比较垃圾的处理方式,因为Uniapp的基于MAP的双向绑定在H5端不稳定,H5端偶尔会抽风
|
||||
// 下边这一行删掉,有时候页面可以更新,有时候不行,大家有优雅的方式,也欢迎跟我们沟通
|
||||
this.information_dl = this.imService.friends;
|
||||
console.log(onlineFriends,121212)
|
||||
this.information_dl = onlineFriends;
|
||||
|
||||
this.$forceUpdate();
|
||||
},
|
||||
|
@ -8,14 +8,15 @@
|
||||
import GoEasyIM from './goeasy-im-1.0.9';
|
||||
import restApi from './restapi';
|
||||
|
||||
function Friend(uuid, name, avatar) {
|
||||
function Friend(uuid, name, avatar,time = "", text = "",date = "") {
|
||||
this.uuid = uuid;
|
||||
this.name = name;
|
||||
this.avatar = avatar;
|
||||
this.online = false;
|
||||
this.unReadMessage = 0;
|
||||
this.text = "";
|
||||
this.time = "";
|
||||
this.text = text;
|
||||
this.time = time;
|
||||
this.date = date
|
||||
}
|
||||
|
||||
function Group(uuid, name, avatar) {
|
||||
@ -40,6 +41,7 @@ function IMService() {
|
||||
this.currentUser = null;
|
||||
//我的好友
|
||||
this.friends = {};
|
||||
this.friendsarr = [];
|
||||
//我的群
|
||||
this.groups = {};
|
||||
//私聊消息记录,map格式,每个好友对应一个数组
|
||||
@ -74,7 +76,7 @@ IMService.prototype.login = function (uuid, name, avatar) {
|
||||
//初始化当前用户
|
||||
this.currentUser = new CurrentUser(uuid, name, avatar);
|
||||
//初始化联系人信息,包括群
|
||||
// this.initialContacts();
|
||||
this.initialContacts();
|
||||
return true;
|
||||
|
||||
};
|
||||
@ -83,11 +85,56 @@ IMService.prototype.login = function (uuid, name, avatar) {
|
||||
IMService.prototype.initialContacts = function (friendList) {
|
||||
//查询并初始化好友信息
|
||||
// let friendList = restApi.findFriends(this.currentUser);
|
||||
let value = uni.getStorageSync('imlist');
|
||||
if(value != undefined && !value){
|
||||
return ;
|
||||
}
|
||||
value = JSON.parse(value)
|
||||
let that = this
|
||||
console.log(value)
|
||||
for(let i of value){
|
||||
const token = uni.getStorageSync('token');
|
||||
console.log(token)
|
||||
uni.request({
|
||||
url:"https://dmmall.sdbairui.com/api/Specialci/getAtwillUserInfo",
|
||||
data:{
|
||||
userId:i[0]
|
||||
},
|
||||
method:"POST",
|
||||
header:{
|
||||
"Authorization" : 'Bearer' + " " + token
|
||||
},
|
||||
success(res){
|
||||
console.log(res)
|
||||
that.friends[i[0]] = new Friend(res.data.data.member_id, res.data.data.member_nickname, res.data.data.member_avatar,i[1],i[2]);
|
||||
console.log(that.friends)
|
||||
let sorts = function (friends){
|
||||
let paixu = function (a,b){
|
||||
if(a.date > b.date){
|
||||
return 0;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
friends.sort(paixu)
|
||||
|
||||
}
|
||||
that.friendsarr = []
|
||||
for(let i in that.friends){
|
||||
console.log(i)
|
||||
that.friendsarr.push(that.friends[i])
|
||||
}
|
||||
sorts(that.friendsarr)
|
||||
that.onFriendListChange(that.friends);
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
//将用户列表初始化为一个map,便于后续根据friendId得到friend
|
||||
friendList.map(friend => {
|
||||
this.friends[friend.uuid] = new Friend(friend.uuid, friend.name, friend.avatar);
|
||||
});
|
||||
// friendList.map(friend => {
|
||||
// this.friends[friend.uuid] = new Friend(friend.uuid, friend.name, friend.avatar);
|
||||
// });
|
||||
|
||||
//查询并初始化与自己相关的群信息
|
||||
// let groupList = restApi.findGroups(this.currentUser);
|
||||
@ -207,6 +254,19 @@ IMService.prototype.initialIMListeners = function () {
|
||||
let friend = this.friends[message.senderId];
|
||||
console.log(friend)
|
||||
// return ;
|
||||
let sorts = function (friends){
|
||||
let paixu = function (a,b){
|
||||
if(a.date > b.date){
|
||||
return 0;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
friends.sort(paixu)
|
||||
|
||||
}
|
||||
|
||||
let that = this
|
||||
if(!friend && friend == undefined){
|
||||
const token = uni.getStorageSync('token');
|
||||
@ -228,9 +288,24 @@ IMService.prototype.initialIMListeners = function () {
|
||||
friend.unReadMessage++;
|
||||
friend.text = message.type != "text" ? "其他消息" : message.payload.text
|
||||
let time = new Date(message.timestamp)
|
||||
friend.date = message.timestamp
|
||||
friend.time = time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds()
|
||||
that.onFriendListChange(that.friends);
|
||||
console.log(that.friends)
|
||||
that.friendsarr = []
|
||||
for(let i in that.friends){
|
||||
console.log(i)
|
||||
that.friendsarr.push(that.friends[i])
|
||||
}
|
||||
sorts(that.friendsarr)
|
||||
let arr = []
|
||||
for(let i in that.friends){
|
||||
arr.push([that.friends[i].uuid,that.friends[i].time,that.friends[i].text,that.friends[i].date])
|
||||
}
|
||||
console.log(arr)
|
||||
uni.setStorageSync('imlist',JSON.stringify(arr))
|
||||
|
||||
that.onFriendListChange(that.friends);
|
||||
|
||||
}
|
||||
})
|
||||
}else{
|
||||
@ -238,12 +313,30 @@ IMService.prototype.initialIMListeners = function () {
|
||||
friend.unReadMessage++;
|
||||
friend.text = message.type != "text" ? "其他消息" : message.payload.text
|
||||
let time = new Date(message.timestamp)
|
||||
friend.date = message.timestamp
|
||||
friend.time = time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds()
|
||||
this.onFriendListChange(this.friends);
|
||||
console.log(this.friends)
|
||||
that.friendsarr = []
|
||||
for(let i in this.friends){
|
||||
that.friendsarr.push(this.friends[i])
|
||||
}
|
||||
sorts(that.friendsarr)
|
||||
let arr = []
|
||||
for(let i in that.friends){
|
||||
arr.push([that.friends[i].uuid,that.friends[i].time,that.friends[i].text,that.friends[i].date])
|
||||
}
|
||||
console.log(arr)
|
||||
uni.setStorageSync('imlist',JSON.stringify(arr))
|
||||
this.onFriendListChange(this.friends);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// let value = uni.getStorageSync('imlist');
|
||||
// value = JSON.parse(value)
|
||||
// if(value.indexOf(message.senderId) == -1){
|
||||
// value.unshift(message.senderId)
|
||||
// }
|
||||
// uni.setStorageSync('imlist',JSON.stringify(value))
|
||||
|
||||
}
|
||||
//更新私聊消息记录
|
||||
let friendId;
|
||||
|
Loading…
Reference in New Issue
Block a user