123
chenjingwu
2024-04-11 8d006ac357a60d77f086c37f2ae7338530a607f2
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,101 +4,1723 @@
 * @Author: chen jing wu
 * @Date: 2023-04-20 15:04:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-20 17:15:06
 * @LastEditTime: 2023-10-31 15:19:17
 */
/*
 * @Description:
 * @version:
 * @Author: chen jing wu
 * @Date: 2023-04-20 15:04:03
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-04-20 17:11:01
 */
import { LightningElement } from 'lwc';
import save from '@salesforce/apex/lexPCLLostReportLwcController.save';
import unblockui from '@sa';
export default class LexPCLLostReportPage extends LightningElement {
let columns2=[
    { label: '--无--', value: '' },
    { label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
    { label: '价格', value: '价格' },
    { label: '医生偏好', value: '医生偏好' },
    { label: '服务不到位', value: '服务不到位' },
    { label: '行政决策', value: '行政决策' },
    { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
    { label: '渠道因素', value: '渠道因素' },
    { 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: '无信息,跟进不及时' },
    { label: '价格', value: '价格' },
    { label: '医生偏好', value: '医生偏好' },
    { label: '服务不到位', value: '服务不到位' },
    { label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
    { label: '渠道因素', value: '渠道因素' },
    { label: '某种产品缺失', value: '某种产品缺失' },
    { label: '采购平衡', value: '采购平衡' }
];
const productClassOptions = [
    { label: '--无--', value: '' },
    { label: '主机', value: '主机' },
    { label: '镜子', value: '镜子' },
    { label: '洗消机', value: '洗消机' },
    { label: '小镜种', value: '小镜种' },
    { label: '能量', value: '能量' },
    { label: '光源', value: '光源' },
    { label: '其他', value: '其他' }
];
const productCategoryOptions = [
    { label: '--无--', value: '' }
];
const columns3 = [
    {label : "失单品牌",fieldName : "LostBrandName__c"},
    {label : "失单对手型号",fieldName : "productName"},
    {label : "失单数量",fieldName : "Quantity__c",type : "number"},
    {label : "失单对手型号(手动)",fieldName : "LostProductMannual__c"},
    {label : "失单产品类别",fieldName : "ProductClass__c"},
    {label : "失单产品区分",fieldName : "ProductCategory__c"}
];
const reasonOptions = [
    { label: '--无--', value: '' },
    { label: '特约与客户关系不好', value: '特约与客户关系不好' },
    { label: '特约与二级合作问题', value: '特约与二级合作问题' },
    { label: '特约覆盖不足', value: '特约覆盖不足' },
    { label: '特约推广活动不力', value: '特约推广活动不力' },
    { label: '二级选择问题', value: '二级选择问题' },
    { label: '二级价格高', value: '二级价格高' },
    { label: '医院指定二级', value: '医院指定二级' }
];
const RecordTypeOptions = [
    { label: '--无--', value: '' },
    { label: '失单', value: '失单' },
    { label: '部分失单', value: '部分失单' }
];
import { api, wire,track,LightningElement } from 'lwc';
import { CurrentPageReference } from "lightning/navigation";
import dataEntry from '@salesforce/apex/lexPCLLostReportLwcController.dataEntry';
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,getRecord } from 'lightning/uiRecordApi';
import { refreshApex } from '@salesforce/apex';
import submitForApproval from '@salesforce/apex/lexPCLLostReportLwcController.submitForApproval';
import reassignStep from '@salesforce/apex/lexPCLLostReportLwcController.reassignStep';
import getUserProfileId from '@salesforce/apex/lexPCLLostReportLwcController.getUserProfileId';
import PCLReportProfileId from '@salesforce/label/c.PCLReportProfileId';
import lwcCSS from '@salesforce/resourceUrl/lwcCSS';
import lexButtonCss from '@salesforce/resourceUrl/lexButtonCss';
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;
    @track columns2s=columns22;
    @track status = {
        pageStatus: 'Create'
      }
    @track newActorId = null;
    newReport;
    action;
    isLookup;
    modalsubmitLabel;
    @track isPop;
    @track message;
    @track isSuccess;
    @track LostReport = {
        LostBrands: [
        ],
        lostReport: {}
    }
    editStatus;
    reasonOptions = reasonOptions;
    @track brandOptions = [];
    @track isInit = false;
    lostType = '失单';
    submitFlag = '';
    flag;
    tableflag = 0;
    @api reportId;
    @api pageStatus;
    newProduct;
    productOptionsList;
    productClassOptions = productClassOptions;
    productCategoryOptions = productCategoryOptions;
    columns3 = columns3;
    //失单类型
    RecordTypeOptions = RecordTypeOptions;
    isSubmit = false;
    deleteBrandIdList = [];
    deleteProductIdList = [];
    IsLoading;
    newApprovalHistorys;
    userProfileId;
    userId;
    allowUserId;
    submitUserId;
    specProFlg;
    loadingFlg;
    @track isSubmitUser = false;
    @track isAllowUser = false;
    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');
        }
    }
    getQueryVariable(variable,location) { //id字符串
        debugger
        var query = window.location.search.substring(1);
        if(!query){
            query = location;
        }
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return '';
    }
    connectedCallback(){
        Promise.all([
            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);
        this.lostType = decodeURI(this.getQueryVariable('lostType',this.location));
        this.status.pageStatus = this.pageStatus;
        init({
            oppId1: this.oppId,
            lostReportId1: this.reportId,
            pageStatus1: this.status.pageStatus,
            lostType1: this.lostType,
            submitFlag1: this.submitFlag
        }).then(result=>{
            if(result.message != null){
                if(result.message == '提交成功!'){
                    this.showToast(result.message,"success");
                    this.LostReport = result.LostReport;
                }else{
                    this.showToast(result.message,"error");
                    setTimeout(() => {
                        // window.location = '/lightning/r/Opportunity/' + this.oppId + '/view';
                        this.remoteUrl();
                    }, 2000);
                }
            }else{
                this.allowUserId = result.allowUserId;
                this.userId = result.userId;
                this.submitUserId = result.submitUserId;
                this.userProfileId = result.userProfileId;
                console.log('allowUserId' + this.allowUserId);
                console.log('userId' + this.userId);
                console.log('submitUserId' + this.submitUserId);
                console.log('userProfileId' + this.userProfileId);
                console.log('systemProfileId' + systemProfileId);
                if(this.userId == this.submitUserId || this.userProfileId == systemProfileId){
                    this.isSubmitUser = true;
                }
                if(this.userId == this.allowUserId  || this.userProfileId == systemProfileId){
                    this.isAllowUser = true;
                }
                if(result.LostReport.lostReport.Report_Status__c == '申请中'){
                    this.editStatus = '申请中';
                    console.log('shenqingzhong');
                }else if(result.LostReport.lostReport.Report_Status__c == '批准'){
                    this.editStatus = '批准';
                    console.log('pizhun');
                }
                var report = result.LostReport;
                this.LostReport = report;
                // this.LostReport.LostBrands.forEach(brand=>{
                //     if(brand.lostBrand.Lost_Reason_Sub__c == '行政决策' || brand.lostBrand.Lost_reason_main__c == '行政决策'){
                //         this.template.querySelectorAll();
                //     }
                // });
                // for(var i=0;i < this.LostReport.LostBrands.length;i++){
                //     if(this.LostReport.LostBrands[i].lostBrand.Lost_Reason_Sub__c == '行政决策' || this.LostReport.LostBrands[i].lostBrand.Lost_reason_main__c == '行政决策'){
                //     }
                // }
                if(!this.LostReport.lostReport.LostTotalAmount__c){
                    this.LostReport.lostReport.LostTotalAmount__c = 0.0;
                }
                if(!this.LostReport.lostReport.InclusionUltrasound__c){
                    this.LostReport.lostReport.InclusionUltrasound__c = '0';
                }
                this.newProduct = JSON.parse(JSON.stringify(this.LostReport.LostBrands[0].LostProducts[0]));
                if(this.newProduct.LostProductss.Id){
                    delete this.newProduct.LostProductss.Id;
                }
                this.newProduct.LostProductss.LostBrandName__c = '';
                this.newProduct.LostProductss.LostProduct__r = '';
                this.newProduct.LostProductss.Quantity__c = '';
                this.newProduct.LostProductss.LostProductMannual__c = '';
                this.newProduct.LostProductss.ProductClass__c = '';
                this.newProduct.LostProductss.ProductCategory__c = '';
                // this.newProduct.LostProductss.Id = '';
                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 = '已批准';
                            this.LostReport.approvalHistorys[i].isApproved = true;
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Fault'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Pending'){
                            this.LostReport.approvalHistorys[i].StepStatus = '待处理';
                            this.LostReport.approvalHistorys[i].isPending = true;
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Held'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'NoResponse'){
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Reassigned'){
                            this.LostReport.approvalHistorys[i].StepStatus = '已重新分配';
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Rejected'){
                                this.LostReport.approvalHistorys[i].StepStatus = '已拒绝';
                                this.LostReport.approvalHistorys[i].isRejected = true;
                        }else if(this.LostReport.approvalHistorys[i].StepStatus == 'Removed'){
                            this.LostReport.approvalHistorys[i].StepStatus = '已撤回';
                            this.LostReport.approvalHistorys[i].isRemoved = true;
                        }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;
                    if(this.LostReport.lostReport.Report_Status__c == '批准'){
                        this.submitFlag = false;
                    }
                }
                console.log(PCLReportProfileId.includes(this.userProfileId));
                console.log(PCLReportProfileId);
                console.log(this.userProfileId);
                getUserProfileId().then(result1=>{
                    this.userProfileId = result1;
                    if(this.pageStatus == 'Edit' && !(this.LostReport.lostReport.Report_Status__c == '草案' || this.userProfileId == '00e10000000Y3o5AAC' || (this.LostReport.lostReport.Report_Status__c == '批准' && PCLReportProfileId.includes(this.userProfileId)))){
                        this.status.pageStatus = 'View';
                    }
                    this.isInit = true;
                });
            }
            }).catch(error=>{
                console.log("error");
                console.log(error);
            });
        searchBrands().then(result=>{
            this.brandOptions = JSON.parse(result);
            const multiComboboxs = this.template.querySelectorAll('c-multi-select-combobox');
            multiComboboxs.forEach(multiCombobox=>{
                multiCombobox.refreshOptions(this.brandOptions);
            });
        }).catch(error=>{
            console.log("error");
            console.log(error);
        });
        getPickList({
            objectName: 'PCLLostProduct__c',
            fieldName: 'ProductCategory__c'
        }).then(result=>{
            this.productOptionsList = JSON.parse(result);
            this.LostReport.LostBrands.forEach(brand=>{
                brand.LostProducts.forEach(product=>{
                    product.productOptions = this.productOptionsList['全部'];
                });
            });
            this.LostReport = JSON.parse(JSON.stringify(this.LostReport));
            console.log(this.LostReport.approvalHistorys.length + 'size');
        }).catch(error=>{
            console.log('error');
            console.log(error);
        });
    }
    isqita(){
    }
    saveJs() {
        blockme();
        save();
    renderedCallback(){
        const sections = this.template.querySelectorAll('lightning-accordion-section');
        sections.forEach(section=>{
            section.active = true;
        });
        var elements = this.template.querySelectorAll('lightning-combobox');
                elements.forEach(element=>{
                    if(element.value == '行政决策'){
                        element.options = columns2RandomList[Math.floor(Math.random() * 10)];
                    }
                });
        var elements1 = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
        var i = 0;
        console.log('elements1=> ' + elements1[i]);
        this.LostReport.LostBrands.forEach(brand=>{
            if(brand.lostBrand.Lost_By_Company__c == '其他' && elements1.length > 0 ){
                console.log('val=> ' + elements1[i].value);
                if(elements1[i].value){
                    elements1[i].disabled = false;
                    elements1[i].required = true;
                }
            }
        });
        // 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;
        // }
        // this.LostReport = JSON.parse(JSON.stringify(this.LostReport));
    }
    brandTitle = ['失单品牌1','失单品牌2','失单品牌3','失单品牌4','失单品牌5','失单品牌6'];
    location;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference) {
            console.log(111);
            console.log(currentPageReference);
        if (currentPageReference) {
            const urlValue = currentPageReference.state.fragment;
            if (urlValue) {
              this.location = urlValue;
            }
        }
    }
    closeAction(){
        this.visible = false;
    }
    get haveApprovalHistorys(){
        console.log(this.LostReport.approvalHistorys.length + 'size');
        if(this.LostReport.approvalHistorys.length > 1){
            return true;
        }else{
            return false;
        }
    }
    get isCanSubmit(){
        if(this.LostReport.lostReport.Report_Status__c == '草案' || this.LostReport.lostReport.Report_Status__c == '批准'){
            return true;
        }else{
            return false;
        }
    }
    get isCanEdit(){
        if(this.LostReport.lostReport.Report_Status__c == '草案' || this.userProfileId == '00e10000000Y3o5AAC' || (this.LostReport.lostReport.Report_Status__c == '批准' && PCLReportProfileId.includes(this.userProfileId))){
            return true;
        }else{
            return false;
        }
    }
    showToast(msg,type) {
        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 getData(){
        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
        var products = newLostReport.LostBrands[this.tableflag].LostProducts;
        var productList = [];
        products.forEach(product=>{
            var newProduct = product;
            newProduct.LostProductss.productName = newProduct.productName;
            productList.push(newProduct.LostProductss);
        });
        this.tableflag++;
        return productList;
    }
    get isBrandCount2(){
        var flag = true;
        if(this.LostReport.LostBrands.length > 1){
            flag = false;
        }
        return flag;
    }
    get isView(){
        if(this.status.pageStatus == 'View'){
            return true;
        }
        return false;
    }
    get isCreateOrEdit(){
        if(this.status.pageStatus == 'Create' || this.status.pageStatus == 'Edit'){
            return true;
        }
        return false;
    }
    get isCaoAn(){
        if(this.LostReport.lostReport.Report_Status__c == '草案' || this.LostReport.lostReport.Report_Status__c == '批准'){
            return true;
        }else{
            return false;
        }
    }
    get isEdit(){
        if(this.status.pageStatus == 'Edit'){
            return true;
        }
        return false;
    }
    get isSubmit(){
        if(this.submitFlag){
            return true;
        }
        return false;
    }
    addBrandJs() {
        blockme();
        addBrand();
        getNewLostBrand({
            lineNo: this.LostReport.LostBrands.length
        }).then(result=>{
            this.LostReport.LostBrands.push(result);
            // 获取 lightning-accordion 的 DOM 元素
            setTimeout(() => {
                const accordion = this.template.querySelector('.example-accordion');
            console.log(accordion);
            console.log('1');
            accordion.activeSectionName = this.brandTitle;
            }, 200);
        });
    }
    submitJS() {
        blockme();
        submit();
    addRow(event){
        var index = event.target.name;
        getNewLostProduct({
            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
        }).then(result=>{
            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);
        });
    }
    addProductJs(number) {
        blockme();
        addProduct(number);
    submitJs() {
        console.log('1');
        this.IsLoading = true;
        submit({
            reportStatus: this.LostReport.lostReport.Report_Status__c,
            modifyAfterApproval: this.LostReport.lostReport.ModifyAfterApproval__c,
            reportId: this.LostReport.lostReport.Id
        }).then(result=>{
            if(result.error){
                this.showToast(result.error,"error");
            }else{
                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 = '已批准';
                        result.approvalHistorys[i].isApproved = true;
                    }else if(result.approvalHistorys[i].StepStatus == 'Fault'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Pending'){
                        result.approvalHistorys[i].StepStatus = '待处理';
                        result.approvalHistorys[i].isPending = true;
                    }else if(result.approvalHistorys[i].StepStatus == 'Held'){
                    }else if(result.approvalHistorys[i].StepStatus == 'NoResponse'){
                    }else if(result.approvalHistorys[i].StepStatus == 'Reassigned'){
                        result.approvalHistorys[i].StepStatus = '已重新分配';
                    }else if(result.approvalHistorys[i].StepStatus == 'Rejected'){
                        result.approvalHistorys[i].isRejected = '已拒绝';
                        result.approvalHistorys[i].isApproved = true;
                    }else if(result.approvalHistorys[i].StepStatus == 'Removed'){
                        result.approvalHistorys[i].isRemoved = '已撤回';
                        result.approvalHistorys[i].isApproved = true;
                    }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.showToast('提交成功!','success');
                setTimeout(() => {
                    this.remoteUrl();
                }, 2000);
            }
            this.IsLoading = false;
        }).catch(error=>{
            console.log("error");
            console.log(error);
        });
    }
    RemoveJs(number) {
        blockme();
        Remove(number);
    remoteUrl(){
        var url = '/lightning/n/PCLLostReportPageLwc#pageStatus=View&reportId=' + this.LostReport.lostReport.Id;
                    var urlStatus = this.getQueryVariable('pageStatus',this.location);
                    if(urlStatus == 'View'){
                        console.log('viewpage');
                        window.location.reload();
                    }else{
                        console.log('editpage');
                        window.location = url;
                        window.location.reload();
                    }
    }
    // add tcm 20211118 start
    searchJs(topNum, secondNum) {
        blockme();
        search(topNum, secondNum);
    onApproveChange(event){
        // var approvalId;
        // for(var i=0;i < this.LostReport.approvalHistorys.length;i++){
        //     if(this.LostReport.approvalHistorys[i].StepStatus == '待处理'){
        //         approvalId = this.LostReport.approvalHistorys[i].Id;
        //     }
        // }
        // window.open('/lightning/r/ProcessInstanceStep/'+ approvalId + '/view?0.source=alohaHeader');
        this.isPop = true;
    }
    onApproveChange1(){
        window.open('/lightning/r/' + this.LostReport.lostReport.Id + '/related/ProcessSteps/view?0.source=alohaHeader');
    }
    deleteBrandJs(event){
        var str = event.target.name;
        if(this.LostReport.LostBrands[str].lostBrand.Id){
            this.deleteBrandIdList.push(this.LostReport.LostBrands[str].lostBrand.Id);
        }
        this.LostReport.LostBrands.splice(str,1);
        console.log(this.LostReport);
        this.deleteBrandIdList.forEach(brandId=>{
            console.log(brandId);
        });
        this.setLostTotalAmount();
    }
    // add tcm 20211118 end
    setLostTotalAmount() {
        //console.log('setLostTotalAmount start:');
        var totalAmount = document.getElementById("allPage:allForm:allBlock:EditPage:LostReport:lstReport:LostTotalAmountOut:LostTotalAmount");
        var totalAmountHidden = document.getElementById("allPage:allForm:allBlock:LostTotalAmount");
        if (!!totalAmount && !!totalAmountHidden) {
            var tempLostAmount = 0.0;
            var i = 0;
            var brandCount = parseInt("{!brandCount}");
            //console.log(brandCount);
        var tempLostAmount = 0.0;
        this.LostReport.LostBrands.forEach(brand=>{
            tempLostAmount = tempLostAmount + parseFloat(brand.lostBrand.LostPrice__c);
        });
        this.LostReport.lostReport.LostTotalAmount__c = tempLostAmount;
    }
    setBrandMannualName(event) {
        var index = event.target.name;
        const payload = event.detail.payload;
        const payloadType = event.detail.payloadType;
        if(this.LostReport.LostBrands[index].lostBrand.Id){
            this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
                if(product.LostProductss.Id){
                    var productId = product.LostProductss.Id
                    this.deleteProductIdList.push(productId);
                }
            });
            console.log(this.deleteProductIdList);
        }
        this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c = payload.value;
        // this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = '';
        // this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = '';
        // this.LostReport.LostBrands[index].lostBrand.ChannelSpecificReasons__c = '';
        // this.LostReport.LostBrands[index].reasonFlag = false;
        searchBatchIfForProduct({
            productName: this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c
        }).then(result=>{
            console.log(result);
            if(result == '进口'){
                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 = this.columns2s = columns2RandomList[Math.floor(Math.random() * 10)];
            }
            if(payloadType === 'multi-select'){
                this.clearProducts(payload.value,index);
                // this.setDefaultBrand(payload.value,index);
                this.clearBrandMannualName(payload.value,index);
            }
        });
    }
    setDefaultBrand(value,index){
        var newProducts = [];
        getNewLostProduct({
            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
        }).then(result=>{
            this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
                result.LostProductss.LostBrandName__c = value;
                newProducts.push(result);
                this.LostReport.LostBrands[index].LostProducts = newProducts;
            });
        });
            for (var i = 0; i < brandCount; i++) {
                var brandAmountObject =
                    document.getElementById("allPage:allForm:allBlock:EditPage:LostBrands:" +
                        i + ":LostBrand:BrandContent:LostPriceOut:LostPrice");
                var brandCompanyObject =
                    document.getElementById("allPage:allForm:allBlock:EditPage:LostBrands:" +
                        i + ":LostBrand:BrandContent:Lost_By_CompanyOut:Lost_By_Company");
        // this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
        //     this.newProduct.LostProductss.LostBrandName__c = value;
        //     newProducts.push(JSON.parse(JSON.stringify(this.newProduct)));
        // });
        // this.LostReport.LostBrands[index].LostProducts = newProducts;
    }
    clearProducts(value,index){
        var cc = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c;
        console.log('cc=' + cc)
        if (value == '其他' && (cc != null && cc != '' && cc != undefined)) {
            return;
        }else if(value != '其他'){
            this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c = null;
            console.log('wqeer1');
        }
        var newProducts = [];
        console.log(this.newProduct);
        getNewLostProduct({
            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
        }).then(result=>{
            console.log('wqeer2');
            this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
                result.LostProductss.LostBrandName__c = value;
                newProducts.push(result);
            });
            console.log('wqeer3');
            var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + index + '"]');
            elements1.forEach(element=>{
                element.readOnly = false;
            });
            console.log('wqeer4');
            var elements2 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
            elements2.forEach(element=>{
                element.clearSelection();
            });
            console.log('wqeer5');
            this.LostReport.LostBrands[index].LostProducts = newProducts;
            console.log('wqeer');
            console.log(this.LostReport);
        }).catch(error=>{
            console.log('error');
            console.log(error);
        });
    }
                if (!!brandAmountObject && !!brandCompanyObject) {
                    var brandCompanyText = brandCompanyObject.innerText;
                    var brandCompanyValue = brandCompanyObject.value;
                    if (!!brandCompanyText && brandCompanyText != '--无--' && !!brandCompanyValue) {
                        var brandAmount = localParseFloat(brandAmountObject.value);
                        //console.log('brandAmount:'+brandAmount);
                        tempLostAmount = tempLostAmount + brandAmount;
                    }
    // 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用  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;
            elements[index].required = true;
            var elements1 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
                    elements1.forEach(element=>{
                        element.letDisabledTrue();
                    });
        } else {
            var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
            this.brandFlag = false;
            elements[index].value = '';
            elements[index].disabled = true;
            elements[index].required = false;
            var elements1 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
            elements1.forEach(element=>{
                element.letDisabledFalse();
            });
        }
    }
    cancel() {
        // Navigate to the specified opportunity page using the NavigationMixin
        // this[NavigationMixin.Navigate]({
        //     type: 'standard__recordPage',
        //     attributes: {
        //         recordId: this.oppId,
        //         actionName: 'view'
        //     }
        // });
        window.location = '/lightning/r/Opportunity/' + this.LostReport.lostReport.Opportunity__c + '/view';
    }
    removeFieldsWithR(obj) {
        if (Array.isArray(obj)) {
            // 如果属性是数组,遍历数组元素
            for (var i = 0; i < obj.length; i++) {
                // 递归调用函数处理数组元素
                this.removeFieldsWithR(obj[i]);
            }
        } else if (typeof obj === 'object' && obj !== null) {
            // 如果属性是对象,则遍历对象属性
            for (var key in obj) {
                if (key.includes('__r') || key === 'approvalHistorys') {
                    // 如果属性名以 '__r' 结尾,删除它
                    console.log(key);
                    delete obj[key];
                }else if (typeof obj[key] === 'object' && obj[key] !== null) {
                    // 如果属性是对象,则递归调用该函数
                    this.removeFieldsWithR(obj[key]);
                }
            }
            totalAmount.innerHTML = toNumComma(tempLostAmount);
            totalAmountHidden.value = tempLostAmount;
        }
        //console.log('setLostTotalAmount end');
    }
    setBrandName(brandNumber) {
        blockme();
        setbrand(brandNumber);
    }
    setBrandMannualName(brandNumber) {
        blockme();
        setbrandmannual(brandNumber);
    }
    // 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用  thh 2022-01-13 start
    clearBrandMannualName(){
        if(document.getElementById('allPage:allForm:allBlock:EditPage:LostBrands:0:LostBrand:BrandContent:Lost_By_CompanyOut:Lost_By_Company').value == '其他'){
            j$(escapeVfId('allPage:allForm:allBlock:EditPage:LostBrands:0:LostBrand:productTable:0:LostProduct')).attr("disabled", true);
        } else{
            document.getElementById('allPage:allForm:allBlock:EditPage:LostBrands:0:LostBrand:BrandContent:Lost_By_Company_MannualOut:Lost_By_Company_Mannual').value = '';
            j$(escapeVfId('allPage:allForm:allBlock:EditPage:LostBrands:0:LostBrand:BrandContent:Lost_By_Company_MannualOut:Lost_By_Company_Mannual')).attr("disabled", true);
        }
    }
    // 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用  thh 2022-01-13 end
    saveBrandJs(event) {
        this.IsLoading = true;
        this.dataCheck();
        if(!this.flag){
            this.IsLoading = false;
            return;
        }
        console.log(this.LostReport);
        this.newReport = JSON.parse(JSON.stringify(this.LostReport));
        this.newReport.approvalHistorys = this.newApprovalHistorys;
        console.log(JSON.stringify(this.newReport));
        this.removeFieldsWithR(this.newReport);
        console.log(JSON.stringify(this.newReport));
        dataEntry({
            report1 : JSON.stringify(this.newReport),
            deleteBrandIdList: this.deleteBrandIdList,
            deleteProductIdList: this.deleteProductIdList
        }).then(result=>{
            console.log(result);
            this.deleteBrandIdList.splice(0,this.deleteBrandIdList.length);
            this.deleteProductIdList.splice(0,this.deleteProductIdList.length);
            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 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 = '已批准';
                            newLostReport.approvalHistorys[i].isApproved = true;
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Fault'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Pending'){
                            newLostReport.approvalHistorys[i].StepStatus = '待处理';
                            newLostReport.approvalHistorys[i].isPending = true;
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Held'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'NoResponse'){
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Reassigned'){
                            newLostReport.approvalHistorys[i].StepStatus = '已重新分配';
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Rejected'){
                            newLostReport.approvalHistorys[i].StepStatus = '已拒绝';
                            newLostReport.approvalHistorys[i].isRejected = true;
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Removed'){
                            newLostReport.approvalHistorys[i].StepStatus = '已撤回';
                            newLostReport.approvalHistorys[i].isRemoved = true;
                        }else if(newLostReport.approvalHistorys[i].StepStatus == 'Started'){
                            newLostReport.approvalHistorys[i].StepStatus = '已提交';
                        }
                    }
                }
                this.status.pageStatus = 'View';
                this.LostReport = newLostReport;
                this.reportId = result.reportId;
                // this.LostReport.lostReport.Id = result.reportId;
                // console.log(this.LostReport);
                this.tableflag = 0;
                this.showToast('保存成功','success');
                console.log(this.LostReport);
                this.LostReport.LostBrands.forEach(brand=>{
                    if(brand.lostBrand.Id){
                        this.updateRecordView(brand.lostBrand.Id);
                    }
                });
            }
            this.IsLoading = false;
        }).catch(error=>{
            console.log("error");
            console.log(error);
        });
    }
    editJs(){
        this.status.pageStatus = 'Edit';
        var elements = this.template.querySelectorAll('lightning-combobox');
                console.log('elements=>' + elements.length);
                elements.forEach(element=>{
                    if(element.value == '行政决策'){
                        element.options = columns2RandomList[Math.floor(Math.random() * 10)];
                    }
                });
    }
    dataCheck(){
        this.flag = true;
        if(this.LostReport.lostReport.LostType__c == undefined || this.isBlank(this.LostReport.lostReport.LostType__c))
      {
            this.flag = false;
            this.showToast('必须填写失单类型!','error');
      }
        this.LostReport.LostBrands.forEach(tempLostBrand=>{
         if(tempLostBrand.lostBrand.Lost_By_Company__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_By_Company__c)) {
                this.flag = false;
                this.showToast('请填写失单品牌!','error');
         }// fy SWAG-CCC6F6 start
         else if(tempLostBrand.lostBrand.Lost_By_Company__c == '其他' && (tempLostBrand.lostBrand.Lost_By_Company_Mannual__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_By_Company_Mannual__c))){
                this.flag = false;
                this.showToast('请填写失单品牌(手动)!','error');
         }// fy SWAG-CCC6F6 end
         if(tempLostBrand.lostBrand.LostPrice__c == undefined || this.isBlank(tempLostBrand.lostBrand.LostPrice__c)) {
                this.flag = false;
                this.showToast('失单金额必填!','error');
         }
         if(tempLostBrand.lostBrand.Lost_reason_main__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_reason_main__c)) {
                this.flag = false;
                this.showToast('失单理由(主)必填!','error');
         }
         if(tempLostBrand.lostBrand.Agency__c == undefined || this.isBlank(tempLostBrand.lostBrand.Agency__c)) {
                this.flag= false;
                this.showToast('中标经销商必填!','error');
         }
         // 检查是否有超过1个有数的产品
         var productCount = 0;
            tempLostBrand.LostProducts.forEach(temlostProduct=>{
                if ((temlostProduct.LostProductss.LostProduct__c != undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c != undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c))) {
               productCount ++;
            }
            // update tcm 20211123 start
            if(((temlostProduct.LostProductss.LostProduct__c!= undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&(temlostProduct.LostProductss.Quantity__c==undefined || this.isBlank(temlostProduct.LostProductss.Quantity__c) || temlostProduct.LostProductss.Quantity__c ==0)) {
                    this.flag = false;
                    this.showToast('请填写失单数量!','error');
            }
            if(((temlostProduct.LostProductss.LostProduct__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&(temlostProduct.LostProductss.ProductCategory__c==undefined || this.isBlank(temlostProduct.LostProductss.ProductCategory__c))) {
                    this.flag = false;
               if (temlostProduct.LostProductss.ProductClass__c==undefined || this.isBlank(temlostProduct.LostProductss.ProductClass__c)) {
                        this.showToast('失单产品类别必填!','error');
                        this.showToast('失单产品必填!','error');
               }else {
                        this.showToast('失单产品必填!','error');
               }
            }
            // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start
            if (((temlostProduct.LostProductss.LostProduct__c==undefined || this.isBlank(temlostProduct.LostProductss.LostProduct__c)) && (temlostProduct.LostProductss.LostProductMannual__c==undefined || this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&((temlostProduct.LostProductss.ProductCategory__c!=undefined && !this.isBlank(temlostProduct.LostProductss.ProductCategory__c))||(temlostProduct.LostProductss.Quantity__c!=undefined && !this.isBlank(temlostProduct.LostProductss.Quantity__c)))) {
                    this.flag = false;
               if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){
                        this.showToast('失单对手型号或失单对手型号(手动)必填!','error');
               } else{
                        this.showToast('失单对手型号或失单对手型号(手动)必填!','error');
               }
            }
            // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end
            // update tcm 20211123 end
         });
         // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start
         if (productCount == 0 && (tempLostBrand.LostProducts != undefined && !this.isBlank(tempLostBrand.LostProducts)) && tempLostBrand.LostProducts.length > 0) {
                this.flag = false;
            if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){
                    this.showToast('至少录入1条失单对手型号信息!','error');
            }else{
                    this.showToast('至少录入1条失单对手型号信息!','error');
            }
            }
            // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end
        });
    }
    isBlank(str) {
        return /^\s*$/.test(str);
      }
    removeRow(event){
        var index1 = event.target.name;
        var index2 = event.target.value;
        var deleteButtons = this.template.querySelectorAll('.iconButton[data-id="' + index1 + '"]');
        console.log(deleteButtons.length + ' chen1');
        if(deleteButtons.length == 1){
            return;
        }
        if(this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Id){
            var productId = this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Id;
            this.deleteProductIdList.push(productId);
        }
        this.LostReport.LostBrands[index1].LostProducts.splice(index2,1);
        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) {
            console.log('element1' + elements1[secondNum]);
            console.log('element2' + elements2[secondNum]);
            elements1[secondNum].readOnly = false;
            elements2[secondNum].readOnly = false;
         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;
      }else {
         searchProduct({
                lostProduct : this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c
            }).then(result=>{
                console.log(result);
                var prd = JSON.parse(result);
                this.LostReport.LostBrands[topNum].LostProducts[secondNum].productOptions = this.productOptionsList[prd.ProductClass__c];
                if (prd.ProductCategory__c!=null) {
                    console.log('element1' + elements1[secondNum]);
                    console.log('element2' + elements2[secondNum]);
                    if(elements1[secondNum]!=undefined){
                        elements1[secondNum].readOnly = false;
                    }
                    elements2[secondNum].readOnly = false;
                    this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=prd.ProductClass__c;
                    console.log(prd.ProductClass__c + '  ' + prd.ProductCategory__c);
                    if(prd.ProductClass__c == '其他' && (prd.ProductCategory__c == '' || prd.ProductCategory__c == null || prd.ProductCategory__c == undefined)){
                        this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c = '其他';
                    }else{
                        this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=prd.ProductCategory__c;
                    }
                    if(elements1[secondNum]!=undefined){
                        elements1[secondNum].readOnly = true;
                    }
                    elements2[secondNum].readOnly = true;
                }else {
                    if(elements1[secondNum]!=undefined){
                        elements1[secondNum].readOnly = false;
                    }
                    elements2[secondNum].readOnly = false;
                    this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null;
                    this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=null;
                    // elements1[secondNum].readOnly = true;
                    elements2[secondNum].readOnly = true;
                }
            }).catch(error=>{
                console.log("error");
                console.log(error);
            });
      }
    }
    handleModalCancel(){
        this.isPop = false;
    }
    handleModalSubmit(){
        this.IsLoading = true;
        const comment = this.template.querySelector('.textAreaBody');
        console.log(this.isLookup == true && this.newActorId == null);
        if(this.isLookup == true && this.newActorId == null){
            this.showToast('请填入新分配人','error');
            this.IsLoading = false;
            return;
        }
        this.isPop = false;
        if(this.newActorId){
            reassignStep({
                recordId: this.LostReport.lostReport.Id,
                newActorId: this.newActorId
            }).then(result=>{
                if(result){
                    this.showToast('您无权重新分配','error');
                    this.IsLoading = false;
                }else{
                    // window.location = '/' + this.LostReport.lostReport.Id;
                    this.remoteUrl();
                }
            });
        }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');
                    }else if(this.action == 'Reject'){
                        this.showToast('您无权拒绝','error');
                    }else if(this.action == 'Removed'){
                        this.showToast('您无权撤回','error');
                    }
                    this.IsLoading = false;
                }else{
                    // window.location = '/' + this.LostReport.lostReport.Id;
                    this.remoteUrl();
                }
            }).catch(error=>{
                console.log('error');
                console.log(error);
            });
        }
    }
    handleSubmitApp(){
        this.modalsubmitLabel = '批准';
        this.isPop = true;
        this.action = 'Approve';
        this.isLookup = false;
        this.newActorId = null;
    }
    handleReStartApp(){
        this.modalsubmitLabel = '分配';
        for(var i=0;i < this.LostReport.approvalHistorys.length;i++){
            if(this.LostReport.approvalHistorys[i].StepStatus == '待处理'){
                console.log('xqc');
                this.newActorId = this.LostReport.approvalHistorys[i].Actor.Id;
            }
        }
        this.isPop = true;
        this.isLookup = true;
    }
    ser(userId){
        return '/lightning/r/User/' + userId + '/view';
    }
    handleNoApp(){
        this.modalsubmitLabel = '拒绝';
        this.isPop = true;
        this.action = 'Reject';
        this.isLookup = false;
        this.newActorId = null;
    }
    handleCancelApp(){
        this.modalsubmitLabel = '撤回';
        this.isPop = true;
        this.action = 'Removed';
        this.isLookup = false;
        this.newActorId = null;
    }
    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;
        this.LostReport.LostBrands[index1].LostProducts[index2].productName = event.detail.Name;
        this.search(index1,index2);
    }
    handleLostTypeChange(event){
        var value = event.target.value;
        this.LostReport.lostReport.LostType__c = value;
    }
    handleChannelSpecificReasonChange(event){
        var value = event.target.value;
        var index = event.target.name;
        this.LostReport.LostBrands[index].lostBrand.ChannelSpecificReasons__c = value;
    }
    handleLostReasonMainChange(event){
        var index = event.target.name;
        var value = event.target.value;
        this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = value;
        if(value == '渠道因素'){
            this.LostReport.LostBrands[index].reasonFlag = true;
        }else if(this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c != '渠道因素' && this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c != '渠道因素'){
            this.LostReport.LostBrands[index].reasonFlag = false;
            this.LostReport.LostBrands[index].lostBrand.ChannelSpecificReasons__c = '';
        }
    }
    handleLostReasonSubChange(event){
        var index = event.target.name;
        var value = event.target.value;
        this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = value;
        if(value == '渠道因素'){
            this.LostReport.LostBrands[index].reasonFlag = true;
        }else if(this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c != '渠道因素' && this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c != '渠道因素'){
            this.LostReport.LostBrands[index].reasonFlag = false;
            this.LostReport.LostBrands[index].lostBrand.ChannelSpecificReasons__c = '';
        }
    }
    handleLostByCompanyMannualChange(event){
        try {
        var index = event.target.name;
        var value = event.target.value;
        this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c = value;
        this.setDefaultBrand(value,index);
        // if((value == '' || value == null) && this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c == '其他'){
        //     var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
        //     elements[index].disabled = false;
        // }
        } catch (error) {
            console.log('error');
            console.log(error);
        }
        // var elements = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
        //     if(value == '' || value == null){
        //         elements.forEach(element=>{
        //             element.letDisabledTrue();
        //         });
        //     }else{
        //         elements.forEach(element=>{
        //             element.letDisabledFalse();
        //         });
        //     }
    }
    handleLostPriceOutChange(event){
        var index = event.target.name;
        var value = event.target.value;
        this.LostReport.LostBrands[index].lostBrand.LostPrice__c = value;
        this.setLostTotalAmount();
    }
    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;
    }
    handleLostBrandNameChange(event){
        var index1 = event.target.title;
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostBrandName__c = event.target.value;
    }
    handleLostProductChange(event){
        var index1 = event.target.title;
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c = event.target.value;
    }
    handleQuantityChange(event){
        var index1 = event.target.title;
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Quantity__c = event.target.value;
    }
    handleLostProductMannualChange(event){
        var index1 = event.target.title;
        var index2 = event.target.name;
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProductMannual__c = event.target.value;
    }
    handleProductClassChange(event){
        var index1 = event.target.title;
        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;
            temps1[index2].value = '';
        }else{
            var temps1 =this.template.querySelectorAll('.ProductCategory[data-id="'+ index1 +'"]');
            temps1[index2].readOnly = false;
            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;
                    }
                });
            }
        }
    }
    handleActorChange(event){
        this.newActorId = event.target.value;
    }
    handleProductCategoryChange(event){
        var index1 = event.target.title;
        var index2 = event.target.name;
        var val = event.target.value;
        var categorys = this.template.querySelectorAll('.ProductCategory');
        var flag = false;
        categorys.forEach(category=>{
            if(category.value == '超声主机'){
                flag = true;
            }
        });
        if(flag){
            this.LostReport.lostReport.InclusionUltrasound__c = '1';
        }else{
            this.LostReport.lostReport.InclusionUltrasound__c = '0';
        }
        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductCategory__c = val;
    }
}