Files
code-bang/frontend/miniapp/pages/usercenter/index.js
T
2026-09-17 16:25:31 +08:00

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,
});
},
});