19626
2023-04-24 09b83c021646c56cec56b77dc091893401563f9f
修改失单页面
5个文件已修改
336 ■■■■ 已修改文件
force-app/main/default/classes/lexPCLLostReportLwcController.cls 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexLoseReport/lexLoseReport.js 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js-meta.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>