/* * @Description: * @version: * @Author: chen jing wu * @Date: 2023-04-20 15:04:03 * @LastEditors: chen jing wu * @LastEditTime: 2023-05-06 17:47:43 */ // const columns=[ // { "label" : "失单品牌", "apiName" : "LostBrandName__c" ,"fieldType":"picklist","objectName":"PCLLostProduct__c", "readOnly":true,"value":"--无--"}, // { "label" : "失单对手型号", "apiName" : "LostProduct__c" ,"fieldType":"lookup","objectName":"PCLLostProduct__c","disable":"false"}, // { "label" : "失单数量", "apiName" : "Quantity__c","fieldType":"text","objectName":"PCLLostProduct__c" }, // { "label" : "失单对手型号(手动)", "apiName" : "LostProductMannual__c","fieldType":"text","objectName":"PCLLostProduct__c" }, // { "label" : "失单产品类别", "apiName" : "ProductClass__c","fieldType":"picklist","objectName":"PCLLostProduct__c" }, // { "label" : "失单产品区分", "apiName" : "ProductCategory__c","fieldType":"picklist","objectName":"PCLLostProduct__c" } // ]; const columns2=[ { label: '--无--', value: '' }, { label: '无信息,跟进不及时', value: '无信息,跟进不及时' }, { label: '价格', value: '价格' }, { label: '医生偏好', value: '医生偏好' }, { label: '服务不到位', value: '服务不到位' }, { label: '行政决策', value: '行政决策' }, { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' }, { label: '渠道因素', value: '渠道因素' }, { label: '某种产品缺失', value: '某种产品缺失' }, { label: '采购平衡', value: '采购平衡' } ]; import { api, wire,track,LightningElement } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import save from '@salesforce/apex/lexPCLLostReportLwcController.save'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { loadStyle, loadScript } from 'lightning/platformResourceLoader'; import setbrand from '@salesforce/apex/lexPCLLostReportLwcController.setBrand'; import init from '@salesforce/apex/lexPCLLostReportLwcController.init'; import multiSelectCombobox from 'c/multiSelectCombobox' import lexMultiSelectCombobox from 'c/lexmultiSelectCombobox'; import searchBrands from '@salesforce/apex/lexPCLLostReportLwcController.searchBrands'; import getNewLostBrand from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostBrand'; import getLostReport from '@salesforce/apex/lexPCLLostReportLwcController.getLostReport'; import searchProduct from '@salesforce/apex/lexPCLLostReportLwcController.searchProduct'; export default class LexPCLLostReportPage extends LightningElement { @track records; @api recordJson; // @track columns=columns; @track columns2=columns2; @api reasonValue; oppId = '0061000001R2xjWAAR'; lostReportId = ''; pageStatus = 'Create'; lostType = '失单'; submitFlag = ''; searchResult; brandsCount = [""]; @track flag = true; @track LostReport = { LostBrands: [ ], lostReport: {} }; @track brandOptions = []; columns=[ { "label" : "失单品牌", "apiName" : "LostBrandName__c" ,"fieldType":"picklist","objectName":"PCLLostProduct__c", "readOnly":true,"value":"--无--"}, { "label" : "失单对手型号", "apiName" : "LostProduct__c" ,"fieldType":"lookup","objectName":"PCLLostProduct__c","disable":"false","searchfield":"'无'"}, { "label" : "失单数量", "apiName" : "Quantity__c","fieldType":"text","objectName":"PCLLostProduct__c" }, { "label" : "失单对手型号(手动)", "apiName" : "LostProductMannual__c","fieldType":"text","objectName":"PCLLostProduct__c" }, { "label" : "失单产品类别", "apiName" : "ProductClass__c","fieldType":"picklist","objectName":"PCLLostProduct__c" }, { "label" : "失单产品区分", "apiName" : "ProductCategory__c","fieldType":"picklist","objectName":"PCLLostProduct__c"} ]; connectedCallback(){ init({ oppId1: this.oppId, lostReportId1: this.lostReportId, pageStatus1: this.pageStatus, lostType1: this.lostType, submitFlag1: this.submitFlag }).then(result=>{ console.log(result); if(result.message != null){ if(result.message == '提交成功!'){ this.showToast(result.message,"success"); this.LostReport = result.LostReport; console.log(this.LostReport); }else{ console.log("211"); this.showToast(result.message,"error"); console.log("985"); } }else{ this.LostReport = result.LostReport; this.LostReport.lostReport.LostTotalAmount__c = 0.0; this.LostReport.LostBrands[0].columns = JSON.parse(JSON.stringify(this.columns)); console.log("520"); } console.log('success'); }).catch(error=>{ console.log("error"); console.log(error); }); searchBrands().then(result=>{ console.log(result); this.brandOptions = JSON.parse(result); console.log(this.brandOptions); // const div = this.template.querySelector('[data-Id="initDiv"]'); // console.log(success); // div.classList.add("mynewclass"); console.log(this.LostReport); const multiCombobox = this.template.querySelector('c-multi-select-combobox'); multiCombobox.refreshOptions(this.brandOptions); }).catch(error=>{ console.log("error"); console.log(error); }); } get isInit(){ if(this.LostReport.LostBrands[0].columns == undefined){ return false; }else{ return true; } } //失单类型 RecordTypeOptions = [{ label: '--无--', value: '' }, { label: '失单', value: '失单' }, { label: '部分失单', value: '部分失单' }]; @wire(CurrentPageReference) getStateParameters(currentPageReference) { console.log(111); console.log(currentPageReference); if (currentPageReference) { const urlValue = currentPageReference.state.recordId; if (urlValue) { let str = `${urlValue}`; console.log("str"); console.log(str); this.oppId = str; } } } getBrandLabel(index){ return "失单品牌" + (this.LostReport.LostBrands[index].lineno + 1); } // connectedCallback(){ // this.initAll(); // } // connectedCallback(){ // console.log("1"); // initForApex({ // oppId1: this.oppId, // lostReportId1: this.lostReportId, // pageStatus1: this.pageStatus, // lostType1: this.lostType, // submitFlag1: this.submitFlag // }).then(()=>{ // console.log("2"); // init().then(result=>{ // console.log("3"); // console.log(result); // if(result.message == '提交成功!'){ // this.showToast(result.message,"success"); // this.LostReport = result.LostReport; // }else{ // console.log("211"); // this.showToast(result.message,"error"); // console.log("985"); // } // }); // }); // } getParamValue(paramName) { // Use the URLSearchParams API to get the value of a query parameter const params = new URLSearchParams(window.location.search); return params.get(paramName); } addBrandJs() { getNewLostBrand({ lineNo: this.LostReport.LostBrands.length }).then(result=>{ this.LostReport.LostBrands.push(result); this.LostReport.LostBrands[this.LostReport.LostBrands.length - 1].columns = JSON.parse(JSON.stringify(this.columns)); }); } submitJS() { submit().then(result=>{ if(result.get('error')){ this.showToast(result.get('error'),"error"); }else{ this[NavigationMixin.Navigate]({ type: 'standard__recordPage', attributes: { uri: result.get('uri'), Id: result.get('Id'), pageStatus: result.get('pageStatus'), submitFlag: result.get('submitFlag') } }); } }); } addProductJs(number) { } RemoveJs(number) { Remove().then(()=>{ }); } // add tcm 20211118 start searchJs(topNum, secondNum) { search().then(()=>{ }); } get pageStatusIsCreateOrEdit() { return this.pageStatus === 'Create' || this.pageStatus === 'Edit'; } get isBrandCount2(){ var flag = true; if(this.LostReport.LostBrands.length > 1){ flag = false; } return flag; } deleteBrandJs(event){ var str = event.target.name; this.columnsArrIndex = 0; this.LostReport.LostBrands.splice(str,1); console.log(this.LostReport); } getMutiboxName(index){ return `mutibox${index}`; } // add tcm 20211118 end setLostTotalAmount() { var elements = this.template.querySelectorAll('[data-id="TotalAmount"]'); var tempLostAmount = 0.0; elements.forEach(element => { console.log(element.value); if(element.value != 0){ tempLostAmount = tempLostAmount + parseFloat(element.value); } }); this.LostReport.lostReport.LostTotalAmount__c = tempLostAmount; // //console.log('setLostTotalAmount start:'); // var totalAmount = this.template.querySelector('[data-id="LostTotalAmount"]'); // var totalAmountHidden = this.template.querySelector('[data-id="LostTotalAmountHidden"]'); // var brandAmountObjects = this.template.querySelectorAll('[data-id="BrandContent:LostPriceOut"]'); // var brandCompanyObjects = this.template.querySelectorAll('[data-id="BrandContent:Lost_By_CompanyOut"]'); // if (!!totalAmount && !!totalAmountHidden) { // var tempLostAmount = 0.0; // var brandCount = parseInt(this.brandCount); // //console.log(brandCount); // for (var i = 0; i < brandCount; i++) { // var brandAmountObject = brandAmountObjects[i]; // var brandCompanyObject = brandCompanyObjects[i]; // if (!!brandAmountObject && !!brandCompanyObject) { // var brandCompanyText = brandCompanyObject.innerText; // var brandCompanyValue = brandCompanyObject.value; // if (!!brandCompanyText && brandCompanyText !== '--无--' && !!brandCompanyValue) { // var brandAmount = parseFloat(brandAmountObject.value); // tempLostAmount = tempLostAmount + brandAmount; // } // } // } // totalAmount.innerHTML = toNumComma(tempLostAmount); // totalAmountHidden.value = tempLostAmount; // } // //console.log('setLostTotalAmount end'); } setBrandName(brandNumber) { setbrand().then(()=>{ this.clearBrandMannualName(); }); } setBrandMannualName(event) { var index = event.target.name; const payload = event.detail.payload; const payloadType = event.detail.payloadType; this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c = payload.value; if(payloadType === 'multi-select'){ this.setLostTotalAmount(); this.setDefaultBrand(payload.value,index); this.clearBrandMannualName(payload.value,index); } } setDefaultBrand(value,index){ console.log("123"); console.log(index); this.LostReport.LostBrands[index].columns[0].value = value; // this.columnsArr[index][0].value = value; // this.columns[0].value = value; } // 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用 thh 2022-01-13 start clearBrandMannualName(value,index){ if (value == '其他') { var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]'); elements[index].disabled = false; this.LostReport.LostBrands[index].columns[1].disable = true; } else { var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]'); elements[index].value = ''; elements[index].disabled = true; this.LostReport.LostBrands[index].columns[1].disable = false; } } cancel() { // Navigate to the specified opportunity page using the NavigationMixin console.log("321"); this[NavigationMixin.Navigate]({ type: 'standard__recordPage', attributes: { recordId: this.oppId, actionName: 'view' } }); } showToast(msg,type) { const event = new ShowToastEvent({ title: '', message: msg, variant: type }); this.dispatchEvent(event); this.dispatchEvent(new CloseActionScreenEvent()); } handleStatus1Change(){ } handleBrandChange(value){ } saveBrandJs(event) { var index = event.target.name; var tables = this.template.querySelectorAll("c-lex-dynamic-table"); if(tables.length > 1){ if(index == "save"){ for(let i=0;i < table.length;i++){ var products = this.LostReport.LostBrands[i].LostProducts; var table = tables[i]; if(table!=undefined){ var records = table.retrieveRecords(); for(let j=0;j 1){ for(let i=0;i{ // if(result){ // this.showToast(result,"success"); // } // }); } setProductClass(){ console.log("sss"); console.log(this.template.querySelector("c-lex-dynamic-table")); console.log("ddd"); } handleLostReasonMainChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = value; } handleLostReasonSubChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = value; } handleLostByCompanyMannualChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c = value; } handleLostPriceOutChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.LostPrice__c = value; } handleAgencyOutChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.Agency__c = value; } handleAgencyMannualOutChange(event){ var index = event.target.name; var value = event.target.value; this.LostReport.LostBrands[index].lostBrand.AgencyMannual__c = value; } messageTest(){ const element = this.template.querySelector('lightning-button[name="mytest"]'); element.set } dataCheck(){ if(string.isBlank(LostReport.LostReport.LostType__c)) { LostReport.LostReport.LostType__c.addError('必须填写失单类型!'); flag = false; } this.LostReport.LostBrands.forEach(tempLostBrand=>{ system.debug('aaaa1++'+tempLostBrand.lostBrand.Lost_By_Company_Mannual__c); if(string.isblank(tempLostBrand.lostBrand.Lost_By_Company__c)) { tempLostBrand.lostBrand.Lost_By_Company__c.addError('请填写失单品牌!'); this.flag = false; }// fy SWAG-CCC6F6 start else if('其他'.equals(tempLostBrand.lostBrand.Lost_By_Company__c)&&string.isblank(tempLostBrand.lostBrand.Lost_By_Company_Mannual__c)){ tempLostBrand.lostBrand.Lost_By_Company_Mannual__c.addError('请填写失单品牌(手动)!'); this.flag = false; }// fy SWAG-CCC6F6 end system.debug('aaaa2++'+tempLostBrand.lostBrand.Lost_By_Company_Mannual__c); if(tempLostBrand.lostBrand.LostPrice__c == null) { tempLostBrand.lostBrand.LostPrice__c.addError('失单金额必填!'); this.flag = false; } if(string.isblank(tempLostBrand.lostBrand.Lost_reason_main__c )) { tempLostBrand.lostBrand.Lost_reason_main__c.addError('失单理由(主)必填!'); this.flag = false; } if(string.isblank(tempLostBrand.lostBrand.Agency__c )) { tempLostBrand.lostBrand.Agency__c.addError('中标经销商必填!'); this.flag = false; } // 检查是否有超过1个有数的产品 var productCount = 0; tempLostBrand.LostProducts.forEach(temlostProduct=>{ if (temlostProduct.LostProductss.LostProduct__c != null || temlostProduct.LostProductss.LostProductMannual__c != null) { System.debug('失单型号' + temlostProduct.LostProductss.LostProduct__c); System.debug('失单型号手动' + temlostProduct.LostProductss.LostProductMannual__c); productCount ++; } // update tcm 20211123 start if((temlostProduct.LostProductss.LostProduct__c!=null || temlostProduct.LostProductss.LostProductMannual__c!=null)&&(temlostProduct.LostProductss.Quantity__c==null || temlostProduct.LostProductss.Quantity__c ==0)) { temlostProduct.LostProductss.Quantity__c.addError('请填写失单数量!'); this.flag = false; } if((temlostProduct.LostProductss.LostProduct__c!=null || temlostProduct.LostProductss.LostProductMannual__c!=null)&&temlostProduct.LostProductss.ProductCategory__c==null) { if (temlostProduct.LostProductss.ProductClass__c==null) { temlostProduct.LostProductss.ProductClass__c.addError('失单产品类别必填!'); temlostProduct.LostProductss.ProductCategory__c.addError('失单产品必填!'); }else { temlostProduct.LostProductss.ProductCategory__c.addError('失单产品必填!'); } this.flag = false; } // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start if ((temlostProduct.LostProductss.LostProduct__c==null && temlostProduct.LostProductss.LostProductMannual__c==null)&&(temlostProduct.LostProductss.ProductCategory__c!=null||temlostProduct.LostProductss.Quantity__c!=null)) { if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){ temlostProduct.LostProductss.LostProduct__c.addError('失单对手型号或失单对手型号(手动)必填!'); } else{ temlostProduct.LostProductss.LostProductMannual__c.addError('失单对手型号或失单对手型号(手动)必填!'); } this.flag = false; } // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end // update tcm 20211123 end }); // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start if (productCount == 0 && tempLostBrand.LostProducts != null && tempLostBrand.LostProducts.length > 0) { if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){ tempLostBrand.LostProducts[0].LostProductss.LostProduct__c.addError('至少录入1条失单对手型号信息!'); }else{ tempLostBrand.LostProducts[0].LostProductss.LostProductMannual__c.addError('至少录入1条失单对手型号信息!'); } this.flag = false; } // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end }); } }