// pages/market/detail.js import WxValidate from '../../utils/wxValidate' const app = getApp() Page({ /** * 页面的初始数据 */ data: { frameStyle: { useTop: true, name: '信息管理', leftArrow: true, useBar: false }, // 主体高度 infoHeight: '', userInfo: { id: '00010102883', name: '供货单位' }, form: {}, // 商品类型 typeList: [ { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "办公用品" }, { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "金融用品" }, { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "书写工具" }, { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "办公机械" }, { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "文件用品" }, { code: "8", id: "61dd3480bf70154c7fa35ac5", name: "其他用品" }, ], // 图片 img_url: [], }, initValidate() { const rules = { type_name: { required: true }, name: { required: true, }, brief: { required: true, }, money: { required: true, }, } // 验证字段的提示信息,若不传则调用默认的信息 const messages = { type_name: { required: '请选择商品类型', }, name: { required: '请输入商品名称', }, brief: { required: '请输入商品简介', }, money: { required: '请输入商品价格', }, }; this.WxValidate = new WxValidate(rules, messages) }, back: function () { wx.navigateBack({ url: '/pages/market/index' }) }, // 类型选择 typeChange: function (e) { let { value } = e.detail; let data = this.data.typeList[value]; this.setData({ 'form.type_id': data.id }) this.setData({ 'form.type_name': data.name }) }, // 上传图片 afterRead: function (event) { const { file } = event.detail; // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 wx.uploadFile({ url: app.globalData.fileUrl + '/files/consumables/market/upload', filePath: file.url, name: 'file', formData: {}, success: (res) => { if (res.statusCode == '200') { let data = [{ name: JSON.parse(res.data).name, url: `${app.globalData.fileUrl}` + JSON.parse(res.data).uri }] this.setData({ img_url: this.data.img_url.concat(data) }) } else { wx.showToast({ title: `${res.data.errmsg}`, icon: 'fail', duration: 2000 }) } }, }); }, // 删除图片 uploadDelete: function (e) { const index = e.detail.index; const imgList = this.data.img_url; if (imgList.length === 1) this.setData({ img_url: [] }) else { let data = imgList.splice(0, 1); this.setData({ img_url: data }) } }, // 取消保存 onReset: function (e) { this.back() }, // 提交保存 onSubmit: function (e) { const params = e.detail.value; params.img_url = this.data.img_url; if (!this.WxValidate.checkForm(params)) { const error = this.WxValidate.errorList[0]; wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 }) return false } else { wx.showModal({ title: '是否确认提交商品', success(res) { if (res.confirm) { wx.showToast({ title: `提交商品成功`, icon: 'success', duration: 2000 }); } else if (res.cancel) { } } }) } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ 'form.mech_name': this.data.userInfo.name, 'form.mech_id': this.data.userInfo.id, }) //验证规则函数 this.initValidate() // 计算高度 this.searchHeight() }, // 计算高度 searchHeight: function () { let frameStyle = this.data.frameStyle; let client = app.globalData.client; // 减去状态栏 let infoHeight = client.windowHeight - (client.statusBarHeight + client.getMenu.height + (client.getMenu.top - client.statusBarHeight) * 2); // 是否减去底部菜单 if (frameStyle.useBar) infoHeight = infoHeight - 50; if (infoHeight) this.setData({ infoHeight: infoHeight }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })