From f1bb6af7ec8ea81ba1b40eef0dabeeef3eee4bbb Mon Sep 17 00:00:00 2001
From: chenjingwu <chenjingwu@prec-tech.com>
Date: 星期五, 12 四月 2024 11:48:56 +0800
Subject: [PATCH] 123

---
 force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js |   55 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 12 deletions(-)

diff --git a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
index 2ee7314..725a643 100644
--- a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
+++ b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
@@ -1,13 +1,14 @@
 /* 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;
     @api selectedValue;
     @api selectedValues = [];
     @api label;
-    @api minChar = 2;
+    @api minChar = 1;
     @api disabled = false;
     @api multiSelect = false;
     @api myValue;
@@ -15,10 +16,15 @@
     @track value;
     @track values = [];
     @track optionData;
-    @track searchString;
+    @api searchString;
     @track message;
     @track showDropdown = false;
+    @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;
@@ -50,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) {
@@ -111,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() {
@@ -158,6 +186,17 @@
                 count++;
             }
         }
+        if(!previousLabel){
+            var element = this.template.querySelector('[data-id="myinput"]');
+            element.classList.add('slds-has-error');
+            this.errorFlag = true;
+            this.showDropdown = false;
+        }else{
+            var element = this.template.querySelector('[data-id="myinput"]');
+            element.classList.remove('slds-has-error');
+            this.errorFlag = false;
+            this.showDropdown = false;
+        }
         if(this.multiSelect)
         	this.searchString = count + ' Option(s) Selected';
         else
@@ -165,15 +204,7 @@
         
         this.showDropdown = false;
 
-        this.dispatchEvent(new CustomEvent('select', {
-            detail: {
-                'payloadType' : 'multi-select',
-                'payload' : {
-                    'value' : this.value,
-                    'values' : this.values
-                }
-            }
-        }));
+        
     }
 }
 /* 

--
Gitblit v1.9.1