From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp

---
 force-app/main/default/lwc/lexTopPage/lexTopPage.js |  667 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 667 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/lwc/lexTopPage/lexTopPage.js b/force-app/main/default/lwc/lexTopPage/lexTopPage.js
new file mode 100644
index 0000000..cb6582a
--- /dev/null
+++ b/force-app/main/default/lwc/lexTopPage/lexTopPage.js
@@ -0,0 +1,667 @@
+import { LightningElement, wire, api, track } from 'lwc';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { NavigationMixin } from 'lightning/navigation';
+import initPage from '@salesforce/apex/LexTopPageController.initPage';
+import initTotalNum from '@salesforce/apex/LexConsumableGoodsInfo.initTotalNum';
+import initArrDet from '@salesforce/apex/LexConsumableGoodsInfo.initArrDet';
+import initArrDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initArrDetAll';
+import initDeliveryDet from '@salesforce/apex/LexConsumableGoodsInfo.initDeliveryDet';
+import initDeliveryDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initDeliveryDetAll';
+import initNotArrDet from '@salesforce/apex/LexConsumableGoodsInfo.initNotArrDet';
+import initNotArrDetAll from '@salesforce/apex/LexConsumableGoodsInfo.initNotArrDetAll';
+import initMoreThan7 from '@salesforce/apex/LexConsumableGoodsInfo.initMoreThan7';
+import initMoreThan7All from '@salesforce/apex/LexConsumableGoodsInfo.initMoreThan7All';
+//table css 
+import { loadStyle } from "lightning/platformResourceLoader";
+import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
+
+export default class LexTopPage extends NavigationMixin(LightningElement) {
+    @track title = [];
+    @track raesList = [];
+    @track column = [];
+    @track overlimitdateorderdetails = [];
+    @track productLimitRecords = [];
+    @track accountInfo;
+    @track accountId;
+    @track userPro_Type;
+    @track pageRecords = [];
+    @track csvData = [];
+    @track product_Limit;
+    @track over_view = false;
+    @track overlimit = false;
+    @track hasHos = false;
+    @track activeSections = ['A', 'B', 'C'];
+    @track isRender = false;
+    @track consumableorderdetailsRecordsview;
+    @track showSpinner = true;
+    @track showPage = false;
+    //
+    @track showPop = false;
+    @track popTitle;
+    @track totalNum;
+    @track orderNumberArrived;
+    @track deliveryDetailCount;
+    @track orderNumberNotarrive;
+    @track moreThanSevenDays;
+    stylesLoaded = false;
+
+    @track showTable = false;
+    @track hidecheckboxcolumn = true;
+    //鎺掑簭
+    defaultSortDirection = "asc";
+    sortDirection = "asc";
+    sortedBy;
+
+    //鍒嗛〉start
+    @track sortBy = "";
+    @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
+
+    //鏄惁涓�鐩存樉绀烘彁绀�
+    @track isNoteStay = true;
+
+    //鏈叏閮ㄥ彂璐ц鍗曟槑缁哻ol
+    @track colms = [
+        {
+            label: '娑堣�楀搧璁㈠崟鍚嶇О',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "Name" },
+                type: 'Title',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true,initialWidth: 200
+        },
+        { label: 'SAP鍚堝悓鍙�', fieldName: 'ContractNo__c', hideDefaultActions: true},
+        {
+            label: '璁㈠崟鎬绘暟',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "Total_num__c" },
+                type: 'TotalNum',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true, initialWidth: 100
+        },
+        {
+            label: '宸插埌璐ф暟閲�',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "OrderNumber_arrived__c" },
+                type: 'ArrDet',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true, initialWidth: 110
+        },
+        {
+            label: '寰呯郴缁熸搷浣滃叆搴撴暟閲�',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "Delivery_detail_count__c" },
+                type: 'DeliveryDet',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true, initialWidth: 180
+        },
+        {
+            label: '杩樻病鍙戣揣鏁伴噺',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "OrderNumber_notarrive__c" },
+                type: 'NotArrDet',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true, initialWidth: 120
+        },
+        {
+            label: '鍙戣揣涓冨ぉ杩樻湭鍒拌揣鏁�',
+            type: "customOutputGood",
+            typeAttributes: {
+                outputValue: { fieldName: "More_than_seven_days__c" },
+                type: 'MoreThan7',
+                recordId: { fieldName: "Id" }
+            },
+            hideDefaultActions: true, initialWidth: 180
+        },
+        { label: '鏈�鏂板彂璐ф棩鏈�', fieldName: 'Shipment_date__c', hideDefaultActions: true , initialWidth: 140},
+        { label: '棣栨鍙戣揣鏃ユ湡', fieldName: 'First_Delivery__c', hideDefaultActions: true , initialWidth: 140}
+    ];
+
+    @track colms2 = [
+        { label: '浜у搧鍨嬪彿', fieldName: 'prodModel', hideDefaultActions: true },
+        { label: '鏁伴噺', fieldName: 'recordCount', hideDefaultActions: true ,initialWidth: 100}
+    ];
+
+    //浣跨敤鏈熼檺灏忎簬涓�骞寸殑浜у搧col
+    @track colm3 = [
+        { label: '浜у搧鍨嬪彿', fieldName: 'prodName', hideDefaultActions: true },
+        { label: '鏁伴噺', fieldName: 'countid', hideDefaultActions: true ,cellAttributes: { alignment: "left" }},
+        { label: '鍗曚綅', fieldName: 'BoxPiece', hideDefaultActions: true ,cellAttributes: { alignment: "left" }}
+    ];
+
+    //缁忛攢鍟嗗簱瀛樹笂涓嬮檺col
+    @track colm4 = [
+        { label: '浜у搧鍨嬪彿', fieldName: 'prodName', hideDefaultActions: true },
+        { label: '搴撳瓨涓嬮檺', fieldName: 'limitLow', hideDefaultActions: true ,cellAttributes: { alignment: "left" }},
+        { label: '搴撳瓨涓婇檺', fieldName: 'limitUp', hideDefaultActions: true ,cellAttributes: { alignment: "left" }}
+    ];
+    @track columns = [
+        {
+            label: "娑堣�楀搧鍚嶇О",
+            fieldName: "Name__c",
+            type: "Name",
+            sortable: true,
+            hideDefaultActions: true,
+            wrapText: true,
+            cellAttributes: { alignment: "left" }
+        },
+        {
+            label: "瑙勬牸",
+            fieldName: "packing_list",
+            cellAttributes: { alignment: "right" },
+            initialWidth: 50,
+            wrapText: true,
+            hideDefaultActions: true,
+        },
+        {
+            label: "绗笁鍒嗙被",
+            fieldName: "Category3__c",
+            initialWidth: 85,
+            cellAttributes: { alignment: "left" },
+            hideDefaultActions: true,
+            wrapText: true,
+        },
+        {
+            label: "绗洓鍒嗙被",
+            fieldName: "Category4__c",
+            cellAttributes: { alignment: "left" },
+            initialWidth: 85,
+            hideDefaultActions: true,
+            wrapText: true,
+
+        },
+        {
+            label: "绗簲鍒嗙被",
+            fieldName: "Category5__c",
+            cellAttributes: { alignment: "left" },
+            initialWidth: 85,
+            hideDefaultActions: true,
+            wrapText: true,
+            sortable: true,
+
+        },
+        {
+            label: "CFDA鐘舵��",
+            fieldName: "SFDA_Status__c",
+            cellAttributes: { alignment: "left" },
+            initialWidth: 80,
+            hideDefaultActions: true,
+        },
+        {
+            label: "娉ㄥ唽璇佺紪鐮佸彿",
+            fieldName: "approbation_No",
+            cellAttributes: { alignment: "left" },
+            wrapText: true,
+            initialWidth: 155,
+            hideDefaultActions: true,
+        },
+        {
+            label: "娉ㄥ唽璇佹晥鏈�",
+            fieldName: "expiration_Date",
+            cellAttributes: { alignment: "left" },
+            wrapText: true,
+            hideDefaultActions: true,
+            initialWidth: 100
+        },
+        {
+            label: "浜у搧鏁伴噺涓嬮檺",
+            fieldName: "lowerlimit",
+            cellAttributes: { alignment: "right" },
+            wrapText: true,
+            hideDefaultActions: true,
+            initialWidth: 100
+        },
+        {
+            label: "浣跨敤鏈熼檺",
+            fieldName: "guaranteeperiod",
+            cellAttributes: { alignment: "left" },
+            hideDefaultActions: true,
+            initialWidth: 95
+        },
+
+        {
+            label: '鏈夋晥鏈熷唴搴撳瓨',
+            type: "customInventoryColor",
+            cellAttributes: { alignment: "right" },
+            typeAttributes: {
+                value: { fieldName: "limitCount" },
+                upperlimit: { fieldName: "upperlimit" },
+                lowerlimit: { fieldName: "lowerlimit" },
+                boxPrice: { fieldName: "BoxPiece" },
+            },
+            hideDefaultActions: true,
+
+            initialWidth: 95
+        },
+        {
+            label: "杩囨湡搴撳瓨",
+            fieldName: "overlimitCount",
+            hideDefaultActions: true,
+            cellAttributes: { alignment: "right" },
+            initialWidth: 75
+        },
+        {
+            label: "鍗曚綅",
+            fieldName: "BoxPiece",
+            cellAttributes: { alignment: "left" },
+            initialWidth: 50,
+            wrapText: true,
+            hideDefaultActions: true,
+        },
+
+    ];
+
+    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() {
+        this.loader = true;
+        this.init();
+    }
+    init() {
+        this.showSpinner = true;
+        initPage({
+            pageSizeLWC: this.pageSize,
+            pageTokenLWC: this.currentPageToken,
+        })
+            .then(result => {
+                this.isNoteStay = result.isNoteStay;
+                console.log('isNoteStay:'+result.isNoteStay);
+                if (result.result == 'Success') {
+                    //鍒嗛〉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.title = result.title;
+                    this.totalNum = result.totalNum;
+                    this.orderNumberArrived = result.orderNumberArrived;
+                    this.deliveryDetailCount = result.deliveryDetailCount;
+                    this.orderNumberNotarrive = result.orderNumberNotarrive;
+                    this.moreThanSevenDays = result.moreThanSevenDays;
+                    this.raesList = result.raesList;
+                    this.raesList.push({ Id: '1', Name: '寰呮搷浣滃叆搴撹鍗曟眹鎬�', Total_num__c: this.totalNum, OrderNumber_arrived__c: this.orderNumberArrived, Delivery_detail_count__c: this.deliveryDetailCount, OrderNumber_notarrive__c: this.orderNumberNotarrive, More_than_seven_days__c: this.moreThanSevenDays });
+                    this.column = result.column;
+                    this.accountInfo = result.accountInfo;
+                    this.accountId = result.accountInfo.Id;
+                    this.pageRecords = result.pageRecords;
+                    this.overlimitdateorderdetails = result.overlimitdateorderdetails;
+                    this.over_view = result.over_view;
+                    this.overlimit = result.overlimit;
+                    this.hasHos = result.hasHos;
+                    this.product_Limit = result.product_Limit;
+                    console.log('result==>' + JSON.stringify(result));
+                    for (var i in this.pageRecords) {
+                        this.pageRecords[i]["Name__c"] = this.pageRecords[i].Prod.Name__c;
+                        this.pageRecords[i]["Category3__c"] = this.pageRecords[i].Prod.Category3__c;
+                        this.pageRecords[i]["Category4__c"] = this.pageRecords[i].Prod.Category3__c;
+                        this.pageRecords[i]["Category5__c"] = this.pageRecords[i].Prod.Category3__c;
+                        this.pageRecords[i]["SFDA_Status__c"] = this.pageRecords[i].Prod.SFDA_Status__c;
+                    }
+                    //hasHos = true 鍖婚櫌鐗逛环
+                    if (this.hasHos) {
+                        let object1 = {
+                            label: "鍖婚櫌鐗逛环",
+                            fieldName: "hospitalSpecialOffer",
+                            hideDefaultActions: true,
+                            type: 'boolean',
+                            cellAttributes: { alignment: "left" },
+                            initialWidth: 75
+
+                        };
+                        this.columns.push(object1);
+                        console.log(' this.columns' + this.columns);
+                        for (var j in this.pageRecords) {
+                            this.pageRecords[j]["Name__c"] = this.pageRecords[j].Prod.Name__c;
+                            this.pageRecords[j]["Category3__c"] = this.pageRecords[j].Prod.Category3__c;
+                            this.pageRecords[j]["Category4__c"] = this.pageRecords[j].Prod.Category3__c;
+                            this.pageRecords[j]["Category5__c"] = this.pageRecords[j].Prod.Category3__c;
+                            this.pageRecords[j]["SFDA_Status__c"] = this.pageRecords[j].Prod.SFDA_Status__c;
+                            this.pageRecords[j]["hospitalSpecialOffer__c"] = this.pageRecords[j].hospitalSpecialOffer;
+                        }
+                    }
+                    this.showTable = true;
+                    if (this.product_Limit != null && this.product_Limit != '') {
+                        var records = this.product_Limit.split(",");
+                        for (var i in records) {
+                            var parms = records[i].split("|");
+                            var record = new Object();
+                            record["prodName"] = parms[0];
+                            record["limitLow"] = parms[1];
+                            record["limitUp"] = parms[2];
+                            this.productLimitRecords.push(record);
+                        }
+                    }
+                    // this.productLimitRecords = records;
+                    console.log("productLimitRecords:" + JSON.stringify(this.productLimitRecords));
+                    console.log("product_Limit:" + this.product_Limit);
+                    this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview;
+                    //add by WangXueqin 2023/05/05
+                    this.userPro_Type = result.userPro_Type;
+                    console.log('this.accountId:' + this.accountId);
+                    console.log('this.accountInfo:' + JSON.stringify(this.accountInfo));
+                    this.showSpinner = false;
+                    this.showPage = true;
+                    // this.showMyToast('鍒濆鍖栭〉闈㈡垚鍔�', '', 'success');
+                } else {
+                    this.showPage = true;
+                    this.showSpinner = false;
+                    console.log("Error:" + result.errorMsg);
+                    this.showMyToast('鍒濆鍖栭〉闈㈠け璐�', result.errorMsg, 'error');
+                }
+            })
+            .catch(error => {
+                this.showSpinner = false;
+                console.log("Error:" + error);
+                this.showMyToast('鍒濆鍖栭〉闈㈠け璐�', JSON.stringify(error), 'error');
+            })
+    }
+
+    //鐐瑰嚮閾炬帴
+    clickLick(event) {
+        var outputValue = event.detail.data.value;
+        var outputType = event.detail.data.type;
+        var recordId = event.detail.data.recordId;
+        console.log("click:" + outputValue + "---" + outputType + "---" + recordId);
+        if (outputType == 'Title') {
+            const config = {
+                type: 'standard__webPage',
+                attributes: {
+                    url: '/lexarrivegoods?ESetId=' + recordId
+                }
+            };
+            this[NavigationMixin.Navigate](config);
+        } else if (outputType == 'TotalNum') {
+            this.popTitle = '鎵�鏈変骇鍝佷竴瑙�';
+            initTotalNum({ ordId: recordId, type: '' })
+                .then(result => {
+                    if (result.result == 'Success') {
+                        this.recordList = result.recordList;
+                        console.log('data:' + JSON.stringify(this.recordList));
+                        this.showPop = true;
+                    } else {
+                        this.showMyToast('鍔犺浇鎵�鏈変骇鍝佷竴瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                    }
+                })
+        } else if (outputType == 'ArrDet') {
+            if (recordId == '1') {
+                this.popTitle = '鎵�鏈夊凡鍒拌揣浜у搧涓�瑙�';
+                initArrDetAll({ type: '' })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鎵�鏈夊凡鍒拌揣浜у搧涓�瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            } else {
+                this.popTitle = '宸插埌璐т骇鍝佷竴瑙�';
+                initArrDet({ orderId: recordId })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇宸插埌璐т骇鍝佷竴瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            }
+        } else if (outputType == 'DeliveryDet') {
+            if (recordId == '1') {
+                this.popTitle = '鎵�鏈夊凡鍙戣揣杩樻病鍒拌揣浜у搧涓�瑙�';
+                initDeliveryDetAll({ type: '' })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鎵�鏈夊凡鍙戣揣杩樻病鍒拌揣浜у搧涓�瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            } else {
+                this.popTitle = '鏈埌璐т骇鍝佷竴瑙�';
+                initDeliveryDet({ orderId: recordId })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鏈埌璐т骇鍝佷竴瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            }
+        } else if (outputType == 'NotArrDet') {
+            if (recordId == '1') {
+                this.popTitle = '鎵�鏈夎繕娌″彂璐т骇鍝佷竴瑙�';
+                initNotArrDetAll({ type: '' })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鎵�鏈夎繕娌″彂璐т骇鍝佷竴瑙堥〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            } else {
+                this.popTitle = '杩樻病鍙戣揣鏁伴噺';
+                initNotArrDet({ orderId: recordId })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇杩樻病鍙戣揣鏁伴噺椤甸潰澶辫触', result.errorMsg, 'error');
+                        }
+                    })
+            }
+
+        } else if (outputType == 'MoreThan7') {
+            if (recordId == '1') {
+                this.popTitle = '鎵�鏈夊彂璐т竷澶╄繕鏈埌璐ф暟';
+                initMoreThan7All({ type: '' })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鎵�鏈夊彂璐т竷澶╄繕鏈埌璐ф暟椤甸潰澶辫触', result.errorMsg, 'error');
+                        }
+                    })
+            } else {
+                this.popTitle = '鍙戣揣涓冨ぉ杩樻湭鍒拌揣鏁�';
+                initMoreThan7({ orderId: recordId })
+                    .then(result => {
+                        if (result.result == 'Success') {
+                            this.recordList = result.recordList;
+                            console.log('data:' + JSON.stringify(this.recordList));
+                            this.showPop = true;
+                        } else {
+                            this.showMyToast('鍔犺浇鍙戣揣涓冨ぉ杩樻湭鍒拌揣鏁伴〉闈㈠け璐�', result.errorMsg, 'error');
+                        }
+                    })
+            }
+        }
+    }
+
+    //鍏抽棴寮圭獥
+    closePop() {
+        this.showPop = false;
+    }
+
+    editProductLimit(event) {
+        //add by Wang Xueqin 2023/05/05
+        let url = "/lexproductlimitedit?accountid=" + this.accountId + "&userPro_Type=" + this.userPro_Type;
+        const config = {
+            type: 'standard__webPage',
+            attributes: {
+                url: url
+            }
+        };
+        this[NavigationMixin.Navigate](config);
+    }
+
+    //鏂板缓娑堣�楀搧璁㈠崟
+    newOrder() {
+        this[NavigationMixin.Navigate]({
+            type: 'standard__objectPage',
+            attributes: {
+                objectApiName: 'Consumable_order__c',
+                actionName: 'new'
+            },
+            state: {
+                useRecordTypeCheck: 1
+            }
+        });
+    }
+
+    showMyToast(title, message, variant) {
+        console.log('show custom message');
+        var iconName = '';
+        var content = '';
+        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>';
+        }
+        this.template.querySelector('c-common-toast').
+        showToast(variant,content,iconName,10000);
+        // var mode;
+        // if(this.isNoteStay){
+        //     mode ='sticky';
+        // }else{
+        //     mode = 'dismissable';
+        // }
+        // const evt = new ShowToastEvent({
+        //     title: title,
+        //     message: message,
+        //     variant: variant,
+        //     mode: mode
+        // });
+        // this.dispatchEvent(evt);
+     }
+    //鎺掑簭
+
+    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");
+        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.pageRecords];
+        cloneData.sort(this.sortByMethod(sortedBy, sortDirection === 'asc' ? 1 : -1));
+        this.pageRecords = 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;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1