force-app/main/default/classes/lexPCLLostReportLwcController.cls
@@ -1,39 +1,57 @@ public with sharing class lexPCLLostReportLwcController { public Product2 pro2 { get; set; } public string oppId { get; set; } public string lostReportId { get; set; } @AuraEnabled public static Product2 pro2 { get; set; } @AuraEnabled public static string oppId { get; set; } @AuraEnabled public static string lostReportId { get; set; } // 当前页面状态 Create,View and Edit, MarketEdit public string pageStatus { get; set; } @AuraEnabled public static string pageStatus { get; set; } // 失单,部分失单 public string lostType {get; set;} public Set<ID> deleteBrandIDSet = new Set<ID>(); public string submitFlag {get; set;} public LostReport LostReport {get; set;} public integer brandNo {get; set;} public integer RemoveBrandNo {get; set;} public integer setBrandNo {get; set;} public integer brandCount {get; set;} @AuraEnabled public static string lostType {get; set;} public static Set<ID> deleteBrandIDSet = new Set<ID>(); @AuraEnabled public static string submitFlag {get; set;} @AuraEnabled public static LostReport LostReport {get; set;} @AuraEnabled public static integer brandNo {get; set;} @AuraEnabled public static integer RemoveBrandNo {get; set;} @AuraEnabled public static integer setBrandNo {get; set;} @AuraEnabled public static integer brandCount {get; set;} // add tcm 20211122 start public integer topNum {get; set;} public integer secondNum {get; set;} @AuraEnabled public static integer topNum {get; set;} @AuraEnabled public static integer secondNum {get; set;} // add tcm 20211122 end // 初始化 public void initForApex(string oppId1,string lostReportId1,string pageStatus1,string lostType1,string submitFlag1){ @AuraEnabled public static void initForApex(string oppId1,string lostReportId1,string pageStatus1,string lostType1,string submitFlag1){ oppId = oppId1; lostReportId = lostReportId; pageStatus = pageStatus1; lostType = lostType1; submitFlag = submitFlag1; } public String init(){ @AuraEnabled public static Map<string,object> init(){ Map<string,object> maps = new Map<string,object>(); if(string.isblank(pageStatus)) { // 这里需要报错没有传参数 return '页面出错,请刷新后重试!'; maps.put('message', '页面出错,请刷新后重试!'); return maps; } else if(pageStatus.equals('Create')) { if(string.isBlank(oppId)) { // 这里报错创建时候必须有询价 return '创建失单报告时,请重询价页面创建'; maps.put('message', '创建失单报告时,请重询价页面创建'); return maps; } list<opportunity> opplist = [select id,Name, @@ -44,11 +62,13 @@ limit 1]; if( opplist.size() == 0) { pageStatus = null; return '您没有询价的查看权限,无法创建失单报告!'; maps.put('message', '您没有询价的查看权限,无法创建失单报告!'); return maps; } Schema.DescribeSObjectResult s = Lost_cancel_report__c.sObjectType.getDescribe(); if( !s.isCreateable()) { return '您不能创建失单/部分失单报告!'; maps.put('message', '您不能创建失单/部分失单报告!'); return maps; } Lost_cancel_report__c tempLostReport = new Lost_cancel_report__c(LostType__c= lostType, @@ -65,7 +85,8 @@ system.debug('edit1'); if(string.isBlank(lostReportId)) { pageStatus = null; return '您没有查看这个失单/部分失单报告的权限!'; maps.put('message', '您没有查看这个失单/部分失单报告的权限!'); return maps; } system.debug('edit2'); list<Lost_cancel_report__c> lostReportList = @@ -82,7 +103,8 @@ if(lostReportList.size() == 0) { pageStatus = null; return '您没有查看这个失单/部分失单报告的权限!'; maps.put('message', '您没有查看这个失单/部分失单报告的权限!'); return maps; } lostReportList[0].Sales_assistant__c = lostReportList[0].Opportunity__r.Sales_assistant_ID__c; @@ -156,13 +178,16 @@ // 读取竞争对手品牌 // BrandmapSet(); if(string.isNotEmpty(submitFlag)) { return '提交成功!'; maps.put('message', '提交成功!'); maps.put('LostReport', LostReport); return maps; } return null; } // 编辑 只有系统管理员或者草案中可以编辑 public String edit2(){ @AuraEnabled public static String edit2(){ if( userinfo.getProfileId() == (ID) '00e10000000Y3o5AAC' || '草案'.equals(LostReport.LostReport.Report_Status__c) ) { @@ -175,7 +200,8 @@ return null; } // 设置品牌 public void setBrand(){ @AuraEnabled public static void setBrand(){ list<LostBrand> LostBrandlist = LostReport.LostBrands; LostBrand tempBrand = LostBrandlist.get(setBrandNo); string brandName = tempBrand.lostBrand.Lost_By_Company__c; @@ -199,7 +225,8 @@ } } // 设置品牌 public void setbrandmannual(){ @AuraEnabled public static void setbrandmannual(){ list<LostBrand> LostBrandlist = LostReport.LostBrands; LostBrand tempBrand = LostBrandlist.get(setBrandNo); string brandName = tempBrand.lostBrand.Lost_By_Company__c; @@ -221,7 +248,8 @@ } } // 保存 public String save(){ @AuraEnabled public static String save(){ if(!DataCheck()) { return null; @@ -245,7 +273,8 @@ // } // 数据检查 public boolean DataCheck(){ @AuraEnabled public static boolean DataCheck(){ boolean dataCheck = true; if(string.isBlank(LostReport.LostReport.LostType__c)) { @@ -323,7 +352,8 @@ return dataCheck; } public list<LostBrand> brandcopy(){ @AuraEnabled public static list<LostBrand> brandcopy(){ list<LostBrand> tempbrands = new list<LostBrand>(); for(LostBrand tempbrand: LostReport.LostBrands) { LostBrand LostBrand = @@ -335,7 +365,8 @@ return tempbrands; } // 数据录入 public boolean dataEntry(){ @AuraEnabled public static boolean dataEntry(){ system.debug('save---start:'); Savepoint sp = Database.setSavepoint(); Lost_cancel_report__c templostReport = LostReport.lostReport.clone(); @@ -470,7 +501,8 @@ // 提交 public Map<string,Object> submit(){ @AuraEnabled public static Map<string,Object> submit(){ Map<string,string> messages = new Map<string,string>(); if(!'草案'.equals(LostReport.LostReport.Report_Status__c) ) { messages.put('error', '只有在草案中才能提交申请!'); @@ -496,13 +528,15 @@ } } // 添加品牌 public String addBrand(){ @AuraEnabled public static String addBrand(){ LostReport.LostBrands.add(new LostBrand(LostReport.LostBrands.size())); brandCount = LostReport.LostBrands.size(); return null; } // 删除品牌 这个有参数brandNo,才知道是删除那个品牌 public String Remove(){ @AuraEnabled public static String Remove(){ system.debug('RemoveBrandNo:'+RemoveBrandNo); list<LostBrand> tempLostBrands = new List<lostBrand>(); Integer i = 0; @@ -524,7 +558,8 @@ } // 添加型号, 这个有参数brandNo,才知道是添加到那个品牌 // update tcm 20211125 添加型号时自动带出品牌 start public String addProduct(){ @AuraEnabled public static String addProduct(){ system.debug('brandNo:'+brandNo); LostBrand tempLostBrand = LostReport.LostBrands.get(brandNo); // PCLLostProduct__c plp = new PCLLostProduct__c(Competitor__c=CompetitionMap.get(LostReport.LostBrands[brandNo].lostBrand.Lost_By_Company__c)); @@ -538,7 +573,9 @@ // update tcm 20211125 添加型号时自动带出品牌 end // 页面的数据结构 public class LostReport { @AuraEnabled public Lost_cancel_report__c lostReport { get; set; } @AuraEnabled public list<LostBrand> LostBrands { get; set; } public LostReport(){ lostReport = new Lost_cancel_report__c(); @@ -555,9 +592,13 @@ } public class LostBrand { @AuraEnabled public PCLLostBrand__c lostBrand { get; set; } @AuraEnabled public Integer lineNo { get; set; } @AuraEnabled public list<PCLLostProducts> LostProducts { get; set; } @AuraEnabled public Integer ProductSize {get; set;} public LostBrand( integer lineNo ){ lostBrand = new PCLLostBrand__c(); @@ -581,8 +622,11 @@ } // add tcm 20211119 start public class PCLLostProducts { @AuraEnabled public Integer lineNo2 { get; set; } @AuraEnabled public PCLLostProduct__c LostProductss { get; set; } @AuraEnabled public Boolean bool { get; set; } public PCLLostProducts() { @@ -606,7 +650,7 @@ // add tcm 20211119 end // add tcm 20211118 start public void search() { public static void search() { if (LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c==null) { LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null; LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=null; force-app/main/default/lwc/lexLoseReport/lexLoseReport.js
@@ -4,7 +4,7 @@ * @Author: chen jing wu * @Date: 2023-04-20 14:08:55 * @LastEditors: chen jing wu * @LastEditTime: 2023-04-21 15:15:44 * @LastEditTime: 2023-04-24 13:58:53 */ /* * @Description: @@ -82,17 +82,19 @@ //alert("关联招投标项目的询价,只能在有结果后做失单报告!"); //} else { location.href = '/a1U/e?retURL=%2F' + this.recordId + '&RecordType=01210000000R4hM' + '&CF00N10000004lbGT=' + this.name + '&CF00N10000004lbGT_lkid=' + this.recordId + '&CF00N10000006QShg=' + this.salesAssistantName + '&CF00N10000006QShg_lkid=' + this.salesAssistantID + '&CF00N10000006QShq=' + this.managerName + '&CF00N10000006QShq_lkid=' + this.salesManagerDepartmentID + '&CF00N10000006QShb=' + this.salesOwnerBuchang + '&CF00N10000006QShb_lkid=' + this.salesOwnerBuchangID + ''; var url = '/apex/PCLLostReportPage?pageStatus=Create&oppId=' + this.recordId + '&lostType=失单'; location.href = url; // location.href = '/a1U/e?retURL=%2F' + this.recordId + // '&RecordType=01210000000R4hM' + // '&CF00N10000004lbGT=' + this.name + // '&CF00N10000004lbGT_lkid=' + this.recordId + // '&CF00N10000006QShg=' + this.salesAssistantName + // '&CF00N10000006QShg_lkid=' + this.salesAssistantID + // '&CF00N10000006QShq=' + this.managerName + // '&CF00N10000006QShq_lkid=' + this.salesManagerDepartmentID + // '&CF00N10000006QShb=' + this.salesOwnerBuchang + // '&CF00N10000006QShb_lkid=' + this.salesOwnerBuchangID + // ''; } this.dispatchEvent(new CloseActionScreenEvent()); } force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
@@ -1,3 +1,52 @@ <!-- * @Description: * @version: * @Author: chen jing wu * @Date: 2023-04-20 17:16:48 * @LastEditors: chen jing wu * @LastEditTime: 2023-04-24 16:34:14 --> <template> <lightning-card variant="Narrow"> <div style="padding: 0 20px"> <lightning-layout> <div style="padding: 10px 3px;border-bottom: 1px solid;font: 16px;font-size: blod;">失单报告编辑页面</div> <lightning-layout-item flexibility="auto" padding="around-small"> <lightning-button label="追加品牌" onclick={addBrandJs}></lightning-button> </lightning-layout-item> <lightning-layout-item flexibility="auto" padding="around-small"> <lightning-button label="保存" onclick={saveJs}></lightning-button> </lightning-layout-item> <lightning-layout-item flexibility="auto" padding="around-small"> <lightning-button label="返回询价" onclick={cancel}></lightning-button> </lightning-layout-item> </lightning-layout> <div style="margin-top: 5px"> <lightning-layout> <lightning-layout-item flexibility="auto" padding="around-small"> <lightning-combobox name="progress" label="失单类型" value={lostReportObj.RecordType} options={RecordTypeOptions} onchange={handleStatus1Change} class="searchField"> </lightning-combobox> </lightning-layout-item> <lightning-layout-item flexibility="auto" padding="around-small"> <div style="padding: 10px 3px;border-bottom: 1px solid;font: 14px;font-size: blod;">失单总金额(元):</div> <lightning-output-field>{LostReport.lostReport.LostTotalAmount__c}</lightning-output-field> </lightning-layout-item> <lightning-layout-item> <div style="padding: 10px 3px;border-bottom: 1px solid;font: 14px;font-size: blod;">状态:</div> <lightning-output-field>{LostReport.lostReport.Report_Status__c}</lightning-output-field> </lightning-layout-item> </lightning-layout> <!-- <lightning-layout> <lightning-accordion allow-multiple-sections-open onsectiontoggle={handleSectionToggle} active-section-name={activeSections}> <lightning-accordion-section name="失单品牌" label="失单品牌"> </lightning-accordion-section> </lightning-accordion> </lightning-layout> --> </div> </div> </lightning-card> </template> force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,7 +4,7 @@ * @Author: chen jing wu * @Date: 2023-04-20 15:04:03 * @LastEditors: chen jing wu * @LastEditTime: 2023-04-23 16:57:18 * @LastEditTime: 2023-04-24 16:46:31 */ /* * @Description: @@ -15,12 +15,14 @@ * @LastEditTime: 2023-04-20 17:11:01 */ import { api, wire,LightningElement } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import save from '@salesforce/apex/lexPCLLostReportLwcController.save'; import jquery from '@salesforce/resourceUrl/jquery183minjs'; import blockUIcss from '@salesforce/resourceUrl/blockUIcss'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { loadStyle, loadScript } from 'lightning/platformResourceLoader'; import setBrand from '@salesforce/apex/lexPCLLostReportLwcController.setBrand'; import setbrand from '@salesforce/apex/lexPCLLostReportLwcController.setBrand'; import init from '@salesforce/apex/lexPCLLostReportLwcController.init'; import PleaseWaitDialog from '@salesforce/resourceUrl/PleaseWaitDialog'; import initForApex from '@salesforce/apex/lexPCLLostReportLwcController.initForApex'; export default class LexPCLLostReportPage extends LightningElement { @@ -29,20 +31,53 @@ @api pageStatus; @api lostType; @api submitFlag; LostReport; brandCount; constructor() { super(); lostReportObj; //失单类型 RecordTypeOptions = [{ label: '--无--', value: '' }, { label: '失单', value: '失单' }, { label: '部分失单', value: '部分失单' }]; // @wire(CurrentPageReference) // getStateParameters(currentPageReference) { // console.log(111); // console.log(currentPageReference); // Set the default values for properties using ternary operators this.oppId = this.getParamValue('oppId') || ''; this.lostReportId = this.getParamValue('Id') || ''; this.pageStatus = this.getParamValue('pageStatus') || ''; this.lostType = this.getParamValue('lostType') || ''; this.submitFlag = this.getParamValue('submitFlag') || ''; } connectedCallback(){ } // if (currentPageReference) { // const urlValue = currentPageReference.state.recordId; // if (urlValue) { // let str = `${urlValue}`; // console.log("str"); // console.log(str); // this.oppId = str; // } // } // } // 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 @@ -51,28 +86,57 @@ } saveJs() { this.blockMyself(); save(); save().then(result=>{ if(result){ this.showToast(result,"success"); this.unblock(); this.clearBrandMannualName(); } }) } addBrandJs() { this.blockMyself(); addBrand(); addBrand().then(()=>{ this.unblock(); }); } submitJS() { this.blockMyself(); submit(); 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') } }); this.unblock(); } }); } addProductJs(number) { this.blockMyself(); addProduct(number); addProduct().then(()=>{ this.unblock(); }); } RemoveJs(number) { this.blockMyself(); Remove(number); Remove().then(()=>{ this.unblock(); }); } // add tcm 20211118 start searchJs(topNum, secondNum) { this.blockMyself(); search(topNum, secondNum); search().then(()=>{ this.unblock(); }); } blockMyself(){ Promise.all([ @@ -86,6 +150,22 @@ console.log("321"); console.log('Failed to load the JQuery : ' +error); }); } unblock(){ Promise.all([ loadScript(this,PleaseWaitDialog), loadStyle(this,blockUIcss), loadScript(this, jquery) //loadScript(this, jq + "/dist/jquery.min.js") ]).then(() =>{ unblockUI(); }).catch(error => { console.log("321"); console.log('Failed to load the JQuery : ' +error); }); } get pageStatusIsCreateOrEdit() { return this.pageStatus === 'Create' || this.pageStatus === 'Edit'; } // add tcm 20211118 end @@ -121,11 +201,16 @@ } setBrandName(brandNumber) { this.blockMyself(); setbrand(brandNumber); setbrand().then(()=>{ this.clearBrandMannualName(); this.unblock(); }); } setBrandMannualName(brandNumber) { this.blockMyself(); setbrandmannual(brandNumber); setbrandmannual().then(()=>{ this.unblock(); }); } // 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用 thh 2022-01-13 start clearBrandMannualName(){ @@ -146,4 +231,14 @@ } }); } showToast(msg,type) { const event = new ShowToastEvent({ title: '', message: msg, variant: type }); this.dispatchEvent(event); this.dispatchEvent(new CloseActionScreenEvent()); } } force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js-meta.xml
@@ -1,5 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>56.0</apiVersion> <isExposed>false</isExposed> <apiVersion>54.0</apiVersion> <isExposed>true</isExposed> <targets> <target>lightning__RecordPage</target> <target>lightning__AppPage</target> <target>lightning__HomePage</target> <target>lightning__RecordAction</target> </targets> </LightningComponentBundle>