From b7d5d1cb90f8a263a4bc8c8def2c1cda00ffbff6 Mon Sep 17 00:00:00 2001 From: jiazhipeng Date: Tue, 11 Feb 2025 17:54:40 +0800 Subject: [PATCH] 1 --- app.js | 2 +- app.json | 5 +- pages/order/pay/index.js | 59 +++++ pages/order/pay/index.wxml | 47 ++++ pages/order/pay/index.wxss | 100 +++++++- pages/user/profile/index.wxml | 5 + project.private.config.json | 2 +- subPackages/password/overview/overview.js | 81 +++++++ subPackages/password/overview/overview.json | 5 + subPackages/password/overview/overview.wxml | 19 ++ subPackages/password/overview/overview.wxss | 29 +++ subPackages/password/setting/setting.js | 238 ++++++++++++++++++++ subPackages/password/setting/setting.json | 5 + subPackages/password/setting/setting.wxml | 50 ++++ subPackages/password/setting/setting.wxss | 91 ++++++++ 15 files changed, 734 insertions(+), 4 deletions(-) create mode 100644 subPackages/password/overview/overview.js create mode 100644 subPackages/password/overview/overview.json create mode 100644 subPackages/password/overview/overview.wxml create mode 100644 subPackages/password/overview/overview.wxss create mode 100644 subPackages/password/setting/setting.js create mode 100644 subPackages/password/setting/setting.json create mode 100644 subPackages/password/setting/setting.wxml create mode 100644 subPackages/password/setting/setting.wxss diff --git a/app.js b/app.js index 419407e..edf5273 100644 --- a/app.js +++ b/app.js @@ -21,7 +21,7 @@ App({ unique_key: "wechatxcx" }).then(res => { let data = JSON.parse(res.data); - data.isTest = data.isTest164? true : false; + data.isTest = data.isTest163? true : false; this.globalData.configJson = data }).then(() => { // 获取ui配置文件 diff --git a/app.json b/app.json index 0bbbcb6..f70c7e1 100644 --- a/app.json +++ b/app.json @@ -188,6 +188,7 @@ "pages/order/showOrderNew/index", "pages/user/order/showOrderInfo/index", "pages/user/suggest/suggest" + ], "subpackages": [ { @@ -201,7 +202,9 @@ "postSearch/index", "gwcOrder/index", "indexGQ/index", - "transferPage/transferPage" + "transferPage/transferPage", + "password/overview/overview", + "password/setting/setting" ] } ], diff --git a/pages/order/pay/index.js b/pages/order/pay/index.js index cf67b05..1208742 100644 --- a/pages/order/pay/index.js +++ b/pages/order/pay/index.js @@ -27,6 +27,23 @@ Page({ showTipMaskSecond: 3, MTTip: 0, + + SBMask: true, // 数币支付密码弹窗 + isFoucs: true, + vcode: '', + haveSBPassword: false, + inputData: { + phone: '', + code: '', + password: '', + confirmPassword: '', + }, + canSubmit: false, + code:"", + buttonText:"获取验证码", + sendFlag:true, + regToken:null, + codeId:null, }, /** @@ -319,6 +336,48 @@ Page({ } }, + // 数币密码确认 + hideSBMask(){ + this.setData({SBMask:false}) + }, + passwordChange: function (e) { + let val = e.detail.value + this.setData({ + vcode: val + }) + if (val.length==6) { + // 验证密码 + + } + }, + handleFoucs() { + this.setData({ + isFoucs: true + }) + }, + inputChange:function(e){ + let inputData = this.data.inputData + let keyname =e.currentTarget.dataset.keyname; + inputData[keyname] = e.detail.value + this.setData({ + inputData: inputData + }) + + let canSubmit = false + if (inputData.phone && inputData.code && inputData.password && inputData.confirmPassword) { + canSubmit = true + } + this.setData({canSubmit: canSubmit}) +}, + // 获取验证码 + getCode:function(){ + + }, + // 绑定 + submit:function(){ + + }, + /** * 生命周期函数--监听页面隐藏 */ diff --git a/pages/order/pay/index.wxml b/pages/order/pay/index.wxml index 93508e9..137872d 100644 --- a/pages/order/pay/index.wxml +++ b/pages/order/pay/index.wxml @@ -113,5 +113,52 @@ + + + + + + + + + {{haveSBPassword?'输入':'设置'}}支付密码 + + + + + + + + + + 忘记密码 + + + + + + + 手机号 + + + + 验证码 + + + + + + 设置支付密码 + + + + 再次填写密码 + + + + 确 定 + + \ No newline at end of file diff --git a/pages/order/pay/index.wxss b/pages/order/pay/index.wxss index a1a4206..eb667c1 100644 --- a/pages/order/pay/index.wxss +++ b/pages/order/pay/index.wxss @@ -91,4 +91,102 @@ page { height: 22rpx; bottom: -12rpx; left: 0; -} \ No newline at end of file +} + +.password-title{ + text-align: center; + font-weight: bold; + font-size: 31rpx; + color: #000000; + position: relative; +} + +.passward-box-container{ + width: 697rpx; + height: 93rpx; + margin: 68rpx auto 0; + position: relative; + border-radius: 7rpx; + border: 1px solid #999999; + display: flex; + box-sizing: border-box; + padding: 16rpx 0; +} +.show-code{ + flex: 1; + height: 100%; + border-right: 1px solid #999999; + text-align: center; + font-size: 20rpx; +} +.show-code:last-of-type { + border: none; +} +.passward-box{ + width: 0; + height: 0; + border: none; + opacity: 0; + color: rgba(0,0,0,0); +} +.resetPassword{ + width: 106rpx; + font-family: PingFang SC; + font-weight: 500; + font-size: 27rpx; + color: #0C898F; + margin: 0 0 0 auto; +} + + + .bind-item { + display: flex; + align-items: center; + justify-content: space-between; + height: 120rpx; + line-height: 120rpx; + font-size: 28rpx; + border-bottom: 1rpx solid #EEE; + text-align: left; + } + .bind-item .weui-input { + flex: 1; + } + .bind-item-left { + width: 249rpx; + + } + .bind-item image { + width: 200rpx; + height: 60rpx; + } + .btn { + margin:0rpx auto; + margin-top: 74rpx; + width: 697rpx; + height: 73rpx; + background: #D62829; + border-radius: 37rpx; + line-height: 73rpx; + font-weight: bold; + font-size: 35rpx; + color: #FFFFFF; + text-align: center; + } + .btn.disabled{ + background: #CCCCCC; + } + + .vaild-number{ + width: 197rpx !important; + height: 53rpx !important; + font-size: 27rpx !important; + color: #0C898F !important; + background: none !important; + line-height: 53rpx !important; + padding: 0 !important; + text-align: center; + border: 1px solid #0C898F; + border-radius: 27rpx; + font-weight: 500 !important; + } \ No newline at end of file diff --git a/pages/user/profile/index.wxml b/pages/user/profile/index.wxml index 033373a..3af30d5 100644 --- a/pages/user/profile/index.wxml +++ b/pages/user/profile/index.wxml @@ -48,6 +48,11 @@ + + 支付密码 + + + 注销账号 注销后账号无法恢复,请谨慎操作 diff --git a/project.private.config.json b/project.private.config.json index 6f2c82b..5001ef7 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -112,5 +112,5 @@ }, "projectname": "%E8%8B%8F%E5%B7%9E%E6%96%87%E6%97%85", "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", - "libVersion": "2.30.0" + "libVersion": "development" } \ No newline at end of file diff --git a/subPackages/password/overview/overview.js b/subPackages/password/overview/overview.js new file mode 100644 index 0000000..af40f95 --- /dev/null +++ b/subPackages/password/overview/overview.js @@ -0,0 +1,81 @@ +// pages/user/profile/index.js +let app = getApp(); +import util from "../../../utils/util" +import WeCropper from '../../../we-cropper/we-cropper.min.js'; +import userApi from "../../../utils/https/user" +let device = wx.getSystemInfoSync(),rect = wx.getMenuButtonBoundingClientRect(); // 获取设备信息 +const width = device.windowWidth // 示例为一个与屏幕等宽的正方形裁剪框 +let menuHeight = (rect.top - device.statusBarHeight) * 2 + rect.height + device.statusBarHeight; +let height = device.windowHeight - menuHeight; +Page({ + + /** + * 页面的初始数据 + */ + data: { + + info:null, + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + goSetting (e) { + let type = e.currentTarget.dataset.type; + wx.navigateTo({ + url: '/subPackages/password/setting/setting?type='+type, + }) + }, + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + // userApi.user_post("user/getMyInfo",{}).then(res=>{ + // this.setData({ + // info:res.data, + // }) + // }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + } +}) \ No newline at end of file diff --git a/subPackages/password/overview/overview.json b/subPackages/password/overview/overview.json new file mode 100644 index 0000000..edc5913 --- /dev/null +++ b/subPackages/password/overview/overview.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "title":"/pages/component/TitleHeader" + } + } \ No newline at end of file diff --git a/subPackages/password/overview/overview.wxml b/subPackages/password/overview/overview.wxml new file mode 100644 index 0000000..3e924cb --- /dev/null +++ b/subPackages/password/overview/overview.wxml @@ -0,0 +1,19 @@ + + + + + + 设置支付密码 + 已设置 + + + + 修改密码 + + + + + 忘记密码 + + + diff --git a/subPackages/password/overview/overview.wxss b/subPackages/password/overview/overview.wxss new file mode 100644 index 0000000..99f6698 --- /dev/null +++ b/subPackages/password/overview/overview.wxss @@ -0,0 +1,29 @@ +/* pages/user/profile/index.wxss */ +.profile-item { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 30rpx; + color: #333; + height: 118rpx; + margin: 0 30rpx; + border-bottom: 1rpx solid #D8D8D8; + } + .profile-item text { + font-weight: 500; + flex-shrink: 0; + } + .profile-item .info { + flex: 1; + text-align: right; + } + .profile-item .iconfont { + flex-shrink: 0; + } + .profile-item .info image { + display: inline-block; + width: 80rpx; + height: 80rpx; + border-radius: 50%; + } + \ No newline at end of file diff --git a/subPackages/password/setting/setting.js b/subPackages/password/setting/setting.js new file mode 100644 index 0000000..4371f6b --- /dev/null +++ b/subPackages/password/setting/setting.js @@ -0,0 +1,238 @@ + +import util from "../../../utils/util.js" +import user from "../../../utils/https/user.js" +import https from "../../../utils/https.js" +var app = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + type:'add', + title: '', + + editConfrim: false, + vcode: '',//验证码内容 + isFoucs: true, + + inputData: { + phone: '', + code: '', + password: '', + confirmPassword: '', + }, + canSubmit: false, + + code:"", + buttonText:"获取验证码", + sendFlag:true, + regToken:null, + codeId:null, + + + isApproval: false + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.setData({ + type: options.type||'add', + title: options.type=='reset'?'忘记密码':options.type=='edit'?'修改密码':'设置支付密码', + editConfrim: options.type == 'edit'?true:false + }) + }, + + // 编辑输入原密码 + passwordChange: function (e) { + let val = e.detail.value + this.setData({ + vcode: val + }) + if (val.length==6) { + // 验证密码 + this.setData({editConfrim: false}) + } + }, + handleFoucs() { + this.setData({ + isFoucs: true + }) + }, + + // 输入框 + inputChange:function(e){ + let inputData = this.data.inputData + let keyname =e.currentTarget.dataset.keyname; + inputData[keyname] = e.detail.value + this.setData({ + inputData: inputData + }) + + let canSubmit = false + if (this.data.type == 'edit' && inputData.password && inputData.confirmPassword) { + canSubmit = true + } + if (this.data.type != 'edit' && inputData.phone && inputData.code && inputData.password && inputData.confirmPassword) { + canSubmit = true + } + this.setData({canSubmit: canSubmit}) + + }, + + // 获取验证码 + getCode:function(){ + // 如果已经在发送则不能继续发送验证码 + if (!this.data.sendFlag){ + return false; + } + if(!this.data.inputData.phone){ + wx.showToast({ + title: '请输入手机号', + icon:"none" + }) + return false; + } + if(!util.isTel(this.data.inputData.phone)){ + wx.showToast({ + title: '请输入正确的手机号码', + icon: "none" + }) + return false; + } + + // 获取验证码则需要改变按钮的文字 + this.setData({ + buttonText:"发送中...", + sendFlag:false + }) + let service = "user/getMobileCodeForChange",data={ + mobile:this.data.inputData.phone, + },api = user.user_post; + if(this.data.regToken){ + service="user/getMobileCodeForBind"; + data.openid = this.data.regToken + api = user._post + } + api(service, data).then(res=>{ + console.log('sendmsg',res) + if(res.code==1){ + // 发送成功 即接口调用成功 + this.setData({ + buttonText: "发送成功", + sendFlag: false, + codeId: res.data.id + }) + // 获取成功之后需要马上改变成倒计时 + let time = 59; + var timer = setInterval(() => { + // 倒计时结束需要重置可发送验证码状态和按钮文字 + if (time < 0) { + // 清除定时器 + clearInterval(timer) + this.setData({ + buttonText: "重新发送", + sendFlag: true + }) + return false; + } + this.setData({ + buttonText: time + "秒后重新发送" + }) + time--; + }, 1000) + } + else { + this.setData({ + buttonText: "重新发送", + sendFlag: true + }) + } + + }) + + }, + // 绑定 + submit:function(){ + if(!this.data.inputData.code){ + wx.showToast({ + title: '请输入验证码', + icon: "none" + }) + return false; + } + + let service = "user/changeMobile" + let data={smsCode:this.data.inputData.code,mobile:this.data.inputData.phone,smsCodeId:this.data.codeId} + let api = user.user_post; + if(this.data.regToken){ + service = "user/wxBindPhoneAndLogin" + data.openid = this.data.regToken + data.fromSource = "WECHATXCX" + if(app.globalData.category_id){ + data.category_id = app.globalData.category_id; + } + api = user._post + } + api(service,data).then(res=>{ + if(res.code==1){ + + setTimeout(()=>{ + wx.navigateBack({ + delta:1 + }) + },500) + // if(this.data.regToken){ + // https.set_logininfo(res); + // } + + } + }) + }, + + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + } +}) \ No newline at end of file diff --git a/subPackages/password/setting/setting.json b/subPackages/password/setting/setting.json new file mode 100644 index 0000000..b4c6fd2 --- /dev/null +++ b/subPackages/password/setting/setting.json @@ -0,0 +1,5 @@ +{ + "usingComponents": { + "title-header": "/pages/component/TitleHeader" + } + } \ No newline at end of file diff --git a/subPackages/password/setting/setting.wxml b/subPackages/password/setting/setting.wxml new file mode 100644 index 0000000..c7cca14 --- /dev/null +++ b/subPackages/password/setting/setting.wxml @@ -0,0 +1,50 @@ + + + + + + 输入支付密码 + + + + + + + + + + + + 手机号 + + + + 验证码 + + + + + + 修改支付密码 + + + + 设置支付密码 + + + + 输入新密码 + + + + + 再次填写密码 + + + + 确 定 + + + + \ No newline at end of file diff --git a/subPackages/password/setting/setting.wxss b/subPackages/password/setting/setting.wxss new file mode 100644 index 0000000..0d011b6 --- /dev/null +++ b/subPackages/password/setting/setting.wxss @@ -0,0 +1,91 @@ +/* pages/user/bindtel/index.wxss */ +.bind-box { + background: white; + } + .bind-item { + display: flex; + align-items: center; + justify-content: space-between; + margin: 0 20rpx; + height: 120rpx; + line-height: 120rpx; + font-size: 28rpx; + border-bottom: 1rpx solid #EEE; + } + .bind-item .weui-input { + flex: 1; + } + .bind-item-left { + width: 249rpx; + } + .bind-item image { + width: 200rpx; + height: 60rpx; + } + .btn { + margin:0rpx auto; + margin-top: 74rpx; + width: 697rpx; + height: 73rpx; + background: #D62829; + border-radius: 37rpx; + line-height: 73rpx; + font-weight: bold; + font-size: 35rpx; + color: #FFFFFF; + text-align: center; + } + .btn.disabled{ + background: #CCCCCC; + } + + .vaild-number{ + width: 197rpx !important; + height: 53rpx !important; + font-size: 27rpx !important; + color: #0C898F !important; + background: none !important; + line-height: 53rpx !important; + padding: 0 !important; + text-align: center; + border: 1px solid #0C898F; + border-radius: 27rpx; + font-weight: 500 !important; + } + + .edit-tip{ + padding: 66rpx 0; + text-align: center; + font-weight: bold; + font-size: 31rpx; + color: #000000; + } + .passward-box-container{ + width: 697rpx; + height: 93rpx; + margin: 0 auto; + position: relative; + border-radius: 7rpx; + border: 1px solid #999999; + display: flex; + box-sizing: border-box; + padding: 16rpx 0; + + } + .show-code{ + flex: 1; + height: 100%; + border-right: 1px solid #999999; + text-align: center; + font-size: 20rpx; + } + .show-code:last-of-type { + border: none; + } + .passward-box{ + width: 0; + height: 0; + border: none; + opacity: 0; + color: rgba(0,0,0,0); + } \ No newline at end of file