arc/docs/product-search-field-behavior.md

39 lines
5.1 KiB
Markdown

# رفتار فیلد جست‌وجوی کالا
این سند رفتار فیلد انتخاب کالا در «فروش سریع»، فاکتور و سایر فرم‌هایی را که از انتخاب‌گر مشترک کالا استفاده می‌کنند تعریف می‌کند.
## نمایش پیشنهادها
- فوکوس یا کلیک روی فیلد خالی نباید منوی شناور پیشنهادها را باز کند.
- منوی پیشنهادها پس از وارد شدن متن غیرخالی نمایش داده می‌شود.
- پاک کردن متن، منو و انتخاب هایلایت‌شده را می‌بندد.
- پاسخ جست‌وجوی قدیمی نباید جای نتایج متن جدید را بگیرد.
کالاهای اخیر در بخش مستقل «محصولات اخیر» فروش سریع و در انتخاب‌گر پیشرفته کالا همچنان قابل دسترسی‌اند؛ فیلد خالی از آن‌ها برای ساخت منوی شناور استفاده نمی‌کند.
## صفحه‌کلید در فروش سریع
- کلیدهای بالا و پایین، ردیف هایلایت‌شده را در نتایج همان متن تغییر می‌دهند.
- با بارگذاری نتایج، هیچ ردیفی صرفاً به دلیل قرارگرفتن در ابتدای فهرست انتخاب‌شده محسوب نمی‌شود؛ اولین فشار جهت پایین، ردیف اول را مشخص می‌کند.
- اگر کاربر با بالا یا پایین داخل نتایج حرکت کرده باشد، Enter همان ردیف را به سبد اضافه می‌کند.
- اگر فقط یک پیشنهاد برای متن فعلی باقی مانده باشد، Enter همان کالا را بدون نیاز به حرکت با بالا یا پایین به سبد اضافه می‌کند.
- اگر چند پیشنهاد نمایش داده شده باشد و کاربر داخل آن‌ها حرکت نکرده باشد، Enter هیچ کالایی اضافه نمی‌کند و دیالوگ چندنتیجه‌ای نیز باز نمی‌شود؛ کاربر باید نتیجه را با جهت‌نما و Enter یا با موس انتخاب کند.
- اگر پیشنهادهای متن هنوز بارگذاری نشده باشند، Enter متن خود فیلد را جست‌وجو می‌کند. این قاعده برای بارکدخوان‌هایی که بارکد و Enter را سریع ارسال می‌کنند ضروری است. این مسیر نیز در صورت یافتن چند کالا دیالوگ باز نمی‌کند و منتظر انتخاب از منوی پیشنهادها می‌ماند.
- اگر نتایج نمایش‌داده‌شده متعلق به متن قبلی باشند، Enter آن‌ها را انتخاب نمی‌کند و متن فعلی مرجع جست‌وجو می‌ماند.
- کلیک روی یک پیشنهاد، همان پیشنهاد را مستقیماً انتخاب می‌کند.
- پس از اضافه‌شدن کالا از مسیر جست‌وجوی مستقیم، فیلد در فریم بعدی دوباره فوکوس می‌گیرد تا اسکن بعدی بدون کلیک انجام شود.
## دامنهٔ اعمال
فروش سریع انتخاب‌گر اختصاصی خود را دارد. فاکتور جدید و ویرایش فاکتور از `ProductComboboxWidget` در جدول اقلام استفاده می‌کنند. این کامپوننت مشترک در فرم‌های انبار، گزارش‌ها، تولید، توزیع، CRM و گردش‌کار نیز استفاده می‌شود؛ بنابراین قاعدهٔ «عدم نمایش منو برای فیلد خالی» در همهٔ آن‌ها یکسان است.
## سناریوهای پذیرش
1. با باز شدن فروش سریع یا کلیک روی فیلد خالی، منویی نمایش داده نمی‌شود.
2. با تایپ بخشی از نام، فقط نتایج همان عبارت در منو نمایش داده می‌شوند.
3. با حرکت توسط بالا/پایین و زدن Enter، ردیف هایلایت‌شده مستقیماً به سبد اضافه می‌شود و پنجرهٔ «چند نتیجه پیدا شد» باز نمی‌شود.
4. اگر فقط یک پیشنهاد باقی مانده باشد، Enter همان کالا را مستقیماً اضافه می‌کند.
5. در صورت وجود چند پیشنهاد و نبود حرکت با جهت‌نما، Enter نه کالایی اضافه می‌کند و نه دیالوگ چندنتیجه‌ای باز می‌کند.
6. با اسکن سریع بارکد و Enter، بارکد داخل فیلد مرجع انتخاب است و پیشنهاد هایلایت‌شده به‌صورت ناخواسته ثبت نمی‌شود.
7. پس از اضافه‌شدن کالا با بارکد یا کد، فیلد جست‌وجو خالی و آمادهٔ اسکن بعدی باقی می‌ماند.
8. در فاکتور و سایر مصرف‌کنندگان `ProductComboboxWidget`، کلیک روی فیلد خالی منوی ابتدای فهرست کالاها را باز نمی‌کند.