123
chenjingwu
2024-04-15 65a3de8fc057c6550f38d2aef6b5ed7f0e7e2f81
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-10-11 18:24:16
 * @LastEditTime: 2023-10-31 15:19:17
 */
let columns2=[
    { label: '--无--', value: '' },
@@ -18,6 +18,242 @@
    { label: '某种产品缺失', value: '某种产品缺失' },
    { label: '采购平衡', value: '采购平衡' }
];
let columns2RandomList = [
    [
        { label: '--无--', value: '' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '行政决策', value: '行政决策' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '行政决策', value: '行政决策' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
    ],
    [
        { label: '--无--', value: '' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '行政决策', value: '行政决策' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '价格', value: '价格' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '行政决策', value: '行政决策' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
    ],
    [
        { label: '--无--', value: '' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '行政决策', value: '行政决策' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '行政决策', value: '行政决策' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '行政决策', value: '行政决策' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '行政决策', value: '行政决策' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '行政决策', value: '行政决策' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '某种产品缺失', value: '某种产品缺失' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '行政决策', value: '行政决策' },
    ],
]
let columns22RandomList = [
    [
        { label: '--无--', value: '' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
    ],
    [
        { label: '--无--', value: '' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '价格', value: '价格' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
    ],
    [
        { label: '--无--', value: '' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '服务不到位', value: '服务不到位' },
    ],
    [
        { label: '--无--', value: '' },
        { label: '价格', value: '价格' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '某种产品缺失', value: '某种产品缺失' },
        { label: '采购平衡', value: '采购平衡' }
    ],
    [
        { label: '--无--', value: '' },
        { label: '渠道因素', value: '渠道因素' },
        { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
        { label: '价格', value: '价格' },
        { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
        { label: '采购平衡', value: '采购平衡' },
        { label: '医生偏好', value: '医生偏好' },
        { label: '服务不到位', value: '服务不到位' },
        { 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: '无信息,跟进不及时' },
@@ -92,7 +328,104 @@
import systemProfileId from '@salesforce/label/c.ProfileId_SystemAdmin';
import {loadStyle} from 'lightning/platformResourceLoader';
import { RefreshEvent } from "lightning/refresh";
import { getObjectInfo } from 'lightning/uiObjectInfoApi';
import LOSTPRODUCT from '@salesforce/schema/PCLLostProduct__c';
import { getPicklistValuesByRecordType } from 'lightning/uiObjectInfoApi';
export default class LexPCLLostReportPage extends NavigationMixin(LightningElement) {
    //***************************************************** */
    //存储controlling picklist的所有的值
    @track masterValues = [];
    //存储dependent picklist的所有的值
    @track controllingValues = [];
    //选择的controlling picklist 的值
    @track selectedMasterValue;
    //选择的dependent picklist的值
    @track selectedControllingValue;
    @track error;
    //用来记录master picklist中的 value -> valid for的列表集合
    master2ValidForValues;
    //用来记录controlling picklist的value以及valid for等信息的列表集合
    controllingValuesWithValidFor = [];
    // 获取account 的schema info
    @wire(getObjectInfo, { objectApiName: LOSTPRODUCT })
    objectInfo;
    // 获取 control picklist的值并且组装dependent picklist
    @wire(getPicklistValuesByRecordType, { objectApiName: LOSTPRODUCT, recordTypeId: '$objectInfo.data.defaultRecordTypeId'})
    countryPicklistValues({error, data}) {
        console.log('start');
        if(data) {
            this.error = null;
            let masterOptions = [];
            data.picklistFieldValues.ProductClass__c.values.forEach(key => {
                masterOptions.push({
                    label : key.label,
                    value: key.value
                })
            });
            this.masterValues = masterOptions;
            console.log(this.masterValues);
            let controllingOptions = [];
            this.master2ValidForValues = data.picklistFieldValues.ProductCategory__c.controllerValues;
            //用来记录controlling picklist的value以及valid for等信息的列表集合 Picklist values
            this.controllingValuesWithValidFor = data.picklistFieldValues.ProductCategory__c.values;
            this.controllingValuesWithValidFor.forEach(key => {
                controllingOptions.push({
                    label : key.label,
                    value: key.value
                })
            });
            this.controllingValues = controllingOptions;
            console.log(this.controllingValues);
            console.log('end');
        }
        else if(error) {
            this.error = JSON.stringify(error);
        }
    }
    handleMasterPicklistChange(event) {
        //set selected master Value
        this.selectedMasterValue = event.target.value;
        this.selectedControllingValue = '';
        let controllingList = [];
        if(this.selectedMasterValue) {
            //通过valid for进行mapping,匹配的放进controlling list中
            this.controllingValuesWithValidFor.forEach(conValues => {
                if(conValues.validFor.some(item => item === this.master2ValidForValues[this.selectedMasterValue])) {
                    controllingList.push({
                        label: conValues.label,
                        value: conValues.value
                    })
                }
            })
            this.controllingValues = controllingList;
        }
    }
//***************************************************** */
    @track visible = false;
    @wire(CurrentPageReference) pageRef;
    @api oppId;
@@ -139,6 +472,8 @@
    userId;
    allowUserId;
    submitUserId;
    specProFlg;
    loadingFlg;
    @track isSubmitUser = false;
    @track isAllowUser = false;
    handleCustomButtonClick(event) {
@@ -179,6 +514,7 @@
            loadStyle(this, lwcCSS),
            loadStyle(this, lexButtonCss)
           ]);
        this.columns2s = columns2RandomList[Math.floor(Math.random() * 10)];
        this.pageStatus = this.getQueryVariable('pageStatus',this.location);
        this.oppId = this.getQueryVariable('oppId',this.location);
        this.reportId = this.getQueryVariable('reportId',this.location);
@@ -354,7 +690,7 @@
        var elements = this.template.querySelectorAll('lightning-combobox');
                elements.forEach(element=>{
                    if(element.value == '行政决策'){
                        element.options = columns2;
                        element.options = columns2RandomList[Math.floor(Math.random() * 10)];
                    }
                });
        var elements1 = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
@@ -370,6 +706,38 @@
            }
            
        });
        // if(this.pageStatus = 'Edit' && this.loadingFlg == false){
        //     var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + 0 + '"]');
        //     var elements2 = this.template.querySelectorAll('.ProductCategory[data-id="' + 0 + '"]');
        //         console.log('lnm');
        //                     console.log(elements1);
        //                     console.log(elements2);
        //         console.log('lnm');
        //     console.log('in=>');
        //     this.loadingFlg = true;
        //     var j = 0;
        //     var i = 0;
        //     this.LostReport.LostBrands.forEach(brand=>{
        //         brand.LostProducts.forEach(product=>{
        //             if(product.LostProductss.LostProduct__r !=undefined){
        //                 if(product.LostProductss.LostProduct__r.ProductClass__c ==undefined && product.LostProductss.LostProduct__r.ProductCategory__c ==undefined){
        //                     console.log('cnm');
        //                     console.log(elements1[i]);
        //                     console.log(elements2[i]);
        //                     console.log('cnm');
        //                     elements1[i].readOnly = false;
        //                     elements2[i].readOnly = false;
        //                 }
        //             }
        //             i++;
        //         });
        //         j++;
        //     });
        // }else if(this.pageStatus = 'View'){
        //     this.loadingFlg = false;
        // }
        // if((value == '' || value == null) && this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c == '其他'){
        //     var elements = 
        //     elements[index].disabled = false;
@@ -535,7 +903,12 @@
        getNewLostProduct({
            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
        }).then(result=>{
            result.LostProductss.LostBrandName__c = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c;
            if(this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c == '其他' && (this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c != null && this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c != undefined && this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c != '')){
                result.LostProductss.LostBrandName__c = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c;
            }else{
                result.LostProductss.LostBrandName__c = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c;
            }
            this.LostReport.LostBrands[index].LostProducts.push(result);
            console.log('***');
            console.log(this.LostReport);
@@ -673,9 +1046,17 @@
        }).then(result=>{
            console.log(result);
            if(result == '进口'){
                this.columns2s = columns22;
                if(this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c == '行政决策'){
                    this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = '';
                    // this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = '';
                }
                if(this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c == '行政决策'){
                    this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = '';
                    // this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = '';
                }
                this.columns2s = this.columns2s = columns22RandomList[Math.floor(Math.random() * 10)];
            }else{
                this.columns2s = columns2;
                this.columns2s = this.columns2s = columns2RandomList[Math.floor(Math.random() * 10)];
            }
            if(payloadType === 'multi-select'){
            
@@ -899,7 +1280,7 @@
                console.log('elements=>' + elements.length);
                elements.forEach(element=>{
                    if(element.value == '行政决策'){
                        element.options = columns2;
                        element.options = columns2RandomList[Math.floor(Math.random() * 10)];
                    }
                });
    }
@@ -1070,7 +1451,7 @@
    handleModalSubmit(){
        
        this.IsLoading = true;
        const comment = this.template.querySelector('.comment');
        const comment = this.template.querySelector('.textAreaBody');
        console.log(this.isLookup == true && this.newActorId == null);
        if(this.isLookup == true && this.newActorId == null){
            this.showToast('请填入新分配人','error');
@@ -1093,11 +1474,18 @@
                
            });
        }else{
            console.log('1nm');
            console.log(this.LostReport.lostReport.Id);
            console.log(comment.value);
            console.log(this.action);
            console.log('1nm');
            submitForApproval({
                recordId: this.LostReport.lostReport.Id,
                comments: comment.value,
                action: this.action
            }).then(result=>{
                console.log('sb');
                console.log(result);
                if(result){
                    if(this.action == 'Approve'){
                        this.showToast('您无权批准','error');
@@ -1110,8 +1498,12 @@
                    this.IsLoading = false;
                }else{
                    // window.location = '/' + this.LostReport.lostReport.Id;
                    this.remoteUrl();
                } 
            }).catch(error=>{
                console.log('error');
                console.log(error);
            });
        }
        
@@ -1269,6 +1661,23 @@
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductClass__c = event.target.value;
        var val = event.target.value;
        this.selectedMasterValue = event.target.value;
        this.selectedControllingValue = '';
        let controllingList = [];
        if(this.selectedMasterValue) {
            //通过valid for进行mapping,匹配的放进controlling list中
            this.controllingValuesWithValidFor.forEach(conValues => {
                if(conValues.validFor.some(item => item === this.master2ValidForValues[this.selectedMasterValue])) {
                    controllingList.push({
                        label: conValues.label,
                        value: conValues.value
                    })
                }
            })
            this.controllingValues = controllingList;
        }
        if(val == ''){
            var temps1 =this.template.querySelectorAll('.ProductCategory[data-id="'+ index1 +'"]');
            temps1[index2].readOnly = true;
@@ -1276,7 +1685,18 @@
        }else{
            var temps1 =this.template.querySelectorAll('.ProductCategory[data-id="'+ index1 +'"]');
            temps1[index2].readOnly = false;
            this.LostReport.LostBrands[index1].LostProducts[index2].productOptions = this.productOptionsList[val];
            this.LostReport.LostBrands[index1].LostProducts[index2].productOptions = this.controllingValues;
            if(this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c){
                searchProduct({
                    lostProduct:this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c
                }).then(result=>{
                    var prd = JSON.parse(result);
                    if(prd.ProductClass__c == undefined && prd.ProductCategory__c == undefined){
                        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.isSpec__c = true;
                    }
                });
            }
        }
       
    }