1
chenjingwu
2024-05-24 ab5a982874f88556b72e02177fa88dedc2d56fe8
force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
@@ -1,6 +1,7 @@
/* Code by CafeForce || www.cafeforce.com || support@cafeforce.com || Mandatory Header */
import { LightningElement, track, api } from 'lwc';
import lexHandCss from '@salesforce/resourceUrl/lexHandCss';
import {loadStyle} from 'lightning/platformResourceLoader';
export default class MultiSelectCombobox extends LightningElement {
    
    @api options;
@@ -21,6 +22,9 @@
    @api placeholder = '--无--';
    @track errorFlag = false;
    connectedCallback() {
        Promise.all([
            loadStyle(this, lexHandCss)
           ]);
        this.showDropdown = false;
        var optionData = this.options ? (JSON.parse(JSON.stringify(this.options))) : null;
        var value = this.selectedValue ? (JSON.parse(JSON.stringify(this.selectedValue))) : null;
@@ -52,6 +56,15 @@
    get isRequired() {
        return this.required;
    }
    closeAction(){
        this.showDropdown = false;
    }
    handlePayModeOpen() {
        setTimeout(() => {
            const topDiv = this.template.querySelector('[data-id="scrollSec"]');
            topDiv.scrollTop = topDiv.scrollHeight;
        }, 20);
    }
    filterOptions(event) {
@@ -113,7 +126,20 @@
                event.preventDefault();
            else
                this.showDropdown = false;
                this.dispatchEvent(new CustomEvent('select', {
                    detail: {
                        'payloadType' : 'multi-select',
                        'payload' : {
                            'value' : this.value,
                            'values' : this.values
                        }
                    }
                }));
        }
    }
    dontClose(event){
        event.preventDefault();
    }
    showOptions() {
@@ -178,15 +204,7 @@
        
        this.showDropdown = false;
        this.dispatchEvent(new CustomEvent('select', {
            detail: {
                'payloadType' : 'multi-select',
                'payload' : {
                    'value' : this.value,
                    'values' : this.values
                }
            }
        }));
    }
}
/*