19626
2023-09-09 e14d6d0619330cad423f06493e3aa2371faa2a8f
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,15 +4,26 @@
 * @Author: chen jing wu
 * @Date: 2023-04-20 15:04:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-06-06 10:51:30
 * @LastEditTime: 2023-09-07 14:46:02
 */
const columns2=[
let columns2=[
    { label: '--无--', value: '' },
    { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
    { label: '价格', value: '价格' },
    { label: '医生偏好', value: '医生偏好' },
    { label: '服务不到位', value: '服务不到位' },
    { label: '行政决策', value: '行政决策' },
    { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
    { label: '渠道因素', value: '渠道因素' },
    { label: '某种产品缺失', value: '某种产品缺失' },
    { label: '采购平衡', value: '采购平衡' }
];
let columns22=[
    { label: '--无--', value: '' },
    { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
    { label: '价格', value: '价格' },
    { label: '医生偏好', value: '医生偏好' },
    { label: '服务不到位', value: '服务不到位' },
    { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
    { label: '渠道因素', value: '渠道因素' },
    { label: '某种产品缺失', value: '某种产品缺失' },
@@ -31,7 +42,7 @@
];
const columns3 = [
    {label : "失单品牌",fieldName : "LostBrandName__c"},
    {label : "失单对手型号",fieldName : "LostProduct__c"},
    {label : "失单对手型号",fieldName : "productName"},
    {label : "失单数量",fieldName : "Quantity__c",type : "number"},
    {label : "失单对手型号(手动)",fieldName : "LostProductMannual__c"},
    {label : "失单产品类别",fieldName : "ProductClass__c"},
@@ -46,36 +57,42 @@
import { api, wire,track,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import dataEntry from '@salesforce/apex/lexPCLLostReportLwcController.dataEntry';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init from '@salesforce/apex/lexPCLLostReportLwcController.init';
import multiSelectCombobox from 'c/multiSelectCombobox'
import searchBrands from '@salesforce/apex/lexPCLLostReportLwcController.searchBrands';
import getNewLostBrand from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostBrand';
import getNewLostProduct from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostProduct';
import getPickList from '@salesforce/apex/lexPCLLostReportLwcController.getPickList';
import { NavigationMixin } from 'lightning/navigation';
import submit from '@salesforce/apex/lexPCLLostReportLwcController.submit';
import searchBatchIfForProduct from '@salesforce/apex/lexPCLLostReportLwcController.searchBatchIfForProduct';
import {CloseActionScreenEvent} from 'lightning/actions'; 
import lexLookupLwc from 'c/lexLookupLwc';
import searchProduct from '@salesforce/apex/lexPCLLostReportLwcController.searchProduct';
import { updateRecord } from 'lightning/uiRecordApi';
export default class LexPCLLostReportPage extends NavigationMixin(LightningElement) {
    @track visible = false;
    @wire(CurrentPageReference) pageRef;
    @api oppId;
    @track columns2=columns2;
    @track columns2s=columns22;
    @track status = {
        pageStatus: 'Create'
      }
    @track message;
    @track isSuccess;
    @track LostReport = {
        LostBrands: [
        ],
        lostReport: {}
    }
    @track brandOptions = [];
    @track isInit = false;
    lostType = '失单';
    submitFlag = '';
    flag;
    tableflag = 0;
    reportId = '';
    @api reportId;
    @api pageStatus;
    newProduct;
    productOptionsList;
    productClassOptions = productClassOptions;
@@ -86,7 +103,28 @@
    isSubmit = false;
    deleteBrandIdList = [];
    deleteProductIdList = [];
    IsLoading;
    newApprovalHistorys;
    handleCustomButtonClick(event) {
        try {
            var index1 = event.target.title;
            var index2 = event.target.name;
            var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + index1 + '"]');
            var elements2 = this.template.querySelectorAll('.ProductCategory[data-id="' + index1 + '"]');
            this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c = null;
            elements1[index2].readOnly = false;
            elements2[index2].readOnly = false;
            this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductClass__c=null;
            this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductCategory__c=null;
            this.LostReport.LostBrands[index1].LostProducts[index2].bool=false;
            elements2[index2].readOnly = true;
        } catch (error) {
            console.log('error');
        }
    }
    connectedCallback(){
        this.status.pageStatus = this.pageStatus;
        init({
            oppId1: this.oppId,
            lostReportId1: this.reportId,
@@ -106,7 +144,41 @@
                this.LostReport = report;
                this.LostReport.lostReport.LostTotalAmount__c = 0.0;
                this.LostReport.lostReport.InclusionUltrasound__c = '0';
                this.newProduct = JSON.parse(JSON.stringify(this.LostReport.LostBrands[0].LostProducts[0]));
                this.newApprovalHistorys = JSON.parse(JSON.stringify(this.LostReport.approvalHistorys));
                console.log(this.LostReport);
                console.log(this.LostReport.approvalHistorys.length);
                if(this.LostReport.approvalHistorys.length > 0){
                    for(var i=0;i < this.LostReport.approvalHistorys.length;i++){
                        console.log('123');
                        var date = new Date(this.LostReport.approvalHistorys[i].CreatedDate);
                        this.LostReport.approvalHistorys[i].CreatedDate = date.toLocaleString();
                        if(this.LostReport.approvalHistorys[i].StepStatus == 'Approved'){
                            this.LostReport.approvalHistorys[i].StepStatus = '已批准';
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Fault'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Pending'){
                            this.LostReport.approvalHistorys[i].StepStatus = '待处理';
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Held'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'NoResponse'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Reassigned'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Rejected'){
                            resthis.LostReportult.approvalHistorys[i].StepStatus = '已拒绝';
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Removed'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Started'){
                            this.LostReport.approvalHistorys[i].StepStatus = '已提交';
                        }
                        // this.LostReport.approvalHistorys.push(JSON.parse(JSON.stringify(result.approvalHistorys[i])));
                        console.log('321');
                    }
                    this.submitFlag = true;
                }
                this.isInit = true;
            }
            }).catch(error=>{
                console.log("error");
@@ -127,8 +199,18 @@
            fieldName: 'ProductCategory__c'
        }).then(result=>{
            this.productOptionsList = JSON.parse(result);
        }).catch(error=>{
            console.log('error');
            console.log(error);
        });
    }
    renderedCallback(){
        const sections = this.template.querySelectorAll('lightning-accordion-section');
        sections.forEach(section=>{
            console.log(section);
            section.active = true;
        });
    }
    @wire(CurrentPageReference)
@@ -148,30 +230,51 @@
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            title: '',
            message: msg,
            variant: type
        });
        this.dispatchEvent(event);
        try {
            if(type == 'success'){
                this.isSuccess = true;
            }else{
                this.isSuccess = false;
            }
            this.message = msg;
            this.visible = true;
            let delay = 5000;
            console.log(this.message);
            console.log('1');
            setTimeout(() => {
                this.visible = false;
            }, delay );
        } catch (error) {
            console.log(error);
        }
        // const event = new ShowToastEvent({
        //     title: '',
        //     message: msg,
        //     variant: type
        // });
        // this.dispatchEvent(event);
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
    get isInit(){
        if(this.LostReport.LostBrands[0].LostProducts[0].productOptions == undefined){
            return false;
        }else{
            return true;
        }
    }
    // get isInit(){
    //     if(this.LostReport.LostBrands[0].LostProducts[0].productOptions == undefined){
    //         return false;
    //     }else{
    //         return true;
    //     }
    // }
   
    get getData(){
        var products = this.LostReport.LostBrands[this.tableflag].LostProducts;
        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
        var products = newLostReport.LostBrands[this.tableflag].LostProducts;
        var productList = [];
        products.forEach(product=>{
            productList.push(product.LostProductss);
            var newProduct = product;
            newProduct.LostProductss.productName = newProduct.productName;
            productList.push(newProduct.LostProductss);
        });
        this.tableflag++;
        return productList;
@@ -205,7 +308,13 @@
        }
        return false;
    }
    get isSubmit(){
        if(this.submitFlag){
            return true;
        }
        return false;
    }
    addBrandJs() {
        getNewLostBrand({
            lineNo: this.LostReport.LostBrands.length
@@ -213,8 +322,18 @@
            this.LostReport.LostBrands.push(result);
        });
    }
    addRow(event){
        var index = event.target.name;
        getNewLostProduct({
            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
        }).then(result=>{
            result.LostProductss.LostBrandName__c = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c;
            this.LostReport.LostBrands[index].LostProducts.push(result);
        });
    }
    submitJs() {
        console.log('1');
        this.IsLoading = true;
        submit({
            report1: JSON.stringify(this.LostReport),
            reportId: this.reportId
@@ -222,13 +341,54 @@
            if(result.error){
                this.showToast(result.error,"error");
            }else{
                this.submitFlag = result.submitFlag;
                console.log(result);
                console.log(this.LostReport);
                for(var i=0;i < result.approvalHistorys.length;i++){
                    console.log('123');
                    var date = new Date(result.approvalHistorys[i].CreatedDate);
                    result.approvalHistorys[i].CreatedDate = date.toLocaleString();
                    if(result.approvalHistorys[i].StepStatus == 'Approved'){
                        result.approvalHistorys[i].StepStatus = '已批准';
                    }else if(result.approvalHistorys[i].StepStatus == 'Fault'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Pending'){
                        result.approvalHistorys[i].StepStatus = '待处理';
                    }else if(result.approvalHistorys[i].StepStatus == 'Held'){
                    }else if(result.approvalHistorys[i].StepStatus == 'NoResponse'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Reassigned'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Rejected'){
                        result.approvalHistorys[i].StepStatus = '已拒绝';
                    }else if(result.approvalHistorys[i].StepStatus == 'Removed'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Started'){
                        result.approvalHistorys[i].StepStatus = '已提交';
                    }
                    this.LostReport.approvalHistorys.push(JSON.parse(JSON.stringify(result.approvalHistorys[i])));
                    console.log('321');
                }
                this.submitFlag = JSON.parse(JSON.stringify(result.submitFlag));
                console.log(this.LostReport);
                this.updateRecordView(this.reportId);
                this.LostReport.lostReport.Report_Status__c = '申请中';
            }
            this.IsLoading = false;
        }).catch(error=>{
            console.log("error");
            console.log(error);
        });
    }
    onApproveChange(event){
        window.open('/lightning/r/ProcessInstanceStep/'+ this.LostReport.approvalHistorys[0].Id + '/view?0.source=alohaHeader');
        // this[NavigationMixin.Navigate]({
        //     type: 'standard__recordPage',
        //     attributes: {
        //         recordId: this.LostReport.approvalHistorys[0].Id,
        //         actionName: 'view'
        //     }
        // });
    }
    
@@ -267,11 +427,25 @@
            console.log(this.deleteProductIdList);
        }
        this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c = payload.value;
        if(payloadType === 'multi-select'){
            this.clearProducts(payload.value,index);
            this.setDefaultBrand(payload.value,index);
            this.clearBrandMannualName(payload.value,index);
        }
        this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = '';
        this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = '';
        searchBatchIfForProduct({
            productName: this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c
        }).then(result=>{
            console.log(result);
            if(result == '进口'){
                this.columns2s = columns2;
            }else{
                this.columns2s = columns22;
            }
            if(payloadType === 'multi-select'){
                this.clearProducts(payload.value,index);
                this.setDefaultBrand(payload.value,index);
                this.clearBrandMannualName(payload.value,index);
            }
        });
    }
    setDefaultBrand(value,index){
        var newProducts = [];
@@ -323,23 +497,28 @@
    }
    cancel() {
        // Navigate to the specified opportunity page using the NavigationMixin
            this[NavigationMixin.Navigate]({
                type: 'standard__recordPage',
                attributes: {
                    recordId: this.oppId,
                    actionName: 'view'
                }
            });
        // this[NavigationMixin.Navigate]({
        //     type: 'standard__recordPage',
        //     attributes: {
        //         recordId: this.oppId,
        //         actionName: 'view'
        //     }
        // });
        window.location = '/' +this.oppId;
    }
    saveBrandJs(event) {
        this.IsLoading = true;
        this.dataCheck();
        if(!this.flag){
            this.IsLoading = false;
            return;
        }
        console.log(this.LostReport);
        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
        newLostReport.approvalHistorys = this.newApprovalHistorys;
        dataEntry({
            report1 : JSON.stringify(this.LostReport),
            report1 : JSON.stringify(newLostReport),
            deleteBrandIdList: this.deleteBrandIdList,
            deleteProductIdList: this.deleteProductIdList
        }).then(result=>{
@@ -349,23 +528,56 @@
            if(result.error){
                this.showToast(result.error,"error");
            }else{
                var report = JSON.parse(result.LostReport);
                var index1 = 0;
                this.LostReport.LostBrands.forEach(brand=>{
                    brand.lostBrand.Id = report.LostBrands[index1].lostBrand.Id;
                    var index2 = 0;
                    brand.LostProducts.forEach(product=>{
                        product.LostProductss.Id = report.LostBrands[index1].LostProducts[index2].LostProductss.Id;
                        index2++;
                    });
                    index1++;
                });
                // var report = JSON.parse(result.LostReport);
                // var index1 = 0;
                // this.LostReport.LostBrands.forEach(brand=>{
                //     brand.lostBrand.Id = report.LostBrands[index1].lostBrand.Id;
                //     var index2 = 0;
                //     brand.LostProducts.forEach(product=>{
                //         product.LostProductss.Id = report.LostBrands[index1].LostProducts[index2].LostProductss.Id;
                //         index2++;
                //     });
                //     index1++;
                // });
                var newLostReport = JSON.parse(result.LostReport);
                if(newLostReport.approvalHistorys.length > 0){
                    for(var i=0;i < newLostReport.approvalHistorys.length;i++){
                        console.log('123');
                        var date = new Date(newLostReport.approvalHistorys[i].CreatedDate);
                        newLostReport.approvalHistorys[i].CreatedDate = date.toLocaleString();
                        if(newLostReport.approvalHistorys[i].StepStatus == 'Approved'){
                            newLostReport.approvalHistorys[i].StepStatus = '已批准';
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Fault'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Pending'){
                            newLostReport.approvalHistorys[i].StepStatus = '待处理';
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Held'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'NoResponse'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Reassigned'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Rejected'){
                            newLostReport.approvalHistorys[i].StepStatus = '已拒绝';
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Removed'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Started'){
                            newLostReport.approvalHistorys[i].StepStatus = '已提交';
                        }
                    }
                }
                this.LostReport = newLostReport;
                this.reportId = result.reportId;
                this.LostReport.lostReport.Id = result.reportId;
                console.log(this.LostReport);
                // this.LostReport.lostReport.Id = result.reportId;
                // console.log(this.LostReport);
                this.status.pageStatus = 'View';
                this.tableflag = 0;
                this.showToast('保存成功','success');
                console.log(this.LostReport);
            }
            this.IsLoading = false;
        }).catch(error=>{
            console.log("error");
            console.log(error);
@@ -460,14 +672,6 @@
    isBlank(str) {
        return /^\s*$/.test(str);
      }
    addRow(event){
        var index = event.target.name;
        var product = JSON.parse(JSON.stringify(this.newProduct));
        if(this.LostReport.LostBrands[index].LostProducts[0].LostProductss.LostBrandName__c != undefined){
            product.LostProductss.LostBrandName__c =  JSON.parse(JSON.stringify(this.LostReport.LostBrands[index].LostProducts[0].LostProductss.LostBrandName__c));
        }
        this.LostReport.LostBrands[index].LostProducts.push(product);
    }
    removeRow(event){
        var index1 = event.target.name;
        var index2 = event.target.value;
@@ -483,6 +687,7 @@
        console.log(this.deleteProductIdList);
    }
    search(topNum,secondNum){
        console.log('12345');
        var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + topNum + '"]');
        var elements2 = this.template.querySelectorAll('.ProductCategory[data-id="' + topNum + '"]');
        if (this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c==null) {
@@ -491,8 +696,8 @@
         this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null;
         this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=null;
         this.LostReport.LostBrands[topNum].LostProducts[secondNum].bool=false;
            elements1[secondNum].readOnly = true;
            elements2[secondNum].readOnly = true;
            // elements1[secondNum].readOnly = true;
            // elements2[secondNum].readOnly = true;
      }else {
         searchProduct({
@@ -523,7 +728,13 @@
         
      }
    }
    handleClear(event){
        console.log('ssss');
    }
    handleSelected(event) {
        console.log('54321');
        var index1 = event.target.title;
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c = event.detail.Id;