diff --git a/utils/request.js b/utils/request.js new file mode 100644 index 0000000..206f05a --- /dev/null +++ b/utils/request.js @@ -0,0 +1,17 @@ +// utils/request.js +/** + * 封装 wx.request 为 Promise + * @param {Object} options 同 wx.request 参数 + * @returns {Promise} resolve 值为 wx.request 的 success 回调参数 + */ +function requestAsync(options) { + return new Promise((resolve, reject) => { + wx.request({ + ...options, + success: res => resolve(res), + fail: err => reject(err) + }); + }); +} + +module.exports = { requestAsync }; diff --git a/utils/validate.js b/utils/validate.js new file mode 100644 index 0000000..248449a --- /dev/null +++ b/utils/validate.js @@ -0,0 +1,18 @@ +// utils/validate.js +/** + * 通用非空校验 + * @param {Object} data - 当前页面的 this.data + * @param {Object} rules - 校验规则,格式:{ fieldName: '提示文案', ... } + * @returns {boolean} - 校验通过返回 true,失败时已经 wx.showToast 提示并返回 false + */ +function validate(data, rules) { + for (const [field, message] of Object.entries(rules)) { + if (!data[field]) { + wx.showToast({ title: message, icon: 'none' }); + return false; + } + } + return true; +} + +module.exports = { validate };