Skip to content

قائمة التحقق اليدوي لبرنامج WeChat المصغر ​

لاستخدامها من قبل المستخدمين (أو المشرفين) عند المراجعة في أدوات مطوّري WeChat. فاختبار الدخان البنيوي لا يضمن إلا صحة WXSS ونجاح التحويل البرمجي؛ أما صحة السلوك فلا بد من التحقق منها يدويًا — إذ تختبر vitest دلالات H5، ولا يمكن التقاط الفروق في الأحداث والعرض على طرف MP.

البناء: pnpm dev:mp-weixin (أو pnpm build:mp-weixin)، والناتج في dist/dev/mp-weixin (أو dist/build/mp-weixin)، افتح ذلك الدليل بأدوات مطوّري WeChat.

المتطلبات المسبقة: المكتبة الأساسية لـ WeChat ≥ 2.25.2 (يعتمد عليها root-portal؛ وتستخدم الإصدارات الأقل فرع التخفيض إلى تموضع fixed داخل الصفحة، وإن أردت التحقق من مسار التخفيض خصيصًا فاضبط المكتبة الأساسية على أقل من 2.25.2 وأعد تشغيل عناصر «طبقات الحوار» الثلاثة).

خط الأساس العام (يُفحص في كل صفحة) ​

#العنصرمعيار النجاح
G1الفتحلا تبياض الصفحة عند عرضها، ولا خطأ «المكوّن غير مُسجَّل»
G2الوضع الداكنالتبديل من المدخل يجعل جميع ألوان المكوّنات في الصفحة تتبعه (لا الخلفية فقط)
G3لغتانالتبديل من المدخل يجعل النصوص داخل المكوّنات (مثل رسائل التحقق في form، ونصوص الأزرار) تتبع اللغة
G4الطرفيةلا يوجد أي console.error طوال العملية (مع الانتباه ألا يظهر تحذير «نقطة التركيب غير الموجودة» الخاص بـ message/loading)

قائمة المكوّنات ​

مسار الصفحةالمكوّنالتفاعلات الرئيسية (بالإضافة إلى خط الأساس العام)
pages/button/buttonbuttonالنقر له حالة ارتداد؛loading / disabled / plain / round / circle / block كلها تُعرَض؛ أيقونة iconfont في زر الأيقونة تظهر بشكل صحيح
pages/icon/iconiconتظهر جميع الأيقونات الـ 37 (ليست مربعات فارغة)؛size / color ساريان؛أيقونة loading تدور
pages/tag/tagtagألوان كل type صحيحة؛تبديل round / hit؛closable يطلق الإغلاق عند النقر ويصل الاستدعاء
pages/input/inputinputv-model في اتجاهين؛أنماط العنصر النائب سارية عبر placeholder-style (لا يُفحَص ::placeholder)؛textarea يتكيّف ارتفاعه؛عدّاد الأحرف؛clearable يفرّغ؛حالة error تجعل الحد أحمر
pages/switch/switchswitchللنقر حالة تبديل بحركة انزلاقية؛loading / disabled لا يستجيبان للنقر؛activeText/inactiveText يُعرضان
pages/checkbox/checkboxcheckbox / checkbox-groupالنقر الفردي يضع علامة؛التحديد المتعدد داخل group لا يتأثر كل منهما بالآخر؛العناصر المعطّلة لا تستجيب؛حالة نصف التحديد غير المحدد
pages/radio/radioradio / radio-groupالخيارات متنافية (اختيار أحدهما يلغي السابق)؛العناصر المعطّلة لا تستجيب
pages/form/formform / form-itemblur / input يطلقان التحقق؛نص الخطأ يُعرَض في <text> بشكل طبيعي؛validate() يُرجع Promise يُحلّ بشكل صحيح داخل زر «الإرسال»؛نجمة الحقل المطلوب ظاهرة
pages/select/selectselectالنقر يفتح listbox (root-portal، وترتيبه الطبقي فوق القناع)؛النقر على خيار يحدّده ويُغلق؛clearable يفرّغ؛حقل الإدخال داخل طبقة filterable قابل للاستخدام؛عدم وجود تنقل بلوحة المفاتيح أمر طبيعي (مُزال في MP)
pages/tooltip/tooltiptooltipالنقر على trigger يُظهر الفقاعة؛الموضع مطابق لـ placement (بعد القياس بإطارين، لا يجب رؤية وميض أو انحراف في الإطار الأول)؛النقر خارج المنطقة يُغلق؛أما trigger="hover" فعدم عمله في MP يُعتبر طبيعيًا
pages/dialog/dialogdialogالفتح مع القناع والحركة؛النقر على القناع يُغلق وفق closeOnClick-modal؛في وضع bottom يسري safe-area-inset-bottom على الشاشات الكاملة؛عدم عمل Esc وlockScroll في MP أمر طبيعي؛وضع ملء الشاشة يغطي كل الشاشة
pages/services/servicesmessage / loadingانظر القسم التالي

قسم message / loading ​

#العنصرمعيار النجاح
S1أنواع الرسائلتظهر الأنواع الخمسة success / info / warning / danger / loading، بأيقونة ولون صحيحين
S2الإغلاق التلقائيتختفي بعد 3 ثوانٍ افتراضيًا مع حركة انتقالية (وليس اختفاءً فوريًا)
S3الإغلاق اليدويلا يُغلق نوع loading تلقائيًا، بل بعد handle.close()
S4تكديس رسائل متعددةعند استدعاء عدة رسائل متتالية تُكدَّس عموديًا دون تداخل؛وعند تجاوز عدد max تُستبعد الأقدم
S5القناع الشامليُظهر loading.show قناعًا شاملًا، ولا يمكن النقر على الطبقات السفلى أثناءه
S6استدعاء الإغلاقيُطلَق استدعاء onClose عند اختفاء الرسالة
S7تحذير عدم التركيب(للتحقق خصيصًا: احذف <lh-message /> من الصفحة ثم نادِ) يجب أن تُصدر الطرفية تحذيرًا صريحًا عبر console.error، بصمت لا

«العيوب غير الحقيقية» المعروفة على طرف MP (لا تبلغ عنها كأخطاء) ​

  • لا يوجد لـ select / dialog / tooltip تنقل بلوحة المفاتيح / Esc / focus-trap / lockScroll — مُزالة في وقت الترجمة، انظر دعم المنصات.
  • trigger="hover" الخاص بـ tooltip لا يُطلَق على طرف MP — لا توجد دلالة hover، استخدم click.
  • يجب وضع نقطة تركيب لـ message / loading أولًا، فهذا تصميم وليس خطأ.
  • icon مرسوم بخط، فـ fill / stroke في CSS لا يعملان، فقط color.

تسجيل نتائج الانحدار ​

أضف عمودًا يمين الجدول بعنوان «نجاح / فشل (الأعراض)»، وعناصر الفشل الصق أولًا لقطات من لوحتي Console وWXML في أدوات المطوّر، ثم قارنها بمصفوفة قدرات المنصات في docs/uniapp/uniapp组件库计划.md للحكم عليها: هل هي «تخفيض متوقَّع» أم عيب حقيقي.