buli
2023-05-30 41ad0c0840a6135b7acf2280f0eebdc29bf6479b
force-app/main/default/lwc/lexDealerInquiryModifyState/lexDealerInquiryModifyState.js
@@ -1,45 +1,633 @@
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));
        });
    }
@@ -47,17 +635,123 @@
        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);
            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;
    }
}