binxie
2023-07-11 67765d99c19ad354e66f8646d8597622b5d81ef7
force-app/main/default/lwc/lexDealerInquiryModifyState/lexDealerInquiryModifyState.js
@@ -1,63 +1,974 @@
import { LightningElement,track } from 'lwc';
import { LightningElement, track } from 'lwc';
import init from '@salesforce/apex/LexDealerInquiryModifyStateController.init';
import searchOppInner from '@salesforce/apex/LexDealerInquiryModifyStateController.searchOppInner';
import save from '@salesforce/apex/LexDealerInquiryModifyStateController.save';
// import { loadScript , loadStyle } from 'lightning/platformResourceLoader';
// import jQueryMin from '@salesforce/resourceUrl/lexJQuery';
// import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
//table css
import { loadStyle } from 'lightning/platformResourceLoader';
import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable';
export default class LexDealerInquiryModifyState extends LightningElement {
    @track accSearch;
    @track aooSearch;
    @track showSpinner = true;
    //表头样式
    stylesLoaded = false;
    @track accSearch = '';
    @track aooSearch = '';
    @track limits;
    @track limitOpts = [];
    @track numtext1;
    @track numtext2;
    @track numtext1 = '';
    @track numtext2 = '=';
    @track numtext;
    @track textOpts = [];
    @track equalOpts = [];
    @track strColumus = '';
    @track strRtColumus = '';
    //分页start
    @track sortBy = '';
    //@track sortDirection = "asc";
    @track pageSize = 10;
    error;
    records;
    currentPageToken = 0;
    nextPageToken = this.pageSize;
    @track totalRecords = 0;
    @track loader = false;
    @track pageNumber = 1;
    @track paginationVisibility = false;
    @track totalPages = 1;
    pageSizeOptions = [10, 25, 50, 100];
    @track recordStart = 0;
    @track recordEnd = 0;
    //end
    defaultSortDirection = 'asc';
    sortDirection = 'asc';
    sortedBy;
    @track hidecheckboxcolumn = true;
    @track changeFlg;
    @track canEdit;
    @track saveType;
    @track sortKey;
    // @track colmLeft = [
    //     {label:"OCSM询价编码",fieldName:"field1",hideDefaultActions: true},
    //     {label:"OCSM询价",fieldName:"field1",hideDefaultActions: true},
    //     {label:"科室分类",fieldName:"field1",hideDefaultActions: true},
    //     {label:"状态1",fieldName:"field1",hideDefaultActions: true},
    //     {label:"Oly询价阶段",fieldName:"field1",hideDefaultActions: true},
    //     {label:"预测OCSM签约日",fieldName:"field1",hideDefaultActions: true},
    //     {label:"是否上月预测询价",fieldName:"field1",hideDefaultActions: true},
    //     {label:"是否本月预测询价",fieldName:"field1",hideDefaultActions: true},
    //     {label:"是否次月预测询价",fieldName:"field1",hideDefaultActions: true},
    //     {label:"授权申请编码",fieldName:"field1",hideDefaultActions: true}
    // ];
    // @track colmRight = [
    //     {label:"询价名",fieldName:"field1",hideDefaultActions: true},
    //     {label:"经销商询价编码",fieldName:"field1",hideDefaultActions: true},
    //     {label:"经销商医院",fieldName:"field1",hideDefaultActions: true},
    //     {label:"科室分类",fieldName:"field1",hideDefaultActions: true},
    //     {label:"科室名称",fieldName:"field1",hideDefaultActions: true},
    //     {label:"市",fieldName:"field1",hideDefaultActions: true},
    //     {label:"产品区分1",fieldName:"field1",hideDefaultActions: true},
    //     {label:"产品区分2",fieldName:"field1",hideDefaultActions: true},
    //     {label:"产品区分3",fieldName:"field1",hideDefaultActions: true},
    //     {label:"客户人员",fieldName:"field1",hideDefaultActions: true},
    //     {label:"销售担当",fieldName:"field1",hideDefaultActions: true},
    //     {label:"医院采购预算(不含税,元)",fieldName:"field1",hideDefaultActions: true},
    //     {label:"订货金额(不含税,元)",fieldName:"field1",hideDefaultActions: true},
    //     {label:"预测与OCSM签约日",fieldName:"field1",hideDefaultActions: true},
    //     {label:"预测招标日",fieldName:"field1",hideDefaultActions: true},
    //     {label:"询价阶段",fieldName:"field1",hideDefaultActions: true},
    //     {label:"是否OCSM共享询价",fieldName:"field1",hideDefaultActions: true}
    // ];
    // @track dataLeft = [
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"}
    // ];
    // @track dataRight = [
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"},
    //     {field1:"test"}
    // ];
    @track colms = [
        {
            label: 'OCSM询价编码',
            fieldName: 'OCSM_Opportunity_No__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 140,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'OCSM_Opportunity_No__c' },
                showType: 'outputField'
            }
        },
        {
            label: 'OCSM询价',
            fieldName: 'Change_To_Opportunity_T__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 100,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Change_To_Opportunity_T__c' },
                showType: 'outputField'
            }
        },
        {
            label: '科室分类',
            fieldName: 'Strategic_department_Class_Name__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 105,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Strategic_department_Class_Name__c' },
                showType: 'outputField'
            }
        },
        {
            label: '状态1',
            fieldName: 'Oly_Inquiry_Status1__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 100,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Inquiry_Status1__c' },
                showType: 'outputField'
            }
        },
        {
            label: 'Oly询价阶段',
            fieldName: 'Oly_Inquiry_Stage__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Inquiry_Stage__c' },
                showType: 'outputField'
            }
        },
        {
            label: '预测OCSM签约日',
            fieldName: 'Oly_Forecasted_Date__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 150,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Forecasted_Date__c' },
                showType: 'outputField'
            }
        },
        {
            label: '是否上月预测询价',
            fieldName: 'Oly_Forecast_last_month__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 150,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Forecast_last_month__c' },
                showType: 'outputField'
            }
        },
        {
            label: '是否本月预测询价',
            fieldName: 'Oly_Forecast_this_month__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 150,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Forecast_this_month__c' },
                showType: 'outputField'
            }
        },
        {
            label: '是否次月预测询价',
            fieldName: 'Oly_NM_Forecast__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 150,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_NM_Forecast__c' },
                showType: 'outputField'
            }
        },
        {
            label: '授权申请编码',
            fieldName: 'Oly_Authorized_DB_No__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Oly_Authorized_DB_No__c' },
                showType: 'outputField'
            }
        },
        // -----------------------------------------------
        {
            label: '询价名',
            fieldName: 'NameLink',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            type: 'url',
            typeAttributes: { label: { fieldName: 'Name' }, target: '_blank' }
        },
        {
            label: '经销商询价编码',
            fieldName: 'Agency_Opportunity_No__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 130,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Agency_Opportunity_No__c' },
                showType: 'outputField'
            }
        },
        {
            label: '经销商医院',
            fieldName: 'Agency_Hospital__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Agency_Hospital__c' },
                showType: 'inputField'
            }
        },
        {
            label: '科室分类',
            fieldName: 'Department_Cateogy__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Department_Cateogy__c' },
                showType: 'inputField'
            }
        },
        {
            label: '科室名称',
            fieldName: 'Department_Name_Text__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Department_Cateogy__c' },
                showType: 'inputField'
            }
        },
        {
            label: '市',
            fieldName: 'Hospital_City_Master__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Hospital_City_Master__c' },
                showType: 'outputField'
            }
        },
        {
            label: '产品区分1',
            fieldName: 'Product_Category1_P__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Product_Category1_P__c' },
                showType: 'inputField'
            }
        },
        {
            label: '产品区分2',
            fieldName: 'Product_Category2_P__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Product_Category2_P__c' },
                showType: 'inputField'
            }
        },
        {
            label: '产品区分3',
            fieldName: 'Product_Category3_P__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Product_Category3_P__c' },
                showType: 'inputField'
            }
        },
        {
            label: '客户人员',
            fieldName: 'Agency_Contact__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Agency_Contact__c' },
                showType: 'inputField'
            }
        },
        {
            label: '销售担当',
            fieldName: 'Agency_PersonName__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Agency_PersonName__c' },
                showType: 'outputField'
            }
        },
        {
            label: '医院采购预算(不含税,元)',
            fieldName: 'Amount__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 200,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Amount__c' },
                showType: 'inputField'
            }
        },
        {
            label: '订货金额(不含税,元)',
            fieldName: 'OCMSale_Price__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 190,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'OCMSale_Price__c' },
                showType: 'inputField'
            }
        },
        {
            label: '预测与OCSM签约日',
            fieldName: 'Close_Forecasted_Date__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 190,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Close_Forecasted_Date__c' },
                showType: 'inputField'
            }
        },
        {
            label: '预测招标日',
            fieldName: 'Bid_Planned_Date__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'Bid_Planned_Date__c' },
                showType: 'inputField'
            }
        },
        {
            label: '询价阶段',
            fieldName: 'StageName__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 110,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'StageName__c' },
                showType: 'inputField'
            }
        },
        {
            label: '是否OCSM共享询价',
            fieldName: 'OCM_Change_To_Opportunity_Flg__c',
            hideDefaultActions: true,
            wrapText: true,
            initialWidth: 190,
            sortable: true,
            typeAttributes: {
                recordId: { fieldName: 'recordId' },
                inputValue: { fieldName: 'OCM_Change_To_Opportunity_Flg__c' },
                showType: 'inputField'
            }
        }
    ];
    @track datas = [];
    renderedCallback() {
        if (!this.stylesLoaded) {
            Promise.all([loadStyle(this, WrappedHeaderTable)])
                .then(() => {
                    console.log('Custom styles loaded');
                    this.stylesLoaded = true;
                })
                .catch((error) => {
                    console.error('Error loading custom styles');
                });
        }
    }
    //初始化
    connectedCallback(){}
    connectedCallback() {
        this.loader = true;
        this.init();
    }
    init() {
        this.showSpinner = true;
        init({
            pageSizeLWC: this.pageSize,
            pageTokenLWC: this.currentPageToken
        })
            .then((result) => {
                if (result.result == 'Success') {
                    console.log('result==>' + JSON.stringify(result));
                    //分页start
                    this.nextPageToken = result.paginatedAccounts.nextPageToken;
                    this.totalRecords = result.paginatedAccounts.totalRecords;
                    this.recordStart = result.paginatedAccounts.recordStart;
                    this.recordEnd = result.paginatedAccounts.recordEnd;
                    this.totalPages = Math.ceil(
                        result.paginatedAccounts.totalRecords / this.pageSize
                    );
                    console.log('this.totalPages = ' + this.totalPages);
                    this.paginationVisibility =
                        this.totalPages > 1 ? true : false;
                    console.log('this.sortDirection = ' + this.sortDirection);
                    this.loader = false;
                    //分页end
                    this.limits = result.limits;
                    this.limitOpts = result.limitCusOpts;
                    // this.numtext1 = result.numtext1;
                    // this.numtext2 = result.numtext2;
                    // this.numtext = result.numtext;
                    this.textOpts = result.textCusOpts;
                    this.equalOpts = result.equalCusOpts;
                    this.datas = result.oppRecords;
                    this.strColumus = result.strColumus;
                    this.strRtColumus = result.strRtColumus;
                    this.changeFlg = result.oppRecords.changeFlg;
                    for (var i in this.datas) {
                        this.datas[i]['recordId'] = this.datas[i].opp.Id;
                        this.datas[i]['OCSM_Opportunity_No__c'] =
                            this.datas[i].opp.OCSM_Opportunity_No__c;
                        this.datas[i]['Change_To_Opportunity_T__c'] =
                            this.datas[i].opp.Change_To_Opportunity_T__c;
                        this.datas[i]['Strategic_department_Class_Name__c'] =
                            this.datas[
                                i
                            ].opp.Strategic_department_Class_Name__c;
                        this.datas[i]['Oly_Inquiry_Status1__c'] =
                            this.datas[i].opp.Oly_Inquiry_Status1__c;
                        this.datas[i]['Oly_Inquiry_Stage__c'] =
                            this.datas[i].opp.Oly_Inquiry_Stage__c;
                        this.datas[i]['Oly_Forecasted_Date__c'] =
                            this.datas[i].opp.Oly_Forecasted_Date__c;
                        this.datas[i]['Oly_Forecast_last_month__c'] =
                            this.datas[i].opp.Oly_Forecast_last_month__c;
                        this.datas[i]['Oly_Forecast_this_month__c'] =
                            this.datas[i].opp.Oly_Forecast_this_month__c;
                        this.datas[i]['Oly_NM_Forecast__c'] =
                            this.datas[i].opp.Oly_NM_Forecast__c;
                        this.datas[i]['Oly_Authorized_DB_No__c'] =
                            this.datas[i].opp.Oly_Authorized_DB_No__c;
                        // -------
                        this.datas[i]['Name'] = this.datas[i].AgcOpp.Name;
                        this.datas[i]['Agency_Opportunity_No__c'] =
                            this.datas[i].AgcOpp.Agency_Opportunity_No__c;
                        this.datas[i]['Agency_Hospital__c'] =
                            this.datas[i].AgcOpp.Agency_Hospital__c;
                        this.datas[i]['Department_Cateogy__c'] =
                            this.datas[i].AgcOpp.Department_Cateogy__c;
                        this.datas[i]['Department_Name_Text__c'] =
                            this.datas[i].AgcOpp.Department_Name_Text__c;
                        this.datas[i]['Hospital_City_Master__c'] =
                            this.datas[i].AgcOpp.Hospital_City_Master__c;
                        this.datas[i]['Product_Category1_P__c'] =
                            this.datas[i].AgcOpp.Product_Category1_P__c;
                        this.datas[i]['Product_Category2_P__c'] =
                            this.datas[i].AgcOpp.Product_Category2_P__c;
                        this.datas[i]['Product_Category3_P__c'] =
                            this.datas[i].AgcOpp.Product_Category3_P__c;
                        this.datas[i]['Agency_Contact__c'] =
                            this.datas[i].AgcOpp.Agency_Contact__c;
                        this.datas[i]['Agency_PersonName__c'] =
                            this.datas[i].AgcOpp.Agency_PersonName__c;
                        this.datas[i]['Amount__c'] =
                            this.datas[i].AgcOpp.Amount__c;
                        this.datas[i]['OCMSale_Price__c'] =
                            this.datas[i].AgcOpp.OCMSale_Price__c;
                        this.datas[i]['Close_Forecasted_Date__c'] =
                            this.datas[i].AgcOpp.Close_Forecasted_Date__c;
                        this.datas[i]['Bid_Planned_Date__c'] =
                            this.datas[i].AgcOpp.Bid_Planned_Date__c;
                        this.datas[i]['StageName__c'] =
                            this.datas[i].AgcOpp.StageName__c;
                        this.datas[i]['OCM_Change_To_Opportunity_Flg__c'] =
                            this.datas[
                                i
                            ].AgcOpp.OCM_Change_To_Opportunity_Flg__c;
                        this.datas[i]['NameLink'] =
                            '/s/agency-opportunity/' + this.datas[i].opp.Id;
                    }
                    this.showMyToast(result.Msg, '', 'success');
                    this.showSpinner = false;
                } else {
                    this.showSpinner = false;
                    this.showMyToast('初始化页面失败', result.Msg, 'error');
                }
            })
            .catch((error) => {
                this.showSpinner = false;
                console.log('Error:' + JSON.stringify(error));
                this.showMyToast(
                    '初始化页面失败',
                    JSON.stringify(error),
                    'error'
                );
            });
    }
    accSearchChange(event){
    // renderedCallback() {
    // if (!this.stylesLoaded) {
    //     Promise.all([loadStyle(this, WrappedHeaderTable),loadScript(this, jQueryMin)])
    //         .then(() => {
    //             console.log("Custom styles loaded");
    //             this.stylesLoaded = true;
    //         })
    //         .catch((error) => {
    //             console.error("Error loading custom styles");
    //         });
    //     // loadScript(this, jQueryMin+'/lexJQuery183.js')
    //     // .then(() => {
    //     //     console.log('JQuery loaded.');
    //     // })
    //     // .catch(error=>{
    //     //     console.log('Failed to load the JQuery : ' +error);
    //     // });
    //     // Promise.all([loadScript(this, jQueryMin)])
    //     //     .then(() => {
    //     //         console.log("Custom styles loaded");
    //     //         this.stylesLoaded = true;
    //     //         j$('.tableRight').scroll(function() {
    //     //             j$('.tableLeft').scrollTop(j$(this).scrollTop());
    //     //         });
    //     //     })
    //     //     .catch((error) => {
    //     //         console.log(JSON.stringify(error));
    //     //         console.error("Error loading custom styles");
    //     //     });
    // }
    // }
    agencyOppInputChange(event) {
        this.changeFlg = 1;
        var inputValue = event.detail.data.inputValue;
        var recordId = event.detail.data.recordId;
        var fieldName = event.detail.data.fieldName;
        console.log(
            'valueChange:' + recordId + '---' + fieldName + '---' + inputValue
        );
        for (var i in this.datas) {
            if (this.datas[i]['recordId'] == recordId) {
                this.datas[i]['fieldName'] = inputValue;
                this.datas[i]['changeFlg'] = this.changeFlg;
            }
        }
        console.log(' this.datas==>' + JSON.stringify(this.datas));
    }
    accSearchChange(event) {
        this.accSearch = event.detail.value;
    }
    aooSearchChange(event){
    aooSearchChange(event) {
        this.aooSearch = event.detail.value;
    }
    limitsChange(event){
    limitsChange(event) {
        this.limits = event.detail.value;
    }
    numtext1Change(event){
    numtext1Change(event) {
        this.numtext1 = event.detail.value;
    }
    numtext2Change(event){
    numtext2Change(event) {
        this.numtext2 = event.detail.value;
    }
    numtextChange(event){
    numtextChange(event) {
        this.numtext = event.detail.value;
    }
    expandAll(){
    expandAll() {}
    search() {
        console.log('搜索');
        this.showSpinner = true;
        if (this.changeFlg == 1) {
            if (
                window.confirm(
                    '画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并检索\n点击 [取消] 只检索,放弃保存'
                )
            ) {
                this.save();
                this.searchOpp();
                this.showSpinner = false;
            } else {
                console.log('搜索1');
                this.searchOpp();
                this.showSpinner = false;
            }
        } else {
            this.searchOpp();
            this.showSpinner = false;
        }
    }
    searchOpp() {
        console.log('this.accSearch==>' + this.accSearch);
        console.log('this.aooSearch==>' + this.aooSearch);
        console.log('this.numtext==>' + this.numtext);
        console.log('this.numtext1==>' + this.numtext1);
        console.log('this.numtext2==>' + this.numtext2);
        searchOppInner({
            strColumus: this.strColumus,
            strRtColumus: this.strRtColumus,
            accSearch: this.accSearch,
            aooSearch: this.aooSearch,
            numtext: this.numtext,
            numtext1: this.numtext1,
            numtext2: this.numtext2
        })
            .then((result) => {
                if (result.result == 'Success') {
                    //分页Start
                    // this.nextPageToken = result.entity.paginatedAccounts.nextPageToken;
                    // this.totalRecords = result.entity.paginatedAccounts.totalRecords;
                    // this.recordStart = result.entity.paginatedAccounts.recordStart;
                    // this.recordEnd = result.entity.paginatedAccounts.recordEnd;
                    // this.totalPages = Math.ceil(result.entity.paginatedAccounts.totalRecords / this.pageSize);
                    // console.log('this.totalPages = ' + this.totalPages);
                    // this.paginationVisibility = this.totalPages > 1 ? true : false;
                    //分页End
                    this.datas = result.oppRecords;
                    //change flag
                    // this.changeFlg= result.oppRecords.changeFlg;
                    console.log('result==>' + JSON.stringify(result));
                    for (var i in this.datas) {
                        this.datas[i]['recordId'] = this.datas[i].opp.Id;
                        this.datas[i]['OCSM_Opportunity_No__c'] =
                            this.datas[i].opp.OCSM_Opportunity_No__c;
                        this.datas[i]['Change_To_Opportunity_T__c'] =
                            this.datas[i].opp.Change_To_Opportunity_T__c;
                        this.datas[i]['Strategic_department_Class_Name__c'] =
                            this.datas[
                                i
                            ].opp.Strategic_department_Class_Name__c;
                        this.datas[i]['Oly_Inquiry_Status1__c'] =
                            this.datas[i].opp.Oly_Inquiry_Status1__c;
                        this.datas[i]['Oly_Inquiry_Stage__c'] =
                            this.datas[i].opp.Oly_Inquiry_Stage__c;
                        this.datas[i]['Oly_Forecasted_Date__c'] =
                            this.datas[i].opp.Oly_Forecasted_Date__c;
                        this.datas[i]['Oly_Forecast_last_month__c'] =
                            this.datas[i].opp.Oly_Forecast_last_month__c;
                        this.datas[i]['Oly_Forecast_this_month__c'] =
                            this.datas[i].opp.Oly_Forecast_this_month__c;
                        this.datas[i]['Oly_NM_Forecast__c'] =
                            this.datas[i].opp.Oly_NM_Forecast__c;
                        this.datas[i]['Oly_Authorized_DB_No__c'] =
                            this.datas[i].opp.Oly_Authorized_DB_No__c;
                        // -------
                        this.datas[i]['Name'] = this.datas[i].AgcOpp.Name;
                        this.datas[i]['Agency_Opportunity_No__c'] =
                            this.datas[i].AgcOpp.Agency_Opportunity_No__c;
                        this.datas[i]['Agency_Hospital__c'] =
                            this.datas[i].AgcOpp.Agency_Hospital__c;
                        this.datas[i]['Department_Cateogy__c'] =
                            this.datas[i].AgcOpp.Department_Cateogy__c;
                        this.datas[i]['Department_Name_Text__c'] =
                            this.datas[i].AgcOpp.Department_Name_Text__c;
                        this.datas[i]['Hospital_City_Master__c'] =
                            this.datas[i].AgcOpp.Hospital_City_Master__c;
                        this.datas[i]['Product_Category1_P__c'] =
                            this.datas[i].AgcOpp.Product_Category1_P__c;
                        this.datas[i]['Product_Category2_P__c'] =
                            this.datas[i].AgcOpp.Product_Category2_P__c;
                        this.datas[i]['Product_Category3_P__c'] =
                            this.datas[i].AgcOpp.Product_Category3_P__c;
                        this.datas[i]['Agency_Contact__c'] =
                            this.datas[i].AgcOpp.Agency_Contact__c;
                        this.datas[i]['Agency_PersonName__c'] =
                            this.datas[i].AgcOpp.Agency_PersonName__c;
                        this.datas[i]['Amount__c'] =
                            this.datas[i].AgcOpp.Amount__c;
                        this.datas[i]['OCMSale_Price__c'] =
                            this.datas[i].AgcOpp.OCMSale_Price__c;
                        this.datas[i]['Close_Forecasted_Date__c'] =
                            this.datas[i].AgcOpp.Close_Forecasted_Date__c;
                        this.datas[i]['Bid_Planned_Date__c'] =
                            this.datas[i].AgcOpp.Bid_Planned_Date__c;
                        this.datas[i]['StageName__c'] =
                            this.datas[i].AgcOpp.StageName__c;
                        this.datas[i]['OCM_Change_To_Opportunity_Flg__c'] =
                            this.datas[
                                i
                            ].AgcOpp.OCM_Change_To_Opportunity_Flg__c;
                    }
                    this.showSpinner = false;
                    this.showMyToast('搜索成功', result.Msg, 'success');
                } else {
                    this.showSpinner = false;
                    this.showMyToast('搜索失败', result.Msg, 'error');
                }
            })
            .catch((error) => {
                this.showSpinner = false;
                console.log('error = ' + JSON.stringify(error));
            });
    }
    save() {
        this.showSpinner = true;
        save({
            oppRecordsLWC: this.datas,
            sortKeyLWC: this.sortKey
        })
            .then((result) => {
                if (result.result == 'Success') {
                    this.datas = result.oppRecords;
                    console.log('result==>' + JSON.stringify(result));
                    this.showSpinner = false;
                    this.showMyToast('保存成功', '', 'success');
                } else {
                    this.showSpinner = false;
                    this.showMyToast('保存失败', result.Msg, 'error');
                }
            })
            .catch((error) => {
                this.showSpinner = false;
                console.log('error = ' + JSON.stringify(error));
            });
    }
    showMyToast(title, message, variant) {
        console.log('show custom message');
        var iconName = '';
        var content = '';
        if(variant == 'success'){
           iconName = 'utility:check';
        }else{
           iconName = 'utility:error';
        if (variant == 'success') {
            iconName = 'utility:check';
        } else {
            iconName = 'utility:error';
        }
        if(message != ''){
           content = '<h2><strong>'+title+'<strong/></h2><h5>'+message+'</h5>';
        }else{
           content = '<h2><strong>'+title+'<strong/></h2>';
        if (message != '') {
            content =
                '<h2><strong>' +
                title +
                '<strong/></h2><h5>' +
                message +
                '</h5>';
        } else {
            content = '<h2><strong>' + title + '<strong/></h2>';
        }
        this.template.querySelector('c-common-toast').
        showToast(variant,content,iconName,10000);
        this.template
            .querySelector('c-common-toast')
            .showToast(variant, content, iconName, 10000);
    }
    //排序
    sortByMethod(field, reverse, primer) {
        const key = primer
            ? function (x) {
                  return primer(x[field]);
              }
            : function (x) {
                  return x[field];
              };
        return function (a, b) {
            a = key(a);
            b = key(b);
            return reverse * ((a > b) - (b > a));
        };
    }
    onHandleSort(event) {
        console.log('Sort');
        console.log('this.changeFlg' + this.changeFlg);
        if (this.changeFlg == 1) {
            if (
                window.confirm(
                    '画面上的数据有变化,要保存所做的变更吗?\n点击 [确定] 保存并排序\n点击 [取消] 只排序,放弃保存'
                )
            ) {
                this.sortBy = event.detail.fieldName;
                this.sortDirection = event.detail.sortDirection;
                this.currentPageToken = 0;
                console.log('this.sortBy = ' + this.sortBy);
                console.log('this.sortDirection = ' + this.sortDirection);
                const { fieldName: sortedBy, sortDirection } = event.detail;
                const cloneData = [...this.datas];
                cloneData.sort(
                    this.sortByMethod(
                        sortedBy,
                        sortDirection === 'asc' ? 1 : -1
                    )
                );
                this.datas = cloneData;
                this.sortDirection = sortDirection;
                this.sortedBy = sortedBy;
                this.sortKey = this.sortBy;
                this.save();
            } else {
                this.sortBy = event.detail.fieldName;
                console.log('this.sortBy==>' + this.sortBy);
                this.sortDirection = event.detail.sortDirection;
                this.currentPageToken = 0;
                console.log('this.sortBy = ' + this.sortBy);
                console.log('this.sortDirection = ' + this.sortDirection);
                const { fieldName: sortedBy, sortDirection } = event.detail;
                const cloneData = [...this.datas];
                cloneData.sort(
                    this.sortByMethod(
                        sortedBy,
                        sortDirection === 'asc' ? 1 : -1
                    )
                );
                this.datas = cloneData;
                this.sortDirection = sortDirection;
                this.sortedBy = sortedBy;
            }
        } else {
            this.sortBy = event.detail.fieldName;
            console.log('this.sortBy==>' + this.sortBy);
            this.sortDirection = event.detail.sortDirection;
            this.currentPageToken = 0;
            console.log('this.sortBy = ' + this.sortBy);
            console.log('this.sortDirection = ' + this.sortDirection);
            const { fieldName: sortedBy, sortDirection } = event.detail;
            const cloneData = [...this.datas];
            cloneData.sort(
                this.sortByMethod(sortedBy, sortDirection === 'asc' ? 1 : -1)
            );
            this.datas = cloneData;
            this.sortDirection = sortDirection;
            this.sortedBy = sortedBy;
        }
    }
    //分页
    handlePaginatorChange(event) {
        this.recordsToDisplay = event.detail.recordsToDisplay;
        this.preSelected = event.detail.preSelected;
        if (this.recordsToDisplay && this.recordsToDisplay > 0) {
            this.rowNumberOffset = this.recordsToDisplay[0].rowNumber - 1;
        } else {
            this.rowNumberOffset = 0;
        }
    }
    handlePrevious() {
        this.currentPageToken =
            Number(this.currentPageToken) - Number(this.pageSize);
        this.init();
    }
    handleNext() {
        this.currentPageToken =
            Number(this.currentPageToken) + Number(this.pageSize);
        this.init();
    }
    handleFirst() {
        this.currentPageToken = 0;
        this.init();
    }
    handleLast() {
        this.currentPageToken =
            this.totalPages > 1 ? (this.totalPages - 1) * this.pageSize : 0;
        this.init();
    }
    handlePageschange(event) {
        console.log(event.detail);
        this.pageSize = event.detail;
        this.currentPageToken = 0;
        this.init();
    }
    get previousButtonDisabled() {
        return this.currentPageToken === 0;
    }
    get nextButtonDisabled() {
        return this.nextPageToken === undefined;
    }
}