// pages/orderinfo/orderinfo.js var app = getApp() var network = require("../../../utils/net.js") var dateTimePicker = require('../../../utils/dateTimePicker.js'); var utilll = require('../../../utils/util.js'); var timechage = require("../../../utils/dateTimeUtil.js") var orderID = 0; function setTime(that) { // 获取完整的年月日 时分秒,以及默认显示的数组 var obj1 = dateTimePicker.dateTimePicker(that.data.startYear, that.data.endYear, that.data.loadTime); // 精确到分的处理,将数组的秒去掉 var lastArray = obj1.dateTimeArray.pop(); var lastTime = obj1.dateTime.pop(); that.setData({ dateTimeArray1: obj1.dateTimeArray, dateTime1: obj1.dateTime }); } function GetAccountingUnit(that, inputValue) { let method = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetAccountingUnit"; let params = [{ "InputValue": inputValue, "PageIndex": 0, "PageSize": 100 }]; network.transfer_request(method, params, function (res) { that.setData({ currency: res.result, unit: res.result }) }) that.setData({ which: "会计部门" }) } function GetCustomer(that, inputValue) { let method = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetCustomer"; let params = [{ "InputValue": inputValue, "PageIndex": 0, "PageSize": 100 }]; network.transfer_request(method, params, function (res) { that.setData({ currency: res.result, customer: res.result }) }) that.setData({ which: "购货客户" }) } function GetDepartment(that, inputValue) { let method = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetDepartment"; let params = [{ "InputValue": inputValue, "PageIndex": 0, "PageSize": 100 }]; network.transfer_request(method, params, function (res) { that.setData({ currency: res.result, department: res.result }) }) that.setData({ which: "部门" }) } function GetSaleKind(that, v) { let method = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetSaleKind"; let params = [{ "InputValue": v, "PageIndex": 0, "PageSize": 100 }]; network.transfer_request(method, params, function (res) { that.setData({ currency: res.result, saletype: res.result }) }) that.setData({ which: "销售类型" }) } function GetGoodsWithUnitPrice(that, v, date) { let unitID = that.data.unit[that.data.isUnit].ID; let customerID = that.data.customer[that.data.customerIndex].ID; let method = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoodsWithUnitPrice"; let params = [{ "Input": v, "PageIndex": 0, "PageSize": 100, "Customer_ID": customerID, "AccountingUnit_ID": unitID, "Date": date }]; network.transfer_request(method, params, function (res) { that.setData({ goods: res.result, }) }) } Page({ /** * 页面的初始数据 */ data: { /** * 页面配置 */ which: "", winWidth: 0, winHeight: 0, // tab切换 currentTab: 0, obj: [], goods: [], idx: 0, currency: [], saletypeIndex: 0, saletype: [{ ID: 0, Name: "请选择销售类型" }], departmentIndex: 0, department: [{ ID: 0, Name: "请选择销售部门" }], customerIndex: 0, customer: [{ ID: 0, Name: "请选择客户" }], isUnit: 0, unit: [{ ID: 0, Name: "请选择会计单位" }], addrs: "", dateTimeArray1: null, dateTime1: null, startYear: 2018, endYear: 2030, loadTime: "" }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var that = this; let ID = Number(options.ID); orderID = ID; let method = "/MainSystem/B3MiniProgramRpc/Rpcs/EmployeeRpc/SaleForecastRpc/Load"; let params = [ID]; network.transfer_request(method, params, function (res) { let customerOld = [{ ID: res.result.Customer_ID, Name: res.result.Customer_Name }] let unitOld = [{ ID: res.result.AccountingUnit_ID, Name: res.result.AccountingUnit_Name }] let departmentOld = [{ ID: res.result.Department_ID, Name: res.result.Department_Name }] let saletypeOld = [{ ID: res.result.SaleKind_ID, Name: res.result.SaleKind_Name }] let addrrrr = res.result.DeliverAddress let loadtimee = timechage.formatTimeTwo(res.result.Date.substring(6, 19), 'Y-M-D h:m') let details = []; for (var i = 0; i < res.result.Details.length; i++) { if (res.result.Details[i].RightRatio == null) { var rightRatio = 1 } if (res.result.Details[i].LeftRatio == null) { var leftRatio = 1 } var dmo = { "Goods_Name": res.result.Details[i].Goods_Name, "SaleGoods_ID": res.result.Details[i].SaleGoods_ID, "goodsNum": res.result.Details[i].UnitNum, "goodsSecondNum": res.result.Details[i].SecondNumber, "Price": res.result.Details[i].Price, "PolicyPrice": res.result.Details[i].PolicyPrice, "Goods_MainUnitRatio": res.result.Details[i].Goods_MainUnitRatio, "Goods_SecondUnitRatio": res.result.Details[i].Goods_SecondUnitRatio, "Goods_UnitConvertDirection": res.result.Details[i].Goods_UnitConvertDirection, "RightRatio": rightRatio, "LeftRatio": leftRatio, "ID": res.result.Details[i].ID } details.push(dmo) } that.setData({ customer: customerOld, unit: unitOld, department: departmentOld, saletype: saletypeOld, addrs: addrrrr, loadTime: loadtimee, obj: details }) setTime(that) }) /** * 获取系统信息 */ wx.getSystemInfo({ success: function (res) { that.setData({ winWidth: res.windowWidth, winHeight: res.windowHeight }); } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 滑动切换tab */ bindChange: function (e) { var that = this; that.setData({ currentTab: e.detail.current }); }, /** * 点击tab切换 */ swichNav: function (e) { var that = this; if (this.data.currentTab === e.target.dataset.current) { return false; } else { that.setData({ currentTab: e.target.dataset.current }) } }, getAddrs: function (e) { this.data.addrs = e.detail.value; }, add: function (e) { let newobj = { Goods_Name: "请选择存货" }; this.data.obj.push(newobj) let aaa = this.data.obj; this.setData({ obj: aaa, }) }, deleteItem: function (e) { let idx = e.target.dataset.idx; let deleteobj = this.data.obj; deleteobj.splice(idx, 1) this.setData({ obj: deleteobj }) }, getGoodsNum: function (e) { //值: //e.detail.value //设置的id //e.target.dataset.index let value = e.detail.value; let idx = e.target.dataset.idx; let end = value.charAt(value.length - 1) if (end != ".") { this.data.obj[idx].goodsNum = Number(value); let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection let RightRatio = this.data.obj[idx].RightRatio let LeftRatio = this.data.obj[idx].LeftRatio var numberNumber = Number(value) / RightRatio * LeftRatio; if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 1) { let secondNumber = numberNumber / (Goods_MainUnitRatio) * (Goods_SecondUnitRatio); this.data.obj[idx].goodsSecondNum = Number(secondNumber) this.setData({ obj: this.data.obj }) } } }, getSecondNum: function (e) { let value = e.detail.value; let idx = e.target.dataset.idx; let end = value.charAt(value.length - 1) if (end != ".") { this.data.obj[idx].goodsSecondNum = Number(value); let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection let RightRatio = this.data.obj[idx].RightRatio let LeftRatio = this.data.obj[idx].LeftRatio var numberNumber = Number(value) / LeftRatio * RightRatio; if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 2) { let unitnumber = numberNumber / (Goods_SecondUnitRatio) * (Goods_MainUnitRatio); this.data.obj[idx].goodsNum = Number(unitnumber) this.setData({ obj: this.data.obj }) } } }, getPrice: function (e) { let value = e.detail.value; let idx = e.target.dataset.idx; this.data.obj[idx].Price = Number(value); }, powerDrawer: function (e) { let that = this; let x = e.currentTarget.dataset.x; if (x == "会计部门") { GetAccountingUnit(that, "") } else if (x == "购货客户") { GetCustomer(that, "") } else if (x == "部门") { GetDepartment(that, "") } else if (x == "销售类型") { GetSaleKind(that, "") } let currentStatu = e.currentTarget.dataset.statu; this.util(currentStatu) }, powerDrawer1: function (e) { let that = this; let currentStatu = e.currentTarget.dataset.statu; let timestamp = Date.parse(new Date()); let date = "/Date(" + timestamp + "+0800)/"; GetGoodsWithUnitPrice(that, "", date) if (e.currentTarget.dataset.idx != null) { let idxx = e.currentTarget.dataset.idx; this.setData({ idx: idxx }) } this.util1(currentStatu) }, itemclick: function (e) { var that = this; var name = e.currentTarget.dataset.name; var id = e.currentTarget.dataset.id; var which = e.currentTarget.dataset.item; var idx = e.currentTarget.dataset.idx; if (which == "会计部门") { that.setData({ isUnit: idx }) } else if (which == "购货客户") { that.setData({ customerIndex: idx }) } else if (which == "部门") { that.setData({ departmentIndex: idx }) } else if (which == "销售类型") { that.setData({ saletypeIndex: idx }) } this.setData({ showModalStatus: false, }) }, itemclick1: function (e) { var that = this; var name = e.currentTarget.dataset.name; var id = e.currentTarget.dataset.data.SaleGoods_ID; var pp = e.currentTarget.dataset.policyprice; var price = e.currentTarget.dataset.data.Price; var Goods_MainUnitRatio = e.currentTarget.dataset.data.Goods_MainUnitRatio var Goods_SecondUnitRatio = e.currentTarget.dataset.data.Goods_SecondUnitRatio var Goods_UnitConvertDirection = e.currentTarget.dataset.data.Goods_UnitConvertDirection if (e.currentTarget.dataset.data.RightRatio == null) { this.data.obj[this.data.idx].RightRatio = Number(1) } if (e.currentTarget.dataset.data.LeftRatio == null) { this.data.obj[this.data.idx].LeftRatio = Number(1) } this.data.obj[this.data.idx].Goods_MainUnitRatio = Number(Goods_MainUnitRatio) this.data.obj[this.data.idx].Goods_SecondUnitRatio = Number(Goods_SecondUnitRatio) this.data.obj[this.data.idx].SaleGoods_ID = Number(id); this.data.obj[this.data.idx].Goods_Name = name; this.data.obj[this.data.idx].Price = Number(price) this.data.obj[this.data.idx].PolicyPrice = Number(pp); this.data.obj[this.data.idx].Goods_UnitConvertDirection = Number(Goods_UnitConvertDirection) this.setData({ showModalStatus1: false, obj: that.data.obj }) }, select: function (e) { var that = this; var which = e.currentTarget.dataset.item; var value = e.detail.value; if (which == "会计部门") { GetAccountingUnit(that, value) } else if (which == "购货客户") { GetCustomer(that, value) } else if (which == "部门") { GetDepartment(that, value) } else if (which == "销售类型") { GetSaleKind(that, value) } }, select1: function (e) { var that = this; var value = e.detail.value; let timestamp = Date.parse(new Date()); let date = "/Date(" + timestamp + "+0800)/"; GetGoodsWithUnitPrice(that, value, date) }, submitForm: function () { let unitID = this.data.unit[this.data.isUnit].ID; let customerID = this.data.customer[this.data.customerIndex].ID; let departmentID = this.data.department[this.data.departmentIndex].ID; let saletypeID = this.data.saletype[this.data.saletypeIndex].ID; let year = this.data.dateTimeArray1[0][this.data.dateTime1[0]] let month = this.data.dateTimeArray1[1][this.data.dateTime1[1]] let date = this.data.dateTimeArray1[2][this.data.dateTime1[2]] let hour = this.data.dateTimeArray1[3][this.data.dateTime1[3]] let minu = this.data.dateTimeArray1[4][this.data.dateTime1[4]] let stringTime = year + "/" + month + "/" + date + " " + hour + ":" + minu + ":00" let timestamp2 = Date.parse(new Date(stringTime)); let update = "/Date(" + timestamp2 + "+0800)/"; if (customerID == 0) { wx.showToast({ title: '请选择购货客户' }) return; } if (unitID == 0) { wx.showToast({ title: '请选择会计单位' }) return; } if (departmentID == 0) { wx.showToast({ title: '请选择销售部门', }) return; } if (saletypeID == 0) { wx.showToast({ title: '请选择销售类型', }) return; } if (this.data.addrs == "") { wx.showToast({ title: '请填写送货地址', }) return; } let detailsArray = []; for (var i = 0; i < this.data.obj.length; i++) { if (this.data.obj[i].Goods_Name == "请选择存货") { wx.showToast({ title: '存货不能为空', }) return; } if (this.data.obj[i].goodsNum == null) { wx.showToast({ title: '报货数量不能为空', }) return; } if (this.data.obj[i].goodsSecondNum == null) { wx.showToast({ title: '辅数量不能为空', }) return; } var olddID = 0; if (this.data.obj[i].ID == null) { olddID = 0 } else { olddID = Number(this.data.obj[i].ID) } var dmo = { SaleGoods_ID: this.data.obj[i].SaleGoods_ID, UnitNum: this.data.obj[i].goodsNum, SecondNumber: this.data.obj[i].goodsSecondNum, Price: this.data.obj[i].Price, PolicyPrice: this.data.obj[i].PolicyPrice, ID: olddID } detailsArray.push(dmo) } let method = '/MainSystem/B3MiniProgramRpc/Rpcs/ManagerRpc/OrderRpc/Update'; let params = [{ "Customer_ID": customerID, "LoadTime": update, "AccountingUnit_ID": unitID, "Department_ID": departmentID, "SaleKind_ID": saletypeID, "DeliverAddress": this.data.addrs, "Details": detailsArray, "ID": orderID }]; network.transfer_request(method, params, function (res) { if (res.result == null) { wx.showModal({ title: '提示', content: '修改成功,是否返回上级列表', success: function (res) { if (res.cancel) { } else { wx.navigateBack({ delta: 1 }) } }, fail: function (res) { } }) } }) }, changeDateTime1(e) { this.setData({ dateTime1: e.detail.value }); }, util: function (currentStatu) { /* 动画部分 */ // 第1步:创建动画实例 var animation = wx.createAnimation({ duration: 200, //动画时长 timingFunction: "linear", //线性 delay: 0 //0则不延迟 }); // 第2步:这个动画实例赋给当前的动画实例 this.animation = animation; // 第3步:执行第一组动画 animation.opacity(0).rotateX(-100).step(); // 第4步:导出动画对象赋给数据对象储存 this.setData({ animationData: animation.export() }) // 第5步:设置定时器到指定时候后,执行第二组动画 setTimeout(function () { // 执行第二组动画 animation.opacity(1).rotateX(0).step(); // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 this.setData({ animationData: animation }) //关闭 if (currentStatu == "close") { this.setData({ showModalStatus: false, }); } }.bind(this), 200) // 显示 if (currentStatu == "open") { // 调用函数时,传入new Date()参数,返回值是日期和时间 // var timet = utilll.formatTime(new Date()); // 再通过setData更改Page()里面的data,动态更新页面的数据 this.setData({ // time: timet, showModalStatus: true, }); } }, util1: function (currentStatu) { /* 动画部分 */ // 第1步:创建动画实例 var animation = wx.createAnimation({ duration: 200, //动画时长 timingFunction: "linear", //线性 delay: 0 //0则不延迟 }); // 第2步:这个动画实例赋给当前的动画实例 this.animation = animation; // 第3步:执行第一组动画 animation.opacity(0).rotateX(-100).step(); // 第4步:导出动画对象赋给数据对象储存 this.setData({ animationData: animation.export() }) // 第5步:设置定时器到指定时候后,执行第二组动画 setTimeout(function () { // 执行第二组动画 animation.opacity(1).rotateX(0).step(); // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 this.setData({ animationData: animation }) //关闭 if (currentStatu == "close") { this.setData({ showModalStatus1: false }); } }.bind(this), 200) // 显示 if (currentStatu == "open") { // 调用函数时,传入new Date()参数,返回值是日期和时间 // var timet = utilll.formatTime(new Date()); // 再通过setData更改Page()里面的data,动态更新页面的数据 this.setData({ // time: timet, showModalStatus1: true }); } } })