// pages/login/login.js import WxValidate from '../../utils/wxValidate'; const { stock_type } = require('../../utils/dict'); const app = getApp() Page({ /** * 页面的初始数据 */ data: { frameStyle: { useTop: true, name: '信息管理', leftArrow: true, useBar: false }, // 主体高度 infoHeight: '', userInfo: {}, form: { // operate_id: "61d50d6bea746006960a7f8e", // operate_name: "入库-1", // order: [ // { // name: "商品-1", // num: "10", // stock_market_id: "61d6b4cc07c0500a5957423f", // }, { // stock_type: "2", // code: '1', // type_id: "61d506bc68b28e3a22e74a46", // name: "商品-2", // num: "21", // money: "1", // brief: "1", // img_url: [], // } // ], // reason: "入库原因", // register_date: "2022-01-07", // register_name: "登记人", // register_phone: "登记人电话", }, // 弹框 dialog: { title: '添加商品', show: false, type: '1' }, // 入库商品 order: [], // 库存已存 oneorderForm: {}, // 查询库存 shoppinginput: '', stockList: [], // 库存未存 twoorderForm: {}, img_url: [], typeList: [], stock_type: '', stock_typeList: stock_type }, initValidate() { const rules = { register_name: { required: true, }, register_phone: { required: true, }, register_date: { required: true, }, reason: { required: true, } } // 验证字段的提示信息,若不传则调用默认的信息 const messages = { register_name: { required: '请输入登记人', }, register_phone: { required: '请输入电话', }, register_date: { required: '请选择登记时间', }, reason: { required: '请输入入库原因', } }; this.WxValidate = new WxValidate(rules, messages) }, back: function () { wx.navigateBack({ url: '/pages/indepot/index' }) }, // 选择登记时间 registerdateChange: function (e) { let { value } = e.detail; this.setData({ 'form.register_date': value }) }, // 添加商品 addOrder: function (e) { const { type } = e.currentTarget.dataset; this.setData({ dialog: { title: '添加商品', show: true, type: type } }) }, // 已有库存 // 取消保存 oneorderReset: function () { this.setData({ dialog: { title: '添加商品', show: false, type: '1' } }) }, // 查询 shoppinginput: function (e) { this.setData({ shoopingtext: e.detail.value }) }, // 查询库存 searchStock: function () { let shoopingtext = this.data.shoopingtext; if (shoopingtext) { wx.request({ url: app.globalData.publicUrl + `/api/hc/stock`, method: "get", data: { name: shoopingtext }, header: {}, success: (res) => { if (res.data.errcode == '0') { if (res.data.total > 0) { this.setData({ stockList: res.data.data }) } else { wx.showToast({ title: `暂无产品`, icon: 'sucess', duration: 2000 }) } } else { wx.showToast({ title: `${res.data.errmsg}`, icon: 'error', duration: 2000 }) } }, }) } else { wx.showToast({ title: `请输入商品名称`, icon: 'error', duration: 2000 }) } }, // 确认选择商品 stockChange: function (e) { const { item } = e.currentTarget.dataset; this.setData({ 'oneorderForm.stock_market_id': item.id }) this.setData({ 'oneorderForm.name': item.name }) }, // 提交保存 oneorderSubmit: function (e) { const params = e.detail.value; if (!params.name) wx.showToast({ title: `商品名称`, icon: 'error', duration: 2000 }); else if (!params.num) wx.showToast({ title: `商品数量`, icon: 'error', duration: 2000 }); if (params.name && params.num) { this.setData({ order: [...this.data.order, params] }); this.setData({ oneorderForm: {} }); this.setData({ dialog: { title: '添加商品', show: false, type: '1' } }); } }, // 库存无商品 twoorderReset: function () { this.setData({ dialog: { title: '添加商品', show: false, type: '2' } }) }, // 类别选择 stocktypeChange: function (e) { let { value } = e.detail; let data = this.data.stock_typeList[value]; this.setData({ 'stock_type': data.value }) this.setData({ 'twoorderForm.stock_type': data.value }) this.setData({ 'twoorderForm.stock_type_name': data.label }) }, // 选择商品类型 typeChange: function (e) { let { value } = e.detail; let data = this.data.typeList[value]; this.setData({ 'twoorderForm.type_id': data.id }) this.setData({ 'twoorderForm.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 }) } }, twoorderSubmit: function (e) { const params = e.detail.value; params.img_url = this.data.img_url; if (!params.stock_type_name) wx.showToast({ title: `请选择商品类别`, icon: 'error', duration: 2000 }); else if (!params.type_name) wx.showToast({ title: `请选择商品类型`, icon: 'error', duration: 2000 }); else if (!params.name) wx.showToast({ title: `请输入商品名称`, icon: 'error', duration: 2000 }); else if (!params.num) wx.showToast({ title: `请输入商品数量`, icon: 'error', duration: 2000 }); if (params.stock_type_name && params.type_name && params.name && params.num) { this.setData({ order: [...this.data.order, params] }); this.setData({ twoorderForm: {} }); this.setData({ dialog: { title: '添加商品', show: false, type: '2' } }); } }, // 取消保存 onReset: function (e) { this.back() }, // 提交保存 onSubmit: function (e) { const params = e.detail.value; if (!this.WxValidate.checkForm(params)) { const error = this.WxValidate.errorList[0]; wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 }) return false } else { params.order = this.data.order; wx.request({ url: app.globalData.publicUrl + `/api/hc/marketEnter`, method: "post", data: { ...params }, header: {}, success: (res) => { if (res.data.errcode == '0') { wx.showToast({ title: `入库添加完成`, icon: 'success', duration: 2000 }) this.back() } else { wx.showToast({ title: `${res.data.errmsg}`, icon: 'error', duration: 2000 }) } }, }) } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // 查询用户是否登录 wx.getStorage({ key: 'user', success: res => { if (res.data) { if (res.data) this.setData({ userInfo: res.data }); this.setData({ form: { operate_id: res.data.id, operate_name: res.data.name } }) } else { wx.redirectTo({ url: '/pages/login/index', }) } } }) // 查询其他信息 this.searchOther(); //验证规则函数 this.initValidate() // 计算高度 this.searchHeight() }, // 查询其他信息 searchOther: function () { // 查询商品类型 wx.request({ url: app.globalData.publicUrl + `/api/hc/type`, method: "get", data: {}, header: {}, success: (res) => { if (res.data.errcode == '0') { this.setData({ typeList: res.data.data }) } else { wx.showToast({ title: `${res.data.errmsg}`, icon: 'error', duration: 2000 }) } }, }) }, // 计算高度 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 () { } })