����JFIF�����%%��� }!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������� w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|��O�������h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,���|-��v��(���� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�������;~��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@�������?�_�����j������ (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@��o�E��/�?��ߵE_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ ?�z�����������goڢ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?��=[�Qg�����o����Q@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y�����[����TP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,��������ο�O�P��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@����(���g���Y������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���V��Y|����Y����UP��@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P����,�����,��u������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j���h�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� �@���o�E��?�?����ο�U_�P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@ _�z�����������g_ڪ�?��(�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (��?�/�=[�Qe�����g����U@��P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������k�w���~���v��������� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (�� (���տ�_�����:��T�~�@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@������/���?��j�?�5o�%��?��� g����U@�����&O3�����a�;�^=�wH���D��/��*� �fX�I���,������k?g_���?�5o�%��?��� g����U@�F�����������*������?�o�}��Τ~g��ʀ�#V��Y������~ο�T�j��K/� ������������z��������#;�~���A�;��� w�F�����������*���տ��_�@�o��5����EU������������u�誠��W��[�����������O��?jW���@��տ���@�o��5����EM������������v�訠�#V��Y�������������V��Zv��~����vw�~���c�Q@���,��~���kgo���?�5o�%��/��� o����Q@��o�%�>�ߤ���߳����S������?��o�%�~�ߠ�d�߳����S����g�P��j��K?� _������������[� g�D����[�;�TP7���������'Ѿ���=��;/�P��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���a������۔���B{���ea�`T�+ �n%Ц �����j��K?� _������������[� g�D����[�;�TP���,��~���kgo����?���%�/�~�����#����x��c�~�q�v�t`ȫ��_'h���������'�]�;{s� Pp=N= 5���%�����ڜs�����=���J��A@�����Kp�b��}��X�����4g v+:�Բ�+60�ʩ,� @�����������I �uO�����ToUv��bgUl�cP�T?�#V��Y������������j��K?� _����������!��X��]���������TK�|4��`� ��#��P\y��aa >NgL��j��K?� _������������[� g�D����[�;�TP���,��~���kgo���o�F�����$��ہ�� ��vݞr6��S�q''*02���[� g�D����[�;�TP���,��~���kgo���?�5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE������������v�訠��������~1�o���}G�L�������5o�%��/��� o����Q@�F�����������*(��տ���@�o��5����EE5����%�˷���r�v����y�\~���)(?0���=[� i����>��gc��N=����5o�%��/��� o����Q@�F�����������*(��W��Z�l����m#���X�wn_�j`0C6윅����5o�%��/��� o����Q@��տ��y9���gbO�G�5@�n�>���#V��Y������~ο�T��V��Y����9�gc��s�T.�?Z_��[� e�D����Y�:��UP���,������k?g_����_�=_� n�~~�rI������w�,"~ԓ�!72���)( u��#V��Y������~ο�T�j��K/� ��������������K
�����Kr_���}�De>~��Z=��pjX�n[p(�"� �a,Ub�/�×�<����;��<�����K>��o���[�:����V���,��$��ϧ�*�����5O����տ��_�@�o��5����EU5��o�%����?�ꜜm�_�;>Gbs�S�����@��տ��_�@�o��5����EU ��տ��}�~�����v?�������-��o�l��~�ȥ�v����r��B1���@��տ���A�?����ggP��c�S�`@%�*����տ��_�@�o��5����EU������������u�誠7���� O���!c�|0��ёv��4�+�X�Vx�RX3��8����K>��o���[�:���u#�x��#V��Y������~ο�T�j��K/� ������������[� e�D����Y�:��UP���,������k?g_���O��[� g�D����[�:��T��=_� k����~��k����c�;����.8����c��z��Ͽ�/��zc�o����F?Z_��[� e�D����Y�:��UP���,������k?g_���C���,�v����v�o���H������(�z���w�/�����v ��T.G��Ϡ���տ��_�@�o��5����EU������������u�誠��W��[��'����%��o���:�Cڕ�R̀���j���������?�o���[�;������g0q�?��o�%�>o�_��>�gf����~4�������������u�誠�z���7�/��o���������_��[� e�D����Y�:��UP���,������k?g_���C���,�|�����o��;�Ԟ��9�l�z��ؠ3|��O�X�~���;~�q����Z�F�����������*���տ��_�@�o��5����EU!��տ��}�~����-��G��I�T�������������u�誠�#V��Y������~ο�T�j��K/� ����������#�=_� n|���KbB�gtdM��"�ڒA#n�63�6�m�P�����,���/���gS�u����#�9��5o�%��?��� g����U@��o�%�o�_�����u��'�������?��o��� ���3��?go���|m�ڇ���-S�O��x��>���^�����7����x�]_�>�qke>���m��4��7P�Yހ��
0byt3m1n1
0byt3m1n1
Path:
/
var
/
www
/
html
/
develop.por88.net
/
resources
/
views
/
pages
/
[
Home
]
File: games.blade.php
@extends('layouts.master') @section('title') เกม @endsection @section('breadcrumb') <div class="page-header"> <div class="page-block"> <div class="row align-items-center"> <div class="col-md-12"> <ul class="breadcrumb"> <li class="breadcrumb-item"><a href="javascript: void(0)">แดชบอร์ด</a></li> <li class="breadcrumb-item" aria-current="page">เส้นทาง</li> </ul> </div> <div class="col-md-12 d-flex justify-content-between"> <div> <h2 class="mb-0 text-green-700">{{ $gameTitle }}</h2> </div> <div> <a href="#" @click.prevent="toggleAddMode" class="btn btn-light-primary d-inline-flex align-items-center"> <i class="ti ti-plus f-18"></i> เพิ่ม{{ $gameTitle }} </a> </div> </div> </div> </div> </div> @endsection @section('content') <div class="row"> <div class="col-md-4" v-if="addMode"> <div class="card animate__animated animate__fadeInLeft"> <form @submit.prevent="addGameFormSubmit"> <div class="card-header d-flex align-items-center justify-content-between"> <h5>เพิ่ม{{ $gameTitle }}</h5> <button class="btn btn-light-success"><i class="far fa-check-circle me-1"></i>บันทึก</button> </div> <div class="card-body"> <input type="hidden" name="game_type" value="{{ $gameType }}" ref="gameType"> <div class="form-group"> <label class="form-label">ประเภทเกม</label> <input type="text" class="form-control" value="{{ $gameTitle }}" name="game_type_display" readonly /> </div> <input type="hidden" class="form-control" value="-" placeholder="กรุณาระบุชื่อรอบ" name="round_name" required /> <div class="form-group"> <label for="exampleFormControlTextarea1">ส่วนหัว</label> <textarea class="form-control" id="exampleFormControlTextarea1" name="round_header" rows="3" placeholder="กรุณาระบุส่วนหัว"></textarea> </div> <div class="form-group d-none"> <label class="form-label">ชื่อรอบ <span class="text-danger">*</span></label> <input type="hidden" class="form-control" value="-" placeholder="กรุณาระบุชื่อรอบ" name="round_name" required /> </div> <div class="form-group"> <label class="form-label">รอบวันที่ <span class="text-danger">*</span></label> <input type="date" class="form-control" placeholder="กรุณาระบุรอบวันที่" name="round_date" value="{{ \Carbon\Carbon::now()->format('Y-m-d') }}" required /> </div> @if($gameType === \App\Models\GameRound::POINT_HUNTING_GAME) <div class="form-group" > <label class="form-label">เปิดรับสมัคร <span class="text-danger">*</span></label> <input type="datetime-local" class="form-control" placeholder="กรุณาระบุเปิดรับสมัคร" name="round_register" value="{{ \Carbon\Carbon::now()->format('Y-m-d H:00') }}" required /> </div> @endif <div class="row"> <div class="col-md-6"> <div class="form-group"> <label class="form-label">เปิดรับทายผล <span class="text-danger">*</span></label> <input type="date" class="form-control" placeholder="กรุณาระบุเปิดรับทายผล" name="round_open_date" v-model="gameOpenCloseDateTimeForm.open.date" value="{{ \Carbon\Carbon::now()->format('Y-m-d') }}" required /> </div> </div> <div class="col-md-6"> <label class="form-label">เวลา <span class="text-danger">*</span></label> <div class="input-group"> <select class="form-control" name="round_open_hour" v-model="gameOpenCloseDateTimeForm.open.hour"> <option selected disabled value="">ชม.</option> <option v-for="hour in Array.from({ length: 24 }, (_, i) => i)" :key="hour" :value="hour < 10 ? '0' + hour : hour"> @{{ hour < 10 ? '0' + hour : hour }} </option> </select> <select class="form-control" name="round_open_minute" v-model="gameOpenCloseDateTimeForm.open.minute"> <option selected disabled value="">นาที</option> <option v-for="minute in Array.from({ length: 60 }, (_, i) => i)" :key="minute" :value="minute < 10 ? '0' + minute : minute"> @{{ minute < 10 ? '0' + minute : minute }} </option> </select> </div> </div> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label class="form-label">เกมหมดเวลา <span class="text-danger">*</span></label> <input type="date" class="form-control" placeholder="กรุณาระบุปิดรับทายผล" name="round_close_date" v-model="gameOpenCloseDateTimeForm.close.date" value="{{ \Carbon\Carbon::now()->addDay()->format('Y-m-d') }}" required /> </div> </div> <div class="col-md-6"> <label class="form-label">เวลา <span class="text-danger">*</span></label> <div class="input-group"> <select class="form-control" name="round_close_hour" v-model="gameOpenCloseDateTimeForm.close.hour"> <option selected disabled value="">ชม.</option> <option v-for="hour in Array.from({ length: 24 }, (_, i) => i)" :key="hour" :value="hour < 10 ? '0' + hour : hour"> @{{ hour < 10 ? '0' + hour : hour }} </option> </select> <select class="form-control" name="round_close_minute" v-model="gameOpenCloseDateTimeForm.close.minute"> <option selected disabled value="">นาที</option> <option v-for="minute in Array.from({ length: 60 }, (_, i) => i)" :key="minute" :value="minute < 10 ? '0' + minute : minute"> @{{ minute < 10 ? '0' + minute : minute }} </option> </select> </div> </div> </div> <div class="form-group"> <label class="form-label">จำกัดผู้เข้าร่วม <span class="text-danger">*</span></label> <input type="number" min="0" class="form-control" placeholder="กรุณาระบุจำกัดผู้เข้าร่วม" name="participant_limit" v-model="paticipantLimitInput" @input="validateInput" required /> <small v-if="paticipantLimitInputErrMsg" class="form-text text-danger">*@{{ paticipantLimitInputErrMsg }}</small> </div> <div class="form-group"> <label class="form-label">จำนวนการทายผล / คน <span class="text-danger">*</span></label> <input type="number" min="0" class="form-control" placeholder="กรุณาระบุจำนวนการทายผล / คน" name="prediction_limit" value="{{ $gameType === \App\Models\GameRound::WEEKLY_GAME ? null : 10 }}" required /> </div> @if($gameType === \App\Models\GameRound::POINT_HUNTING_GAME) <div class="form-group"> <label class="form-label">ประเภทคะแนนที่ใช้สำหรับการสมัคร</label> <select class="form-select" name="cost_wallet_type" v-model="addGameForm.cost_wallet_type"> <option selected value>ไม่ใช้คะแนน</option> <option value="1">Point</option> <option value="2">เครดิต</option> <option value="3">คะแนนร่วมสนุก</option> <option value="4">คะแนนล่าค่า Point</option> </select> </div> @endif <div class="form-group" v-if="addGameForm.cost_wallet_type !== ''"> <label class="form-label">จำนวนคะแนน</label> <input type="number" min="0" class="form-control" placeholder="กรุณาระบุจำนวนคะแนน" name="number_of_point" required /> </div> @if($gameType === \App\Models\GameRound::WEEKLY_GAME) <div class="form-group"> <label class="form-label">กติกาเกม</label> <select class="form-select" name="game_rule_id" @change="previewGameRule"> <option selected value>ไม่กำหนด</option> <option v-for="weeklyGameRule in weeklyGameRules" :value="weeklyGameRule.id">@{{ weeklyGameRule.name }}</option> </select> </div> <div class="form-group"> <label class="form-label">รูปแบบการเล่น</label> <select class="form-select" name="play_type"> <option selected value="1">ปกติ</option> <option value="2">สเต็ป</option> </select> </div> @endif </div> </form> </div> </div> <div class="col-md-4" v-if="editMode"> <div class="card animate__animated animate__slideInUp animate__fast"> <form @submit.prevent="editGameFormSubmit"> <div class="card-header d-flex align-items-center justify-content-between"> <h5>แก้ไข{{ $gameTitle }}</h5> <button class="btn btn-light-warning"><i class="fas fa-wrench me-2"></i>แก้ไข</button> </div> <div class="card-body"> @method('PUT') <input type="hidden" name="game_type" value="{{ $gameType }}"> <div class="form-group"> <label class="form-label">ประเภทเกม</label> <input type="text" class="form-control" value="{{ $gameTitle }}" name="game_type_display" readonly /> </div> <div class="form-group d-none"> <label class="form-label">ชื่อรอบ <span class="text-danger">*</span></label> <input type="hidden" class="form-control" v-model="editGameForm.round_name" placeholder="กรุณาระบุชื่อรอบ" name="round_name" required /> </div> <div class="form-group"> <label>ส่วนหัว</label> <textarea class="form-control" v-model="editGameForm.round_header" name="round_header" rows="3" placeholder="กรุณาระบุส่วนหัว"></textarea> </div> <div class="form-group"> <label class="form-label">รอบวันที่ <span class="text-danger">*</span></label> <input type="date" class="form-control" v-model="editGameForm.round_date" placeholder="กรุณาระบุรอบวันที่" name="round_date" value="{{ \Carbon\Carbon::now()->format('Y-m-d') }}" required /> </div> {{-- <div class="form-group">--}} {{-- <label class="form-label">เปิดรับสมัคร <span class="text-danger">*</span></label>--}} {{-- <input type="datetime-local" class="form-control" v-model="editGameForm.round_register"--}} {{-- placeholder="กรุณาระบุเปิดรับสมัคร" name="round_register" value="{{ \Carbon\Carbon::now()->format('Y-m-d H:00') }}" required />--}} {{-- </div>--}} {{-- <div class="form-group"> <label class="form-label">เปิดรับทายผล <span class="text-danger">*</span></label> <input type="datetime-local" class="form-control" v-model="editGameForm.round_open" placeholder="กรุณาระบุเปิดรับทายผล" name="round_open" value="{{ \Carbon\Carbon::now()->format('Y-m-d H:00') }}" required /> </div> --}} {{-- <div class="form-group">--}} {{-- <label class="form-label">ปิดรับทายผล <span class="text-danger">*</span></label>--}} {{-- <input type="datetime-local" class="form-control" v-model="editGameForm.round_close"--}} {{-- placeholder="กรุณาระบุปิดรับทายผล" name="round_close" value="{{ \Carbon\Carbon::now()->addDay()->format('Y-m-d H:00') }}" required />--}} {{-- </div>--}} <div class="row"> <div class="col-md-6"> <div class="form-group"> <label class="form-label">เปิดรับทายผล <span class="text-danger">*</span></label> <input type="date" class="form-control" placeholder="กรุณาระบุเปิดรับทายผล" name="round_open_date" v-model="editGameForm.round_open_parser.date" value="{{ \Carbon\Carbon::now()->format('Y-m-d') }}" required /> </div> </div> <div class="col-md-6"> <label class="form-label">เวลา <span class="text-danger">*</span></label> <div class="input-group"> <select class="form-control" name="round_open_hour" v-model="editGameForm.round_open_parser.hour"> <option selected disabled value="">ชม.</option> <option v-for="hour in Array.from({ length: 24 }, (_, i) => i)" :key="hour" :value="hour < 10 ? '0' + hour : hour"> @{{ hour < 10 ? '0' + hour : hour }} </option> </select> <select class="form-control" name="round_open_minute" v-model="editGameForm.round_open_parser.minutes"> <option selected disabled value="">นาที</option> <option v-for="minute in Array.from({ length: 60 }, (_, i) => i)" :key="minute" :value="minute < 10 ? '0' + minute : minute"> @{{ minute < 10 ? '0' + minute : minute }} </option> </select> </div> </div> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label class="form-label">เกมหมดเวลา <span class="text-danger">*</span></label> <input type="date" class="form-control" placeholder="กรุณาระบุปิดรับทายผล" name="round_close_date" v-model="editGameForm.round_close_parser.date" value="{{ \Carbon\Carbon::now()->addDay()->format('Y-m-d') }}" required /> </div> </div> <div class="col-md-6"> <label class="form-label">เวลา <span class="text-danger">*</span></label> <div class="input-group"> <select class="form-control" name="round_close_hour" v-model="editGameForm.round_close_parser.hour"> <option selected disabled value="">ชม.</option> <option v-for="hour in Array.from({ length: 24 }, (_, i) => i)" :key="hour" :value="hour < 10 ? '0' + hour : hour"> @{{ hour < 10 ? '0' + hour : hour }} </option> </select> <select class="form-control" name="round_close_minute" v-model="editGameForm.round_close_parser.minutes"> <option selected disabled value="">นาที</option> <option v-for="minute in Array.from({ length: 60 }, (_, i) => i)" :key="minute" :value="minute < 10 ? '0' + minute : minute"> @{{ minute < 10 ? '0' + minute : minute }} </option> </select> </div> </div> </div> <div class="form-group"> <label class="form-label">จำกัดผู้เข้าร่วม <span class="text-danger">*</span></label> <input type="number" min="0" class="form-control" v-model="editGameForm.participant_limit" placeholder="กรุณาระบุจำกัดผู้เข้าร่วม" name="participant_limit" required /> </div> <div class="form-group"> <label class="form-label">จำนวนการทายผล / คน <span class="text-danger">*</span></label> <input type="number" min="0" class="form-control" v-model="editGameForm.prediction_limit" placeholder="กรุณาระบุจำนวนการทายผล / คน" name="prediction_limit" required /> </div> {{-- <div class="form-group">--}} {{-- <label class="form-label">ประเภทคะแนนที่ใช้สำหรับการสมัคร</label>--}} {{-- <select class="form-select" name="cost_wallet_type">--}} {{-- <option selected value>ไม่ใช้คะแนน</option>--}} {{-- <option value="1">Point</option>--}} {{-- <option value="2">เครดิต</option>--}} {{-- <option value="3">คะแนนร่วมสนุก</option>--}} {{-- <option value="4">คะแนนล่าค่า Point</option>--}} {{-- </select>--}} {{-- </div>--}} {{-- <div class="form-group">--}} {{-- <label class="form-label">จำนวนคะแนน</label>--}} {{-- <input type="number" min="0" class="form-control" v-model="editGameForm.number_of_point"--}} {{-- placeholder="กรุณาระบุจำนวนคะแนน" name="number_of_point" />--}} {{-- </div>--}} @if($gameType === \App\Models\GameRound::WEEKLY_GAME) <div class="form-group"> <label class="form-label">กติกาเกม</label> <select class="form-select" name="game_rule_id" v-model="editGameForm.game_rule_id"> <option selected value>ไม่กำหนด</option> <option v-for="weeklyGameRule in weeklyGameRules" :value="weeklyGameRule.id">@{{ weeklyGameRule.name }}</option> </select> </div> <div class="form-group"> <label class="form-label">รูปแบบการเล่น</label> <select class="form-select" name="play_type" v-model="editGameForm.play_type"> <option value="1">ปกติ</option> <option value="2">สเต็ป</option> </select> </div> @endif </div> </form> </div> </div> <div :class="`${addMode || editMode ? 'col-md-8':'col-md-12'}`"> <div class="card table-card animate__animated animate__slideInUp animate__fast"> <div class="card-header d-flex align-items-center justify-content-between"> <h5>รายการอบเกม</h5> <div class="d-flex align-items-center"> <div class="me-2"> <div class="form-search my-1"> <i class="ti ti-search"></i> <input type="text" class="form-control" id="filterKeyword" placeholder="ค้นหา" /> </div> </div> </div> </div> <div class="card-body pb-0"> <div class="table-responsive"> <table class="table nowrap mb-0"> <thead> <tr> <th class="text-center align-center">#</th> <th class="text-center align-center d-none">ชื่อรอบ</th> <th class="text-center align-center">รอบวันที่</th> <th class="text-center align-center">เปิดรับทายผล</th> <th class="text-center align-center">ปิดรับทายผล</th> <th class="text-center align-center">จำกัดผู้เข้าร่วม</th> <th class="text-center align-center">จำนวนการทายผล / คน</th> <th class="text-center align-center">จำนวนที่รับเดิมพัน</th> <th class="text-center align-center d-none">คะแนนในการเข้าร่วม</th> <th class="text-center align-center">สถานะ</th> <th class="text-center align-center">ดำเนินการ</th> </tr> </thead> <tbody> <tr v-if="!filteredGames.length" class="table-secondary"> <td class="text-center align-center" colspan="11">ไม่พบข้อมูล{{ $gameTitle }}</td> </tr> <tr v-for="(game, indx) in filteredGames" :key="indx"> <td class="text-center align-center">@{{ indx + 1 }}</td> <td class="text-center align-center text-primary fw-semibold d-none">@{{ game.round_name }}</td> <td class="text-center align-center text-primary fw-semibold">@{{ game.round_date_th }}</td> <td class="text-center align-center">@{{ game.round_open_th }}</td> <td class="text-center align-center">@{{ game.round_close_th }}</td> <td class="text-center align-center"> <a :href="route('backoffice.games.predictions.view', game.id)" class="fw-semibold">@{{ game.users_count }} / @{{ game.participant_limit }}</a> คน</td> <td class="text-center align-center"><span class="text-primary fw-semibold">@{{ game.prediction_limit }}</span> ครั้ง</td> <td class="text-center align-center"><span class="text-primary fw-semibold">@{{ game.accept_bets_fuxtures }}</span> ทีม</td> <td class="text-center align-center d-none"> <template v-if="game.number_of_point"><span class="text-primary fw-semibold">@{{ game.number_of_point }}</span> @{{ costWalletTypeStr[game.cost_wallet_type] }}</template> <template v-else>-</template> </td> <td class="text-center align-center"> <span :class="`badge bg-light-${game.gameRoundStatus.color} text-sm d-inline-flex align-items-center`"> <i :class="`${game.gameRoundStatus.icon} me-1 f-18`"></i>@{{ game.gameRoundStatus.text }} </span> </td> <td class="text-center align-center"> <ul class="list-inline me-auto mb-0"> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" v-if="game.status !== 1" title="ผลการแข่ง"> <a :href="route('backoffice.games.match-up.match-result', game.id)" class="avtar avtar-xs btn-link-success btn-pc-default"> <i class="ti ti-trophy f-18"></i> </a> </li> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" v-if="game.status === 1" title="ตั้งค่าทีม"> <a :href="route('backoffice.games.match-up.create', game.id)" class="avtar avtar-xs btn-link-success btn-pc-default"> <i class="ti ti-columns f-18"></i> </a> </li> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" v-else title="แก้ไขทีม"> <a :href="route('backoffice.games.match-up.edit', game.id)" class="avtar avtar-xs btn-link-success btn-pc-default"> <i class="ti ti-columns f-18"></i> </a> </li> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" title="แก้ไขเกม"> <a href="#" class="avtar avtar-xs btn-link-warning btn-pc-default" @click.prevent="editGame(game)"> <i class="ti ti-pencil f-18"></i> </a> </li> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" title="ยกเลิกการออกผล"> <a href="#" class="avtar avtar-xs btn-link-danger btn-pc-default" @click.prevent="undoGameRoundResult(game)"> <i class="ti ti-arrow-back-up f-18"></i> </a> </li> <li class="list-inline-item align-bottom" data-bs-toggle="tooltip" title="ลบเกม"> <a href="#" class="avtar avtar-xs btn-link-danger btn-pc-default" @click.prevent="removeGame(game)"> <i class="ti ti-trash f-18"></i> </a> </li> </ul> </td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <div ref="previewGameRuleModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLiveLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLiveLabel">กติกาเกม</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <textarea id="game-rule-preview-editor"> </textarea> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">ปิด</button> <button type="button" class="btn btn-primary" @click.prevent="updateGameRule">ยืนยัน</button> </div> </div> </div> </div> @endsection @section('script') <script src="//cdn.ckeditor.com/4.16.2/full/ckeditor.js"></script> <script type="module"> $(function() { CKEDITOR.replace('game-rule-preview-editor', { height: 300 }); }); import useHelpers, {useConfirm, useSwal} from "/app/hooks/useHelpers.js"; import useGames from '/app/hooks/useGames.js'; const {createApp, ref, reactive, onMounted, computed, nextTick, watch} = Vue; createApp({ setup() { const addMode = ref(false); const editMode = ref(false); const toggleAddMode = () => { addMode.value = !addMode.value; editMode.value = false; }; const toggleEditMode = () => { editMode.value = !editMode.value; addMode.value = false; } const { nf, toolTip } = useHelpers(); const endpoint = `{{ url()->current() }}`; const { games, fetchGames, addGame } = useGames(endpoint); const formatDate = date => new Date(date).toISOString().split('T')[0]; const currentDate = formatDate(Date.now()); const tomorrowDate = formatDate(Date.now() + 86400000); const gameOpenCloseDateTimeForm = reactive({ open: { date: currentDate, hour: '', minute: '00' }, close: { date: tomorrowDate, hour: '', minute: '00' }, }); const addGameFormSubmit = async (e) => { const isConfirmed = await swal({ title: 'ยืนยัน?', text: 'กรุณาตรวจสอบความถูกต้องอีกครั้ง', icon: 'info', buttons: ['ยกเลิก', 'ยืนยัน'], }); if (!isConfirmed) return; const formData = new FormData(e.target); formData.append('round_open', `${gameOpenCloseDateTimeForm.open.date} ${String(gameOpenCloseDateTimeForm.open.hour).padStart(2, '0')}:${String(gameOpenCloseDateTimeForm.open.minute).padStart(2, '0')}:00`); formData.append('round_close', `${gameOpenCloseDateTimeForm.close.date} ${String(gameOpenCloseDateTimeForm.close.hour).padStart(2, '0')}:${String(gameOpenCloseDateTimeForm.close.minute).padStart(2, '0')}:00`); try { const addMemberStatus = await addGame(formData); if (addMemberStatus) { e.target.reset(); await fetchGames(); swal('สำเร็จ!', 'เพิ่มเกมเรียบร้อยแล้ว', 'success').then(() => addMode.value = false); } else { throw new Error('Failed to add member.'); } } catch (error) { console.error(error); swal('เกิดข้อผิดพลาด', 'ไม่สามารถเพิ่มเกมได้', 'error'); } }; const gameRoundStatus = (status) => { switch (status) { case 1: return { text: 'ยังไม่ตั้งค่าทีม', icon: 'ti ti-alert-triangle', color: 'warning', }; case 2: return { text: 'ตั้งค่าทีมแล้ว', icon: 'ti ti-check', color: 'primary', }; case 3: return { text: 'เปิดรอบเกม', icon: 'ti ti-player-play', color: 'success', }; case 4: return { text: 'ปิดรอบเกม', icon: 'ti ti-circle-off', color: 'danger', }; } } const filteredGames = computed(() => { let useGame = games.value; useGame = useGame.map((game) => { return { ...game, gameRoundStatus: gameRoundStatus(game.status) } }); return useGame; }); const editGameForm = ref({}); const editGame = (game) => { editMode.value = true; addMode.value = false; editGameForm.value = {...game}; const roundOpen = new Date(game.round_open); const openDate = game.round_open.split(' ')[0]; const openHour = ('0' + roundOpen.getHours()).slice(-2); const openMinute = ('0' + roundOpen.getMinutes()).slice(-2); const roundClose = new Date(game.round_close); const closeDate = game.round_close.split(' ')[0]; const closeHour = ('0' + roundClose.getHours()).slice(-2); const closeMinute = ('0' + roundClose.getMinutes()).slice(-2); editGameForm.value.round_open_parser = {date:openDate, hour: openHour, minutes: openMinute}; editGameForm.value.round_close_parser = {date: closeDate, hour: closeHour, minutes: closeMinute}; } const editGameFormSubmit = async (e) => { const isConfirmed = await swal({ title: 'ยืนยัน?', text: 'ยืนยันการแก้ไขเกม', icon: 'warning', buttons: ['ยกเลิก', 'ยืนยัน'], }); if (!isConfirmed) return; const formData = new FormData(e.target); formData.append('round_open', `${editGameForm.value.round_open_parser.date} ${String(editGameForm.value.round_open_parser.hour).padStart(2, '0')}:${String(editGameForm.value.round_open_parser.minutes).padStart(2, '0')}:00`); formData.append('round_close', `${editGameForm.value.round_close_parser.date} ${String(editGameForm.value.round_close_parser.hour).padStart(2, '0')}:${String(editGameForm.value.round_close_parser.minutes).padStart(2, '0')}:00`); try { const { data: response } = await axios.post(route('backoffice.games.update', editGameForm.value.id), formData); if (response.success) { await fetchGames(); swal('สำเร็จ!', 'แก้ไขเกมเรียบร้อย', 'success').then(() => editMode.value = false); } else { throw new Error('Failed to edit game.'); } } catch (error) { console.error(error); swal('เกิดข้อผิดพลาด', 'ไม่สามารถแก้ไขเกมได้', 'error'); } } const removeGame = async (game) => { const isConfirmed = await swal({ title: 'ยืนยัน?', text: 'ยืนยันการลบรอบเกม', icon: 'warning', buttons: ['ยกเลิก', 'ยืนยัน'], dangerMode: true, }); if (!isConfirmed) return; try { const { data: response } = await axios.delete(route('backoffice.games.destroy', game.id)); if (response.success) { await fetchGames(); swal('สำเร็จ!', 'ลบรอบเกมเรียบร้อย', 'success'); } else { throw new Error('Failed to remove game.'); } } catch (error) { console.error(error); swal('เกิดข้อผิดพลาด', 'ไม่สามารถลบรอบเกมได้', 'error'); } } const useValidateNumberInput = () => { const gameType = ref(null); const inputVal = ref(null); const errorMgs = ref(false); const validateInput = () => { if (parseInt(gameType.value.value) === 1 || parseInt(gameType.value.value) === 3) { errorMgs.value = ''; return; } errorMgs.value = parseInt(inputVal.value) % 2 !== 0 ? 'จำนวนผู้เล่นต้องเป็นเลขคู่เท่านั้น' : errorMgs.value = ''; } return { gameType, inputVal, errorMgs, validateInput } } const { gameType, inputVal: paticipantLimitInput, errorMgs: paticipantLimitInputErrMsg, validateInput } = useValidateNumberInput(); const costWalletTypeStr = ['', 'POINT', 'CREDIT', 'คะแนนร่วมสนุก', 'คะแนนล่าค่า Point']; const addGameForm = reactive({ cost_wallet_type: '', }); const undoGameRoundResult = async (g) => { const cf = await useConfirm('ยืนยันการยกเลิกการออกผล และ ผลรางวัล (เพื่อการทดสอบเท่านั้น)'); if (!cf) return; const { data: response } = await axios.post(route('backoffice.undo-game-round-result', g.id)); await useSwal(response); await fetchGames().then(toolTip); } const weeklyGameRules = ref([]); const getWeeklyGameRules = async () => { const { data: res } = await axios.get(route('backoffice.game-rule.index')); weeklyGameRules.value = res.data.weekly_game; } const selectedGameRuleId = ref(null); const selectedGameRund = ref({}); const previewGameRuleModal = ref(null); const previewGameRule = (e) => { const modal = $(previewGameRuleModal.value); const gameRuleId = e.target.value; selectedGameRuleId.value = gameRuleId; if (!gameRuleId) return; selectedGameRund.value = weeklyGameRules.value.find(n => { return n.id == gameRuleId; }); CKEDITOR.instances['game-rule-preview-editor'].setData(selectedGameRund.value?.content); modal.modal('show'); } const updateGameRule = async () => { const formData = new FormData(); formData.append('name', selectedGameRund.value.name); formData.append('game_type', 3); formData.append('content', CKEDITOR.instances['game-rule-preview-editor'].getData()); await axios.post(route('backoffice.game-rule.store'), formData); $(previewGameRuleModal.value).modal('hide'); } onMounted(async () => { await fetchGames().then(toolTip); await getWeeklyGameRules(); }); return { updateGameRule, previewGameRuleModal, selectedGameRund, previewGameRule, gameOpenCloseDateTimeForm, weeklyGameRules, gameType, undoGameRoundResult, paticipantLimitInputErrMsg, validateInput, paticipantLimitInput, costWalletTypeStr, addGameForm, removeGame, editGameFormSubmit, editGameForm, editGame, filteredGames, addMode, editMode, toggleAddMode, toggleEditMode, addGameFormSubmit, games, route } } }).mount('#main-app'); </script> @endsection
© 2017 -
ZeroByte.ID
.