From 3fe9c3c2091c1bd5b6d9b333478cf450f26b0936 Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Mon, 19 May 2025 09:08:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 5 +- pages/loginModule/forgetPwd/forgetPwd.js | 20 +- pages/loginModule/forgetPwd/forgetPwd.wxml | 2 +- pages/loginModule/forgetPwd/forgetPwd.wxss | 2 +- pages/loginModule/pwdLogin/pwdLogin.js | 42 +++-- pages/loginModule/pwdLogin/pwdLogin.wxml | 2 +- pages/loginModule/register/register.js | 33 ++-- pages/loginModule/register/register.wxml | 2 +- pages/projectModule/applyCode/applyCode.js | 133 ++++++++------ pages/projectModule/applyCode/applyCode.wxml | 27 ++- pages/projectModule/applyCode/applyCode.wxss | 2 - .../projectDetail/projectDetail.js | 173 ++++++++++++------ .../projectDetail/projectDetail.json | 4 +- .../projectDetail/projectDetail.wxml | 96 +++++----- .../projectDetail/projectDetail.wxss | 12 +- .../projectModule/projectList/projectList.js | 1 - .../projectList/projectList.wxml | 2 +- .../projectList/projectList.wxss | 5 +- request.js | 6 +- utils/validate.js | 3 +- 20 files changed, 364 insertions(+), 208 deletions(-) diff --git a/app.json b/app.json index 09b761e..911a4b6 100644 --- a/app.json +++ b/app.json @@ -1,8 +1,9 @@ { "pages": [ - "pages/projectModule/projectDetail/projectDetail", - "pages/projectModule/projectList/projectList", "pages/loginModule/pwdLogin/pwdLogin", + "pages/projectModule/projectList/projectList", + "pages/projectModule/projectNotice/projectNotice", + "pages/projectModule/projectDetail/projectDetail", "pages/loginModule/register/register", "pages/projectModule/applyCode/applyCode", "pages/projectModule/userProject/userProject", diff --git a/pages/loginModule/forgetPwd/forgetPwd.js b/pages/loginModule/forgetPwd/forgetPwd.js index e3d1ec3..c373daf 100644 --- a/pages/loginModule/forgetPwd/forgetPwd.js +++ b/pages/loginModule/forgetPwd/forgetPwd.js @@ -41,12 +41,16 @@ Page({ } // 3. 请求验证码 wx.request({ - url: baseUrl + '/userInfo/code', + url: baseUrl + '/userInfo/code/pwd', method: 'POST', data: { templateString: phone }, - success: () => { - wx.showToast({ title: '验证码已发送', icon: 'none' }); - this._startCountdown(60); + success: (res) => { + if (res.data.code === 1) { + wx.showToast({ title: '验证码已发送', icon: 'none' }); + this._startCountdown(60); + } else { + wx.showToast({ title: res.data.message, icon: 'none' }); + } }, fail: () => { wx.showToast({ title: '发送失败,请重试', icon: 'none' }); @@ -96,14 +100,14 @@ Page({ newPwd: '请输入新密码', confirmPwd: '请再次输入新密码' })) return; - // 2. 密码一致 - if (newPwd !== confirmPwd) { - return wx.showToast({ title: '两次密码不一致', icon: 'none' }); - } // 3. 格式校验手机号 if (!/^1\d{10}$/.test(phone)) { return wx.showToast({ title: '手机号格式不正确', icon: 'none' }); } + // 2. 密码一致 + if (newPwd !== confirmPwd) { + return wx.showToast({ title: '两次密码不一致', icon: 'none' }); + } // 4. 发起重置请求 wx.request({ url: baseUrl + '/userInfo/mini/forgetPwd', diff --git a/pages/loginModule/forgetPwd/forgetPwd.wxml b/pages/loginModule/forgetPwd/forgetPwd.wxml index b5b912d..25c23a4 100644 --- a/pages/loginModule/forgetPwd/forgetPwd.wxml +++ b/pages/loginModule/forgetPwd/forgetPwd.wxml @@ -1,7 +1,7 @@ 欢迎登陆—青橙校园 diff --git a/pages/loginModule/forgetPwd/forgetPwd.wxss b/pages/loginModule/forgetPwd/forgetPwd.wxss index 48c97ec..de3f581 100644 --- a/pages/loginModule/forgetPwd/forgetPwd.wxss +++ b/pages/loginModule/forgetPwd/forgetPwd.wxss @@ -50,7 +50,7 @@ } .section_2 { margin-right: 4.42rpx; - padding: 20.16rpx 16.88rpx 19.22rpx; + padding: 25.16rpx 16.88rpx 24.22rpx; background-color: #ffffff; border-radius: 9.38rpx; box-shadow: 0rpx 3.75rpx 7.5rpx #00000040; diff --git a/pages/loginModule/pwdLogin/pwdLogin.js b/pages/loginModule/pwdLogin/pwdLogin.js index 5b15fe0..b2ffd96 100644 --- a/pages/loginModule/pwdLogin/pwdLogin.js +++ b/pages/loginModule/pwdLogin/pwdLogin.js @@ -63,12 +63,16 @@ Page({ // 3. 发送验证码请求 wx.request({ - url: baseUrl + '/userInfo/code', + url: baseUrl + '/userInfo/code/pwd', method: 'POST', data: { templateString: phone }, - success: () => { - wx.showToast({ title: '验证码已发送', icon: 'none' }); - this._startCountdown(60); + success: (res) => { + if (res.data.code === 1) { + wx.showToast({ title: '验证码已发送', icon: 'none' }); + this._startCountdown(60); + } else { + wx.showToast({ title: res.data.message, icon: 'none' }); + } }, fail: () => { wx.showToast({ title: '发送失败,请重试', icon: 'none' }); @@ -114,17 +118,24 @@ Page({ const { loginType, phone, credential, isAgree } = this.data; // 非空校验(手机号、密码/验证码、协议) - if (!validate(this.data, { - phone: '请输入手机号', - credential: loginType === 'password' ? '请输入密码' : '请输入验证码', - isAgree: '请先同意用户协议' - })) { + if (!phone.trim()) { + wx.showToast({ title: '请输入手机号', icon: 'none' }); return; } // 手机号格式校验 if (!/^1\d{10}$/.test(phone)) { return wx.showToast({ title: '手机号格式不正确', icon: 'none' }); } + if (!validate(this.data, { + credential: loginType === 'password' ? '请输入密码' : '请输入验证码', + })) { + return; + } + // 2. 再单独校验协议勾选 + if (!this.data.isAgree) { + wx.showToast({ title: '请先同意用户协议', icon: 'none' }); + return; + } // 组装请求 const url = loginType === 'password' @@ -145,10 +156,17 @@ Page({ // ← 新增:将 token 存到本地缓存 wx.setStorageSync('token', token); - wx.showToast({ title: '登录成功', icon: 'success' }); - wx.navigateTo({ - url: '/pages/projectModule/projectList/projectList' + wx.showToast({ + title: '登录成功', + icon: 'success', + duration: 1000 }); + + setTimeout(() => { + wx.reLaunch({ + url: '/pages/projectModule/projectList/projectList', + }) + }, 1000); // 1000ms = 1秒 } else { wx.showToast({ title: res.data.message || '登录失败', diff --git a/pages/loginModule/pwdLogin/pwdLogin.wxml b/pages/loginModule/pwdLogin/pwdLogin.wxml index 31687e5..fafe666 100644 --- a/pages/loginModule/pwdLogin/pwdLogin.wxml +++ b/pages/loginModule/pwdLogin/pwdLogin.wxml @@ -1,7 +1,7 @@ 欢迎登陆—青橙校园 diff --git a/pages/loginModule/register/register.js b/pages/loginModule/register/register.js index ab53ba5..58400fb 100644 --- a/pages/loginModule/register/register.js +++ b/pages/loginModule/register/register.js @@ -1,4 +1,4 @@ -import { url } from "../../../request"; +import { baseUrl } from "../../../request"; import { requestAsync } from "../../../utils/request"; import { validate } from "../../../utils/validate"; @@ -9,11 +9,11 @@ Page({ * 页面的初始数据 */ data: { - nickname: 'cxz', - phone: '13888610253', - captcha: '111111', - inviteCode: '123456', - password: '123456', + nickname: '', + phone: '', + captcha: '', + inviteCode: '', + password: '', agree: false, sending: false, count: 60, @@ -21,12 +21,16 @@ Page({ sendSmsCode() { const { phone } = this.data; + if (!phone.trim()) { + wx.showToast({ title: '请输入手机号', icon: 'none' }); + return; + } if (!/^1\d{10}$/.test(phone)) { wx.showToast({ title: '请输入有效的手机号', icon: 'none' }); return; } wx.request({ - url: url + '/userInfo/code', + url: baseUrl + '/userInfo/code/register', method: 'POST', header: { 'content-type': 'application/json' }, data: { @@ -78,16 +82,8 @@ Page({ // 注册按钮点击 async onRegister() { - if (!this.data.agree) { - wx.showToast({ - title: '请先勾选同意协议', - icon: 'none' - }); - return; - } // 调用通用校验,失败时已提示并 return if (!validate(this.data, { - agree: '请先勾选同意协议', nickname: '请输入昵称', phone: '请输入手机号', captcha: '请输入验证码', @@ -96,9 +92,14 @@ Page({ })) { return; } + // 2. 再单独校验协议勾选 + if (!this.data.agree) { + wx.showToast({ title: '请先同意用户协议', icon: 'none' }); + return; + } const { nickname, phone, captcha, inviteCode, password } = this.data; const res = await requestAsync({ - url: url + '/userInfo/register', + url: baseUrl + '/userInfo/register', method: 'POST', header: { 'content-type': 'application/json' }, data: { diff --git a/pages/loginModule/register/register.wxml b/pages/loginModule/register/register.wxml index fa8b33e..ead2ee8 100644 --- a/pages/loginModule/register/register.wxml +++ b/pages/loginModule/register/register.wxml @@ -1,7 +1,7 @@ 欢迎登陆—青橙校园 diff --git a/pages/projectModule/applyCode/applyCode.js b/pages/projectModule/applyCode/applyCode.js index 4fcfdcd..0e32038 100644 --- a/pages/projectModule/applyCode/applyCode.js +++ b/pages/projectModule/applyCode/applyCode.js @@ -1,65 +1,94 @@ -// pages/projectModule/applyCode/applyCode.js +const { baseUrl } = require('../../../request'); + Page({ - - /** - * 页面的初始数据 - */ data: { - + projectId: '', // 项目id + promoCodeDesc: '', // 富文本推广码说明 + salespersonName: '', + salespersonPhone: '', + mode: 'add' // 'add'(新增) or 'view'(查看资料) }, - /** - * 生命周期函数--监听页面加载 - */ onLoad(options) { - - }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - + this.setData({ + projectId: options.id || '', + promoCodeDesc: decodeURIComponent(options.desc || ''), + mode: options.mode || 'add', + salespersonName: options.name ? decodeURIComponent(options.name) : '', + salespersonPhone: options.phone ? decodeURIComponent(options.phone) : '' + }); }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - + // 输入绑定 + onNameInput(e) { + // 仅在新增模式允许编辑 + if (this.data.mode !== 'view') { + this.setData({ salespersonName: e.detail.value }); + } + }, + onPhoneInput(e) { + if (this.data.mode !== 'view') { + this.setData({ salespersonPhone: e.detail.value }); + } }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { + // 申请资料报备 + onApply() { + // 如果是查看模式,阻止提交 + if (this.data.mode === 'view') return; - }, + const { salespersonName, salespersonPhone, projectId } = this.data; - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { + if (!salespersonName.trim()) { + wx.showToast({ title: '请输入业务员姓名', icon: 'none' }); + return; + } + const phoneReg = /^1[3-9]\d{9}$/; + if (!salespersonPhone.trim()) { + wx.showToast({ title: '请输入手机号', icon: 'none' }); + return; + } + if (!phoneReg.test(salespersonPhone.trim())) { + wx.showToast({ title: '手机号格式不正确', icon: 'none' }); + return; + } + const token = wx.getStorageSync('token'); + wx.request({ + url: baseUrl + '/promoCodeApply/apply', + method: 'POST', + header: { + 'Authorization': token, + 'Content-Type': 'application/json' + }, + data: { + salespersonName, + salespersonPhone, + projectId + }, + success: (res) => { + if (res.data.code === 1) { + wx.showToast({ + title: '申请成功', + icon: 'success', + duration: 1000 + }); + setTimeout(() => { + wx.navigateBack(); + }, 1000); + } else { + wx.showToast({ + title: res.data.message || '申请失败', + icon: 'none' + }); + } + }, + fail: () => { + wx.showToast({ + title: '网络错误', + icon: 'none' + }); + } + }); } -}) \ No newline at end of file +}); diff --git a/pages/projectModule/applyCode/applyCode.wxml b/pages/projectModule/applyCode/applyCode.wxml index 66c580a..abae0d7 100644 --- a/pages/projectModule/applyCode/applyCode.wxml +++ b/pages/projectModule/applyCode/applyCode.wxml @@ -2,17 +2,32 @@ 业务员姓名 - + 业务员手机号 - + - - + + + 申请资料报备 - + + + + + - \ No newline at end of file + diff --git a/pages/projectModule/applyCode/applyCode.wxss b/pages/projectModule/applyCode/applyCode.wxss index 744b14d..a73aebd 100644 --- a/pages/projectModule/applyCode/applyCode.wxss +++ b/pages/projectModule/applyCode/applyCode.wxss @@ -67,8 +67,6 @@ margin-left: 42.19rpx; margin-right: 44.06rpx; background-color: #ffffff00; - height: 808.58rpx; - border: solid 1.88rpx #000000; } .input { padding: 13.13rpx 18.75rpx 15rpx 18.75rpx; diff --git a/pages/projectModule/projectDetail/projectDetail.js b/pages/projectModule/projectDetail/projectDetail.js index ffc1b49..81ab319 100644 --- a/pages/projectModule/projectDetail/projectDetail.js +++ b/pages/projectModule/projectDetail/projectDetail.js @@ -1,72 +1,141 @@ -Page({ +const { baseUrl } = require('../../../request'); - /** - * 页面的初始数据 - */ +Page({ data: { - items: [null, null, null], - items_1: [null, null, null], - items_2: [null, null, null], - activeTab: 0 + projectDetail: {}, + notificationList: [], + settlementDetailList: [], + promoCodeList: [], + activeTab: 0, + id: null, + showPromoPop: false, + currentQrcode: '', + currentPromoLink: '' }, + + onLoad(options) { + const id = options.id; + this.setData({ id }); + }, + + // 每次页面展示都刷新(含navigateBack返回时) + onShow() { + // 防止id为null + if (this.data.id) { + this.fetchProjectDetail(this.data.id); + } + }, + + fetchProjectDetail(id) { + const token = wx.getStorageSync('token'); + wx.request({ + url: baseUrl + '/project/query/id', // 替换为你的接口地址 + method: 'POST', + header: { + Authorization: token + }, + data: { + id + }, + success: (res) => { + if (res.data.code === 1) { + const detail = res.data.data || {}; + this.setData({ + projectDetail: detail, + notificationList: detail.projectNotificationVOList || [], + settlementDetailList: detail.projectAllDetailVOList || [], + promoCodeList: detail.promoCodeApplyVOList || [] + }); + } else { + wx.showToast({ + title: res.data.message || '数据获取失败', + icon: 'none' + }); + } + }, + fail: () => { + wx.showToast({ + title: '网络错误', + icon: 'none' + }); + } + }); + }, + switchTab(e) { const idx = +e.currentTarget.dataset.index; this.setData({ activeTab: idx }); }, - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - + // “开码记录”跳tab + goToPromoTab() { + this.setData({ activeTab: 1 }); }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - + // “新增推广码”跳转 + addPromoCode() { + const id = this.data.id; + const promoCodeDesc = this.data.projectDetail.applyPromoCodeDesc || ''; + // encodeURIComponent 防止有特殊字符 + wx.navigateTo({ + url: `/pages/projectModule/applyCode/applyCode?id=${id}&desc=${encodeURIComponent(promoCodeDesc)}&mode=add` + }); }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - + // “结算明细”跳转 + goToSettlementDetail() { + wx.navigateTo({ + url: '/pages/settlementDetail/settlementDetail' // 替换为你的页面路径 + }); }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - + // 推广码-查看资料 + goToPromoMaterial(e) { + const id = e.currentTarget.dataset.id; // 项目id + const name = e.currentTarget.dataset.name; // 业务员姓名 + const phone = e.currentTarget.dataset.phone; // 业务员手机号 + const promoCodeDesc = this.data.projectDetail.applyPromoCodeDesc || ''; + wx.navigateTo({ + url: `/pages/projectModule/applyCode/applyCode?id=${id}&desc=${encodeURIComponent(promoCodeDesc)}&mode=view&name=${encodeURIComponent(name)}&phone=${encodeURIComponent(phone)}` + }); }, - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { +// 弹出作业码弹窗 +onShowPromoPop(e) { + const qrcode = e.currentTarget.dataset.qrcode; + const link = e.currentTarget.dataset.link; + this.setData({ + showPromoPop: true, + currentQrcode: qrcode, + currentPromoLink: link + }); +}, +// 关闭弹窗 +onClosePromoPop() { + this.setData({ showPromoPop: false }); +}, + + + // 复制推广码 + copyPromoCode(e) { + const code = e.currentTarget.dataset.code; + wx.setClipboardData({ + data: code, + success: function () { + wx.showToast({ + title: '复制成功', + icon: 'success' + }); + } + }); }, - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - + goToNotificationDetail(e) { + const id = e.currentTarget.dataset.id; + wx.navigateTo({ + url: `/pages/projectModule/projectNotice/projectNotice?id=${id}` // 路径请根据你的项目实际调整 + }); } -}) \ No newline at end of file + +}); diff --git a/pages/projectModule/projectDetail/projectDetail.json b/pages/projectModule/projectDetail/projectDetail.json index 8835af0..de41899 100644 --- a/pages/projectModule/projectDetail/projectDetail.json +++ b/pages/projectModule/projectDetail/projectDetail.json @@ -1,3 +1,5 @@ { - "usingComponents": {} + "usingComponents": { + "promo-pop": "../promoPop/promoPop" + } } \ No newline at end of file diff --git a/pages/projectModule/projectDetail/projectDetail.wxml b/pages/projectModule/projectDetail/projectDetail.wxml index 6dfe5e0..d559ebe 100644 --- a/pages/projectModule/projectDetail/projectDetail.wxml +++ b/pages/projectModule/projectDetail/projectDetail.wxml @@ -3,13 +3,13 @@ - 美团省钱包 + {{projectDetail.projectName}} - 不限制推广方式、不限美团新老用户,要求美团闪购新用户或... - + {{projectDetail.projectDescription}} + 最高价 - ¥7 + ¥{{projectDetail.projectPrice}} @@ -40,6 +40,7 @@ + 最新 - 美团省钱包-春季活动价格上调通知~ + {{item.notificationTitle}} - + - 3.6元购买30元券包 - 0.30 + {{item.projectDetailName}} + {{item.projectSettlementPrice}} - + + 结算说明 - + 项目说明 - + - 项目说明 - + 项目流程 + - + + 审核通过 @@ -131,24 +129,32 @@ - 业务员:陈新知 15888610253 - 绑定日期:2025-05-16 19:09 + 业务员:{{item.salespersonName}} {{item.salespersonPhone}} + 绑定日期:{{item.createTime}} - 推广码id:ykhlshy118 - 复制 + 推广码id:{{item.promoCodeInfoKey}} + 复制 + src="https://img.picui.cn/free/2025/05/18/6829ff0fb5ed6.png" + bindtap="onShowPromoPop" + data-qrcode="{{item.promoCodeImage}}" + data-link="{{item.promoCodeLink}}" + /> - 查看推广码 + 查看推广码 - + 结算明细 - + 查看资料 @@ -159,7 +165,15 @@ - 开码记录 - 新增推广码 + 开码记录 + 新增推广码 - \ No newline at end of file + + + diff --git a/pages/projectModule/projectDetail/projectDetail.wxss b/pages/projectModule/projectDetail/projectDetail.wxss index 3355e77..8bef28b 100644 --- a/pages/projectModule/projectDetail/projectDetail.wxss +++ b/pages/projectModule/projectDetail/projectDetail.wxss @@ -140,7 +140,7 @@ line-height: 25.88rpx; } .list-item_1 { - padding: 7.07rpx 0 5.94rpx; + padding: 17.07rpx 0 15.94rpx; } .list-item_1:first-child { margin-top: 0; @@ -169,6 +169,7 @@ .text_10 { font-size: 26.25rpx; line-height: 24.49rpx; + margin-left: -30%; } .section_4 { margin-top: 41.25rpx; @@ -230,8 +231,6 @@ margin-right: 2.14rpx; margin-top: 35.92rpx; background-color: #ffffff00; - height: 538.13rpx; - border: solid 1.88rpx #000000; } .view_2 { margin-top: 35.94rpx; @@ -298,6 +297,7 @@ width: 310.05rpx; } .font_9 { + width: 400rpx; font-size: 24.38rpx; font-family: Times New Roman; line-height: 30rpx; @@ -311,7 +311,7 @@ } .text_17 { margin-top: 20.66rpx; - width: 279.38rpx; + width: 400.38rpx; } .group_11 { margin-top: 8.55rpx; @@ -347,9 +347,11 @@ } .text_27 { margin-right: 25.74rpx; + position: absolute; + bottom: 15%; } .group_12 { - margin-top: 4.59rpx; + margin-top: 24.59rpx; } .text-wrapper_3 { padding: 0; diff --git a/pages/projectModule/projectList/projectList.js b/pages/projectModule/projectList/projectList.js index b0ba1b5..72bd4df 100644 --- a/pages/projectModule/projectList/projectList.js +++ b/pages/projectModule/projectList/projectList.js @@ -1,4 +1,3 @@ -// pages/projectModule/projectList/projectList.js const { baseUrl } = require('../../../request'); Page({ diff --git a/pages/projectModule/projectList/projectList.wxml b/pages/projectModule/projectList/projectList.wxml index 5322e10..05e3bdd 100644 --- a/pages/projectModule/projectList/projectList.wxml +++ b/pages/projectModule/projectList/projectList.wxml @@ -44,7 +44,7 @@ 最高价 ¥{{item.projectPrice}} - + 正在推广 {{item.currentPromotionCount}}人 diff --git a/pages/projectModule/projectList/projectList.wxss b/pages/projectModule/projectList/projectList.wxss index dcc8272..0018e5d 100644 --- a/pages/projectModule/projectList/projectList.wxss +++ b/pages/projectModule/projectList/projectList.wxss @@ -1,4 +1,3 @@ -/* pages/projectModule/projectList/projectList.wxss */ /* 页面整体 */ .page { @@ -137,3 +136,7 @@ .mt-20 { margin-top: 20rpx; } +.promo { + position: absolute; + left: 350rpx; +} \ No newline at end of file diff --git a/request.js b/request.js index 2aa9897..656528d 100644 --- a/request.js +++ b/request.js @@ -1,3 +1,3 @@ -export const url='http://localhost:3456'; - -export const baseUrl = 'http://localhost:3456' \ No newline at end of file +export const local='http://localhost:3456'; +export const ip = 'http://1.94.237.210:3457'; +export const baseUrl = ip; diff --git a/utils/validate.js b/utils/validate.js index 248449a..5f7fe06 100644 --- a/utils/validate.js +++ b/utils/validate.js @@ -7,7 +7,8 @@ */ function validate(data, rules) { for (const [field, message] of Object.entries(rules)) { - if (!data[field]) { + const value = data[field]; + if ((typeof value === 'string' && !value.trim()) || value == null) { wx.showToast({ title: message, icon: 'none' }); return false; }