diff --git a/wechat/miniprogram/API/request.js b/wechat/miniprogram/API/request.js index 0ef5c075..33282746 100644 --- a/wechat/miniprogram/API/request.js +++ b/wechat/miniprogram/API/request.js @@ -2,8 +2,6 @@ // const baseURL = 'http://106.38.203.210:81/prod-api'; const baseURL = 'http://106.12.9.213:80/prod-api'; - - const requestApi = ( url, params={} ) => { const token = wx.getStorageSync('token'); return new Promise((resolve,reject) => { diff --git a/wechat/miniprogram/app.json b/wechat/miniprogram/app.json index bf684ede..4d985814 100644 --- a/wechat/miniprogram/app.json +++ b/wechat/miniprogram/app.json @@ -10,7 +10,8 @@ "pages/add/index", "pages/4Gswitch/index", "pages/add4G/index", - "pages/addWiFi/index" + "pages/addWiFi/index", + "pages/register/index" ], "window": { "backgroundColor": "#F6F6F6", diff --git a/wechat/miniprogram/icons/down.png b/wechat/miniprogram/icons/down.png new file mode 100644 index 00000000..844c5207 Binary files /dev/null and b/wechat/miniprogram/icons/down.png differ diff --git a/wechat/miniprogram/icons/scand.png b/wechat/miniprogram/icons/scand.png new file mode 100644 index 00000000..8bc3272b Binary files /dev/null and b/wechat/miniprogram/icons/scand.png differ diff --git a/wechat/miniprogram/pages/add4G/index.js b/wechat/miniprogram/pages/add4G/index.js index ea8104cb..6f8c2d8a 100644 --- a/wechat/miniprogram/pages/add4G/index.js +++ b/wechat/miniprogram/pages/add4G/index.js @@ -1,11 +1,43 @@ // miniprogram/pages/add4G/index.js + +const addOptions = { + "categoryId": 0, + "categoryName": "", + "createBy": "", + "createTime": "", + "delFlag": "", + "deviceId": 0, + "deviceName": "", + "deviceNum": "", + "deviceTemp": 0, + "firmwareVersion": "", + "groupId": 0, + "ownerId": "", + "params": {}, + "remark": "", + "searchValue": "", + "updateBy": "", + "updateTime": "" +} Page({ /** * 页面的初始数据 */ data: { - + imei:'', + remark:'', + deviceName:'', + firmwareVersion:'1.0', + show:false,//控制下拉列表的显示隐藏,false隐藏、true显示 + selectData:[ + { categoryId:1, categoryName:'WiFi通断器' }, + { categoryId:2, categoryName:'智能灯' }, + { categoryId:3, categoryName:'智能门锁' }, + { categoryId:4, categoryName:'智能水阀' }, + { categoryId:5, categoryName:'其它' }, + ],//下拉列表的数据 + selectedIndex:0//选择的下拉列表下标 }, /** @@ -14,53 +46,88 @@ Page({ onLoad: function (options) { }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - + selectTap(){ + this.setData({ + show: !this.data.show + }); + }, + optionTap(e){ + const { index } = e.currentTarget.dataset; + this.setData({ + selectedIndex:index, + show:false + }) + }, + scand(){ + const that = this; + wx.scanCode({ + scanType:['barCode', 'qrCode'], + success(res){ + that.setData({ + imei:res.result + }) + } + }) + }, + inputRemark(e){ + this.setData({ + remark:e.detail.value + }) + }, + inputDeviceName(e){ + this.setData({ + deviceName:e.detail.value + }) + }, + inputImei(e){ + this.setData({ + imei:e.detail.value + }) }, - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { + submit(){ + let imei = this.data.imei; + let remark = this.data.remark; + let deviceName = this.data.deviceName; + let firmwareVersion = this.data.firmwareVersion; + let selectedIndex = this.data.selectedIndex; + let selectData = this.data.selectData; + if ((imei.trim() === '') || (deviceName.trim() === '')) { + wx.showToast({ + title: '输入必填数据', + icon:'error', + mask:true + }) + return; + }else{ + wx.showLoading({ + title: '正在添加', + }); - }, + let options = addOptions; + options.firmwareVersion = firmwareVersion; + options.deviceNum = imei; + options.deviceName = deviceName; + options.remark = remark; + options.categoryId = selectData[selectedIndex].categoryId; - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { + wx.request({ + url: 'http://localhost/dev-api/system/device', + method:'POST', + data:options, + header:{ + "Authorization":wx.getStorageSync('token') + }, + complete(){ + wx.hideLoading(); + }, + success(res){ + console.log(res); + } + }) + } + } + }) \ No newline at end of file diff --git a/wechat/miniprogram/pages/add4G/index.wxml b/wechat/miniprogram/pages/add4G/index.wxml index 43ebd9e2..a99e56e7 100644 --- a/wechat/miniprogram/pages/add4G/index.wxml +++ b/wechat/miniprogram/pages/add4G/index.wxml @@ -2,16 +2,66 @@ - + + 添加4G设备 - + + + * + IMEI: + + + + + + + + + * + 设备名称: + + + + + + + + 固件版本: + + {{ firmwareVersion }} + + + + * + 设备分类: + + + + + + + {{ item.categoryName }} + + + + + + + 备注: + + + + + + - + 提 交 - \ No newline at end of file diff --git a/wechat/miniprogram/pages/add4G/index.wxss b/wechat/miniprogram/pages/add4G/index.wxss index 3e3dd7ba..af8bf561 100644 --- a/wechat/miniprogram/pages/add4G/index.wxss +++ b/wechat/miniprogram/pages/add4G/index.wxss @@ -1,34 +1,74 @@ /* miniprogram/pages/add4G/index.wxss */ -.top{ - margin: 100rpx auto 30rpx; + .top{ + margin: 60rpx auto 0rpx; } .title{ font-size: 42rpx; text-align: center; - margin-bottom: 30rpx; -} -label{ - display:flex; - align-items:center; - padding:30rpx 0; - border-bottom:2rpx solid #bfbfbf; -} -.icon{ - width:40rpx; - height:40rpx; - display:flex; - align-items:center; - justify-content:center; -} -input{ - padding:15rpx 30rpx; - flex:1 -} -.account{ - width:80vw; - margin:0 auto; + margin-bottom: 45rpx; } .btn { margin: 60rpx auto; width: 50vw; +} + + +.biaodan{ + width: 90vw; + margin: 0 auto; + padding: 15rpx; +} +.item{ + display: flex; + align-items: center; + margin: 30rpx auto; +} +.name{ + width: 180rpx; + text-align: end; +} +.flag{ + display:inline-block; + color:red; + width:32rpx; + text-align: center; +} +.input{ + box-shadow: 0 0 3rpx 2rpx #bfbfbf; + flex: 1; + display: flex; + align-items: center; + position: relative; +} +.input>input{ + padding: 15rpx 30rpx; + flex: 1; +} + +.input>image{ + width: 60rpx; + height: 60rpx; + transition:transform 0.3s; +} +.input:hover{ + box-shadow: 0 0 3rpx 2rpx blue; +} +.select_box{ + position: absolute; + width: 100%; + top: 100%; + background-color: #ffffff; + box-shadow: 0 0 3rpx 2rpx #bfbfbf; + transition:height 0.3s; + box-sizing: border-box; + height: 0; + overflow-y: auto; + z-index: 99; +} +.select_item{ + padding: 15rpx 30rpx; + /* box-shadow: 0 0 3rpx 2rpx #bfbfbf; */ +} +.select_img_rotate{ + transform:rotate(180deg); } \ No newline at end of file diff --git a/wechat/miniprogram/pages/index/index.js b/wechat/miniprogram/pages/index/index.js index b8eb45db..18fa14fb 100644 --- a/wechat/miniprogram/pages/index/index.js +++ b/wechat/miniprogram/pages/index/index.js @@ -27,8 +27,6 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad: function (options) { - // this.getProducts(); - // this.query(); // timer = setInterval(() => { this.getDevices(); // }, 2000); @@ -41,8 +39,18 @@ Page({ mask: true }) const res = await requestApi('/system/device/list',{ method:'GET' }); - console.log(res); + wx.hideLoading(); const result = JSON.parse(res.result); + if (result.code !== 200) { + wx.showToast({ + title: '请求失败', + icon:'error' + }); + return; + } + wx.showToast({ + title: '请求成功', + }); let onlineList = []; let unlineList = []; result.rows.forEach(v=>{ @@ -57,11 +65,9 @@ Page({ unlineList, DeviceList:result.rows }) - wx.hideLoading() }, - //获取天气 getWeather:async function(){ let that = this; diff --git a/wechat/miniprogram/pages/login/index.js b/wechat/miniprogram/pages/login/index.js index 115ca2cb..73672e50 100644 --- a/wechat/miniprogram/pages/login/index.js +++ b/wechat/miniprogram/pages/login/index.js @@ -22,46 +22,81 @@ Page({ }, //获取验证码图片和uuid - async getCaptchaImage(){ - const res = await loginApi('/captchaImage',{ method:'get' }); - const data = JSON.parse(res.result) - this.setData({ - img:data.img, - uuid:data.uuid + // async getCaptchaImage(){ + // const res = await loginApi('/captchaImage',{ method:'get' }); + // const data = JSON.parse(res.result) + // this.setData({ + // img:data.img, + // uuid:data.uuid + // }) + // }, + + //测试接口 + getCaptchaImage(){ + const that = this; + wx.request({ + url: 'http://localhost/dev-api/captchaImage', + success(res){ + that.setData({ + img:res.data.img, + uuid:res.data.uuid + }) + console.log(res); + } }) }, - //登录 async submit(){ - wx.showLoading({ - title: '正在登录', - }) - const res = await loginApi('/login',{ + // wx.showLoading({ + // title: '正在登录', + // }) + // const res = await loginApi('/login',{ + // method:'POST', + // body:{ + // code:this.data.value, + // uuid:this.data.uuid, + // password: this.data.password, + // username: this.data.username + // }, + // json:true + // }) + // wx.hideLoading(); + // if (res.result.code !== 200) { + // wx.showToast({ + // title: res.result.msg, + // icon:'error' + // }); + // this.getCaptchaImage(); + // return; + // } + // wx.setStorageSync('token', res.result.token); + // wx.switchTab({ + // url: '/pages/index/index', + // }) + + wx.request({ + url: 'http://localhost/dev-api/login', method:'POST', - body:{ + data:{ code:this.data.value, uuid:this.data.uuid, password: this.data.password, username: this.data.username }, - json:true - }) - wx.hideLoading(); - if (res.result.code !== 200) { - wx.showToast({ - title: res.result.msg, - icon:'error' - }); - this.getCaptchaImage(); - return; - } - wx.setStorageSync('token', res.result.token); - wx.switchTab({ - url: '/pages/index/index', + success(res){ + console.log(res); + wx.setStorageSync('token', res.data.token); + } }) }, + // + register(){ + wx.navigateTo({ + url: '/pages/register/index', + }) + }, inputUsername(e){ this.setData({ username:e.detail }); diff --git a/wechat/miniprogram/pages/login/index.wxml b/wechat/miniprogram/pages/login/index.wxml index 687e93a1..4cf962b4 100644 --- a/wechat/miniprogram/pages/login/index.wxml +++ b/wechat/miniprogram/pages/login/index.wxml @@ -25,23 +25,29 @@ /> - - + + + + + + - - - - - - 登录 + + + 登 录 + + + 注 册 + + diff --git a/wechat/miniprogram/pages/login/index.wxss b/wechat/miniprogram/pages/login/index.wxss index 1ad11756..e160c078 100644 --- a/wechat/miniprogram/pages/login/index.wxss +++ b/wechat/miniprogram/pages/login/index.wxss @@ -41,7 +41,12 @@ display: inline-block; height: 77rpx; } +.btns{ + width: 100%; + display: flex; + justify-content: space-around; + margin: 30rpx 0; +} .btn{ - margin: 45rpx auto; - width: 40vw; -} \ No newline at end of file + width: 30vw; +} diff --git a/wechat/miniprogram/pages/register/index.js b/wechat/miniprogram/pages/register/index.js new file mode 100644 index 00000000..4346526d --- /dev/null +++ b/wechat/miniprogram/pages/register/index.js @@ -0,0 +1,370 @@ +// miniprogram/pages/register/index.js +const registerOptions = { + "admin": false, + "avatar": "", + "createBy": "", + "createTime": "", + "delFlag": "", + "dept": { + "ancestors": "", + "children": [ + null + ], + "createBy": "", + "createTime": "", + "delFlag": "", + "deptId": 0, + "deptName": "", + "email": "", + "leader": "", + "orderNum": "", + "params": {}, + "parentId": 0, + "parentName": "", + "phone": "", + "remark": "", + "searchValue": "", + "status": "", + "updateBy": "", + "updateTime": "" + }, + "deptId": 0, + "email": "", + "loginDate": "", + "loginIp": "", + "nickName": "李四", + "params": {}, + "password": "", + "phonenumber": "", + "postIds": [ + 0 + ], + "remark": "", + "roleIds": [ + 2 + ], + "roles": [ + { + "admin": false, + "createBy": "", + "createTime": "", + "dataScope": "2", + "delFlag": "", + "deptCheckStrictly": true, + "deptIds": [ + 0 + ], + "flag": true, + "menuCheckStrictly": true, + "menuIds": [ + 0 + ], + "params": {}, + "remark": "", + "roleId": 2, + "roleKey": "common", + "roleName": "", + "roleSort": "2", + "searchValue": "", + "status": "", + "updateBy": "", + "updateTime": "" + } + ], + "salt": "", + "searchValue": "", + "sex": "", + "status": "", + "updateBy": "", + "updateTime": "", + "userId": 0, + "userName": "" +} + +const { loginApi } = require('../../API/request.js'); + + +Page({ + + /** + * 页面的初始数据 + */ + data: { + username:'', + password:'', + pwdAgain:'', + phonenumber:'', + email:'', + emailError:'', + radio:'0', + phoneError:'', + phoneValue:true, + emailValue:true, + nickName:'', + nickError:'', + nickValue:false, + nameValue:false, + nameError:'', + pwdValue:false, + pwdError:'', + pwdAgainValue:false, + pwdAgainError:'' + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + wx.setNavigationBarTitle({ + title: '用户注册', + }) + }, + + + //测试接口,需修改 + async register(){ + if (!this.checkForm()) { + return; + }else{ + wx.showLoading({ + title: '正在注册', + }) + let registerParams = registerOptions; + registerParams.password = this.data.password; + registerParams.userName = this.data.username; + registerParams.nickName = this.data.nickName; + registerParams.sex = this.data.radio; + registerParams.phonenumber = this.data.phonenumber; + registerParams.email = this.data.email; + + wx.request({ + url: 'http://localhost/dev-api/system/user/register', + method:'POST', + data:registerParams, + timeout:10000, + success(res){ + wx.hideLoading(); + if (res.data.code === 200) { + wx.showToast({ + title: '注册成功', + icon:'success' + }) + setTimeout(() => { + wx.redirectTo({ + url: '/pages/login/index', + }) + }, 1000); + }else{ + wx.showToast({ + title: res.data.msg, + icon:'error' + }) + } + } + }) + } + + // const res = await loginApi('/system/user/register',{ + // method:'POST', + // body:registerParams, + // json:true + // }); + + // console.log(formatDate()); + }, + + //检查表单 + checkForm(){ + if (this.data.nickName === '') { + this.setData({ + nickError:'昵称不能为空!' + }) + } + if (this.data.username === '') { + this.setData({ + nameError:'账号不能为空!' + }) + } + if (this.data.password === '') { + this.setData({ + pwdError:'密码不能为空!' + }) + } + return (this.data.nickValue && this.data.nameValue && this.data.pwdValue && this.data.pwdAgainValue && this.data.phoneValue && this.data.emailValue) + }, + + + onChooseSex(e){ + this.setData({ + radio:e.detail + }) + }, + + // imputUsername(e){ + // this.setData({ + // username:e.detail + // }) + // }, + // imputPassword(e){ + // this.setData({ + // password:e.detail + // }) + // }, + endInputPwdAgain(e){ + if ((e.detail.value.trim()!=='') && (e.detail.value === this.data.password)) { + this.setData({ + pwdAgainValue:true, + pwdAgainError:'' + }) + }else{ + this.setData({ + pwdAgainValue:false, + pwdAgainError:'密码输入不一致' + }) + } + }, + + endInputNick(e){ + if (e.detail.value.trim() === '') { + this.setData({ + nickValue:false, + nickError:'昵称不能为空!' + }) + }else{ + this.setData({ + nickName:e.detail.value, + nickError:'', + nickValue:true + }) + } + }, + + endInputName(e){ + if (e.detail.value.trim() === '') { + this.setData({ + nameValue:false, + nameError:'账号不能为空!' + }) + }else{ + this.setData({ + username:e.detail.value, + nameError:'', + nameValue:true + }) + } + }, + + endInputPwd(e){ + if (e.detail.value.trim() === '') { + this.setData({ + pwdValue:false, + pwdError:'密码不能为空!' + }) + }else{ + this.setData({ + password:e.detail.value, + pwdError:'', + pwdValue:true + }) + } + }, + + endInputPhone(e){ + if (e.detail.value.trim() !== '') { + const reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; + if(!reg.test(e.detail.value)){ + this.setData({ + phoneError:'请输入正确的手机号!', + phoneValue:false + }); + return; + }else{ + this.setData({ + phoneError:'', + phoneValue:true, + phonenumber:e.detail.value + }); + }; + }else{ + this.setData({ + phoneError:'', + phoneValue:true, + phonenumber:'' + }); + } + }, + + endInputEmail(e){ + if (e.detail.value.trim() !== '') { + const reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; + if(!reg.test(e.detail.value)){ + this.setData({ + emailError:'邮箱不合规范!', + emailValue:false + }); + return; + }else{ + this.setData({ + emailError:'', + emailValue:true, + email:e.detail.value + }); + }; + }else{ + this.setData({ + emailError:'', + emailValue:true, + email:'' + }); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/wechat/miniprogram/pages/register/index.json b/wechat/miniprogram/pages/register/index.json new file mode 100644 index 00000000..f9a4324a --- /dev/null +++ b/wechat/miniprogram/pages/register/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index", + "van-radio": "@vant/weapp/radio/index", + "van-radio-group": "@vant/weapp/radio-group/index" + } +} \ No newline at end of file diff --git a/wechat/miniprogram/pages/register/index.wxml b/wechat/miniprogram/pages/register/index.wxml new file mode 100644 index 00000000..b22a6aa9 --- /dev/null +++ b/wechat/miniprogram/pages/register/index.wxml @@ -0,0 +1,87 @@ + + + + + 账号注册 + + + + + + + + + + + + + + + 性别 : + + + + + + + + + + + + + 注 册 + + diff --git a/wechat/miniprogram/pages/register/index.wxss b/wechat/miniprogram/pages/register/index.wxss new file mode 100644 index 00000000..77f2e7cf --- /dev/null +++ b/wechat/miniprogram/pages/register/index.wxss @@ -0,0 +1,38 @@ +/* miniprogram/pages/register/index.wxss */ +.form{ + width: 80vw; + margin: 50rpx auto; + padding: 30rpx; + box-shadow: 0 0 5rpx 3rpx rgb(202, 202, 202); +} +.title{ + margin: 15rpx auto 30rpx; + font-size: 40rpx; + display: flex; + align-items: center; +} +.title>image{ + width: 60rpx; + height: 60rpx; + margin-right: 15rpx; +} +.input{ + margin: 15rpx 0; + /* box-shadow: 0 0 5rpx 5rpx #bfbfbf; */ + border-bottom: 1rpx solid #bfbfbf; +} +.btn{ + margin: 45rpx auto; + width: 40vw; +} +.checkbox{ + display: flex; + margin: 15rpx 0; + padding: 15rpx 0; +} +.check_title{ + /* font-size: 26rpx; */ + width: 120rpx; + padding: 0 30rpx; + color: rgba(0, 0, 0, .6); +} \ No newline at end of file diff --git a/wechat/project.private.config.json b/wechat/project.private.config.json index 66c83fc4..1314dbfd 100644 --- a/wechat/project.private.config.json +++ b/wechat/project.private.config.json @@ -69,6 +69,12 @@ { "name": "pages/add4G/index", "pathName": "pages/add4G/index", + "query": "", + "scene": null + }, + { + "name": "pages/register/index", + "pathName": "pages/register/index", "scene": null } ]