liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import { api, track } from 'lwc';
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import { LightningElement } from 'lwc';
import searchReportByName from '@salesforce/apex/SearchReportNameController.searchReportByName';
 
// 非标准产品显示表头
const columns = [
    { 
        label: '报表名称', 
        fieldName: 'reportUrl' ,
        sortable: true,
        type: 'url',
        typeAttributes: {label:{ fieldName: 'name'}, target: '_blank'}
    },
    { 
        label: '描述', 
        fieldName: 'description' ,
        sortable: true,
    },
    { 
        label: '文件夹', 
        fieldName: 'folderUrl' ,
        sortable: true,
        type: 'url',
        typeAttributes: {label:{ fieldName: 'folderName'}, target: '_blank'}
    },
    { 
        label: '创建人', 
        fieldName: 'createdbyUrl' ,
        sortable: true,
        type: 'url',
        typeAttributes: {label:{ fieldName: 'createdByName'}, target: '_blank'}
    },
    { 
        label: '创建日期', 
        fieldName: 'createdDate', 
        sortable: true,type: 'date',
        typeAttributes: { year:'numeric', month:'numeric', day:'numeric', hour:'2-digit', minute:'2-digit'}
    },
    { label: '已订阅', fieldName: '', sortable: true}
];
 
export default class SearchReportNameLWC extends LightningElement {
    @track defaultSortDirection = 'asc';
    @track sortDirection = 'asc';
    @track sortedBy;
    @track data;
    reportName = '';
    @track columns;
 
    connectedCallback() {
        this.columns = columns;
        searchReportByName({
            reportName : this.reportName
        })
        .then(result => {
            console.log('result===>' + result);
            if (result.status == 'Success') {
                if (result.entity) {
                    this.data = JSON.parse(result.entity);
                }
            } else {
                this.showToast('error', this.msg);
            }
        })
        .catch(error => {
            console.log('error===>' + error);
        });
    }
 
    /**
     * @description 排序
     */
    onHandleSort(event) {
        const { fieldName: sortedBy, sortDirection } = event.detail;
        const cloneData = [...this.products];
 
        cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1));
        this.products = cloneData;
        this.sortDirection = sortDirection;
        this.sortedBy = sortedBy;
    }
 
    handleCustProduct(event) {
        console.log(event.detail.value);
        this.reportName = event.detail.value ? event.detail.value : '';
        // this.pageDisable = false;
    }
 
    handleKeyDown(event) {
        if (event.key === 'Enter') {
            // this.search();
            console.log('enter');
            this.search();
        }
    }
 
    search(event) {
        searchReportByName({
            reportName : this.reportName
        })
        .then(result => {
            console.log('result===>' + result);
            if (result.status == 'Success') {
                if (result.entity) {
                    this.data = JSON.parse(result.entity);
                }
            } else {
                this.showToast('error', this.msg);
            }
        })
        .catch(error => {
            console.log('error===>' + error);
        });
    }
 
    showToast(msg,type) {
        if(type == 'success'){
            const event = new ShowToastEvent({
                message: msg,
                variant: type,
            });
            this.dispatchEvent(event);
            this.dispatchEvent(new CloseActionScreenEvent());
        }else{
            const event = new ShowToastEvent({
                message: msg,
                variant: type,
                mode: 'sticky'
            });
            this.dispatchEvent(event);
            this.dispatchEvent(new CloseActionScreenEvent());
        }   
    }
}