V1.4.1
This commit is contained in:
parent
c5a47ab3a3
commit
880c000f45
2
app.js
2
app.js
@ -2,7 +2,7 @@ import updateManager from './common/updateManager';
|
||||
|
||||
// export const ServerBasePath = 'http://localhost:8888/api/';
|
||||
// export const ServerBasePath = 'http://192.168.1.102:8888/api/';
|
||||
export const ServerBasePath = 'http://emo-api.aerwen.net/api/';
|
||||
export const ServerBasePath = 'https://emo-api.aerwen.net/api/';
|
||||
|
||||
App({
|
||||
onLaunch: function () {},
|
||||
|
16
app.json
16
app.json
@ -2,17 +2,7 @@
|
||||
"pages": [
|
||||
"pages/home/home",
|
||||
"pages/home/search/index",
|
||||
"pages/login/login",
|
||||
"pages/login/authorize-avatar-name/index",
|
||||
"pages/login/phone-register/index",
|
||||
"pages/login/agree-link/index",
|
||||
"pages/emoticon/result/index",
|
||||
"pages/usercenter/index",
|
||||
"pages/usercenter/goods-collect/index",
|
||||
"pages/usercenter/goods-history/index",
|
||||
"pages/usercenter/person-info/index",
|
||||
"pages/usercenter/set/index",
|
||||
"pages/usercenter/name-edit/index"
|
||||
"pages/emoticon/result/index"
|
||||
],
|
||||
"tabBar": {
|
||||
"custom": true,
|
||||
@ -26,8 +16,8 @@
|
||||
"text": "首页"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/usercenter/index",
|
||||
"text": "我的"
|
||||
"pagePath": "pages/home/search/index",
|
||||
"text": "搜索"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -3,10 +3,5 @@ export default [
|
||||
icon: 'home',
|
||||
text: '首页',
|
||||
url: 'pages/home/home',
|
||||
},
|
||||
{
|
||||
icon: 'person',
|
||||
text: '个人中心',
|
||||
url: 'pages/usercenter/index',
|
||||
},
|
||||
}
|
||||
];
|
||||
|
@ -32,7 +32,7 @@ Page({
|
||||
|
||||
total: 0,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
|
||||
onLoad(options) {
|
||||
const {
|
||||
@ -64,7 +64,7 @@ Page({
|
||||
|
||||
const params = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 20,
|
||||
search: keywords,
|
||||
emoticonCategoryGuid: categoryGuid
|
||||
};
|
||||
|
@ -26,7 +26,7 @@
|
||||
<!-- 列表 -->
|
||||
<view class="last-updated-list">
|
||||
<view class="last-updated-list-item" wx:for="{{emoticonDataList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
|
||||
<image class="image-box" src="{{item.emoticonDataImg}}" mode="aspectFill" />
|
||||
<image show-menu-by-longpress="true" class="image-box" src="{{item.emoticonDataImg}}" mode="aspectFill" />
|
||||
</view>
|
||||
</view>
|
||||
<load-more wx:if="{{emoticonDataList.length > 0}}" status="{{loadMoreStatus}}" no-more-text="没有更多了" />
|
||||
|
@ -200,4 +200,36 @@ Page({
|
||||
});
|
||||
},
|
||||
|
||||
// 点击分享
|
||||
onShareAppMessage() {
|
||||
const promise = new Promise(resolve => {
|
||||
setTimeout(() => {
|
||||
resolve({
|
||||
title: '表情包图片大全'
|
||||
})
|
||||
}, 2000)
|
||||
})
|
||||
return {
|
||||
title: '表情包图片大全',
|
||||
path: '/pages/home/home',
|
||||
promise
|
||||
}
|
||||
},
|
||||
|
||||
// 点击分享朋友圈
|
||||
onShareTimeline(){
|
||||
const promise = new Promise(resolve => {
|
||||
setTimeout(() => {
|
||||
resolve({
|
||||
title: '表情包图片大全'
|
||||
})
|
||||
}, 2000)
|
||||
})
|
||||
return {
|
||||
title: '表情包图片大全',
|
||||
path: '/pages/home/home',
|
||||
promise
|
||||
}
|
||||
}
|
||||
|
||||
});
|
@ -4,7 +4,7 @@
|
||||
|
||||
<view class="home-page-header">
|
||||
<!-- 公告 -->
|
||||
<!-- <view class="notice-container ">
|
||||
<view class="notice-container ">
|
||||
<view wx:for="{{noticeList}}">
|
||||
<t-notice-bar class="notice-bar" visible="{{item.visible}}" prefixIcon="null" marquee="{{marquee}}" content="{{item.noticeContent}}">
|
||||
<view slot="prefix-icon" class="notice-title">
|
||||
@ -15,7 +15,7 @@
|
||||
</view>
|
||||
</t-notice-bar>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<!-- 轮播图 -->
|
||||
<view class="swiper-wrap">
|
||||
<t-swiper wx:if="{{imgSrcs.length > 0}}" current="{{current}}" autoplay="{{autoplay}}" duration="{{duration}}" interval="{{interval}}" navigation="{{navigation}}" imageProps="{{swiperImageProps}}" list="{{imgSrcs}}" />
|
||||
@ -47,7 +47,7 @@
|
||||
<!-- 头部 -->
|
||||
<view class="emoticon-header-box">
|
||||
<view class="emoticon-header-title-box">
|
||||
<image class="emoticon-header-icon" src="http://mall.api.aerwen.net/Uploads/uploads/20231029/C8ABBC8BEAFA9E5D.png" mode="heightFix" />
|
||||
<image show-menu-by-longpress="true" class="emoticon-header-icon" src="http://mall.api.aerwen.net/Uploads/uploads/20231029/C8ABBC8BEAFA9E5D.png" mode="heightFix" />
|
||||
<view class="emoticon-header-title">
|
||||
<view class="emoticon-header-title-text">热门表情包</view>
|
||||
<view class="emoticon-header-title-line"></view>
|
||||
@ -64,7 +64,7 @@
|
||||
<view class="hot-emoticon-categoty-lsit">
|
||||
<view class="hot-emoticon-categoty-item" wx:for="{{hotCategoryList}}" wx:for-item="item" wx:for-index="index" wx:key="index" data-value="{{item.emotionCategoryName}}" bind:tap="handleClickHotCategory">
|
||||
<view class="image-box">
|
||||
<image src="{{item.emotionCategoryImg}}" mode="aspectFill" />
|
||||
<image show-menu-by-longpress="true" show-menu-by-longpress="true" src="{{item.emotionCategoryImg}}" mode="aspectFill" />
|
||||
</view>
|
||||
<view class="text">{{item.emotionCategoryName}}</view>
|
||||
</view>
|
||||
@ -76,7 +76,7 @@
|
||||
<!-- 头部 -->
|
||||
<view class="emoticon-header-box">
|
||||
<view class="emoticon-header-title-box">
|
||||
<image class="emoticon-header-icon" src="http://mall.api.aerwen.net/Uploads/uploads/20231029/C8ABBC8BEAFA9E5D.png" mode="heightFix" />
|
||||
<image show-menu-by-longpress="true" class="emoticon-header-icon" src="http://mall.api.aerwen.net/Uploads/uploads/20231029/C8ABBC8BEAFA9E5D.png" mode="heightFix" />
|
||||
<view class="emoticon-header-title">
|
||||
<view class="emoticon-header-title-text">最近更新</view>
|
||||
<view class="emoticon-header-title-line"></view>
|
||||
@ -92,7 +92,7 @@
|
||||
<!-- 列表 -->
|
||||
<view class="last-updated-list">
|
||||
<view class="last-updated-list-item" wx:for="{{lastUpdatedList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
|
||||
<image class="image-box" src="{{item.emoticonDataImg}}" mode="aspectFill" />
|
||||
<image show-menu-by-longpress="true" class="image-box" src="{{item.emoticonDataImg}}" mode="aspectFill" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
import {
|
||||
getPlatformSpecDetails
|
||||
} from '~/services/login/getPlatformSpecDetails';
|
||||
|
||||
Page({
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
detailsData: {}
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
getPlatformSpecDetails({
|
||||
PlatformSpecGuid: options.guid
|
||||
}).then(res => {
|
||||
this.setData({
|
||||
detailsData: res.data
|
||||
})
|
||||
wx.setNavigationBarTitle({
|
||||
title: this.data.detailsData.platformSpecTitle
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
})
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
},
|
||||
"navigationBarTitleText": ""
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
<view style="width: 90%; margin: 40rpx auto; padding-bottom: 200rpx;">
|
||||
<rich-text nodes="{{detailsData.platformSpecContent}}"></rich-text>
|
||||
</view>
|
@ -1,107 +0,0 @@
|
||||
// pages/login/authorize-avatar-name/index.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
image: "https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png",
|
||||
},
|
||||
|
||||
login() {
|
||||
var that = this;
|
||||
// 基础库要在2.27.1以下才可以使用
|
||||
wx.getUserProfile({
|
||||
//获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo,用于替换 wx.getUserInfo
|
||||
lang: 'zh_CN',
|
||||
desc: '用于在后台更好的识别您的身份', //声明获取用户个人信息后的用途
|
||||
success(user) {
|
||||
//接口调用成功的回调函数
|
||||
const data = {
|
||||
encryptedData: user.encryptedData,
|
||||
iv: user.iv,
|
||||
// signature: user.signature,
|
||||
// rawData: user.rawData,
|
||||
userInfo: user.userInfo,
|
||||
};
|
||||
|
||||
// app.request({
|
||||
// url: `login`,
|
||||
// method: 'POST',
|
||||
// data: data,
|
||||
// success: async function (res) {
|
||||
// // wx.setStorageSync('userInfo', res);
|
||||
// app.put('userInfo', res, 86400);
|
||||
// const userInfo = app.get('userInfo');
|
||||
|
||||
// // 如果第一次登录就注册一个客户账号
|
||||
|
||||
|
||||
// },
|
||||
// });
|
||||
},
|
||||
fail() {
|
||||
wx.switchTab({
|
||||
url: '/pages/home/home',
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"t-avatar": "tdesign-miniprogram/avatar/avatar",
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
},
|
||||
"navigationBarTitleText": "授权登录"
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
<!-- 授权头像昵称登录页 -->
|
||||
<view class="mainContainer">
|
||||
|
||||
<!-- 头部头像盒子 -->
|
||||
<view class="top-avatar-box">
|
||||
<view class="avatar-img-box">
|
||||
<image class="avatar-img" src="{{image}}"></image>
|
||||
</view>
|
||||
<view class="avatar-line"></view>
|
||||
</view>
|
||||
|
||||
<!-- 权限文字盒子 -->
|
||||
<view class="authorize-content-box">
|
||||
<view class="authorize-content-title">申请获取以下权限</view>
|
||||
<view class="authorize-content-text">获得你的公开信息(昵称、头像等)</view>
|
||||
</view>
|
||||
|
||||
<!-- 授权按钮盒子 -->
|
||||
<view class="authorize-btn-box">
|
||||
<van-button type="primary" round block bind:tap="login">授权登录</van-button>
|
||||
<view class="authorize-btn"></view>
|
||||
<van-button round block>暂不登录</van-button>
|
||||
</view>
|
||||
|
||||
</view>
|
@ -1,61 +0,0 @@
|
||||
/* pages/login/authorize-avatar-name/index.wxss */
|
||||
|
||||
.mainContainer {
|
||||
width: 85%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* 头部头像盒子 */
|
||||
.top-avatar-box {
|
||||
margin-top: 50rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.avatar-img-box {
|
||||
width: 180rpx;
|
||||
height: 180rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
padding: 5rpx;
|
||||
box-shadow: 0 0 15rpx 5rpx #e8e8e8;
|
||||
}
|
||||
|
||||
.avatar-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.avatar-line {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background-color: #e3e3e3;
|
||||
margin-top: 50rpx;
|
||||
}
|
||||
|
||||
|
||||
/* 权限文字盒子 */
|
||||
.authorize-content-box {
|
||||
margin: 80rpx 0;
|
||||
}
|
||||
|
||||
.authorize-content-title {
|
||||
font-size: 35rpx;
|
||||
margin-bottom:40rpx;
|
||||
color: #585858;
|
||||
}
|
||||
|
||||
.authorize-content-text{
|
||||
font-size:30rpx;
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
|
||||
/* 授权按钮盒子 */
|
||||
.authorize-btn{
|
||||
margin-bottom: 25rpx;
|
||||
}
|
||||
|
@ -1,148 +0,0 @@
|
||||
// pages/login/login.js
|
||||
import Toast from '~/miniprogram_npm/@vant/weapp/toast/toast';
|
||||
import {
|
||||
login
|
||||
} from '~/services/login/login';
|
||||
import {
|
||||
getOpenId
|
||||
} from '~/services/login/getOpenId';
|
||||
import {
|
||||
getPlatformSpecList
|
||||
} from '~/services/login/getPlatformSpecList';
|
||||
|
||||
Page({
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
back: true,
|
||||
bg_image: "",
|
||||
checked: true,
|
||||
code: "",
|
||||
agree_Link: {}
|
||||
},
|
||||
|
||||
// 获取手机号
|
||||
getPhoneNumber(e) {
|
||||
console.log(e,'adsasdasdasd');
|
||||
let that = this
|
||||
if (that.data.checked == false) {
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: '请勾选同意按钮',
|
||||
duration: 2000,
|
||||
icon: '',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.detail.code) {
|
||||
let phoneCode = e.detail.code
|
||||
let openId = wx.getStorageSync('openId')
|
||||
|
||||
let data = {
|
||||
CustomerXcxOpenid: openId,
|
||||
Code: phoneCode
|
||||
}
|
||||
|
||||
// 登录请求
|
||||
login(data).then((res) => {
|
||||
if (res.data != null) {
|
||||
that.setData({
|
||||
back: false
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {}
|
||||
},
|
||||
|
||||
// 跳转到手机号登录
|
||||
gotoPhoneRegister() {
|
||||
wx.navigateTo({
|
||||
url: `/pages/login/phone-register/index`,
|
||||
});
|
||||
},
|
||||
|
||||
// 选择是否已同意
|
||||
onChangeChecked() {
|
||||
this.setData({
|
||||
checked: !this.data.checked
|
||||
})
|
||||
},
|
||||
|
||||
//协议点击
|
||||
agreeLink(data) {
|
||||
wx.navigateTo({
|
||||
url: '/pages/login/agree-link/index?guid=' + data.currentTarget.dataset.guid
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad() {
|
||||
let that = this
|
||||
// 获取OpenId的code
|
||||
wx.login({
|
||||
success(res) {
|
||||
that.setData({
|
||||
code: res.code
|
||||
})
|
||||
getOpenId({
|
||||
code: res.code
|
||||
}).then((res) => {
|
||||
wx.setStorageSync('openId', res.data)
|
||||
})
|
||||
},
|
||||
});
|
||||
// 获取平台资质与规范列表
|
||||
getPlatformSpecList().then(res => {
|
||||
this.setData({
|
||||
agree_Link: res.data
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
let that = this
|
||||
if (that.data.back == true) {
|
||||
wx.reLaunch({
|
||||
url: '/pages/home/home'
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {},
|
||||
});
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"van-checkbox": "@vant/weapp/checkbox/index"
|
||||
},
|
||||
"navigationBarTitleText": "授权登录"
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
<!-- 登录页 -->
|
||||
|
||||
<!-- 背景图盒子 -->
|
||||
<view class="bg-box">
|
||||
<image class="bg-box-img" src="http://mall.api.aerwen.net/Uploads/uploads/20231029/E47DAEBE34756E17.jpg" />
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 登录盒子 -->
|
||||
<view class="login-pos-box">
|
||||
<view class="login-container-box">
|
||||
<view class="login-box">
|
||||
<view class="login-btn-box">
|
||||
<van-button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" icon="wechat" type="primary" size="large" custom-style="font-size: 31rpx;font-weight: bold;" round block>微信一键登录</van-button>
|
||||
<!-- <view class="mb-30"></view>
|
||||
<van-button icon="phone" color="#eff0f1" size="large" custom-style="font-size: 31rpx;color: #999999;font-weight: bold;" round block bind:click="gotoPhoneRegister">手机号登录/注册</van-button> -->
|
||||
</view>
|
||||
|
||||
<!-- <view class="agree-box">
|
||||
<van-checkbox icon-size="35rpx" value="{{ checked }}" checked-color="#fc2e2a" bind:change="onChangeChecked"></van-checkbox>
|
||||
<view class="agree-text">
|
||||
我已阅读并同意
|
||||
<span class="agree-link" wx:for="{{agree_Link}}" bindtap='agreeLink' data-Guid='{{item.platformSpecGuid}}'>《{{item.platformSpecTitle}}》</span>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
@ -1,61 +0,0 @@
|
||||
|
||||
/* 背景图盒子 */
|
||||
.bg-box{
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.bg-box-img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* 登录盒子 */
|
||||
.login-pos-box{
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.login-container-box{
|
||||
width: 90%;
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
height: 220rpx;
|
||||
background-color: white;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
|
||||
.login-box{
|
||||
padding: 50rpx 40rpx;
|
||||
}
|
||||
|
||||
.phone-btn{
|
||||
color: black !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.agree-box{
|
||||
margin-top: 50rpx;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.agree-text{
|
||||
font-size: 25rpx;
|
||||
color: #555555;
|
||||
margin-top: -3rpx;
|
||||
}
|
||||
|
||||
.agree-link{
|
||||
font-size: 26rpx;
|
||||
color: red;
|
||||
}
|
@ -1,115 +0,0 @@
|
||||
// pages/login/phone-register/index.js
|
||||
import {
|
||||
sendPhoneCode
|
||||
} from '~/services/login/phone-register';
|
||||
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
logoImg: "https://tool.aerwen.net/prod-api/Open/20230602/8969EAF2294B1FF4.png",
|
||||
phoneNumber: "", //手机号
|
||||
phoneError: false, // 手机号验证
|
||||
verifyCode: "", //验证码
|
||||
},
|
||||
|
||||
|
||||
/** 发送验证码 */
|
||||
send() {
|
||||
if (!this.data.phoneNumber) {
|
||||
wx.showToast({
|
||||
icon: 'error',
|
||||
title: '请输入手机号',
|
||||
});
|
||||
return;
|
||||
}
|
||||
const isPhoneNumber = /^[1][3,4,5,7,8,9][0-9]{9}$/.test(this.data.phoneNumber);
|
||||
if(!isPhoneNumber){
|
||||
wx.showToast({
|
||||
icon: 'error',
|
||||
title: '手机号格式不正确',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
let data = {
|
||||
PhoneNumber: this.data.phoneNumber,
|
||||
}
|
||||
sendPhoneCode(data)
|
||||
},
|
||||
|
||||
|
||||
/** 手机号验证 */
|
||||
onPhoneInput(e) {
|
||||
const {
|
||||
phoneError
|
||||
} = this.data;
|
||||
const isPhoneNumber = /^[1][3,4,5,7,8,9][0-9]{9}$/.test(e.detail.value);
|
||||
if (phoneError === isPhoneNumber) {
|
||||
this.setData({
|
||||
phoneError: !isPhoneNumber,
|
||||
phoneNumber: e.detail.value,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"t-input": "tdesign-miniprogram/input/input",
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
},
|
||||
"navigationBarTitleText": ""
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
<!-- 手机号登录页 -->
|
||||
|
||||
<view class="phone-register-pos-box">
|
||||
|
||||
<!-- Logo盒子 -->
|
||||
<view class="logo-box">
|
||||
<view class="logo-img-box">
|
||||
<image class="logo-img" src="{{logoImg}}" mode="heightFix" />
|
||||
</view>
|
||||
<view class="logo-title">阿尔文电商</view>
|
||||
<view class="logo-text">一家有感情的电商模板</view>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- 表单 -->
|
||||
<view class="register-form">
|
||||
<view class="register-form-box">
|
||||
<!-- 手机号 -->
|
||||
<t-input
|
||||
value="{{phoneNumber}}"
|
||||
placeholder="请输入手机号"
|
||||
borderless="{{true}}"
|
||||
style="border-radius: 100rpx; background-color: #f3f4f6;margin-bottom: 50rpx;height: 50rpx;"
|
||||
tips="{{phoneError ? '手机号输入不正确' : ''}}"
|
||||
bindchange="onPhoneInput"
|
||||
/>
|
||||
|
||||
<!-- 验证码 -->
|
||||
<t-input
|
||||
placeholder="请输入验证码"
|
||||
value="{{verifyCode}}"
|
||||
borderless="{{true}}"
|
||||
style="border-radius: 100rpx; background-color: #f3f4f6; height: 50rpx;"
|
||||
>
|
||||
<view slot="suffix" style="display: flex; align-items: center">
|
||||
<view class="suffix--line"></view>
|
||||
<van-button size="small" round type="info" bind:click="send">发送验证码</van-button>
|
||||
</view>
|
||||
</t-input>
|
||||
|
||||
<!-- 提交按钮 -->
|
||||
<view class="submit-btn">
|
||||
<van-button type="info" size="large" round block>登录/注册</van-button>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
@ -1,43 +0,0 @@
|
||||
/* 手机号登录页Css */
|
||||
|
||||
/* Logo盒子 */
|
||||
.logo-box{
|
||||
margin-top: 50rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.logo-img{
|
||||
width: 230rpx;
|
||||
height: 230rpx;
|
||||
}
|
||||
|
||||
.logo-title{
|
||||
font-size: 40rpx;
|
||||
letter-spacing: 4rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.logo-text{
|
||||
font-size: 28rpx;
|
||||
margin-top: 20rpx;
|
||||
color: #999999;
|
||||
letter-spacing: 2rpx;
|
||||
}
|
||||
|
||||
|
||||
/* 表单 */
|
||||
.register-form{
|
||||
margin-top: 100rpx;
|
||||
}
|
||||
.register-form-box{
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.submit-btn{
|
||||
margin-top: 50rpx;
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
import { getPermission } from '../../../../utils/getPermission';
|
||||
import { phoneRegCheck } from '../../../../utils/util';
|
||||
import Toast from 'tdesign-miniprogram/toast/index';
|
||||
import { addressParse } from '../../../../utils/addressParse';
|
||||
import { resolveAddress, rejectAddress } from '../../address/list/util';
|
||||
|
||||
Component({
|
||||
externalClasses: ['t-class'],
|
||||
properties: {
|
||||
title: {
|
||||
type: String,
|
||||
},
|
||||
navigateUrl: {
|
||||
type: String,
|
||||
},
|
||||
navigateEvent: {
|
||||
type: String,
|
||||
},
|
||||
isCustomStyle: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
},
|
||||
isDisabledBtn: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
},
|
||||
isOrderSure: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
getWxLocation() {
|
||||
if (this.properties.isDisabledBtn) return;
|
||||
getPermission({ code: 'scope.address', name: '通讯地址' }).then(() => {
|
||||
wx.chooseAddress({
|
||||
success: async (options) => {
|
||||
const { provinceName, cityName, countyName, detailInfo, userName, telNumber } = options;
|
||||
|
||||
if (!phoneRegCheck(telNumber)) {
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: '请填写正确的手机号',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const target = {
|
||||
name: userName,
|
||||
phone: telNumber,
|
||||
countryName: '中国',
|
||||
countryCode: 'chn',
|
||||
detailAddress: detailInfo,
|
||||
provinceName: provinceName,
|
||||
cityName: cityName,
|
||||
districtName: countyName,
|
||||
isDefault: false,
|
||||
isOrderSure: this.properties.isOrderSure,
|
||||
};
|
||||
|
||||
try {
|
||||
const { provinceCode, cityCode, districtCode } = await addressParse(provinceName, cityName, countyName);
|
||||
|
||||
const params = Object.assign(target, {
|
||||
provinceCode,
|
||||
cityCode,
|
||||
districtCode,
|
||||
});
|
||||
if (this.properties.isOrderSure) {
|
||||
this.onHandleSubmit(params);
|
||||
} else if (this.properties.navigateUrl != '') {
|
||||
const { navigateEvent } = this.properties;
|
||||
this.triggerEvent('navigate');
|
||||
wx.navigateTo({
|
||||
url: this.properties.navigateUrl,
|
||||
success: function (res) {
|
||||
res.eventChannel.emit(navigateEvent, params);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
this.triggerEvent('change', params);
|
||||
}
|
||||
} catch (error) {
|
||||
wx.showToast({ title: '地址解析出错,请稍后再试', icon: 'none' });
|
||||
}
|
||||
},
|
||||
fail(err) {
|
||||
console.warn('未选择微信收货地址', err);
|
||||
},
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
async queryAddress(addressId) {
|
||||
try {
|
||||
const { data } = await apis.userInfo.queryAddress({ addressId });
|
||||
return data.userAddressVO;
|
||||
} catch (err) {
|
||||
console.error('查询地址错误', err);
|
||||
throw err;
|
||||
}
|
||||
},
|
||||
|
||||
findPage(pageRouteUrl) {
|
||||
const currentRoutes = getCurrentPages().map((v) => v.route);
|
||||
return currentRoutes.indexOf(pageRouteUrl);
|
||||
},
|
||||
|
||||
async onHandleSubmit(params) {
|
||||
try {
|
||||
const orderPageDeltaNum = this.findPage('pages/order/order-confirm/index');
|
||||
if (orderPageDeltaNum > -1) {
|
||||
wx.navigateBack({ delta: 1 });
|
||||
resolveAddress(params);
|
||||
return;
|
||||
}
|
||||
} catch (err) {
|
||||
rejectAddress(params);
|
||||
console.error(err);
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"t-cell": "tdesign-miniprogram/cell/cell",
|
||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast"
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
<view class="wx-address t-class" bind:tap="getWxLocation">
|
||||
<block wx:if="{{isCustomStyle}}">
|
||||
<view class="wx-address-custom">
|
||||
<t-icon prefix="wr" t-class="weixin" color="#0ABF5B" name="wechat" size="48rpx" />
|
||||
<text>{{title}}</text>
|
||||
</view>
|
||||
<slot />
|
||||
</block>
|
||||
<block wx:else>
|
||||
<t-cell title="{{title}}" title-class="cell__title" wr-class="cell" border="{{false}}">
|
||||
<t-icon t-class="weixin" slot="icon" color="#0ABF5B" name="logo-windows" size="48rpx" />
|
||||
<t-icon slot="right-icon" name="chevron-right" class="custom-icon" color="#bbb" />
|
||||
</t-cell>
|
||||
</block>
|
||||
</view>
|
||||
<t-toast id="t-toast" />
|
@ -1,19 +0,0 @@
|
||||
.wx-address .weixin {
|
||||
display: inline-block;
|
||||
font-size: 48rpx !important;
|
||||
margin-right: 20rpx;
|
||||
font-weight: normal;
|
||||
}
|
||||
.wx-address .cell {
|
||||
padding: 32rpx 30rpx;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.wx-address .cell__title {
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.wx-address-custom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
Component({
|
||||
properties: {
|
||||
show: {
|
||||
type: Boolean,
|
||||
observer(show) {
|
||||
if (!show) return;
|
||||
this.updateDivisions();
|
||||
},
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
value: '',
|
||||
},
|
||||
value: {
|
||||
type: String,
|
||||
value: '',
|
||||
observer() {
|
||||
if (!this.data.show) return;
|
||||
this.updateDivisions();
|
||||
},
|
||||
},
|
||||
pickerOptions: {
|
||||
type: Array,
|
||||
value: [],
|
||||
observer() {
|
||||
if (!this.data.show) return;
|
||||
this.updateDivisions();
|
||||
},
|
||||
},
|
||||
headerVisible: {
|
||||
type: Boolean,
|
||||
value: true,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
pickerValue: [],
|
||||
},
|
||||
methods: {
|
||||
updateDivisions() {
|
||||
const { pickerOptions, value } = this.data;
|
||||
const index = (pickerOptions || []).findIndex(
|
||||
(item) => item.code === value,
|
||||
);
|
||||
|
||||
setTimeout(() => {
|
||||
this.setData({ pickerValue: index >= 0 ? [index] : [0] });
|
||||
}, 0);
|
||||
},
|
||||
|
||||
getAreaByIndex(indexes) {
|
||||
const { pickerOptions } = this.data;
|
||||
return pickerOptions[indexes.toString()];
|
||||
},
|
||||
|
||||
onChange(e) {
|
||||
const currentValue = e.detail.value;
|
||||
const target = this.getAreaByIndex(currentValue);
|
||||
if (target === null) return;
|
||||
|
||||
this.setData({ pickerValue: currentValue });
|
||||
this.triggerEvent('change', { value: target.code, target: target });
|
||||
},
|
||||
|
||||
onConfirm() {
|
||||
const target = this.getAreaByIndex(this.data.pickerValue);
|
||||
this.triggerEvent('confirm', { value: target?.code, target });
|
||||
},
|
||||
|
||||
onClose() {
|
||||
this.triggerEvent('close');
|
||||
},
|
||||
},
|
||||
});
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"t-popup": "tdesign-miniprogram/popup/popup"
|
||||
}
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
<t-popup visible="{{show}}" placement="bottom">
|
||||
<view class="city-picker-box" slot="content">
|
||||
<view wx:if="{{headerVisible}}" class="city-picker-header city-picker-more">
|
||||
<view class="btn" hover-class="btn__active" catch:tap="onClose">取消</view>
|
||||
<view wx:if="{{title}}" class="title">{{title}}</view>
|
||||
<view class="btn primary" hover-class="btn__active" catch:tap="onConfirm">确定</view>
|
||||
</view>
|
||||
<view wx:else class="city-picker-header">
|
||||
<view wx:if="{{title}}" class="title">{{title}}</view>
|
||||
</view>
|
||||
<picker-view class="picker" indicator-class="picker-center-row" value="{{pickerValue}}" bind:change="onChange">
|
||||
<picker-view-column class="picker-column">
|
||||
<view wx:for="{{ pickerOptions }}" wx:key="code">{{ item.name }}</view>
|
||||
</picker-view-column>
|
||||
</picker-view>
|
||||
<view class="city-picker-footer" wx:if="{{!headerVisible}}">
|
||||
<view class="btn" hover-class="btn__active" catch:tap="onClose">取消</view>
|
||||
<view class="btn primary" hover-class="btn__active" catch:tap="onConfirm">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</t-popup>
|
@ -1,102 +0,0 @@
|
||||
.city-picker-container {
|
||||
opacity: 0;
|
||||
position: fixed;
|
||||
top: 100vh;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100vh;
|
||||
z-index: 100;
|
||||
}
|
||||
.city-picker-container.show {
|
||||
top: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
.city-picker-container.show .city-picker-box {
|
||||
bottom: 0;
|
||||
}
|
||||
.city-picker-shadow {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
.city-picker-header {
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.city-picker-more {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.city-picker-footer {
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.city-picker-footer .btn {
|
||||
width: 330rpx;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
color: #666666;
|
||||
font-size: 32rpx;
|
||||
position: relative;
|
||||
}
|
||||
.city-picker-footer .btn__active {
|
||||
opacity: 0.5;
|
||||
}
|
||||
.city-picker-footer .btn::after {
|
||||
display: block;
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
left: -50%;
|
||||
right: -50%;
|
||||
top: -50%;
|
||||
bottom: -50%;
|
||||
transform: scale(0.5);
|
||||
border: 1rpx solid #999999;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
.city-picker-footer .btn.primary {
|
||||
color: #fa550f;
|
||||
}
|
||||
.city-picker-footer .btn.primary::after {
|
||||
border-color: #fa550f;
|
||||
}
|
||||
.picker-column:not(:first-child) {
|
||||
margin-left: 40rpx;
|
||||
}
|
||||
.city-picker-box {
|
||||
position: absolute;
|
||||
bottom: -100%;
|
||||
transition: 0.3s bottom ease-in-out;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 100;
|
||||
background-color: #fff;
|
||||
padding: 0 30rpx;
|
||||
color: #333333;
|
||||
font-size: 34rpx;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
.show .city-picker-shadow {
|
||||
display: block;
|
||||
}
|
||||
.picker {
|
||||
height: 300rpx;
|
||||
margin: 50rpx 0;
|
||||
line-height: 88rpx;
|
||||
text-align: center;
|
||||
}
|
||||
/* 似乎小程序picker-view的bug,indicator-class仅height生效,其他诸如line-height、text-align等放到父class中设置 */
|
||||
.picker-center-row {
|
||||
height: 88rpx;
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
const AuthStepType = {
|
||||
ONE: 1,
|
||||
TWO: 2,
|
||||
THREE: 3,
|
||||
};
|
||||
|
||||
Component({
|
||||
options: {
|
||||
multipleSlots: true,
|
||||
},
|
||||
properties: {
|
||||
currAuthStep: {
|
||||
type: Number,
|
||||
value: AuthStepType.ONE,
|
||||
},
|
||||
userInfo: {
|
||||
type: Object,
|
||||
value: {},
|
||||
},
|
||||
isNeedGetUserInfo: {
|
||||
type: Boolean,
|
||||
value: false,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
defaultAvatarUrl:
|
||||
'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png',
|
||||
AuthStepType,
|
||||
},
|
||||
methods: {
|
||||
gotoUserEditPage() {
|
||||
this.triggerEvent('gotoUserEditPage');
|
||||
},
|
||||
gotoLogin(){
|
||||
wx.navigateTo({ url: '/pages/login/login' });
|
||||
}
|
||||
},
|
||||
});
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
||||
"t-avatar": "tdesign-miniprogram/avatar/avatar"
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
<wxs module="phoneReg">
|
||||
var toHide = function (array) { var mphone = array.substring(0, 3) + '****' + array.substring(7); return mphone; }
|
||||
module.exports.toHide = toHide;
|
||||
</wxs>
|
||||
<view class="user-center-card">
|
||||
<!-- 未登录的情况 -->
|
||||
<block wx:if="{{currAuthStep === AuthStepType.ONE}}">
|
||||
<view class="user-center-card__header" bind:tap="gotoLogin">
|
||||
<t-avatar image="{{userInfo.avatarUrl || defaultAvatarUrl}}" class="user-center-card__header__avatar" />
|
||||
<view class="user-center-card__header__name">{{'请登录'}}</view>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 已登录但未授权用户信息情况 -->
|
||||
<block wx:if="{{currAuthStep === AuthStepType.TWO}}">
|
||||
<view class="user-center-card__header">
|
||||
<t-avatar image="{{userInfo.avatarUrl || defaultAvatarUrl}}" class="user-center-card__header__avatar" />
|
||||
<view class="user-center-card__heade__text__box">
|
||||
<view class="user-center-card__header__name">{{userInfo.nickName || '微信用户'}}</view>
|
||||
<view class="user-center-card__header__phone">{{phoneReg.toHide(userInfo.phoneNumber || '')}}</view>
|
||||
</view>
|
||||
<!-- 需要授权用户信息,通过slot添加弹窗 -->
|
||||
<view class="user-center-card__header__transparent" wx:if="{{isNeedGetUserInfo}}">
|
||||
<slot name="getUserInfo" />
|
||||
</view>
|
||||
<!-- 不需要授权用户信息,仍然触发gotoUserEditPage事件 -->
|
||||
<view class="user-center-card__header__transparent" bind:tap="gotoUserEditPage" wx:else></view>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 已登录且已经授权用户信息的情况 -->
|
||||
<block wx:if="{{currAuthStep === AuthStepType.THREE}}">
|
||||
<view class="user-center-card__header" bind:tap="gotoUserEditPage">
|
||||
<t-avatar t-class="avatar" mode="aspectFill" class="user-center-card__header__avatar" image="{{userInfo.avatarUrl || defaultAvatarUrl}}" />
|
||||
<view class="user-center-card__header__name">{{userInfo.nickName || '微信用户'}}</view>
|
||||
<view class="user-center-card__heade__text__box">
|
||||
<view class="user-center-card__header__name">{{userInfo.nickName || '微信用户'}}</view>
|
||||
<view class="user-center-card__header__phone">{{phoneReg.toHide(userInfo.phoneNumber || '')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
@ -1,58 +0,0 @@
|
||||
.user-center-card {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 480rpx;
|
||||
/* 个人信息背景图 */
|
||||
background-image: url('https://cdn-we-retail.ym.tencent.com/miniapp/template/user-center-bg-v1.png');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
padding: 0 35rpx;
|
||||
}
|
||||
.user-center-card__header {
|
||||
margin-top: 192rpx;
|
||||
margin-bottom: 48rpx;
|
||||
height: 96rpx;
|
||||
line-height: 48rpx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
.user-center-card__header__avatar {
|
||||
width: 96rpx;
|
||||
height: 96rpx;
|
||||
border-radius: 48rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.user-center-card__heade__text__box{
|
||||
margin-left: 24rpx;
|
||||
}
|
||||
|
||||
.user-center-card__header__name {
|
||||
font-size: 36rpx;
|
||||
line-height: 48rpx;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.user-center-card__header__phone {
|
||||
font-size: 30rpx;
|
||||
margin-right: 16rpx;
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.user-center-card__header__transparent {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background-color: transparent;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.user-center-card__icon {
|
||||
line-height: 96rpx;
|
||||
}
|
@ -1,113 +0,0 @@
|
||||
import {
|
||||
getGoodsCollectionList
|
||||
} from '~/services/usercenter/goods-collect/getGoodsCollectionList';
|
||||
|
||||
|
||||
Page({
|
||||
page: {
|
||||
size: 10,
|
||||
num: 1,
|
||||
},
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
list: [],
|
||||
goodsListLoadStatus: 0
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
this.init()
|
||||
},
|
||||
|
||||
// 获取售后订单列表
|
||||
init(reset = false) {
|
||||
const params = {
|
||||
pageSize: this.page.size,
|
||||
pageNum: this.page.num,
|
||||
};
|
||||
this.setData({
|
||||
goodsListLoadStatus: 1,
|
||||
});
|
||||
return getGoodsCollectionList(params)
|
||||
.then((res) => {
|
||||
this.page.num++;
|
||||
|
||||
if (res && res.data && res.data.result) {
|
||||
this.setData({
|
||||
list: this.data.list.concat(res.data.result),
|
||||
goodsListLoadStatus: 0,
|
||||
});
|
||||
}
|
||||
|
||||
}).catch((err) => {
|
||||
this.setData({
|
||||
goodsListLoadStatus: 3,
|
||||
});
|
||||
return Promise.reject(err);
|
||||
});
|
||||
},
|
||||
|
||||
gotoGoodsDetail(e) {
|
||||
const {
|
||||
index
|
||||
} = e.detail;
|
||||
const {
|
||||
spuId
|
||||
} = this.data.list[index];
|
||||
wx.navigateTo({
|
||||
url: `/pages/goods/details/index?spuId=${spuId}`,
|
||||
});
|
||||
},
|
||||
|
||||
onReachBottom() {
|
||||
if (this.data.goodsListLoadStatus === 0) {
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "我的收藏",
|
||||
"usingComponents": {
|
||||
"t-empty": "tdesign-miniprogram/empty/empty",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast",
|
||||
"load-more": "/components/load-more/index"
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
<!--pages/usercenter/goods-collect/index.wxml-->
|
||||
<view wx:key="index" class="section">
|
||||
<view class="goods-category-crad">
|
||||
<view class="empty-wrap" wx:if="{{list.length === 0}}">
|
||||
<t-empty t-class="empty-tips" size="240rpx" description="暂无收藏商品" />
|
||||
</view>
|
||||
<!-- 列表 -->
|
||||
</view>
|
||||
</view>
|
@ -1 +0,0 @@
|
||||
/* pages/usercenter/goods-collect/index.wxss */
|
@ -1,119 +0,0 @@
|
||||
import {
|
||||
getGoodsBrowsingHistoryList
|
||||
} from '~/services/usercenter/goods-history/getGoodsBrowsingHistoryList';
|
||||
|
||||
|
||||
Page({
|
||||
page: {
|
||||
size: 10,
|
||||
num: 1,
|
||||
},
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
list: [],
|
||||
goodsListLoadStatus: 0
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
this.init()
|
||||
},
|
||||
|
||||
onReTry() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
// 获取商品浏览记录列表
|
||||
async init(reset = false) {
|
||||
const params = {
|
||||
pageSize: this.page.size,
|
||||
pageNum: this.page.num,
|
||||
};
|
||||
this.setData({
|
||||
goodsListLoadStatus: 1,
|
||||
});
|
||||
return getGoodsBrowsingHistoryList(params)
|
||||
.then((res) => {
|
||||
this.page.num++;
|
||||
|
||||
if (res && res.data && res.data.result) {
|
||||
this.setData({
|
||||
list: this.data.list.concat(res.data.result),
|
||||
goodsListLoadStatus: 0,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
this.setData({
|
||||
goodsListLoadStatus: 3,
|
||||
});
|
||||
return Promise.reject(err);
|
||||
});
|
||||
},
|
||||
|
||||
gotoGoodsDetail(e) {
|
||||
const {
|
||||
index
|
||||
} = e.detail;
|
||||
const {
|
||||
spuId
|
||||
} = this.data.list[index];
|
||||
wx.navigateTo({
|
||||
url: `/pages/goods/details/index?spuId=${spuId}`,
|
||||
});
|
||||
},
|
||||
|
||||
onReachBottom() {
|
||||
if (this.data.goodsListLoadStatus === 0) {
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "我的浏览记录",
|
||||
"usingComponents": {
|
||||
"t-empty": "tdesign-miniprogram/empty/empty",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast",
|
||||
"load-more": "/components/load-more/index"
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
<!--pages/usercenter/goods-collect/index.wxml-->
|
||||
<view wx:key="index" class="section">
|
||||
<view class="goods-category-crad">
|
||||
<view class="empty-wrap" wx:if="{{list.length === 0}}">
|
||||
<t-empty t-class="empty-tips" size="240rpx" description="暂无浏览记录" />
|
||||
</view>
|
||||
<!-- 列表 -->
|
||||
<load-more list-is-empty="{{!list.length}}" status="{{goodsListLoadStatus}}" bind:retry="onReTry" />
|
||||
</view>
|
||||
</view>
|
@ -1 +0,0 @@
|
||||
/* pages/usercenter/goods-history/index.wxss */
|
@ -1,195 +0,0 @@
|
||||
import {
|
||||
fetchUserCenter
|
||||
} from '~/services/usercenter/fetchUsercenter';
|
||||
import {
|
||||
getCustomerServiceList
|
||||
} from '~/services/usercenter/getCustomerServiceList';
|
||||
import {
|
||||
getOpenId
|
||||
} from '~/services/login/getOpenId';
|
||||
import Toast from 'tdesign-miniprogram/toast/index';
|
||||
|
||||
const menuData = [
|
||||
[
|
||||
{
|
||||
title: '设置',
|
||||
tit: '',
|
||||
url: '',
|
||||
type: 'set',
|
||||
},
|
||||
],
|
||||
[
|
||||
// {
|
||||
// title: '帮助中心',
|
||||
// tit: '',
|
||||
// url: '',
|
||||
// type: 'help-center',
|
||||
// },
|
||||
{
|
||||
title: '联系客服',
|
||||
tit: '',
|
||||
url: '',
|
||||
type: 'service',
|
||||
icon: 'service',
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
const getDefaultData = () => ({
|
||||
showMakePhone: false,
|
||||
userInfo: {
|
||||
avatarUrl: '',
|
||||
nickName: '正在登录...',
|
||||
phoneNumber: '',
|
||||
},
|
||||
collectData: {
|
||||
collectCount: 0,
|
||||
historyCount: 0,
|
||||
},
|
||||
menuData,
|
||||
customerServiceInfo: {},
|
||||
currAuthStep: 1,
|
||||
showKefu: true,
|
||||
CustomerService: {},
|
||||
});
|
||||
|
||||
Page({
|
||||
data: getDefaultData(),
|
||||
|
||||
onLoad() {
|
||||
this.onGetCustomerServiceList();
|
||||
},
|
||||
|
||||
onShow() {
|
||||
this.getTabBar().init();
|
||||
this.init();
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.init();
|
||||
},
|
||||
|
||||
init() {
|
||||
this.fetUseriInfoHandle();
|
||||
},
|
||||
|
||||
/** 获取客户信息 */
|
||||
fetUseriInfoHandle() {
|
||||
fetchUserCenter().then(
|
||||
({
|
||||
userInfo,
|
||||
collectData,
|
||||
}) => {
|
||||
this.setData({
|
||||
userInfo,
|
||||
collectData,
|
||||
currAuthStep: 2,
|
||||
});
|
||||
wx.stopPullDownRefresh();
|
||||
},
|
||||
);
|
||||
},
|
||||
|
||||
onClickCell({
|
||||
currentTarget
|
||||
}) {
|
||||
const {
|
||||
type
|
||||
} = currentTarget.dataset;
|
||||
|
||||
switch (type) {
|
||||
case 'service': {
|
||||
this.openMakePhone();
|
||||
break;
|
||||
}
|
||||
case 'set': {
|
||||
wx.navigateTo({
|
||||
url: '/pages/usercenter/set/index'
|
||||
});
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: '未知跳转',
|
||||
icon: '',
|
||||
duration: 1000,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
jumpAllOrder() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/order/order-list/index'
|
||||
});
|
||||
},
|
||||
|
||||
jumpCollect() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/usercenter/goods-collect/index'
|
||||
});
|
||||
},
|
||||
|
||||
jumpHistory() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/usercenter/goods-history/index'
|
||||
});
|
||||
},
|
||||
|
||||
openMakePhone() {
|
||||
this.setData({
|
||||
showMakePhone: true
|
||||
});
|
||||
},
|
||||
|
||||
closeMakePhone() {
|
||||
this.setData({
|
||||
showMakePhone: false
|
||||
});
|
||||
},
|
||||
|
||||
call() {
|
||||
wx.makePhoneCall({
|
||||
phoneNumber: this.data.customerServiceInfo.servicePhone,
|
||||
});
|
||||
},
|
||||
|
||||
getOpenIdFun() {
|
||||
wx.login({
|
||||
success(res) {
|
||||
getOpenId({
|
||||
code: res.code
|
||||
}).then((res) => {
|
||||
wx.setStorageSync('openId', res.data)
|
||||
})
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
gotoUserEditPage() {
|
||||
const {
|
||||
currAuthStep
|
||||
} = this.data;
|
||||
if (currAuthStep === 2) {
|
||||
wx.navigateTo({
|
||||
url: '/pages/usercenter/person-info/index'
|
||||
});
|
||||
} else {
|
||||
// this.fetUseriInfoHandle();
|
||||
}
|
||||
},
|
||||
|
||||
// 获取客服列表
|
||||
onGetCustomerServiceList() {
|
||||
getCustomerServiceList().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.setData({
|
||||
CustomerService: res.data[0]
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
});
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "个人中心",
|
||||
"navigationStyle": "custom",
|
||||
"usingComponents": {
|
||||
"t-popup": "tdesign-miniprogram/popup/popup",
|
||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
||||
"t-cell-group": "tdesign-miniprogram/cell-group/cell-group",
|
||||
"t-cell": "tdesign-miniprogram/cell/cell",
|
||||
"t-user-center-card": "./components/user-center-card/index",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast"
|
||||
},
|
||||
"enablePullDownRefresh": true
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
<t-user-center-card userInfo="{{userInfo}}" isPhoneHide="{{true}}" name-class="custom-name-class" phone-class="custom-phone-class" avatar-class="customer-avatar-class" currAuthStep="{{currAuthStep}}" bind:gotoUserEditPage="gotoUserEditPage" />
|
||||
|
||||
|
||||
<view class="content-wrapper">
|
||||
<!-- 收藏和足迹 -->
|
||||
<view class="order-history-box">
|
||||
<view class="order-history-content-box" bind:tap="jumpCollect">
|
||||
<view class="order-history-content-num">{{collectData.collectCount}}</view>
|
||||
<view class="order-history-content-text">收藏</view>
|
||||
</view>
|
||||
<view class="order-history-content-line"></view>
|
||||
<view class="order-history-content-box" bind:tap="jumpHistory">
|
||||
<view class="order-history-content-num">{{collectData.historyCount}}</view>
|
||||
<view class="order-history-content-text">浏览记录</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <button type="primary" bind:tap="getOpenIdFun">获取OpenID</button> -->
|
||||
|
||||
<view wx:for="{{menuData}}" wx:key="item" class="cell-box">
|
||||
<t-cell-group>
|
||||
<t-cell wx:for="{{item}}" wx:for-item="xitem" wx:for-index="xindex" wx:key="xindex" title="{{xitem.title}}" arrow="{{!xitem.icon}}" note="{{xitem.tit}}" data-type="{{xitem.type}}" bordered="{{false}}" bind:click="onClickCell" t-class="t-cell-padding" t-class-note="order-group-note" t-class-left="order-group__left">
|
||||
<t-icon name="{{xitem.icon}}" size="48rpx" slot="note" />
|
||||
</t-cell>
|
||||
</t-cell-group>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{CustomerService}}">
|
||||
<view class="footer__version" style="margin-top: 50rpx;">客服电话 {{CustomerService.customerServicePhone}}</view>
|
||||
<view class="footer__version">工作时间 {{CustomerService.workingHoursBeginTime}}-{{CustomerService.workingHoursEndTime}}</view>
|
||||
</view>
|
||||
<t-popup visible="{{showMakePhone}}" placement="bottom" bind:visible-change="closeMakePhone" data-index="2">
|
||||
<view class="popup-content">
|
||||
<view class="customer-service-img" wx:if="{{CustomerService.customerServiceImg}}">
|
||||
<image src="{{CustomerService.customerServiceImg}}" mode="widthFix" />
|
||||
</view>
|
||||
<!-- <view class="popup-title border-bottom-1px" wx:if="{{customerServiceInfo.serviceTimeDuration}}">
|
||||
服务时间: {{customerServiceInfo.serviceTimeDuration}}
|
||||
</view>
|
||||
<view class="popup-phone {{showKefu ? 'border-bottom-1px' : ''}}" bind:tap="call">电话客服</view>
|
||||
<button class="popup-phone border-bottom-1px online" open-type="contact" wx:if="{{showKefu}}">在线客服</button> -->
|
||||
<view class="popup-close" bind:tap="closeMakePhone">取消</view>
|
||||
</view>
|
||||
</t-popup>
|
||||
<t-toast id="t-toast" />
|
@ -1,188 +0,0 @@
|
||||
page {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.content-wrapper {
|
||||
margin-top: 340rpx;
|
||||
position: relative;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
height: 500rpx;
|
||||
}
|
||||
|
||||
.order-group-wrapper {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.order-group-note {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.cell-box {
|
||||
border-radius: 10rpx;
|
||||
overflow: hidden;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.icon-color {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.cell-class {
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-content {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
flex: 1;
|
||||
height: 180rpx;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.order-content-box {
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.order-content-t {
|
||||
margin-top: 10rpx;
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
letter-spacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
background: #f5f5f5;
|
||||
margin-bottom: env(safe-area-inset-bottom);
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
}
|
||||
|
||||
.popup-content .popup-title {
|
||||
background: #fff;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
height: 112rpx;
|
||||
text-align: center;
|
||||
line-height: 112rpx;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
}
|
||||
|
||||
.border-bottom-1px {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.border-bottom-1px::after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
content: '';
|
||||
box-sizing: border-box;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
transform: scale(0.5);
|
||||
transform-origin: left top;
|
||||
border-bottom: 2rpx solid #e5e5e5;
|
||||
}
|
||||
|
||||
.popup-content .popup-phone,
|
||||
.popup-content .popup-close {
|
||||
background: #fff;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
font-family: PingFangSC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.popup-content .popup-phone.online {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.popup-content .popup-phone.online::after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.popup-content .popup-close {
|
||||
color: #333;
|
||||
border: 0;
|
||||
/* margin-top: 16rpx; */
|
||||
}
|
||||
|
||||
.customer-service-img,
|
||||
.customer-service-img>image {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.my-order {
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.footer__version {
|
||||
text-align: center;
|
||||
color: #999;
|
||||
margin-bottom: 4rpx;
|
||||
font-size: 24rpx;
|
||||
line-height: 32rpx;
|
||||
}
|
||||
|
||||
.cell-box .order-group__left {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.cell-box .t-cell-padding {
|
||||
padding: 24rpx 18rpx 24rpx 32rpx;
|
||||
}
|
||||
|
||||
.order-history-box {
|
||||
width: 90%;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin: 30rpx auto;
|
||||
}
|
||||
|
||||
.order-history-content-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.order-history-content-num {
|
||||
font-size: 35rpx;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.order-history-content-line {
|
||||
/* width: 1rpx; */
|
||||
height: 80rpx;
|
||||
border: 1px solid black;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
Page({
|
||||
data: {
|
||||
nameValue: '',
|
||||
},
|
||||
onLoad(options) {
|
||||
const { name } = options;
|
||||
this.setData({
|
||||
nameValue: name,
|
||||
});
|
||||
},
|
||||
onSubmit() {
|
||||
wx.navigateBack({ backRefresh: true });
|
||||
},
|
||||
clearContent() {
|
||||
this.setData({
|
||||
nameValue: '',
|
||||
});
|
||||
},
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "昵称",
|
||||
"usingComponents": {
|
||||
"t-input": "tdesign-miniprogram/input/input",
|
||||
"t-icon": "tdesign-miniprogram/icon/icon",
|
||||
"t-button": "tdesign-miniprogram/button/button"
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
<view class="name-edit">
|
||||
<t-input
|
||||
borderless
|
||||
model:value="{{nameValue}}"
|
||||
placeholder="请输入文字"
|
||||
label="昵称"
|
||||
clearable
|
||||
bind:clear="clearContent"
|
||||
/>
|
||||
<view class="name-edit__input--desc"> 最多可输入15个字 </view>
|
||||
<view class="name-edit__wrapper">
|
||||
<t-button block shape="round" disabled="{{!nameValue}}" bind:tap="onSubmit">保存</t-button>
|
||||
</view>
|
||||
</view>
|
@ -1,18 +0,0 @@
|
||||
page {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
page view {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.name-edit {
|
||||
padding-top: 20rpx;
|
||||
}
|
||||
.name-edit .name-edit__input--desc {
|
||||
font-size: 26rpx;
|
||||
padding: 16rpx 32rpx;
|
||||
color: #999;
|
||||
margin-bottom: 200rpx;
|
||||
}
|
||||
.name-edit .name-edit__wrapper {
|
||||
margin: 0 32rpx;
|
||||
}
|
@ -1,197 +0,0 @@
|
||||
import {
|
||||
fetchPerson
|
||||
} from '~/services/usercenter/fetchPerson';
|
||||
import {
|
||||
updatePerson
|
||||
} from '~/services/usercenter/updatePerson';
|
||||
import {
|
||||
phoneEncryption
|
||||
} from '~/utils/util';
|
||||
import Toast from 'tdesign-miniprogram/toast/index';
|
||||
import { ServerBasePath } from '~/services/_utils/request'
|
||||
|
||||
Page({
|
||||
data: {
|
||||
personInfo: {
|
||||
avatarUrl: '',
|
||||
nickName: '',
|
||||
gender: 0,
|
||||
phoneNumber: '',
|
||||
},
|
||||
showUnbindConfirm: false,
|
||||
pickerOptions: [{
|
||||
name: '男',
|
||||
code: '1',
|
||||
},
|
||||
{
|
||||
name: '女',
|
||||
code: '2',
|
||||
},
|
||||
],
|
||||
typeVisible: false,
|
||||
genderMap: ['', '男', '女'],
|
||||
},
|
||||
onLoad() {
|
||||
this.init();
|
||||
},
|
||||
init() {
|
||||
this.fetchData();
|
||||
},
|
||||
|
||||
fetchData() {
|
||||
fetchPerson().then(({
|
||||
personInfo
|
||||
}) => {
|
||||
this.setData({
|
||||
personInfo,
|
||||
'personInfo.phoneNumber': phoneEncryption(personInfo.phoneNumber),
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
/** 提交 */
|
||||
submit() {
|
||||
let personInfo = this.data.personInfo
|
||||
let data = {
|
||||
customerAvatar: personInfo.avatarUrl,
|
||||
customerNickname: personInfo.nickName,
|
||||
customerGender: personInfo.gender,
|
||||
}
|
||||
updatePerson(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: `保存成功`,
|
||||
theme: 'success',
|
||||
})
|
||||
wx.reLaunch({
|
||||
url: `/pages/usercenter/index`,
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/** 点击单元格 */
|
||||
onClickCell({
|
||||
currentTarget
|
||||
}) {
|
||||
const {
|
||||
dataset
|
||||
} = currentTarget;
|
||||
const {
|
||||
nickName
|
||||
} = this.data.personInfo;
|
||||
|
||||
switch (dataset.type) {
|
||||
case 'gender':
|
||||
this.setData({
|
||||
typeVisible: true,
|
||||
});
|
||||
break;
|
||||
case 'name':
|
||||
wx.navigateTo({
|
||||
url: `/pages/usercenter/name-edit/index?name=${nickName}`,
|
||||
});
|
||||
break;
|
||||
case 'avatarUrl':
|
||||
this.toModifyAvatar();
|
||||
break;
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
onClose() {
|
||||
this.setData({
|
||||
typeVisible: false,
|
||||
});
|
||||
},
|
||||
onConfirm(e) {
|
||||
const {
|
||||
value
|
||||
} = e.detail;
|
||||
this.setData({
|
||||
typeVisible: false,
|
||||
'personInfo.gender': value,
|
||||
},
|
||||
() => {
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: '设置成功',
|
||||
theme: 'success',
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
|
||||
/** 修改昵称 */
|
||||
changeNickName(e) {
|
||||
this.setData({
|
||||
'personInfo.nickName': e.detail.value
|
||||
})
|
||||
},
|
||||
|
||||
/** 修改头像 */
|
||||
async toModifyAvatar() {
|
||||
let that = this
|
||||
try {
|
||||
const tempFilePath = await new Promise((resolve, reject) => {
|
||||
wx.chooseImage({
|
||||
count: 1,
|
||||
sizeType: ['compressed'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: (res) => {
|
||||
const {
|
||||
path,
|
||||
size
|
||||
} = res.tempFiles[0];
|
||||
const tempFilePaths = res.tempFilePaths;
|
||||
let tempFilePath = tempFilePaths[0];
|
||||
// 上传图片到服务器
|
||||
wx.uploadFile({
|
||||
url: ServerBasePath + 'Common/UploadFile', // 上传接口地址
|
||||
filePath: tempFilePath, // 要上传的文件的临时路径
|
||||
name: 'file', // 上传文件对应的字段名
|
||||
success: function (uploadRes) {
|
||||
// 上传成功,服务器返回的数据
|
||||
let url = JSON.parse(uploadRes.data).data.url
|
||||
that.setData({
|
||||
'personInfo.avatarUrl': url
|
||||
})
|
||||
|
||||
},
|
||||
fail: function (uploadError) {
|
||||
// 上传失败,处理错误
|
||||
console.error(uploadError);
|
||||
}
|
||||
});
|
||||
if (size <= 10485760) {
|
||||
resolve(path);
|
||||
} else {
|
||||
reject({
|
||||
errMsg: '图片大小超出限制,请重新上传'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: (err) => reject(err),
|
||||
});
|
||||
});
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: `头像上传成功`,
|
||||
theme: 'success',
|
||||
})
|
||||
} catch (error) {
|
||||
if (error.errMsg === 'chooseImage:fail cancel') return;
|
||||
Toast({
|
||||
context: this,
|
||||
selector: '#t-toast',
|
||||
message: error.errMsg || error.msg || '修改头像出错了',
|
||||
theme: 'error',
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
@ -1,15 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "个人资料",
|
||||
"usingComponents": {
|
||||
"t-cell-group": "tdesign-miniprogram/cell-group/cell-group",
|
||||
"t-cell": "tdesign-miniprogram/cell/cell",
|
||||
"t-button": "tdesign-miniprogram/button/button",
|
||||
"t-image": "/components/webp-image/index",
|
||||
"t-dialog": "tdesign-miniprogram/dialog/dialog",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast",
|
||||
"t-select-picker": "../components/ui-select-picker/index",
|
||||
"t-upload": "tdesign-miniprogram/upload/upload",
|
||||
"t-avatar": "tdesign-miniprogram/avatar/avatar",
|
||||
"t-input": "tdesign-miniprogram/input/input"
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
<view class="person-info">
|
||||
<t-cell-group>
|
||||
<t-cell
|
||||
title="头像"
|
||||
center="{{true}}"
|
||||
data-type="avatarUrl"
|
||||
bind:click="onClickCell"
|
||||
arrow
|
||||
t-class-left="order-group__left"
|
||||
>
|
||||
<t-avatar slot="note" image="{{personInfo.avatarUrl}}" class="user-center-card__header__avatar" />
|
||||
<!-- <t-image slot="note" src="{{personInfo.avatarUrl}}" t-class="avatarUrl" mode="aspectFill" /> -->
|
||||
</t-cell>
|
||||
<t-input value="{{ personInfo.nickName }}" label="昵称" placeholder="请输入昵称" align="right" bindchange="changeNickName" />
|
||||
<t-cell
|
||||
title="性别"
|
||||
arrow
|
||||
note="{{genderMap[personInfo.gender]}}"
|
||||
data-type="gender"
|
||||
bind:click="onClickCell"
|
||||
t-class="t-cell-class"
|
||||
t-class-left="order-group__left"
|
||||
/>
|
||||
<t-cell
|
||||
bordered="{{false}}"
|
||||
title="手机号"
|
||||
arrow
|
||||
note="{{personInfo.phoneNumber ? personInfo.phoneNumber : '去绑定手机号'}}"
|
||||
data-type="phoneNumber"
|
||||
bind:click="onClickCell"
|
||||
t-class="t-cell-class"
|
||||
t-class-left="order-group__left"
|
||||
/>
|
||||
</t-cell-group>
|
||||
</view>
|
||||
<view class="person-info__wrapper">
|
||||
<view class="person-info__btn root-bg-color" bind:tap="submit"> 保存 </view>
|
||||
</view>
|
||||
<t-select-picker
|
||||
show="{{typeVisible}}"
|
||||
picker-options="{{pickerOptions}}"
|
||||
title="选择性别"
|
||||
value="{{personInfo.gender}}"
|
||||
bind:confirm="onConfirm"
|
||||
bind:close="onClose"
|
||||
/>
|
||||
<t-toast id="t-toast" />
|
@ -1,54 +0,0 @@
|
||||
:host {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
page view {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.person-info {
|
||||
padding-top: 20rpx;
|
||||
}
|
||||
|
||||
.person-info__btn {
|
||||
width: 100%;
|
||||
color: white;
|
||||
border: 2rpx solid #ddd;
|
||||
border-radius: 48rpx;
|
||||
padding: 18rpx 0;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.person-info__wrapper {
|
||||
width: 100%;
|
||||
padding: 0 32rpx;
|
||||
padding-bottom: calc(env(safe-area-inset-bottom) + 20rpx);
|
||||
margin-top: 100rpx;
|
||||
/* position: absolute; */
|
||||
/* bottom: 0; */
|
||||
/* left: 0; */
|
||||
}
|
||||
|
||||
.avatarUrl {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 50% !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.t-class-confirm {
|
||||
color: #fa550f !important;
|
||||
}
|
||||
|
||||
.person-info .order-group__left {
|
||||
margin-right: 0;
|
||||
}
|
||||
.person-info .t-cell-class {
|
||||
height: 112rpx;
|
||||
}
|
||||
|
||||
.user-center-card__header__avatar {
|
||||
width: 96rpx;
|
||||
height: 96rpx;
|
||||
border-radius: 48rpx;
|
||||
overflow: hidden;
|
||||
}
|
@ -1,88 +0,0 @@
|
||||
// pages/usercenter/set/index.js
|
||||
import { logout } from '~/services/usercenter/set/logout';
|
||||
import { getPlatformSpecList } from '~/services/usercenter/set/getPlatformSpecList';
|
||||
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
platformSpecList: []
|
||||
},
|
||||
|
||||
//协议点击
|
||||
onClickCell(data){
|
||||
wx.navigateTo({
|
||||
url: '/pages/login/agree-link/index?guid=' + data.currentTarget.dataset.guid
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
/** 登出 */
|
||||
logOut(){
|
||||
logout();
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
getPlatformSpecList().then((res) => {
|
||||
if(res.code === 200){
|
||||
this.setData({
|
||||
platformSpecList: res.data
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"t-cell": "tdesign-miniprogram/cell/cell"
|
||||
},
|
||||
"navigationBarTitleText": "设置"
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
<!-- 设置页 -->
|
||||
|
||||
<view class="set-pos-box">
|
||||
|
||||
<t-cell-group>
|
||||
<t-cell
|
||||
wx:for="{{platformSpecList}}"
|
||||
wx:for-item="xitem"
|
||||
wx:for-index="xindex"
|
||||
wx:key="xindex"
|
||||
title="{{xitem.platformSpecTitle}}"
|
||||
arrow="true"
|
||||
bordered="{{false}}"
|
||||
data-guid="{{xitem.platformSpecGuid}}"
|
||||
bind:click="onClickCell"
|
||||
t-class="t-cell-padding"
|
||||
t-class-note="order-group-note"
|
||||
t-class-left="order-group__left"
|
||||
>
|
||||
<!-- <t-icon name="{{xitem.icon}}" size="48rpx" slot="note" /> -->
|
||||
</t-cell>
|
||||
</t-cell-group>
|
||||
|
||||
<!-- 退出登录按钮 -->
|
||||
<view class="log-out-btn-box">
|
||||
<van-button block round bind:click="logOut">退出当前账号</van-button>
|
||||
</view>
|
||||
|
||||
</view>
|
@ -1,11 +0,0 @@
|
||||
/* pages/usercenter/set/index.wxss */
|
||||
|
||||
|
||||
|
||||
|
||||
.log-out-btn-box{
|
||||
width:85%;
|
||||
position: absolute;
|
||||
bottom: 10%;
|
||||
left: 8%;
|
||||
}
|
Loading…
Reference in New Issue
Block a user