diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/income_payments_applet.iml b/.idea/income_payments_applet.iml new file mode 100644 index 0000000..0c8867d --- /dev/null +++ b/.idea/income_payments_applet.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6ddb636 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app.js b/app.js index 1ed57c4..da5348a 100644 --- a/app.js +++ b/app.js @@ -5,7 +5,22 @@ App({ const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) - + wx.setStorage({ + key:"key", + data:"登录过,存到了缓存flag,跳转首页" + }) + wx.getStorage({ + key: 'key', + success (res) {// 缓存中登录过,直接进小程序 + console.log(res.data) + wx.switchTab({ + url: 'pages/home/home', + }) + }, + fail: function(){ + // 缓存中没有登录过默认app.json的登录页 + } + }) // 登录 wx.login({ success: res => { diff --git a/app.json b/app.json index 9cf6286..9e4b118 100644 --- a/app.json +++ b/app.json @@ -1,40 +1,29 @@ { "pages":[ - "pages/notice/notice", - "pages/project/project", - "pages/meeting/meeting", + "pages/login/login", + "pages/home/home", "pages/mine/mine", "pages/index/index", - "pages/logs/logs" + "pages/logs/logs", + "pages/setPassword/setPassword" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", - "navigationBarTitleText": "Weixin", + "navigationBarTitleText": "", "navigationBarTextStyle":"black" }, "tabBar": { "selectedColor": "#08A09A", "color": "#999", "backgroundColor": "#fff", - "list": [ + "borderStyle": "white", + "list": [ { - "text": "消息", - "pagePath": "pages/notice/notice", - "iconPath": "./assets/images/notice.png", - "selectedIconPath": "./assets/images/notice-active.png" - }, - { - "text": "项目", - "pagePath": "pages/project/project", - "iconPath": "./assets/images/project.png", - "selectedIconPath": "./assets/images/project-active.png" - }, - { - "text": "会议", - "pagePath": "pages/meeting/meeting", - "iconPath": "./assets/images/meeting.png", - "selectedIconPath": "./assets/images/meeting-active.png" + "text": "首页", + "pagePath": "pages/home/home", + "iconPath": "./assets/images/home.png", + "selectedIconPath": "./assets/images/home-active.png" }, { "text": "我的", diff --git a/assets/css/common.wxss b/assets/css/common.wxss index fa062f5..dd1b5c9 100644 --- a/assets/css/common.wxss +++ b/assets/css/common.wxss @@ -767,4 +767,75 @@ color: #2A2A2A; bottom: 0; width: 100%; border-top: 10rpx solid #f6f8fc; +} +/* +* author: yaoyanan +* remark: 表单的基本样式 +*/ + +.form-box{ + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + padding: 10px; + box-sizing: border-box; +} +.form-item{ + display: flex; + width: 300px; + justify-content: center; + align-items: center; + height: 30px; +} +.form-item:not(:first-child){ + margin-top: 20px; +} +.form-item .text-label{ + width: 65px; + flex-shrink: 0; + text-align: right; + font-size: 16px; + color: #333; + margin-right: 15px; +} +.form-item .text-value{ + flex: 1; +} +.form-item .text-value .flex-center{ + display: flex; + align-items: center; + margin-right: 10px; +} +.form-item .text-value input{ + font-size: 12px; + color: #333; + border: 0.5px solid #eee; + height: 30px; + padding-left: 10px; + box-sizing: border-box; + border-radius: 5px; +} +.form-box .btn-area button{ + margin: auto; + width: 100%; + margin-top: 50px; +} +.form-item .captcha{ + width: 70px; + margin-left: 10px; + height: 30px; + background-color: #07c160; + color: #fff; + font-size: 12px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 5px; + padding: 5px; + box-sizing: border-box; +} +.form-item .count{ + background-color: #aaa; } \ No newline at end of file diff --git a/assets/images/contract.png b/assets/images/contract.png new file mode 100644 index 0000000..121215c Binary files /dev/null and b/assets/images/contract.png differ diff --git a/assets/images/data.png b/assets/images/data.png new file mode 100644 index 0000000..2888424 Binary files /dev/null and b/assets/images/data.png differ diff --git a/assets/images/fenbiaowei.png b/assets/images/fenbiaowei.png new file mode 100644 index 0000000..c4b4e91 Binary files /dev/null and b/assets/images/fenbiaowei.png differ diff --git a/assets/images/follow.png b/assets/images/follow.png new file mode 100644 index 0000000..57ced8c Binary files /dev/null and b/assets/images/follow.png differ diff --git a/assets/images/gongzuozu.png b/assets/images/gongzuozu.png new file mode 100644 index 0000000..33a9625 Binary files /dev/null and b/assets/images/gongzuozu.png differ diff --git a/assets/images/project-active.png b/assets/images/home-active.png similarity index 100% rename from assets/images/project-active.png rename to assets/images/home-active.png diff --git a/assets/images/home-bg.png b/assets/images/home-bg.png new file mode 100644 index 0000000..b89fd32 Binary files /dev/null and b/assets/images/home-bg.png differ diff --git a/assets/images/project.png b/assets/images/home.png similarity index 100% rename from assets/images/project.png rename to assets/images/home.png diff --git a/assets/images/huiyi.png b/assets/images/huiyi.png new file mode 100644 index 0000000..f570944 Binary files /dev/null and b/assets/images/huiyi.png differ diff --git a/assets/images/laikuan.png b/assets/images/laikuan.png new file mode 100644 index 0000000..5f61f78 Binary files /dev/null and b/assets/images/laikuan.png differ diff --git a/assets/images/location.png b/assets/images/location.png new file mode 100644 index 0000000..a321251 Binary files /dev/null and b/assets/images/location.png differ diff --git a/assets/images/meeting-active.png b/assets/images/meeting-active.png deleted file mode 100644 index 0335aa8..0000000 Binary files a/assets/images/meeting-active.png and /dev/null differ diff --git a/assets/images/meeting.png b/assets/images/meeting.png deleted file mode 100644 index abf0b5d..0000000 Binary files a/assets/images/meeting.png and /dev/null differ diff --git a/assets/images/mine-bg.png b/assets/images/mine-bg.png new file mode 100644 index 0000000..6f7fa41 Binary files /dev/null and b/assets/images/mine-bg.png differ diff --git a/assets/images/more.png b/assets/images/more.png new file mode 100644 index 0000000..989ce93 Binary files /dev/null and b/assets/images/more.png differ diff --git a/assets/images/notice-active.png b/assets/images/notice-active.png deleted file mode 100644 index 77b8ebd..0000000 Binary files a/assets/images/notice-active.png and /dev/null differ diff --git a/assets/images/notice.png b/assets/images/notice.png deleted file mode 100644 index d2fadab..0000000 Binary files a/assets/images/notice.png and /dev/null differ diff --git a/assets/images/personnel.png b/assets/images/personnel.png new file mode 100644 index 0000000..d070479 Binary files /dev/null and b/assets/images/personnel.png differ diff --git a/assets/images/setting.png b/assets/images/setting.png new file mode 100644 index 0000000..c241400 Binary files /dev/null and b/assets/images/setting.png differ diff --git a/assets/images/sign.png b/assets/images/sign.png new file mode 100644 index 0000000..e70b8c5 Binary files /dev/null and b/assets/images/sign.png differ diff --git a/assets/images/to-right.png b/assets/images/to-right.png new file mode 100644 index 0000000..17c52bb Binary files /dev/null and b/assets/images/to-right.png differ diff --git a/assets/images/toBottom.png b/assets/images/toBottom.png new file mode 100644 index 0000000..40e6f94 Binary files /dev/null and b/assets/images/toBottom.png differ diff --git a/assets/images/toTop.png b/assets/images/toTop.png new file mode 100644 index 0000000..23db271 Binary files /dev/null and b/assets/images/toTop.png differ diff --git a/assets/images/ziliao.png b/assets/images/ziliao.png new file mode 100644 index 0000000..81f2dd4 Binary files /dev/null and b/assets/images/ziliao.png differ diff --git a/assets/js/http/api.js b/assets/js/http/api.js index 1d2d495..9ccea87 100644 --- a/assets/js/http/api.js +++ b/assets/js/http/api.js @@ -2,7 +2,7 @@ import http from './http.js' // let baseUrl = 'https://share.hzwlsoft.com' // let baseUrl = 'http://localhost:8080' -let baseUrl = 'http://10.0.1.63:8080' +let baseUrl = 'http://192.168.18.133:8080' // let baseUrl = 'http://192.168.1.110:8080' /* 配置路径 */ diff --git a/assets/js/http/http.js b/assets/js/http/http.js index 59c9bfe..2d76833 100644 --- a/assets/js/http/http.js +++ b/assets/js/http/http.js @@ -6,7 +6,7 @@ let headerDefault1 = { 'content-type': 'application/x-www-form-urlencoded' } let TokenKey = 'X-Access-Token' -let baseUrl = 'http://10.0.1.63:8080' +let baseUrl = 'http://192.168.18.133:8080' // let baseUrl = 'http://localhost:8080' const http = (method, url, data, header= headerDefault) => { let Authorization = wx.getStorageSync(TokenKey) ? wx.getStorageSync(TokenKey) : ''; @@ -23,6 +23,7 @@ const http = (method, url, data, header= headerDefault) => { data: data, success: res => { console.log(res) + wx.hideLoading(); if (res.statusCode === 200) { // 接口请求错误的时候提示 if((res.data.code !== 200 && res.data.code !== 0) && (res.data.message)) { @@ -35,7 +36,6 @@ const http = (method, url, data, header= headerDefault) => { } // 200: 服务端业务处理正常结束 resolve(res.data) - wx.hideLoading(); } else { console.error(res.data); reject(res.data); diff --git a/assets/js/http/userApi.js b/assets/js/http/userApi.js index 1371539..d5c153e 100644 --- a/assets/js/http/userApi.js +++ b/assets/js/http/userApi.js @@ -1,17 +1,33 @@ import http from './http.js' -let URL_CONFIG = '/api/' +let URL_CONFIG = '/jero-boot/' const UserApi = { - // 登录 - login: (params) => http.post(`${URL_CONFIG}sys/login`, params), + // // 登录 + // login: (params) => http.post(`${URL_CONFIG}sys/login`, params), + // // 获得公钥 + // getRSAPublicKey: (params) => http.get(`${URL_CONFIG}sys/getRSAPublicKey`, params), + // // 图片的验证码 + // getImgCode: (params, urlParam) => http.get(`${URL_CONFIG}sys/randomImage/${urlParam}`, params), + // // 退出 + // logout: (params) => http.post(`${URL_CONFIG}sys/logout`, params), + // //修改密码 + // upDatePass:(params) => http.put(`${URL_CONFIG}sys/user/updatePassword`, params), + /** + * author: yaoyanan + * **/ // 获得公钥 getRSAPublicKey: (params) => http.get(`${URL_CONFIG}sys/getRSAPublicKey`, params), - // 图片的验证码 - getImgCode: (params, urlParam) => http.get(`${URL_CONFIG}sys/randomImage/${urlParam}`, params), - // 退出 - logout: (params) => http.post(`${URL_CONFIG}sys/logout`, params), - //修改密码 - upDatePass:(params) => http.put(`${URL_CONFIG}sys/user/updatePassword`, params), - + // 发送短信验证码 + sendCode: (params) => http.get(`${URL_CONFIG}company/sendVerificationCode`, params), + // 短信登录 + codeLogin: (params) => http.post(`${URL_CONFIG}company/smsLogin`, params), + // 设置密码 + setPassword: (params) => http.post(`${URL_CONFIG}company/changePassword`, params), + // 短信验证码修改密码 + updatePassword: (params) => http.post(`${URL_CONFIG}company/verificationChangePassword`, params), + // 个人信息 + mineInfo: (params) => http.get(`${URL_CONFIG}company/payContactsManagement/queryByIdMeeting`, params), + // 编辑个人信息提交 + editMineInfo: (params) => http.get(`${URL_CONFIG}company/payContactsManagement/companyEdit`, params), } export default UserApi \ No newline at end of file diff --git a/pages/notice/notice.js b/pages/committee/committee.js similarity index 96% rename from pages/notice/notice.js rename to pages/committee/committee.js index 0ba401f..3349a12 100644 --- a/pages/notice/notice.js +++ b/pages/committee/committee.js @@ -1,11 +1,11 @@ -// pages/notice/notice.js +// pages/meeting/meeting.js Page({ /** * 页面的初始数据 */ data: { - + }, /** diff --git a/pages/notice/notice.json b/pages/committee/committee.json similarity index 100% rename from pages/notice/notice.json rename to pages/committee/committee.json diff --git a/pages/committee/committee.wxml b/pages/committee/committee.wxml new file mode 100644 index 0000000..33f168c --- /dev/null +++ b/pages/committee/committee.wxml @@ -0,0 +1,4 @@ + + + 分标委 + diff --git a/pages/committee/committee.wxss b/pages/committee/committee.wxss new file mode 100644 index 0000000..94874ac --- /dev/null +++ b/pages/committee/committee.wxss @@ -0,0 +1,20 @@ +/* pages/meeting/meeting.wxss */ +.select-list { + height: 92rpx; + display: flex; + align-items: center; + background-color: #F5F5F5; +} + +.select-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.select-item image { + width: 21rpx; + height: 12rpx; + margin-left: 20rpx; +} \ No newline at end of file diff --git a/pages/data/data.js b/pages/data/data.js new file mode 100644 index 0000000..3349a12 --- /dev/null +++ b/pages/data/data.js @@ -0,0 +1,66 @@ +// pages/meeting/meeting.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/data/data.json b/pages/data/data.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/data/data.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/data/data.wxml b/pages/data/data.wxml new file mode 100644 index 0000000..11cc61d --- /dev/null +++ b/pages/data/data.wxml @@ -0,0 +1,4 @@ + + + 资料网员 + diff --git a/pages/data/data.wxss b/pages/data/data.wxss new file mode 100644 index 0000000..94874ac --- /dev/null +++ b/pages/data/data.wxss @@ -0,0 +1,20 @@ +/* pages/meeting/meeting.wxss */ +.select-list { + height: 92rpx; + display: flex; + align-items: center; + background-color: #F5F5F5; +} + +.select-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.select-item image { + width: 21rpx; + height: 12rpx; + margin-left: 20rpx; +} \ No newline at end of file diff --git a/pages/home/home.js b/pages/home/home.js new file mode 100644 index 0000000..20a4c59 --- /dev/null +++ b/pages/home/home.js @@ -0,0 +1,90 @@ +// pages/home/home.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + selectArr: [ + { path: '../../assets/images/laikuan.png', text: '来款项目' }, + { path: '../../assets/images/gongzuozu.png', text: '工作组' }, + { path: '../../assets/images/fenbiaowei.png', text: '分标委' }, + { path: '../../assets/images/huiyi.png', text: '会议活动' }, + { path: '../../assets/images/ziliao.png', text: '资料网员' }, + ] + }, + // 点击首页的五个选项跳转页面 + clickSelect(e){ + let index = e.currentTarget.dataset.index + let url = '' + if(index === 0) { // 来款项目 + url = '../project/project' + } else if(index === 1) { // 工作组 + url = '../work/work' + } else if(index === 2) { // 分标委 + url = '../committee/committee' + } else if(index === 3) { // 会议活动 + url = '../meeting/meeting' + } else{ // 资料网员 + url = '../data/data' + } + wx.navigateTo({ + url, + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/home/home.json b/pages/home/home.json new file mode 100644 index 0000000..965b8e8 --- /dev/null +++ b/pages/home/home.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/home/home.wxml b/pages/home/home.wxml new file mode 100644 index 0000000..c7771eb --- /dev/null +++ b/pages/home/home.wxml @@ -0,0 +1,17 @@ + + + + + + + + + + + + {{item.text}} + + + + + \ No newline at end of file diff --git a/pages/home/home.wxss b/pages/home/home.wxss new file mode 100644 index 0000000..2a513b4 --- /dev/null +++ b/pages/home/home.wxss @@ -0,0 +1,35 @@ +page{ + background-color: #F5F5F5; +} +.home-bg{ + height: 200pt; +} +.select-box{ + transform: translateY(-40pt); + padding: 0 15pt; +} +.select-box .select{ + height: 115pt; + background-color: #fff; + border-radius: 10px; + display: flex; + justify-content: space-around; + align-items: center; +} +.select-item{ + flex: 1; + font-size: 10pt; + color: #666666; + flex-direction: column; + display: flex; + justify-content: center; + align-items: center; +} +.image-box{ + width: 45px; + height: 45px; + margin-bottom: 10px; +} +.image-box image{ + max-height: 100%; +} diff --git a/pages/login/login.js b/pages/login/login.js new file mode 100644 index 0000000..c549268 --- /dev/null +++ b/pages/login/login.js @@ -0,0 +1,148 @@ +// pages/mine/mine.js +import UserApi from '../../assets/js/http/userApi' +import {JSEncrypt} from '../../assets/js/jsencrypt/jsencrypt' +var countdown = 60; // 倒计时秒数 +Page({ + data: { + phone: '', + captcha: '', + count: 60, + rsaPublicKey: '', + showGetCaptcha: true + }, + + bindInputPhone(e) { + this.setData({ + phone: e.detail.value + }) + }, + // 获取验证码 + getVerCode() { + if (/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(this.data.phone)) { + UserApi.sendCode({ + phone: this.data.phone + }).then(res => { + // 获取成功,倒计时 start + if (res.success) { + this.countDown() + } else { + wx.showToast({ + title: '获取验证码失败', + icon: 'error', + duration: 2000 + }) + } + }) + } else { + wx.showToast({ + title: '请输入正确的手机号', + icon: 'none', + duration: 2000 + }) + } + }, + // 倒计时 + countDown(){ + if (countdown === 0) { + this.setData({ + showGetCaptcha: true + }) + countdown = 60; + return; + } else { + this.setData({ + showGetCaptcha: false + }) + countdown--; + this.setData({ + count: countdown + }) + } + setTimeout(() => { + this.countDown() + }, 1000) + // 倒计时 end + }, + // 登录 + formSubmit(e) { + console.log('form发生了submit事件,携带数据为:', e.detail.value) + if (e.detail.value.phone && e.detail.value.captcha) { + wx.showLoading({ + title: '正在登录...', + icon: 'loading' + }) + // 新建JSEncrypt对象 + let encrypt = new JSEncrypt() + encrypt.setPublicKey(this.data.rsaPublicKey) // 公钥加密 + let params = { + username: encrypt.encrypt(e.detail.value.phone), // 手机号加密 + captcha: e.detail.value.captcha, + rsaPublicKey: this.data.rsaPublicKey + } + // 请求短信登录start + UserApi.codeLogin(params).then(res => { + if (res.success) { + wx.hideLoading() + } else { + wx.hideLoading() + wx.showToast({ + title: '登录失败', + icon: 'error', + duration: 2000 + }) + } + }) + // 登录失败 + } else { + wx.showToast({ + title: '请输入正确的验证码', + icon: 'none', + duration: 2000 + }) + wx.navigateTo({ + url: '../setPassword/setPassword', + }) + } + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + UserApi.getRSAPublicKey().then(res => { + if (res.success) { + this.setData({ + rsaPublicKey: res.result + }) + } + }) + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + } +}) \ No newline at end of file diff --git a/pages/login/login.json b/pages/login/login.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/login/login.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/login/login.wxml b/pages/login/login.wxml new file mode 100644 index 0000000..58c08e9 --- /dev/null +++ b/pages/login/login.wxml @@ -0,0 +1,21 @@ + +
+ + 手机号 + + + + + + 验证码 + + + + 获取验证码 + {{count}} + + + + +
+
\ No newline at end of file diff --git a/pages/login/login.wxss b/pages/login/login.wxss new file mode 100644 index 0000000..2779408 --- /dev/null +++ b/pages/login/login.wxss @@ -0,0 +1,8 @@ +page { + overflow-x: hidden; + width: 100%; + color: #333; +} +.form-box{ + transform: translateY(100%); +} \ No newline at end of file diff --git a/pages/meeting/meeting.js b/pages/meeting/meeting.js index cec7b0d..ea1ac9f 100644 --- a/pages/meeting/meeting.js +++ b/pages/meeting/meeting.js @@ -5,7 +5,23 @@ Page({ * 页面的初始数据 */ data: { - + selects: [ // 自定义选择框参数 + { + select: '状态', + active: false, + tabIndex: 1 + }, + { + select: '会议类型', + active: false, + tabIndex: 2 + }, + { + select: '时间', + active: false, + tabIndex: 3 + } + ] }, /** diff --git a/pages/meeting/meeting.wxml b/pages/meeting/meeting.wxml index e974447..d1d3023 100644 --- a/pages/meeting/meeting.wxml +++ b/pages/meeting/meeting.wxml @@ -1,2 +1,24 @@ -pages/meeting/meeting.wxml + + + {{select.select}} + + + + + + + + 项目名称文字占位符项目名称文字占位符项目名称文字占位符 + 2021-12-12 + + + + 标协会议 + + + + 天津市河西区华鼎大厦502会议室 + + + diff --git a/pages/meeting/meeting.wxss b/pages/meeting/meeting.wxss index 572c3b8..055ad53 100644 --- a/pages/meeting/meeting.wxss +++ b/pages/meeting/meeting.wxss @@ -1 +1,75 @@ -/* pages/meeting/meeting.wxss */ \ No newline at end of file +/* pages/meeting/meeting.wxss */ +page { + background-color: #F5F5F5; +} +/* 头部筛选 start */ +.select-list { + border-top: 0.5px solid #F5F5F5; + height: 40px; + font-size: 14px; + display: flex; + align-items: center; + background-color: #fff; +} + +.select-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.select-item image { + width: 11px; + height: 6px; + margin-left: 9px; +} +/* 头部筛选end */ +/* 列表start */ +.list{ + padding: 15px; +} +.list-item{ + height: 90px; + background-color: #fff; + border-radius: 5px; + padding: 10px 15px; + display: flex; + justify-content: space-around; + align-items: center; + flex-direction: column; +} +.list-item:not(:first-child) { + margin-top: 10px; +} +.list-item .title{ + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; +} +.list-item .title text:nth-child(1){ + font-size: 14px; + color: #333; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.list-item .title text:nth-child(2){ + font-size: 12px; + color: #999; + width: 70px; + text-align: right; + flex-shrink: 0; +} +.content-text{ + width: 100%; + color: #999; + font-size: 12px; +} +.content-text image{ + width: 11px; + height: 11px; + margin-right: 10px; +} \ No newline at end of file diff --git a/pages/mine/mine.js b/pages/mine/mine.js index 607f4f2..028a99e 100644 --- a/pages/mine/mine.js +++ b/pages/mine/mine.js @@ -5,9 +5,30 @@ Page({ * 页面的初始数据 */ data: { - + + }, + // 修改密码 + upDateInfo(){ + wx.navigateTo({ + url: '../upDateInfo/upDateInfo', + }) + }, + // 个人信息 + mineInfo(){ + wx.navigateTo({ + url: '../mineInfo/mineInfo', + }) + }, + // 扫码签到 + scanCode(){ + wx.scanCode({ + onlyFromCamera: false, + scanType: [], + success: (result) => {}, + fail: (res) => {}, + complete: (res) => {}, + }) }, - /** * 生命周期函数--监听页面加载 */ diff --git a/pages/mine/mine.json b/pages/mine/mine.json index 8835af0..965b8e8 100644 --- a/pages/mine/mine.json +++ b/pages/mine/mine.json @@ -1,3 +1,4 @@ { - "usingComponents": {} + "usingComponents": {}, + "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/mine/mine.wxml b/pages/mine/mine.wxml index d236877..2d0b9b0 100644 --- a/pages/mine/mine.wxml +++ b/pages/mine/mine.wxml @@ -1,2 +1,77 @@ -pages/mine/mine.wxml + + + + + + + + + 昵称 + 185-2207-4910 + + + + + + 412 + 我的项目 + + + 2 + 我的会议 + + + + + + + 我的服务 + + + + 个人信息 + + + + + + + 修改密码 + + + + + + + 扫码签到 + + + + + + + 我的资料 + + + + + + + 我的合同 + + + + + + + 设置 + + + + + + + 退出登录 + + \ No newline at end of file diff --git a/pages/mine/mine.wxss b/pages/mine/mine.wxss index 91eea05..c9069b1 100644 --- a/pages/mine/mine.wxss +++ b/pages/mine/mine.wxss @@ -1 +1,125 @@ -/* pages/mine/mine.wxss */ \ No newline at end of file +/* pages/mine/mine.wxss */ +page{ + background-color: #F5F5F5; +} +.mine-bg{ + height: 200pt; +} +.select-box{ + transform: translateY(-100pt); + padding: 0 15pt; +} +.select-box .avator{ + height: 68px; + width: 100%; + display: flex; + align-items: center; + margin-bottom: 10px; +} +.select-box .avator image:nth-child(1){ + width: 68px; + height: 68px; + background-color: #333; + border-radius: 50%; + margin-right: 20px; +} +.select-box .avator .info{ + flex: 1; + display: flex; + height: 68px; + flex-direction: column; + justify-content: space-around; +} +.avator .info text:nth-child(1){ + color: #fff; + font-size: 18px; +} +.avator .info text:nth-child(2){ + color: #fff; + font-size: 11px; + width: 100px; + height: 18px; + background-color: rgba(255,255,255,0.3); + line-height: 18px; + text-align: center; + border-radius: 9px; +} +.select-box .avator image:nth-child(3){ + width: 35px; + height: 35px; +} +.select-box .select{ + height: 90pt; + background-color: #fff; + border-radius: 10px; + display: flex; + justify-content: space-around; + align-items: center; +} +.select-item{ + flex: 1; + height: 60pt; + font-size: 10pt; + color: #666666; + flex-direction: column; + display: flex; + justify-content: space-around; + align-items: center; +} +.select-item text:nth-child(1){ + color: #333; + font-size: 24px; +} +.select-item text:nth-child(2){ + color: #333; + font-size: 12px; +} +/* 个人信息选项栏 */ +.list-info{ + margin-top: -100pt; + padding: 15pt; +} +.list-info .title{ + font-size: 16px; + font-weight: 500; +} +.list-info .info-content{ + padding: 0 15pt 0 15pt; + background-color: #fff; + border-radius: 10px; +} +.info-content .list-item{ + height: 45px; + display: flex; + justify-content: space-between; + align-items: center; +} +.list-item .item-title{ + color: #333; + font-size: 15px; + display: flex; + align-items: center; +} +.info-content .list-item image:nth-child(1){ + width: 18px; + height: 18px; + margin-right: 10px; +} +.info-content .list-item image:nth-child(2){ + width: 6px; + height: 10px; +} +.logout{ + padding: 0 15px; + margin-top: 10px; +} +.logout text{ + display: flex; + justify-content: center; + align-items: center; + height: 45px; + background-color: #fff; + border-radius: 5px; + font-size: 13px; + color: #069F99; +} \ No newline at end of file diff --git a/pages/notice/notice.wxml b/pages/notice/notice.wxml deleted file mode 100644 index a87c7ae..0000000 --- a/pages/notice/notice.wxml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/pages/notice/notice.wxss b/pages/notice/notice.wxss deleted file mode 100644 index 947b40e..0000000 --- a/pages/notice/notice.wxss +++ /dev/null @@ -1 +0,0 @@ -/* pages/notice/notice.wxss */ \ No newline at end of file diff --git a/pages/project/project.js b/pages/project/project.js index 7abe794..3349a12 100644 --- a/pages/project/project.js +++ b/pages/project/project.js @@ -1,11 +1,11 @@ -// pages/project/project.js +// pages/meeting/meeting.js Page({ /** * 页面的初始数据 */ data: { - + }, /** diff --git a/pages/project/project.wxml b/pages/project/project.wxml index 8a1cb4c..d29988a 100644 --- a/pages/project/project.wxml +++ b/pages/project/project.wxml @@ -1,2 +1,4 @@ - -pages/project/project.wxml + + + 来款项目 + diff --git a/pages/project/project.wxss b/pages/project/project.wxss index abac20b..94874ac 100644 --- a/pages/project/project.wxss +++ b/pages/project/project.wxss @@ -1 +1,20 @@ -/* pages/project/project.wxss */ \ No newline at end of file +/* pages/meeting/meeting.wxss */ +.select-list { + height: 92rpx; + display: flex; + align-items: center; + background-color: #F5F5F5; +} + +.select-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.select-item image { + width: 21rpx; + height: 12rpx; + margin-left: 20rpx; +} \ No newline at end of file diff --git a/pages/setPassword/setPassword.js b/pages/setPassword/setPassword.js new file mode 100644 index 0000000..7a8c091 --- /dev/null +++ b/pages/setPassword/setPassword.js @@ -0,0 +1,161 @@ +// pages/meeting/meeting.js +import UserApi from '../../assets/js/http/userApi' +import {JSEncrypt} from '../../assets/js/jsencrypt/jsencrypt' +Page({ + /** + * 页面的初始数据 + */ + data: { + newPassword: '', + verifyPassword: '', + rsaPublicKey: '', + flag: false + }, + bindBlurInput(e){ + + }, + // 登录 + formSubmit(e) { + if(!e.detail.value.newPassword){ + this.data.flag = false + wx.showToast({ + title: '请输入密码', + icon: 'none' + }) + return + } else { + let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/ + if(!pattern.test(e.detail.value.newPassword)){ + wx.showToast({ + title: '密码由8位数字、大小写字母和特殊符号组成!!', + icon: 'none' + }) + this.data.flag = false + return + } else { + this.data.flag = true + } + } + if(!e.detail.value.verifyPassword){ + this.data.flag = false + wx.showToast({ + title: '请输入确认密码', + icon: 'none' + }) + return + } else { + let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/ + if(!pattern.test(e.detail.value.verifyPassword)){ + wx.showToast({ + title: '密码由8位数字、大小写字母和特殊符号组成!!', + icon: 'none' + }) + this.data.flag = false + return + } else { + this.data.flag = true + } + } + if(e.detail.value.newPassword === e.detail.value.verifyPassword) { + this.data.flag = true + } else { + this.data.flag = false + wx.showToast({ + title: '密码不一致', + icon: 'none' + }) + return + } + if (this.data.flag) { + wx.showLoading({ + title: '正在登录...', + icon: 'loading' + }) + // 新建JSEncrypt对象 + let encrypt = new JSEncrypt() + encrypt.setPublicKey(this.data.rsaPublicKey) // 公钥加密 + let params = { + newPassword: encrypt.encrypt(e.detail.value.newPassword), + verifyPassword: encrypt.encrypt(e.detail.value.verifyPassword), + rsaPublicKey: this.data.rsaPublicKey + } + console.log('form发生了submit事件,携带数据为:', e.detail.value) + // 请求短信登录start + UserApi.setPassword(params).then(res => { + console.log(res) + if (res.success) { + wx.hideLoading() + } else { + wx.hideLoading() + wx.showToast({ + title: '登录失败', + icon: 'error', + duration: 2000 + }) + } + }) + // 登录失败 + } + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + UserApi.getRSAPublicKey().then(res => { + if (res.success) { + this.setData({ + rsaPublicKey: res.result + }) + } + }) + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/setPassword/setPassword.json b/pages/setPassword/setPassword.json new file mode 100644 index 0000000..4b49919 --- /dev/null +++ b/pages/setPassword/setPassword.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "设置密码", + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/setPassword/setPassword.wxml b/pages/setPassword/setPassword.wxml new file mode 100644 index 0000000..f80932f --- /dev/null +++ b/pages/setPassword/setPassword.wxml @@ -0,0 +1,21 @@ + + + 初次登录请设置密码 +
+ + 密码 + + + + + + 确认密码 + + + + + + + +
+
\ No newline at end of file diff --git a/pages/setPassword/setPassword.wxss b/pages/setPassword/setPassword.wxss new file mode 100644 index 0000000..4d8b27a --- /dev/null +++ b/pages/setPassword/setPassword.wxss @@ -0,0 +1,18 @@ +/* pages/meeting/meeting.wxss */ +page { + overflow: hidden; + width: 100%; + color: #333; +} +.form-box{ + transform: translateY(100%); +} +.set-password{ + display: block; + font-size: 16px; + color: #333; + width: 100%; + text-align: center; + margin-bottom: 20px; + letter-spacing: 0.5px; +} diff --git a/pages/upDateInfo/upDateInfo.js b/pages/upDateInfo/upDateInfo.js new file mode 100644 index 0000000..4d62d13 --- /dev/null +++ b/pages/upDateInfo/upDateInfo.js @@ -0,0 +1,218 @@ +// pages/meeting/meeting.js +import UserApi from '../../assets/js/http/userApi' +import { + JSEncrypt +} from '../../assets/js/jsencrypt/jsencrypt' +var countdown = 60; // 倒计时秒数 + +Page({ + + /** + * 页面的初始数据 + */ + data: { + form: { + phone: '', // 手机号 + verifyCode: '', // 验证码 + newPassword: '', // 新密码 + verifyPassword: '', // 确认密码 + count: 60, // 倒计时秒 + rsaPublicKey: '', // 公钥 + }, + showGetCaptcha: true + }, + // 获取验证码 + getVerCode() { + if (/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(this.data.phone)) { + UserApi.sendCode({ + phone: this.data.phone + }).then(res => { + // 获取成功,倒计时 start + if (res.success) { + this.countDown() + } else { + wx.showToast({ + title: '获取验证码失败', + icon: 'error', + duration: 2000 + }) + } + }) + } else { + wx.showToast({ + title: '请输入正确的手机号', + icon: 'none', + duration: 2000 + }) + } + }, + // 倒计时 + countDown() { + if (countdown === 0) { + this.setData({ + showGetCaptcha: true + }) + countdown = 60; + return; + } else { + this.setData({ + showGetCaptcha: false + }) + countdown--; + this.setData({ + count: countdown + }) + } + setTimeout(() => { + this.countDown() + }, 1000) + // 倒计时 end + }, + // 提交 + formSubmit(e) { + if(!e.detail.value.newPassword){ + this.data.flag = false + wx.showToast({ + title: '请输入密码', + icon: 'none' + }) + return + } else { + let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/ + if(!pattern.test(e.detail.value.newPassword)){ + wx.showToast({ + title: '密码由8位数字、大小写字母和特殊符号组成!!', + icon: 'none' + }) + this.data.flag = false + return + } else { + this.data.flag = true + } + } + if(!e.detail.value.verifyPassword){ + this.data.flag = false + wx.showToast({ + title: '请输入确认密码', + icon: 'none' + }) + return + } else { + let pattern = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,}$/ + if(!pattern.test(e.detail.value.verifyPassword)){ + wx.showToast({ + title: '密码由8位数字、大小写字母和特殊符号组成!!', + icon: 'none' + }) + this.data.flag = false + return + } else { + this.data.flag = true + } + } + if(e.detail.value.newPassword === e.detail.value.verifyPassword) { + this.data.flag = true + } else { + this.data.flag = false + wx.showToast({ + title: '密码不一致', + icon: 'none' + }) + return + } + console.log('form发生了submit事件,携带数据为:', e.detail.value) + // 新建JSEncrypt对象 + let encrypt = new JSEncrypt() + encrypt.setPublicKey(this.data.rsaPublicKey) // 公钥加密 + let params = { + phone: encrypt.encrypt(e.detail.value.phone), + verifyCode: e.detail.value.verifyCode, + newPassword: encrypt.encrypt(e.detail.value.newPassword), + verifyPassword: encrypt.encrypt(e.detail.value.verifyPassword) + } + UserApi.updatePassword(params).then(res => { + console.log(res) + wx.hideToast() + }).catch(err => { + wx.hideToast() + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + // 性别处理 + if (this.data.form.gender === '1') { + this.data.sexArr[0].checked = "true" + this.setData({ + sexArr: this.data.sexArr, + }) + console.log(this.data.sexArr) + } + if (this.data.form.gender === '2') { + this.data.sexArr[1].checked = "true" + this.setData({ + sexArr: this.data.sexArr, + }) + console.log(2) + } + let params = { + id: wx.getStorage('id') // 用户id + } + UserApi.mineInfo(params).then(res => { + console.log(res) + wx.hideToast() + }).catch(err => { + wx.hideToast() + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/upDateInfo/upDateInfo.json b/pages/upDateInfo/upDateInfo.json new file mode 100644 index 0000000..8e70e9e --- /dev/null +++ b/pages/upDateInfo/upDateInfo.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "修改密码", + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/upDateInfo/upDateInfo.wxml b/pages/upDateInfo/upDateInfo.wxml new file mode 100644 index 0000000..85fc705 --- /dev/null +++ b/pages/upDateInfo/upDateInfo.wxml @@ -0,0 +1,34 @@ + + +
+ + 手机号 + + + + + + 验证码 + + + + 获取验证码 + {{count}} + + + 密码 + + + + + + 确认密码 + + + + + + + +
+
diff --git a/pages/upDateInfo/upDateInfo.wxss b/pages/upDateInfo/upDateInfo.wxss new file mode 100644 index 0000000..3c2b3ac --- /dev/null +++ b/pages/upDateInfo/upDateInfo.wxss @@ -0,0 +1,4 @@ +/* pages/meeting/meeting.wxss */ +.form-box{ + transform: translateY(110pt); +} \ No newline at end of file diff --git a/pages/work/work.js b/pages/work/work.js new file mode 100644 index 0000000..3349a12 --- /dev/null +++ b/pages/work/work.js @@ -0,0 +1,66 @@ +// pages/meeting/meeting.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/work/work.json b/pages/work/work.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/work/work.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/work/work.wxml b/pages/work/work.wxml new file mode 100644 index 0000000..0ae85f2 --- /dev/null +++ b/pages/work/work.wxml @@ -0,0 +1,4 @@ + + + 工作组 + diff --git a/pages/work/work.wxss b/pages/work/work.wxss new file mode 100644 index 0000000..94874ac --- /dev/null +++ b/pages/work/work.wxss @@ -0,0 +1,20 @@ +/* pages/meeting/meeting.wxss */ +.select-list { + height: 92rpx; + display: flex; + align-items: center; + background-color: #F5F5F5; +} + +.select-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.select-item image { + width: 21rpx; + height: 12rpx; + margin-left: 20rpx; +} \ No newline at end of file diff --git a/project.config.json b/project.config.json index f4917f0..04f042f 100644 --- a/project.config.json +++ b/project.config.json @@ -4,7 +4,7 @@ "ignore": [] }, "setting": { - "urlCheck": true, + "urlCheck": false, "es6": true, "enhance": true, "postcss": true, @@ -24,7 +24,7 @@ "lazyloadPlaceholderEnable": false, "useMultiFrameRuntime": true, "useApiHook": true, - "useApiHostProcess": false, + "useApiHostProcess": true, "babelSetting": { "ignore": [], "disablePlugins": [], @@ -36,12 +36,13 @@ "packNpmManually": false, "packNpmRelationList": [], "minifyWXSS": true, + "disableUseStrict": false, "showES6CompileOption": false, - "bundle": false + "useCompilerPlugins": false }, "compileType": "miniprogram", "libVersion": "2.19.0", - "appid": "wx62b116308b97d953", + "appid": "wx24914e866df035fb", "projectname": "income_payments_applet", "debugOptions": { "hidedInDevtools": []