define(function (require, exports, module) { let BaseBiz = require('apps/rht/base/rhtBiz'); let Service = require('./lbl2606service'); let queryTpl = require('text!./custom-built-query.tpl') let XWindow = require('system/views/pages/xlswindow/import-window.js') function Biz(vm) { //继承第一步,构造继承 BaseBiz.call(this, vm); } //继承第二步,方法继承 inherits(Biz, BaseBiz); Biz.prototype.getCustomBuiltQuery = function () { return queryTpl; }; Biz.prototype.initCompleted = function () { this.super('initCompleted'); let self = this; self.$lblrule = self.getElement('.lbl-rule'); self.$lbltype = self.getElement('.lbl-type').textbox(); self.$lblclass = self.getElement('.lbl-class').textbox(); self.$lblformat = self.getElement('.lbl-format'); self.$lblcount = self.getElement('.lbl-count').textbox(); self.$lblplucode = self.getElement('.lbl-plucode').textbox(); self.$lblformat.combobox({ valueField: 'lblfrtid', textField: 'lblfrtname', data: [] }); initLabelRuleType(self); initLabelClass(self); initLabelFormat(self); initPluInput(self); self.getElement('.page-widget-querypanel').hide(); self.callView('resize'); }; function initLabelRuleType(self) { let ret = Service.getSlideMenuData("actExecute", "GetLabelType", "", "", "", "", ""); if (ret.result !== 1) { Store.messager.err(ret.message); return false; } if (ret.data !== null) { let ruledata = [{ 'enumvalueid': '<默认>', 'enumvaluename': '<默认>' }].concat(ret.data); self.$lblrule.combobox({ valueField: 'enumvalueid', textField: 'enumvaluename', data: ruledata }); self.$lblrule.combobox('setValue', '<默认>'); let typedata = [{ 'enumvalueid': '<全部>', 'enumvaluename': '<全部>' }].concat(ret.data); self.$lbltype.combobox({ valueField: 'enumvalueid', textField: 'enumvaluename', data: typedata }); self.$lbltype.combobox('setValue', '<全部>'); } } function initLabelClass(self) { let ret = Service.getSlideMenuData("actExecute", "GetLabelClass", "", "", "", "", ""); if (ret.result !== 1) { Store.messager.err(ret.message); return false; } if (ret.data !== null) { self.$lblclass.combobox({ valueField: 'lblclscode', textField: 'lblclsname', data: ret.data, onChange: function () { initLabelFormat(self); } }); self.$lblclass.combobox('select', ret.data[0].lblclscode); } } function initLabelFormat(self) { let lblclasscode = self.$lblclass.combobox('getValue'); let ret = Service.getSlideMenuData("actExecute", "GetLabelFormat", lblclasscode, "", "", "", ""); if (ret.result !== 1) { Store.messager.err(ret.message); return false; } if (ret.data !== null) { self.$lblformat.combobox('loadData', ret.data); self.$lblformat.combobox('select', ret.data[0].lblfrtid); } } function initPluInput(self) { self.$lblcount.textbox("setValue", "1"); self.$lblplucode.textbox('textbox').bind('keydown', function (e) { if (e.keyCode === 13) { let pluCode = self.$lblplucode.textbox('getValue'); let exists = false; for (let element of self.dsMaster.rows) { if (pluCode === element.PluCode || pluCode === element.BarCode) { Store.messager.confirm("商品(" + pluCode + ")已经存在,是否继续添加?", function (go) { if (!go) { return; } beginPluCodeInput(self, pluCode); }) exists = true; break; } } if (!exists) { beginPluCodeInput(self, pluCode); } } }) } function beginPluCodeInput(self, pluCode) { let orgCode = Store.logOn.orgCode; let loopnum = Number(self.$lblcount.textbox('getValue')); let i = 0; while (i < loopnum) { doPluCodeInput(pluCode, orgCode, self); i++; } self.$lblplucode.textbox('textbox').select(); self.$lblplucode.textbox('textbox').focus(); } function doPluCodeInput(inPlucode, inOrgcode, self) { const orgCode = inOrgcode; const pluCode = inPlucode; let ret = Service.getSlideMenuData("actExecute", "GetPluPrice", orgCode, pluCode, "", "", ""); if (ret.result !== 1) { Store.messager.err(ret.message); return false; } if (ret.data === null) { Store.messager.warn('商品(' + pluCode + ')不存在,请重新录入。'); self.$lblcount.textbox('textbox').focus(); } else { let lblRule = self.$lblrule.combobox('getValue'); if (lblRule === '<默认>') { addPluByDefaultRule(ret.data, self); } else { addPluByUsertRule(ret.data, self); } } } function addPluByDefaultRule(data, self) { for (let element of data) { let lblDataType = element.lbldatatype; if (lblDataType !== '02') { let iPrice = element.price; let iHyPrice = element.HyPrice; if (iPrice !== iHyPrice && iHyPrice > 0) { lblDataType = '06'; } let newRow = self.dsMaster.addRow(); newRow.setColumnValue('BillNo', element.billno); newRow.setColumnText('LblDataType', lblDataType); newRow.setColumnValue('BgnDate', element.bgndate); newRow.setColumnValue('EndDate', element.enddate); newRow.setColumnText('OrgCode', element.orgcode); newRow.setColumnValue('PluID', element.pluid); newRow.setColumnValue('PluCode', element.plucode); newRow.setColumnValue('PluName', element.pluname); newRow.setColumnValue('BarCode', element.barcode); newRow.setColumnValue('Spec', element.spec); newRow.setColumnValue('Unit', element.unit); newRow.setColumnValue('CargoNo', element.cargono); newRow.setColumnValue('Produce', element.produce); newRow.setColumnValue('Grade', element.grade); newRow.setColumnValue('Quality', element.quality); newRow.setColumnValue('Price', element.price); newRow.setColumnValue('HyPrice', element.hyprice); newRow.setColumnValue('PfPrice', element.pfprice); newRow.setColumnValue('YhPrice', element.yhprice); newRow.setColumnValue('PluAbbrName', element.pluabbrname); newRow.setColumnValue('BrandCode', element.brandcode); newRow.setColumnValue('BrandName', element.brandname); newRow.setColumnValue('PackUnit', element.packunit); newRow.setColumnValue('PackQty', element.packqty); newRow.setColumnValue('UDP1', element.udp1); newRow.setColumnValue('UDP2', element.udp2); newRow.setColumnValue('UDP3', element.udp3); newRow.setColumnValue('UDP4', element.udp4); newRow.setColumnValue('UDP5', element.udp5); newRow.setColumnValue('UDP6', element.udp6); newRow.setColumnValue('UDP7', element.udp7); newRow.setColumnValue('UDP8', element.udp8); newRow.setColumnValue('UDP9', element.udp9); newRow.setColumnValue('UDP10', element.udp10); newRow.setColumnValue('KcCount', element.kccount); newRow.setColumnValue('EtpCode', element.etpcode); newRow.setColumnValue('EtpName', element.etpname); break; } } } function addPluByUsertRule(data, self) { let lblUsrRule = self.$lblrule.combobox('getValue'); let lblFindRule = ''; let pluBarMss = self.$lblplucode.textbox('getValue'); let isFind = '0'; data.forEach(element => { if (lblUsrRule === element.lbldatatype) { isFind = '1'; } }); if (isFind === '0') { Store.message.tip('当前组织不经营该商品。'); } if (lblUsrRule === '00' || lblUsrRule === '03' || lblUsrRule === '02' || lblUsrRule === '06' || lblUsrRule === '01') { lblFindRule = lblUsrRule; } else if (lblUsrRule === '06') { lblFindRule = '00'; } if (lblFindRule !== '') { data.forEach(element => { if (lblUsrRule === element.lbldatatype) { isFind = '1'; } }); if (isFind === '0') { Store.messager.confirm("商品(" + pluBarMss + ")不是[" + lblUsrRule + "]商品,是否继续添加?", function (go) { if (!go) { return; } }) } } else { let curelement; for (let element of data) { let lblDataType = element.lbldatatype; if ((lblDataType === '00') || (lblDataType !== '02' && lblDataType !== '03' && lblDataType !== '05')) { curelement = element; break; } } if (lblDataType === '00') { Store.messager.confirm("商品(" + pluBarMss + ")不是[" + lblUsrRule + "]商品,是否继续添加?", function (go) { if (!go) { return; } }) } let newRow = self.dsMaster.addRow(); newRow.setColumnValue('BillNo', curelement.billno); newRow.setColumnText('lbldatatype', lblRule); newRow.setColumnValue('IsSel', '1'); newRow.setColumnValue('BgnDate', element.bgndate); newRow.setColumnValue('EndDate', element.enddate); newRow.setColumnText('OrgCode', element.orgcode); newRow.setColumnValue('PluID', element.pluid); newRow.setColumnValue('PluCode', element.plucode); newRow.setColumnValue('PluName', element.pluname); newRow.setColumnValue('BarCode', element.barcode); newRow.setColumnValue('Spec', element.spec); newRow.setColumnValue('Unit', element.unit); newRow.setColumnValue('CargoNo', element.cargono); newRow.setColumnValue('Produce', element.produce); newRow.setColumnValue('Grade', element.grade); newRow.setColumnValue('Quality', element.quality); newRow.setColumnValue('Price', element.price); newRow.setColumnValue('HyPrice', element.hyprice); newRow.setColumnValue('PfPrice', element.pfprice); newRow.setColumnValue('YhPrice', element.yhprice); newRow.setColumnValue('PluAbbrName', element.pluabbrname); newRow.setColumnValue('BrandCode', element.brandcode); newRow.setColumnValue('BrandName', element.brandname); newRow.setColumnValue('PackUnit', element.packunit); newRow.setColumnValue('PackQty', element.packqty); newRow.setColumnValue('UDP1', element.udp1); newRow.setColumnValue('UDP2', element.udp2); newRow.setColumnValue('UDP3', element.udp3); newRow.setColumnValue('UDP4', element.udp4); newRow.setColumnValue('UDP5', element.udp5); newRow.setColumnValue('UDP6', element.udp6); newRow.setColumnValue('UDP7', element.udp7); newRow.setColumnValue('UDP8', element.udp8); newRow.setColumnValue('UDP9', element.udp9); newRow.setColumnValue('UDP10', element.udp10); newRow.setColumnValue('KcCount', element.kccount); newRow.setColumnValue('EtpCode', element.etpcode); newRow.setColumnValue('EtpName', element.etpname); } } //按钮事件控制 Biz.prototype.doOp = function (opCode) { let self = this; if (opCode == 'clearall') { self.onclearall(); } if (opCode == 'import') { self.onimpexcel(); } if (opCode == 'previewlabel') { self.onpreviewlabel(); } if (opCode == 'printlabel') { self.onprintlabel(); } }; //导入事件处理 Biz.prototype.onimpexcel = function () { let self = this let win = new XWindow({}, function (data) { data.forEach(item => { if (item['商品编码']) { beginPluCodeInput(self, item['商品编码']) } }) }); win.open(); }; Biz.prototype.onclearall = function () { this.dsMaster.clear(); }; Biz.prototype.onpreviewlabel = function () { let lblFrtId = this.$lblformat.combobox('getValue'); if (this.dsMaster.rows.length!==0){ let curRow = this.dsMaster.currentRow; if (curRow){ if (curRow.PluCode !=='' && curRow.PluName !==''){ let pd =[initPrintData(this.dsMaster)]; Store.bizDao.printLabel(lblFrtId, '1', pd, null, function (result) { }) } } } }; Biz.prototype.onprintlabel = function () { let lblFrtId = this.$lblformat.combobox('getValue'); if (this.dsMaster.rows.length!==0){ let curRow = this.dsMaster.currentRow; if (curRow){ if (curRow.PluCode !=='' && curRow.PluName !==''){ let pd =[initPrintData(this.dsMaster)]; Store.bizDao.printLabel(lblFrtId, '0', pd, null, function (result) { }) } } } }; function initPrintData(ds) { let data = { //uiObjCode: ds.uiObjCode, //uiObjName: ds.uiObjName, uiObjCode: 26095, uiObjName: '标签打印数据', isMaster: ds.isMaster, fieldList: [], forPrint: [] }; for (let i = 0; i < ds.columns.length; i++) { let col = ds.columns[i]; data.fieldList.push({ fieldName: col.fieldName, fieldDes: col.dispName, dataType: col.dataType, dataWidth: col.dataWidth, dataDec: col.dataDec, }); } for (let k = 0; k < ds.rows.length; k++) { let row = ds.rows[k]; data.forPrint.push(row.getPrintData()); } return data; }; return Biz; });