284 lines
5.1 KiB
JavaScript
284 lines
5.1 KiB
JavaScript
import {
|
|
fetchUserCenter
|
|
} from '../../services/usercenter/fetchUsercenter';
|
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
|
|
const menuData = [
|
|
[{
|
|
title: '我发布的需求',
|
|
tit: '',
|
|
url: '',
|
|
icon: '',
|
|
type: 'publish',
|
|
},
|
|
{
|
|
title: '我投标的需求',
|
|
tit: '',
|
|
url: '',
|
|
icon: '',
|
|
type: 'quote',
|
|
},
|
|
{
|
|
title: '优惠券',
|
|
tit: '',
|
|
url: '',
|
|
type: 'coupon',
|
|
},
|
|
{
|
|
title: '余额',
|
|
tit: '',
|
|
url: '',
|
|
type: 'balance',
|
|
},
|
|
],
|
|
[{
|
|
title: '帮助中心',
|
|
tit: '',
|
|
url: '',
|
|
type: 'help-center',
|
|
},
|
|
{
|
|
title: '客服热线',
|
|
tit: '',
|
|
url: '',
|
|
type: 'service',
|
|
icon: 'service',
|
|
},
|
|
],
|
|
];
|
|
|
|
const orderTagInfos = [{
|
|
title: '待付款',
|
|
iconName: 'wallet',
|
|
orderNum: 0,
|
|
tabType: 10,
|
|
status: 1,
|
|
},
|
|
{
|
|
title: '待发货',
|
|
iconName: 'deliver',
|
|
orderNum: 0,
|
|
tabType: 20,
|
|
status: 1,
|
|
},
|
|
{
|
|
title: '待收货',
|
|
iconName: 'package',
|
|
orderNum: 0,
|
|
tabType: 30,
|
|
status: 1,
|
|
},
|
|
{
|
|
title: '待评价',
|
|
iconName: 'comment',
|
|
orderNum: 0,
|
|
tabType: 40,
|
|
status: 1,
|
|
},
|
|
{
|
|
title: '退款/售后',
|
|
iconName: 'exchang',
|
|
orderNum: 0,
|
|
tabType: 0,
|
|
status: 1,
|
|
},
|
|
];
|
|
|
|
const getDefaultData = () => ({
|
|
showMakePhone: false,
|
|
userInfo: {
|
|
avatarUrl: '',
|
|
nickName: '正在登录...',
|
|
phoneNumber: '',
|
|
},
|
|
menuData,
|
|
orderTagInfos,
|
|
customerServiceInfo: {},
|
|
currAuthStep: 1,
|
|
showKefu: true,
|
|
versionNo: '',
|
|
});
|
|
|
|
Page({
|
|
data: getDefaultData(),
|
|
|
|
onLoad() {
|
|
this.getVersionInfo();
|
|
},
|
|
|
|
onShow() {
|
|
this.getTabBar().init();
|
|
this.init();
|
|
},
|
|
onPullDownRefresh() {
|
|
this.init();
|
|
},
|
|
|
|
init() {
|
|
this.fetUseriInfoHandle();
|
|
},
|
|
|
|
fetUseriInfoHandle() {
|
|
fetchUserCenter().then(
|
|
(res) => {
|
|
const {
|
|
userInfo,
|
|
countsData,
|
|
orderTagInfos: orderTags,
|
|
customerServiceInfo,
|
|
} = res.data;
|
|
// eslint-disable-next-line no-unused-expressions
|
|
menuData[0] = menuData[0].filter(item => item.type !== 'quote');
|
|
if (userInfo.role === 'dev') {
|
|
menuData[0].splice(1, 0, { title: '我投标的需求', tit: '', url: '', icon: '', type: 'quote' });
|
|
}
|
|
menuData[0].forEach((v) => {
|
|
countsData.forEach((counts) => {
|
|
if (counts.type === v.type) {
|
|
v.tit = counts.num;
|
|
}
|
|
});
|
|
});
|
|
const info = orderTagInfos.map((v, index) => ({
|
|
...v,
|
|
...orderTags[index],
|
|
}));
|
|
this.setData({
|
|
userInfo,
|
|
menuData,
|
|
orderTagInfos: info,
|
|
customerServiceInfo,
|
|
currAuthStep: 2,
|
|
});
|
|
wx.stopPullDownRefresh();
|
|
},
|
|
);
|
|
},
|
|
|
|
onClickCell({
|
|
currentTarget
|
|
}) {
|
|
const {
|
|
type
|
|
} = currentTarget.dataset;
|
|
|
|
switch (type) {
|
|
case 'address': {
|
|
wx.navigateTo({
|
|
url: '/pages/usercenter/address/list/index'
|
|
});
|
|
break;
|
|
}
|
|
case 'publish': {
|
|
wx.navigateTo({
|
|
url: '/pages/demand/list/index?opType=my'
|
|
});
|
|
break;
|
|
}
|
|
case 'quote': {
|
|
wx.navigateTo({
|
|
url: '/pages/demand/list/index?opType=myQuote'
|
|
});
|
|
break;
|
|
}
|
|
case 'service': {
|
|
this.openMakePhone();
|
|
break;
|
|
}
|
|
case 'help-center': {
|
|
// Toast({
|
|
// context: this,
|
|
// selector: '#t-toast',
|
|
// message: '你点击了帮助中心',
|
|
// icon: '',
|
|
// duration: 1000,
|
|
// });
|
|
break;
|
|
}
|
|
case 'balance': {
|
|
wx.navigateTo({
|
|
url: '/pages/usercenter/balance/index'
|
|
});
|
|
break;
|
|
}
|
|
case 'coupon': {
|
|
// wx.navigateTo({
|
|
// url: '/pages/coupon/coupon-list/index'
|
|
// });
|
|
break;
|
|
}
|
|
default: {
|
|
Toast({
|
|
context: this,
|
|
selector: '#t-toast',
|
|
message: '未知跳转',
|
|
icon: '',
|
|
duration: 1000,
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
|
|
jumpNav(e) {
|
|
const status = e.detail.tabType;
|
|
|
|
if (status === 0) {
|
|
wx.navigateTo({
|
|
url: '/pages/order/after-service-list/index'
|
|
});
|
|
} else {
|
|
wx.navigateTo({
|
|
url: `/pages/order/order-list/index?status=${status}`
|
|
});
|
|
}
|
|
},
|
|
|
|
jumpAllOrder() {
|
|
wx.navigateTo({
|
|
url: '/pages/order/order-list/index'
|
|
});
|
|
},
|
|
|
|
openMakePhone() {
|
|
this.setData({
|
|
showMakePhone: true
|
|
});
|
|
},
|
|
|
|
closeMakePhone() {
|
|
this.setData({
|
|
showMakePhone: false
|
|
});
|
|
},
|
|
|
|
call() {
|
|
wx.makePhoneCall({
|
|
phoneNumber: this.data.customerServiceInfo.servicePhone,
|
|
});
|
|
},
|
|
|
|
gotoUserEditPage() {
|
|
const {
|
|
currAuthStep
|
|
} = this.data;
|
|
if (currAuthStep === 2) {
|
|
wx.navigateTo({
|
|
url: '/pages/usercenter/person-info/index'
|
|
});
|
|
} else {
|
|
this.fetUseriInfoHandle();
|
|
}
|
|
},
|
|
|
|
getVersionInfo() {
|
|
const versionInfo = wx.getAccountInfoSync();
|
|
const {
|
|
version,
|
|
envVersion = __wxConfig
|
|
} = versionInfo.miniProgram;
|
|
this.setData({
|
|
versionNo: envVersion === 'release' ? version : envVersion,
|
|
});
|
|
},
|
|
}); |