const _Http = getApp().globalData.http, file = require("../../../../utils/FormatTheAttachment"), currency = require("../../../../utils/currency"), CNY = num => currency(num, { symbol: "¥", precision: 2 }).format(); let queue = [], downCounter = null, Counter = null; Component({ properties: { disabled: { type: Boolean }, //禁用 isAdd: { type: Boolean, value: false } }, data: { sa_orderid: 0, "content": { nocache: true, "pageNumber": 1, pageTotal: 1, total: null }, toolcount: 1 }, lifetimes: { detached: function () { if (downCounter) { clearTimeout(downCounter); this.changeItem(queue) } }, }, methods: { /* 获取产品列表 */ getList(obj, init) { let content = this.data.content; content.sa_orderid = obj.id; if (init) content.pageNumber = 1; _Http.basic({ "id": "20230116104102", content }).then(res => { console.log("工具借用列表", res) if (res.code != '1') return wx.showToast({ title: res.msg, icon: "none" }) res.data = res.data.map(value => { if (value.attinfos.length != 0) { value.attinfos = file.fileList(value.attinfos) let image = value.attinfos.find(v => v.fileType == "image"); value.cover = image ? image.cover : ""; } value.amount = CNY(value.amount); value.qty = value.qty * obj.toolcount; return value; }) let page = getCurrentPages().find(v => v.__route__ == 'packageA/borrow/detail').data.detail; let base = { sa_orderid: page.sa_orderid, sys_enterpriseid: page.sys_enterpriseid, sa_contractid: page.sa_contractid, type: page.type, }; this.setData({ list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data), "content.pageNumber": res.pageNumber + 1, "content.pageSize": res.pageSize, "content.pageTotal": res.pageTotal, "content.total": res.total, sa_orderid: obj.id, toolcount: obj.toolcount, base }) }) }, /* 统一交期 */ dateChange(e) { let that = this; wx.showModal({ cancelText: getApp().globalData.Language.getMapText('取消'), confirmText: getApp().globalData.Language.getMapText('确定'), title: getApp().globalData.Language.getMapText('提示'), content: getApp().globalData.Language.getMapText('是否确定将当前产品列表交期统一设置为') + `:${e.detail.value}`, complete: (res) => { if (res.confirm) _Http.basic({ "id": 20230104143802, "content": { "sa_orderid": that.data.sa_orderid, "needdate": e.detail.value } }).then(res => { console.log('统一设置交期', res) wx.showToast({ title: res.code == '1' ? getApp().globalData.Language.getMapText('设置成功') : res.msg, icon: "none" }) if (res.code == '1') that.setData({ list: that.data.list.map(v => { v.needdate = e.detail.value; return v }) }) }) } }) }, /* 修改 */ changeProduct({ detail }) { let obj = detail, index = this.data.list.findIndex(v => v.itemid == detail.itemid), data = this.data.list[index], calculatePrice = data.qty != obj.qty; if (data.qty == obj.qty && data.remarks == obj.remarks && data.needdate == obj.needdate) return; obj.price = data.price; _Http.basic({ "id": 20230116101602, "content": { ...this.data.base, "items": [obj] } }).then(res => { console.log("产品修改", res) if (res.code != '1') { wx.showToast({ title: res.msg, icon: "none" }); obj = data; }; data = { ...data, ...obj }; data.amount = CNY(currency(obj.qty).multiply(data.price)) if (res.code == '1' && calculatePrice) { let page = getCurrentPages()[getCurrentPages().length - 1]; if (page) page.getDetail() } this.setData({ [`list[${index}]`]: data }) }) }, /* 删除 */ deleteItem({ detail }) { let that = this; wx.showModal({ cancelText: getApp().globalData.Language.getMapText('取消'), confirmText: getApp().globalData.Language.getMapText('确定'), title: getApp().globalData.Language.getMapText('提示'), content: getApp().globalData.Language.getMapText('是否确认删除') + `“${detail.itemname}”?`, complete: (res) => { if (res.confirm) _Http.basic({ "id": 20230116103402, "content": { sa_orderid: detail.sa_orderid, "sa_orderitemsids": [ detail.sa_orderitemsid ] } }).then(s => { if (s.code != '1') return wx.showToast({ title: res.msg, icon: "none" }); that.setData({ list: that.data.list.filter(v => v.sa_orderitemsid != detail.sa_orderitemsid) }); /* 更新金额 */ let page = getCurrentPages()[getCurrentPages().length - 1]; let amount = (page.data.detail.amount - detail.amount).toFixed(2); if (page) page.setData({ "detail.amount": amount - 0 }) }) } }) }, /* 去添加产品 */ addProduct() { wx.navigateTo({ url: `/select/product/index?params=${JSON.stringify({ "id":20230116111602, "content": { nocache:true, "sa_orderid": this.data.sa_orderid, //订单ID brandids:[], "pageNumber": 1, "pageTotal": 1, "total": 0, "pageSize": 20, "where": { "condition": "" } } })}` }); getApp().globalData.handleSelect = this.handleSelect.bind(this); }, /* 处理新增产品 */ handleSelect(detail) { console.log(this.data.sa_orderid) wx.showModal({ cancelText: getApp().globalData.Language.getMapText('取消'), confirmText: getApp().globalData.Language.getMapText('确定'), title: getApp().globalData.Language.getMapText('提示'), content: getApp().globalData.Language.getMapText('是否确认添加') + ' ' + detail.result.length + getApp().globalData.Language.getMapText('件商品') + ' ' + `?`, complete: (res) => { if (res.confirm) _Http.basic({ "id": 20230116101602, "content": { ...this.data.base, "items": detail.list.map(v => { return { sa_orderitemsid: 0, "itemid": v.itemid, //商品ID "qty": 1, //数量 } }) } }).then(s => { console.log('新增产品', s) wx.showToast({ title: s.code == '1' ? getApp().globalData.Language.getMapText('添加成功') : s.msg, icon: "none" }); if (s.code == '1') setTimeout(() => { getCurrentPages().find(v => v.route == 'packageA/borrow/detail').getDetail(true); wx.navigateBack(); // this.updateThePrice(); }, 300) }) } }); }, /* 步进器数值改变 */ stepperChange(e) { switch (e.type) { case 'plus': this.data.toolcount += 1; break; case 'minus': this.data.toolcount -= 1; break; case 'blur': this.data.toolcount = e.detail.value; break; } console.log(this.data.toolcount) this.setToolcount(); }, /* 设置总数 */ setToolcount() { clearTimeout(Counter); let page = getCurrentPages().find(v => v.__route__ == 'packageA/borrow/detail'); Counter = setTimeout(() => { _Http.basic({ "id": 20230202135502, "content": { "sa_orderid": this.data.sa_orderid, toolcount: this.data.toolcount } }).then(res => { console.log("修改套数", res) console.log(page.data.detail.toolcount) if (res.code != '1') { wx.showToast({ title: res.msg, icon: "none" }); this.setData({ toolcount: page.data.detail.toolcount }) } else { page.getDetail(true); } }) }, 300) }, /* 使用接口更新总价 */ updateThePrice() { _Http.basic({ "id": 20230105101102, "content": { "sa_orderid": this.data.sa_orderid }, }).then(res => { console.log("获取列表总价", res) if (res.code != '1') return getApp().globalData.Language.showToast('产品总价更新失败') let page = getCurrentPages()[getCurrentPages().length - 1]; if (page) page.setData({ "detail.amount": res.data.amount - 0 }) }) } } })