From e511d005896d93bf4da35677979c27d2839a8b85 Mon Sep 17 00:00:00 2001 From: tanxiah Date: Mon, 28 Mar 2022 11:06:17 +0800 Subject: [PATCH] CR --- .gitignore | 15 + LICENSE | 661 +++++ README.md | 64 + cloudfunctionTemplate/cloud.json | 41 + cloudfunctions/cloud/config.json | 5 + cloudfunctions/cloud/config/biz_config.js | 10 + cloudfunctions/cloud/config/config.js | 40 + cloudfunctions/cloud/config/msg_config.js | 20 + cloudfunctions/cloud/config/route.js | 92 + .../cloud/framework/client/controller.js | 17 + .../cloud/framework/cloud/cloud_base.js | 22 + .../cloud/framework/cloud/cloud_util.js | 166 ++ .../cloud/framework/core/app_code.js | 17 + .../cloud/framework/core/app_error.js | 18 + .../cloud/framework/core/app_job.js | 155 ++ .../cloud/framework/core/app_other.js | 37 + .../cloud/framework/core/app_util.js | 60 + .../cloud/framework/core/application.js | 163 ++ .../cloud/framework/database/db_util.js | 1064 ++++++++ .../cloud/framework/database/model.js | 659 +++++ .../cloud/framework/database/mysql_util.js | 501 ++++ .../cloud/framework/lib/faker_lib.js | 798 ++++++ .../cloud/framework/lib/http_lib.js | 88 + cloudfunctions/cloud/framework/lib/md5_lib.js | 216 ++ .../cloud/framework/lib/mini_lib.js | 50 + .../cloud/framework/utils/cache_util.js | 111 + .../cloud/framework/utils/constant.js | 8 + .../cloud/framework/utils/data_util.js | 434 ++++ .../cloud/framework/utils/log_util.js | 100 + .../cloud/framework/utils/math_util.js | 35 + .../cloud/framework/utils/time_util.js | 350 +++ cloudfunctions/cloud/framework/utils/util.js | 45 + .../cloud/framework/validate/content_check.js | 144 ++ .../cloud/framework/validate/data_check.js | 631 +++++ cloudfunctions/cloud/index.js | 6 + cloudfunctions/cloud/package-lock.json | 2276 +++++++++++++++++ cloudfunctions/cloud/package.json | 17 + .../admin/admin_export_controller.js | 120 + .../controller/admin/admin_home_controller.js | 52 + .../controller/admin/admin_meet_controller.js | 475 ++++ .../controller/admin/admin_mgr_controller.js | 52 + .../controller/admin/admin_news_controller.js | 257 ++ .../admin/admin_order_controller.js | 122 + .../admin/admin_setup_controller.js | 58 + .../controller/admin/admin_user_controller.js | 101 + .../controller/admin/base_admin_controller.js | 56 + .../project/controller/base_controller.js | 80 + .../project/controller/check_controller.js | 31 + .../project/controller/home_controller.js | 30 + .../project/controller/meet_controller.js | 323 +++ .../cloud/project/controller/my_controller.js | 14 + .../project/controller/news_controller.js | 108 + .../project/controller/passport_controller.js | 63 + .../controller/test/test_controller.js | 20 + .../controller/test/test_meet_controller.js | 255 ++ .../cloud/project/model/admin_model.js | 44 + .../cloud/project/model/base_model.js | 284 ++ .../cloud/project/model/cache_model.js | 35 + .../cloud/project/model/day_model.js | 52 + .../cloud/project/model/export_model.js | 33 + .../cloud/project/model/join_model.js | 78 + .../cloud/project/model/log_model.js | 51 + .../cloud/project/model/meet_model.js | 78 + .../cloud/project/model/news_model.js | 55 + .../cloud/project/model/setup_model.js | 44 + .../cloud/project/model/temp_model.js | 35 + .../cloud/project/model/user_model.js | 57 + .../service/admin/admin_export_service.js | 80 + .../service/admin/admin_home_service.js | 101 + .../service/admin/admin_meet_service.js | 311 +++ .../service/admin/admin_mgr_service.js | 61 + .../service/admin/admin_news_service.js | 163 ++ .../service/admin/admin_setup_service.js | 64 + .../service/admin/admin_temp_service.js | 48 + .../service/admin/admin_user_service.js | 105 + .../service/admin/base_admin_service.js | 138 + .../cloud/project/service/base_service.js | 168 ++ .../cloud/project/service/data_service.js | 129 + .../cloud/project/service/home_service.js | 33 + .../cloud/project/service/meet_service.js | 789 ++++++ .../cloud/project/service/news_service.js | 96 + .../cloud/project/service/passport_service.js | 88 + ...6\345\217\260\351\246\226\351\241\265.png" | Bin 0 -> 52497 bytes ...4\347\272\246\347\256\241\347\220\206.png" | Bin 0 -> 59521 bytes ...4\347\272\246\346\267\273\345\212\240.png" | Bin 0 -> 66874 bytes ...5\345\215\201\344\272\214\346\214\207.png" | Bin 0 -> 63973 bytes ...\347\220\206-\350\217\234\345\215\225.png" | Bin 0 -> 39071 bytes ...5\345\215\225\345\257\274\345\207\272.png" | Bin 0 -> 77607 bytes ...5\345\220\215\345\220\215\345\215\225.png" | Bin 0 -> 48117 bytes ...5\345\220\215\347\256\241\347\220\206.png" | Bin 0 -> 37694 bytes ...5\345\256\271\347\256\241\347\220\206.png" | Bin 0 -> 62783 bytes "demo/1\351\246\226\351\241\265.png" | Bin 0 -> 215150 bytes ...5\345\256\271\346\267\273\345\212\240.png" | Bin 0 -> 54847 bytes ...2\347\226\253\345\212\250\346\200\201.png" | Bin 0 -> 228545 bytes ...4\347\272\246\346\227\245\345\216\206.png" | Bin 0 -> 91105 bytes "demo/4\346\210\221\347\232\204.png" | Bin 0 -> 65055 bytes ...4\347\272\246\350\247\204\345\210\231.png" | Bin 0 -> 149317 bytes ...0\351\205\270\345\217\210\350\246\201.png" | Bin 0 -> 215378 bytes ...4\347\272\246\350\257\246\346\203\205.png" | Bin 0 -> 64555 bytes ...4\347\272\246\346\210\220\345\212\237.png" | Bin 0 -> 32260 bytes ...4\347\272\246\350\257\246\346\203\205.png" | Bin 0 -> 54196 bytes demo/author-base.png | Bin 0 -> 117010 bytes .../\344\272\214\347\273\264\347\240\201.png" | Bin 0 -> 189719 bytes miniprogram/app.js | 47 + miniprogram/app.json | 102 + miniprogram/app.wxss | 2 + miniprogram/behavior/about_contact_bh.js | 92 + miniprogram/behavior/about_index_bh.js | 92 + miniprogram/behavior/calendar_index_bh.js | 134 + miniprogram/behavior/default_index_bh.js | 76 + miniprogram/behavior/meet_detail_bh.js | 227 ++ miniprogram/behavior/meet_index_bh.js | 108 + miniprogram/behavior/meet_join_bh.js | 175 ++ miniprogram/behavior/meet_self_bh.js | 91 + miniprogram/behavior/my_edit_bh.js | 188 ++ miniprogram/behavior/my_index_bh.js | 133 + miniprogram/behavior/my_join_bh.js | 156 ++ miniprogram/behavior/my_join_detail_bh.js | 159 ++ miniprogram/behavior/news_detail_bh.js | 112 + miniprogram/behavior/news_index_bh.js | 125 + miniprogram/behavior/public_hint_bh.js | 64 + miniprogram/behavior/search_bh.js | 132 + miniprogram/biz/admin_biz.js | 106 + miniprogram/biz/admin_meet_biz.js | 522 ++++ miniprogram/biz/admin_news_biz.js | 175 ++ miniprogram/biz/base_biz.js | 12 + miniprogram/biz/biz_helper.js | 36 + miniprogram/biz/constants.js | 10 + miniprogram/biz/meet_biz.js | 42 + miniprogram/biz/news_biz.js | 34 + miniprogram/biz/passport_biz.js | 96 + miniprogram/biz/search_biz.js | 56 + miniprogram/cmpts/biz/foot/foot_cmpt.js | 61 + miniprogram/cmpts/biz/foot/foot_cmpt.json | 4 + miniprogram/cmpts/biz/foot/foot_cmpt.wxml | 4 + miniprogram/cmpts/biz/foot/foot_cmpt.wxss | 13 + miniprogram/cmpts/biz/test/test_cmpt.js | 27 + miniprogram/cmpts/biz/test/test_cmpt.json | 4 + miniprogram/cmpts/biz/test/test_cmpt.wxml | 13 + miniprogram/cmpts/biz/test/test_cmpt.wxss | 0 .../lib/wxa-plugin-canvas/index/index.js | 712 ++++++ .../lib/wxa-plugin-canvas/index/index.json | 3 + .../lib/wxa-plugin-canvas/index/index.wxml | 4 + .../lib/wxa-plugin-canvas/index/index.wxss | 16 + .../lib/wxa-plugin-canvas/poster/index.js | 95 + .../lib/wxa-plugin-canvas/poster/index.json | 6 + .../lib/wxa-plugin-canvas/poster/index.wxml | 4 + .../lib/wxa-plugin-canvas/poster/index.wxss | 0 .../lib/wxa-plugin-canvas/poster/poster.js | 29 + .../calendar_comm/calendar_comm_cmpt.js | 145 ++ .../calendar_comm/calendar_comm_cmpt.json | 4 + .../calendar_comm/calendar_comm_cmpt.wxml | 67 + .../calendar_comm/calendar_comm_cmpt.wxss | 215 ++ .../public/calendar/calendar_comm/din.wxss | 8 + .../cmpts/public/calendar/calendar_lib.js | 471 ++++ .../calendar_meet/calendar_meet_cmpt.js | 168 ++ .../calendar_meet/calendar_meet_cmpt.json | 4 + .../calendar_meet/calendar_meet_cmpt.wxml | 61 + .../calendar_meet/calendar_meet_cmpt.wxss | 258 ++ .../cmpts/public/checkbox/checkbox_cmpt.js | 80 + .../cmpts/public/checkbox/checkbox_cmpt.json | 4 + .../cmpts/public/checkbox/checkbox_cmpt.wxml | 9 + .../cmpts/public/checkbox/checkbox_cmpt.wxss | 43 + .../cmpts/public/editor/editor_cmpt.js | 185 ++ .../cmpts/public/editor/editor_cmpt.json | 4 + .../cmpts/public/editor/editor_cmpt.wxml | 25 + .../cmpts/public/editor/editor_cmpt.wxss | 146 ++ .../form/form_set/field/form_set_field.js | 260 ++ .../form/form_set/field/form_set_field.json | 10 + .../form/form_set/field/form_set_field.wxml | 90 + .../form/form_set/field/form_set_field.wxss | 34 + .../public/form/form_set/form_set_cmpt.js | 95 + .../public/form/form_set/form_set_cmpt.json | 4 + .../public/form/form_set/form_set_cmpt.wxml | 36 + .../public/form/form_set/form_set_cmpt.wxss | 60 + .../cmpts/public/form/form_set_helper.js | 273 ++ .../public/form/form_show/form_show_cmpt.js | 326 +++ .../public/form/form_show/form_show_cmpt.json | 6 + .../public/form/form_show/form_show_cmpt.wxml | 177 ++ .../public/form/form_show/form_show_cmpt.wxss | 62 + .../cmpts/public/img/img_upload_cmpt.js | 147 ++ .../cmpts/public/img/img_upload_cmpt.json | 4 + .../cmpts/public/img/img_upload_cmpt.wxml | 25 + .../cmpts/public/img/img_upload_cmpt.wxss | 12 + .../cmpts/public/list/comm_list_cmpt.js | 447 ++++ .../cmpts/public/list/comm_list_cmpt.json | 4 + .../cmpts/public/list/comm_list_cmpt.wxml | 84 + .../cmpts/public/list/comm_list_cmpt.wxss | 118 + miniprogram/cmpts/public/modal/modal_cmpt.js | 80 + .../cmpts/public/modal/modal_cmpt.json | 4 + .../cmpts/public/modal/modal_cmpt.wxml | 89 + .../cmpts/public/modal/modal_cmpt.wxss | 67 + .../cmpts/public/picker/picker_cmpt.js | 296 +++ .../cmpts/public/picker/picker_cmpt.json | 4 + .../cmpts/public/picker/picker_cmpt.wxml | 14 + .../cmpts/public/picker/picker_cmpt.wxss | 36 + .../public/picker_multi/picker_multi_cmpt.js | 413 +++ .../picker_multi/picker_multi_cmpt.json | 4 + .../picker_multi/picker_multi_cmpt.wxml | 17 + .../picker_multi/picker_multi_cmpt.wxss | 9 + .../public/picker_time/datetime_picker.js | 132 + .../public/picker_time/picker_time_cmpt.js | 203 ++ .../public/picker_time/picker_time_cmpt.json | 4 + .../public/picker_time/picker_time_cmpt.wxml | 11 + .../public/picker_time/picker_time_cmpt.wxss | 1 + .../cmpts/public/poster/images/friend.png | Bin 0 -> 4726 bytes .../cmpts/public/poster/images/wechat.png | Bin 0 -> 3431 bytes .../cmpts/public/poster/poster_cmpt.js | 176 ++ .../cmpts/public/poster/poster_cmpt.json | 6 + .../cmpts/public/poster/poster_cmpt.wxml | 34 + .../cmpts/public/poster/poster_cmpt.wxss | 67 + .../poster/wxa-plugin-canvas/index/index.js | 712 ++++++ .../poster/wxa-plugin-canvas/index/index.json | 3 + .../poster/wxa-plugin-canvas/index/index.wxml | 4 + .../poster/wxa-plugin-canvas/index/index.wxss | 16 + .../poster/wxa-plugin-canvas/poster/index.js | 95 + .../wxa-plugin-canvas/poster/index.json | 6 + .../wxa-plugin-canvas/poster/index.wxml | 4 + .../wxa-plugin-canvas/poster/index.wxss | 0 .../poster/wxa-plugin-canvas/poster/poster.js | 29 + miniprogram/cmpts/public/table/table_cmpt.js | 90 + .../cmpts/public/table/table_cmpt.json | 4 + .../cmpts/public/table/table_cmpt.wxml | 25 + .../cmpts/public/table/table_cmpt.wxss | 91 + miniprogram/helper/cache_helper.js | 84 + miniprogram/helper/cloud_helper.js | 366 +++ miniprogram/helper/content_check_helper.js | 113 + miniprogram/helper/data_helper.js | 414 +++ miniprogram/helper/file_helper.js | 44 + miniprogram/helper/form_helper.js | 40 + miniprogram/helper/helper.js | 65 + miniprogram/helper/page_helper.js | 943 +++++++ miniprogram/helper/pic_helper.js | 81 + miniprogram/helper/sys_helper.js | 93 + miniprogram/helper/time_helper.js | 351 +++ miniprogram/helper/validate.js | 630 +++++ miniprogram/images/default_cover_pic.gif | Bin 0 -> 3206 bytes miniprogram/lib/tools/base64_lib.js | 135 + miniprogram/lib/tools/lunar_lib.js | 306 +++ miniprogram/lib/tools/qrcode_lib.js | 1604 ++++++++++++ .../pages/admin/content/admin_content.js | 100 + .../pages/admin/content/admin_content.json | 8 + .../pages/admin/content/admin_content.wxml | 15 + .../pages/admin/content/admin_content.wxss | 35 + .../pages/admin/index/home/admin_home.js | 125 + .../pages/admin/index/home/admin_home.json | 9 + .../pages/admin/index/home/admin_home.wxml | 91 + .../pages/admin/index/home/admin_home.wxss | 79 + .../pages/admin/index/login/admin_login.js | 62 + .../pages/admin/index/login/admin_login.json | 8 + .../pages/admin/index/login/admin_login.wxml | 28 + .../pages/admin/index/login/admin_login.wxss | 71 + .../admin/meet/content/admin_meet_content.js | 95 + .../meet/content/admin_meet_content.json | 8 + .../meet/content/admin_meet_content.wxml | 15 + .../meet/content/admin_meet_content.wxss | 35 + .../admin/meet/cover/admin_meet_cover.js | 130 + .../admin/meet/cover/admin_meet_cover.json | 7 + .../admin/meet/cover/admin_meet_cover.wxml | 70 + .../admin/meet/cover/admin_meet_cover.wxss | 76 + .../pages/admin/meet/edit/admin_meet_edit.js | 286 +++ .../admin/meet/edit/admin_meet_edit.json | 11 + .../admin/meet/edit/admin_meet_edit.wxml | 72 + .../admin/meet/edit/admin_meet_edit.wxss | 72 + .../admin/meet/export/admin_join_export.js | 158 ++ .../admin/meet/export/admin_join_export.json | 9 + .../admin/meet/export/admin_join_export.wxml | 63 + .../admin/meet/export/admin_join_export.wxss | 12 + .../pages/admin/meet/join/admin_meet_join.js | 483 ++++ .../admin/meet/join/admin_meet_join.json | 8 + .../admin/meet/join/admin_meet_join.wxml | 139 + .../admin/meet/join/admin_meet_join.wxss | 150 ++ .../pages/admin/meet/list/admin_meet_list.js | 270 ++ .../admin/meet/list/admin_meet_list.json | 9 + .../admin/meet/list/admin_meet_list.wxml | 74 + .../admin/meet/list/admin_meet_list.wxss | 6 + .../admin/meet/record/admin_record_list.js | 183 ++ .../admin/meet/record/admin_record_list.json | 9 + .../admin/meet/record/admin_record_list.wxml | 67 + .../admin/meet/record/admin_record_list.wxss | 12 + .../pages/admin/meet/scan/admin_meet_scan.js | 94 + .../admin/meet/scan/admin_meet_scan.json | 9 + .../admin/meet/scan/admin_meet_scan.wxml | 22 + .../admin/meet/scan/admin_meet_scan.wxss | 36 + .../pages/admin/meet/self/admin_meet_self.js | 97 + .../admin/meet/self/admin_meet_self.json | 9 + .../admin/meet/self/admin_meet_self.wxml | 28 + .../admin/meet/self/admin_meet_self.wxss | 44 + .../admin/meet/temp/admin_temp_select.js | 196 ++ .../admin/meet/temp/admin_temp_select.json | 9 + .../admin/meet/temp/admin_temp_select.wxml | 44 + .../admin/meet/temp/admin_temp_select.wxss | 76 + .../pages/admin/meet/time/admin_meet_time.js | 591 +++++ .../admin/meet/time/admin_meet_time.json | 9 + .../admin/meet/time/admin_meet_time.wxml | 111 + .../admin/meet/time/admin_meet_time.wxss | 189 ++ .../pages/admin/mgr/log/admin_log_list.js | 98 + .../pages/admin/mgr/log/admin_log_list.json | 8 + .../pages/admin/mgr/log/admin_log_list.wxml | 45 + .../pages/admin/mgr/log/admin_log_list.wxss | 9 + .../pages/admin/news/add/admin_news_add.js | 145 ++ .../pages/admin/news/add/admin_news_add.json | 9 + .../pages/admin/news/add/admin_news_add.wxml | 7 + .../pages/admin/news/add/admin_news_add.wxss | 2 + .../pages/admin/news/admin_news_form_tpl.wxml | 74 + .../admin/news/content/admin_news_content.js | 66 + .../news/content/admin_news_content.json | 3 + .../news/content/admin_news_content.wxml | 2 + .../news/content/admin_news_content.wxss | 1 + .../pages/admin/news/edit/admin_news_edit.js | 205 ++ .../admin/news/edit/admin_news_edit.json | 9 + .../admin/news/edit/admin_news_edit.wxml | 9 + .../admin/news/edit/admin_news_edit.wxss | 1 + .../pages/admin/news/list/admin_news_list.js | 200 ++ .../admin/news/list/admin_news_list.json | 8 + .../admin/news/list/admin_news_list.wxml | 75 + .../admin/news/list/admin_news_list.wxss | 6 + .../admin/setup/about/admin_setup_about.js | 135 + .../admin/setup/about/admin_setup_about.json | 9 + .../admin/setup/about/admin_setup_about.wxml | 25 + .../admin/setup/about/admin_setup_about.wxss | 14 + .../setup/contact/admin_setup_contact.js | 142 + .../setup/contact/admin_setup_contact.json | 9 + .../setup/contact/admin_setup_contact.wxml | 31 + .../setup/contact/admin_setup_contact.wxss | 18 + .../pages/admin/setup/qr/admin_setup_qr.js | 82 + .../pages/admin/setup/qr/admin_setup_qr.json | 9 + .../pages/admin/setup/qr/admin_setup_qr.wxml | 17 + .../pages/admin/setup/qr/admin_setup_qr.wxss | 33 + .../admin/user/export/admin_user_export.js | 150 ++ .../admin/user/export/admin_user_export.json | 9 + .../admin/user/export/admin_user_export.wxml | 41 + .../admin/user/export/admin_user_export.wxss | 12 + .../pages/admin/user/list/admin_user_list.js | 141 + .../admin/user/list/admin_user_list.json | 9 + .../admin/user/list/admin_user_list.wxml | 70 + .../admin/user/list/admin_user_list.wxss | 5 + .../A00/about/contact/about_contact.js | 14 + .../A00/about/contact/about_contact.json | 6 + .../A00/about/contact/about_contact.wxml | 2 + .../A00/about/contact/about_contact.wxss | 3 + .../projects/A00/about/index/about_index.js | 14 + .../projects/A00/about/index/about_index.json | 6 + .../projects/A00/about/index/about_index.wxml | 2 + .../projects/A00/about/index/about_index.wxss | 6 + .../A00/calendar/index/calendar_index.js | 16 + .../A00/calendar/index/calendar_index.json | 7 + .../A00/calendar/index/calendar_index.wxml | 2 + .../A00/calendar/index/calendar_index.wxss | 2 + .../A00/default/index/default_index.js | 17 + .../A00/default/index/default_index.json | 7 + .../A00/default/index/default_index.wxml | 2 + .../A00/default/index/default_index.wxss | 16 + .../projects/A00/meet/detail/meet_detail.js | 19 + .../projects/A00/meet/detail/meet_detail.json | 6 + .../projects/A00/meet/detail/meet_detail.wxml | 2 + .../projects/A00/meet/detail/meet_detail.wxss | 320 +++ .../projects/A00/meet/index/meet_index.js | 18 + .../projects/A00/meet/index/meet_index.json | 6 + .../projects/A00/meet/index/meet_index.wxml | 5 + .../projects/A00/meet/index/meet_index.wxss | 11 + .../projects/A00/meet/join/meet_join.js | 14 + .../projects/A00/meet/join/meet_join.json | 7 + .../projects/A00/meet/join/meet_join.wxml | 3 + .../projects/A00/meet/join/meet_join.wxss | 3 + .../projects/A00/meet/self/meet_self.js | 14 + .../projects/A00/meet/self/meet_self.json | 5 + .../projects/A00/meet/self/meet_self.wxml | 2 + .../projects/A00/meet/self/meet_self.wxss | 3 + miniprogram/projects/A00/my/edit/my_edit.js | 14 + miniprogram/projects/A00/my/edit/my_edit.json | 6 + miniprogram/projects/A00/my/edit/my_edit.wxml | 2 + miniprogram/projects/A00/my/edit/my_edit.wxss | 11 + miniprogram/projects/A00/my/index/my_index.js | 21 + .../projects/A00/my/index/my_index.json | 7 + .../projects/A00/my/index/my_index.wxml | 2 + .../projects/A00/my/index/my_index.wxss | 22 + miniprogram/projects/A00/my/join/my_join.js | 17 + miniprogram/projects/A00/my/join/my_join.json | 6 + miniprogram/projects/A00/my/join/my_join.wxml | 2 + miniprogram/projects/A00/my/join/my_join.wxss | 4 + .../A00/my/join_detail/my_join_detail.js | 15 + .../A00/my/join_detail/my_join_detail.json | 6 + .../A00/my/join_detail/my_join_detail.wxml | 2 + .../A00/my/join_detail/my_join_detail.wxss | 4 + .../projects/A00/news/cate1/news_cate1.js | 20 + .../projects/A00/news/cate1/news_cate1.json | 6 + .../projects/A00/news/cate1/news_cate1.wxml | 2 + .../projects/A00/news/cate1/news_cate1.wxss | 4 + .../projects/A00/news/cate2/news_cate2.js | 20 + .../projects/A00/news/cate2/news_cate2.json | 6 + .../projects/A00/news/cate2/news_cate2.wxml | 2 + .../projects/A00/news/cate2/news_cate2.wxss | 4 + .../projects/A00/news/detail/news_detail.js | 14 + .../projects/A00/news/detail/news_detail.json | 6 + .../projects/A00/news/detail/news_detail.wxml | 2 + .../projects/A00/news/detail/news_detail.wxss | 4 + .../projects/A00/news/index/news_index.js | 20 + .../projects/A00/news/index/news_index.json | 6 + .../projects/A00/news/index/news_index.wxml | 5 + .../projects/A00/news/index/news_index.wxss | 4 + miniprogram/projects/A00/search/search.js | 14 + miniprogram/projects/A00/search/search.json | 3 + miniprogram/projects/A00/search/search.wxml | 2 + miniprogram/projects/A00/search/search.wxss | 2 + .../A00/skin/images/default_index_bg.jpg | Bin 0 -> 51221 bytes .../projects/A00/skin/images/menu/meet_1.png | Bin 0 -> 29143 bytes .../projects/A00/skin/images/menu/news_1.png | Bin 0 -> 6254 bytes .../projects/A00/skin/images/menu/news_2.png | Bin 0 -> 3403 bytes .../projects/A00/skin/images/tabbar/cate1.png | Bin 0 -> 30612 bytes .../A00/skin/images/tabbar/cate1_cur.png | Bin 0 -> 6254 bytes .../projects/A00/skin/images/tabbar/cate2.png | Bin 0 -> 25218 bytes .../A00/skin/images/tabbar/cate2_cur.png | Bin 0 -> 3403 bytes .../projects/A00/skin/images/tabbar/day.png | Bin 0 -> 25017 bytes .../A00/skin/images/tabbar/day_cur.png | Bin 0 -> 3318 bytes .../projects/A00/skin/images/tabbar/home.png | Bin 0 -> 22226 bytes .../A00/skin/images/tabbar/home_cur.png | Bin 0 -> 1636 bytes .../projects/A00/skin/images/tabbar/my.png | Bin 0 -> 26875 bytes .../A00/skin/images/tabbar/my_cur.png | Bin 0 -> 4318 bytes miniprogram/projects/A00/skin/skin.js | 43 + miniprogram/projects/A00/skin/skin.wxss | 99 + miniprogram/setting/setting.js | 43 + miniprogram/sitemap.json | 7 + miniprogram/style/comm/animation.wxss | 184 ++ miniprogram/style/comm/avatar.wxss | 72 + miniprogram/style/comm/background.wxss | 184 ++ miniprogram/style/comm/bar.wxss | 345 +++ miniprogram/style/comm/base.wxss | 96 + miniprogram/style/comm/border.wxss | 152 ++ miniprogram/style/comm/button.wxss | 130 + miniprogram/style/comm/comm.wxss | 19 + miniprogram/style/comm/form.wxss | 600 +++++ miniprogram/style/comm/icon.wxss | 1224 +++++++++ miniprogram/style/comm/image.wxss | 41 + miniprogram/style/comm/layout.wxss | 525 ++++ miniprogram/style/comm/list.wxss | 305 +++ miniprogram/style/comm/load.wxss | 245 ++ miniprogram/style/comm/modal.wxss | 213 ++ miniprogram/style/comm/nav.wxss | 25 + miniprogram/style/comm/shadow.wxss | 127 + miniprogram/style/comm/table.wxss | 215 ++ miniprogram/style/comm/tag.wxss | 139 + miniprogram/style/comm/text.wxss | 201 ++ .../style/project/about_contact_base.wxss | 4 + .../style/project/about_index_base.wxss | 78 + miniprogram/style/project/base/admin.wxss | 322 +++ miniprogram/style/project/base/appt.wxss | 420 +++ .../style/project/base/article_list.wxss | 326 +++ miniprogram/style/project/base/detail.wxss | 397 +++ miniprogram/style/project/base/project.wxss | 192 ++ .../style/project/calendar_index_base.wxss | 73 + .../style/project/default_index_base.wxss | 73 + .../style/project/meet_detail_base.wxss | 317 +++ .../style/project/meet_index_base.wxss | 0 miniprogram/style/project/meet_join_base.wxss | 12 + miniprogram/style/project/meet_self_base.wxss | 3 + miniprogram/style/project/my_edit_base.wxss | 8 + miniprogram/style/project/my_index_base.wxss | 192 ++ miniprogram/style/project/my_join_base.wxss | 59 + .../style/project/my_join_detail_base.wxss | 108 + .../style/project/news_detail_base.wxss | 0 .../style/project/news_index_base.wxss | 0 miniprogram/style/project/search_base.wxss | 60 + .../tpls/project/about_contact_tpl.wxml | 43 + miniprogram/tpls/project/about_index_tpl.wxml | 25 + .../tpls/project/calendar_index_tpl.wxml | 32 + .../tpls/project/default_index_tpl.wxml | 37 + miniprogram/tpls/project/meet_detail_tpl.wxml | 94 + miniprogram/tpls/project/meet_index_tpl.wxml | 23 + miniprogram/tpls/project/meet_join_tpl.wxml | 33 + miniprogram/tpls/project/meet_self_tpl.wxml | 3 + miniprogram/tpls/project/my_edit_tpl.wxml | 43 + miniprogram/tpls/project/my_index_tpl.wxml | 114 + .../tpls/project/my_join_detail_tpl.wxml | 66 + miniprogram/tpls/project/my_join_tpl.wxml | 52 + miniprogram/tpls/project/news_detail_tpl.wxml | 40 + miniprogram/tpls/project/news_index_tpl.wxml | 23 + miniprogram/tpls/project/search_tpl.wxml | 25 + miniprogram/tpls/public/base_list_tpl.wxml | 80 + miniprogram/tpls/public/list_load_tpl.wxml | 17 + miniprogram/tpls/public/menu_tpl.wxml | 35 + miniprogram/tpls/public/top_tpl.wxml | 6 + miniprogram/tpls/wxs/tools.wxs | 21 + project.config.json | 62 + project.private.config.json | 18 + ...\347\224\250\346\211\213\345\206\214.docx" | Bin 0 -> 712024 bytes 486 files changed, 47342 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 cloudfunctionTemplate/cloud.json create mode 100644 cloudfunctions/cloud/config.json create mode 100644 cloudfunctions/cloud/config/biz_config.js create mode 100644 cloudfunctions/cloud/config/config.js create mode 100644 cloudfunctions/cloud/config/msg_config.js create mode 100644 cloudfunctions/cloud/config/route.js create mode 100644 cloudfunctions/cloud/framework/client/controller.js create mode 100644 cloudfunctions/cloud/framework/cloud/cloud_base.js create mode 100644 cloudfunctions/cloud/framework/cloud/cloud_util.js create mode 100644 cloudfunctions/cloud/framework/core/app_code.js create mode 100644 cloudfunctions/cloud/framework/core/app_error.js create mode 100644 cloudfunctions/cloud/framework/core/app_job.js create mode 100644 cloudfunctions/cloud/framework/core/app_other.js create mode 100644 cloudfunctions/cloud/framework/core/app_util.js create mode 100644 cloudfunctions/cloud/framework/core/application.js create mode 100644 cloudfunctions/cloud/framework/database/db_util.js create mode 100644 cloudfunctions/cloud/framework/database/model.js create mode 100644 cloudfunctions/cloud/framework/database/mysql_util.js create mode 100644 cloudfunctions/cloud/framework/lib/faker_lib.js create mode 100644 cloudfunctions/cloud/framework/lib/http_lib.js create mode 100644 cloudfunctions/cloud/framework/lib/md5_lib.js create mode 100644 cloudfunctions/cloud/framework/lib/mini_lib.js create mode 100644 cloudfunctions/cloud/framework/utils/cache_util.js create mode 100644 cloudfunctions/cloud/framework/utils/constant.js create mode 100644 cloudfunctions/cloud/framework/utils/data_util.js create mode 100644 cloudfunctions/cloud/framework/utils/log_util.js create mode 100644 cloudfunctions/cloud/framework/utils/math_util.js create mode 100644 cloudfunctions/cloud/framework/utils/time_util.js create mode 100644 cloudfunctions/cloud/framework/utils/util.js create mode 100644 cloudfunctions/cloud/framework/validate/content_check.js create mode 100644 cloudfunctions/cloud/framework/validate/data_check.js create mode 100644 cloudfunctions/cloud/index.js create mode 100644 cloudfunctions/cloud/package-lock.json create mode 100644 cloudfunctions/cloud/package.json create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_export_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_home_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_meet_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_mgr_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_news_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_order_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_setup_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/admin_user_controller.js create mode 100644 cloudfunctions/cloud/project/controller/admin/base_admin_controller.js create mode 100644 cloudfunctions/cloud/project/controller/base_controller.js create mode 100644 cloudfunctions/cloud/project/controller/check_controller.js create mode 100644 cloudfunctions/cloud/project/controller/home_controller.js create mode 100644 cloudfunctions/cloud/project/controller/meet_controller.js create mode 100644 cloudfunctions/cloud/project/controller/my_controller.js create mode 100644 cloudfunctions/cloud/project/controller/news_controller.js create mode 100644 cloudfunctions/cloud/project/controller/passport_controller.js create mode 100644 cloudfunctions/cloud/project/controller/test/test_controller.js create mode 100644 cloudfunctions/cloud/project/controller/test/test_meet_controller.js create mode 100644 cloudfunctions/cloud/project/model/admin_model.js create mode 100644 cloudfunctions/cloud/project/model/base_model.js create mode 100644 cloudfunctions/cloud/project/model/cache_model.js create mode 100644 cloudfunctions/cloud/project/model/day_model.js create mode 100644 cloudfunctions/cloud/project/model/export_model.js create mode 100644 cloudfunctions/cloud/project/model/join_model.js create mode 100644 cloudfunctions/cloud/project/model/log_model.js create mode 100644 cloudfunctions/cloud/project/model/meet_model.js create mode 100644 cloudfunctions/cloud/project/model/news_model.js create mode 100644 cloudfunctions/cloud/project/model/setup_model.js create mode 100644 cloudfunctions/cloud/project/model/temp_model.js create mode 100644 cloudfunctions/cloud/project/model/user_model.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_export_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_home_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_meet_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_mgr_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_news_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_setup_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_temp_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/admin_user_service.js create mode 100644 cloudfunctions/cloud/project/service/admin/base_admin_service.js create mode 100644 cloudfunctions/cloud/project/service/base_service.js create mode 100644 cloudfunctions/cloud/project/service/data_service.js create mode 100644 cloudfunctions/cloud/project/service/home_service.js create mode 100644 cloudfunctions/cloud/project/service/meet_service.js create mode 100644 cloudfunctions/cloud/project/service/news_service.js create mode 100644 cloudfunctions/cloud/project/service/passport_service.js create mode 100644 "demo/10\345\220\216\345\217\260\351\246\226\351\241\265.png" create mode 100644 "demo/12\345\220\216\345\217\260\351\242\204\347\272\246\347\256\241\347\220\206.png" create mode 100644 "demo/13\345\220\216\345\217\260\351\242\204\347\272\246\346\267\273\345\212\240.png" create mode 100644 "demo/14\345\220\216\345\217\260\351\242\204\347\272\246\346\227\266\346\256\265\345\215\201\344\272\214\346\214\207.png" create mode 100644 "demo/15\345\220\216\345\217\260-\351\242\204\347\272\246\347\256\241\347\220\206-\350\217\234\345\215\225.png" create mode 100644 "demo/16\345\220\216\345\217\260-\351\242\204\347\272\246\345\220\215\345\215\225\345\257\274\345\207\272.png" create mode 100644 "demo/17\345\220\216\345\217\260-\351\242\204\347\272\246\346\212\245\345\220\215\345\220\215\345\215\225.png" create mode 100644 "demo/17\345\220\216\345\217\260-\351\242\204\347\272\246\346\212\245\345\220\215\347\256\241\347\220\206.png" create mode 100644 "demo/19\345\220\216\345\217\260-\345\206\205\345\256\271\347\256\241\347\220\206.png" create mode 100644 "demo/1\351\246\226\351\241\265.png" create mode 100644 "demo/20\345\220\216\345\217\260-\345\206\205\345\256\271\346\267\273\345\212\240.png" create mode 100644 "demo/2\351\230\262\347\226\253\345\212\250\346\200\201.png" create mode 100644 "demo/3\351\242\204\347\272\246\346\227\245\345\216\206.png" create mode 100644 "demo/4\346\210\221\347\232\204.png" create mode 100644 "demo/5\351\242\204\347\272\246\350\247\204\345\210\231.png" create mode 100644 "demo/6\346\240\270\351\205\270\345\217\210\350\246\201.png" create mode 100644 "demo/7\351\242\204\347\272\246\350\257\246\346\203\205.png" create mode 100644 "demo/8\351\242\204\347\272\246\346\210\220\345\212\237.png" create mode 100644 "demo/9\351\242\204\347\272\246\350\257\246\346\203\205.png" create mode 100644 demo/author-base.png create mode 100644 "demo/\344\272\214\347\273\264\347\240\201.png" create mode 100644 miniprogram/app.js create mode 100644 miniprogram/app.json create mode 100644 miniprogram/app.wxss create mode 100644 miniprogram/behavior/about_contact_bh.js create mode 100644 miniprogram/behavior/about_index_bh.js create mode 100644 miniprogram/behavior/calendar_index_bh.js create mode 100644 miniprogram/behavior/default_index_bh.js create mode 100644 miniprogram/behavior/meet_detail_bh.js create mode 100644 miniprogram/behavior/meet_index_bh.js create mode 100644 miniprogram/behavior/meet_join_bh.js create mode 100644 miniprogram/behavior/meet_self_bh.js create mode 100644 miniprogram/behavior/my_edit_bh.js create mode 100644 miniprogram/behavior/my_index_bh.js create mode 100644 miniprogram/behavior/my_join_bh.js create mode 100644 miniprogram/behavior/my_join_detail_bh.js create mode 100644 miniprogram/behavior/news_detail_bh.js create mode 100644 miniprogram/behavior/news_index_bh.js create mode 100644 miniprogram/behavior/public_hint_bh.js create mode 100644 miniprogram/behavior/search_bh.js create mode 100644 miniprogram/biz/admin_biz.js create mode 100644 miniprogram/biz/admin_meet_biz.js create mode 100644 miniprogram/biz/admin_news_biz.js create mode 100644 miniprogram/biz/base_biz.js create mode 100644 miniprogram/biz/biz_helper.js create mode 100644 miniprogram/biz/constants.js create mode 100644 miniprogram/biz/meet_biz.js create mode 100644 miniprogram/biz/news_biz.js create mode 100644 miniprogram/biz/passport_biz.js create mode 100644 miniprogram/biz/search_biz.js create mode 100644 miniprogram/cmpts/biz/foot/foot_cmpt.js create mode 100644 miniprogram/cmpts/biz/foot/foot_cmpt.json create mode 100644 miniprogram/cmpts/biz/foot/foot_cmpt.wxml create mode 100644 miniprogram/cmpts/biz/foot/foot_cmpt.wxss create mode 100644 miniprogram/cmpts/biz/test/test_cmpt.js create mode 100644 miniprogram/cmpts/biz/test/test_cmpt.json create mode 100644 miniprogram/cmpts/biz/test/test_cmpt.wxml create mode 100644 miniprogram/cmpts/biz/test/test_cmpt.wxss create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.js create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.json create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxml create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxss create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.js create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.json create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxml create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxss create mode 100644 miniprogram/cmpts/lib/wxa-plugin-canvas/poster/poster.js create mode 100644 miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.js create mode 100644 miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.json create mode 100644 miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxml create mode 100644 miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxss create mode 100644 miniprogram/cmpts/public/calendar/calendar_comm/din.wxss create mode 100644 miniprogram/cmpts/public/calendar/calendar_lib.js create mode 100644 miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.js create mode 100644 miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.json create mode 100644 miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxml create mode 100644 miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxss create mode 100644 miniprogram/cmpts/public/checkbox/checkbox_cmpt.js create mode 100644 miniprogram/cmpts/public/checkbox/checkbox_cmpt.json create mode 100644 miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxml create mode 100644 miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxss create mode 100644 miniprogram/cmpts/public/editor/editor_cmpt.js create mode 100644 miniprogram/cmpts/public/editor/editor_cmpt.json create mode 100644 miniprogram/cmpts/public/editor/editor_cmpt.wxml create mode 100644 miniprogram/cmpts/public/editor/editor_cmpt.wxss create mode 100644 miniprogram/cmpts/public/form/form_set/field/form_set_field.js create mode 100644 miniprogram/cmpts/public/form/form_set/field/form_set_field.json create mode 100644 miniprogram/cmpts/public/form/form_set/field/form_set_field.wxml create mode 100644 miniprogram/cmpts/public/form/form_set/field/form_set_field.wxss create mode 100644 miniprogram/cmpts/public/form/form_set/form_set_cmpt.js create mode 100644 miniprogram/cmpts/public/form/form_set/form_set_cmpt.json create mode 100644 miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxml create mode 100644 miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxss create mode 100644 miniprogram/cmpts/public/form/form_set_helper.js create mode 100644 miniprogram/cmpts/public/form/form_show/form_show_cmpt.js create mode 100644 miniprogram/cmpts/public/form/form_show/form_show_cmpt.json create mode 100644 miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxml create mode 100644 miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxss create mode 100644 miniprogram/cmpts/public/img/img_upload_cmpt.js create mode 100644 miniprogram/cmpts/public/img/img_upload_cmpt.json create mode 100644 miniprogram/cmpts/public/img/img_upload_cmpt.wxml create mode 100644 miniprogram/cmpts/public/img/img_upload_cmpt.wxss create mode 100644 miniprogram/cmpts/public/list/comm_list_cmpt.js create mode 100644 miniprogram/cmpts/public/list/comm_list_cmpt.json create mode 100644 miniprogram/cmpts/public/list/comm_list_cmpt.wxml create mode 100644 miniprogram/cmpts/public/list/comm_list_cmpt.wxss create mode 100644 miniprogram/cmpts/public/modal/modal_cmpt.js create mode 100644 miniprogram/cmpts/public/modal/modal_cmpt.json create mode 100644 miniprogram/cmpts/public/modal/modal_cmpt.wxml create mode 100644 miniprogram/cmpts/public/modal/modal_cmpt.wxss create mode 100644 miniprogram/cmpts/public/picker/picker_cmpt.js create mode 100644 miniprogram/cmpts/public/picker/picker_cmpt.json create mode 100644 miniprogram/cmpts/public/picker/picker_cmpt.wxml create mode 100644 miniprogram/cmpts/public/picker/picker_cmpt.wxss create mode 100644 miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.js create mode 100644 miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.json create mode 100644 miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxml create mode 100644 miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxss create mode 100644 miniprogram/cmpts/public/picker_time/datetime_picker.js create mode 100644 miniprogram/cmpts/public/picker_time/picker_time_cmpt.js create mode 100644 miniprogram/cmpts/public/picker_time/picker_time_cmpt.json create mode 100644 miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxml create mode 100644 miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxss create mode 100644 miniprogram/cmpts/public/poster/images/friend.png create mode 100644 miniprogram/cmpts/public/poster/images/wechat.png create mode 100644 miniprogram/cmpts/public/poster/poster_cmpt.js create mode 100644 miniprogram/cmpts/public/poster/poster_cmpt.json create mode 100644 miniprogram/cmpts/public/poster/poster_cmpt.wxml create mode 100644 miniprogram/cmpts/public/poster/poster_cmpt.wxss create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.js create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.json create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxml create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxss create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.js create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.json create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxml create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxss create mode 100644 miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/poster.js create mode 100644 miniprogram/cmpts/public/table/table_cmpt.js create mode 100644 miniprogram/cmpts/public/table/table_cmpt.json create mode 100644 miniprogram/cmpts/public/table/table_cmpt.wxml create mode 100644 miniprogram/cmpts/public/table/table_cmpt.wxss create mode 100644 miniprogram/helper/cache_helper.js create mode 100644 miniprogram/helper/cloud_helper.js create mode 100644 miniprogram/helper/content_check_helper.js create mode 100644 miniprogram/helper/data_helper.js create mode 100644 miniprogram/helper/file_helper.js create mode 100644 miniprogram/helper/form_helper.js create mode 100644 miniprogram/helper/helper.js create mode 100644 miniprogram/helper/page_helper.js create mode 100644 miniprogram/helper/pic_helper.js create mode 100644 miniprogram/helper/sys_helper.js create mode 100644 miniprogram/helper/time_helper.js create mode 100644 miniprogram/helper/validate.js create mode 100644 miniprogram/images/default_cover_pic.gif create mode 100644 miniprogram/lib/tools/base64_lib.js create mode 100644 miniprogram/lib/tools/lunar_lib.js create mode 100644 miniprogram/lib/tools/qrcode_lib.js create mode 100644 miniprogram/pages/admin/content/admin_content.js create mode 100644 miniprogram/pages/admin/content/admin_content.json create mode 100644 miniprogram/pages/admin/content/admin_content.wxml create mode 100644 miniprogram/pages/admin/content/admin_content.wxss create mode 100644 miniprogram/pages/admin/index/home/admin_home.js create mode 100644 miniprogram/pages/admin/index/home/admin_home.json create mode 100644 miniprogram/pages/admin/index/home/admin_home.wxml create mode 100644 miniprogram/pages/admin/index/home/admin_home.wxss create mode 100644 miniprogram/pages/admin/index/login/admin_login.js create mode 100644 miniprogram/pages/admin/index/login/admin_login.json create mode 100644 miniprogram/pages/admin/index/login/admin_login.wxml create mode 100644 miniprogram/pages/admin/index/login/admin_login.wxss create mode 100644 miniprogram/pages/admin/meet/content/admin_meet_content.js create mode 100644 miniprogram/pages/admin/meet/content/admin_meet_content.json create mode 100644 miniprogram/pages/admin/meet/content/admin_meet_content.wxml create mode 100644 miniprogram/pages/admin/meet/content/admin_meet_content.wxss create mode 100644 miniprogram/pages/admin/meet/cover/admin_meet_cover.js create mode 100644 miniprogram/pages/admin/meet/cover/admin_meet_cover.json create mode 100644 miniprogram/pages/admin/meet/cover/admin_meet_cover.wxml create mode 100644 miniprogram/pages/admin/meet/cover/admin_meet_cover.wxss create mode 100644 miniprogram/pages/admin/meet/edit/admin_meet_edit.js create mode 100644 miniprogram/pages/admin/meet/edit/admin_meet_edit.json create mode 100644 miniprogram/pages/admin/meet/edit/admin_meet_edit.wxml create mode 100644 miniprogram/pages/admin/meet/edit/admin_meet_edit.wxss create mode 100644 miniprogram/pages/admin/meet/export/admin_join_export.js create mode 100644 miniprogram/pages/admin/meet/export/admin_join_export.json create mode 100644 miniprogram/pages/admin/meet/export/admin_join_export.wxml create mode 100644 miniprogram/pages/admin/meet/export/admin_join_export.wxss create mode 100644 miniprogram/pages/admin/meet/join/admin_meet_join.js create mode 100644 miniprogram/pages/admin/meet/join/admin_meet_join.json create mode 100644 miniprogram/pages/admin/meet/join/admin_meet_join.wxml create mode 100644 miniprogram/pages/admin/meet/join/admin_meet_join.wxss create mode 100644 miniprogram/pages/admin/meet/list/admin_meet_list.js create mode 100644 miniprogram/pages/admin/meet/list/admin_meet_list.json create mode 100644 miniprogram/pages/admin/meet/list/admin_meet_list.wxml create mode 100644 miniprogram/pages/admin/meet/list/admin_meet_list.wxss create mode 100644 miniprogram/pages/admin/meet/record/admin_record_list.js create mode 100644 miniprogram/pages/admin/meet/record/admin_record_list.json create mode 100644 miniprogram/pages/admin/meet/record/admin_record_list.wxml create mode 100644 miniprogram/pages/admin/meet/record/admin_record_list.wxss create mode 100644 miniprogram/pages/admin/meet/scan/admin_meet_scan.js create mode 100644 miniprogram/pages/admin/meet/scan/admin_meet_scan.json create mode 100644 miniprogram/pages/admin/meet/scan/admin_meet_scan.wxml create mode 100644 miniprogram/pages/admin/meet/scan/admin_meet_scan.wxss create mode 100644 miniprogram/pages/admin/meet/self/admin_meet_self.js create mode 100644 miniprogram/pages/admin/meet/self/admin_meet_self.json create mode 100644 miniprogram/pages/admin/meet/self/admin_meet_self.wxml create mode 100644 miniprogram/pages/admin/meet/self/admin_meet_self.wxss create mode 100644 miniprogram/pages/admin/meet/temp/admin_temp_select.js create mode 100644 miniprogram/pages/admin/meet/temp/admin_temp_select.json create mode 100644 miniprogram/pages/admin/meet/temp/admin_temp_select.wxml create mode 100644 miniprogram/pages/admin/meet/temp/admin_temp_select.wxss create mode 100644 miniprogram/pages/admin/meet/time/admin_meet_time.js create mode 100644 miniprogram/pages/admin/meet/time/admin_meet_time.json create mode 100644 miniprogram/pages/admin/meet/time/admin_meet_time.wxml create mode 100644 miniprogram/pages/admin/meet/time/admin_meet_time.wxss create mode 100644 miniprogram/pages/admin/mgr/log/admin_log_list.js create mode 100644 miniprogram/pages/admin/mgr/log/admin_log_list.json create mode 100644 miniprogram/pages/admin/mgr/log/admin_log_list.wxml create mode 100644 miniprogram/pages/admin/mgr/log/admin_log_list.wxss create mode 100644 miniprogram/pages/admin/news/add/admin_news_add.js create mode 100644 miniprogram/pages/admin/news/add/admin_news_add.json create mode 100644 miniprogram/pages/admin/news/add/admin_news_add.wxml create mode 100644 miniprogram/pages/admin/news/add/admin_news_add.wxss create mode 100644 miniprogram/pages/admin/news/admin_news_form_tpl.wxml create mode 100644 miniprogram/pages/admin/news/content/admin_news_content.js create mode 100644 miniprogram/pages/admin/news/content/admin_news_content.json create mode 100644 miniprogram/pages/admin/news/content/admin_news_content.wxml create mode 100644 miniprogram/pages/admin/news/content/admin_news_content.wxss create mode 100644 miniprogram/pages/admin/news/edit/admin_news_edit.js create mode 100644 miniprogram/pages/admin/news/edit/admin_news_edit.json create mode 100644 miniprogram/pages/admin/news/edit/admin_news_edit.wxml create mode 100644 miniprogram/pages/admin/news/edit/admin_news_edit.wxss create mode 100644 miniprogram/pages/admin/news/list/admin_news_list.js create mode 100644 miniprogram/pages/admin/news/list/admin_news_list.json create mode 100644 miniprogram/pages/admin/news/list/admin_news_list.wxml create mode 100644 miniprogram/pages/admin/news/list/admin_news_list.wxss create mode 100644 miniprogram/pages/admin/setup/about/admin_setup_about.js create mode 100644 miniprogram/pages/admin/setup/about/admin_setup_about.json create mode 100644 miniprogram/pages/admin/setup/about/admin_setup_about.wxml create mode 100644 miniprogram/pages/admin/setup/about/admin_setup_about.wxss create mode 100644 miniprogram/pages/admin/setup/contact/admin_setup_contact.js create mode 100644 miniprogram/pages/admin/setup/contact/admin_setup_contact.json create mode 100644 miniprogram/pages/admin/setup/contact/admin_setup_contact.wxml create mode 100644 miniprogram/pages/admin/setup/contact/admin_setup_contact.wxss create mode 100644 miniprogram/pages/admin/setup/qr/admin_setup_qr.js create mode 100644 miniprogram/pages/admin/setup/qr/admin_setup_qr.json create mode 100644 miniprogram/pages/admin/setup/qr/admin_setup_qr.wxml create mode 100644 miniprogram/pages/admin/setup/qr/admin_setup_qr.wxss create mode 100644 miniprogram/pages/admin/user/export/admin_user_export.js create mode 100644 miniprogram/pages/admin/user/export/admin_user_export.json create mode 100644 miniprogram/pages/admin/user/export/admin_user_export.wxml create mode 100644 miniprogram/pages/admin/user/export/admin_user_export.wxss create mode 100644 miniprogram/pages/admin/user/list/admin_user_list.js create mode 100644 miniprogram/pages/admin/user/list/admin_user_list.json create mode 100644 miniprogram/pages/admin/user/list/admin_user_list.wxml create mode 100644 miniprogram/pages/admin/user/list/admin_user_list.wxss create mode 100644 miniprogram/projects/A00/about/contact/about_contact.js create mode 100644 miniprogram/projects/A00/about/contact/about_contact.json create mode 100644 miniprogram/projects/A00/about/contact/about_contact.wxml create mode 100644 miniprogram/projects/A00/about/contact/about_contact.wxss create mode 100644 miniprogram/projects/A00/about/index/about_index.js create mode 100644 miniprogram/projects/A00/about/index/about_index.json create mode 100644 miniprogram/projects/A00/about/index/about_index.wxml create mode 100644 miniprogram/projects/A00/about/index/about_index.wxss create mode 100644 miniprogram/projects/A00/calendar/index/calendar_index.js create mode 100644 miniprogram/projects/A00/calendar/index/calendar_index.json create mode 100644 miniprogram/projects/A00/calendar/index/calendar_index.wxml create mode 100644 miniprogram/projects/A00/calendar/index/calendar_index.wxss create mode 100644 miniprogram/projects/A00/default/index/default_index.js create mode 100644 miniprogram/projects/A00/default/index/default_index.json create mode 100644 miniprogram/projects/A00/default/index/default_index.wxml create mode 100644 miniprogram/projects/A00/default/index/default_index.wxss create mode 100644 miniprogram/projects/A00/meet/detail/meet_detail.js create mode 100644 miniprogram/projects/A00/meet/detail/meet_detail.json create mode 100644 miniprogram/projects/A00/meet/detail/meet_detail.wxml create mode 100644 miniprogram/projects/A00/meet/detail/meet_detail.wxss create mode 100644 miniprogram/projects/A00/meet/index/meet_index.js create mode 100644 miniprogram/projects/A00/meet/index/meet_index.json create mode 100644 miniprogram/projects/A00/meet/index/meet_index.wxml create mode 100644 miniprogram/projects/A00/meet/index/meet_index.wxss create mode 100644 miniprogram/projects/A00/meet/join/meet_join.js create mode 100644 miniprogram/projects/A00/meet/join/meet_join.json create mode 100644 miniprogram/projects/A00/meet/join/meet_join.wxml create mode 100644 miniprogram/projects/A00/meet/join/meet_join.wxss create mode 100644 miniprogram/projects/A00/meet/self/meet_self.js create mode 100644 miniprogram/projects/A00/meet/self/meet_self.json create mode 100644 miniprogram/projects/A00/meet/self/meet_self.wxml create mode 100644 miniprogram/projects/A00/meet/self/meet_self.wxss create mode 100644 miniprogram/projects/A00/my/edit/my_edit.js create mode 100644 miniprogram/projects/A00/my/edit/my_edit.json create mode 100644 miniprogram/projects/A00/my/edit/my_edit.wxml create mode 100644 miniprogram/projects/A00/my/edit/my_edit.wxss create mode 100644 miniprogram/projects/A00/my/index/my_index.js create mode 100644 miniprogram/projects/A00/my/index/my_index.json create mode 100644 miniprogram/projects/A00/my/index/my_index.wxml create mode 100644 miniprogram/projects/A00/my/index/my_index.wxss create mode 100644 miniprogram/projects/A00/my/join/my_join.js create mode 100644 miniprogram/projects/A00/my/join/my_join.json create mode 100644 miniprogram/projects/A00/my/join/my_join.wxml create mode 100644 miniprogram/projects/A00/my/join/my_join.wxss create mode 100644 miniprogram/projects/A00/my/join_detail/my_join_detail.js create mode 100644 miniprogram/projects/A00/my/join_detail/my_join_detail.json create mode 100644 miniprogram/projects/A00/my/join_detail/my_join_detail.wxml create mode 100644 miniprogram/projects/A00/my/join_detail/my_join_detail.wxss create mode 100644 miniprogram/projects/A00/news/cate1/news_cate1.js create mode 100644 miniprogram/projects/A00/news/cate1/news_cate1.json create mode 100644 miniprogram/projects/A00/news/cate1/news_cate1.wxml create mode 100644 miniprogram/projects/A00/news/cate1/news_cate1.wxss create mode 100644 miniprogram/projects/A00/news/cate2/news_cate2.js create mode 100644 miniprogram/projects/A00/news/cate2/news_cate2.json create mode 100644 miniprogram/projects/A00/news/cate2/news_cate2.wxml create mode 100644 miniprogram/projects/A00/news/cate2/news_cate2.wxss create mode 100644 miniprogram/projects/A00/news/detail/news_detail.js create mode 100644 miniprogram/projects/A00/news/detail/news_detail.json create mode 100644 miniprogram/projects/A00/news/detail/news_detail.wxml create mode 100644 miniprogram/projects/A00/news/detail/news_detail.wxss create mode 100644 miniprogram/projects/A00/news/index/news_index.js create mode 100644 miniprogram/projects/A00/news/index/news_index.json create mode 100644 miniprogram/projects/A00/news/index/news_index.wxml create mode 100644 miniprogram/projects/A00/news/index/news_index.wxss create mode 100644 miniprogram/projects/A00/search/search.js create mode 100644 miniprogram/projects/A00/search/search.json create mode 100644 miniprogram/projects/A00/search/search.wxml create mode 100644 miniprogram/projects/A00/search/search.wxss create mode 100644 miniprogram/projects/A00/skin/images/default_index_bg.jpg create mode 100644 miniprogram/projects/A00/skin/images/menu/meet_1.png create mode 100644 miniprogram/projects/A00/skin/images/menu/news_1.png create mode 100644 miniprogram/projects/A00/skin/images/menu/news_2.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/cate1.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/cate1_cur.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/cate2.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/cate2_cur.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/day.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/day_cur.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/home.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/home_cur.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/my.png create mode 100644 miniprogram/projects/A00/skin/images/tabbar/my_cur.png create mode 100644 miniprogram/projects/A00/skin/skin.js create mode 100644 miniprogram/projects/A00/skin/skin.wxss create mode 100644 miniprogram/setting/setting.js create mode 100644 miniprogram/sitemap.json create mode 100644 miniprogram/style/comm/animation.wxss create mode 100644 miniprogram/style/comm/avatar.wxss create mode 100644 miniprogram/style/comm/background.wxss create mode 100644 miniprogram/style/comm/bar.wxss create mode 100644 miniprogram/style/comm/base.wxss create mode 100644 miniprogram/style/comm/border.wxss create mode 100644 miniprogram/style/comm/button.wxss create mode 100644 miniprogram/style/comm/comm.wxss create mode 100644 miniprogram/style/comm/form.wxss create mode 100644 miniprogram/style/comm/icon.wxss create mode 100644 miniprogram/style/comm/image.wxss create mode 100644 miniprogram/style/comm/layout.wxss create mode 100644 miniprogram/style/comm/list.wxss create mode 100644 miniprogram/style/comm/load.wxss create mode 100644 miniprogram/style/comm/modal.wxss create mode 100644 miniprogram/style/comm/nav.wxss create mode 100644 miniprogram/style/comm/shadow.wxss create mode 100644 miniprogram/style/comm/table.wxss create mode 100644 miniprogram/style/comm/tag.wxss create mode 100644 miniprogram/style/comm/text.wxss create mode 100644 miniprogram/style/project/about_contact_base.wxss create mode 100644 miniprogram/style/project/about_index_base.wxss create mode 100644 miniprogram/style/project/base/admin.wxss create mode 100644 miniprogram/style/project/base/appt.wxss create mode 100644 miniprogram/style/project/base/article_list.wxss create mode 100644 miniprogram/style/project/base/detail.wxss create mode 100644 miniprogram/style/project/base/project.wxss create mode 100644 miniprogram/style/project/calendar_index_base.wxss create mode 100644 miniprogram/style/project/default_index_base.wxss create mode 100644 miniprogram/style/project/meet_detail_base.wxss create mode 100644 miniprogram/style/project/meet_index_base.wxss create mode 100644 miniprogram/style/project/meet_join_base.wxss create mode 100644 miniprogram/style/project/meet_self_base.wxss create mode 100644 miniprogram/style/project/my_edit_base.wxss create mode 100644 miniprogram/style/project/my_index_base.wxss create mode 100644 miniprogram/style/project/my_join_base.wxss create mode 100644 miniprogram/style/project/my_join_detail_base.wxss create mode 100644 miniprogram/style/project/news_detail_base.wxss create mode 100644 miniprogram/style/project/news_index_base.wxss create mode 100644 miniprogram/style/project/search_base.wxss create mode 100644 miniprogram/tpls/project/about_contact_tpl.wxml create mode 100644 miniprogram/tpls/project/about_index_tpl.wxml create mode 100644 miniprogram/tpls/project/calendar_index_tpl.wxml create mode 100644 miniprogram/tpls/project/default_index_tpl.wxml create mode 100644 miniprogram/tpls/project/meet_detail_tpl.wxml create mode 100644 miniprogram/tpls/project/meet_index_tpl.wxml create mode 100644 miniprogram/tpls/project/meet_join_tpl.wxml create mode 100644 miniprogram/tpls/project/meet_self_tpl.wxml create mode 100644 miniprogram/tpls/project/my_edit_tpl.wxml create mode 100644 miniprogram/tpls/project/my_index_tpl.wxml create mode 100644 miniprogram/tpls/project/my_join_detail_tpl.wxml create mode 100644 miniprogram/tpls/project/my_join_tpl.wxml create mode 100644 miniprogram/tpls/project/news_detail_tpl.wxml create mode 100644 miniprogram/tpls/project/news_index_tpl.wxml create mode 100644 miniprogram/tpls/project/search_tpl.wxml create mode 100644 miniprogram/tpls/public/base_list_tpl.wxml create mode 100644 miniprogram/tpls/public/list_load_tpl.wxml create mode 100644 miniprogram/tpls/public/menu_tpl.wxml create mode 100644 miniprogram/tpls/public/top_tpl.wxml create mode 100644 miniprogram/tpls/wxs/tools.wxs create mode 100644 project.config.json create mode 100644 project.private.config.json create mode 100644 "\346\240\270\351\205\270\351\242\204\347\272\246\346\243\200\346\265\213\345\260\217\347\250\213\345\272\217\345\256\211\350\243\205\344\275\277\347\224\250\346\211\213\345\206\214.docx" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4630882 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Windows +[Dd]esktop.ini +Thumbs.db +$RECYCLE.BIN/ + +# macOS +.DS_Store +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes + +# Node.js +node_modules/ +init/ \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..dbbe355 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..bf201b2 --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +## 功能介绍 + +核酸检测预约小程序包括防疫动态,预约规则宣讲,核酸检测预约,预约管理,预约名单导出,预约数据整理等功能,前后端代码完整,采用腾讯小程序云开发技术。想做核酸?疫情期间,不愿意出门去人多的地方?不愿意排队?工作太忙?为了方便大家节省时间避免扎堆,动动金手指,就可以通过小程序直接核酸检测啦!超简单,超好用! + +- 预约管理:开始/截止时间/人数均可灵活设置,可以自定义客户预约填写的数据项 +- 预约凭证:支持线下到场后校验签到/核销/二维码自助签到等多种方式 +- 详尽的预约数据:支持预约名单数据导出Excel,打印 + + ![输入图片说明](demo/%E4%BA%8C%E7%BB%B4%E7%A0%81.png) + + +## 技术运用 +- 本项目使用微信小程序平台进行开发。 +- 使用腾讯专门的小程序云开发技术,云资源包含云函数,数据库,带宽,存储空间,定时器等,资源配额价格低廉,无需域名和服务器即可搭建。 +- 小程序本身的即用即走,适合小工具的使用场景,也适合快速开发迭代。 +- 云开发技术采用腾讯内部链路,没有被黑客攻击的风险,安全性高且免维护。 +- 资源承载力可根据业务发展需要随时弹性扩展。 + + + +## 作者 +- 如有疑问,欢迎骚扰联系我鸭:开发交流,技术分享,问题答疑,功能建议收集,版本更新通知,安装部署协助,小程序开发定制等。 +- 俺的微信: + +![输入图片说明](demo/author-base.png) + + + + +## 演示 + ![输入图片说明](demo/%E4%BA%8C%E7%BB%B4%E7%A0%81.png) + + +## 安装 + +- 安装手册见源码包里的word文档 + + + + +## 截图 + + ![输入图片说明](demo/1%E9%A6%96%E9%A1%B5.png) + +![输入图片说明](demo/2%E9%98%B2%E7%96%AB%E5%8A%A8%E6%80%81.png) +![输入图片说明](demo/3%E9%A2%84%E7%BA%A6%E6%97%A5%E5%8E%86.png) +![输入图片说明](demo/4%E6%88%91%E7%9A%84.png) +![输入图片说明](demo/5%E9%A2%84%E7%BA%A6%E8%A7%84%E5%88%99.png) +![输入图片说明](demo/6%E6%A0%B8%E9%85%B8%E5%8F%88%E8%A6%81.png) +![输入图片说明](demo/7%E9%A2%84%E7%BA%A6%E8%AF%A6%E6%83%85.png) +![输入图片说明](demo/8%E9%A2%84%E7%BA%A6%E6%88%90%E5%8A%9F.png) +![输入图片说明](demo/9%E9%A2%84%E7%BA%A6%E8%AF%A6%E6%83%85.png) + +## 后台管理系统截图 +![输入图片说明](demo/10%E5%90%8E%E5%8F%B0%E9%A6%96%E9%A1%B5.png) +![输入图片说明](demo/12%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E7%AE%A1%E7%90%86.png) +![输入图片说明](demo/13%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E6%B7%BB%E5%8A%A0.png) + ![输入图片说明](demo/14%E5%90%8E%E5%8F%B0%E9%A2%84%E7%BA%A6%E6%97%B6%E6%AE%B5%E5%8D%81%E4%BA%8C%E6%8C%87.png) +![输入图片说明](demo/15%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E7%AE%A1%E7%90%86-%E8%8F%9C%E5%8D%95.png) +![输入图片说明](demo/16%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E5%90%8D%E5%8D%95%E5%AF%BC%E5%87%BA.png) +![输入图片说明](demo/17%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E6%8A%A5%E5%90%8D%E7%AE%A1%E7%90%86.png) +![输入图片说明](demo/17%E5%90%8E%E5%8F%B0-%E9%A2%84%E7%BA%A6%E6%8A%A5%E5%90%8D%E5%90%8D%E5%8D%95.png) +![输入图片说明](demo/19%E5%90%8E%E5%8F%B0-%E5%86%85%E5%AE%B9%E7%AE%A1%E7%90%86.png) +![输入图片说明](demo/20%E5%90%8E%E5%8F%B0-%E5%86%85%E5%AE%B9%E6%B7%BB%E5%8A%A0.png) diff --git a/cloudfunctionTemplate/cloud.json b/cloudfunctionTemplate/cloud.json new file mode 100644 index 0000000..f89bc07 --- /dev/null +++ b/cloudfunctionTemplate/cloud.json @@ -0,0 +1,41 @@ +[ + { + "name": "测试", + "value": { + "route": "test/test", + "pid": "DEMO2" + } + }, + { + "name": "OA模拟", + "value": { + "CreateTime": 0, + "Event": "subscribe", + "EventKey": "", + "FromUserName": "os85tuO2OaiWSHPi2UECnU5TlDrk", + "MsgType": "event", + "ToUserName": "gh_12824cfe1b7b", + "userInfo": { + "appId": "wx1a3ad7903d85f33a", + "openId": "os85tuO2OaiWSHPi2UECnU5TlDrk" + } + } + }, + { + "name": "支付回调", + "value": { + "outTradeNo": "X20211128170943-T0-M999900-pb95y", + "transactionId": "transactionId1", + "userInfo": { + "openId": "userid3243l4l3j24324324" + } + } + }, + { + "name": "MEET JOIN 测试", + "value": { + "route": "test/meet_test_join", + "pid": "DEMO2" + } + } +] \ No newline at end of file diff --git a/cloudfunctions/cloud/config.json b/cloudfunctions/cloud/config.json new file mode 100644 index 0000000..825f6c0 --- /dev/null +++ b/cloudfunctions/cloud/config.json @@ -0,0 +1,5 @@ +{ + "permissions": { + "openapi": ["wxacode.getUnlimited", "security.imgSecCheck", "security.msgSecCheck","serviceMarket.invokeService"] + } +} \ No newline at end of file diff --git a/cloudfunctions/cloud/config/biz_config.js b/cloudfunctions/cloud/config/biz_config.js new file mode 100644 index 0000000..dc8ad51 --- /dev/null +++ b/cloudfunctions/cloud/config/biz_config.js @@ -0,0 +1,10 @@ +/** + * Notes: 本模块业务相关公用 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-23 19:20:00 + */ + + +module.exports = { + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/config/config.js b/cloudfunctions/cloud/config/config.js new file mode 100644 index 0000000..82ba247 --- /dev/null +++ b/cloudfunctions/cloud/config/config.js @@ -0,0 +1,40 @@ +module.exports = { + + //### 环境相关 + CLOUD_ID: 'dev-5gf0o85o226fad1d', //你的云环境id + + ADMIN_NAME: 'admin', // 管理员账号(5-30位) + ADMIN_PWD: '123456', // 管理员密码(5-30位) + + + // ################################################################## + PID: 'A00', + IS_DEMO: false, + + NEWS_CATE: '1=防疫动态,2=预约规则', + MEET_TYPE: '1=核酸预约', + // ################################################################## + // #### 调试相关 + TEST_MODE: false, + TEST_TOKEN_ID: '', + + COLLECTION_NAME: 'ax_admin|ax_cache|ax_day|ax_export|ax_join|ax_log|ax_meet|ax_news|ax_setup|ax_temp|ax_user', + + DATA_EXPORT_PATH: 'export/', //数据导出路径 + MEET_TIMEMARK_QR_PATH: 'meet/usercheckin/', //用户签到码路径 + SETUP_PATH: 'setup/', + + // ## 缓存相关 + IS_CACHE: true, //是否开启缓存 + CACHE_CALENDAR_TIME: 60 * 30, //日历缓存 + + // #### 内容安全 + CLIENT_CHECK_CONTENT: false, //前台图片文字是否校验 + ADMIN_CHECK_CONTENT: false, //后台图片文字是否校验 + + // #### 预约相关 + MEET_LOG_LEVEL: 'debug', + + // ### 后台业务相关 + ADMIN_LOGIN_EXPIRE: 86400, //管理员token过期时间 (秒) +} \ No newline at end of file diff --git a/cloudfunctions/cloud/config/msg_config.js b/cloudfunctions/cloud/config/msg_config.js new file mode 100644 index 0000000..a4d4ffc --- /dev/null +++ b/cloudfunctions/cloud/config/msg_config.js @@ -0,0 +1,20 @@ +/** + * Notes: 消息提醒配置 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-11-11 14:00:00 + */ + +module.exports = { + + /** + * 打卡提醒 (20647 工具>>备忘录) + * 计划名称 {{thing1.DATA}} + * 完成进度 {{thing2.DATA}} + * 备注 {{thing3.DATA}} + * 上次打卡时间 {{time4.DATA}} + * + */ + MINI_TEMP_CARD_HAS_TIME: 'VCb4GZ-3yK5j66iVxOH5U1MClzXd2f97vFTYlN-K5JU', //有打卡时间 + MINI_TEMP_CARD_NO_TIME: 'VCb4GZ-3yK5j66iVxOH5U3wurLqu2QjwYCSyDgn5CTw', //无打卡时间 + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/config/route.js b/cloudfunctions/cloud/config/route.js new file mode 100644 index 0000000..293f599 --- /dev/null +++ b/cloudfunctions/cloud/config/route.js @@ -0,0 +1,92 @@ +/** + * Notes: 路由配置文件 + * User: CC + * Date: 2020-10-14 07:00:00 + */ + +module.exports = { + 'home/setup_all': 'home_controller@getSetupAll', //获取全局配置(所有) + + 'passport/phone': 'passport_controller@getPhone', + 'passport/my_detail': 'passport_controller@getMyDetail', + 'passport/edit_base': 'passport_controller@editBase', + + 'news/list': 'news_controller@getNewsList', + 'news/home_list': 'news_controller@getHomeNewsList', + 'news/view': 'news_controller@viewNews', + + 'meet/list': 'meet_controller@getMeetList', + 'meet/list_by_day': 'meet_controller@getMeetListByDay', + 'meet/list_has_day': 'meet_controller@getHasDaysFromDay', + 'meet/view': 'meet_controller@viewMeet', + 'meet/detail_for_join': 'meet_controller@detailForJoin', + 'meet/before_join': 'meet_controller@beforeJoin', + 'meet/join': 'meet_controller@join', + + 'my/my_join_list': 'meet_controller@getMyJoinList', + 'my/my_join_cancel': 'meet_controller@cancelMyJoin', + 'my/my_join_detail': 'meet_controller@getMyJoinDetail', + 'my/my_join_someday': 'meet_controller@getMyJoinSomeday', + 'my/my_join_checkin': 'meet_controller@userSelfCheckin', + + 'test/test': 'test/test_controller@test', + 'test/meet_test_join': 'test/test_meet_controller@testJoin', + + //***########### ADMIN ################## */ + 'admin/login': 'admin/admin_home_controller@adminLogin', + 'admin/home': 'admin/admin_home_controller@adminHome', + 'admin/clear_cache': 'admin/admin_home_controller@clearCache#noDemo', + + 'admin/setup_about': 'admin/admin_setup_controller@setupAbout#noDemo', + 'admin/setup_contact': 'admin/admin_setup_controller@setupContact#noDemo', + 'admin/setup_qr': 'admin/admin_setup_controller@genMiniQr', + + 'admin/news_list': 'admin/admin_news_controller@getNewsList', + 'admin/news_insert': 'admin/admin_news_controller@insertNews#noDemo', + 'admin/news_detail': 'admin/admin_news_controller@getNewsDetail', + 'admin/news_edit': 'admin/admin_news_controller@editNews#noDemo', + 'admin/news_update_pic': 'admin/admin_news_controller@updateNewsPic#noDemo', + 'admin/news_update_content': 'admin/admin_news_controller@updateNewsContent#noDemo', + 'admin/news_del': 'admin/admin_news_controller@delNews#noDemo', + 'admin/news_sort': 'admin/admin_news_controller@sortNews#noDemo', + 'admin/news_status': 'admin/admin_news_controller@statusNews#noDemo', + + 'admin/meet_list': 'admin/admin_meet_controller@getMeetList', + 'admin/meet_join_list': 'admin/admin_meet_controller@getJoinList', + 'admin/join_status': 'admin/admin_meet_controller@statusJoin#noDemo', + 'admin/join_del': 'admin/admin_meet_controller@delJoin#noDemo', + 'admin/meet_insert': 'admin/admin_meet_controller@insertMeet#noDemo', + 'admin/meet_detail': 'admin/admin_meet_controller@getMeetDetail', + 'admin/meet_edit': 'admin/admin_meet_controller@editMeet#noDemo', + 'admin/meet_del': 'admin/admin_meet_controller@delMeet#noDemo', + 'admin/meet_update_content': 'admin/admin_meet_controller@updateMeetContent#noDemo', + 'admin/meet_update_style': 'admin/admin_meet_controller@updateMeetStyleSet#noDemo', + 'admin/meet_sort': 'admin/admin_meet_controller@sortMeet#noDemo', + 'admin/meet_status': 'admin/admin_meet_controller@statusMeet#noDemo', + 'admin/meet_cancel_time_join': 'admin/admin_meet_controller@cancelJoinByTimeMark#noDemo', + 'admin/join_scan': 'admin/admin_meet_controller@scanJoin#noDemo', + 'admin/join_checkin': 'admin/admin_meet_controller@checkinJoin#noDemo', + 'admin/self_checkin_qr': 'admin/admin_meet_controller@genSelfCheckinQr', + 'admin/meet_day_list': 'admin/admin_meet_controller@getDayList', + + 'admin/join_data_get': 'admin/admin_export_controller@joinDataGet', + 'admin/join_data_export': 'admin/admin_export_controller@joinDataExport', + 'admin/join_data_del': 'admin/admin_export_controller@joinDataDel#noDemo', + + 'admin/temp_insert': 'admin/admin_meet_controller@insertTemp#noDemo', + 'admin/temp_list': 'admin/admin_meet_controller@getTempList', + 'admin/temp_del': 'admin/admin_meet_controller@delTemp#noDemo', + 'admin/temp_edit': 'admin/admin_meet_controller@editTemp#noDemo', + + 'admin/log_list': 'admin/admin_mgr_controller@getLogList', + + 'admin/user_list': 'admin/admin_user_controller@getUserList', + 'admin/user_detail': 'admin/admin_user_controller@getUserDetail', + 'admin/user_del': 'admin/admin_user_controller@delUser#noDemo', + + 'admin/user_data_get': 'admin/admin_export_controller@userDataGet', + 'admin/user_data_export': 'admin/admin_export_controller@userDataExport', + 'admin/user_data_del': 'admin/admin_export_controller@userDataDel#noDemo', + + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/client/controller.js b/cloudfunctions/cloud/framework/client/controller.js new file mode 100644 index 0000000..0e85315 --- /dev/null +++ b/cloudfunctions/cloud/framework/client/controller.js @@ -0,0 +1,17 @@ + /** + * Notes: 基础控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2020-09-05 04:00:00 + */ + class Controller { + + constructor(route, openId, event) { + this._route = route; // 路由 + this._openId = openId; //用户身份 + this._event = event; // 所有参数 + this._request = event.params; //数据参数 + + } + } + + module.exports = Controller; \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/cloud/cloud_base.js b/cloudfunctions/cloud/framework/cloud/cloud_base.js new file mode 100644 index 0000000..abd17d3 --- /dev/null +++ b/cloudfunctions/cloud/framework/cloud/cloud_base.js @@ -0,0 +1,22 @@ +/** + * Notes: 云初始化实例 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2020-09-05 04:00:00 + */ + +const config = require('../../config/config.js'); + +/** + * 获得云实例 + */ +function getCloud() { + const cloud = require('wx-server-sdk'); + cloud.init({ + env: config.CLOUD_ID + }); + return cloud; +} + +module.exports = { + getCloud +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/cloud/cloud_util.js b/cloudfunctions/cloud/framework/cloud/cloud_util.js new file mode 100644 index 0000000..eff09bf --- /dev/null +++ b/cloudfunctions/cloud/framework/cloud/cloud_util.js @@ -0,0 +1,166 @@ +/** + * Notes: 云基本操作模块 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2020-09-05 04:00:00 + */ +const cloudBase = require('./cloud_base.js'); + +/** + * 高级日志记录错误 + * @param {*} method + * @param {*} err + */ +function log(method, err, level = 'error') { + const cloud = cloudBase.getCloud(); + const log = cloud.logger(); + log.error({ + method: method, + errCode: err.code, + errMsg: err.message, + errStack: err.stack + }); +} +/** + * 根据临时文件地址取得网络地址 + * @param {*} fileID + * @returns {String} + */ +async function getTempFileURLOne(fileID) { + if (!fileID) return ''; + + const cloud = cloudBase.getCloud(); + let result = await cloud.getTempFileURL({ + fileList: [fileID], + }) + if (result && result.fileList && result.fileList[0] && result.fileList[0].tempFileURL) + return result.fileList[0].tempFileURL; + return ''; +} + +/** + * 根据临时文件地址取得网络地址 + * 用云文件 ID 换取真实链接,公有读的文件获取的链接不会过期,私有的文件获取的链接十分钟有效期。一次最多取 50 + * @param {*} fileList + * @param {*} isValid 是否只取本次获取的合法的 + * @returns {Array} 对象数组 [{cloudId:, url:}] + */ +async function getTempFileURL(tempFileList, isValid = false) { + if (!tempFileList || tempFileList.length == 0) return []; + + const cloud = cloudBase.getCloud(); + let result = await cloud.getTempFileURL({ + fileList: tempFileList, + }) + console.log(result); + + let list = result.fileList; + let outList = []; + for (let i = 0; i < list.length; i++) { + let pic = {}; + if (list[i].status == 0) { + //获取到地址的 + pic.url = list[i].tempFileURL; + pic.cloudId = list[i].fileID; + outList.push(pic) + } else { + //未获取到地址的(已经转换过的) + if (!isValid) { + pic.url = list[i].fileID; // fileID为URL, tempFileURL为空 + pic.cloudId = list[i].fileID; + outList.push(pic) + } + } + } + return outList; +} + +/** + * 用后面的文件数组替换前面的,并删除已经不存在的FileID + * @param {*} oldFiles + * @param {*} newFiles + * @returns [] 图片文件数组 [cloudId1,cloudId2,cloudId3...] + */ +async function handlerCloudFiles(oldFiles, newFiles) { + //if (oldFiles.length == 0 && newFiles.length == 0) return []; + + const cloud = cloudBase.getCloud(); + for (let i = 0; i < oldFiles.length; i++) { + let isDel = true; + for (let j = 0; j < newFiles.length; j++) { + if (oldFiles[i] == newFiles[j]) { + // 从旧文件数组里 找到 新组 还存在的文件 ,则不删除 + isDel = false; + break; + } + } + // 新组里不存在,直接删除 + if (isDel && oldFiles[i]) { + let result = await cloud.deleteFile({ + fileList: [oldFiles[i]], + }); + console.log(result); + } + + } + + return newFiles; +} + + +/** + * [富文本编辑器]用后面的文件数组替换前面的,并删除已经不存在的FileID + * @param {*} oldFiles + * 格式 下同 + * [{ + cloudId: xxxxx + url: yyyyyy + * },....] + * @param {*} newFiles + * @returns {Array} 对象数组 [{cloudId:, url:}] + */ +async function handlerCloudFilesByRichEditor(oldFiles, newFiles) { + const cloud = cloudBase.getCloud(); + for (let i = 0; i < oldFiles.length; i++) { + let isDel = true; + for (let j = 0; j < newFiles.length; j++) { + if (oldFiles[i].type == 'img' && newFiles[j].type == 'img' && oldFiles[i].val == newFiles[j].val) { + // 从旧文件数组里 找到 新组 还存在的图片文件, 保存cloudID + //newFiles[j].cloudId = oldFiles[i].cloudId; + isDel = false; + break; + } + } + // 新组里不存在,直接删除 + if (isDel && oldFiles[i].type == 'img' && oldFiles[i].val) { + + let result = await cloud.deleteFile({ + fileList: [oldFiles[i].val], + }); + console.log(result); + } + + } + + return newFiles; +} + +/** + * 删除文件 + * @param {*} list 文件数组cloudid + */ +async function deleteFiles(list = []) { + const cloud = cloudBase.getCloud(); + if (!Array.isArray(list) || list.length == 0) return; + await cloud.deleteFile({ + fileList: list, + }); +} + +module.exports = { + log, + getTempFileURL, + getTempFileURLOne, + deleteFiles, + handlerCloudFiles, + handlerCloudFilesByRichEditor +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/app_code.js b/cloudfunctions/cloud/framework/core/app_code.js new file mode 100644 index 0000000..8365390 --- /dev/null +++ b/cloudfunctions/cloud/framework/core/app_code.js @@ -0,0 +1,17 @@ +/** + * Notes: 错误代码定义 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ +module.exports = { + SUCC: 200, + SVR: 500, // 服务器错误 + LOGIC: 1600, //逻辑错误 + DATA: 1301, // 数据校验错误 + HEADER: 1302, // header 校验错误 + + + //2000开始为业务错误代码, + + ADMIN_ERROR: 2401 //管理员错误 +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/app_error.js b/cloudfunctions/cloud/framework/core/app_error.js new file mode 100644 index 0000000..47bad35 --- /dev/null +++ b/cloudfunctions/cloud/framework/core/app_error.js @@ -0,0 +1,18 @@ +/** + * Notes: 应用异常处理类 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + + +const appCode = require('./app_code.js'); + +class AppError extends Error { + constructor(message, code = appCode.LOGIC) { + super(message); + this.name = 'AppError'; + this.code = code; + } + } + + module.exports = AppError; \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/app_job.js b/cloudfunctions/cloud/framework/core/app_job.js new file mode 100644 index 0000000..b2c49c1 --- /dev/null +++ b/cloudfunctions/cloud/framework/core/app_job.js @@ -0,0 +1,155 @@ +/** + * Notes: 定时任务 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-10-20 04:00:00 + */ + + +const timeUtil = require('../utils/time_util.js'); +const LogUtil = require('../utils/log_util.js'); + +class AppJob { + + constructor() { + /* 当前需要执行的任务(name) + { + name:'名称', + mode:'模式 circle/时间点 point', + time:'时间点', + }*/ + this.task = []; + this.logger = new LogUtil(); + } + + // 任务执行 + execute() { + + let start = timeUtil.time(); + + this.logger.info(''); + this.logger.info('-----------------------------------'); + this.logger.info('[JOB] Begin....'); + + this.logger.info('[JOB] SET JOB begin...'); + this.setJob(); + this.logger.info('[JOB] SET JOB END.'); + + this.logger.info('[JOB] DO JOB Begin...'); + this.doJob(); + this.logger.info('[JOB] DO JOB END.'); + + let end = timeUtil.time(); + let duration = (end - start) / 1000; + this.logger.info('[JOB] END, duration=' + duration + 's'); + + return this.logger.getLogOut(); + } + + // 任务执行 + doJob() { + let task = this.task; + this.logger.info('[JOB] TASK LIST ', task); + for (let k in task) { + let taskTime = task[k].time; + if (this.getNowMinute() != taskTime) continue; + + this.logger.info(''); + + let taskName = task[k].name; + let taskDesc = task[k].desc; + + let start = timeUtil.time(); + this.logger.info('>>>>[' + taskName + ' (' + taskDesc + ', ' + taskTime + ')]Now begin job...') + this[taskName](); + let end = timeUtil.time(); + let duration = (end - start) / 1000; + this.logger.info('<<<<[' + taskName + ' (' + taskDesc + ', ' + taskTime + ')]END, duration=' + duration + 's.'); + + this.logger.info(''); + } + } + + // 任务设置 + setJob() { + this.logger.error('No any jobs TO DO'); + } + + // 构造任务列表 + makeJobList(subTask) { + this.task.push(subTask); + + } + + // 马上执行 + every(name, desc = '无描述') { + + let time = this.getNowMinute(); + let subTask = { + name, + desc, + mode: 'every', + time + } + this.makeJobList(subTask); + } + + // 按天循环执行 格式 hh:mm (某天内的某时间点) + daily(name, desc = '无描述', hour = '00:00') { + if (hour.length == 4) hour = '0' + hour; + + let time = this.getNowDay() + ' ' + hour; + let subTask = { + name, + desc, + mode: 'daily', + time + } + this.makeJobList(subTask); + } + + // 按小时执行格式 mm (某小时内的某分钟) + hourly(name, desc = '无描述', minute = '00') { + if (minute.length == 1) minute = '0' + minute; + + let time = this.getNowHour() + ':' + minute; + let subTask = { + name, + desc, + mode: 'hourly', + time + } + this.makeJobList(subTask); + } + + // 按分钟执行 + minutely(name, desc = '无描述') { + + let time = this.getNowMinute(); + let subTask = { + name, + desc, + mode: 'minutely', + time + } + this.makeJobList(subTask); + } + + // 当前天 + getNowDay() { + return timeUtil.time('Y-M-D'); + } + + // 当前小时 + getNowHour() { + return timeUtil.time('Y-M-D h'); + } + + // 当前分钟 + getNowMinute() { + return timeUtil.time('Y-M-D h:m'); + } + + +} + +module.exports = AppJob; \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/app_other.js b/cloudfunctions/cloud/framework/core/app_other.js new file mode 100644 index 0000000..bf2fb7e --- /dev/null +++ b/cloudfunctions/cloud/framework/core/app_other.js @@ -0,0 +1,37 @@ +/** + * Notes: 云函数非标业务处理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-10-21 04:00:00 + */ + +function handlerOther(event) { + let isOther = false; + + if (!event) return { + isOther, + eventX + }; + + // 公众号事件处理 + if (event['FromUserName'] && event['MsgType']) { + console.log('公众号事件处理'); + let ret = { + route: 'oa/serve', + params: event + } + return { + isOther: true, + eventX: ret + }; + } + + return { + isOther, + eventX: event + }; +} + + +module.exports = { + handlerOther, +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/app_util.js b/cloudfunctions/cloud/framework/core/app_util.js new file mode 100644 index 0000000..a8ccb74 --- /dev/null +++ b/cloudfunctions/cloud/framework/core/app_util.js @@ -0,0 +1,60 @@ +/** + * Notes: 云函数业务主逻辑函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-02-09 04:00:00 + */ + +const appCode = require('./app_code.js'); + +function handlerBasic(code, msg = '', data = {}) { + + switch (code) { + case appCode.SUCC: + msg = (msg) ? msg + ':ok' : 'ok'; + break; + case appCode.SVR: + msg = '服务器繁忙,请稍后再试'; + break; + case appCode.LOGIC: + break; + case appCode.DATA: + break; + + /* + default: + msg = '服务器开小差了,请稍后再试'; + break;*/ + } + + return { + code: code, + msg: msg, + data: data + } + +} + +function handlerSvrErr(msg = '') { + return handlerBasic(appCode.SVR, msg); +} + +function handlerSucc(msg = '') { + return handlerBasic(appCode.SUCC, msg); +} + +function handlerAppErr(msg = '', code = appCode.LOGIC) { + return handlerBasic(code, msg); +} + + +function handlerData(data, msg = '') { + return handlerBasic(appCode.SUCC, msg, data); +} + +module.exports = { + handlerBasic, + handlerData, + handlerSucc, + handlerSvrErr, + handlerAppErr +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/core/application.js b/cloudfunctions/cloud/framework/core/application.js new file mode 100644 index 0000000..659ec21 --- /dev/null +++ b/cloudfunctions/cloud/framework/core/application.js @@ -0,0 +1,163 @@ +/** + * Notes: 云函数业务主逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2020-09-05 04:00:00 + */ +const util = require('../utils/util.js'); +const cloudBase = require('../cloud/cloud_base.js'); +const timeUtil = require('../utils/time_util.js'); +const appUtil = require('./app_util.js'); +const appCode = require('./app_code.js'); +const appOther = require('./app_other.js'); +const config = require('../../config/config.js'); +const routes = require('config/route.js'); + +async function app(event, context) { + + // 非标业务处理 + let { + eventX, + isOther + } = appOther.handlerOther(event); + event = eventX; + + // 取得openid + const cloud = cloudBase.getCloud(); + const wxContext = cloud.getWXContext(); + let r = ''; + try { + + if (!util.isDefined(event.route)) { + showEvent(event); + console.error('Route Not Defined'); + return appUtil.handlerSvrErr(); + } + + r = event.route.toLowerCase(); + if (!r.includes('/')) { + showEvent(event); + console.error('Route Format error[' + r + ']'); + return appUtil.handlerSvrErr(); + } + + // 路由不存在 + if (!util.isDefined(routes[r])) { + showEvent(event); + console.error('Route [' + r + '] Is Not Exist'); + return appUtil.handlerSvrErr(); + } + + let routesArr = routes[r].split('@'); + + let controllerName = routesArr[0]; + let actionName = routesArr[1]; + + // 事前处理 + if (actionName.includes('#')) { + let actionNameArr = actionName.split('#'); + actionName = actionNameArr[0]; + if (actionNameArr[1] && config.IS_DEMO) { + console.log('###演示版事前处理, APP Before = ' + actionNameArr[1]); + return beforeApp(actionNameArr[1]); + } + } + + console.log(''); + console.log(''); + let time = timeUtil.time('Y-M-D h:m:s'); + let timeTicks = timeUtil.time(); + let openId = wxContext.OPENID; + + console.log('▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤'); + console.log(`【↘${time} ENV (${config.CLOUD_ID})】【Request Base↘↘↘】\n【↘Route =***${r}】\n【↘Controller = ${controllerName}】\n【↘Action = ${actionName}】\n【↘OPENID = ${openId}】`); + + + + // 引入逻辑controller + controllerName = controllerName.toLowerCase().trim(); + const ControllerClass = require('project/controller/' + controllerName + '.js'); + const controller = new ControllerClass(r, openId, event); + + // 调用方法 + await controller['initSetup'](); + let result = await controller[actionName](); + + // 返回值处理 + if (isOther) { + // 非标处理 + return result; + } else { + if (!result) + result = appUtil.handlerSucc(r); // 无数据返回 + else + result = appUtil.handlerData(result, r); // 有数据返回 + } + + + console.log('------'); + time = timeUtil.time('Y-M-D h:m:s'); + timeTicks = timeUtil.time() - timeTicks; + console.log(`【${time}】【Return Base↗↗↗】\n【↗Route =***${r}】\n【↗Duration = ${timeTicks}ms】\n【↗↗OUT DATA】= `, result); + console.log('▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦'); + console.log(''); + console.log(''); + + return result; + + + } catch (ex) { + const log = cloud.logger(); + + console.log('------'); + time = timeUtil.time('Y-M-D h:m:s'); + console.error(`【${time}】【Return Base↗↗↗】\n【↗Route = ${r}】\Exception MSG = ${ex.message}, CODE=${ex.code}`); + + // 系统级错误定位调试 + if (config.TEST_MODE && ex.name != 'AppError') throw ex; + + console.log('▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦'); + console.log(''); + console.log(''); + + if (ex.name == 'AppError') { + log.warn({ + route: r, + errCode: ex.code, + errMsg: ex.message + }); + // 自定义error处理 + return appUtil.handlerAppErr(ex.message, ex.code); + } else { + //console.log(ex); + log.error({ + route: r, + errCode: ex.code, + errMsg: ex.message, + errStack: ex.stack + }); + + + // 系统error + return appUtil.handlerSvrErr(); + } + } +} + +// 事前处理 +function beforeApp(method) { + switch (method) { + case 'noDemo': { + return appUtil.handlerAppErr('本系统仅为客户体验演示,后台提交的操作均不生效!如有需要请联系作者微信cclinux0730', appCode.LOGIC); + } + } + console.error('事前处理, Method Not Find = ' + method); +} + +// 展示当前输入数据 +function showEvent(event) { + console.log(event); +} + +module.exports = { + app +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/database/db_util.js b/cloudfunctions/cloud/framework/database/db_util.js new file mode 100644 index 0000000..d0adc82 --- /dev/null +++ b/cloudfunctions/cloud/framework/database/db_util.js @@ -0,0 +1,1064 @@ +/** + * Notes: 数据库基本操作 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + +const util = require('../utils/util.js'); +const dataUtil = require('../utils/data_util.js'); + +const cloudBase = require('../cloud/cloud_base.js'); +const MAX_RECORD_SIZE = 1000; //数据库每次可取最大记录数 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 1000 +const DEFAULT_RECORD_SIZE = 20; //默认显示记录数 + +// 云函数入口文件 +const cloud = cloudBase.getCloud(); +const db = cloud.database(); +const dbCmd = db.command; // 命令 +const dbAggr = dbCmd.aggregate; // 聚合 + +/** + * 批量添加数据 + * @param {*} collectionName + * @param {*} data + * @returns 返回PK + */ +async function insertBatch(collectionName, data, size = 1000) { + + let dataArr = dataUtil.spArr(data, size); + for (let k in dataArr) { + await db.collection(collectionName).add({ + data: dataArr[k] + }); + } + + //return query._id; +} + +/** + * 添加数据 + * @param {*} collectionName + * @param {*} data + * @returns 返回PK + */ +async function insert(collectionName, data) { + + let query = await db.collection(collectionName).add({ + data + }); + return query._id; +} + +/** + * 更新数据 + * @param {*} collectionName + * @param {*} where 为非对象 则作为PK处理 + * @param {*} data + * @returns 影响行数 + */ +async function edit(collectionName, where, data) { + + let query = await db.collection(collectionName); + + // 查询条件 + if (util.isDefined(where)) { + if (typeof (where) == 'string' || typeof (where) == 'number') + query = await query.doc(where); + else + query = await query.where(fmtWhere(where)); + } + + query = await query.update({ + data + }); + + return query.stats.updated; +} + +/** + * 字段自增 + * @param {*} collectionName + * @param {*} where 为非对象 则作为PK处理 + * @param {*} field + * @param {*} val + * @returns 影响行数 + */ +async function inc(collectionName, where, field, val = 1) { + let query = await db.collection(collectionName); + + // 查询条件 + if (util.isDefined(where)) { + if (typeof (where) == 'string' || typeof (where) == 'number') + query = await query.doc(where); + else + query = await query.where(fmtWhere(where)); + } + + query = await query.update({ + data: { + [field]: dbCmd.inc(val) + } + }); + + return query.stats.updated; +} + + + +/** + * 自乘量,可正可负 + * @param {*} collectionName + * @param {*} where 为非对象 则作为PK处理 + * @param {*} field + * @param {*} val + * @returns 影响行数 + */ +async function mul(collectionName, where, field, val = 1) { + let query = await db.collection(collectionName); + + // 查询条件 + if (util.isDefined(where)) { + if (typeof (where) == 'string' || typeof (where) == 'number') + query = await query.doc(where); + else + query = await query.where(fmtWhere(where)); + } + + query = await query.update({ + data: { + [field]: dbCmd.mul(val) + } + }); + + return query.stats.updated; +} + +/** + * 删除数据 + * @param {*} collectionName + * @param {*} where + * @returns 删除函数 + */ +async function del(collectionName, where) { + let query = await db.collection(collectionName); + + // 查询条件 + if (util.isDefined(where)) { + if (typeof (where) == 'string' || typeof (where) == 'number') + query = await query.doc(where); + else + query = await query.where(fmtWhere(where)); + } + + query = await query.remove(); + return query.stats.removed; +} + +/** + * 获取总数 + * @param {*} collectionName + * @param {*} where + */ +async function count(collectionName, where) { + let query = await db.collection(collectionName); + + // 查询条件 + if (typeof (where) == 'string' || typeof (where) == 'number') + query = await query.doc(where); + else + query = await query.where(fmtWhere(where)); + + query = await query.count(); + return query.total; +} + + +/** + * 求不重复 + * @param {*} collectionName + * @param {*} field 求和字段 + * @param {*} where + */ +async function distinct(collectionName, where, field) { + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + query = await query.group({ + _id: null, + 'uniqueValues': dbAggr.addToSet('$' + field) + + }).end(); + + if (query && query.list && query.list[0] && query.list[0]['uniqueValues']) { + return query.list[0]['uniqueValues']; + } else + return []; +} + +async function distinctCnt(collectionName, where, field) { + let data = await distinct(collectionName, where, field); + return data.length; +} + +/** + * 分组求和 + * @param {*} collectionName + * @param {*} groupField 分组字段 + * @param {*} field 求和字段 [field1,field2,field3....] + * @param {*} where + */ +async function groupSum(collectionName, where, groupField, fields) { + + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + if (!Array.isArray(fields)) { + fields = [fields]; + } + let node = {}; + for (let k in fields) { + node[fields[k]] = dbAggr.sum('$' + fields[k]); + } + + query = await query.group({ + _id: { + [groupField]: '$' + groupField + }, + ...node + + }).end(); + + if (query && query.list) { + let list = query.list; + for (let k in list) { + list[k][groupField] = list[k]['_id'][groupField]; + delete list[k]['_id']; + } + return list; + } else + return []; +} + + +/** + * 分组求COUNT + * @param {*} collectionName + * @param {*} groupField 分组字段 + * @param {*} where + */ +async function groupCount(collectionName, where, groupField) { + + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + query = await query.group({ + _id: '$' + groupField, + total: dbAggr.sum(1) + + }).end(); + + if (query && query.list) { + let list = query.list; + let ret = {}; + for (let k in list) { + ret[groupField + '_' + list[k]['_id']] = list[k].total; + } + return ret; + } else + return null; +} + +/** + * 求和 + * @param {*} collectionName + * @param {*} field 求和字段 + * @param {*} where + */ +async function sum(collectionName, where, field) { + // TODO 可扩展为支持多个字段同时统计 + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + query = await query.group({ + _id: null, + 'summ': dbAggr.sum('$' + field) + + }).end(); + + if (query && query.list && query.list[0] && query.list[0]['summ']) { + return query.list[0]['summ']; + } else + return 0; +} + +/** + * 最大 + * @param {*} collectionName + * @param {*} field 求和字段 + * @param {*} where + */ +async function max(collectionName, where, field) { + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + query = await query.group({ + _id: null, + 'maxx': dbAggr.max('$' + field) + + }).end(); + + if (query && query.list && query.list[0] && query.list[0]['maxx']) { + return query.list[0]['maxx']; + } else + return 0; +} + +/** + * 最小 + * @param {*} collectionName + * @param {*} field 求和字段 + * @param {*} where + */ +async function min(collectionName, where, field) { + let query = await db.collection(collectionName); + query = await query.aggregate(); + + // 查询条件 + query = await query.match(fmtWhere(where)); + + query = await query.group({ + _id: null, + 'minx': dbAggr.min('$' + field) + + }).end(); + + if (query && query.list && query.list[0] && query.list[0]['minx']) { + return query.list[0]['minx']; + } else + return 0; +} + +/** + * 清空数据 + * @param {*} collectionName + * @param {*} where + */ +async function clear(collectionName) { + await db.collection(collectionName).where({ + _id: dbCmd.neq(1) + }).remove().then(res => { + + }); +} + +async function isExistCollection(collectionName) { + try { + await getOne(collectionName, {}); + return true; + + } catch (err) { + return false; + } +} + +async function createCollection(collectionName) { + try { + await db.createCollection(collectionName); + + console.log('>> Create New Collection [' + collectionName + '] Succ, OVER.'); + return true; + + } catch (err) { + console.error('>> Create New Collection [' + collectionName + '] Failed, Code=' + err.errCode + '|' + err.errMsg); + return false; + } + +} + +/** + * 随机数据 + * @param {*} collectionName + * @param {*} where + */ +async function rand(collectionName, where = {}, fields = '*', size = 1) { + + size = Number(size); + + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + + let query = await db.collection(collectionName) + .aggregate(); + + if (util.isDefined(where)) + query = await query.match(fmtWhere(where)); + + if (util.isDefined(fields) && fields != '*') + query = await query.project(fmtFields(fields)); + + + query = await query.sample({ + size + }); + + query = await query.end(); + + if (size == 1) { + if (query.list.length == 1) + return query.list[0]; + else + return null; + } else + return query.list; + +} + +/** + * 数组字段拆分查询 + * @param {*} collectionName + * @param {*} arrField 包含数组的字段 + * joinParams = { + from: 't_user', + localField: '_openid', + foreignField: '_openid', + as: 'USER_DETAIL', + } + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal 是否计算总数 + * @param {*} oldTotal 上次总数 + */ +async function getListByArray(collectionName, arrField, where, fields, orderBy, page = 1, size = DEFAULT_RECORD_SIZE, isTotal = true, oldTotal = 0) { + + if (typeof (where) == 'string' || typeof (where) == 'number') { + where = { + _id: where, + }; + } + + page = Number(page); + size = Number(size); + + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + data = { + page: page, + size: size + } + + let offset = 0; //记录偏移量 防止新增数据列表重复 + + // 计算总页数 + if (isTotal) { + // 联表 + let queryCnt = await db.collection(collectionName) + .aggregate(); + + // 查询条件 + if (util.isDefined(where)) + queryCnt = await queryCnt.match(fmtWhere(where)); + + let total = await queryCnt.count('total').end(); + if (!total.list.length) + total = 0; + else + total = total.list[0].total; + + data.total = total; + data.count = Math.ceil(total / size); + + if (page > 1 && oldTotal > 0) { + offset = data.total - oldTotal + if (offset < 0) offset = 0; + } + } + + // 拆分查询 + let query = await db.collection(collectionName) + .aggregate() + .unwind('$' + arrField); + + // 查询条件 + if (util.isDefined(where)) + query = await query.match(fmtWhere(where)); + + // 取出特定字段 + if (util.isDefined(fields) && fields != '*') + query = await query.project(fmtFields(fields)); + + // 排序 + if (util.isDefined(orderBy)) { + query = await query.sort(fmtJoinSort(orderBy)); + } + + // 分页 + query = await query.skip((page - 1) * size + offset).limit(size); + + // 取数据 + query = await query.end(); + data.list = query.list; + + return data; +} + +/** + * 联表获取分页(2张表) + * @param {*} collectionName + * @param {*} joinParams 被连接表 参数设置 + * joinParams = { + from: 't_user', + localField: '_openid', + foreignField: '_openid', + as: 'USER_DETAIL', + } + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal 是否计算总数 + * @param {*} oldTotal 上次总数 + * @param {*} is2Many 1对1,还是1对多,默认1:1 false + */ +async function getListJoin(collectionName, joinParams, where, fields, orderBy, page = 1, size = DEFAULT_RECORD_SIZE, isTotal = true, oldTotal = 0, is2Many = false) { + + if (typeof (where) == 'string' || typeof (where) == 'number') { + where = { + _id: where, + }; + } + + page = Number(page); + size = Number(size); + + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + data = { + page: page, + size: size + } + + let offset = 0; //记录偏移量 防止新增数据列表重复 + + // 计算总页数 + if (isTotal) { + // 联表 + let queryCnt = await db.collection(collectionName) + .aggregate() + .lookup(joinParams); + + // 查询条件 + if (util.isDefined(where)) + queryCnt = await queryCnt.match(fmtWhere(where)); + + let total = await queryCnt.count('total').end(); + if (!total.list.length) + total = 0; + else + total = total.list[0].total; + + data.total = total; + data.count = Math.ceil(total / size); + + if (page > 1 && oldTotal > 0) { + offset = data.total - oldTotal + if (offset < 0) offset = 0; + } + } + + // 联表 + let query = await db.collection(collectionName) + .aggregate() + .lookup(joinParams); + + /* + query = await query.replaceRoot({ + newRoot: $.mergeObjects([ $.arrayElemAt(['$USER_DETAIL', 0]), '$$ROOT' ]) + })*/ + + // 查询条件 + if (util.isDefined(where)) + query = await query.match(fmtWhere(where)); + + // 取出特定字段 + if (util.isDefined(fields) && fields != '*') + query = await query.project(fmtFields(fields)); + + // 排序 + if (util.isDefined(orderBy)) { + query = await query.sort(fmtJoinSort(orderBy)); + } + + // 分页 + query = await query.skip((page - 1) * size + offset).limit(size); + + + // 取数据 + query = await query.end(); + data.list = query.list; + + // 1:N 数据处理为1:1 + if (!is2Many) { + for (let k in data.list) { + if (util.isDefined(data.list[k][joinParams.as])) { + // 是否为数组,是数组转为一维 + if (Array.isArray(data.list[k][joinParams.as]) && + data.list[k][joinParams.as].length > 0) + data.list[k][joinParams.as] = data.list[k][joinParams.as][0]; + else { + data.list[k][joinParams.as] = {}; + } + } + } + } + + return data; +} + +/** + * 获取分页数据 + * @param {*} collectionName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal + * @returns {page, size, list, total, oldTotal} + */ +async function getList(collectionName, where, fields = '*', orderBy = {}, page = 1, size = DEFAULT_RECORD_SIZE, isTotal = true, oldTotal = 0) { + page = Number(page); + size = Number(size); + + if (size > MAX_RECORD_SIZE || size == 0) size = MAX_RECORD_SIZE; + + let data = { + page: page, + size: size + } + + let offset = 0; //记录偏移量 防止新增数据列表重复 + // 计算总页数 + if (isTotal) { + let total = await count(collectionName, where); + data.total = total; + data.count = Math.ceil(total / size); + + if (page > 1 && oldTotal > 0) { + offset = data.total - oldTotal + if (offset < 0) offset = 0; + + } + } + + // 分页 + let query = await db.collection(collectionName) + .skip((page - 1) * size + offset) + .limit(size); + + // 查询条件 + if (util.isDefined(where) && where) + query = await query.where(fmtWhere(where)); + + // 取出特定字段 + if (util.isDefined(fields) && fields != '*') + query = await query.field(fmtFields(fields)); + + // 排序 + if (util.isDefined(orderBy)) { + query = await fmtOrderBy(query, orderBy); + } + + // 取数据 + query = await query.get(); + + data.list = query.data; + + return data; +} + +/** + * 大数据情况下取得所有数据 + * @param {*} collectionName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ +async function getAllBig(collectionName, where, fields = '*', orderBy, size = MAX_RECORD_SIZE) { + size = Number(size); + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + // 计算总数 + let total = await await count(collectionName, where); + + // 页数 + let page = Math.ceil(total / size); + + let list = []; + for (let i = 1; i <= page; i++) { + let data = await getList(collectionName, where, fields, orderBy, i, size, false); + + if (data && data.list) + list = list.concat(data.list); + } + + return list; +} + + +/** + * 获取所有数据 + * @param {*} collectionName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + * @returns list + */ +async function getAll(collectionName, where, fields = '*', orderBy, size = MAX_RECORD_SIZE) { + size = Number(size); + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + let query = await db.collection(collectionName).limit(size); + + // 查询条件 + if (where) + query = await query.where(fmtWhere(where)); + + // 取出特定字段 + if (fields && fields != '*') + query = await query.field(fmtFields(fields)); + + // 排序 + if (orderBy) { + query = await fmtOrderBy(query, orderBy); + } + + // 取数据 + query = await query.get(); + return query.data; +} + +/** + * 获取所有数据 数组字段拆分查询 + * @param {*} collectionName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + * @returns list + */ +async function getAllByArray(collectionName, arrField, where, fields = '*', orderBy, size = MAX_RECORD_SIZE) { + size = Number(size); + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + // 拆分 + let query = await db.collection(collectionName).aggregate() + .unwind('$' + arrField); + + // 查询条件 + if (util.isDefined(where)) + query = await query.match(fmtWhere(where)); + + // 取出特定字段 + if (util.isDefined(fields) && fields != '*') + query = await query.project(fmtFields(fields)); + + // 排序 + if (util.isDefined(orderBy)) { + query = await query.sort(fmtJoinSort(orderBy)); + } + + // 取数据 + query = await query.limit(size).end(); + return query.list; +} + +/** + * 获取单个数据 + * @param {*} collectionName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @returns null or object + */ +async function getOne(collectionName, where, fields = '*', orderBy = {}) { + // 根据ID查询还是根据条件查询 + if (typeof (where) == 'string' || typeof (where) == 'number') { + where = { + _id: where + }; + } + + // 查询条件 + let query = await db.collection(collectionName) + .where(fmtWhere(where)) + .limit(1); + + // 取出特定字段 + if (fields != '*') + query = await query.field(fmtFields(fields)); + + // 排序 + if (orderBy) + query = await fmtOrderBy(query, orderBy); + + // 取数据 + query = await query.get(); + + if (query && query.data.length > 0) { + return query.data[0]; + } else + return null; +} + +/** + * OrderBy处理 (单表) + * @param {*} query 数据库句柄 + * @param {*} orderBy 排序 + * { + INFO_ADD_TIME: 'desc', + INFO_VIEW_CNT: 'asc' + } + */ +async function fmtOrderBy(query, orderBy) { + for (let k in orderBy) { + query = await query.orderBy(k, orderBy[k].toLowerCase()) + } + return query; +} + +/** + * sort 处理(连接表) + * @param {*} sort 排序 + * { + INFO_ADD_TIME: -1,// 1=升序 -1=降序 只能1个? + INFO_VIEW_CNT: 1, + INFO_ADD_TIME: 'desc', + INFO_VIEW_CNT: 'asc' + } + */ +function fmtJoinSort(sort) { + for (let k in sort) { + let v = sort[k]; + if (typeof (v) == 'string') { + v = v.toLowerCase(); + if (v === 'asc') + v = 1; + else + v = -1; + } + sort[k] = v; + } + return sort; +} + +/** + * fields处理 + * @param {*} fields 需要取得的字段 两种形式 + * INFO_TITLE,INFO_ID,INFO_NAME + * 或者 + * { + * INFO_TITLE:true, + * INFO_NAME:true + * } + * + */ +function fmtFields(fields) { + if (typeof (fields) == 'string') { + let obj = {}; + fields = fields.replace(/,/g, ","); + let arr = fields.split(','); + for (let i = 0; i < arr.length; i++) { + if (arr[i].trim().length > 0) + obj[arr[i].trim()] = true; + } + return obj; + } + + return fields; +} + +/** + * where处理 单表 + * @param {*} where ,支持: between, in, like, not in, >=, >, <=, <, !=, <> + * { + INFO_EXPIRE_TIME: [ //多条件 + ['>=', 3], + ['<=', 8], + ['<>', 5], + ['between', 6,7] + ['in', '6,7'] + ['in', [6,7]] + ], + INFO_ORDER: ['<=', 9999], + INFO_TITLE: ['like', '1'] + } + + or支持******************* + 分2组 where.and / where.or + where.and 格式同以上where + where.or 可以传{xxx:11,yy:22} -----与条件 + [{xxx:111},{yy:22}] ------------ 或条件 + */ +function fmtWhere(where) { + if (util.isDefined(where.and) || util.isDefined(where.or)) { + let whereEx = null; + if (util.isDefined(where.and)) + whereEx = dbCmd.and(fmtWhere(where.and)); + + if (util.isDefined(where.or)) { + if (whereEx) + whereEx = whereEx.and(dbCmd.or(fmtWhere(where.or))); + else + whereEx = dbCmd.or(fmtWhere(where.or)); + } + //console.log(whereEx); + return whereEx; + } + // 如果是数组 一般是用在or的或条件 + if (Array.isArray(where)) { + for (let i = 0; i < where.length; i++) + where[i] = fmtWhere(where[i]); + } + + for (let k in where) { + /* 判断是否有条件数组 + INFO_EXPIRE_TIME: [ + ['>=', 3], + ['<=', 8], + ['<>', 5], + ['in', '6,7'] + ], + */ + if (Array.isArray(where[k])) { + let w = null; + if (!Array.isArray(where[k][0]) && where[k][0].toLowerCase().trim() == 'between') { + // 条件查询特殊处理 + where[k] = [ + ['>=', where[k][1]], + ['<=', where[k][2]] + ]; + } + + if (!Array.isArray(where[k][0])) { + // 一维数组 + w = fmtWhereSimple(where[k]); + } else { + // 二维数组 + for (let i = 0; i < where[k].length; i++) { + let wTemp = fmtWhereSimple(where[k][i]); + w = (w) ? w.and(wTemp) : wTemp; + } + } + + where[k] = w; + + } + } + return where; +} + +/** + * 单个where处理 + * @param {*} arr + */ +function fmtWhereSimple(arr) { + let sql = ''; + + let op = arr[0].toLowerCase().trim(); + let val = arr[1]; + let where = {}; + switch (op) { + case '=': + where = dbCmd.eq(val); + break; + case '!=': + case '<>': + where = dbCmd.neq(val); + break; + case '<': + where = dbCmd.lt(val); + break; + case '<=': + where = dbCmd.lte(val); + break; + case '>': + where = dbCmd.gt(val); + break; + case '>=': + where = dbCmd.gte(val); + break; + case 'like': + if (!util.isDefined(val) || !val) break; //无条件不搜索 + where = { + $regex: val, + $options: 'i' + } + break; + case 'in': + val = dataUtil.str2Arr(val); + where = dbCmd.in(val); + break; + case 'not in': + val = dataUtil.str2Arr(val); + where = dbCmd.nin(val); + break; + default: + console.error('error where oprt=' + op); + break; + } + return where; +} + +module.exports = { + insert, + insertBatch, + edit, + del, + + count, + inc, + sum, + groupCount, + groupSum, + distinct, + distinctCnt, + max, + min, + mul, // 原子操作,用于指示字段自乘某个值 + + isExistCollection, + createCollection, + clear, + rand, + getOne, + getAll, + getAllBig, + + getAllByArray, + getList, + getListJoin, + getListByArray, + MAX_RECORD_SIZE, + DEFAULT_RECORD_SIZE +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/database/model.js b/cloudfunctions/cloud/framework/database/model.js new file mode 100644 index 0000000..b5b0049 --- /dev/null +++ b/cloudfunctions/cloud/framework/database/model.js @@ -0,0 +1,659 @@ +/** + * Notes: 数据持久化与操作模块 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-04 04:00:00 + */ + +const dbUtil = require('./db_util.js'); +const util = require('../utils/util.js'); +const timeUtil = require('../utils/time_util.js'); +const AppError = require('../core/app_error.js'); +const cloudBase = require('../cloud/cloud_base.js'); + +class Model { + + /** + * 构造当前ID + */ + static makeID() { + let id = timeUtil.time('YMDhms') + ''; //秒 + + //毫秒3位 + let miss = timeUtil.time() % 1000 + ''; + if (miss.length == 0) + miss = '000'; + else if (miss.length == 1) + miss = '00' + miss; + else if (miss.length == 2) + miss = '0' + miss; + + return id + miss; + } + + /** + * 获取单个object + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @returns object or null + */ + static async getOne(where, fields = '*', orderBy = {}) { + return await dbUtil.getOne(this.CL, where, fields, orderBy); + } + + /** + * 修改 + * @param {*} where + * @param {*} data + */ + static async edit(where, data) { + + // 更新时间 + if (this.UPDATE_TIME) { + let editField = this.FIELD_PREFIX + 'EDIT_TIME'; + if (!util.isDefined(data[editField])) data[editField] = timeUtil.time(); + } + + // 更新IP + if (this.UPDATE_IP) { + let cloud = cloudBase.getCloud(); + let ip = cloud.getWXContext().CLIENTIP; + + + let editField = this.FIELD_PREFIX + 'EDIT_IP'; + if (!util.isDefined(data[editField])) data[editField] = ip; + } + + // 数据清洗 + data = this.clearEditData(data); + + return await dbUtil.edit(this.CL, where, data); + } + + /** + * 计算总数 + * @param {*} where + */ + static async count(where) { + return await dbUtil.count(this.CL, where); + } + + /** + * 插入数据 + * @param {*} data + */ + static async insert(data) { + // 自动ID + if (this.ADD_ID) { + let idField = this.FIELD_PREFIX + 'ID'; + if (!util.isDefined(data[idField])) data[idField] = Model.makeID(); + } + + // 更新时间 + if (this.UPDATE_TIME) { + let timestamp = timeUtil.time(); + let addField = this.FIELD_PREFIX + 'ADD_TIME'; + if (!util.isDefined(data[addField])) data[addField] = timestamp; + + let editField = this.FIELD_PREFIX + 'EDIT_TIME'; + if (!util.isDefined(data[editField])) data[editField] = timestamp; + } + + // 更新IP + if (this.UPDATE_IP) { + let cloud = cloudBase.getCloud(); + let ip = cloud.getWXContext().CLIENTIP; + + let addField = this.FIELD_PREFIX + 'ADD_IP'; + if (!util.isDefined(data[addField])) data[addField] = ip; + + let editField = this.FIELD_PREFIX + 'EDIT_IP'; + if (!util.isDefined(data[editField])) data[editField] = ip; + } + + // 数据清洗 + data = this.clearCreateData(data); + + return await dbUtil.insert(this.CL, data); + } + + /** + * 插入或者更新数据 + * @param {*} data + */ + static async insertOrUpdate(where, data) { + let model = await dbUtil.getOne(this.CL, where, '_id'); + if (model) { + await this.edit(model._id, data); + return model._id; + } else { + return await this.insert(Object.assign(data, where)); + } + } + + /** + * 批量插入数据 + * @param {*} data + */ + static async insertBatch(data = [], size = 1000) { + // 自动ID + if (this.ADD_ID) { + let idField = this.FIELD_PREFIX + 'ID'; + for (let k in data) + if (!util.isDefined(data[k][idField])) data[k][idField] = Model.makeID(); + } + + // 更新时间 + if (this.UPDATE_TIME) { + let timestamp = timeUtil.time(); + let addField = this.FIELD_PREFIX + 'ADD_TIME'; + let editField = this.FIELD_PREFIX + 'EDIT_TIME'; + + for (let k in data) { + if (!util.isDefined(data[k][addField])) data[k][addField] = timestamp; + if (!util.isDefined(data[k][editField])) data[k][editField] = timestamp; + } + + } + + // 更新IP + if (this.UPDATE_IP) { + let cloud = cloudBase.getCloud(); + let ip = cloud.getWXContext().CLIENTIP; + + let addField = this.FIELD_PREFIX + 'ADD_IP'; + let editField = this.FIELD_PREFIX + 'EDIT_IP'; + + for (let k in data) { + if (!util.isDefined(data[k][addField])) data[k][addField] = ip; + if (!util.isDefined(data[k][editField])) data[k][editField] = ip; + } + + } + + // 数据清洗 + for (let k in data) + data[k] = this.clearCreateData(data[k]); + + return await dbUtil.insertBatch(this.CL, data, size); + } + + /** + * 删除记录 + * @param {*} where + */ + static async del(where) { + return await dbUtil.del(this.CL, where); + } + + /** + * 自增处理 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async inc(where, field, val = 1) { + return await dbUtil.inc(this.CL, where, field, val); + } + + /** + * 自乘处理 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async mul(where, field, val = 1) { + return await dbUtil.mul(this.CL, where, field, val); + } + + /** + * 分组求和 + * @param {*} where + * @param {*} groupField + * @param {*} field + * @param {*} val + */ + static async groupSum(where, groupField, field) { + return await dbUtil.groupSum(this.CL, where, groupField, field); + } + + /** + * 分组求COUNT + * @param {*} where + * @param {*} groupField + * @param {*} val + */ + static async groupCount(where, groupField) { + return await dbUtil.groupCount(this.CL, where, groupField); + } + + /** + * 求和 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async sum(where, field) { + return await dbUtil.sum(this.CL, where, field); + } + + /** + * 求不重复 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async distinct(where, field) { + return await dbUtil.distinct(this.CL, where, field); + } + + /** + * 求不重复 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async distinctCnt(where, field) { + return await dbUtil.distinctCnt(this.CL, where, field); + } + + /** + * 最大 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async max(where, field) { + return await dbUtil.max(this.CL, where, field); + } + + /** + * 最小 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async min(where, field) { + return await dbUtil.min(this.CL, where, field); + } + + /** + * 清空数据 + */ + static async clear() { + return await dbUtil.clear(this.CL); + } + + /** + * 随机数据 + * @param {*} where + * @param {*} fields + * @param {*} size + */ + static async rand(where = {}, fields = '*', size = 1) { + return await dbUtil.rand(this.CL, where, fields, size); + } + + /** + * 所有记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAll(where, fields, orderBy, size = 100) { + return await dbUtil.getAll(this.CL, where, fields, orderBy, size); + } + + + /** + * 大数据情况下取得所有记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAllBig(where, fields, orderBy, size = 1000) { + return await dbUtil.getAllBig(this.CL, where, fields, orderBy, size); + } + + /** + * 所有记录 数组字段拆分查询 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAllByArray(arrField, where, fields, orderBy, size = 100) { + return await dbUtil.getAllByArray(this.CL, arrField, where, fields, orderBy, size); + } + + /** + * 分页记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal + * @param {*} oldTotal // 上次分页的记录总数 + */ + static async getList(where, fields, orderBy, page, size, isTotal, oldTotal) { + return await dbUtil.getList(this.CL, where, fields, orderBy, page, size, isTotal, oldTotal); + } + + // 联表获取分页(2张表) + static async getListJoin(joinParams, where, fields, orderBy, page = 1, size, isTotal = true, oldTotal = 0, is2Many = false) { + return await dbUtil.getListJoin(this.CL, joinParams, where, fields, orderBy, page, size, isTotal, oldTotal, is2Many); + } + + // 数组字段拆分查询 + static async getListByArray(arrField, where, fields, orderBy, page = 1, size, isTotal = true, oldTotal = 0) { + return await dbUtil.getListByArray(this.CL, arrField, where, fields, orderBy, page, size, isTotal, oldTotal); + } + + + /** + * 数据库结构定义转换 支持float,int,string,array + * @param {*} stru + */ + static converDBStructure(stru) { + let newStru = {}; + for (let k in stru) { + newStru[k] = {}; + + let arr = stru[k].split('|'); + for (let key in arr) { + + // 类型 + let val = arr[key].toLowerCase().trim(); + let orginal = arr[key]; + + let type = 'string'; + if (val === 'float' || val === 'int' || val === 'string' || val === 'array' || val === 'object' || val === 'bool') { + type = val; + newStru[k]['type'] = type; + continue; + } + + // 是否必填 + if (val === 'true' || val === 'false') { + let required = (val === 'true') ? true : false; + newStru[k]['required'] = required; + continue; + } + + // 默认值 + if (val.startsWith('default=') && util.isDefined(newStru[k]['type'])) { + let defVal = orginal.replace('default=', ''); + switch (newStru[k]['type']) { + case 'int': + case 'float': + defVal = Number(defVal); + break; + case 'bool': + defVal = defVal.toLowerCase(); + defVal = defVal == 'true' ? true : false; + break; + case 'object': + defVal = defVal.replace('{', ''); + defVal = defVal.replace('}', '').trim(); + if (!defVal) + defVal = {}; + else { + let arr = defVal.split(','); + defVal = {}; + for (let m in arr) { + if (arr[m]) defVal[arr[m]] = ''; + } + } + + break; + case 'array': + defVal = defVal.replace('[', ''); + defVal = defVal.replace(']', '').trim(); + if (!defVal) + defVal = []; + else + defVal = defVal.split(','); + break; + default: + defVal = String(defVal); + } + newStru[k]['defVal'] = defVal; + continue; + } + + // 注释 + if (val.startsWith('comment=')) { + let comment = orginal.replace('comment=', ''); + newStru[k]['comment'] = comment; + continue; + } + + // 长度 + if (val.startsWith('length=')) { + let length = orginal.replace('length=', ''); + length = Number(length); + newStru[k]['length'] = length; + continue; + } + + } + + // 如果非必填字段没有默认值,则主动赋予一个 + if (!newStru[k]['required'] && !util.isDefined(newStru[k]['defVal'])) { + let defVal = ''; + switch (newStru[k]['type']) { + case 'bool': + defVal = false; + break; + case 'int': + case 'float': + defVal = Number(0); + break; + case 'array': + defVal = []; + break; + case 'object': + defVal = {}; + break; + default: + defVal = String(''); + } + newStru[k]['defVal'] = defVal; + } + + // 如果没有长度 + if (!util.isDefined(newStru[k]['length'])) { + let length = 20; + switch (newStru[k]['type']) { + case 'int': + case 'float': + length = 30; + break; + case 'array': + case 'object': + length = 1500; + break; + default: + length = 300; + } + newStru[k]['length'] = length; + } + } + return newStru; + } + + /** + * 去掉脏数据:判断是否有未在数据库定义的字段, 复合型字段不校验(包含.点号) + * @param {*} data + */ + static clearDirtyData(data) { + for (let k in data) { + if (!this.DB_STRUCTURE.hasOwnProperty(k) && !k.includes('.')) { + console.error('脏数据:' + k); + throw new AppError('脏数据'); + } + } + } + + /** + * 数据类型校正 + * @param {*} data + * @param {*} dbStructure + */ + static converDataType(data, dbStructure) { + for (let k in data) { + if (dbStructure.hasOwnProperty(k)) { + let type = dbStructure[k].type.toLowerCase(); + // 字段类型转换 + switch (type) { + case 'string': + data[k] = String(data[k]); + break; + case 'bool': + //data[k] = data[k]; + break; + case 'float': + case 'int': + data[k] = Number(data[k]); + break; + case 'array': + if (data[k].constructor != Array) + data[k] = []; + break; + case 'object': + if (data[k].constructor != Object) + data[k] = {}; + break; + default: + console.error('字段类型错误:' + k + dbStructure[k].type); + throw new AppError("字段类型错误"); + } + } + } + + return data; + } + + /** + * 数据创建清洗 + * @param {*} data + */ + static clearCreateData(data) { + + let dbStructure = Model.converDBStructure(this.DB_STRUCTURE); + + // 一维数组检查必填项,填写默认值 + for (let k in dbStructure) { + + // 数据类型 + if (!util.isDefined(dbStructure[k].type)) { + console.log('[数据填写错误1]字段类型未定义:' + k); + throw new AppError('数据填写错误1'); + } + + // 是否定义必填 + if (!util.isDefined(dbStructure[k].required)) { + console.log('[数据填写错误2]required未定义:' + k); + throw new AppError('数据填写错误2'); + } + + // 键值未赋值情况 + if (!data.hasOwnProperty(k)) { + // 必填 + if (dbStructure[k].required) { + if (util.isDefined(dbStructure[k].defVal)) + // 必填且有缺省值 + data[k] = dbStructure[k].defVal; + else { + // 必填且无缺省值 + console.log('[数据填写错误3]字段未填写:' + k); + throw new AppError('数据填写错误3 ' + k); + } + } else { + // 非必填字段必须有缺省值 + if (!util.isDefined(dbStructure[k].defVal)) { + console.log('[数据填写错误4]非必填字段必须有缺省值:' + k); + throw new AppError('数据填写错误4'); + } + data[k] = dbStructure[k].defVal; + } + } + } + + // 去掉脏数据 + this.clearDirtyData(data, dbStructure); + + // 数据类型校正 + data = this.converDataType(data, dbStructure); + + return data; + } + + /** + * 数据编辑清洗 + * @param {*} data + */ + static clearEditData(data) { + let dbStructure = Model.converDBStructure(this.DB_STRUCTURE); + + // 去掉脏数据 + this.clearDirtyData(data, dbStructure); + + // 数据类型校正 + data = this.converDataType(data, dbStructure); + + return data; + } + + /** + * 获取枚举字段的描述 + * @param {*} enumName + * @param {*} val + */ + static getDesc(enumName, val) { + let baseEnum = this[enumName]; + let descEnum = this[enumName + '_DESC'] + let enumKey = ''; + + // 先找出KEY + for (let k in baseEnum) { + if (baseEnum[k] === val) { + enumKey = k; + break; + } + } + if (enumKey == '') return 'unknown'; + + // 再从Desc里找出描述 + return descEnum[enumKey]; + } + +} + +// 集合名 collection +Model.CL = 'no-collection'; + +// 集合结构 +Model.DB_STRUCTURE = 'no-dbStructure'; + +// 字段前缀 +Model.FIELD_PREFIX = 'NO_'; + +// 开关自带更新ADD_TIME,EDIT_TIME,DEL_TIME的操作 +Model.UPDATE_TIME = true; + +// 开关自带更新ADD_IP,EDIT_IP,DEL_IP的操作 +Model.UPDATE_IP = true; + +// 开关添加ID +Model.ADD_ID = true; + +// 默认排序 +Model.ORDER_BY = { + _id: 'desc' +} + +module.exports = Model; \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/database/mysql_util.js b/cloudfunctions/cloud/framework/database/mysql_util.js new file mode 100644 index 0000000..f24b1cc --- /dev/null +++ b/cloudfunctions/cloud/framework/database/mysql_util.js @@ -0,0 +1,501 @@ +/** + * Notes: MYSQL数据库基本操作 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-01-22 04:00:00 + */ + +const mysql = require('mysql'); + +const util = require('../utils/util.js'); +const AppError = require('../core/app_error.js'); +const appCode = require('../core/app_code.js'); + +const config = require('../../config/config.js'); + +const MAX_RECORD_SIZE = 100; //数据库每次可取最大记录数 +const DEFAULT_RECORD_SIZE = 20; //默认显示记录数 + +/* +function openConn() { + let connection = mysql.createConnection({ + host: "127.0.0.1", + database: "test", + user: "root", + password: "root", + port: '3306', + }); + + connection.connect(); + + return connection; +} +*/ + +function initPool() { + let pool = mysql.createPool({ + host: config.MYSQL_DB_HOST, + database: config.MYSQL_DB_DATABSE, + user: config.MYSQL_DB_USER, + password: config.MYSQL_DB_PASSWORD, + port: config.MYSQL_DB_PORT, + }); + + return pool; +} + +function closeConn(connection) { + if (connection) { + console.log('Colse DB Connection'); + connection.end(); + } +} + +/** + * 排序格式化 + * @param {*} orderBy + */ +function fmtOrderBy(orderBy) { + if (typeof (orderBy) == 'string') { + orderBy = orderBy.trim(); + if (orderBy.length == 0) + return ''; + else + return `ORDER BY ${orderBy}`; + } + + let order = ''; + for (let key in orderBy) { + order += ', ' + key + ' ' + orderBy[key]; + } + if (order) { + order = order.substr(1); + order = `ORDER BY ${order}`; + } + return order; +} + +/** + * RowDataPacket格式化 + */ +function fmtRowData(rowDataPacket) { + let dataString = JSON.stringify(rowDataPacket); + let data = JSON.parse(dataString); + return data; +} + +/** + * where处理 单表 + * @param {*} where ,支持: in, like, not in, >=, >, <=, <, !=, <> + * { + INFO_EXPIRE_TIME: [ //多条件 + ['>=', 3], + ['<=', 8], + ['<>', 5], + ['in', '6,7'] + ], + INFO_ORDER: ['<=', 9999], + INFO_TITLE: ['like', '1'] + } + + or支持******************* //TODO + 分2组 where.and / where.or + where.and 格式同以上where + where.or 可以传{xxx:11,yy:22} -----与条件 + [{xxx:111},{yy:22}] ------------ 或条件 + */ +function fmtWhere(where) { + if (typeof (where) == 'string') { + where = where.trim(); + if (where.length == 0) + return ''; + else + return `WHERE ${where}`; + } + + let w = ''; + for (let key in where) { + if (Array.isArray(where[key])) { + let op = where[key][0]; + if (!Array.isArray(op)) { + // 一维数组 + w += fmtWhereSimple(key, where[key]); + + } else { + // 二维数组 + for (let i = 0; i < where[key].length; i++) { + w += fmtWhereSimple(key, where[key][i]); + } + } + } else + w += fmtWhereSimple(key, where[key]); + + } + return `WHERE 1=1 ${w}`; +} + + +/** + * 单个where处理 + * @param {*} arr + */ +function fmtWhereSimple(key, arr) { + // 直接赋值的非数组 + if (!Array.isArray(arr)) { + if (arr) + return ` AND ${key}='${arr}' `; + else + return ''; + } + + // 数组 + let op = arr[0].toLowerCase().trim(); + let val = arr[1]; + let where = ''; + switch (op) { + case '=': + where += ` AND ${key} = '${val}' `; + break; + case '!=': + case '<>': + where += ` AND ${key} != '${val}' `; + break; + case '<': + where += ` AND ${key} < ${val} `; + break; + case '<=': + where += ` AND ${key} <= ${val} `; + break; + case '>': + where += ` AND ${key} > ${val} `; + break; + case '>=': + where += ` AND ${key} >= ${val} `; + break; + case 'like': + if (!util.isDefined(val) || !val) break; //无条件不搜索 + where += ` AND ${key} LIKE '%${val}%' `; + break; + case 'in': + where += ` AND ${key} IN (${val}) `; + break; + case 'not in': + where += ` AND ${key} NOT IN (${val}) `; + break; + default: + throw new AppError(`DB where OP error=[${op}]`, appCode.SVR); + break; + } + return where; +} + +/** + * 格式化插入数据 + * @param {*} data + */ +function fmtInsertData(data) { + let name = ''; + let val = '' + let params = []; + for (let key in data) { + name += ',' + key; + val += ',?'; + params.push(data[key]); + } + name = name.substr(1); + val = val.substr(1); + let sqlMid = ` (${name}) VALUES (${val}) `; + return {sqlMid, params}; +} + +/** + * 格式化修改数据 + * @param {*} data + */ +function fmtEditData(data) { + let sqlMid = ''; + let params = []; + for (let key in data) { + sqlMid += ',' + key + '=?'; + params.push(data[key]); + } + sqlMid = sqlMid.substr(1); + return {sqlMid, params}; +} + +/** + * 获取所有数据 + * @param {*} tableName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + * @returns list + */ +async function getAll(tableName, where, fields = '*', orderBy, size = MAX_RECORD_SIZE) { + size = Number(size); + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + // 排序 + orderBy = fmtOrderBy(orderBy); + + // 条件 + where = fmtWhere(where); + + let sql = `SELECT ${fields} FROM ${tableName} ${where} ${orderBy} LIMIT ${size}`; + try { + let list = await sqlExecute(sql); + list = fmtRowData(list); + return list; + } catch (err) { + // throw new AppError('db error', appCode.SVR) + return []; + } +} + +/** + * 获取单个数据 + * @param {*} tableName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @returns null or object + */ +async function getOne(tableName, where, fields = '*', orderBy = {}) { + // 排序 + orderBy = fmtOrderBy(orderBy); + + // 条件 + where = fmtWhere(where); + + let sql = `SELECT ${fields} FROM ${tableName} ${where} ${orderBy} LIMIT 1`; + try { + let list = await sqlExecute(sql); + list = fmtRowData(list); + if (list && list.length > 0) + return list[0]; + else + return null; + } catch (err) { + // throw new AppError('db error', appCode.SVR) + return null; + } +} + +/** + * 获取分页数据 + * @param {*} tableName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal + * @returns {page, size, list, total, oldTotal} + */ +async function getList(tableName, where, fields = '*', orderBy = {}, page = 1, size = DEFAULT_RECORD_SIZE, isTotal = true, oldTotal = 0) { + page = Number(page); + size = Number(size); + if (size > MAX_RECORD_SIZE) size = MAX_RECORD_SIZE; + + let data = { + page: page, + size: size + } + + let offset = 0; //记录偏移量 防止新增数据列表重复 + // 计算总页数 + if (isTotal) { + let total = await count(tableName, where); + data.total = total; + data.count = Math.ceil(total / size); + + if (page > 1 && oldTotal > 0) { + offset = data.total - oldTotal + if (offset < 0) offset = 0; + + } + } + + // 分页 + let start = (page - 1) * size + offset; + + // 排序 + orderBy = fmtOrderBy(orderBy); + + // 条件 + where = fmtWhere(where); + + + let sql = `SELECT ${fields} FROM ${tableName} ${where} ${orderBy} LIMIT ${start}, ${size}`; + try { + let list = await sqlExecute(sql); + list = fmtRowData(list); + data.list = list; + return data; + } catch (err) { + data.list = []; + return data; + } +} + + +/** + * 获取所有数据 + * @param {*} tableName + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + * @returns 返回影响值 + */ +async function del(tableName, where) { + // 条件 + where = fmtWhere(where); + + let sql = `DELETE FROM ${tableName} ${where} `; + try { + let res = await sqlExecute(sql); + return res.affectedRows; + } catch (err) { + // throw new AppError('db error', appCode.SVR) + return 0; + } +} + + +/** + * 添加数据 + * @param {*} tableName + * @param {*} data + * @returns 返回PK + */ +async function insert(tableName, data) { + + let {sqlMid, params} = fmtInsertData(data); + + let sql = `INSERT INTO ${tableName} ${sqlMid} `; + try { + let res = await sqlExecute(sql, params); + return res.insertId; + } catch (err) { + throw new AppError('db error', appCode.SVR) + } +} + + +/** + * 更新数据 + * @param {*} tableName + * @param {*} where 为非对象 则作为PK处理 + * @param {*} data + * @returns 影响行数 + */ +async function edit(tableName, where, data) { + + let {sqlMid, params} = fmtEditData(data); + + // 条件 + where = fmtWhere(where); + + let sql = `UPDATE ${tableName} SET ${sqlMid} ${where} `; + try { + let res = await sqlExecute(sql, params); + return res.affectedRows; + } catch (err) { + throw new AppError('db error', appCode.SVR) + } +} + + + + +/** + * 获取总数 + * @param {*} tableName + * @param {*} where + */ +async function count(tableName, where) { + where = fmtWhere(where); + + let sql = `SELECT COUNT(1) AS TOTAL FROM ${tableName} ${where} `; + + try { + let res = await sqlExecute(sql); + + res = fmtRowData(res); + if (res && res[0] && res[0].TOTAL) + return res[0].TOTAL; + else + return 0; + } catch (err) { + return 0; + } +} + +/** + * 字段自增 + * @param {*} tableName + * @param {*} where 为非对象 则作为PK处理 + * @param {*} field + * @param {*} val + * @returns 影响行数 + */ +async function inc(tableName, where, field, val = 1) { + where = fmtWhere(where); + + let sql = ''; + if (val > 0) + sql = `UPDATE ${tableName} SET ${field}=${field}+${val} ${where} `; + else + sql = `UPDATE ${tableName} SET ${field}=${field}-${-val} ${where} `; + + try { + let res = await sqlExecute(sql); + return res.affectedRows; + } catch (err) { + return 0; + } +} + +/** + * 执行 + * @param {*} sql + * @param {*} params 数据参数 + */ +function sqlExecute(sql, params = []) { + if (config.DB_DEBUG) console.error('[SQL] ' + sql); + if (config.DB_DEBUG && params.length > 0) console.error('[SQL PARAMS] '); + if (config.DB_DEBUG && params.length > 0) console.error(params); + + let pool = initPool(); + return new Promise((resolve, reject) => { + pool.getConnection((err, connection) => { + if (err) { + console.error('[DB ERROR] - ', err.message); + reject(err); + } else { + connection.query(sql, params, (err, effect) => { + if (err) { + console.error('[DB SELECT ERROR] - ', err.message); + reject(err); + } else { + resolve(effect); + } + connection.release(); + }); + + } + }); + }); +} + +module.exports = { + getAll, + getList, + del, + insert, + edit, + count, + inc, + getOne +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/lib/faker_lib.js b/cloudfunctions/cloud/framework/lib/faker_lib.js new file mode 100644 index 0000000..00119db --- /dev/null +++ b/cloudfunctions/cloud/framework/lib/faker_lib.js @@ -0,0 +1,798 @@ +/** + * Notes: 测试数据构造类 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-05-26 14:00:00 + */ +const config = require('../../config/config'); +const util = require('../utils/util.js'); +const timeUtil = require('../utils/time_util.js'); + + +/** 随机获取数据 */ +function getRnd(arr, isNullable = false, ex = '') { + + if (isNullable) { // 允许为空 + let rd = getIntBetween(0, 1); + if (rd % 2 == 0) return ''; + } + + + if (!Array.isArray(arr)) { + arr = arr.replace(/ /g, '').replace(/,/g, ',').split(','); + } + + let exArr = ex.replace(/ /g, '').replace(/,/g, ',').split(','); + let ret = ''; + + let i = 0; + while (true) { + i++; + if (i > 1000) return ''; + + ret = arr[Math.floor((Math.random() * arr.length))]; + if (!exArr.includes(ret)) + return ret; + } + +} + +/** 省份 */ +function getProvince(isNullable = false, ex = '') { + let data = ['北京市', '天津市', '河北省', '山西省', + '内蒙古自治区', '辽宁省', '吉林省', + '黑龙江省', '上海市', '江苏省', + '浙江省', '安徽省', '福建省', '江西省', + '山东省', '河南省', '湖北省', '湖南省', + '广东省', '广西壮族自治区', '海南省', + '重庆市', '四川省', '贵州省', '云南省', + '西藏自治区', '陕西省', '甘肃省', '青海省', + '宁夏回族自治区', '新疆维吾尔自治区', + '香港特别行政区', '澳门特别行政区', '台湾省' + ]; + return getRnd(data, isNullable, ex); +} + + +function getProvinceAbbr(isNullable = false, ex = '') { + let data = ['京', '皖', '渝', '闽', + '甘', '粤', '桂', '黔', + '琼', '冀', '豫', '黑', + '鄂', '湘', '吉', '苏', + '赣', '辽', '蒙', '宁', + '青', '鲁', '晋', '陕', + '沪', '川', '津', '藏', + '新', '滇', '浙', '港', + '澳', '台' + ]; + return getRnd(data, isNullable, ex); +} + +/** 城市 */ +function getCity(isNullable = false, ex = '') { + let data = ['北京', '上海', '天津', '重庆', + '哈尔滨', '长春', '沈阳', '呼和浩特', + '石家庄', '乌鲁木齐', '兰州', '西宁', + '西安', '银川', '郑州', '济南', + '太原', '合肥', '武汉', '长沙', + '南京', '成都', '贵阳', '昆明', + '南宁', '拉萨', '杭州', '南昌', + '广州', '福州', '海口', + '香港', '澳门' + ]; + return getRnd(data, isNullable, ex); +} + +/** 地区 */ +function getArea(isNullable = false, ex = '') { + let data = ['西夏区', '永川区', '秀英区', '高港区', + '清城区', '兴山区', '锡山区', '清河区', + '龙潭区', '华龙区', '海陵区', '滨城区', + '东丽区', '高坪区', '沙湾区', '平山区', + '城北区', '海港区', '沙市区', '双滦区', + '长寿区', '山亭区', '南湖区', '浔阳区', + '南长区', '友好区', '安次区', '翔安区', + '沈河区', '魏都区', '西峰区', '萧山区', + '金平区', '沈北新区', '孝南区', '上街区', + '城东区', '牧野区', '大东区', '白云区', + '花溪区', '吉利区', '新城区', '怀柔区', + '六枝特区', '涪城区', '清浦区', '南溪区', + '淄川区', '高明区', '金水区', '中原区', + '高新开发区', '经济开发新区', '新区' + ]; + return getRnd(data, isNullable, ex); +} + +/** 街道 */ +function getStreet(isNullable = false, ex = '') { + let data = '朱雀大街,太乙路,太白路,太华路,长乐坊,长樱路,案板街,竹笆市,骡马市,东木头市,西木头市,安仁坊,端履门,德福巷,洒金桥,冰窖巷,菊花园,下马陵,粉巷,索罗巷,后宰门,书院门,炭市街,马厂子,景龙池,甜水井,柏树林,桃花坞,人民路,解放路,黄河路,长江路,中山路,抚顺街,天津街,上海路,胜利路,西安路,长春路,太原街,沈阳路,鞍山路,五四路,唐山街,武汉街,延安路,朝阳街,鲁迅路,八一路,东北路,华南路,华北路,山东路,松江路,东方路,南沙街'; + return getRnd(data, isNullable, ex); +} + +/** 门牌地址 */ +function getAddress() { + return getProvince() + '' + getCity() + '市' + getArea() + '' + getStreet() + getIntBetween(1, 100) + '号'; +} + +/** 国家 */ +function getCountry(isNullable = false, ex = '') { + let data = ['阿富汗', '阿拉斯加', '阿尔巴尼亚', '阿尔及利亚', + '安道尔', '安哥拉', '安圭拉岛英', '安提瓜和巴布达', + '阿根廷', '亚美尼亚', '阿鲁巴岛', '阿森松', '澳大利亚', + '奥地利', '阿塞拜疆', '巴林', '孟加拉国', '巴巴多斯', + '白俄罗斯', '比利时', '伯利兹', '贝宁', '百慕大群岛', + '不丹', '玻利维亚', '波斯尼亚和黑塞哥维那', '博茨瓦纳', + '巴西', '保加利亚', '布基纳法索', '布隆迪', '喀麦隆', + '加拿大', '加那利群岛', '佛得角', '开曼群岛', '中非', + '乍得', '智利', '圣诞岛', '科科斯岛', '哥伦比亚', + '巴哈马国', '多米尼克国', '科摩罗', '刚果', '科克群岛', + '哥斯达黎加', '克罗地亚', '古巴', '塞浦路斯', '捷克', + '丹麦', '迪戈加西亚岛', '吉布提', '多米尼加共和国', + '厄瓜多尔', '埃及', '萨尔瓦多', '赤道几内亚', + '厄立特里亚', '爱沙尼亚', '埃塞俄比亚', '福克兰群岛', + '法罗群岛', '斐济', '芬兰', '法国', '法属圭亚那', + '法属波里尼西亚', '加蓬', '冈比亚', '格鲁吉亚', '德国', + '加纳', '直布罗陀', '希腊', '格陵兰岛', '格林纳达', + '瓜德罗普岛', '关岛', '危地马拉', '几内亚', '几内亚比绍', + '圭亚那', '海地', '夏威夷', '洪都拉斯', '匈牙利', '冰岛', + '印度', '印度尼西亚', '伊郎', '伊拉克', '爱尔兰', '以色列', + '意大利', '科特迪瓦', '牙买加', '日本', '约旦', '柬埔塞', + '哈萨克斯坦', '肯尼亚', '基里巴斯', '朝鲜', '韩国', '科威特', + '吉尔吉斯斯坦', '老挝', '拉脱维亚', '黎巴嫩', '莱索托', + '利比里亚', '利比亚', '列支敦士登', '立陶宛', '卢森堡', + '马其顿', '马达加斯加', '马拉维', '马来西亚', '马尔代夫', + '马里', '马耳他', '马里亚纳群岛', '马绍尔群岛', '马提尼克', + '毛里塔尼亚', '毛里求斯', '马约特岛', '墨西哥', '密克罗尼西亚', + '中途岛', '摩尔多瓦', '摩纳哥', '蒙古', '蒙特塞拉特岛', + '摩洛哥', '莫桑比克', '缅甸', '纳米比亚', '瑙鲁', '尼泊尔', + '荷兰', '荷属安的列斯群岛', '新喀里多尼亚群岛', '新西兰', + '尼加拉瓜', '尼日尔', '尼日利亚', '纽埃岛', '诺福克岛', + '挪威', '阿曼', '帕劳', '巴拿马', '巴布亚新几内亚', '巴拉圭', + '秘鲁', '菲律宾', '波兰', '葡萄牙', '巴基斯坦', '波多黎各', + '卡塔尔', '留尼汪岛', '罗马尼亚', '俄罗斯', '卢旺达', + '东萨摩亚', '西萨摩亚', '圣马力诺', '圣皮埃尔岛及密克隆岛', + '圣多美和普林西比', '沙特阿拉伯', '塞内加尔', '塞舌尔', + '新加坡', '斯洛伐克', '斯洛文尼亚', '所罗门群岛', '索马里', + '南非', '西班牙', '斯里兰卡', '圣克里斯托弗和尼维斯', + '圣赫勒拿', '圣卢西亚', '圣文森特岛', '苏丹', '苏里南', + '斯威士兰', '瑞典', '瑞士', '叙利亚', '塔吉克斯坦', '坦桑尼亚', + '泰国', '阿拉伯联合酋长国', '多哥', '托克劳群岛', '汤加', + '特立尼达和多巴哥', '突尼斯', '土耳其', '土库曼斯坦', + '特克斯和凯科斯群岛(', '图瓦卢', '美国', '乌干达', '乌克兰', + '英国', '乌拉圭', '乌兹别克斯坦', '瓦努阿图', '梵蒂冈', + '委内瑞拉', '越南', '维尔京群岛', '维尔京群岛和圣罗克伊', + '威克岛', '瓦里斯和富士那群岛', '西撒哈拉', '也门', '南斯拉夫', + '扎伊尔', '赞比亚', '桑给巴尔', '津巴布韦', '中华人民共和国', '中国' + ]; + return getRnd(data, isNullable, ex); +} + + +/** 公司简称 */ +function getCompanyPrefix(isNullable = false, ex = '') { + let data = ['超艺', '和泰', '九方', '鑫博腾飞', '戴硕电子', + '济南亿次元', '海创', '创联世纪', '凌云', '泰麒麟', + '彩虹', '兰金电子', '晖来计算机', '天益', '恒聪百汇', + '菊风公司', '惠派国际公司', '创汇', '思优', '时空盒数字', + '易动力', '飞海科技', '华泰通安', '盟新', '商软冠联', + '图龙信息', '易动力', '华远软件', '创亿', '时刻', + '开发区世创', '明腾', '良诺', '天开', '毕博诚', '快讯', + '凌颖信息', '黄石金承', '恩悌', '雨林木风计算机', + '双敏电子', '维旺明', '网新恒天', '数字100', '飞利信', + '立信电子', '联通时科', '中建创业', '新格林耐特', + '新宇龙信息', '浙大万朋', 'MBP软件', '昂歌信息', + '万迅电脑', '方正科技', '联软', '七喜', '南康', '银嘉', + '巨奥', '佳禾', '国讯', '信诚致远', '浦华众城', '迪摩', + '太极', '群英', '合联电子', '同兴万点', '襄樊地球村', + '精芯', '艾提科信', '昊嘉', '鸿睿思博', '四通', '富罳', + '商软冠联', '诺依曼软件', '东方峻景', '华成育卓', '趋势', + '维涛', '通际名联' + ]; + return getRnd(data, isNullable, ex); +} + +/** 公司类型 */ +function getCompanyType(isNullable = false, ex = '') { + let data = ['科技', '网络', '信息', '传媒', '集团', '控股', '投资', '制造']; + return getRnd(data, isNullable, ex); +} + +/** 公司名 */ +function getCompany(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + return getCompanyPrefix(false, ex) + getCompanyType() + '有限公司'; +} + +/** 内容 */ +function getContent(size = 1, isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let data = [ + '燕舞,燕舞,一曲歌来一片情。', + '康师傅方便面,好吃看得见。', + '不要太潇洒!', + '让一亿人先聪明起来。', + '共创美的前程,共度美的人生。', + '省优,部优,葛优?', + '喝孔府宴酒,做天下文章。', + '健康成就未来。', + '牙好,胃口就好,身体倍儿棒,吃嘛嘛香。', + '永远的绿色,永远的秦池。', + '坐红旗车,走中国路。', + '要想皮肤好,早晚用大宝。', + '孔府家酒,叫人想家。', + '补钙新观念,吸收是要害。', + '喝汇源果汁,走健康之路。', + '爱的就是你!', + '一种可以世袭的古典浪漫', + '实力创造价值', + '爱生活,爱拉芳!', + '人类失去联想,世界将会怎样?', + '做女人挺好!', + '世界在你眼中?', + '今天你有否亿唐?', + '只溶在口,不溶在手。', + '三千烦恼丝,健康新开始。', + '维维豆奶,欢乐开怀。', + '我们的光彩来自你的风采。', + '钻石恒久远,一颗永流传。', + '放我的真心在你的手心。', + '小身材,大味道。', + '牛奶香浓,丝般感受。', + '聆听并不代表沉默,有时安静也是一种力量。', + '滴滴香浓,意犹未尽。', + '水晶之恋,一生不变。', + '中国移动通信,沟通从心开始!', + '网易,网聚人的力量!', + '科技以人为本,诺基亚', + '我们一直在努力!', + '阳光总在风雨后', + '男人对西服的要求,就是女人对男人的要求', + '晚报,不晚报', + '原来生活可以更美的', + '明天的明天,你还会送我“水晶之恋”吗?', + '卫浴出出进进的快感', + '有家就有联合利华', + '减脂减肥,其实是一种生活态度', + '人头马一开,好事自然来。', + '假如五指一样长,怎能满足用户不同需求?', + '新飞广告做的好,不好新飞冰箱好', + '传奇品质,百年张裕', + '李宁:把出色留给自己', + '一旦拥有,别无选择', + '科技让你更轻松', + '情系中国结,联通四海心', + '海尔,中国造', + 'SOHU:足迹生活每一天', + '果冻我要喜之郎', + '国宝大熊猫,心纯天自高', + '世界因为不同', + '放低偏见,你会有出色发现!', + 'Just', + '创意似金,敬业如牛', + '不要让男人一手把握', + '如同情人的手', + '金窝银窝,不如自己的安乐窝。', + '没有什么大不了的', + '时间因我存在', + '只要有梦想', + '南方周末', + '时间改变一切', + '地球人都知道了', + '众里寻他千百度,想要几度就几度', + '您身边的银行,可信赖的银行', + '三叶钢琴:学琴的孩子不会变坏', + '柯达:串起生活每一刻', + '大众甲克虫汽车:想想还是小的好', + '一直被模拟,从未被超越', + '幸福生活', + '朗讯的创造力科技的原动力', + '事事因你而出色', + '运动之美,世界共享', + '鹤舞白沙', + '想知道“清嘴”的味道吗?', + '弹指一挥间,世界皆互联', + '更多选择、更多欢笑', + '方太,让家的感觉更好', + '世上仅此一件,今生与你结缘!', + '白里透红与众不同', + '没有蛀牙-佳洁士', + '有线的价值', + '享受快乐科技', + '四海一家的解决之道', + '娃哈哈纯净水:爱你等于爱自己', + '农民山泉:有点甜', + '博大精深,西门子', + '一切尽在把握', + '声声百思特,遥遥两相知', + '一呼天下应', + '让我们做得更好!', + '暖和亲情,金龙鱼的大家庭。', + '自然最健康,绿色好心情', + '支起网络世界', + '立邦漆:处处放光彩!', + 'fm365:真情互动!', + '庄重一生,吉祥一生。', + '人人都为礼品愁,我送北极海狗油。', + '假如说人生的离合是一场戏,那么百年的好合更是早有安排!', + '一品黄山天高云淡', + '上上下下的享受!', + '我是、我行、我素', + '让无力者有力,让悲观者前行', + '金利来—-男人的世界!', + '百衣百顺', + '聪明何必绝顶,慧根长留', + '水往高处流', + '大石化小,小石化了!', + '“闲”妻良母', + '“口服”,“心服”!', + '盛满青春的秘密!', + '三十六计走为上', + '为了她的节日,献上您纯金般的心!', + '用我们的钓线,你可以在鱼儿发现你之前先找到它', + '生活就是一场运动,喝下它。', + '选择维聚阿尔,已经表明你心明眼亮。', + '佳能,我们看得见你想表达什么。', + '天天都是春天', + '假如你不来,广告明星就是他', + '享受黑夜中偷拍的快感!', + '彩信发送动人一刻', + '灵感点亮生活!', + '聪明演绎,无处不在!', + '事业我一定争取,对你我从未放弃!', + '波导手机,手机中的战斗机', + '鄂尔多斯羊绒衫暖和全世界', + '洁婷245再大的动作也不要紧', + '做光明的牛,产光明的奶', + '假如你的汽车会游泳的话,请照直开,不必刹车。', + '永远要让驾驶执照比你自己先到期。', + '请记住,上帝并不是十全十美的,它给汽车预备了备件,而人没有。', + '小别意酸酸,欢聚心甜甜。', + '除钞票外,承印一切。', + '更多欢乐,更多选择', + '美由你做主', + '由我天地宽', + 'Sun是太阳,Java是月亮。', + '不断创新,因为专心', + '趁早下『斑』,请勿『痘』留。', + '创新就是生活', + '有一个漂亮的地方,万科四季花城', + '建筑无限生活', + '臭名远扬,香飘万里', + '尝尝欢笑,经常麦当劳', + '深入成就深度', + '出色湖南,红网了然!', + '因为网络,地球如村!', + '一种质感', + '恒久期盼', + '繁荣民族文化', + '不信,死给你看!', + '天生的,强生的', + '雪津啤酒,真情的味道!', + '听世界,打天下', + '雅芳比女人更了解女人', + 'Sun是太阳,Java是月亮。', + '中国网通', + '无线你的无限', + '家有三洋,冬暖夏凉', + '倾诉冬日暖语', + '谁让我心动?', + '灵活,让篮球场不再是一个平面', + '别吻我,我怕修。', + '一呼四应!', + '无所不包!', + '当之无愧', + '以帽取人!', + '一毛不拔!', + '自讨苦吃!', + '成功与科技共辉映', + '没有最', + ]; + + if (size == 1) + return getRnd(data, false, ex); + else { + ret = ''; + for (let i = 0; i < size; i++) { + ret += getRnd(data, false, ex) + ', '; + } + return ret; + } +} + +/** 获得一句话 */ +function getWord(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let ret = getContent(1, false, ex); + ret = ret.replace('。', '').replace('!', '').replace('?', '').replace('“', '”').replace(':', ''); + return ret; +} + +/** 星期 */ +function getWeek(isNullable = false, ex = '') { + let data = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; + return getRnd(data, isNullable, ex); +} + +/** 月份 */ +function getMonth(isNullable = false, ex = '') { + let data = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']; + return getRnd(data, isNullable, ex); +} + +/** 获得姓名 */ +function getFirstName(isNullable = false, ex = '') { + let data = ['李', '王', '张', '刘', '陈', '杨', '赵', '黄', '周', '吴', + '徐', '孙', '胡', '朱', '高', '林', '何', '郭', '马', '罗', + '梁', '宋', '郑', '谢', '韩', '唐', '冯', '于', '董', '萧', + '程', '曹', '袁', '邓', '许', '傅', '沉', '曾', '彭', '吕', + '苏', '卢', '蒋', '蔡', '贾', '丁', '林', '薛', '叶', '阎', + '余', '潘', '杜', '戴', '夏', '钟', '汪', '田', '任', '姜', + '范', '方', '石', '姚', '谭', '廖', '邹', '熊', '金', '陆', + '郝', '孔', '白', '崔', '康', '毛', '邱', '秦', '江', '史', + '顾', '侯', '邵', '孟', '龙', '万', '段', '雷', '钱', '汤', + '尹', '黎', '易', '常', '武', '乔', '贺', '赖', '龚', '文', + '庞', '樊', '兰', '殷', '施', '陶', '洪', '翟', '安', '颜', + '倪', '严', '牛', '温', '芦', '季', '俞', '章', '鲁', '葛', + '伍', '韦', '申', '尤', '毕', '聂', '丛', '焦', '向', '柳', + '邢', '路', '岳', '齐', '沿', '梅', '莫', '庄', '辛', '管', + '祝', '左', '涂', '谷', '祁', '时', '舒', '耿', '牟', '卜', + '路', '詹', '关', '苗', '凌', '费', '纪', '靳', '盛', '童', + '欧', '甄', '项', '曲', '成', '游', '阳', '裴', '席', '卫', + '查', '屈', '鲍', '位', '覃', '霍', '翁', '隋', '植', '甘', + '景', '薄', '单', '包', '司', '柏', '宁', '柯', '阮', '桂', + '闵', '欧阳', '解', '强', '柴', '华', '车', '冉', '房', '边', + '辜', '吉', '饶', '刁', '瞿', '戚', '丘', '古', '米', '池', + '滕', '晋', '苑', '邬', '臧', '畅', '宫', '来', '嵺', '苟', + '全', '褚', '廉', '简', '娄', '盖', '符', '奚', '木', '穆', + '党', '燕', '郎', '邸', '冀', '谈', '姬', '屠', '连', '郜', + '晏', '栾', '郁', '商', '蒙', '计', '喻', '揭', '窦', '迟', + '宇', '敖', '糜', '鄢', '冷', '卓', '花', '仇', '艾', '蓝', + '都', '巩', '稽', '井', '练', '仲', '乐', '虞', '卞', '封', + '竺', '冼', '原', '官', '衣', '楚', '佟', '栗', '匡', '宗', + '应', '台', '巫', '鞠', '僧', '桑', '荆', '谌', '银', '扬', + '明', '沙', '薄', '伏', '岑', '习', '胥', '保', '和', '蔺' + ]; + return getRnd(data, isNullable, ex); +} + + +/** 女生名 */ +function getFemaleName(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let data = ['芳', '娜', '敏', '静', '敏静', '秀英', '丽', '洋', '艳', '娟', + '文娟', '君', '文君', '珺', '霞', '明霞', '秀兰', '燕', '芬', '桂芬', + '玲', '桂英', '丹', '萍', '华', '红', '玉兰', '桂兰', '英', '梅', + '莉', '秀珍', '雪', '依琳', '旭', '宁', '婷', '馨予', '玉珍', '凤英', + '晶', '欢', '玉英', '颖', '红梅', '佳', '倩', '琴', '兰英', '云', + '洁', '爱华', '淑珍', '春梅', '海燕', '晨', '冬梅', '秀荣', '瑞', '桂珍', + '莹', '秀云', '桂荣', '秀梅', '丽娟', '婷婷', '玉华', '琳', '雪梅', '淑兰', + '丽丽', '玉', '秀芳', '欣', '淑英', '桂芳', '丽华', '丹丹', '桂香', '淑华', + '秀华', '桂芝', '小红', '金凤', '文', '利', '楠', '红霞', '瑜', '桂花', + '璐', '凤兰', '腊梅', '瑶', '嘉', '怡', '冰冰', '玉梅', '慧', '婕' + ]; + return getFirstName(false, ex) + getRnd(data, false, ex); +} + +/** 男生名 */ +function getMaleName(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let data = ['伟', '强', '磊', '洋', '勇', '军', '杰', '涛', '超', '明', + '刚', '平', '辉', '鹏', '华', '飞', '鑫', '波', '斌', '宇', + '浩', '凯', '健', '俊', '帆', '帅', '旭', '宁', '龙', '林', + '欢', '阳', '建华', '亮', '成', '畅', '建', '峰', '建国', '建军', + '晨', '瑞', '志强', '兵', '雷', '东', '欣', '博', '彬', '坤', + '全安', '荣', '岩', '杨', '文', '利', '楠', '建平', '嘉俊', '晧', + '建明', '子安', '新华', '鹏程', '学明', '博涛', '捷', '文彬', '楼', '鹰', + '松', '伦', '超', '钟', '瑜', '振国', '洪', '毅', '昱然', '哲', + '翔', '翼', '祥', '国庆', '哲彦', '正诚', '正豪', '正平', '正业', '志诚', + '志新', '志勇', '志明', '志强', '志文', '致远', '智明', '智勇', '智敏', '智渊' + ]; + return getFirstName(false, ex) + getRnd(data, false, ex); +} + +/** 随机获得姓名 */ +function getName(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let rd = Math.round(Math.random()); + return (rd % 2 == 0) ? getFemaleName(false, ex) : getMaleName(false, ex); +} + +/** 身份证号码 */ +function getIdCard(birthday = '', isNullable = false) { + if (getNullable(isNullable)) return ''; + + let coefficientArray = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"]; // 加权因子 + let lastNumberArray = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; // 校验码 + let address = "420101"; // 住址 + + if (!birthday) + birthday = "19810101"; // 生日 + + let s = Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString() + Math.floor(Math.random() * 10).toString(); + let array = (address + birthday + s).split(""); + let total = 0; + for (i in array) { + total = total + parseInt(array[i]) * parseInt(coefficientArray[i]); + } + let lastNumber = lastNumberArray[parseInt(total % 11)]; + let str = address + birthday + s + lastNumber; + return str; + +} + +/** 手机号码 */ +function getMobile(isNullable = false, ex = '') { + + if (getNullable(isNullable)) return ''; + + let data = ['133', '149', '153', '173', '177', '180', '181', '189', '190', '191', '193', '199', '130', '131', '132', '145', '155', '156', '166', '167', '171', '175', '176', '185', '186', '196', '134', '135', '136', '137', '138', '139', '147', '148', '150', '151', '152', '157', '158', '159', '172', '178', '182', '183', '184', '187', '188', '195', '197', '198']; + + return getRnd(data, false, ex) + getInt(8); +} + +/** 电话号码 */ +function getPhone(isNullable = false, ex = '') { + + if (getNullable(isNullable)) return ''; + + let data = ['010', '021', '022', '023', '020', '024', '025', '027', '028', '029', '0755', '0731', '0769']; + + return getRnd(data, false, ex) + '-' + getInt(8); +} + +/** 常用英文单词 */ +function getEnWord(isNullable = false, ex = '') { + let data = 'earthday,org,suggests,that,every,household,take,time,this,earth,day,to,perform,a,plastic,audit,which,involves,counting,how,many,plastic,containers,wraps,bottles,and,bags,are,purchased,for,at,home,use,it,may,surprise,you,how,many,you,use,until,you,start,counting,while,were,not,saying,that,you,have,to,get,rid,of,every,single,ounce,of,plastic,in,your,home,it,is,important,to,be,aware,of,your,familys,plastic,usage,and,to,take,time,to,research,more,sustainable,products,and,start,to,incorporate,them,into,your,daily,life,simple,swaps2,like,glass,containers,instead,of,plastic,or,stainless3,steel,bottles,instead,of,single,use,plastics,can,go,a,long,way,to,making,a,difference'; + + return getRnd(data, isNullable, ex); +} + +/** 常用域名 */ +function getDomain(isNullable = false, ex = '') { + + if (getNullable(isNullable)) return ''; + + let data = 'com,net,org,cn,hk,us,uk,jp,kr'; + + return '.' + getRnd(data, false, ex); +} + +/** 常用邮箱 */ +function getEmail(isNullable = false, ex = '') { + if (getNullable(isNullable)) return ''; + + let data = 'qq.com,163.com,gmail.com,263.com,tom.com,163.net,189.cn,sina.com,sohu.com,360.com,tencent.com,china.com,netease.com,126.com,139.com'; + + return getEnWord() + '@' + getRnd(data, false, ex); +} + +/** 获取时间戳 step 秒 */ +function getTimestamp(step = 0) { + return timeUtil.time() + step * 1000; +} + +/** + * 以当天为基点,获取随机时间戳,默认为当天 + * @param {*} min 起始 + * @param {*} max 终止 + */ +function getAddTimestamp(min = 0, max = 1) { + let now = timeUtil.timestamp2Time(timeUtil.time(), 'Y-M-D'); //转为当天0点 + now = timeUtil.time2Timestamp(now); + return now + getIntBetween(min * 86400 * 1000, max * 86400 * 1000); +} + +/** 生日 */ +function getDate(start = 1900, end = 2020) { + + start = start + '-01-01 00:00:00'; + start = timeUtil.time2Timestamp(start); + + end = end + '-12-31 23:59:59'; + end = timeUtil.time2Timestamp(end); + + let time = getIntBetween(start, end); + + return timeUtil.timestamp2Time(time, 'Y-M-D'); +} + +/** 整数 */ +function getInt(size) { + let t = ''; + for (var i = 0; i < size; i++) { + t += Math.floor(Math.random() * 10); + } + return t; +} + +/** 随机数组 */ +function getRdArr(arr) { + return getRnd(arr); +} + +/** 随机数组 */ +function getIntBetween(min, max) { + return min + Math.floor(Math.random() * (max - min + 1)); +} + +/** 随机字符串 */ +function getStr(size) { + + let text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < size; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + +} + +/** 随机数字字符串 */ +function getIntStr(size) { + + let text = '0123456789'; + let rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < size; rdmString += text.charAt(rdmIndex(text))); + return String(rdmString); + +} + +/** 随机字符串小写 */ +function getStrLower(size) { + return getStr(size).toLowerCase(); +} + +/** 随机字符串大写 */ +function getStrUpper(size) { + return getStr(size).toUpperCase(); +} + +function getUuid() { + let s = []; + let hexDigits = "0123456789abcdef"; + for (var i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); + } + s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 + s[8] = s[13] = s[18] = s[23] = "-"; + + let uuid = s.join(""); + return uuid; +} + +/** 学院 */ +function getCollege(isNullable = false, ex = '') { + let data = '地球科学学院,环境科学与工程学院,化学与生物工程学院,材料科学与工程学院,土木与建筑工程学院,测绘地理信息学院,信息科学与工程学院,机械与控制工程学院,珠宝学院,马克思主义学院,公共管理与传媒学院,商学院,旅游与风景园林学院,艺术学院,外国语学院,理学院,文学与新闻传播学院,外国语学院,建筑与艺术学院,商学院,法学院,马克思主义学院,公共管理学院,数学与统计学院,物理与电子学院,化学化工学院,文学系,法学系,哲学系,医学系,力学系,理学系,数学系,物理系,化学系,计算机系,自动化系,口腔医学系,英语系,外语系,法语系,德语系,日语系,西班牙语系'; + + return getRnd(data, isNullable, ex); +} + +/** 专业 */ +function getItem(isNullable = false, ex = '') { + let data = '音乐表演,音乐学,作曲与作曲技术理论,舞蹈表演,舞蹈学,舞蹈编导,舞蹈教育,航空服务艺术与管理,流行音乐,音乐治疗,流行舞蹈,表演,戏剧学,电影学,戏剧影视文学,广播电视编导,戏剧影视导演,戏剧影视美术设计,录音艺术,播音与主持艺术,动画,美术学,绘画,雕塑,摄影,书法学,中国画,实验艺术,跨媒体艺术,文物保护与修复,漫画,艺术设计学,视觉传达设计,环境设计,产品设计,服装与服饰设计,公共艺术,工艺美术,数字媒体艺术,艺术与科技,陶瓷艺术设计,新媒体设计,包装设计,教育学,科学教育,人文教育,教育技术学,艺术教育,学前教育,小学教育,特殊教育,华文教育,教育康复学,卫生教育,法学,知识产权,监狱学,信用风险管理与法律防控,国际经贸规则,司法警察学,社区矫正,工商管理,市场营销,会计学,财务管理,国际商务,人力资源管理,审计学,资产评估,物业管理,文化产业管理,劳动关系,体育经济与管理,财务会计教育,市场营销教育,零售业管理,农林经济管理,农村区域发展 ,公共事业管理,行政管理,劳动与社会保障,土地资源管理,城市管理,海关管理,交通管理,海事管理,公共关系学,健康服务与管理,海警后勤管理,数学与应用数学,信息与计算科学,数理基础科学,数据计算及应用 ,物理学,应用物理学,核物理,声学,系统科学与工程,地理科学,自然地理与资源环境,人文地理与城乡规划,地理信息科学 ,机械设计制造及其自动化,材料成型及控制工程,机械电子工程,工业设计,过程装备与控制工程,车辆工程,汽车服务工程,机械工艺技术,微机电系统工程,机电技术教育,汽车维修工程教育,智能制造工程,材料科学与工程材料物理,材料化学,冶金工程,金属材料工程,无机非金属材料工程,高分子材料与工程,复合材料与工程,粉体材料科学与工程,宝石及材料工艺学,焊接技术与工程,功能材料,纳米材料与技术,新能源材料与器件,材料设计科学与工程,光电信息科学与工程,信息工程,广播电视工程,水声工程,电子封装技术,集成电路设计与集成系统,医学信息工程,电磁场与无线技术,电波传播与天线,电子信息科学与技术,电信工程及管理,应用电子技术教育,数字媒体技术,智能科学与技术,空间信息与数字技术,电子与计算机工程,数据科学与大数据技术,网络空间安全,新媒体技术,电影制作,保密技术,服务科学与工程,虚拟现实技术,区块链工程,建筑环境与能源应用工程,给排水科学与工程,建筑电气与智能化,城市地下空间工程,道路桥梁与渡河工程,铁道工程,智能建造,土木、水利与海洋工程,土木、水利与交通工程,采矿工程,石油工程,矿物加工工程,油气储运工程,矿物资源工程,海洋油气工程 ,纺织工程,服装设计与工程,非织造材料与工程,服装设计与工艺教育,丝绸设计与工程'; + + return getRnd(data, isNullable, ex); +} + +/** 行业 */ +function getTrade(isNullable = false, ex = '') { + let data = ['经营', '销售', '市场营销', '公关', '客户服务', '人力资源', '行政HR', '财务/审计/统计', '文职', '翻译', '计算机/IT', '电子/通讯', '设计', '工业/工厂', '金融/经济', '法律', '机械', '技工', '房地产/土建', '咨询/顾问', '医疗/护理/保健', '服务业', '政府机关', '事业单位', '学生/研究生', '化工', '冶金/地质']; + + return getRnd(data, isNullable, ex); +} + +/** 学历 */ +function getEdu(isNullable = false, ex = '') { + let data = '中学,高职,大专,本科,硕士,博士,博士后,其他'; + + return getRnd(data, isNullable, ex); +} + +/** 职位 */ +function getDuty(isNullable = false, ex = '') { + let data = 'CTO,CEO,CFO,研发,销售,采购,董事长,老板,自由自由者,中层领导,部门经理,大区经理'; + + return getRnd(data, isNullable, ex); +} + +/** 资源 */ +function getResource(isNullable = false, ex = '') { + let data = '法律咨询,管理咨询,企业辅导,上市辅导,创业交流,投资融资,医疗咨询,教育交流,开发技术交流,研发交流,未来探讨,大宗商品,销售网络共享,艺术品鉴赏,供应链共享,进修交流,财会督导,审计辅导,企业治理,工程监理,硬件生产,小商品生产,电商,二类电商,早教,公考,艺术设计,人力资源,地质勘探,招工招聘,游戏开发,销售采购,市场营销,电子通讯,经济探讨,机械制造,产业经理,轻工业,化工化学,海外电商,企业出海,翻译,心理咨询,餐饮酒店,民宿,旅游自驾,服务业,租车,自媒体新媒体行业,文职人员,军迷,学习共勉,体育活动,打球约饭,户外旅行,文艺青年,小镇青年,斜杠青年,交通运输,民航机票,系统集成,售前服务,维修'; + + return getRnd(data, isNullable, ex); +} + +/** 自我介绍 */ +function getMotto(isNullable = false, ex = '') { + let data = '生无一锥土,常有四海心 ,志在山顶的人,不会贪念山腰的风景 ,人之所以能,是相信能 ,卒子过河,意在吃帅 ,心志要坚,意趣要乐 ,贫困教会贫困者一切 ,欲望以提升热忱,毅力以磨平高山 ,人生不得行胸怀,虽寿百岁犹为无也 ,人之所以异于禽者,唯志而已矣!,每一发奋努力的背后,必有加倍的赏赐 ,治天下者必先立其志 ,以天下为己任 ,一人立志,万夫莫敌 ,志高山峰矮,路从脚下伸 ,鹰爱高飞,鸦栖一枝 ,莫为一身之谋,而有天下之志 ,人之所以能,是相信能,励志短语,没有天生的信心,只有不断培养的信心 ,世上没有绝望的处境,只有对处境绝望的人 ,人格的完善是本,财富的确立是末 ,在年轻人的颈项上,没有什么东西能比事业心这颗灿烂的宝珠 ,壮志与毅力是事业的双翼 ,心有多大,舞台就有多大 ,志正则众邪不生 ,母鸡的理想不过是一把糠 ,死犹未肯输心去,贫亦其能奈我何!,鸟贵有翼,人贵有志 ,有志登山顶,无志站山脚 ,没有一种不通过蔑视忍受和奋斗就可以征服的命运 ,远大的希望造就伟大的人物 ,志不立,天下无可成之事 ,有志者能使石头长出青草来 ,莫找借口失败,只找理由成功 ,男子千年志,吾生未有涯 ,鱼跳龙门往上游 ,有志者,事竟成 ,强行者有志 ,心随朗月高,志与秋霜洁 ,与其当一辈子乌鸦,莫如当一次鹰 ,石看纹理山看脉,人看志气树看材 ,志当存高远 ,任何的限制,都是从自己的内心开始的 ,志,气之帅也 ,一个人如果胸无大志,既使再有壮丽的举动也称不上是伟人 ,立志是事业的大门,工作是登门入室的旅程 ,志气和贫困是患难兄弟,世人常见他们伴在一起 ,失败是成功之母 ,对的,坚持;错的,放弃!,丈夫志不大,何以佐乾坤 ,鸭仔无娘也长大,几多白手也成家 ,我走得很慢,但是我从来不会后退,面对太阳,阴影将落在你的背后,困境之中,饱含机遇,执着于理想,纯粹于当下,不要轻言放弃,否则对不起自己,含泪播种的人一定能含笑收获,日益努力,而后风生水起,若要梦想实现,先从梦中醒来,今天比昨天好,就是希望,希望叫醒你的不是闹钟而是理想,坚定信念的人都是英雄,欲戴皇冠,必承其重,昨日之深渊,来日之浅谈,天越黑,星星越亮,岂能尽如人意,但求无愧我心,世上没什么运气,只有努力去挑战,日出之美便在于它脱胎于最深的黑暗,不要等待机会,而要创造机会,成功的秘诀在于对目标的执着追求,我把苦难挫折当作自己生存的最好导师,黑夜无论怎样悠长,白昼总会到来,海到无边天作岸,山登绝顶我为峰,除了放弃尝试以外没有失败,有梦就别怕痛,想赢就别喊停, 与其羡慕别人,不如自己努力,努力就能成功,坚持确保胜利,永不言败,是成功者的最佳品格,人生没有彩排,每天都是现场直播,火把倒下,火焰依然向上,低头哭过别忘了抬头继续走,有种脾气叫不放弃,风乍起,合当奋意向人生,莫问收获,但问耕耘,即使身在生活,也要做你理想的卧底,我只身前行,却仿佛带着一万雄兵,熬过一切,星光璀璨,没有人帮你,说明你一个人可以,让理想生活的样子清晰可见,趁我们头脑发热,我们要不顾一切,念念不忘,必有回响,一生很短,你要大胆,容易走的路,一般都很拥挤,那些杀不死我们的,终将让我们更强大,你利用时间的方式,就是塑造自己的方式,每一个不曾起舞的日子,都是对生命的辜负,猛兽总是独行,牛羊才成群结队,你迷茫的原因在于读书太少而想的太多,对未来真正的慷慨,是把一切献给现在,没有一点儿疯狂,生活就不值得过,生活在阴沟里,但仍有人仰望星空,怕输的人已经输了,不要忘记人生是要战斗到死, 抱怨身处黑暗,不如提灯前行,患难困苦,是磨炼人格之高等学校,失败不是悲剧,放弃才是,画工须画云中龙,为人须为人中雄,博观而约取,厚积而薄发,志在山顶的人,不会贪恋山腰的风景,别为失败找理由,要为成功找方法,迷失的时候,选择更艰辛的那条路,命是弱者的借口,运是强者的谦词,如果今天不走的话,明天就要跑,今天度过的一天明天就找不回来了,生活绝不会因为你胆小怯懦而饶过你,最可怕的敌人,就是没有坚强的信念,梦想一旦被付诸行动,就会变得神圣,寄言燕雀莫相唣,自有云霄万里高,人若有志,万事可为,志不可一日坠,人不可一日放,苦难,是化了妆的祝福,没有实力的愤怒毫无意义,在避风的港湾里,找不到昂扬的帆,大胆的尝试只等于成功了一半,天才就是无止境刻苦勤奋的能力,你是自己人生的设计师,苦想没盼头,苦干有奔头,世界会向那些有目标和远见的人让路,挫折其实就是迈向成功所应缴的学费,欲望以提升热忱,毅力以磨平高山,用行动祈祷比用言语更能够使上帝了解,志不立,天下无可成之事,志向和热爱是伟大行为的双翼,水激石则鸣,人激志则宏,雄心壮志是茫茫黑夜中的北斗星,贫而懒惰乃真穷,贱而无志乃真贱,目标越接近,困难越增加,绳锯木断,水滴石穿,男儿不展风云志,空负天生八尺躯,天才就是无止境刻苦勤奋的能力,苦难是人生的老师,成功的秘诀,在永不改变既定的目的,平凡的脚步也可以走完伟大的行程,如果你有梦想的话,就要去捍卫它,永远要面对眼前的这些困境,如果我放弃,就是向那些错看我的人屈服,运气,就是机会碰巧撞到了你的努力,哪有什么胜利可言,挺住就意味着一切,过去属于死神,未来属于你自己,失败是坚忍的最后考验,流水在碰到底处时才会释放活力'; + + return getRnd(data, isNullable, ex); +} + +/** 用户头像 */ +function getAvatar(isNullable) { + if (getNullable(isNullable)) return ''; + + return 'https://7265-release-7g51ulsq6451a0a6-1304820041.tcb.qcloud.la/mini/user_pic/' + getIntBetween(1, 200) + '.jpg'; +} + + +/** 是否为空 */ +function getNullable(isNullable) { + if (!isNullable) return false; + + let rd = getIntBetween(0, 1); + if (rd % 2 == 0) + return true; + else + return false; +} + + + + + +module.exports = { + getUuid, + getRnd, + + getIdCard, + + getProvince, + getProvinceAbbr, + + getCity, + getArea, + getCountry, + getStreet, + getAddress, + + getCompany, + getCompanyPrefix, + getResource, + getMotto, + + getContent, + getWord, + + getWeek, + getMonth, + getTimestamp, + getAddTimestamp, + + getFirstName, + getFemaleName, + getMaleName, + getName, + + getInt, + getRdArr, + getIntBetween, + getIntStr, + getStr, + getStrLower, + getStrUpper, + + getMobile, + getPhone, + + getEnWord, + getEmail, + getDomain, + + getDate, + + getItem, + getCollege, + getTrade, + getEdu, + getDuty, + + getAvatar +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/lib/http_lib.js b/cloudfunctions/cloud/framework/lib/http_lib.js new file mode 100644 index 0000000..13d9731 --- /dev/null +++ b/cloudfunctions/cloud/framework/lib/http_lib.js @@ -0,0 +1,88 @@ +/** + * Notes: HTTP接口封装类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-02-17 14:00:00 + */ +const config = require('../../config/config'); +const util = require('../utils/util.js'); + +function https(url, postData) { + var request = require('request'); + return new Promise(function (resolve, reject) { + + request.post(url, { + form: postData + }, + function (error, response, body) { + console.log('[BODY]' + body); + if (!error && response.statusCode == 200) { + let json = JSON.parse(body); + resolve(json); + } else { + console.error('https error', error || response.statusCode); + reject(error || response.statusCode); + } + } + ); + }); + +} +// 同步方法 +function post({ + host, + port = 80, + path, + timeout = 2000, //超时时间, 毫秒 + method = 'POST', + headers = { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' + } +}, postData) { + let http = require('http'); + let querystring = require('querystring'); + let content = querystring.stringify(postData); + + let options = {}; + if (util.isDefined(host)) options.host = host; + if (util.isDefined(port)) options.port = port; + if (util.isDefined(path)) options.path = path; + if (util.isDefined(timeout)) options.timeout = timeout; + if (util.isDefined(method)) options.method = method; + if (util.isDefined(headers)) options.headers = headers; + + return new Promise(function (resolve, reject) { + let req = http.request(options, function (res) { + console.log('[STATUS]: ' + res.statusCode); + res.setEncoding('utf8'); + res.on('data', function (chunk) { + console.log('[BODY]: ' + chunk); + + if (res.statusCode == 200) { + if (chunk) { + let json = JSON.parse(chunk); + resolve(json); + } else + resolve({}); + } else { + reject('status error=' + res.statusCode); //失败回调函数 + } + + }); + }); + + + req.on('error', function (e) { + console.log('[Problem with request]: ' + e.message); + reject(e); + }); + + // write data to request body + req.write(content); + req.end(); + + }); +} +module.exports = { + post, + https +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/lib/md5_lib.js b/cloudfunctions/cloud/framework/lib/md5_lib.js new file mode 100644 index 0000000..a479963 --- /dev/null +++ b/cloudfunctions/cloud/framework/lib/md5_lib.js @@ -0,0 +1,216 @@ +/** + * Notes: MD5类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-03-01 14:00:00 + */ + +function safe_add(x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF) + var msw = (x >> 16) + (y >> 16) + (lsw >> 16) + return (msw << 16) | (lsw & 0xFFFF) +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function rol(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)) +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function cmn(q, a, b, x, s, t) { + return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) +} + +function ff(a, b, c, d, x, s, t) { + return cmn((b & c) | ((~b) & d), a, b, x, s, t) +} + +function gg(a, b, c, d, x, s, t) { + return cmn((b & d) | (c & (~d)), a, b, x, s, t) +} + +function hh(a, b, c, d, x, s, t) { + return cmn(b ^ c ^ d, a, b, x, s, t) +} + +function ii(a, b, c, d, x, s, t) { + return cmn(c ^ (b | (~d)), a, b, x, s, t) +} + +/* + * Calculate the MD5 of an array of little-endian words, producing an array + * of little-endian words. + */ +function coreMD5(x) { + var a = 1732584193 + var b = -271733879 + var c = -1732584194 + var d = 271733878 + + for (var i = 0; i < x.length; i += 16) { + var olda = a + var oldb = b + var oldc = c + var oldd = d + + a = ff(a, b, c, d, x[i + 0], 7, -680876936) + d = ff(d, a, b, c, x[i + 1], 12, -389564586) + c = ff(c, d, a, b, x[i + 2], 17, 606105819) + b = ff(b, c, d, a, x[i + 3], 22, -1044525330) + a = ff(a, b, c, d, x[i + 4], 7, -176418897) + d = ff(d, a, b, c, x[i + 5], 12, 1200080426) + c = ff(c, d, a, b, x[i + 6], 17, -1473231341) + b = ff(b, c, d, a, x[i + 7], 22, -45705983) + a = ff(a, b, c, d, x[i + 8], 7, 1770035416) + d = ff(d, a, b, c, x[i + 9], 12, -1958414417) + c = ff(c, d, a, b, x[i + 10], 17, -42063) + b = ff(b, c, d, a, x[i + 11], 22, -1990404162) + a = ff(a, b, c, d, x[i + 12], 7, 1804603682) + d = ff(d, a, b, c, x[i + 13], 12, -40341101) + c = ff(c, d, a, b, x[i + 14], 17, -1502002290) + b = ff(b, c, d, a, x[i + 15], 22, 1236535329) + + a = gg(a, b, c, d, x[i + 1], 5, -165796510) + d = gg(d, a, b, c, x[i + 6], 9, -1069501632) + c = gg(c, d, a, b, x[i + 11], 14, 643717713) + b = gg(b, c, d, a, x[i + 0], 20, -373897302) + a = gg(a, b, c, d, x[i + 5], 5, -701558691) + d = gg(d, a, b, c, x[i + 10], 9, 38016083) + c = gg(c, d, a, b, x[i + 15], 14, -660478335) + b = gg(b, c, d, a, x[i + 4], 20, -405537848) + a = gg(a, b, c, d, x[i + 9], 5, 568446438) + d = gg(d, a, b, c, x[i + 14], 9, -1019803690) + c = gg(c, d, a, b, x[i + 3], 14, -187363961) + b = gg(b, c, d, a, x[i + 8], 20, 1163531501) + a = gg(a, b, c, d, x[i + 13], 5, -1444681467) + d = gg(d, a, b, c, x[i + 2], 9, -51403784) + c = gg(c, d, a, b, x[i + 7], 14, 1735328473) + b = gg(b, c, d, a, x[i + 12], 20, -1926607734) + + a = hh(a, b, c, d, x[i + 5], 4, -378558) + d = hh(d, a, b, c, x[i + 8], 11, -2022574463) + c = hh(c, d, a, b, x[i + 11], 16, 1839030562) + b = hh(b, c, d, a, x[i + 14], 23, -35309556) + a = hh(a, b, c, d, x[i + 1], 4, -1530992060) + d = hh(d, a, b, c, x[i + 4], 11, 1272893353) + c = hh(c, d, a, b, x[i + 7], 16, -155497632) + b = hh(b, c, d, a, x[i + 10], 23, -1094730640) + a = hh(a, b, c, d, x[i + 13], 4, 681279174) + d = hh(d, a, b, c, x[i + 0], 11, -358537222) + c = hh(c, d, a, b, x[i + 3], 16, -722521979) + b = hh(b, c, d, a, x[i + 6], 23, 76029189) + a = hh(a, b, c, d, x[i + 9], 4, -640364487) + d = hh(d, a, b, c, x[i + 12], 11, -421815835) + c = hh(c, d, a, b, x[i + 15], 16, 530742520) + b = hh(b, c, d, a, x[i + 2], 23, -995338651) + + a = ii(a, b, c, d, x[i + 0], 6, -198630844) + d = ii(d, a, b, c, x[i + 7], 10, 1126891415) + c = ii(c, d, a, b, x[i + 14], 15, -1416354905) + b = ii(b, c, d, a, x[i + 5], 21, -57434055) + a = ii(a, b, c, d, x[i + 12], 6, 1700485571) + d = ii(d, a, b, c, x[i + 3], 10, -1894986606) + c = ii(c, d, a, b, x[i + 10], 15, -1051523) + b = ii(b, c, d, a, x[i + 1], 21, -2054922799) + a = ii(a, b, c, d, x[i + 8], 6, 1873313359) + d = ii(d, a, b, c, x[i + 15], 10, -30611744) + c = ii(c, d, a, b, x[i + 6], 15, -1560198380) + b = ii(b, c, d, a, x[i + 13], 21, 1309151649) + a = ii(a, b, c, d, x[i + 4], 6, -145523070) + d = ii(d, a, b, c, x[i + 11], 10, -1120210379) + c = ii(c, d, a, b, x[i + 2], 15, 718787259) + b = ii(b, c, d, a, x[i + 9], 21, -343485551) + + a = safe_add(a, olda) + b = safe_add(b, oldb) + c = safe_add(c, oldc) + d = safe_add(d, oldd) + } + return [a, b, c, d] +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) { + var hex_tab = "0123456789abcdef" + var str = "" + for (var i = 0; i < binarray.length * 4; i++) { + str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF) + } + return str +} + +/* + * Convert an array of little-endian words to a base64 encoded string. + */ +function binl2b64(binarray) { + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + var str = "" + for (var i = 0; i < binarray.length * 32; i += 6) { + str += tab.charAt(((binarray[i >> 5] << (i % 32)) & 0x3F) | + ((binarray[i >> 5 + 1] >> (32 - i % 32)) & 0x3F)) + } + return str +} + +/* + * Convert an 8-bit character string to a sequence of 16-word blocks, stored + * as an array, and append appropriate padding for MD4/5 calculation. + * If any of the characters are >255, the high byte is silently ignored. + */ +function str2binl(str) { + var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks + var blks = new Array(nblk * 16) + for (var i = 0; i < nblk * 16; i++) blks[i] = 0 + for (var i = 0; i < str.length; i++) + blks[i >> 2] |= (str.charCodeAt(i) & 0xFF) << ((i % 4) * 8) + blks[i >> 2] |= 0x80 << ((i % 4) * 8) + blks[nblk * 16 - 2] = str.length * 8 + return blks +} + +/* + * Convert a wide-character string to a sequence of 16-word blocks, stored as + * an array, and append appropriate padding for MD4/5 calculation. + */ +function strw2binl(str) { + var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks + var blks = new Array(nblk * 16) + for (var i = 0; i < nblk * 16; i++) blks[i] = 0 + for (var i = 0; i < str.length; i++) + blks[i >> 1] |= str.charCodeAt(i) << ((i % 2) * 16) + blks[i >> 1] |= 0x80 << ((i % 2) * 16) + blks[nblk * 16 - 2] = str.length * 16 + return blks +} + +/* + * External interface + */ +function hexMD5(str) { + return binl2hex(coreMD5(str2binl(str))) +} + +function hexMD5w(str) { + return binl2hex(coreMD5(strw2binl(str))) +} + +function b64MD5(str) { + return binl2b64(coreMD5(str2binl(str))) +} + +function b64MD5w(str) { + return binl2b64(coreMD5(strw2binl(str))) +} +/* Backward compatibility */ +function calcMD5(str) { + return binl2hex(coreMD5(str2binl(str))) +} +module.exports = { + md5: hexMD5 +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/lib/mini_lib.js b/cloudfunctions/cloud/framework/lib/mini_lib.js new file mode 100644 index 0000000..e547857 --- /dev/null +++ b/cloudfunctions/cloud/framework/lib/mini_lib.js @@ -0,0 +1,50 @@ +/** + * Notes: 小程序封装类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-06 14:00:00 + */ +const cloudBase = require('../cloud/cloud_base.js'); +const cloudUtil = require('../cloud/cloud_util.js'); +const config = require('../../config/config'); + + +// 消息长度截取 +function fmtThing(str) { //20个以内字符,可汉字、数字、字母或符号组合 + return str.substr(0, 20); +} + +function fmtCharacterString(str) { //32位以内数字、字母或符号 + return str.substr(0, 32); +} + +function fmtPhrase(str) { //5个以内汉字 + return str.substr(0, 5); +} + + + +/** + * 发送一次性消息 + * @param {*} body + * @param {*} key + */ +async function sendMiniOnceTempMsg(body, key = '') { +// console.log('##sendOnceTempMsg[' + key + ']', body); + let cloud = cloudBase.getCloud(); + try { + // 默认参数 + body.lang = 'zh_CN'; + body.miniprogramState = 'formal'; + + await cloud.openapi.subscribeMessage.send(body); + } catch (err) { + cloudUtil.log('##sendOnceTempMsg[' + key + ']', err); + } +} +module.exports = { + sendMiniOnceTempMsg, + + fmtThing, + fmtCharacterString, + fmtPhrase +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/cache_util.js b/cloudfunctions/cloud/framework/utils/cache_util.js new file mode 100644 index 0000000..9ba3108 --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/cache_util.js @@ -0,0 +1,111 @@ +/** + * Notes: 缓存相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2022-01-26 04:00:00 + */ + +const CacheModel = require('../../project/model/cache_model.js'); +const config = require('../../config/config.js'); + +/** + * 设置 + * key 键key + * val 值value + * t 秒 + */ +async function set(key, val, t = 86400 * 30) { + if (!config.IS_CACHE) return; + + if (!key) return null; + + let where = { + CACHE_KEY: key + } + + let seconds = parseInt(t); + if (seconds > 0) { + let timeout = new Date().getTime(); + timeout = timeout + seconds * 1000; + + let data = { + CACHE_VALUE: { + val + }, + CACHE_TIMEOUT: timeout + } + await CacheModel.insertOrUpdate(where, data); + + } else { + await CacheModel.del(where); + } +} + + +/** + * 获取 + * k 键key + * def 默认值 + */ +async function get(key, def = null) { + if (!config.IS_CACHE) return null; + + if (!key) return null; + + let where = { + CACHE_KEY: key + } + + let cache = await CacheModel.getOne(where, 'CACHE_VALUE,CACHE_TIMEOUT'); + if (!cache) return def; + + if (cache.CACHE_TIMEOUT < new Date().getTime()) { + CacheModel.del(where); + return def; + } + + let res = cache.CACHE_VALUE.val; + + if (res === undefined) { + return def; + } else { + return res; + } +} + +/** + * 删除 + * @param {*} key + * @param {*} fuzzy 是否模糊匹配 + */ +async function remove(key, fuzzy = false) { + if (!config.IS_CACHE) return; + if (!key) return; + + let where = { + CACHE_KEY: key + } + + if (fuzzy) { + where.CACHE_KEY = { + $regex: '.*' + key, + $options: 'i' + }; + } + + await CacheModel.del(where); +} + +/** + * 清除所有key + */ +async function clear() { + if (!config.IS_CACHE) return; + await CacheModel.clear(); +} + +module.exports = { + set, + get, + remove, + clear +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/constant.js b/cloudfunctions/cloud/framework/utils/constant.js new file mode 100644 index 0000000..7c5a34b --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/constant.js @@ -0,0 +1,8 @@ + /** + * Notes: 通用常量定义 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ +module.exports = { + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/data_util.js b/cloudfunctions/cloud/framework/utils/data_util.js new file mode 100644 index 0000000..0b79cce --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/data_util.js @@ -0,0 +1,434 @@ + /** + * Notes: 字符相关操作函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + + + /** + * 生成一个特定范围内的随机数 + */ + const genRandomNum = (min, max) => (Math.random() * (max - min + 1) | 0) + min; + + // 生成一个随机的数字字母字符串 + const genRandomString = len => { + const text = 'abcdefghijklmnopqrstuvwxyz0123456789'; + const rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < len; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + } + + // 生成一个随机的数字字符串 + const genRandomIntString = len => { + const text = '0123456789'; + const rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < len; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + } + + // 生成一个随机的字母字符串 + const genRandomAlpha = len => { + const text = 'abcdefghijklmnopqrstuvwxyz'; + const rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < len; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + } + + + // 拆分一维数组为二维数组 + function spArr(arr, size) { + if (!arr || !Array.isArray(arr) || arr.length == 0) return arr; + + let newArray = []; + let index = 0; + while (index < arr.length) { + newArray.push(arr.slice(index, index += size)); + } + return newArray; + } + + /** + * 把字符串格式化为数组 + * @param {*} str + * @param {*} sp + */ + function str2Arr(str, sp = ',') { + if (str && Array.isArray(str)) return str; + + str = str.replace(/,/g, sp); + let arr = str.split(sp); + for (let i = 0; i < arr.length; i++) { + arr[i] = arr[i].trim(); + + if (isNumber(arr[i])) { + arr[i] = Number(arr[i]); + } + + } + return arr; + } + + /** + * 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true + * @param {*} val + * @returns bool + */ + function isNumber(val) { + var reg = /^[0-9]+.?[0-9]*$/; + if (reg.test(val)) { + return true; + } else { + return false; + } + } + + /** + * 提取对象数组的某个属性数组,如[{'x':1},{'x':2}] 提取 x得到[1,2] + * @param {*} arr + * @param {*} key + * @returns [] + */ + function getArrByKey(arr, key) { + if (!Array.isArray(arr)) return; + return arr.map((item) => { + return item[key] + }); + } + + /** + * 提取对象数组的多个属性数组, + * 如 [{'x':1,'y':11,'z':111},{'x':2,'y':22,'z':222}] + * 提取 ['x','y'] 得到[{'x':1,'y':11},{'x':2,'y':22}] + * @param {*} arr + * @param {*} keys + * @returns [] + */ + function getArrByKeyMulti(arr, keys = []) { + if (!Array.isArray(arr)) return; + if (!Array.isArray(keys)) return; + + let ret = []; + for (let k in arr) { + let node = {}; + for (let j in keys) { + node[keys[j]] = arr[k][keys[j]]; + } + ret.push(node); + } + + return ret; + } + + /** + * 提取对象数组某个键值等于某值的对象数据 + * @param {*} arr + * @param {*} key + * @param {*} val + * @returns object {} + */ + function getDataByKey(arr, key, val) { + if (!Array.isArray(arr)) return null; + + for (let k in arr) { + if (arr[k][key] == val) + return arr[k]; + } + + return null; + } + + /** + * 文本内容格式化处理 + * @param {*} content + * @param {*} len 截取长度 -1不截取 + */ + function fmtText(content, len = -1) { + if (!content) return content; + let str = content.replace(/[\r\n]/g, ""); //去掉回车换行 + if (len > 0) { + str = str.substr(0, len); + } + return str.trim(); + } + + // 下划线转换驼峰 + function toHump(name) { + name = name.replace(/\_(\w)/g, function (all, letter) { + return letter.toUpperCase(); + }); + + // 首字母大写 + let firstChar = name.charAt(0).toUpperCase(); + return firstChar + name.slice(1); + } + + // 驼峰转换下划线 + function toLine(name) { + name = name.replace(/([A-Z])/g, "_$1").toLowerCase(); + + //如果首字符为下划线,干掉 + if (name.charAt(0) === '_') + return name.slice(1); + else + return name; + } + + // 金额格式化 dot为金额每隔三位用","或" "间隔 + function fmtMoney(s, dot = '') { + s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(2) + ""; + var l = s.split(".")[0].split("").reverse(), + r = s.split(".")[1]; + t = ""; + for (i = 0; i < l.length; i++) { + t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : ""); + } + return t.split("").reverse().join("") + "." + r; + } + + /** + *简单数组转对象数组 + * @param {*} arr [1,2,3] + * @param {*} key [x1,x2,x3] + * @returns [{x1:1,x2:1,x3:1},{x1:2,x2:2,x3:2},{x1:3,x2:3,x3:3}] + */ + function arr2ObjectArr(arr, key1, key2, key3) { + let ret = []; + for (let k in arr) { + let obj = {}; + if (key1) obj[key1] = arr[k]; + if (key2) obj[key2] = arr[k]; + if (key3) obj[key3] = arr[k]; + ret.push(obj); + } + return ret; + } + + /** + * property + * @param {*} property 排序属性 + * @returns 排序好的数组 + * 用法 arr.sort(compare('age')) + */ + function objArrSortAsc(property) { + return function (a, b) { + var value1 = a[property]; + var value2 = b[property]; + if (value1 < value2) + return -1; + else if (value1 > value2) + return 1; + else return 0; + } + } + + /** + * property + * @param {*} property 排序属性 + * @returns 排序好的数组 + * 用法 arr.sort(compare('age')) + */ + function objArrSortDesc(property) { + return function (a, b) { + var value1 = a[property]; + var value2 = b[property]; + if (value1 < value2) + return 1; + else if (value1 > value2) + return -1; + else return 0; + } + } + + /** + * 数组有则减少,无则增加 + * @param {*} arr + * @param {*} data + * @param {*} sort 排序方式 asc/desc + */ + function arrAddDel(arr, data, sort = 'asc') { + if (!arr) return arr; + if (!Array.isArray(arr)) return arr; + + let idx = arr.indexOf(data); + if (idx > -1) + arr.splice(idx, 1); + else + arr.push(data) + + if (sort == 'asc') + return arr.sort(); + else + return arr.reverse(); + } + + function objArrMerge(arr1, arr2) { + for (let k in arr1) {} + } + + + //数据深度拷贝 + function deepClone(data) { + if (data === null || typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean' || typeof data === 'undefined') { + return data; + } + + return JSON.parse(JSON.stringify(data)); + } + + function padLeft(str, len, charStr) { + if (!str) + str = ''; + else + str = str + ''; + return new Array(len - str.length + 1).join(charStr || '') + str; + } + + function padRight(str, len, charStr) { + if (!str) + str = ''; + else + str = str + ''; + return str + new Array(len - str.length + 1).join(charStr || ''); + } + + + // 选项表单处理 + function getSelectOptions(str) { + if (!str) + return []; + else if (str.includes('=')) { + let arr = str.split(','); + for (let k in arr) { + let node = arr[k].split('='); + arr[k] = {}; + arr[k].label = node[1]; + arr[k].val = node[0]; + } + return arr; + } else { + return str.split(','); + } + } + + // 数组元素交换位置 index1和index2分别是两个数组的索引值 + function arraySwap(arr, index1, index2) { + arr[index1] = arr.splice(index2, 1, arr[index1])[0]; + return arr; + } + + // 数组置顶 + function arrayTop(arr, idx) { + let node = arr.splice(idx, 1)[0]; + arr.unshift(node); + return arr; + } + + // 数组置底 + function arrayBottom(arr, idx) { + let node = arr.splice(idx, 1)[0]; + arr.push(node); + return arr; + } + + /** + * 把某个值/对象按key插到某个对象数组 + * @param {*} arr 目标数组 + * @param {*} key 键 + * @param {*} val 判断值 + * @param {*} obj 插入对象{} + */ + function insertObjArrByKey(arr, key, val, obj) { + if (!arr) return arr; + + for (let k in arr) { + if (arr[k][key] == val) { + // 发现存在 + arr[k].list.push(obj); + return arr; + } + } + + // 不存在 + let newObj = { + [key]: val, + list: [obj] + } + arr.push(newObj); + return arr; + } + + /** + * 从对象数组中, 根据某个键值 获取满足的对象 + * @param {*} arr + * @param {*} key + * @param {*} val + */ + function getValFromArr(arr, key = 'val', val = '') { + if (!Array.isArray(arr)) return null; + for (let k in arr) { + if (arr[k][key] == val) + return arr[k]; + } + + return null; + } + + // 把字符串按关键字转为数组 + function splitTextByKey(txt, key) { + if (txt === null || txt === undefined) return []; + if (key === null || key === undefined || key.trim() == '') return [String(txt)]; + + key = String(key).trim(); + txt = String(txt); + let arr = txt.split(key); + let ret = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i] !== '') ret.push(arr[i]); + if (i != (arr.length - 1)) ret.push(key); + } + return ret; + return ret; + } + + module.exports = { + arrayTop, + arraySwap, + arrayBottom, + + getValFromArr, + getArrByKey, + getArrByKeyMulti, //提取对象数组的多个属性数组 + spArr, //拆分一维数组为二维 + getDataByKey, + str2Arr, + arr2ObjectArr, + insertObjArrByKey, + arrAddDel, + objArrSortAsc, + objArrSortDesc, + splitTextByKey, + + arrAddDel, + isNumber, + + padLeft, + padRight, + + genRandomString, // 随机字符串 + genRandomIntString, + genRandomAlpha, + genRandomNum, // 随机数字 + fmtText, // 文本内容格式化处理 + fmtMoney, //金额格式化 + + toHump, + toLine, + + getSelectOptions, //选项表单处理 + + deepClone + + } \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/log_util.js b/cloudfunctions/cloud/framework/utils/log_util.js new file mode 100644 index 0000000..8e67216 --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/log_util.js @@ -0,0 +1,100 @@ + /** + * Notes: 日志操作函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-06-12 04:00:00 + */ + const timeUtil = require('./time_util.js'); + + class LogUtil { + + constructor(level = 'info') { + this.logOut = ''; // 输出日志内容 + + level = level.toLowerCase(); + if (level == 'err') level = 'error'; + + switch (level) { + case 'debug': + level = LogUtil.LEVEL.DEBUG; + break; + case 'info': + level = LogUtil.LEVEL.INFO; + break; + case 'warn': + level = LogUtil.LEVEL.WARN; + break; + case 'error': + level = LogUtil.LEVEL.ERROR; + break; + case 'fatal': + level = LogUtil.LEVEL.FATAL; + break; + case 'none': + level = LogUtil.LEVEL.NONE; + break; + default: + level = LogUtil.LEVEL.INFO; + } + this.level = level; + } + + debug(str, ex = '') { + if (this.level > LogUtil.LEVEL.DEBUG) return; + + console.debug('[' + this._getTime() + '] DEBUG: ' + str, ex); + this.logOut += "######" + '[' + this._getTime() + '] DEBUG: ' + str + (ex ? JSON.stringify(ex) : ''); + } + + info(str, ex = '') { + if (this.level > LogUtil.LEVEL.INFO) return; + + console.log('[' + this._getTime() + '] INFO: ' + str, ex); + + this.logOut += "######" + '[' + this._getTime() + '] INFO: ' + str + (ex ? JSON.stringify(ex) : ''); + } + + warn(str, ex = '') { + if (this.level > LogUtil.LEVEL.WARN) return; + + console.warn('[' + this._getTime() + '] WARN: ' + str, ex); + this.logOut += "######" + '[' + this._getTime() + '] WARN: ' + str + (ex ? JSON.stringify(ex) : ''); + } + + error(str, ex = '') { + if (this.level > LogUtil.LEVEL.ERROR) return; + + console.error('[' + this._getTime() + '] ERROR: ' + str, ex); + this.logOut += "######" + '[' + this._getTime() + '] ERROR: ' + str + (ex ? JSON.stringify(ex) : ''); + } + + fatal(str, ex = '') { + if (this.level > LogUtil.LEVEL.FATAL) return; + console.error('[' + this._getTime() + '] FATAL: ' + str, ex); + this.logOut += "######" + '[' + this._getTime() + '] FATAL: ' + str + (ex ? JSON.stringify(ex) : ''); + } + + + _getTime() { + return timeUtil.time('Y-M-D h:m:s'); + } + + err(str) { + error(str); + } + + getLogOut() { + return this.logOut; + } + + } + + LogUtil.LEVEL = { + DEBUG: 10, + INFO: 20, + WARN: 30, + ERROR: 40, + FATAL: 50, + NONE: 100, + }; + + module.exports = LogUtil; \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/math_util.js b/cloudfunctions/cloud/framework/utils/math_util.js new file mode 100644 index 0000000..44487e6 --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/math_util.js @@ -0,0 +1,35 @@ + /** + * Notes: 数学计算相关操作函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-10-04 04:00:00 + */ + + + /** 获取百分比, 保留2位小数 */ + function percent(num1, num2) { + return Math.round(num1 / num2 * 10000) / 100.00; + } + + /** 数组对象排序 */ + function arrayObjecSortAsc(property){ + return function(a,b){ + var value1 = a[property]; + var value2 = b[property]; + return value1 - value2; + } +} + + /** 数组对象排序 */ + function arrayObjecSortDesc(property){ + return function(a,b){ + var value1 = a[property]; + var value2 = b[property]; + return value2 - value1; + } +} + + module.exports = { + percent, // 百分比,保留2位小数 + arrayObjecSortAsc, // 数组对象排序 + arrayObjecSortDesc, // 数组对象排序 + } \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/time_util.js b/cloudfunctions/cloud/framework/utils/time_util.js new file mode 100644 index 0000000..1c86bc9 --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/time_util.js @@ -0,0 +1,350 @@ +/** + * Notes: 时间相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + +const util = require('./util.js'); + +/** 日期简化,去掉多余的前缀0 */ +function simpleDate(date) { + let arr = date.split('-'); + if (arr.length < 3) return date; + let month = arr[1]; + if (month.indexOf('0') == 0) + month = month.replace('0', ''); + + let day = arr[2]; + if (day.indexOf('0') == 0) + day = day.replace('0', ''); + + return arr[0] + '-' + month + '-' + day; +} + +/** 时间格式化为年月日点分 */ +function fmtDateCHN(date, fmt = 'Y-M-D') { + if (!date) return ''; + if (fmt == 'hh:mm' && date.includes(':')) { + if (date.includes(' ')) date = date.split(' ')[1]; + let arr = date.split(':'); + return Number(arr[0]) + '点' + arr[1] + '分'; + } else if (fmt == 'Y-M-D hh:mm') { + let arr = date.split(' '); + if (arr.length != 2) return date; + return fmtDateCHN(arr[0], 'Y-M-D') + fmtDateCHN(arr[1], 'hh:mm'); + } else if (fmt == 'M-D hh:mm') { + let arr = date.split(' '); + if (arr.length != 2) return date; + return fmtDateCHN(arr[0], 'M-D') + ' ' + fmtDateCHN(arr[1], 'hh:mm'); + } else { + if (date.includes(' ')) date = date.split(' ')[0]; + + let arr = date.split('-'); + if (fmt == 'Y-M') //年月 + return arr[0] + '年' + Number(arr[1]) + '月'; + else if (fmt == 'M-D') //月日 + return arr[1] + '月' + Number(arr[2]) + '日'; + else if (fmt == 'Y') //年 + return arr[0] + '年'; + else + return arr[0] + '年' +Number(arr[1]) + '月' + Number(arr[2]) + '日'; + } + + +} + +/** + * 毫秒时间戳转时间格式 + * @param {*} unixtime 毫秒 + * @param {*} format Y-M-D h:m:s + * @param {*} diff 时区差异 毫秒 + */ +function timestamp2Time(unixtime, format = 'Y-M-D h:m:s', diff = 0) { + let formateArr = ['Y', 'M', 'D', 'h', 'm', 's']; + let returnArr = []; + let date = new Date(unixtime + diff); + returnArr.push(date.getFullYear()); + returnArr.push(formatNumber(date.getMonth() + 1)); + returnArr.push(formatNumber(date.getDate())); + returnArr.push(formatNumber(date.getHours())); + returnArr.push(formatNumber(date.getMinutes())); + returnArr.push(formatNumber(date.getSeconds())); + for (let i in returnArr) { + format = format.replace(formateArr[i], returnArr[i]); + } + return format; +} + + +function timestame2Ago(dateTimeStamp, fmt = 'Y-M-D', diff = 0) { //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。 + let minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示 + let hour = minute * 60; + let day = hour * 24; + let week = day * 7; + let month = day * 30; + let now = new Date().getTime(); //获取当前时间毫秒 + + let diffValue = now - dateTimeStamp; //时间差 + + if (diffValue < 0) { + return; + } + let minC = diffValue / minute; //计算时间差的分,时,天,周,月 + let hourC = diffValue / hour; + let dayC = diffValue / day; + + let result = ''; + + let weekC = diffValue / week; + let monthC = diffValue / month; + if (monthC >= 1 && monthC <= 3) { + result = ' ' + parseInt(monthC) + '月前' + } else if (weekC >= 1 && weekC <= 3) { + result = ' ' + parseInt(weekC) + '周前' + } else if (dayC >= 1 && dayC <= 6) { + result = ' ' + parseInt(dayC) + '天前' + } else if (hourC >= 1 && hourC <= 23) { + result = ' ' + parseInt(hourC) + '小时前' + } else if (minC >= 1 && minC <= 59) { + result = ' ' + parseInt(minC) + '分钟前' + } else if (diffValue >= 0 && diffValue <= minute) { + result = '刚刚' + } else { + result = timestamp2Time(dateTimeStamp, fmt, diff); + + } + return result; +} + +function formatNumber(n) { + n = n.toString() + return n[1] ? n : '0' + n +} + + +/** + * 时间转时间戳 + * @param {*} date 支持 Y-M-D h:m:s / Y-M-D + */ +function time2Timestamp(date) { + if (date.length < 10) { + let arr = date.split('-'); + if (arr[1].length == 1) arr[1] = '0' + arr[1]; + if (arr[2].length == 1) arr[2] = '0' + arr[2]; + date = arr[0] + '-' + arr[1] + '-' + arr[2]; + } + if (date.length == 10) date = date + ' 00:00:00'; + let d = new Date(date.replace(/-/g, '/')); + return d.getTime(); +} + +/** + * 获取当前时间戳/时间Y-M-D h:m:s + * @param {*} 时间格式 Y-M-D h:m:s + * @param {int} 时间步长 (秒) + */ +function time(fmt, step = 0) { + let t = 0; + if (util.isDefined(fmt)) { + let t = new Date().getTime() + step * 1000; + return timestamp2Time(t, fmt); + } + return new Date().getTime() + t * 1000; +} + +// 获取某天0点 +function getDayFirstTimestamp(timestamp) { + if (!timestamp) timestamp = time(); + return time2Timestamp(timestamp2Time(timestamp, 'Y-M-D')); +} + +/** + * 根据出生日期计算年龄周岁 传参格式为1996-06-08 + * @param {*} birth + */ +function getAge(birth, isMonth = false) { + var returnAge = ''; + var mouthAge = ''; + var arr = birth.split('-'); + var birthYear = arr[0]; + var birthMonth = arr[1]; + var birthDay = arr[2]; + var d = new Date(); + var nowYear = d.getFullYear(); + var nowMonth = d.getMonth() + 1; + var nowDay = d.getDate(); + if (nowYear == birthYear) { + // returnAge = 0; //同年 则为0岁 + var monthDiff = nowMonth - birthMonth; //月之差 + if (monthDiff < 0) {} else { + mouthAge = monthDiff + '个月'; + } + } else { + var ageDiff = nowYear - birthYear; //年之差 + if (ageDiff > 0) { + if (nowMonth == birthMonth) { + var dayDiff = nowDay - birthDay; //日之差 + if (dayDiff < 0) { + returnAge = ageDiff - 1 + '岁'; + } else { + returnAge = ageDiff + '岁'; + } + } else { + var monthDiff = nowMonth - birthMonth; //月之差 + if (monthDiff < 0) { + returnAge = ageDiff - 1 + '岁'; + } else { + mouthAge = monthDiff + '个月'; + returnAge = ageDiff + '岁'; + } + } + } else { + returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天 + } + } + if (isMonth) + return returnAge + mouthAge; //返回周岁年龄+月份 + else + return returnAge; +} + +/** + * 日期计算周几 + * @param {*} day 日期为输入日期,格式为 2013-03-10 + */ +function week(day) { + let arys1 = new Array(); + arys1 = day.split('-'); + let ssdate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]); + let week1 = String(ssdate.getDay()).replace("0", "日").replace("1", "一").replace("2", "二").replace("3", "三").replace("4", "四").replace("5", "五").replace("6", "六") //就是你要的星期几 + return "周" + week1; //就是你要的星期几 +} + +/** 获取某天所在某月第一天时间戳 */ +function getMonthFirstTimestamp(timestamp) { + let inDate = new Date(timestamp); + let year = inDate.getFullYear(); + let month = inDate.getMonth(); + return new Date(year, month, 1).getTime(); +} + +/** 获取某天所在某月最后一天时间戳 */ +function getMonthLastTimestamp(timestamp) { + let inDate = new Date(timestamp); + let year = inDate.getFullYear(); + let month = inDate.getMonth(); + return new Date(year, month + 1, 1).getTime() - 1; +} + +// 取得分钟时间戳 +function getNowMinTimestamp() { + let min = time('Y-M-D h:m') + ':00'; + let timestamp = time2Timestamp(min); + return { + min, + timestamp + } +} + + +// 获取当前日期所在周一 输入和返回格式=yyyy-mm-dd +function getFirstOfWeek(date) { + let now = new Date(date); + let nowTime = now.getTime(); + let day = now.getDay(); + if (day == 0) day = 7; + let oneDayTime = 24 * 60 * 60 * 1000; + let mondayTime = nowTime - (day - 1) * oneDayTime; + return timestamp2Time(mondayTime, 'Y-M-D'); +} + +// 获取当前日期所在周一 输入和返回格式=yyyy-mm-dd +function getLastOfWeek(date) { + let now = new Date(date); + let nowTime = now.getTime(); + let day = now.getDay(); + if (day == 0) day = 7; + let oneDayTime = 24 * 60 * 60 * 1000; + let sundayTime = nowTime + (7 - day) * oneDayTime; + return timestamp2Time(sundayTime, 'Y-M-D'); +} + +// 获取当前日期所在月第一天 输入和返回格式=yyyy-mm-dd +function getFirstOfMonth(date) { + let arr = date.split('-'); + return arr[0] + '-' + arr[1] + '-01'; +} + +// 获取当前日期所在月最后一天 输入和返回格式=yyyy-mm-dd +function getLastOfMonth(date) { + let now = new Date(date); + let y = now.getFullYear(); + let m = now.getMonth(); + let lastDay = new Date(y, m + 1, 0).getTime(); + return timestamp2Time(lastDay, 'Y-M-D'); +} + +/** + * 取倒计时(天时分秒) 支持时间戳或者Y-M-D/Y-M-D h:m:s + * @param {*} datetimeTo + * @param {*} flag 1=正 -1=负 + */ +function getTimeLeft(datetimeTo, flag = 1) { + let time1 = datetimeTo; + + if (String(datetimeTo).includes('-')) { + datetimeTo = String(datetimeTo); + if (!datetimeTo.includes(':')) + datetimeTo += ' 00:00:00'; + time1 = new Date(datetimeTo).getTime(); + } + + let time2 = new Date().getTime(); + let mss = time1 - time2; + + // 将时间差(毫秒)格式为:天时分秒 + let days = parseInt(mss / (1000 * 60 * 60 * 24)); + let hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + let minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60)); + let seconds = parseInt((mss % (1000 * 60)) / 1000); + + if (mss < 0 && mss < -86400 * 1000) { + (days != 0) ? days = -flag * days + "天": days = ''; + return days + "前"; + } else if (mss < 0) { + return "今天"; + } else { + (days != 0) ? days = flag * days + "天": days = ''; + (hours != 0) ? hours = flag * hours + "时": hours = ''; + (minutes != 0) ? minutes = flag * minutes + "分": minutes = ''; + return days + hours + minutes + flag * seconds + "秒" + } + +} + + +module.exports = { + fmtDateCHN, + simpleDate, + + getTimeLeft, + + getNowMinTimestamp, + + getMonthFirstTimestamp, + getMonthLastTimestamp, + + getDayFirstTimestamp, + + timestamp2Time, + timestame2Ago, + time2Timestamp, + time, + getAge, + week, //星期 + + getFirstOfWeek, + getLastOfWeek, + getFirstOfMonth, + getLastOfMonth +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/utils/util.js b/cloudfunctions/cloud/framework/utils/util.js new file mode 100644 index 0000000..de3d1f0 --- /dev/null +++ b/cloudfunctions/cloud/framework/utils/util.js @@ -0,0 +1,45 @@ +/** + * Notes: 通用工具函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + +/** + * 判断变量,参数,对象属性是否定义 + * @param {*} val + */ +function isDefined(val) { + // == 不能判断是否为null + if (val === undefined) + return false; + else + return true; +} + + /** + * 判断对象是否为空 + * @param {*} obj + */ + function isObjectNull(obj) { + return (Object.keys(obj).length == 0); + } + + + +/** + * 休眠时间,配合await使用 + * @param {*} time 毫秒 + */ +function sleep(time) { + return new Promise((resolve) => setTimeout(resolve, time)); +}; + + + + +module.exports = { + isDefined, //判断变量,参数,对象属性是否定义 + sleep, + isObjectNull, + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/validate/content_check.js b/cloudfunctions/cloud/framework/validate/content_check.js new file mode 100644 index 0000000..8734ad1 --- /dev/null +++ b/cloudfunctions/cloud/framework/validate/content_check.js @@ -0,0 +1,144 @@ +/** + * Notes: 内容审核 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + +const AppError = require('../core/app_error.js'); +const cloudBase = require('../cloud/cloud_base.js'); +const config = require('../../config/config.js'); + +/** + * 前台校验 + * @param {*} imgData + * @param {*} mine + */ +async function checkImgClient(imgData, mine) { + if (!config.CLIENT_CHECK_CONTENT) return; + return await checkImg(imgData,mine); +} + +/** + * 后台校验 + * @param {*} imgData + * @param {*} mine + */ +async function checkImgAdmin(imgData, mine) { + if (!config.ADMIN_CHECK_CONTENT) return; + return await checkImg(imgData,mine); +} +/** + * 校验图片信息 + * @param {*} 图片流buffer + */ +async function checkImg(imgData, mine) { + + + let cloud = cloudBase.getCloud(); + try { + const result = await cloud.openapi.security.imgSecCheck({ + media: { + contentType: 'image/' + mine, + value: Buffer.from(imgData, 'base64') // 这里必须要将小程序端传过来的进行Buffer转化,否则就会报错,接口异常 + } + + }) + console.log('imgcheck', result); + if (!result || result.errCode !== 0) { + throw new AppError('图片内容不合适,请修改'); + } + + } catch (err) { + console.log('imgcheck ex', err); + throw new AppError('图片内容不合适,请修改'); + } + +} + +/** + * 后台把输入数据里的文本数据提交内容审核 + * @param {*} input + */ +async function checkTextMultiAdmin(input) { + if (!config.ADMIN_CHECK_CONTENT) return; + return checkTextMulti(input); +} + +/** + * 前台把输入数据里的文本数据提交内容审核 + * @param {*} input + */ +async function checkTextMultiClient(input) { + if (!config.CLIENT_CHECK_CONTENT) return; + return checkTextMulti(input); +} + +/** + * 把输入数据里的文本数据提交内容审核 + * @param {*} input + */ +async function checkTextMulti(input) { + + let txt = ''; + for (let k in input) { + if (typeof (input[k]) === 'string') + txt += input[k]; + } + await checkText(txt); +} +/** + * 后台校验文字信息 + * @param {*} + */ +async function checkTextAdmin(txt) { + if (!config.ADMIN_CHECK_CONTENT) return; + return checkText(txt); +} + +/** + * 前台校验文字信息 + * @param {*} + */ +async function checkTextClient(txt) { + if (!config.CLIENT_CHECK_CONTENT) return; + return checkText(txt); +} + +/** + * 校验文字信息 + * @param {*} + */ +async function checkText(txt) { + + + if (!txt) return; + + let cloud = cloudBase.getCloud(); + try { + const result = await cloud.openapi.security.msgSecCheck({ + content: txt + + }) + // console.log('checkText', result); + if (!result || result.errCode !== 0) { + throw new AppError('文字内容不合适,请修改或者重试'); + } + + } catch (err) { + console.log('checkText ex', err); + throw new AppError('文字内容不合适,请修改或者重试'); + } + +} + +module.exports = { + checkImg, + checkImgClient, + checkImgAdmin, + checkTextMulti, + checkTextMultiClient, + checkTextMultiAdmin, + checkText, + checkTextClient, + checkTextAdmin +} \ No newline at end of file diff --git a/cloudfunctions/cloud/framework/validate/data_check.js b/cloudfunctions/cloud/framework/validate/data_check.js new file mode 100644 index 0000000..742e232 --- /dev/null +++ b/cloudfunctions/cloud/framework/validate/data_check.js @@ -0,0 +1,631 @@ +/** + * Notes: 数据校验类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux0730 (wechat) + * Date: 2021-01-07 07:48:00 + * +1 规则大循环 +2 规则内循环,取得数据项说明(默认空串),缺省值(默认空串),数据类型(默认String) +3 对比缺省值和数据类型 +4 获取表单名,并取值(若不存在,直接赋予对应的defVal) +5 检查数据类型: + 若传值为undefined/null, 且有默认值,赋予默认值 + Number先做正则判断再转为Num; + Arr/Obj/Bool 若不为undefined , 则判断类型; + String 包含Number,转为Str +6 规则内循环, 数据校验(服务端从第1位,客户端从第2位开始) + * object格式(注意双引号) {"cc":"sss"} + */ +const AppError = require('../core/app_error.js'); +const appCode = require('../core/app_code.js'); + +const CHECK_OPEN = true; +const CHECK_SOURCE = 'admin'; //client/admin + +/** + * 判断变量,参数,对象属性是否定义 + * @param {*} val + */ +function isDefined(val) { + // == 不能判断是否为null + if (val === undefined) + return false; + else + return true; +} + +function isNull(value) { + if (value === null || value === undefined) return true; + if (getDataType(value) == String && value === '') return true; + return false; +} + +function isStrAndArrNull(value) { + if (value === null || value === undefined) return true; + + let type = getDataType(value); + if (type == String && value === '') return true; + if (type == Array && value.length == 0) return true; + + return false; +} + +function isRealNull(value) { + if (value === null || value === undefined) return true; + + let type = getDataType(value); + if (type == String && value === '') return true; + if (type == Array && value.length == 0) return true; + if (type == Object && JSON.stringify(value) == '{}') return true; + + return false; +} + +function getDataType(value) { + if (value === null || value === undefined) return value; + return value.constructor; +} + +// 是否必填 +function checkRequired(value, desc = '') { + switch (getDataType(value)) { + case Object: + if (JSON.stringify(value) == '{}') + return desc + '不能为空obj'; + break; + case Array: + if (value.length == 0) + return desc + '不能为空arr'; + break; + case String: + if (value.length == 0) + return desc + '不能为空'; + break; + case null: + case undefined: + return desc + '不能为空'; + } +} + +// 校验字符/数组长度,校验数字大小 +function checkMin(value, min, desc = '') { + if (isStrAndArrNull(value)) return; + + min = Number(min); + switch (getDataType(value)) { + case Array: + if (value.length < min) + return desc + '不能少于' + min + '项'; + break; + case String: + if (value.length < min) + return desc + '不能少于' + min + '个字'; + break; + case Number: + if (value < min) + return desc + '不能小于' + min; + break; + } +}; + +// 校验字符/数组长度,校验数字大小 +function checkMax(value, max, desc = '') { + if (isStrAndArrNull(value)) return; + + max = Number(max); + switch (getDataType(value)) { + case Array: + if (value.length > max) + return desc + '不能多于' + max + '项'; + break; + case String: + if (value.length > max) + return desc + '不能多于' + max + '个字'; + break; + case Number: + if (value > max) + return desc + '不能大于' + max; + break; + } +}; + +// 校验字符/数组长度 +function checkLen(value, len, desc = '') { + if (isStrAndArrNull(value)) return; + + len = Number(len); + switch (getDataType(value)) { + case Array: + if (value.length != len) + return desc + '必须为' + len + '项'; + break; + case String: + if (value.length != len) + return desc + '必须为' + len + '个字'; + break; + } +}; + +function checkMobile(value, desc = '') { + if (isNull(value)) return; + + if (!/(^1[1|2|3|4|5|6|7|8|9][0-9]{9}$)/.test(value)) + return desc + '格式不正确'; +} + +function checkInt(value, desc = '') { + if (isNull(value)) return; + + if (!/^[0-9]+$/.test(value)) + return desc + '必须为数字'; +} + +function checkDigit(value, desc = '') { + if (isNull(value)) return; + + if (!/^\d+(\.\d+)?$/.test(value)) + return desc + '必须为数字或小数'; +} + +function checkLetter(value, desc = '') { + if (isNull(value)) return; + + if (!/^[A-Za-z]+$/.test(value)) + return desc + '必须为字母'; +} + +function checkMoney(value, desc = '') { + if (isNull(value)) return; + + if (!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)) + return desc + '必须为金额格式,例如2.00'; +} + + +function checkLetterNum(value, desc = '') { + if (isNull(value)) return; + + if (!/^\w+$/.test(value)) + return desc + '必须为字母,数字和下划线'; +} + +function checkId(value, desc = '', min = 1, max = 32) { + if (isNull(value)) return; + + min = Number(min); + max = Number(max); + + if (getDataType(value) != String) return desc + '必须为ID字符串格式'; + + if (value.length < min || value.length > max) return desc + '必须为ID格式'; + /*if (!/^\w+$/.test(value)) + return desc + '必须为ID格式';*/ +} + +// 邮箱 +function checkEmail(value, desc = '') { + if (isNull(value)) return; + + let reg = /^[A-Za-z0-9+]+[A-Za-z0-9\.\_\-+]*@([A-Za-z0-9\-]+\.)+[A-Za-z0-9]+$/; + if (!reg.test(value)) return desc + '必须为邮箱格式'; +} + +// 短日期,形如 (yyyy-mm-dd 2008-07-22) +function checkDate(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 10) return hint; + let r = value.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); + if (r == null) return hint; + let d = new Date(r[1], r[3] - 1, r[4]); + let chk = d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]; + if (!chk) return hint; +} + +// 年份,形如 (yyyy 2008) +function checkYear(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 4) return hint; + value += '-01-01'; + return checkDate(value, desc); +} + +// 年月,形如 (yyyy-mm 2008-01) +function checkYearMonth(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 7) return hint; + + value += '-01'; + return checkDate(value, desc); +} + +// 短时间(时分秒),形如 (13:04:06) +function checkTime(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为时间格式'; + if (value.length != 8) return hint; + + let a = value.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); + if (a == null) return hint; + if (a[1] > 23 || a[3] > 59 || a[4] > 59) return hint; +} + +// 短时间(时分),形如 (hh:mm 13:04) +function checkHourMinute(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为时分时间格式'; + if (value.length != 5) return hint; + + value += ':01'; + return checkTime(value, desc); +} + +// 长时间,形如 (2008-07-22 13:04:06) +function checkDatimeTime(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为完整时间格式'; + if (value.length != 19) return hint; + + var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; + var r = value.match(reg); + if (r == null) return hint; + var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]); + let chk = d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]; + if (!chk) return hint; +} + +function checkArray(value, desc = '') { + if (!Array.isArray(value)) + return desc + '填写错误arr'; +} + +function checkObject(value, desc = '') { + if (value.constructor != Object) + return desc + '填写错误obj'; +} + +function checkBoolean(value, desc = '') { + if (value.constructor != Boolean) + return desc + '填写错误bool'; +} + +// 枚举 ref=1,2,3,4格式 +function checkIn(value, ref, desc = '') { + if (isNull(value)) return; + + let type = getDataType(value); + if (type != String && type != Number) return desc + '填写范围错误'; + + let arr = String(ref).split(','); + if (!arr.includes(value) && !arr.includes(value + '')) + return desc + '填写范围错误'; +} + +function checkIds(value, desc) {} + +function checkString(value, desc) { + if (value.constructor != String) + return desc + '填写错误'; +} + + +function check(data, rules, that) { + let returnData = {}; + for (let k in rules) { + let arr = rules[k].split('|'); + + let desc = k; // 字段说明 + let defVal = undefined; // 缺省值 + let dataType = 'String'; //数据类型 + + if (!CHECK_OPEN) { // 不校验 + // 取值 + let val = data[formName]; + returnData[k] = val; + continue; + } + + // 小循环获取规则 + for (let i = 0; i < arr.length; i++) { + // 数据项说明 + if (arr[i].startsWith('name=')) { + desc = '「' + arr[i].replace('name=', '') + '」'; + continue; + } + + // 缺省值 + if (arr[i].startsWith('default=')) { + defVal = arr[i].replace('default=', '').trim(); + continue; + } + + // 数据类型 + switch (arr[i].toLowerCase()) { + case 'int': + case 'digit': + dataType = 'Number'; + break; + case 'array': + case 'arr': + dataType = 'Array'; + break; + case 'object': + case 'obj': + dataType = 'Object'; + break; + case 'bool': + case 'boolean': + dataType = 'Boolean'; + break; + } + } + + // 校验 + let formName = (CHECK_SOURCE == 'admin') ? k : arr[0]; // 表单名 admin/client + + // 取值 + let val = data[formName]; + + switch (dataType) { + case 'Array': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Array) + return _showError(desc + '默认值数组格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值数组格式错误', formName, that); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Array) + return _showError(desc + '数组格式错误', formName, that); + + break; + } + case 'Object': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Object) + return _showError(desc + '默认值对象格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值对象格式错误', formName, that); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Object) + return _showError(desc + '对象格式错误', formName, that); + + break; + } + case 'Boolean': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Boolean) + return _showError(desc + '默认值布尔格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值布尔格式错误'); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Boolean) + return _showError(desc + '布尔格式错误', formName, that); + + break; + } + case 'Number': { + if (checkDigit(defVal, desc + '默认值')) + return _showError(desc + '默认值格式错误', formName, that); + + if (val === null || val === undefined) val = defVal; + + if (val === undefined) break; + + if (val === '') //数字不能为空 + return _showError(desc + '不能为空', formName, that); + + let dataType = getDataType(val); + if (dataType == Object || dataType == Boolean || dataType == Array) + return _showError(desc + '必须为数字格式', formName, that); + + // 数字格式校验 + let result = checkDigit(val, desc); + if (result) return _showError(result, formName, that); + + val = Number(val); + + break; + } + case 'String': { + let dataType = getDataType(val); + if (dataType == Object || dataType == Boolean || dataType == Array) + return _showError(desc + '必须为字符串格式', formName, that); + + if (val === null || val === undefined) val = defVal; + + if (val === undefined) break; + + try { + val = String(val).trim(); // 数字会被转为字符串 + } catch (ex) { + return _showError(desc + '必须为字符串格式', formName, that); + } + break; + } + } + + returnData[k] = val; + + let fromStep = (CHECK_SOURCE == 'admin') ? 0 : 1; //admin/client + for (let i = fromStep; i < arr.length; i++) { + let result = ''; + + let rules = arr[i].split(':'); + let ruleName = rules[0]; + + // 空 且非必填的 不校验 + if (ruleName != 'must' && val === undefined) continue; + + switch (ruleName) { + case 'must': + result = checkRequired(val, desc); + break; + case 'str': + case 'string': + result = checkString(val, desc); + break; + case 'arr': + case 'array': + result = checkArray(val, desc); + break; + case 'obj': + case 'object': + result = checkObject(val, desc); + break; + case 'bool': + case 'boolean': + result = checkBoolean(val, desc); + break; + case 'money': + result = checkMoney(val, desc); + break; + case 'year': + result = checkYear(val, desc); + break; + case 'yearmonth': + result = checkYearMonth(val, desc); + break; + case 'date': + result = checkDate(val, desc); + break; + case 'time': + result = checkTime(val, desc); + break; + case 'hourminute': + result = checkHourMinute(val, desc); + break; + case 'datetime': + result = checkDatimeTime(val, desc); + break; + case 'min': + result = checkMin(val, Number(rules[1]), desc); + break; + case 'max': + result = checkMax(val, Number(rules[1]), desc); + break; + case 'len': + result = checkLen(val, Number(rules[1]), desc); + break; + case 'in': + result = checkIn(val, rules[1], desc); + break; + case 'email': + result = checkEmail(val, desc); + break; + case 'mobile': + result = checkMobile(val, desc); + break; + case 'int': // 正整数 + result = checkInt(val, desc); + break; + case 'digit': // 正小整数 + result = checkDigit(val, desc); + break; + case 'id': + result = checkId(val, desc); + break; + case 'letter': + result = checkLetter(val, desc); + break; + case 'letter_num': + result = checkLetterNum(val, desc); + break; + } + + if (result) { + _showError(result, formName, that); + return false; + } else { + + if (that) { + if (CHECK_SOURCE == 'client') { + // 删除原有的自动聚焦 //admin/client + if (isDefined(that.data[formName + 'Focus'])) { + that.setData({ //TODO delete? + [formName + 'Focus']: false + }); + } + } + } + } + + } + } + return returnData; +} + +function _showError(result, formName, that) { //admin/client + if (CHECK_SOURCE == 'client') { + wx.showModal({ + title: '温馨提示', + content: result, + showCancel: false, + success(res) { + // 自动聚焦 + if (that) { + pageHelper.anchor(formName, that); + + that.setData({ + [formName + 'Focus']: result, + }); + } + + } + }); + } else { + throw new AppError(result, appCode.DATA); + } + +} + +module.exports = { + check, + + checkString, + checkArray, + checkObject, + checkMoney, + checkYear, + checkYearMonth, + checkDate, + checkTime, + checkHourMinute, + checkDatimeTime, + checkMin, + checkMax, + checkLen, + checkIn, + checkEmail, + checkMobile, + checkInt, // 正小整数 + checkDigit, + checkId, + checkLetter, + checkLetterNum, + +} \ No newline at end of file diff --git a/cloudfunctions/cloud/index.js b/cloudfunctions/cloud/index.js new file mode 100644 index 0000000..67e0080 --- /dev/null +++ b/cloudfunctions/cloud/index.js @@ -0,0 +1,6 @@ +const application = require('./framework/core/application.js'); + +// 云函数入口函数 +exports.main = async (event, context) => { + return await application.app(event, context); +} \ No newline at end of file diff --git a/cloudfunctions/cloud/package-lock.json b/cloudfunctions/cloud/package-lock.json new file mode 100644 index 0000000..fec49c2 --- /dev/null +++ b/cloudfunctions/cloud/package-lock.json @@ -0,0 +1,2276 @@ +{ + "name": "cloud", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "date-utils": "^1.2.21", + "mysql": "^2.18.1", + "node-xlsx": "^0.16.1", + "wx-server-sdk": "~2.1.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", + "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@cloudbase/database": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cloudbase/database/-/database-1.0.2.tgz", + "integrity": "sha512-4N5pGzvkDWr5/DzTiGKLv/H362Ujzk2tgpxpfMifM8P4IToBCy37o2MxqPNtbahVRURN/AtfC3MHElPW+cehWQ==", + "dependencies": { + "bson": "^4.0.3", + "lodash.clonedeep": "4.5.0", + "lodash.set": "4.3.2", + "lodash.unset": "4.5.2" + } + }, + "node_modules/@cloudbase/node-sdk": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cloudbase/node-sdk/-/node-sdk-2.1.1.tgz", + "integrity": "sha512-M8E1Bbdbl93isdffxXTQs1UYI2AWxz1zG/ujPuY726QOt+5hupoMt631BpdzcdFBWfZ+1uHU1S7DblcWZmtOPA==", + "dependencies": { + "@cloudbase/database": "1.0.2", + "@cloudbase/signature-nodejs": "1.0.0-beta.0", + "@types/retry": "^0.12.0", + "is-regex": "^1.0.4", + "jsonwebtoken": "^8.5.1", + "lodash.merge": "^4.6.1", + "request": "^2.87.0", + "request-promise": "^4.2.5", + "retry": "^0.12.0", + "ts-node": "^8.10.2", + "xml2js": "^0.4.19" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@cloudbase/signature-nodejs": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@cloudbase/signature-nodejs/-/signature-nodejs-1.0.0-beta.0.tgz", + "integrity": "sha512-gpKqwsVk/D2PzvFamYNReymXSdvRSY90eZ1ARf+1wZ8oT6OpK9kr6nmevGykMxN1n17Gn92hBbWqAxU9o3+kAQ==", + "dependencies": { + "@types/clone": "^0.1.30", + "clone": "^2.1.2", + "is-stream": "^2.0.0", + "url": "^0.11.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "node_modules/@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=" + }, + "node_modules/@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "node_modules/@types/node": { + "version": "10.17.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", + "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "adler32": "bin/adler32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bson": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.0.4.tgz", + "integrity": "sha512-Ioi3TD0/1V3aI8+hPfC56TetYmzfq2H07jJa9A1lKTxWsFtHtYdLMGMXjtGEg9v0f72NSM07diRQEUNYhLupIA==", + "dependencies": { + "buffer": "^5.1.0", + "long": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "dependencies": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "dependencies": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "bin": { + "codepage": "bin/codepage.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/date-utils": { + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz", + "integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=", + "engines": { + "node": ">0.4.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fflate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", + "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, + "node_modules/lodash.unset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz", + "integrity": "sha1-Nw0dPoW3Kn4bDN8tJyEhMG8j5O0=" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/node-xlsx": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.16.1.tgz", + "integrity": "sha512-mwEZKItGXKO+jp5Pz9+wDCXxqhJITGd6m81A8WmalBpGAzREiR5cIJ0xrSF0BxzU6Mh2mC0fA2X0/3GqNU6dIw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "buffer-from": "^1.1.1", + "xlsx": "^0.16.9" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/protobufjs": { + "version": "6.8.8", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", + "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", + "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", + "dependencies": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "engines": { + "node": ">= 4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/tcb-admin-node": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/tcb-admin-node/-/tcb-admin-node-1.23.0.tgz", + "integrity": "sha512-SAbjTqMsSi63SId1BJ4kWdyGJzhxh9Tjvy3YXxcsoaAC2PtASn4UIYsBsiNEUfcn58QEn2tdvCvvf69WLLjjrg==", + "dependencies": { + "@cloudbase/database": "0.9.15", + "@cloudbase/signature-nodejs": "^1.0.0-beta.0", + "is-regex": "^1.0.4", + "jsonwebtoken": "^8.5.1", + "lodash.merge": "^4.6.1", + "request": "^2.87.0", + "xml2js": "^0.4.19" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/tcb-admin-node/node_modules/@cloudbase/database": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@cloudbase/database/-/database-0.9.15.tgz", + "integrity": "sha512-63e7iIl+van41B39Tw4ScNe9TRCt+5GHjc7q6i8NzkWBLC3U3KlbWo79YHsUHUPI79POpQ8UMlMVo7HXIAO3dg==", + "dependencies": { + "bson": "^4.0.2", + "lodash.clonedeep": "4.5.0", + "lodash.set": "4.3.2", + "lodash.unset": "4.5.2" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/wx-server-sdk": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/wx-server-sdk/-/wx-server-sdk-2.1.2.tgz", + "integrity": "sha512-xYMiGprAATo0t7u5F/fHXdYAoyQW8VEs8RmOQTNE5yB7gSt/3ru1HvlQrXSEQZB1K3cGwSxsAW3OuBopY7dQyA==", + "dependencies": { + "@cloudbase/node-sdk": "2.1.1", + "protobufjs": "6.8.8", + "tcb-admin-node": "^1.23.0", + "tslib": "^1.9.3" + } + }, + "node_modules/xlsx": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz", + "integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==", + "dependencies": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.3.8", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", + "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@cloudbase/database": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cloudbase/database/-/database-1.0.2.tgz", + "integrity": "sha512-4N5pGzvkDWr5/DzTiGKLv/H362Ujzk2tgpxpfMifM8P4IToBCy37o2MxqPNtbahVRURN/AtfC3MHElPW+cehWQ==", + "requires": { + "bson": "^4.0.3", + "lodash.clonedeep": "4.5.0", + "lodash.set": "4.3.2", + "lodash.unset": "4.5.2" + } + }, + "@cloudbase/node-sdk": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cloudbase/node-sdk/-/node-sdk-2.1.1.tgz", + "integrity": "sha512-M8E1Bbdbl93isdffxXTQs1UYI2AWxz1zG/ujPuY726QOt+5hupoMt631BpdzcdFBWfZ+1uHU1S7DblcWZmtOPA==", + "requires": { + "@cloudbase/database": "1.0.2", + "@cloudbase/signature-nodejs": "1.0.0-beta.0", + "@types/retry": "^0.12.0", + "is-regex": "^1.0.4", + "jsonwebtoken": "^8.5.1", + "lodash.merge": "^4.6.1", + "request": "^2.87.0", + "request-promise": "^4.2.5", + "retry": "^0.12.0", + "ts-node": "^8.10.2", + "xml2js": "^0.4.19" + } + }, + "@cloudbase/signature-nodejs": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@cloudbase/signature-nodejs/-/signature-nodejs-1.0.0-beta.0.tgz", + "integrity": "sha512-gpKqwsVk/D2PzvFamYNReymXSdvRSY90eZ1ARf+1wZ8oT6OpK9kr6nmevGykMxN1n17Gn92hBbWqAxU9o3+kAQ==", + "requires": { + "@types/clone": "^0.1.30", + "clone": "^2.1.2", + "is-stream": "^2.0.0", + "url": "^0.11.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@types/clone": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/clone/-/clone-0.1.30.tgz", + "integrity": "sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ=" + }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "@types/node": { + "version": "10.17.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", + "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bson": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.0.4.tgz", + "integrity": "sha512-Ioi3TD0/1V3aI8+hPfC56TetYmzfq2H07jJa9A1lKTxWsFtHtYdLMGMXjtGEg9v0f72NSM07diRQEUNYhLupIA==", + "requires": { + "buffer": "^5.1.0", + "long": "^4.0.0" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "requires": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-utils": { + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz", + "integrity": "sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fflate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", + "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, + "lodash.unset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz", + "integrity": "sha1-Nw0dPoW3Kn4bDN8tJyEhMG8j5O0=" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "node-xlsx": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.16.1.tgz", + "integrity": "sha512-mwEZKItGXKO+jp5Pz9+wDCXxqhJITGd6m81A8WmalBpGAzREiR5cIJ0xrSF0BxzU6Mh2mC0fA2X0/3GqNU6dIw==", + "requires": { + "@babel/runtime": "^7.12.5", + "buffer-from": "^1.1.1", + "xlsx": "^0.16.9" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "protobufjs": { + "version": "6.8.8", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", + "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", + "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", + "requires": { + "bluebird": "^3.5.0", + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "requires": { + "lodash": "^4.17.19" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "tcb-admin-node": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/tcb-admin-node/-/tcb-admin-node-1.23.0.tgz", + "integrity": "sha512-SAbjTqMsSi63SId1BJ4kWdyGJzhxh9Tjvy3YXxcsoaAC2PtASn4UIYsBsiNEUfcn58QEn2tdvCvvf69WLLjjrg==", + "requires": { + "@cloudbase/database": "0.9.15", + "@cloudbase/signature-nodejs": "^1.0.0-beta.0", + "is-regex": "^1.0.4", + "jsonwebtoken": "^8.5.1", + "lodash.merge": "^4.6.1", + "request": "^2.87.0", + "xml2js": "^0.4.19" + }, + "dependencies": { + "@cloudbase/database": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@cloudbase/database/-/database-0.9.15.tgz", + "integrity": "sha512-63e7iIl+van41B39Tw4ScNe9TRCt+5GHjc7q6i8NzkWBLC3U3KlbWo79YHsUHUPI79POpQ8UMlMVo7HXIAO3dg==", + "requires": { + "bson": "^4.0.2", + "lodash.clonedeep": "4.5.0", + "lodash.set": "4.3.2", + "lodash.unset": "4.5.2" + } + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, + "wx-server-sdk": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/wx-server-sdk/-/wx-server-sdk-2.1.2.tgz", + "integrity": "sha512-xYMiGprAATo0t7u5F/fHXdYAoyQW8VEs8RmOQTNE5yB7gSt/3ru1HvlQrXSEQZB1K3cGwSxsAW3OuBopY7dQyA==", + "requires": { + "@cloudbase/node-sdk": "2.1.1", + "protobufjs": "6.8.8", + "tcb-admin-node": "^1.23.0", + "tslib": "^1.9.3" + } + }, + "xlsx": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz", + "integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.3.8", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/cloudfunctions/cloud/package.json b/cloudfunctions/cloud/package.json new file mode 100644 index 0000000..cba4119 --- /dev/null +++ b/cloudfunctions/cloud/package.json @@ -0,0 +1,17 @@ +{ + "name": "cloud", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "date-utils": "^1.2.21", + "mysql": "^2.18.1", + "node-xlsx": "^0.16.1", + "wx-server-sdk": "~2.1.2" + } +} diff --git a/cloudfunctions/cloud/project/controller/admin/admin_export_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_export_controller.js new file mode 100644 index 0000000..2701b0e --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_export_controller.js @@ -0,0 +1,120 @@ +/** + * Notes: 导出模块后台管理-控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-15 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); +const AdminExportService = require('../../service/admin/admin_export_service.js'); + +class AdminExportController extends BaseAdminController { + + /**************报名数据导出 BEGIN ********************* */ + /** 当前是否有导出文件生成 */ + async joinDataGet() { + await this.isAdmin(); + + // 数据校验 + let rules = { + isDel: 'int|must', //是否删除已有记录 + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + + if (input.isDel === 1) + await service.deleteJoinDataExcel(); //先删除 + + return await service.getJoinDataURL(); + } + + /** 导出数据 */ + async joinDataExport() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'id|must', + startDay: 'date|must', + endDay: 'date|must', + status: 'int|must|default=1' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + return await service.exportJoinDataExcel(input); + } + + /** 删除导出的报名数据文件 */ + async joinDataDel() { + await this.isAdmin(); + + // 数据校验 + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + return await service.deleteJoinDataExcel(); + } + + /************** 用户数据导出 BEGIN ********************* */ + /** 当前是否有导出文件生成 */ + async userDataGet() { + await this.isAdmin(); + + // 数据校验 + let rules = { + isDel: 'int|must', //是否删除已有记录 + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + + if (input.isDel === 1) + await service.deleteUserDataExcel(); //先删除 + + return await service.getUserDataURL(); + } + + /** 导出数据 */ + async userDataExport() { + await this.isAdmin(); + + // 数据校验 + let rules = { + condition: 'string|name=导出条件', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + return await service.exportUserDataExcel(input.condition); + } + + /** 删除导出的用户数据 */ + async userDataDel() { + await this.isAdmin(); + + // 数据校验 + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminExportService(); + return await service.deleteUserDataExcel(); + } + + +} + +module.exports = AdminExportController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_home_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_home_controller.js new file mode 100644 index 0000000..0af5b72 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_home_controller.js @@ -0,0 +1,52 @@ +/** + * Notes: 后台登录与首页模块 + * Date: 2021-03-15 19:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); +const AdminHomeService = require('../../service/admin/admin_home_service.js'); + +class AdminHomeController extends BaseAdminController { + + + // 管理首页 + async adminHome() { + await this.isAdmin(); + + // 数据校验 + let rules = { + + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminHomeService(); + return await service.adminHome(); + } + + // 清除缓存 + async clearCache() { + let service = new AdminHomeService(); + await service.clearCache(); + } + + // 管理员登录 + async adminLogin() { + + // 数据校验 + let rules = { + name: 'required|string|min:5|max:30|name=管理员名', + pwd: 'required|string|min:5|max:30|name=密码', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminHomeService(); + return await service.adminLogin(input.name, input.pwd); + } + +} + +module.exports = AdminHomeController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_meet_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_meet_controller.js new file mode 100644 index 0000000..4f00ff7 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_meet_controller.js @@ -0,0 +1,475 @@ +/** + * Notes: 预约模块后台管理-控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-12-08 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); +const AdminMeetService = require('../../service/admin/admin_meet_service.js'); +const AdminTempService = require('../../service/admin/admin_temp_service.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const dataUtil = require('../../../framework/utils/data_util.js'); +const cacheUtil = require('../../../framework/utils/cache_util.js'); +const LogModel = require('../../model/log_model.js'); + +class AdminMeetController extends BaseAdminController { + + // 计算可约天数 + _getLeaveDay(days) { + let now = timeUtil.time('Y-M-D'); + let count = 0; + for (let k in days) { + if (days[k] >= now) count++; + } + return count; + } + + /** 生成自助签到码 */ + async getDayList() { + await this.isAdmin(); + + let rules = { + meetId: 'must|id', + start: 'must|date', + end: 'must|date', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.getDayList(input.meetId, input.start, input.end); + } + + /** 生成自助签到码 */ + async genSelfCheckinQr() { + await this.isAdmin(); + + let rules = { + page: 'must|string', + timeMark: 'must|string', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.genSelfCheckinQr(input.page, input.timeMark); + } + + /** 管理员按钮核销 */ + async checkinJoin() { + await this.isAdmin(); + + let rules = { + joinId: 'must|id', + flag: 'must|in:0,1' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + await service.checkinJoin(input.joinId, input.flag); + } + + /** 管理员扫码核验 */ + async scanJoin() { + await this.isAdmin(); + + let rules = { + meetId: 'must|id', + code: 'must|string|len:15', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + await service.scanJoin(input.meetId, input.code); + } + + /** 预约排序 */ + async sortMeet() { // 数据校验 + await this.isAdmin(); + + let rules = { + meetId: 'must|id', + sort: 'must|int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + await service.sortMeet(input.meetId, input.sort); + } + + /** 预约状态修改 */ + async statusMeet() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'must|id', + status: 'must|int|in:0,1,9,10', + }; + + // 取得数据 + let input = this.validateData(rules); + + let name = await this.getNameBeforeLog('meet', input.meetId); + + let service = new AdminMeetService(); + await service.statusMeet(input.meetId, input.status); + + this.log('修改了预约《' + name + '》的状态', LogModel.TYPE.MEET); + } + + + /** 报名状态修改 */ + async statusJoin() { + await this.isAdmin(); + + // 数据校验 + let rules = { + joinId: 'must|id', + status: 'must|int|in:0,1,8,9,10,98,99', + reason: 'string|max:200', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.statusJoin(this._admin, input.joinId, input.status, input.reason); + } + + /** 报名删除 */ + async delJoin() { + await this.isAdmin(); + + // 数据校验 + let rules = { + joinId: 'must|id' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.delJoin(input.joinId); + } + + /** 预约项目列表 */ + async getMeetList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + whereEx: 'object|name=附加查询条件', + page: 'must|int|default=1', + size: 'int|default=10', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + let result = await service.getMeetList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + + list[k].MEET_ADD_TIME = timeUtil.timestamp2Time(list[k].MEET_ADD_TIME); + list[k].MEET_EDIT_TIME = timeUtil.timestamp2Time(list[k].MEET_EDIT_TIME); + list[k].leaveDay = this._getLeaveDay(list[k].MEET_DAYS); + + } + result.list = list; + + return result; + + } + + /** 预约名单列表 */ + async getJoinList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + meetId: 'must|id', + mark: 'must|string', + page: 'must|int|default=1', + size: 'int|default=10', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + let result = await service.getJoinList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + list[k].JOIN_EDIT_TIME = timeUtil.timestamp2Time(list[k].JOIN_EDIT_TIME); + + //分解成数组,高亮显示 + let forms = list[k].JOIN_FORMS; + for (let j in forms) { + forms[j].valArr = dataUtil.splitTextByKey(forms[j].val, input.search); + } + + } + result.list = list; + + return result; + + } + + /** 发布 */ + async insertMeet() { + await this.isAdmin(); + + let rules = { + title: 'must|string|min:2|max:50|name=标题', + typeId: 'must|id|name=分类', + typeName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + daysSet: 'must|array|name=预约时间设置', + isShowLimit: 'must|int|in:0,1|name=是否显示可预约人数', + + formSet: 'must|array|name=用户资料设置', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + let result = await service.insertMeet(this._adminId, input); + + // 清空缓存 + cacheUtil.clear(); + + this.log('创建了新预约《' + input.title + '》', LogModel.TYPE.MEET); + + return result; + + } + + + /** 获取预约信息用于编辑修改 */ + async getMeetDetail() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + let detail = await service.getMeetDetail(input.id); + return detail; + } + + /** 编辑预约 */ + async editMeet() { + await this.isAdmin(); + + let rules = { + id: 'must|id', + title: 'must|string|min:2|max:50|name=标题', + typeId: 'must|id|name=分类', + typeName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + daysSet: 'must|array|name=预约时间设置', + + isShowLimit: 'must|int|in:0,1|name=是否显示可预约人数', + + formSet: 'must|array|name=用户资料设置', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + let result = service.editMeet(input); + + // 清空缓存 + cacheUtil.clear(); + + this.log('修改了预约《' + input.title + '》内容', LogModel.TYPE.MEET); + + return result; + } + + /** 删除预约 */ + async delMeet() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let name = await this.getNameBeforeLog('meet', input.meetId); + + let service = new AdminMeetService(); + await service.delMeet(input.meetId); + + // 清空缓存 + cacheUtil.clear(); + + this.log('删除了预约《' + name + '》', LogModel.TYPE.MEET); + } + + /** + * 更新富文本信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateMeetContent() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'must|id', + content: 'array' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.updateMeetContent(input); + } + + + /** + * 更新封面设置 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateMeetStyleSet() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'must|id', + styleSet: 'object' + }; + + // 取得数据 + let input = this.validateData(rules); + + // 清空缓存 + cacheUtil.clear(); + + let service = new AdminMeetService(); + return await service.updateMeetStyleSet(input); + } + + // 删除某时段预约记录 + async cancelJoinByTimeMark() { + await this.isAdmin(); + + // 数据校验 + let rules = { + meetId: 'must|id', + timeMark: 'must|string', + reason: 'string' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMeetService(); + return await service.cancelJoinByTimeMark(this._admin, input.meetId, input.timeMark, input.reason); + } + + /** 创建模板 */ + async insertTemp() { + await this.isAdmin(); + + let rules = { + name: 'must|string|min:1|max:20|name=名称', + times: 'must|array|name=模板时段', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminTempService(); + let result = await service.insertTemp(input); + + return result; + + } + + /** 编辑模板 */ + async editTemp() { + await this.isAdmin(); + + let rules = { + id: 'must|id', + isLimit: 'must|bool|name=是否限制', + limit: 'must|int|name=人数上限', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminTempService(); + let result = service.editTemp(input); + + return result; + } + + /** 模板列表 */ + async getTempList() { + await this.isAdmin(); + + let service = new AdminTempService(); + let result = await service.getTempList(); + + return result; + } + + /** 删除模板 */ + async delTemp() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminTempService(); + await service.delTemp(input.id); + + } + +} + +module.exports = AdminMeetController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_mgr_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_mgr_controller.js new file mode 100644 index 0000000..883d102 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_mgr_controller.js @@ -0,0 +1,52 @@ +/** + * Notes: 管理员控制模块 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); +const LogModel = require('../../model/log_model.js'); + +const AdminMgrService = require('../../service/admin/admin_mgr_service.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const contentCheck = require('../../../framework/validate/content_check.js'); + +class AdminMgrController extends BaseAdminController { + + + async getLogList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + whereEx: 'object|name=附加查询条件', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminMgrService(); + let result = await service.getLogList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + list[k].LOG_TYPE_DESC = LogModel.getDesc('TYPE', list[k].LOG_TYPE); + list[k].LOG_ADD_TIME = timeUtil.timestamp2Time(list[k].LOG_ADD_TIME); + } + result.list = list; + + return result; + + } +} + +module.exports = AdminMgrController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_news_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_news_controller.js new file mode 100644 index 0000000..d4322e9 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_news_controller.js @@ -0,0 +1,257 @@ +/** + * Notes: 资讯模块后台管理-控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); + +const AdminNewsService = require('../../service/admin/admin_news_service.js'); + +const timeUtil = require('../../../framework/utils/time_util.js'); +const contentCheck = require('../../../framework/validate/content_check.js'); +const LogModel = require('../../model/log_model.js'); + +class AdminNewsController extends BaseAdminController { + + /** 资讯排序 */ + async sortNews() { // 数据校验 + await this.isAdmin(); + + let rules = { + id: 'must|id', + sort: 'must|int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminNewsService(); + await service.sortNews(input.id, input.sort); + } + + /** 资讯状态修改 */ + async statusNews() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + status: 'must|int|in:0,1,8', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminNewsService(); + await service.statusNews(input.id, input.status); + + } + + /** 资讯列表 */ + async getNewsList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + whereEx: 'object|name=附加查询条件', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminNewsService(); + let result = await service.getNewsList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + list[k].NEWS_ADD_TIME = timeUtil.timestamp2Time(list[k].NEWS_ADD_TIME, 'Y-M-D h:m'); + list[k].NEWS_EDIT_TIME = timeUtil.timestamp2Time(list[k].NEWS_EDIT_TIME, 'Y-M-D h:m'); + + } + result.list = list; + + return result; + + } + + /** + * 更新富文本信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateNewsContent() { + await this.isAdmin(); + + // 数据校验 + let rules = { + newsId: 'must|id', + content: 'array' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminNewsService(); + return await service.updateNewsContent(input); + } + + + /** 发布资讯信息 */ + async insertNews() { + await this.isAdmin(); + + let rules = {}; + let type = this.getParameter('type'); + // 数据校验 + if (type == 0) + rules = { + title: 'must|string|min:4|max:50|name=标题', + cateId: 'must|id|name=分类', + cateName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + desc: 'must|string|min:10|max:200|name=简介', + type: 'must|int|in:0,1|name=是否外部文章' + }; + else + rules = { + title: 'must|string|min:4|max:50|name=标题', + cateId: 'must|id|name=分类', + cateName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + desc: 'must|string|min:10|max:200|name=简介', + type: 'must|int|in:0,1|name=是否外部文章', + url: 'must|string|min:10|max:300|name=外部链接地址', + }; + + // 取得数据 + let input = this.validateData(rules); + + // 内容审核 + await contentCheck.checkTextMultiAdmin(input); + + let service = new AdminNewsService(); + let result = await service.insertNews(this._adminId, input); + + this.log('添加了文章《' + input.title + '》', LogModel.TYPE.NEWS); + + return result; + + } + + + /** 获取资讯信息用于编辑修改 */ + async getNewsDetail() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + // 内容审核 + await contentCheck.checkTextMultiAdmin(input); + + let service = new AdminNewsService(); + return await service.getNewsDetail(input.id); + + } + + /** 编辑资讯 */ + async editNews() { + await this.isAdmin(); + + let rules = {}; + let type = this.getParameter('type'); + // 数据校验 + if (type == 0) + rules = { + id: 'must|id', + title: 'must|string|min:4|max:50|name=标题', + cateId: 'must|id|name=分类', + cateName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + desc: 'string|min:10|max:200|name=简介', + type: 'must|int|in:0,1|name=是否外部文章' + }; + else + rules = { + id: 'must|id', + title: 'must|string|min:4|max:50|name=标题', + cateId: 'must|id|name=分类', + cateName: 'must|string|name=分类', + order: 'must|int|min:1|max:9999|name=排序号', + desc: 'string|min:10|max:200|name=简介', + type: 'must|int|in:0,1|name=是否外部文章', + url: 'must|string|min:10|max:300|name=外部链接地址', + }; + + // 取得数据 + let input = this.validateData(rules); + + // 内容审核 + await contentCheck.checkTextMultiAdmin(input); + + let service = new AdminNewsService(); + let result = service.editNews(input); + + this.log('修改了文章《' + input.title + '》', LogModel.TYPE.NEWS); + + return result; + } + + /** 删除资讯 */ + async delNews() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let name = await this.getNameBeforeLog('news', input.id); + + let service = new AdminNewsService(); + await service.delNews(input.id); + + this.log('删除了文章《' + name + '》', LogModel.TYPE.NEWS); + + } + + /** + * 更新图片信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateNewsPic() { + await this.isAdmin(); + + // 数据校验 + let rules = { + newsId: 'must|id', + imgList: 'array' + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminNewsService(); + return await service.updateNewsPic(input); + } + +} + +module.exports = AdminNewsController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_order_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_order_controller.js new file mode 100644 index 0000000..3acd7ba --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_order_controller.js @@ -0,0 +1,122 @@ +/** + * Notes: 资讯模块后台管理-控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); + +const AdminOrderService = require('../../service/admin/admin_order_service.js'); + +const timeUtil = require('../../../framework/utils/time_util.js'); +const dataUtil = require('../../../framework/utils/data_util.js'); +const contentCheck = require('../../../framework/validate/content_check.js'); + +class AdminOrderController extends BaseAdminController { + + /** + * 退款 + */ + async refund() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminOrderService(); + await service.refund(input.id); + } + + /** 资讯列表 */ + async getOrderList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + whereEx: 'object|name=附加查询条件', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminOrderService(); + let result = await service.getOrderList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + + list[k].ORDER_ADD_TIME = timeUtil.timestamp2Time(list[k].ORDER_ADD_TIME); + list[k].ORDER_REFUND_TIME = timeUtil.timestamp2Time(list[k].ORDER_REFUND_TIME); + + } + result.list = list; + + return result; + + } + + + /************** 数据导出 BEGIN ********************* */ + // 当前是否有导出文件生成 + async orderDataGet() { + await this.isAdmin(); + + // 数据校验 + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminOrderService(); + return await service.getOrderDataURL(); + } + + // 导出数据 + async orderDataExport() { + await this.isAdmin(); + + // 数据校验 + let rules = { + condition: 'string|name=导出条件', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminOrderService(); + return await service.exportOrderDataExcel(input.condition); + } + + // 删除导出的订单数据 + async orderDataDel() { + await this.isAdmin(); + + // 数据校验 + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminOrderService(); + return await service.deleteOrderDataExcel(); + } + + /************** 数据导出 END ********************* */ + +} + +module.exports = AdminOrderController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_setup_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_setup_controller.js new file mode 100644 index 0000000..d1191de --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_setup_controller.js @@ -0,0 +1,58 @@ +/** + * Notes: 设置控制模块 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); +const AdminSetupService = require('../../service/admin/admin_setup_service.js'); + +const contentCheck = require('../../../framework/validate/content_check.js'); + +class AdminSetupController extends BaseAdminController { + + + /** 关于我们 */ + async setupAbout() { + await this.isAdmin(); + + // 数据校验 + let rules = { + about: 'must|string|min:10|max:50000|name=关于我们', + aboutPic: 'array|name=介绍图片', + }; + + // 取得数据 + let input = this.validateData(rules); + let service = new AdminSetupService(); + await service.setupAbout(input); + + } + + /** 联系我们 */ + async setupContact() { + await this.isAdmin(); + + // 数据校验 + let rules = { + phone: 'string|name=电话', + address: 'string|name=地址', + servicePic: 'array|name=客服二维码图片', + officePic: 'array|name=官微二维码图片', + }; + + // 取得数据 + let input = this.validateData(rules); + let service = new AdminSetupService(); + await service.setupContact(input); + + } + + async genMiniQr() { + await this.isAdmin(); + let service = new AdminSetupService(); + return await service.genMiniQr(); + } +} + +module.exports = AdminSetupController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/admin_user_controller.js b/cloudfunctions/cloud/project/controller/admin/admin_user_controller.js new file mode 100644 index 0000000..5bb0e77 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/admin_user_controller.js @@ -0,0 +1,101 @@ +/** + * Notes: 用户控制模块 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-22 10:20:00 + */ + +const BaseAdminController = require('./base_admin_controller.js'); + +const UserModel = require('../../model/user_model.js'); +const LogModel = require('../../model/log_model.js'); +const AdminUserService = require('../../service/admin/admin_user_service.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); + +class AdminUserController extends BaseAdminController { + + + /** 用户信息 */ + async getUserDetail() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'required|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminUserService(); + let user = await service.getUser({ + userId: input.id + }); + + if (user) { + // 显示转换 + user.USER_ADD_TIME = timeUtil.timestamp2Time(user.USER_ADD_TIME); + user.USER_LOGIN_TIME = user.USER_LOGIN_TIME ? timeUtil.timestamp2Time(user.USER_LOGIN_TIME) : '未登录'; + } + + return user; + } + + + /** 用户列表 */ + async getUserList() { + await this.isAdmin(); + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + whereEx: 'object|name=附加查询条件', + page: 'required|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new AdminUserService(); + let result = await service.getUserList(input); + + // 数据格式化 + let list = result.list; + for (let k in list) { + list[k].USER_STATUS_DESC = UserModel.getDesc('STATUS', list[k].USER_STATUS); + list[k].USER_ADD_TIME = timeUtil.timestamp2Time(list[k].USER_ADD_TIME); + list[k].USER_LOGIN_TIME = list[k].USER_LOGIN_TIME ? timeUtil.timestamp2Time(list[k].USER_LOGIN_TIME) : '未登录'; + + } + result.list = list; + return result; + } + + /** 删除用户 */ + async delUser() { + await this.isAdmin(); + + // 数据校验 + let rules = { + id: 'required|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let name = await this.getNameBeforeLog('user', input.id); + + let service = new AdminUserService(); + await service.delUser(input.id); + + this.log('删除了客户「' + name + '」', LogModel.TYPE.USER); + + } +} + +module.exports = AdminUserController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/admin/base_admin_controller.js b/cloudfunctions/cloud/project/controller/admin/base_admin_controller.js new file mode 100644 index 0000000..897b830 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/admin/base_admin_controller.js @@ -0,0 +1,56 @@ +/** + * Notes: 后台管理控制模块 + * Date: 2021-03-15 19:20:00 + */ + +const BaseController = require('../base_controller.js'); +const BaseAdminService = require('../../service/admin/base_admin_service.js'); + +const timeUtil = require('../../../framework/utils/time_util.js'); + +class AdminController extends BaseController { + + constructor(route, openId, event) { + super(route, openId, event); + + // 当前时间戳 + this._timestamp = timeUtil.time(); + + this._admin = null; + this._adminId = '0'; + + } + + /** 是否管理员 */ + async isAdmin() { + // 判断是否管理员 + let service = new BaseAdminService(); + let admin = await service.isAdmin(this._token); + this._admin = admin; + this._adminId = admin.ADMIN_ID; + } + + /** 是否超级管理员 */ + async isSuperAdmin() { + // 判断是否管理员 + let service = new BaseAdminService(); + let admin = await service.isSuperAdmin(this._token); + this._admin = admin; + this._adminId = admin.ADMIN_ID; + } + + /** 记录日志 */ + async log(content, type) { + let service = new BaseAdminService(); + await service.insertLog(content, this._admin, type); + } + + /**日志除前获取名称 */ + async getNameBeforeLog(type, oid) { + let service = new BaseAdminService(); + return await service.getNameBeforeLog(type, oid); + } + +} + +module.exports = AdminController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/base_controller.js b/cloudfunctions/cloud/project/controller/base_controller.js new file mode 100644 index 0000000..1032eae --- /dev/null +++ b/cloudfunctions/cloud/project/controller/base_controller.js @@ -0,0 +1,80 @@ +/** + * Notes: 本业务基本控制器 + * Date: 2021-03-15 19:20:00 + */ + +const timeUtil = require('../../framework/utils/time_util.js'); +const Controller = require('../../framework/client/controller.js'); +const dataCheck = require('../../framework/validate/data_check.js'); +const config = require('../../config/config.js'); +const util = require('../../framework/utils/util.js'); +const AppError = require('../../framework/core/app_error.js'); +const appCode = require('../../framework/core/app_code.js'); +const BaseService = require('../service/base_service.js'); + +global.PID = 'unknown'; + +class BaseController extends Controller { + + constructor(route, openId, event) { + super(route, openId, event); + + if (config.TEST_MODE) + openId = config.TEST_TOKEN_ID; + + if (!openId) { + console.error('OPENID is unfined'); + throw new AppError('OPENID is unfined', appCode.SVR); + } + + // 模板判定 + if (config.PID) { + global.PID = config.PID; + } else { + if (event.PID) global.PID = event.PID; + } + + console.log(`【↘event.PID=${event.PID}, global.PID=${global.PID}】`); + + let userId = openId; + + this._token = event.token || ''; + + this._userId = userId; + + // 当前时间戳 + this._timestamp = timeUtil.time(); + let time = timeUtil.time('Y-M-D h:m:s'); + + console.log('------------------------'); + console.log(`【${time}】【Request -- ↘↘↘】\n【↘Token = ${this._token}】\n【↘USER-ID = ${userId}】\n【↘↘IN DATA】=\n`, JSON.stringify(this._request, null, 4)); + + + + } + + /** + * 数据校验 + * @param {*} rules + */ + validateData(rules = {}) { + let input = this._request; + return dataCheck.check(input, rules); + } + + // 取得某个具体的参数值 + getParameter(name) { + let input = this._request; + if (util.isDefined(input[name])) + return input[name]; + else + return ''; + } + + async initSetup() { + let service = new BaseService(); + await service.initSetup(); + } +} + +module.exports = BaseController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/check_controller.js b/cloudfunctions/cloud/project/controller/check_controller.js new file mode 100644 index 0000000..292e22e --- /dev/null +++ b/cloudfunctions/cloud/project/controller/check_controller.js @@ -0,0 +1,31 @@ +/** + * Notes: 内容检测控制器 + * Date: 2021-03-15 19:20:00 + */ + +const BaseController = require('./base_controller.js'); +const contentCheck = require('../../framework/validate/content_check.js'); + +class CheckController extends BaseController { + + /** + * 图片校验 + */ + async checkImg() { + + // 数据校验 + let rules = { + img: 'name=img', + mine: 'must|default=jpg', + }; + + // 取得数据 + let input = this.validateData(rules); + + return await contentCheck.checkImg(input.img, 'jpg'); + + } + +} + +module.exports = CheckController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/home_controller.js b/cloudfunctions/cloud/project/controller/home_controller.js new file mode 100644 index 0000000..fc5639c --- /dev/null +++ b/cloudfunctions/cloud/project/controller/home_controller.js @@ -0,0 +1,30 @@ +/** + * Notes: 全局或者主页模块控制器 + * Date: 2020-11-05 10:20:00 + */ + +const BaseController = require('./base_controller.js'); +const HomeService = require('../service/home_service.js'); +const timeUtil = require('../../framework/utils/time_util.js'); +const config = require('../../config/config.js'); + +class HomeController extends BaseController { + + /** 获取所有配置 */ + async getSetupAll() { + + // 数据校验 + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new HomeService(); + let result = await service.getSetup('SETUP_ABOUT,SETUP_ABOUT_PIC,SETUP_ADDRESS,SETUP_OFFICE_PIC,SETUP_PHONE,SETUP_SERVICE_PIC'); + + return result; + + } +} + +module.exports = HomeController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/meet_controller.js b/cloudfunctions/cloud/project/controller/meet_controller.js new file mode 100644 index 0000000..f559d85 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/meet_controller.js @@ -0,0 +1,323 @@ +/** + * Notes: 预约模块控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-12-10 04:00:00 + */ + +const BaseController = require('./base_controller.js'); +const MeetService = require('../service/meet_service.js'); +const timeUtil = require('../../framework/utils/time_util.js'); +const JoinModel = require('../model/join_model.js'); +const cacheUtil = require('../../framework/utils/cache_util.js'); +const config = require('../../config/config.js'); + +const CACHE_CALENDAR_INDEX = 'cache_calendar_index'; +const CACHE_CALENDAR_HAS_DAY = 'cache_calendar_has_day'; + +class MeetController extends BaseController { + + + // 把列表转换为显示模式 + transMeetList(list) { + let ret = []; + for (let k in list) { + let node = {}; + node.type = 'meet'; + node._id = list[k]._id; + node.title = list[k].MEET_TITLE; + node.desc = list[k].MEET_STYLE_SET.desc; + node.ext = list[k].openRule; + node.pic = list[k].MEET_STYLE_SET.pic; + ret.push(node); + } + return ret; + } + + + /** 按天获取预约项目 */ + async getMeetListByDay() { + + // 数据校验 + let rules = { + day: 'must|date|name=日期', + }; + + // 取得数据 + let input = this.validateData(rules); + + let cacheKey = CACHE_CALENDAR_INDEX + '_' + input.day; + let list = await cacheUtil.get(cacheKey); + if (list) { + return list; + } else { + let service = new MeetService(); + let list = await service.getMeetListByDay(input.day); + cacheUtil.set(cacheKey, list, config.CACHE_CALENDAR_TIME); + return list; + } + + } + + /** 获取从某天开始可预约的日期 */ + async getHasDaysFromDay() { + + // 数据校验 + let rules = { + day: 'must|date|name=日期', + }; + + // 取得数据 + let input = this.validateData(rules); + + + let cacheKey = CACHE_CALENDAR_HAS_DAY + '_' + input.day; + let list = await cacheUtil.get(cacheKey); + if (list) { + return list; + } else { + let service = new MeetService(); + let list = await service.getHasDaysFromDay(input.day); + cacheUtil.set(cacheKey, list, config.CACHE_CALENDAR_TIME); + return list; + } + + } + + /** 预约列表 */ + async getMeetList() { + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + typeId: 'string', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let result = await service.getMeetList(input); + + // 数据格式化 + let list = result.list; + + for (let k in list) { + list[k].openRule = this._getLeaveDay(list[k].MEET_DAYS) + '天可预约'; + } + + result.list = this.transMeetList(list); + + return result; + + } + + /** 我的预约列表 */ + async getMyJoinList() { + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let result = await service.getMyJoinList(this._userId, input); + + // 数据格式化 + let list = result.list; + + let now = timeUtil.time('Y-M-D h:m'); + + for (let k in list) { + if (now > (list[k].JOIN_MEET_DAY + ' ' + list[k].JOIN_MEET_TIME_END)) + list[k].isTimeout = 1; + else + list[k].isTimeout = 0; + + list[k].JOIN_MEET_DAY = timeUtil.fmtDateCHN(list[k].JOIN_MEET_DAY) + ' (' + timeUtil.week(list[k].JOIN_MEET_DAY) + ')'; + + list[k].JOIN_ADD_TIME = timeUtil.timestamp2Time(list[k].JOIN_ADD_TIME, 'Y-M-D h:m'); + } + + result.list = list; + + return result; + + } + + /** 我的某日预约列表 */ + async getMyJoinSomeday() { + // 数据校验 + let rules = { + day: 'must|date|name=日期', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let list = await service.getMyJoinSomeday(this._userId, input.day); + + // 数据格式化 + for (let k in list) { + + } + + return list; + + } + + /** 我的预约详情 */ + async getMyJoinDetail() { + // 数据校验 + let rules = { + joinId: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let join = await service.getMyJoinDetail(this._userId, input.joinId); + if (join) { + join.JOIN_STATUS_DESC = JoinModel.getDesc('STATUS', join.JOIN_STATUS); + join.JOIN_ADD_TIME = timeUtil.timestamp2Time(join.JOIN_ADD_TIME); + } + return join; + + } + + /** 用户预约取消 */ + async cancelMyJoin() { + + // 数据校验 + let rules = { + joinId: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + return await service.cancelMyJoin(this._userId, input.joinId); + } + + /** 用户自助签到 */ + async userSelfCheckin() { + + // 数据校验 + let rules = { + timeMark: 'must|string', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + return await service.userSelfCheckin(this._userId, input.timeMark); + } + + + /** 预约前获取关键信息 */ + async detailForJoin() { + // 数据校验 + let rules = { + meetId: 'must|meetId', + timeMark: 'must|string', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let meet = await service.detailForJoin(this._userId, input.meetId, input.timeMark); + + if (meet) { + // 显示转换 + } + + return meet; + } + + /** 浏览预约信息 */ + async viewMeet() { + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let meet = await service.viewMeet(input.id); + + if (meet) { + // 显示转换 + } + + return meet; + } + + /** 预约前检测 */ + async beforeJoin() { + // 数据校验 + let rules = { + meetId: 'must|id', + timeMark: 'must|string', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + return await service.beforeJoin(this._userId, input.meetId, input.timeMark); + } + + /** 预约提交 */ + async join() { + // 数据校验 + let rules = { + meetId: 'must|id', + timeMark: 'must|string', + forms: 'must|array', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new MeetService(); + let admin = null; + return await service.join(this._userId, input.meetId, input.timeMark, input.forms); + } + + + // 计算可约天数 + _getLeaveDay(days) { + let now = timeUtil.time('Y-M-D'); + let count = 0; + for (let k in days) { + if (days[k] >= now) count++; + } + return count; + } + +} + +module.exports = MeetController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/my_controller.js b/cloudfunctions/cloud/project/controller/my_controller.js new file mode 100644 index 0000000..4b4d588 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/my_controller.js @@ -0,0 +1,14 @@ +/** + * Notes: 用户中心模块控制器 + * Date: 2021-03-15 19:20:00 + */ + +const BaseController = require('./base_controller.js'); +class MyController extends BaseController { + + + + +} + +module.exports = MyController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/news_controller.js b/cloudfunctions/cloud/project/controller/news_controller.js new file mode 100644 index 0000000..00b3b60 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/news_controller.js @@ -0,0 +1,108 @@ +/** + * Notes: 资讯模块控制器 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-29 04:00:00 + */ + +const BaseController = require('./base_controller.js'); +const NewsService = require('../service/news_service.js'); +const timeUtil = require('../../framework/utils/time_util.js'); + +class NewsController extends BaseController { + + // 把列表转换为显示模式 + transNewsList(list) { + let ret = []; + for (let k in list) { + let node = {}; + node.type = 'news'; + node._id = list[k]._id; + node.title = list[k].NEWS_TITLE; + node.desc = list[k].NEWS_DESC; + node.ext = list[k].NEWS_ADD_TIME; + node.pic = list[k].NEWS_PIC[0]; + ret.push(node); + } + return ret; + } + + /** 首页资讯列表 */ + async getHomeNewsList() { + let rules = {}; + + // 取得数据 + let input = this.validateData(rules); + + let service = new NewsService(); + let list = await service.getHomeNewsList(input); + + for (let k in list) { + list[k].NEWS_ADD_TIME = timeUtil.timestamp2Time(list[k].NEWS_ADD_TIME, 'Y-M-D'); + } + + return this.transNewsList(list); + + } + + + /** 资讯列表 */ + async getNewsList() { + + // 数据校验 + let rules = { + search: 'string|min:1|max:30|name=搜索条件', + sortType: 'string|name=搜索类型', + sortVal: 'name=搜索类型值', + orderBy: 'object|name=排序', + cateId: 'string', + page: 'must|int|default=1', + size: 'int', + isTotal: 'bool', + oldTotal: 'int', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new NewsService(); + let result = await service.getNewsList(input); + + // 数据格式化 + let list = result.list; + + for (let k in list) { + list[k].NEWS_ADD_TIME = timeUtil.timestamp2Time(list[k].NEWS_ADD_TIME, 'Y-M-D'); + } + result.list = this.transNewsList(list); + + return result; + + } + + + /** 浏览资讯信息 */ + async viewNews() { + // 数据校验 + let rules = { + id: 'must|id', + }; + + // 取得数据 + let input = this.validateData(rules); + + let service = new NewsService(); + let news = await service.viewNews(input.id); + + if (news) { + // 显示转换 + news.NEWS_ADD_TIME = timeUtil.timestamp2Time(news.NEWS_ADD_TIME, 'Y-M-D'); + } + + return news; + } + + + +} + +module.exports = NewsController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/passport_controller.js b/cloudfunctions/cloud/project/controller/passport_controller.js new file mode 100644 index 0000000..ed1c2a1 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/passport_controller.js @@ -0,0 +1,63 @@ +/** + * Notes: passport模块控制器 + * Date: 2021-03-15 19:20:00 + */ + +const BaseController = require('./base_controller.js'); +const PassportService = require('../service/passport_service.js'); +const contentCheck = require('../../framework/validate/content_check.js'); +const timeUtil = require('../../framework/utils/time_util.js'); +const util = require('../../framework/utils/util.js'); +const config = require('../../config/config.js'); + +class PassportController extends BaseController { + + /** 取得我的用户信息 */ + async getMyDetail() { + let service = new PassportService(); + return await service.getMyDetail(this._userId); + } + + /** 获取手机号码 */ + async getPhone() { + + // 数据校验 + let rules = { + cloudID: 'must|string|min:1|max:200|name=cloudID', + }; + + // 取得数据 + let input = this.validateData(rules); + + + let service = new PassportService(); + return await service.getPhone(input.cloudID); + } + + + + + /** 修改用户资料 */ + async editBase() { + // 数据校验 + let rules = { + name: 'must|string|min:1|max:20', + mobile: 'must|mobile|name=手机', + city: 'string|max:100|name=所在城市', + work: 'string|max:100|name=所在单位', + trade: 'string|max:100|name=行业领域', + }; + + // 取得数据 + let input = this.validateData(rules); + + // 内容审核 + await contentCheck.checkTextMultiClient(input); + + let service = new PassportService(); + return await service.editBase(this._userId, input); + } + +} + +module.exports = PassportController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/test/test_controller.js b/cloudfunctions/cloud/project/controller/test/test_controller.js new file mode 100644 index 0000000..9a1c493 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/test/test_controller.js @@ -0,0 +1,20 @@ +/** + * Notes: 测试模块控制器 + * Date: 2021-03-15 19:20:00 + */ + +const BaseController = require('../base_controller.js'); +const config = require('../../../config/config.js'); +class TestController { + + async test() { + console.log('1111') + + let userId = 'userid3243l4l3j24324324'; + + console.log(__filename); + } + +} + +module.exports = TestController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/controller/test/test_meet_controller.js b/cloudfunctions/cloud/project/controller/test/test_meet_controller.js new file mode 100644 index 0000000..7fdbc85 --- /dev/null +++ b/cloudfunctions/cloud/project/controller/test/test_meet_controller.js @@ -0,0 +1,255 @@ +/** + * Notes: MEET测试模块控制器 + * Date: 2021-12-28 19:20:00 + */ + +const BaseController = require('../base_controller.js'); +const MeetService = require('../../service/meet_service.js'); +const AdminMeetService = require('../../service/admin/admin_meet_service.js'); +const config = require('../../../config/config.js'); +const AppError = require('../../../framework/core/app_error.js'); +const fakerLib = require('../../../framework/lib/faker_lib.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const cacheUtil = require('../../../framework/utils/cache_util.js'); +const SetupModel = require('../../model/setup_model.js'); +const MeetModel = require('../../model/meet_model.js'); +const JoinModel = require('../../model/join_model.js'); +const DayModel = require('../../model/day_model.js'); +const JobService = require('../../service/job_service.js'); + +class TestController { + + async testJoin() { + let meetService = new MeetService(); + let userId = 'obytx5EuMzFj-rC7t3x8PY5S3GHs'; + let meetId = '617ef50c620ab4160556a8537944a517'; + global.PID = 'A00' + let timeMark = 'T20220215AAABCAUSBXXMH'; + let admin = null; + + await meetService.checkMeetRules(userId, meetId, timeMark); + + // await this.multiInsertJoin(); + /* + // + return; + let serviceAdmin = new AdminMeetService(); + + global.PID = 'A00' + // this.setMeetDaysAndTimes(); + await this.multiInsertJoin(); + + // SetupModel.insert({ + + // }); + + //serviceAdmin.genSelfCheckinQr('','11','x') + + + //service.statJoinCnt(m) + */ + /* + let meetService = new MeetService(); + + let form = {}; + + + let userId = 'obytx5EuMzFj-rC7t3x8PY5S3GHs'; + let meetId = '617ef50c61fb411f02e81edc03e24013'; + global.PID = 'A00' + let timeMark = 'T20220205AAAPKZBBVIRTV'; + let admin = null; + + await meetService.checkMeetRules(userId, meetId, timeMark); + */ + // await meetService.join(admin, userId, meetId, timeMark, form); + //await meetService.removeJoinByTimeMark(meetId, timeMark); + + // let timesMark = 'TSWUIWJRHN'; //12-30 + // let timesMark = 'PJUTJBXUHQ'; //01-03 + // let timesMark = 'LCULAJIGDN'; //12-31 + for (let i = 0; i < 7; i++) { + // let timeMark = 'TSWUIWJRHN'; + // await meetService.join(userId, meetId, timeMark, form); + } + + for (let i = 0; i < 2; i++) { + // let timeMark = 'LCULAJIGDN'; + // await meetService.join(userId, meetId, timeMark, form); + } + + //let timeMark = 'HIPHMOQOSW'; + //await meetService.statJoinCnt(meetId, timeMark) + + + // await meetService.checkMeetRules(userId, meetId, timeMark); + + + } + + + // 批量添加预约 + async multiInsertJoin() { + let day = timeUtil.time('Y-M-D'); + + let service = new MeetService(); + let where = { + MEET_STATUS: 1 + } + let meetList = await MeetModel.getAll(where, '*', {}, 1000, false); + + // 取所有 + for (let k in meetList) { + let meetId = meetList[k]._id; + let title = meetList[k].MEET_TITLE; + let pid = meetList[k]._pid; + console.log('base info=', meetId, title, pid); + + global.PID = pid; + let meet = await service.getMeetOneDay(meetId, day, { + _id: meetId + }); + if (!meet || !meet.MEET_DAYS_SET || !meet.MEET_DAYS_SET.length || !meet.MEET_DAYS_SET[0].times) continue; + + let times = meet.MEET_DAYS_SET[0].times; + console.log('times=', times); + + // 批量插入 + for (let i = 0; i < fakerLib.getIntBetween(3, 20); i++) { + let time = times[fakerLib.getIntBetween(0, times.length - 1)]; + let data = { + JOIN_USER_ID: fakerLib.getStrLower(32), + JOIN_MEET_ID: meetId, + JOIN_MEET_TITLE: title, + JOIN_MEET_DAY: day, + JOIN_CODE: fakerLib.getIntStr(15), + JOIN_MEET_TIME_START: time.start, + JOIN_MEET_TIME_END: time.end, + JOIN_MEET_TIME_MARK: time.mark, + JOIN_STATUS: fakerLib.getRnd([0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 10, 99]), + JOIN_FORMS: [{ + 'title': '姓名', + 'mark': fakerLib.getStrUpper(8), + 'type': 'line', + 'val': fakerLib.getName(), + }, { + 'title': '手机', + 'mark': fakerLib.getStrUpper(8), + 'type': 'mobile', + 'val': fakerLib.getMobile(), + }] + } + data.JOIN_START_TIME = timeUtil.time2Timestamp(day + ' ' + data.JOIN_MEET_TIME_START + ':00'); + //console.log(data); + await JoinModel.insert(data); + } + + // 重新统计 + for (let n in times) { + await service.statJoinCnt(meetId, times[n].mark); + } + } + + + + + + + } + + async removeMeet(id) { + let service = new AdminMeetService(); + console.log('删除预约项目 SUCC, MEET_ID=' + id); + await service.delMeet(id); + } + + async setMeetDaysAndTimes() { + let days = []; + for (let i = 2; i <= 2; i++) { + for (let j = 1; j <= 31; j++) { + let day = '2022-' + String(i < 10 ? '0' + i : i) + '-' + String(j < 10 ? '0' + j : j); + console.log(day) + let node = {} + node.DAY_MEET_ID = 'bf4a0bf261d98dd003e9938f52a28b34'; + node.DAY_ID = '2022233432432434'; + node.day = day; + node.dayDesc = day + '描述'; + + let timesCnt = fakerLib.getIntBetween(1, 10); + let times = []; + for (let k = 0; k < timesCnt; k++) { + let timeNode = {}; + timeNode.mark = 'T' + day.replace(/-/g, '') + 'AAA' + fakerLib.getStr(10); + timeNode.start = '0' + k + ':00'; + timeNode.end = fakerLib.getIntBetween(10, 23) + ':' + fakerLib.getIntBetween(10, 59); + timeNode.isLimit = false; + timeNode.limit = 50; + timeNode.status = 1; + timeNode.stat = { + + succCnt: fakerLib.getIntBetween(10, 100), + cancelCnt: fakerLib.getIntBetween(10, 100), + adminCancelCnt: fakerLib.getIntBetween(10, 100), + }; + times.push(timeNode); + } + node.times = times; + days.push(node); + } + } + + console.log(days); + await DayModel.insertBatch(days); + } + + async makeMeetData(setData, day, daysSet) { + + let service = new AdminMeetService(); + let adminId = 'test-admin-id'; + + day = day || timeUtil.time('Y-M-D', 86400 * 5); + console.log('设定预约日期=', day); + daysSet = daysSet || [{ + day, + desc: day + ' Test desc', + times: [{ + mark: 'test-mark', + start: '09:00', + end: '20:00', + isLimit: false, + limit: -1, + cnt: 0, + }] + }] + + + + let beginSet = setData['beginSet'] || { + mode: 'no', + day: 0, + time: null, + }; + + let endSet = setData['endSet'] || {}; + let limitSet = setData['limitSet'] || {}; + let cancelSet = setData['cancelSet'] || {}; + let succSet = setData['succSet'] || 0; + let formSet = setData['formSet'] || []; + + let id = await service.insertMeet(adminId, { + title: '测试用例' + timeUtil.time('Y-M-D h:m:s'), + daysSet, + beginSet, + endSet, + limitSet, + cancelSet, + succSet, + formSet + }); + console.log('添加预约项目makeMeetData SUCC, MEET_ID=' + id); + return id; + } + +} + +module.exports = TestController; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/admin_model.js b/cloudfunctions/cloud/project/model/admin_model.js new file mode 100644 index 0000000..2254896 --- /dev/null +++ b/cloudfunctions/cloud/project/model/admin_model.js @@ -0,0 +1,44 @@ +/** + * Notes: 系统管理员实体 + * Date: 2021-03-15 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class AdminModel extends BaseModel { + +} + +// 集合名 +AdminModel.CL = "ax_admin"; + +AdminModel.DB_STRUCTURE = { + _pid: 'string|true', + ADMIN_ID: 'string|true', + ADMIN_NAME: 'string|true', + ADMIN_PHONE: 'string|true|comment=登录电话', + ADMIN_STATUS: 'int|true|default=1|comment=状态:0=禁用 1=启用', + + ADMIN_LOGIN_CNT: 'int|true|default=0|comment=登录次数', + ADMIN_LOGIN_TIME: 'int|true|default=0|comment=最后登录时间', + ADMIN_TYPE: 'int|true|default=0|comment=类型 0=普通管理员 1=超级管理员', + + ADMIN_TOKEN: 'string|false|comment=当前登录token', + ADMIN_TOKEN_TIME: 'int|true|default=0|comment=当前登录token time', + + ADMIN_ADD_TIME: 'int|true', + ADMIN_EDIT_TIME: 'int|true', + ADMIN_ADD_IP: 'string|false', + ADMIN_EDIT_IP: 'string|false', +}; + +// 字段前缀 +AdminModel.FIELD_PREFIX = "ADMIN_"; + + + + + + +module.exports = AdminModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/base_model.js b/cloudfunctions/cloud/project/model/base_model.js new file mode 100644 index 0000000..a83242a --- /dev/null +++ b/cloudfunctions/cloud/project/model/base_model.js @@ -0,0 +1,284 @@ +/** + * Notes: 实体基类 + * Date: 2021-03-15 19:20:00 + */ + + +const Model = require('../../framework/database/model.js'); + +class BaseModel extends Model { + static _getProjectId() { + if (global.PID) + return global.PID; + else + return 'ONE'; + } + + static _getWhere(where, mustPID = true) { + if (mustPID) { + if (typeof (where) == 'string' || typeof (where) == 'number') { + where = { + _id: where, + _pid: BaseModel._getProjectId() + }; + } else + where._pid = BaseModel._getProjectId(); + } + return where; + } + + + /** + * 获取单个object + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @returns object or null + */ + static async getOne(where, fields = '*', orderBy = {}, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getOne(where, fields, orderBy); + } + + /** + * 修改 + * @param {*} where + * @param {*} data + */ + static async edit(where, data, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.edit(where, data); + } + + /** + * 计算总数 + * @param {*} where + */ + static async count(where, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.count(where); + } + + /** + * 插入数据 + * @param {*} data + */ + static async insert(data, mustPID = true) { + if (mustPID) data._pid = BaseModel._getProjectId(); + return await super.insert(data); + } + + /** + * 批量插入数据 + * @param {*} data + */ + static async insertBatch(data = [], size = 1000, mustPID = true) { + if (mustPID) { + for (let k in data) + data[k]._pid = BaseModel._getProjectId(); + } + + return await super.insertBatch(data, size); + } + + /** + * 插入或者更新数据 + * @param {*} data + */ + static async insertOrUpdate(where, data, mustPID = true) { + if (mustPID) { + where._pid = BaseModel._getProjectId(); + } + return await super.insertOrUpdate(where, data); + } + + + /** + * 删除记录 + * @param {*} where + */ + static async del(where, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.del(where); + } + + /** + * 清空表 + * @param {*} + */ + static async clear() { + return await super.clear(); + } + + /** + * 自增处理 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async inc(where, field, val = 1, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.inc(where, field, val); + } + + /** + * 自乘处理 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async mul(where, field, val = 1, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.mul(where, field, val); + } + + /** + * 分组求和 + * @param {*} where + * @param {*} groupField + * @param {*} field + * @param {*} val + */ + static async groupSum(where, groupField, field, mustPID = true) { + if (mustPID) where._pid = BaseModel._getProjectId(); + return await super.groupSum(where, groupField, field); + } + + /** + * 分组求COUNT + * @param {*} where + * @param {*} groupField + * @param {*} val + */ + static async groupCount(where, groupField, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.groupCount(where, groupField); + } + + /** + * 求和 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async sum(where, field, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.sum(where, field); + } + + /** + * 求不重复 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async distinct(where, field, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.distinct(where, field); + } + + /** + * 求不重复 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async distinctCnt(where, field, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.distinctCnt(where, field); + } + + /** + * 最大 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async max(where, field, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.max(where, field); + } + + /** + * 最小 + * @param {*} where + * @param {*} field + * @param {*} val + */ + static async min(where, field, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.min(where, field); + } + + /** + * 随机数据 + * @param {*} where + * @param {*} field + * @param {*} size + */ + static async rand(where, field, size = 1, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.rand(where, field, size); + } + + /** + * 所有记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAll(where, fields, orderBy, size = 100, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getAll(where, fields, orderBy, size); + } + + + /** + * 大数据情况下取得所有记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAllBig(where, fields, orderBy, size = 1000, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getAllBig(where, fields, orderBy, size); + } + + /** + * 所有记录 数组字段拆分查询 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} size + */ + static async getAllByArray(arrField, where, fields, orderBy, size = 100, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getAllByArray(arrField, where, fields, orderBy, size); + } + + /** + * 分页记录 + * @param {*} where + * @param {*} fields + * @param {*} orderBy + * @param {*} page + * @param {*} size + * @param {*} isTotal + * @param {*} oldTotal // 上次分页的记录总数 + */ + static async getList(where, fields, orderBy, page, size, isTotal, oldTotal, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + } + + // 联表获取分页(2张表) + static async getListJoin(joinParams, where, fields, orderBy, page = 1, size, isTotal = true, oldTotal = 0, is2Many = false, mustPID = true) { + where = BaseModel._getWhere(where, mustPID); + return await super.getListJoin(joinParams, where, fields, orderBy, page, size, isTotal, oldTotal, is2Many); + } + +} + +module.exports = BaseModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/cache_model.js b/cloudfunctions/cloud/project/model/cache_model.js new file mode 100644 index 0000000..b71d2a3 --- /dev/null +++ b/cloudfunctions/cloud/project/model/cache_model.js @@ -0,0 +1,35 @@ +/** + * Notes: 缓存实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-26 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class CacheModel extends BaseModel { + +} + +// 集合名 +CacheModel.CL = "ax_cache"; + +CacheModel.DB_STRUCTURE = { + _pid: 'string|true', + CACHE_ID: 'string|true', + + CACHE_KEY: 'string|true', + CACHE_VALUE: 'object|true', + + CACHE_TIMEOUT: 'int|true|comment=超时时间,毫秒', + + CACHE_ADD_TIME: 'int|true', + CACHE_EDIT_TIME: 'int|true', + CACHE_ADD_IP: 'string|false', + CACHE_EDIT_IP: 'string|false', +}; + +// 字段前缀 +CacheModel.FIELD_PREFIX = "CACHE_"; + +module.exports = CacheModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/day_model.js b/cloudfunctions/cloud/project/model/day_model.js new file mode 100644 index 0000000..60a23af --- /dev/null +++ b/cloudfunctions/cloud/project/model/day_model.js @@ -0,0 +1,52 @@ +/** + * Notes: 预约日期设置实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-01-25 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class DayModel extends BaseModel { + +} + +// 集合名 +DayModel.CL = "ax_day"; + +DayModel.DB_STRUCTURE = { + _pid: 'string|true', + DAY_ID: 'string|true', + DAY_MEET_ID: 'string|true', + + day: 'string|true|comment=日期 yyyy-mm-dd', + dayDesc: 'string|true|comment=描述', + times: 'array|true|comment=具体时间段', + /* + { + 1. mark=唯一性标识, + 2. start=开始时间点hh:mm ~, + 3. end=结束时间点hh:mm, + 4. isLimit=是否人数限制, + 5. limit=报名上限, + 6. status=状态 0/1 + 7. stat:{ //统计数据 + succCnt=1预约成功*, + cancelCnt=10已取消, + adminCancelCnt=99后台取消 + } + }', + */ + + DAY_ADD_TIME: 'int|true', + DAY_EDIT_TIME: 'int|true', + DAY_ADD_IP: 'string|false', + DAY_EDIT_IP: 'string|false', +}; + +// 字段前缀 +DayModel.FIELD_PREFIX = "DAY_"; + + + +module.exports = DayModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/export_model.js b/cloudfunctions/cloud/project/model/export_model.js new file mode 100644 index 0000000..0e256c2 --- /dev/null +++ b/cloudfunctions/cloud/project/model/export_model.js @@ -0,0 +1,33 @@ +/** + * Notes: 导出数据表 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-03-01 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class ExportModel extends BaseModel { + +} + +// 集合名 +ExportModel.CL = "ax_export"; + +ExportModel.DB_STRUCTURE = { + _pid: 'string|true', + EXPORT_ID: 'string|true', + EXPORT_KEY: 'string|true', + EXPORT_CLOUD_ID: 'string|true|comment=cloudID', + + EXPORT_ADD_TIME: 'int|true', + EXPORT_EDIT_TIME: 'int|true', + EXPORT_ADD_IP: 'string|false', + EXPORT_EDIT_IP: 'string|false', +}; + +// 字段前缀 +ExportModel.FIELD_PREFIX = "EXPORT_"; + + +module.exports = ExportModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/join_model.js b/cloudfunctions/cloud/project/model/join_model.js new file mode 100644 index 0000000..5fb4dd6 --- /dev/null +++ b/cloudfunctions/cloud/project/model/join_model.js @@ -0,0 +1,78 @@ +/** + * Notes: 报名实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED cclinux@qq.com + * Date: 2021-12-30 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class JoinModel extends BaseModel { + +} + +// 集合名 +JoinModel.CL = "ax_join"; + +JoinModel.DB_STRUCTURE = { + _pid: 'string|true', + JOIN_ID: 'string|true', + + JOIN_EDIT_ADMIN_ID: 'string|false|comment=最近修改的管理员ID', + JOIN_EDIT_ADMIN_NAME: 'string|false|comment=最近修改的管理员名', + JOIN_EDIT_ADMIN_TIME: 'int|true|default=0|comment=管理员最近修改的时间', + JOIN_EDIT_ADMIN_STATUS: 'int|false|comment=最近管理员修改为的状态 ', + + JOIN_IS_ADMIN: 'int|true|default=0|comment=是否管理员添加 0/1', + + JOIN_CODE: 'string|true|comment=核验码15位', + JOIN_IS_CHECKIN: 'int|true|default=0|comment=是否签到 0/1 ', + + JOIN_USER_ID: 'string|true|comment=用户ID', + JOIN_MEET_ID: 'string|true|comment=预约PK', + JOIN_MEET_TITLE: 'string|true|comment=项目', + JOIN_MEET_DAY: 'string|true|comment=日期', + JOIN_MEET_TIME_START: 'string|true|comment=时段开始', + JOIN_MEET_TIME_END: 'string|true|comment=时段结束', + JOIN_MEET_TIME_MARK: 'string|true|comment=时段标识', + + JOIN_START_TIME: 'int|true|comment=开始时间戳', + + JOIN_FORMS: 'array|true|default=[]|comment=表单', + /* title: + mark: + type: + val: + */ + + JOIN_STATUS: 'int|true|default=1|comment=状态 1=预约成功,10=已取消, 99=系统取消', + + JOIN_REASON: 'string|false|comment=审核拒绝或者取消理由', + + JOIN_ADD_TIME: 'int|true', + JOIN_EDIT_TIME: 'int|true', + JOIN_ADD_IP: 'string|false', + JOIN_EDIT_IP: 'string|false', +}; + +// 字段前缀 +JoinModel.FIELD_PREFIX = "JOIN_"; + +/** + * 状态 1=预约成功,10=已取消, 99=后台取消 + */ +JoinModel.STATUS = { + SUCC: 1, + CANCEL: 10, + ADMIN_CANCEL: 99 +}; + +JoinModel.STATUS_DESC = { + SUCC: '预约成功', + CANCEL: '已取消', + ADMIN_CANCEL: '系统取消', +}; + + + +module.exports = JoinModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/log_model.js b/cloudfunctions/cloud/project/model/log_model.js new file mode 100644 index 0000000..0ed6b98 --- /dev/null +++ b/cloudfunctions/cloud/project/model/log_model.js @@ -0,0 +1,51 @@ +/** + * Notes: 后台操作日志实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-10-16 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class LogModel extends BaseModel { + +} + +// 集合名 +LogModel.CL = "ax_log"; + +LogModel.DB_STRUCTURE = { + _pid: 'string|true', + LOG_ID: 'string|true', + + LOG_ADMIN_ID: 'string|true|comment=管理员', + LOG_ADMIN_PHONE: 'string|false', + LOG_ADMIN_NAME: 'string|true', + + LOG_CONTENT: 'string|true', + + LOG_TYPE: 'int|true|comment=日志类型 ', + + LOG_ADD_TIME: 'int|true', + LOG_EDIT_TIME: 'int|true', + LOG_ADD_IP: 'string|false', + LOG_EDIT_IP: 'string|false', +}; + +// 字段前缀 +LogModel.FIELD_PREFIX = "LOG_"; + +LogModel.TYPE = { + USER: 0, + MEET: 1, + NEWS: 2, + SYS: 99 +} +LogModel.TYPE_DESC = { + USER: '用户', + MEET: '预约/活动', + NEWS: '内容/文章', + SYS: '系统' +} + +module.exports = LogModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/meet_model.js b/cloudfunctions/cloud/project/model/meet_model.js new file mode 100644 index 0000000..95047a2 --- /dev/null +++ b/cloudfunctions/cloud/project/model/meet_model.js @@ -0,0 +1,78 @@ +/** + * Notes: 预约实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-12-07 19:20:00 + * Version : CCMiniCloud Framework Ver 2.0.1 ALL RIGHTS RESERVED BY 明章科技 + */ + + +const BaseModel = require('./base_model.js'); + +class MeetModel extends BaseModel { + +} + +// 集合名 +MeetModel.CL = "ax_meet"; + +MeetModel.DB_STRUCTURE = { + _pid: 'string|true', + MEET_ID: 'string|true', + MEET_ADMIN_ID: 'string|true|comment=添加的管理员', + MEET_TITLE: 'string|true|comment=标题', + + MEET_CONTENT: 'array|true|default=[]|comment=详细介绍', + /* img=cloudID, text=文本 + [{type:'text/img',val:''}] + */ + + // MEET_DAYS_SET: //**** 映射到day表 + MEET_DAYS: 'array|true|default=[]|comment=最近一次修改保存的可用日期', + + MEET_TYPE_ID: 'string|true|comment=分类编号', + MEET_TYPE_NAME: 'string|true|comment=分类冗余', + + MEET_IS_SHOW_LIMIT: 'int|true|default=1|comment=是否显示可预约人数', + + MEET_STYLE_SET: 'object|true|default={}|comment=样式设置', + /*{ + desc: 'string|false|comment=简介', + pic:' string|false|default=[]|comment=封面图cloudId]' + } + */ + + MEET_FORM_SET: 'array|true|default=[]|comment=表单字段设置', + + + MEET_STATUS: 'int|true|default=1|comment=状态 0=未启用,1=使用中,9=停止预约,10=已关闭', + MEET_ORDER: 'int|true|default=9999', + + MEET_ADD_TIME: 'int|true', + MEET_EDIT_TIME: 'int|true', + MEET_ADD_IP: 'string|false', + MEET_EDIT_IP: 'string|false', +}; + +// 字段前缀 +MeetModel.FIELD_PREFIX = "MEET_"; + +/** + * 状态 0=未启用,1=使用中,9=停止预约,10=已关闭 + */ +MeetModel.STATUS = { + UNUSE: 0, + COMM: 1, + OVER: 9, + CLOSE: 10 +}; + +MeetModel.STATUS_DESC = { + UNUSE: '未启用', + COMM: '使用中', + OVER: '停止预约(可见)', + CLOSE: '已关闭(不可见)' +}; + + + +module.exports = MeetModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/news_model.js b/cloudfunctions/cloud/project/model/news_model.js new file mode 100644 index 0000000..9d7d025 --- /dev/null +++ b/cloudfunctions/cloud/project/model/news_model.js @@ -0,0 +1,55 @@ +/** + * Notes: 资讯实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-10-28 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); + +class NewsModel extends BaseModel { + +} + +// 集合名 +NewsModel.CL = "ax_news"; + +NewsModel.DB_STRUCTURE = { + _pid: 'string|true', + NEWS_ID: 'string|true', + NEWS_ADMIN_ID: 'string|true', + + NEWS_TYPE: 'int|true|default=0|comment=类型 0=本地文章,1=外部链接', + NEWS_TITLE: 'string|false|comment=标题', + NEWS_DESC: 'string|false|comment=描述', + NEWS_URL: 'string|false|comment=外部链接URL', + NEWS_STATUS: 'int|true|default=1|comment=状态 0/1', + + NEWS_CATE_ID: 'string|true|comment=分类编号', + NEWS_CATE_NAME: 'string|true|comment=分类冗余', + + NEWS_ORDER: 'int|true|default=9999', + + NEWS_HOME: 'int|true|default=9999|comment=推荐到首页', + + NEWS_CONTENT: 'array|true|default=[]|comment=内容', + + NEWS_VIEW_CNT: 'int|true|default=0|comment=访问次数', + NEWS_FAV_CNT: 'int|true|default=0|comment=收藏人数', + NEWS_COMMENT_CNT: 'int|true|default=0|comment=评论数', + NEWS_LIKE_CNT: 'int|true|default=0|comment=点赞数', + + + NEWS_PIC: 'array|false|default=[]|comment=附加图片 [cloudId1,cloudId2,cloudId3...]', + + NEWS_ADD_TIME: 'int|true', + NEWS_EDIT_TIME: 'int|true', + NEWS_ADD_IP: 'string|false', + NEWS_EDIT_IP: 'string|false', +}; + +// 字段前缀 +NewsModel.FIELD_PREFIX = "NEWS_"; + + +module.exports = NewsModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/setup_model.js b/cloudfunctions/cloud/project/model/setup_model.js new file mode 100644 index 0000000..94d361d --- /dev/null +++ b/cloudfunctions/cloud/project/model/setup_model.js @@ -0,0 +1,44 @@ +/** + * Notes: 系统设置实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-05 19:20:00 + * Version : CCMiniCloud Framework Ver 2.0.1 ALL RIGHTS RESERVED BY 明章科技 + */ + + +const BaseAlumniModel = require('./base_model.js'); + +class SetupModel extends BaseAlumniModel { + +} + +// 集合名 +SetupModel.CL = "ax_setup"; + +SetupModel.DB_STRUCTURE = { + _pid: 'string|true', + SETUP_ID: 'string|true', + + SETUP_NAME: 'string|false', + + SETUP_ABOUT: 'string|false|comment=关于我们', + SETUP_ABOUT_PIC: 'array|false|default=[]|comment=关于我们的图片cloudId', + + SETUP_SERVICE_PIC: 'array|false|default=[]|comment=客服图片cloudId', + SETUP_OFFICE_PIC: 'array|false|default=[]|comment=官微图片cloudId', + + SETUP_ADDRESS: 'string|false|comment=地址', + SETUP_PHONE: 'string|false|comment=电话', + + SETUP_ADD_TIME: 'int|true', + SETUP_EDIT_TIME: 'int|true', + SETUP_ADD_IP: 'string|false', + SETUP_EDIT_IP: 'string|false', +}; + +// 字段前缀 +SetupModel.FIELD_PREFIX = "SETUP_"; + + + +module.exports = SetupModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/temp_model.js b/cloudfunctions/cloud/project/model/temp_model.js new file mode 100644 index 0000000..5365b7b --- /dev/null +++ b/cloudfunctions/cloud/project/model/temp_model.js @@ -0,0 +1,35 @@ +/** + * Notes: 模板实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-02 19:20:00 + * Version : CCMiniCloud Framework Ver 2.0.1 ALL RIGHTS RESERVED BY 明章科技 + */ + + +const BaseModel = require('./base_model.js'); + +class TempModel extends BaseModel { + +} + +// 集合名 +TempModel.CL = "ax_temp"; + +TempModel.DB_STRUCTURE = { + _pid: 'string|true', + TEMP_ID: 'string|true', + TEMP_NAME: 'string|true|comment=名字', + + TEMP_TIMES: 'array|true|comment=时间段', + + + TEMP_ADD_TIME: 'int|true', + TEMP_EDIT_TIME: 'int|true', + TEMP_ADD_IP: 'string|false', + TEMP_EDIT_IP: 'string|false', +}; + +// 字段前缀 +TempModel.FIELD_PREFIX = "TEMP_"; + +module.exports = TempModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/model/user_model.js b/cloudfunctions/cloud/project/model/user_model.js new file mode 100644 index 0000000..88ef22c --- /dev/null +++ b/cloudfunctions/cloud/project/model/user_model.js @@ -0,0 +1,57 @@ +/** + * Notes: 用户实体 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-10-14 19:20:00 + */ + + +const BaseModel = require('./base_model.js'); +class UserModel extends BaseModel {} + +// 集合名 +UserModel.CL = "ax_user"; + +UserModel.DB_STRUCTURE = { + _pid: 'string|true', + USER_ID: 'string|true', + + USER_MINI_OPENID: 'string|true|comment=小程序openid', + USER_STATUS: 'int|true|default=1|comment=状态 0=待审核,1=正常', + + USER_NAME: 'string|false|comment=用户姓名', + USER_MOBILE: 'string|false|comment=联系电话', + + USER_WORK: 'string|false|comment=所在单位', + USER_CITY: 'string|false|comment=所在城市', + USER_TRADE: 'string|false|comment=职业领域', + + + USER_LOGIN_CNT: 'int|true|default=0|comment=登陆次数', + USER_LOGIN_TIME: 'int|false|comment=最近登录时间', + + + USER_ADD_TIME: 'int|true', + USER_ADD_IP: 'string|false', + + USER_EDIT_TIME: 'int|true', + USER_EDIT_IP: 'string|false', +} + +// 字段前缀 +UserModel.FIELD_PREFIX = "USER_"; + +/** + * 状态 0=待审核,1=正常 + */ +UserModel.STATUS = { + UNUSE: 0, + COMM: 1 +}; + +UserModel.STATUS_DESC = { + UNUSE: '待审核', + COMM: '正常' +}; + + +module.exports = UserModel; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_export_service.js b/cloudfunctions/cloud/project/service/admin/admin_export_service.js new file mode 100644 index 0000000..e9c6e34 --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_export_service.js @@ -0,0 +1,80 @@ +/** + * Notes: 预约后台管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY www.code3721.com + * Date: 2022-12-08 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); + +const MeetModel = require('../../model/meet_model.js'); +const JoinModel = require('../../model/join_model.js'); +const UserModel = require('../../model/user_model.js'); + +const DataService = require('./../data_service'); + +// 导出报名数据KEY +const EXPORT_JOIN_DATA_KEY = 'join_data'; + +// 导出用户数据KEY +const EXPORT_USER_DATA_KEY = 'user_data'; + +class AdminExportService extends BaseAdminService { + // #####################导出报名数据 + /**获取报名数据 */ + async getJoinDataURL() { + let dataService = new DataService(); + return await dataService.getExportDataURL(EXPORT_JOIN_DATA_KEY); + } + + /**删除报名数据 */ + async deleteJoinDataExcel() { + let dataService = new DataService(); + return await dataService.deleteDataExcel(EXPORT_JOIN_DATA_KEY); + } + + // 根据表单提取数据 + _getValByForm(arr, mark, title) { + for (let k in arr) { + if (arr[k].mark == mark) return arr[k].val; + if (arr[k].title == title) return arr[k].val; + } + + return ''; + } + + /**导出报名数据 */ + async exportJoinDataExcel({ + meetId, + startDay, + endDay, + status + }) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + + // #####################导出用户数据 + + /**获取用户数据 */ + async getUserDataURL() { + let dataService = new DataService(); + return await dataService.getExportDataURL(EXPORT_USER_DATA_KEY); + } + + /**删除用户数据 */ + async deleteUserDataExcel() { + let dataService = new DataService(); + return await dataService.deleteDataExcel(EXPORT_USER_DATA_KEY); + } + + /**导出用户数据 */ + async exportUserDataExcel(condition) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } +} + +module.exports = AdminExportService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_home_service.js b/cloudfunctions/cloud/project/service/admin/admin_home_service.js new file mode 100644 index 0000000..8e7a560 --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_home_service.js @@ -0,0 +1,101 @@ +/** + * Notes: 后台HOME/登录模块 + * Date: 2021-03-15 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); + +const dataUtil = require('../../../framework/utils/data_util.js'); +const cacheUtil = require('../../../framework/utils/cache_util.js'); + +const cloudBase = require('../../../framework/cloud/cloud_base.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const config = require('../../../config/config.js'); +const AdminModel = require('../../model/admin_model.js'); +const LogModel = require('../../model/log_model.js'); + +const UserModel = require('../../model/user_model.js'); +const MeetModel = require('../../model/meet_model.js'); +const NewsModel = require('../../model/news_model.js'); +const JoinModel = require('../../model/join_model.js'); + +class AdminHomeService extends BaseAdminService { + + /** + * 首页数据归集 + */ + async adminHome() { + let where = {}; + + let userCnt = await UserModel.count(where); + let meetCnt = await MeetModel.count(where); + let newsCnt = await NewsModel.count(where); + let joinCnt = await JoinModel.count(where); + return { + userCnt, + meetCnt, + newsCnt, + joinCnt + } + } + + /** 清除缓存 */ + async clearCache() { + await cacheUtil.clear(); + } + + /** + * 管理员登录 + * @param {*} cloudID + */ + async adminLogin(name, password) { + + if (name != config.ADMIN_NAME) + this.AppError('管理员账号或密码不正确'); + + if (password != config.ADMIN_PWD) + this.AppError('管理员账号或密码不正确'); + + + // 判断是否存在 + let where = { + ADMIN_STATUS: 1 + } + let fields = 'ADMIN_ID,ADMIN_NAME,ADMIN_TYPE,ADMIN_LOGIN_TIME,ADMIN_LOGIN_CNT'; + let admin = await AdminModel.getOne(where, fields); + if (!admin) + this.AppError('管理员不存在'); + + let cnt = admin.ADMIN_LOGIN_CNT; + + // 生成token + let token = dataUtil.genRandomString(32); + let tokenTime = timeUtil.time(); + let data = { + ADMIN_TOKEN: token, + ADMIN_TOKEN_TIME: tokenTime, + ADMIN_LOGIN_TIME: timeUtil.time(), + ADMIN_LOGIN_CNT: cnt + 1 + } + await AdminModel.edit(where, data); + + let type = admin.ADMIN_TYPE; + let last = (!admin.ADMIN_LOGIN_TIME) ? '尚未登录' : timeUtil.timestamp2Time(admin.ADMIN_LOGIN_TIME); + + // 写日志 + this.insertLog('登录了系统', admin, LogModel.TYPE.SYS); + + return { + token, + name: admin.ADMIN_NAME, + type, + last, + cnt + } + + } + + +} + +module.exports = AdminHomeService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_meet_service.js b/cloudfunctions/cloud/project/service/admin/admin_meet_service.js new file mode 100644 index 0000000..4908f7e --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_meet_service.js @@ -0,0 +1,311 @@ +/** + * Notes: 预约后台管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY www.code3721.com + * Date: 2021-12-08 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); +const MeetService = require('../meet_service.js'); +const dataUtil = require('../../../framework/utils/data_util.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const util = require('../../../framework/utils/util.js'); +const cloudUtil = require('../../../framework/cloud/cloud_util.js'); +const cloudBase = require('../../../framework/cloud/cloud_base.js'); + +const MeetModel = require('../../model/meet_model.js'); +const JoinModel = require('../../model/join_model.js'); +const DayModel = require('../../model/day_model.js'); +const config = require('../../../config/config.js'); + +class AdminMeetService extends BaseAdminService { + + /** 预约数据列表 */ + async getDayList(meetId, start, end) { + let where = { + DAY_MEET_ID: meetId, + day: ['between', start, end] + } + let orderBy = { + day: 'asc' + } + return await DayModel.getAllBig(where, 'day,times,dayDesc', orderBy); + } + + // 按项目统计人数 + async statJoinCntByMeet(meetId) { + let today = timeUtil.time('Y-M-D'); + let where = { + day: ['>=', today], + DAY_MEET_ID: meetId + } + + let meetService = new MeetService(); + let list = await DayModel.getAllBig(where, 'DAY_MEET_ID,times', {}, 1000); + for (let k in list) { + let meetId = list[k].DAY_MEET_ID; + let times = list[k].times; + + for (let j in times) { + let timeMark = times[j].mark; + meetService.statJoinCnt(meetId, timeMark); + } + } + } + + /** 自助签到码 */ + async genSelfCheckinQr(page, timeMark) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /** 管理员按钮核销 */ + async checkinJoin(joinId, flag) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /** 管理员扫码核销 */ + async scanJoin(meetId, code) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /** + * 判断本日是否有预约记录 + * @param {*} daySet daysSet的节点 + */ + checkHasJoinCnt(times) { + if (!times) return false; + for (let k in times) { + if (times[k].stat.succCnt) return true; + } + return false; + } + + // 判断含有预约的日期 + getCanModifyDaysSet(daysSet) { + let now = timeUtil.time('Y-M-D'); + + for (let k in daysSet) { + if (daysSet[k].day < now) continue; + daysSet[k].hasJoin = this.checkHasJoinCnt(daysSet[k].times); + } + + return daysSet; + } + + /** 取消某个时间段的所有预约记录 */ + async cancelJoinByTimeMark(admin, meetId, timeMark, reason) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + + /**添加 */ + async insertMeet(adminId, { + title, + order, + typeId, + typeName, + daysSet, + isShowLimit, + formSet, + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**删除数据 */ + async delMeet(id) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**获取信息 */ + async getMeetDetail(id) { + let fields = '*'; + + let where = { + _id: id + } + let meet = await MeetModel.getOne(where, fields); + if (!meet) return null; + + let meetService = new MeetService(); + meet.MEET_DAYS_SET = await meetService.getDaysSet(id, timeUtil.time('Y-M-D')); //今天及以后 + + return meet; + } + + /** + * 更新富文本详细的内容及图片信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateMeetContent({ + meetId, + content // 富文本数组 + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + /** + * 更新封面内容及图片信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateMeetStyleSet({ + meetId, + styleSet + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + /** 更新日期设置 */ + async _editDays(meetId, nowDay, daysSetData) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**更新数据 */ + async editMeet({ + id, + title, + typeId, + typeName, + order, + daysSet, + isShowLimit, + formSet + }) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + /**预约名单分页列表 */ + async getJoinList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + meetId, + mark, + page, + size, + isTotal = true, + oldTotal + }) { + + orderBy = orderBy || { + 'JOIN_EDIT_TIME': 'desc' + }; + let fields = 'JOIN_IS_CHECKIN,JOIN_CODE,JOIN_ID,JOIN_REASON,JOIN_USER_ID,JOIN_MEET_ID,JOIN_MEET_TITLE,JOIN_MEET_DAY,JOIN_MEET_TIME_START,JOIN_MEET_TIME_END,JOIN_MEET_TIME_MARK,JOIN_FORMS,JOIN_STATUS,JOIN_EDIT_TIME'; + + let where = { + JOIN_MEET_ID: meetId, + JOIN_MEET_TIME_MARK: mark + }; + if (util.isDefined(search) && search) { + where['JOIN_FORMS.val'] = { + $regex: '.*' + search, + $options: 'i' + }; + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'status': + // 按类型 + sortVal = Number(sortVal); + if (sortVal == 1099) //取消的2种 + where.JOIN_STATUS = ['in', [10, 99]] + else + where.JOIN_STATUS = Number(sortVal); + break; + case 'checkin': + // 签到 + where.JOIN_STATUS = JoinModel.STATUS.SUCC; + if (sortVal == 1) { + where.JOIN_IS_CHECKIN = 1; + } else { + where.JOIN_IS_CHECKIN = 0; + } + break; + } + } + + return await JoinModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + } + + /**预约项目分页列表 */ + async getMeetList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + whereEx, //附加查询条件 + page, + size, + isTotal = true, + oldTotal + }) { + + orderBy = orderBy || { + 'MEET_ORDER': 'asc', + 'MEET_ADD_TIME': 'desc' + }; + let fields = 'MEET_TYPE,MEET_TYPE_NAME,MEET_TITLE,MEET_STATUS,MEET_DAYS,MEET_ADD_TIME,MEET_EDIT_TIME,MEET_ORDER'; + + let where = {}; + if (util.isDefined(search) && search) { + where.MEET_TITLE = { + $regex: '.*' + search, + $options: 'i' + }; + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'status': + // 按类型 + where.MEET_STATUS = Number(sortVal); + break; + case 'typeId': + // 按类型 + where.MEET_TYPE_ID = sortVal; + break; + case 'sort': + // 排序 + if (sortVal == 'view') { + orderBy = { + 'MEET_VIEW_CNT': 'desc', + 'MEET_ADD_TIME': 'desc' + }; + } + + break; + } + } + + return await MeetModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + } + + /** 删除 */ + async delJoin(joinId) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + /**修改报名状态 + * 特殊约定 99=>正常取消 + */ + async statusJoin(admin, joinId, status, reason = '') { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**修改项目状态 */ + async statusMeet(id, status) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**置顶排序设定 */ + async sortMeet(id, sort) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } +} + +module.exports = AdminMeetService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_mgr_service.js b/cloudfunctions/cloud/project/service/admin/admin_mgr_service.js new file mode 100644 index 0000000..6e5ca4a --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_mgr_service.js @@ -0,0 +1,61 @@ +/** + * Notes: 管理员管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); + +const util = require('../../../framework/utils/util.js'); +const AdminModel = require('../../model/admin_model.js'); +const LogModel = require('../../model/log_model.js'); + + +class AdminMgrService extends BaseAdminService { + + + /** 取得日志分页列表 */ + async getLogList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + whereEx, //附加查询条件 + page, + size, + oldTotal = 0 + }) { + + orderBy = orderBy || { + LOG_ADD_TIME: 'desc' + }; + let fields = '*'; + let where = {}; + + if (util.isDefined(search) && search) { + where.or = [{ + LOG_CONTENT: ['like', search] + }, { + LOG_ADMIN_NAME: ['like', search] + }, { + LOG_ADD_IP: ['like', search] + }]; + + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'type': + // 按类型 + where.LOG_TYPE = Number(sortVal); + break; + } + } + let result = await LogModel.getList(where, fields, orderBy, page, size, true, oldTotal); + + + return result; + } + +} + +module.exports = AdminMgrService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_news_service.js b/cloudfunctions/cloud/project/service/admin/admin_news_service.js new file mode 100644 index 0000000..96ca97e --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_news_service.js @@ -0,0 +1,163 @@ +/** + * Notes: 资讯后台管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); + +const dataUtil = require('../../../framework/utils/data_util.js'); +const util = require('../../../framework/utils/util.js'); +const cloudUtil = require('../../../framework/cloud/cloud_util.js'); + +const NewsModel = require('../../model/news_model.js'); + +class AdminNewsService extends BaseAdminService { + + /**添加资讯 */ + async insertNews(adminId, { + title, + cateId, //分类 + cateName, + order, + type = 0, //类型 + desc = '', + url = '', //外部链接 + + }) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**删除资讯数据 */ + async delNews(id) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**获取资讯信息 */ + async getNewsDetail(id) { + let fields = '*'; + + let where = { + _id: id + } + let news = await NewsModel.getOne(where, fields); + if (!news) return null; + + return news; + } + + /** + * 更新富文本详细的内容及图片信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateNewsContent({ + newsId, + content // 富文本数组 + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + /** + * 更新资讯图片信息 + * @returns 返回 urls数组 [url1, url2, url3, ...] + */ + async updateNewsPic({ + newsId, + imgList // 图片数组 + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + + } + + + /**更新资讯数据 */ + async editNews({ + id, + title, + cateId, //分类 + cateName, + order, + type = 0, //类型 + desc = '', + url = '', //外部链接 + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**取得资讯分页列表 */ + async getNewsList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + whereEx, //附加查询条件 + page, + size, + isTotal = true, + oldTotal + }) { + + orderBy = orderBy || { + 'NEWS_ORDER': 'asc', + 'NEWS_ADD_TIME': 'desc' + }; + let fields = 'NEWS_TYPE,NEWS_URL,NEWS_TITLE,NEWS_DESC,NEWS_CATE_ID,NEWS_EDIT_TIME,NEWS_ADD_TIME,NEWS_ORDER,NEWS_STATUS,NEWS_CATE_NAME,NEWS_HOME'; + + let where = {}; + + if (util.isDefined(search) && search) { + where.or = [{ + NEWS_TITLE: ['like', search] + }, ]; + + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'cateId': + // 按类型 + where.NEWS_CATE_ID = sortVal; + break; + case 'status': + // 按类型 + where.NEWS_STATUS = Number(sortVal); + break; + case 'home': + // 按类型 + where.NEWS_HOME = Number(sortVal); + break; + case 'sort': + // 排序 + if (sortVal == 'view') { + orderBy = { + 'NEWS_VIEW_CNT': 'desc', + 'NEWS_ADD_TIME': 'desc' + }; + } + if (sortVal == 'new') { + orderBy = { + 'NEWS_ADD_TIME': 'desc' + }; + } + break; + } + } + + return await NewsModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + } + + /**修改资讯状态 */ + async statusNews(id, status) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**资讯置顶排序设定 */ + async sortNews(id, sort) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } +} + +module.exports = AdminNewsService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_setup_service.js b/cloudfunctions/cloud/project/service/admin/admin_setup_service.js new file mode 100644 index 0000000..167746a --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_setup_service.js @@ -0,0 +1,64 @@ +/** + * Notes: 设置管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-07-11 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); +const cloudBase = require('../../../framework/cloud/cloud_base.js'); +const cloudUtil = require('../../../framework/cloud/cloud_util.js'); +const SetupModel = require('../../model/setup_model.js'); +const config = require('../../../config/config.js'); + +class AdminSetupService extends BaseAdminService { + + + /** 关于我们 */ + async setupAbout({ + about, + aboutPic + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /** 联系我们设置 */ + async setupContact({ + address, + phone, + officePic, + servicePic, + }) { + + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /** 小程序码 */ + async genMiniQr() { + //生成小程序qr buffer + let cloud = cloudBase.getCloud(); + + let page = "projects/" + this.getProjectId() + "/default/index/default_index"; + console.log(page); + + let result = await cloud.openapi.wxacode.getUnlimited({ + scene: 'qr', + width: 280, + check_path: false, + env_version: 'release', //trial,develop + page + }); + + let upload = await cloud.uploadFile({ + cloudPath: config.SETUP_PATH + 'qr.png', + fileContent: result.buffer, + }); + + if (!upload || !upload.fileID) return; + + return upload.fileID; + } + +} + +module.exports = AdminSetupService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_temp_service.js b/cloudfunctions/cloud/project/service/admin/admin_temp_service.js new file mode 100644 index 0000000..f6134c6 --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_temp_service.js @@ -0,0 +1,48 @@ +/** + * Notes: 预约后台管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-12-08 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); +const TempModel = require('../../model/temp_model.js'); + +class AdminTempService extends BaseAdminService { + + /**添加模板 */ + async insertTemp({ + name, + times, + }) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + /**更新数据 */ + async editTemp({ + id, + limit, + isLimit + }) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + + /**删除数据 */ + async delTemp(id) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + + + /**分页列表 */ + async getTempList() { + let orderBy = { + 'TEMP_ADD_TIME': 'desc' + }; + let fields = 'TEMP_NAME,TEMP_TIMES'; + + let where = {}; + return await TempModel.getAll(where, fields, orderBy); + } +} + +module.exports = AdminTempService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/admin_user_service.js b/cloudfunctions/cloud/project/service/admin/admin_user_service.js new file mode 100644 index 0000000..bb90c7e --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/admin_user_service.js @@ -0,0 +1,105 @@ +/** + * Notes: 用户管理 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-22y 07:48:00 + */ + +const BaseAdminService = require('./base_admin_service.js'); + +const util = require('../../../framework/utils/util.js'); + +const UserModel = require('../../model/user_model.js'); +const JoinModel = require('../../model/join_model.js'); + +class AdminUserService extends BaseAdminService { + + + /** 获得某个用户信息 */ + async getUser({ + userId, + fields = '*' + }) { + let where = { + USER_MINI_OPENID: userId, + } + return await UserModel.getOne(where, fields); + } + + /** 取得用户分页列表 */ + async getUserList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + whereEx, //附加查询条件 + page, + size, + oldTotal = 0 + }) { + + orderBy = orderBy || { + USER_ADD_TIME: 'desc' + }; + let fields = '*'; + + + let where = {}; + where.and = { + _pid: this.getProjectId() //复杂的查询在此处标注PID + }; + + if (util.isDefined(search) && search) { + where.or = [{ + USER_NAME: ['like', search] + }, + { + USER_MOBILE: ['like', search] + }, + { + USER_MEMO: ['like', search] + }, + ]; + + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'status': + where.and.USER_STATUS = Number(sortVal); + break; + case 'companyDef': + // 单位性质 + where.and.USER_COMPANY_DEF = (sortVal); + break; + + case 'sort': + // 排序 + if (sortVal == 'newdesc') { //最新 + orderBy = { + 'USER_ADD_TIME': 'desc' + }; + } + if (sortVal == 'newasc') { + orderBy = { + 'USER_ADD_TIME': 'asc' + }; + } + } + } + let result = await UserModel.getList(where, fields, orderBy, page, size, true, oldTotal, false); + + + // 为导出增加一个参数condition + result.condition = encodeURIComponent(JSON.stringify(where)); + + return result; + } + + + /**删除用户 */ + async delUser(id) { + this.AppError('此功能暂不开放,如有需要请加作者微信:cclinux0730'); + } + +} + +module.exports = AdminUserService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/admin/base_admin_service.js b/cloudfunctions/cloud/project/service/admin/base_admin_service.js new file mode 100644 index 0000000..9032d53 --- /dev/null +++ b/cloudfunctions/cloud/project/service/admin/base_admin_service.js @@ -0,0 +1,138 @@ +/** + * Notes: 后台管理模块 基类 + * Date: 2021-03-15 07:48:00 + */ + +const BaseService = require('../base_service.js'); + +const cloudBase = require('../../../framework/cloud/cloud_base.js'); +const timeUtil = require('../../../framework/utils/time_util.js'); +const appCode = require('../../../framework/core/app_code.js'); + +const config = require('../../../config/config.js'); + +const AdminModel = require('../../model/admin_model.js'); +const LogModel = require('../../model/log_model.js'); +const MeetModel = require('../../model/meet_model.js'); +const UserModel = require('../../model/user_model.js'); +const NewsModel = require('../../model/news_model.js'); + +class BaseAdminService extends BaseService { + + + /** 是否管理员 */ + async isAdmin(token) { + + // 马甲判断,自动登录 + if (config.MASK_IS_OPEN && token == (config.MASK_ADMIN_PHONE + config.MASK_ADMIN_TOKEN)) { + let admin = {}; + admin.ADMIN_NAME = 'mask-admin'; + admin.ADMIN_ID = '9999'; + admin.ADMIN_PHONE = config.MASK_ADMIN_PHONE; + admin.ADMIN_LOGIN_CNT = 9999; + admin.ADMIN_LOGIN_TIME = ''; + admin.ADMIN_TYPE = 1; + admin.ADMIN_STATUS = 1; + return admin; + } else if (config.IS_DEMO) { // 演示版本 + let admin = {}; + admin.ADMIN_NAME = '体验用户'; + admin.ADMIN_ID = '1'; + admin.ADMIN_PHONE = '13900000000'; + admin.ADMIN_LOGIN_CNT = 0; + admin.ADMIN_LOGIN_TIME = ''; + admin.ADMIN_TYPE = 0; + admin.ADMIN_STATUS = 1; + return admin; + } + + let where = { + ADMIN_TOKEN: token, + ADMIN_TOKEN_TIME: ['>', timeUtil.time() - config.ADMIN_LOGIN_EXPIRE * 1000], // token有效时间 + ADMIN_STATUS: 1, + } + let admin = await AdminModel.getOne(where, 'ADMIN_ID,ADMIN_PHONE,ADMIN_NAME,ADMIN_TYPE'); + if (!admin) + this.AppError('管理员不存在', appCode.ADMIN_ERROR); + + return admin; + } + + /** 是否超级管理员 */ + async isSuperAdmin(token) { + + // 马甲判断,自动登录 + if (config.MASK_IS_OPEN && token == (config.MASK_ADMIN_PHONE + config.MASK_ADMIN_TOKEN)) { + let admin = {}; + admin.ADMIN_NAME = 'mask-admin'; + admin.ADMIN_ID = '9999'; + admin.ADMIN_PHONE = config.MASK_ADMIN_PHONE; + admin.ADMIN_LOGIN_CNT = 9999; + admin.ADMIN_LOGIN_TIME = ''; + admin.ADMIN_TYPE = 1; + admin.ADMIN_STATUS = 1; + return admin; + } + + let where = { + ADMIN_TOKEN: token, + ADMIN_TOKEN_TIME: ['>', timeUtil.time() - config.ADMIN_LOGIN_EXPIRE * 1000], // token有效时间 + ADMIN_STATUS: 1, + ADMIN_TYPE: 1 + } + let admin = await AdminModel.getOne(where, 'ADMIN_ID,ADMIN_PHONE,ADMIN_NAME,ADMIN_TYPE'); + if (!admin) + this.AppError('超级管理员不存在', appCode.ADMIN_ERROR); + + return admin; + } + + /** 写入日志 */ + async insertLog(content, admin, type) { + if (!admin) return; + + if (config.MASK_IS_OPEN && config.MASK_ADMIN_PHONE && admin.ADMIN_PHONE == config.MASK_ADMIN_PHONE) return; + + let data = { + LOG_CONTENT: content, + + LOG_ADMIN_ID: admin.ADMIN_ID, + LOG_ADMIN_NAME: admin.ADMIN_NAME, + LOG_TYPE: type + } + await LogModel.insert(data); + } + + /** 日志操作前获取名称 */ + async getNameBeforeLog(type, oid) { + let name = ''; + switch (type) { + case 'news': { + let news = await NewsModel.getOne(oid, 'NEWS_TITLE'); + name = news.NEWS_TITLE; + break; + } + case 'meet': { + let meet = await MeetModel.getOne(oid, 'MEET_TITLE'); + name = meet.MEET_TITLE; + break; + } + case 'admin': { + let admin = await AdminModel.getOne(oid, 'ADMIN_NAME'); + name = admin.ADMIN_NAME; + break; + } + case 'user': { + let user = await UserModel.getOne({ + USER_MINI_OPENID: oid + }, 'USER_MOBILE'); + name = user.USER_MOBILE; + break; + } + } + return name; + } + +} + +module.exports = BaseAdminService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/base_service.js b/cloudfunctions/cloud/project/service/base_service.js new file mode 100644 index 0000000..71a8c9a --- /dev/null +++ b/cloudfunctions/cloud/project/service/base_service.js @@ -0,0 +1,168 @@ +/** + * Notes: 业务基类 + * Date: 2021-03-15 04:00:00 + */ + +const AppError = require('../../framework/core/app_error.js'); +const appCode = require('../../framework/core/app_code.js'); +const timeUtil = require('../../framework/utils/time_util.js'); +const dbUtil = require('../../framework/database/db_util.js'); +const SetupModel = require('../model/setup_model.js'); +const AdminModel = require('../model/admin_model.js'); +const NewsModel = require('../model/news_model.js'); +const MeetModel = require('../model/meet_model.js'); +const config = require('../../config/config.js'); + +class BaseService { + constructor() { + // 当前时间戳 + this._timestamp = timeUtil.time(); + + } + + /** + * 抛出异常 + * @param {*} msg + * @param {*} code + */ + AppError(msg, code = appCode.LOGIC) { + throw new AppError(msg, code); + } + + getProjectId() { + if (global.PID) + return global.PID; + else + return 'unknow'; + } + + + async initSetup() { + if (await dbUtil.isExistCollection('ax_setup')) { + let setupCnt = await SetupModel.count({}); + if (setupCnt > 0) return; + } + + console.log('### initSetup...'); + + let arr = config.COLLECTION_NAME.split('|'); + for (let k in arr) { + if (!await dbUtil.isExistCollection(arr[k])) { + await dbUtil.createCollection(arr[k]); + } + } + + if (await dbUtil.isExistCollection('ax_admin')) { + let adminCnt = await AdminModel.count({}); + if (adminCnt == 0) { + + let data = {}; + data.ADMIN_NAME = '系统管理员'; + data.ADMIN_PHONE = '13900000000'; + data.ADMIN_TYPE = 1; + + await AdminModel.insert(data); + } + } + + if (await dbUtil.isExistCollection('ax_news')) { + let newsCnt = await NewsModel.count({}); + if (newsCnt == 0) { + + // 插入 + let newsArr = config.NEWS_CATE.split(','); + for (let j in newsArr) { + let title = newsArr[j].split('=')[1]; + let cateId = newsArr[j].split('=')[0]; + + let data = {}; + data.NEWS_TITLE = title + '标题1'; + data.NEWS_DESC = title + '简介1'; + data.NEWS_CATE_ID = cateId; + data.NEWS_CATE_NAME = title; + data.NEWS_ADMIN_ID = '1'; + data.NEWS_CONTENT = [{ + type: 'text', + val: title + '内容1' + }]; + data.NEWS_PIC = ['../../../../images/default_cover_pic.gif']; + + await NewsModel.insert(data); + } + } + + } + + if (await dbUtil.isExistCollection('ax_meet')) { + let meetCnt = await MeetModel.count({}); + if (meetCnt == 0) { + + // 插入 + let meetArr = config.MEET_TYPE.split(','); + for (let j in meetArr) { + let title = meetArr[j].split('=')[1]; + let typeId = meetArr[j].split('=')[0]; + + let data = {}; + data.MEET_TITLE = title + '标题1'; + data.MEET_STYLE_SET = { + desc: title + '简介1', + pic: '../../../../images/default_cover_pic.gif' + }; + data.MEET_TYPE_ID = typeId; + data.MEET_TYPE_NAME = title; + data.MEET_ADMIN_ID = '1'; + data.MEET_CONTENT = [{ + type: 'text', + val: title + '内容1' + }]; + data.MEET_DAYS = []; + data.MEET_FORM_SET = [{ + type: 'line', + title: '姓名', + desc: '请填写您的姓名', + must: true, + len: 50, + onlySet: { + mode: 'all', + cnt: -1 + }, + selectOptions: ['', ''], + mobileTruth: true, + checkBoxLimit: 2, + }, + { + type: 'line', + title: '手机', + desc: '请填写您的手机号码', + must: true, + len: 50, + onlySet: { + mode: 'all', + cnt: -1 + }, + selectOptions: ['', ''], + mobileTruth: true, + checkBoxLimit: 2, + } + ]; + + await MeetModel.insert(data); + } + } + + } + + if (await dbUtil.isExistCollection('ax_setup')) { + let setupCnt = await SetupModel.count({}); + if (setupCnt == 0) { + let data = {}; + data.SETUP_ABOUT = '关于我们'; + await SetupModel.insert(data); + } + } + } + +} + +module.exports = BaseService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/data_service.js b/cloudfunctions/cloud/project/service/data_service.js new file mode 100644 index 0000000..aa7285b --- /dev/null +++ b/cloudfunctions/cloud/project/service/data_service.js @@ -0,0 +1,129 @@ +/** + * Notes: 各种数据操作业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-03-01 07:48:00 + */ + +const BaseService = require('./base_service.js'); +const cloudBase = require('../../framework/cloud/cloud_base.js'); +const cloudUtil = require('../../framework/cloud/cloud_util.js'); +const ExportModel = require('../model/export_model.js'); +const timeUtil = require('../../framework/utils/time_util'); +const md5Lib = require('../../framework/lib/md5_lib.js'); +const config = require('../../config/config.js'); + + +class DataService extends BaseService { + + // 获得当前导出链接 + async getExportDataURL(key) { + // 取出数据 + let whereExport = { + EXPORT_KEY: key + } + + let url = ''; + let time = ''; + let expData = await ExportModel.getOne(whereExport, 'EXPORT_CLOUD_ID,EXPORT_EDIT_TIME'); + if (!expData) + url = ''; + else { + url = expData.EXPORT_CLOUD_ID; + url = await cloudUtil.getTempFileURLOne(url) + '?rd=' + this._timestamp; + time = timeUtil.timestamp2Time(expData.EXPORT_EDIT_TIME); + } + + return { + url, + time + } + } + + // 删除数据文件 + async deleteDataExcel(key) { + console.log('[deleteExcel] BEGIN... , key=' + key) + + // 取出数据 + let whereExport = { + EXPORT_KEY: key + } + let expData = await ExportModel.getOne(whereExport); + if (!expData) return; + + // 文件路径 + let xlsPath = expData.EXPORT_CLOUD_ID; + + console.log('[deleteExcel] path = ' + xlsPath); + + const cloud = cloudBase.getCloud(); + await cloud.deleteFile({ + fileList: [xlsPath], + }).then(async res => { + console.log(res.fileList); + if (res.fileList && res.fileList[0] && res.fileList[0].status == -503003) { + console.log('[deleteUserExcel] ERROR = ', res.fileList[0].status + ' >> ' + res.fileList[0].errMsg); + this.AppError('文件不存在或者已经删除'); + } + + // 删除导出表 + await ExportModel.del(whereExport); + + console.log('[deleteExcel] OVER.'); + + }).catch(error => { + if (error.name != 'AppError') { + console.log('[deleteExcel] ERROR = ', error); + this.AppError('操作失败,请重新删除'); + } else + throw error; + }); + + + } + + // 导出数据 + async exportDataExcel(key, title, total, data, options = {}) { + // 删除导出表 + let whereExport = { + EXPORT_KEY: key + } + await ExportModel.del(whereExport); + + let fileName = key + '_' + md5Lib.md5(key + config.CLOUD_ID + this.getProjectId()); + let xlsPath = config.DATA_EXPORT_PATH + fileName + '.xlsx'; + + // 操作excel用的类库 + const xlsx = require('node-xlsx'); + + // 把数据保存到excel里 + let buffer = await xlsx.build([{ + name: title + timeUtil.timestamp2Time(this._timestamp, 'Y-M-D'), + data, + options + }]); + + // 把excel文件保存到云存储里 + console.log('[ExportData] Save to ' + xlsPath); + const cloud = cloudBase.getCloud(); + let upload = await cloud.uploadFile({ + cloudPath: xlsPath, + fileContent: buffer, //excel二进制文件 + }); + if (!upload || !upload.fileID) return; + + // 入导出表 + let dataExport = { + EXPORT_KEY: key, + EXPORT_CLOUD_ID: upload.fileID + } + await ExportModel.insert(dataExport); + + console.log('[ExportData] OVER.') + + return { + total + } + } +} + +module.exports = DataService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/home_service.js b/cloudfunctions/cloud/project/service/home_service.js new file mode 100644 index 0000000..7d42d45 --- /dev/null +++ b/cloudfunctions/cloud/project/service/home_service.js @@ -0,0 +1,33 @@ +/** + * Notes: 全局/首页模块业务逻辑 + * Date: 2021-03-15 04:00:00 + */ + +const BaseService = require('./base_service.js'); + +const SetupModel = require('../model/setup_model.js'); +const dataUtil = require('../../framework/utils/data_util.js'); +const config = require('../../config/config.js'); + +class HomeService extends BaseService { + /** + * 取得系统设置 + * @param {*} param0 + */ + async getSetup(fields = '*') { + let where = {} + let setup = await SetupModel.getOne(where, fields); + + if (!setup) { + let data = { + SETUP_ABOUT: '关于我们' + }; + await SetupModel.insert(data); + setup = await SetupModel.getOne(where, fields); + } + return setup; + + } +} + +module.exports = HomeService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/meet_service.js b/cloudfunctions/cloud/project/service/meet_service.js new file mode 100644 index 0000000..feef296 --- /dev/null +++ b/cloudfunctions/cloud/project/service/meet_service.js @@ -0,0 +1,789 @@ +/** + * Notes: 预约模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-12-10 07:48:00 + */ + +const BaseService = require('./base_service.js'); +const util = require('../../framework/utils/util.js'); +const MeetModel = require('../model/meet_model.js'); +const JoinModel = require('../model/join_model.js'); +const DayModel = require('../model/day_model.js'); +const LogUtil = require('../../framework/utils/log_util.js'); +const timeUtil = require('../../framework/utils/time_util.js'); +const dataUtil = require('../../framework/utils/data_util.js'); +const config = require('../../config/config.js'); +const PassportService = require('../service/passport_service.js'); +const cloudBase = require('../../framework/cloud/cloud_base.js'); +const UserModel = require('../model/user_model.js'); + +class MeetService extends BaseService { + + constructor() { + super(); + this._log = new LogUtil(config.MEET_LOG_LEVEL); + } + + /** + * 抛出异常 + * @param {*} msg + * @param {*} code + */ + AppError(msg) { + this._log.error(msg); + super.AppError(msg); + } + + _meetLog(meet, func = '', msg = '') { + let str = ''; + str = `[MEET=${meet.MEET_TITLE}][${func}] ${msg}`; + this._log.debug(str); + } + + /** 统一获取Meet(某天) */ + async getMeetOneDay(meetId, day, where, fields = '*') { + + let meet = await MeetModel.getOne(where, fields); + if (!meet) return meet; + + meet.MEET_DAYS_SET = await this.getDaysSet(meetId, day, day); + return meet; + } + + /** 获取日期设置 */ + async getDaysSet(meetId, startDay, endDay = null) { + let where = { + DAY_MEET_ID: meetId + } + if (startDay && endDay && endDay == startDay) + where.day = startDay; + else if (startDay && endDay) + where.day = ['between', startDay, endDay]; + else if (!startDay && endDay) + where.day = ['<=', endDay]; + else if (startDay && !endDay) + where.day = ['>=', startDay]; + + let orderBy = { + 'day': 'asc' + } + let list = await DayModel.getAllBig(where, 'day,dayDesc,times', orderBy, 1000); + + for (let k in list) { + delete list[k]._id; + } + + return list; + } + + // 按时段统计某时段报名情况 + async statJoinCnt(meetId, timeMark) { + let whereJoin = { + JOIN_MEET_TIME_MARK: timeMark, + JOIN_MEET_ID: meetId + }; + let ret = await JoinModel.groupCount(whereJoin, 'JOIN_STATUS'); + + let stat = { //统计数据 + succCnt: ret['JOIN_STATUS_1'] || 0, //1=预约成功, + cancelCnt: ret['JOIN_STATUS_10'] || 0, //10=已取消, + adminCancelCnt: ret['JOIN_STATUS_99'] || 0, //99=后台取消 + }; + + let whereDay = { + DAY_MEET_ID: meetId, + day: this.getDayByTimeMark(timeMark) + }; + let day = await DayModel.getOne(whereDay, 'times'); + if (!day) return; + + let times = day.times; + for (let j in times) { + if (times[j].mark === timeMark) { + let data = { + ['times.' + j + '.stat']: stat + } + await DayModel.edit(whereDay, data); + return; + } + } + + } + + + // 预约前检测 + async beforeJoin(userId, meetId, timeMark) { + await this.checkMeetRules(userId, meetId, timeMark); + } + + // 预约逻辑 + async join(userId, meetId, timeMark, forms) { + // 预约时段是否存在 + let meetWhere = { + _id: meetId + }; + let day = this.getDayByTimeMark(timeMark); + let meet = await this.getMeetOneDay(meetId, day, meetWhere); + + if (!meet) { + this.AppError('预约时段选择错误1,请重新选择'); + } + + let daySet = this.getDaySetByTimeMark(meet, timeMark); + if (!daySet) + this.AppError('预约时段选择错误2,请重新选择'); + + let timeSet = this.getTimeSetByTimeMark(meet, timeMark); + if (!timeSet) + this.AppError('预约时段选择错误3,请重新选择'); + + // 规则校验 + await this.checkMeetRules(userId, meetId, timeMark); + + + let data = {}; + + data.JOIN_USER_ID = userId; + + data.JOIN_MEET_ID = meetId; + data.JOIN_MEET_TITLE = meet.MEET_TITLE; + data.JOIN_MEET_DAY = daySet.day; + data.JOIN_MEET_TIME_START = timeSet.start; + data.JOIN_MEET_TIME_END = timeSet.end; + data.JOIN_MEET_TIME_MARK = timeMark; + + data.JOIN_START_TIME = timeUtil.time2Timestamp(daySet.day + ' ' + timeSet.start + ':00'); + + data.JOIN_FORMS = forms; + + data.JOIN_STATUS = JoinModel.STATUS.SUCC; + data.JOIN_CODE = dataUtil.genRandomIntString(15); + + // 入库 + let joinId = await JoinModel.insert(data); + + // 若有手机号码 用户入库 + let mobile = ''; + let userName = ''; + for (let k in forms) { + if (!mobile && forms[k].type == 'mobile') { + mobile = forms[k].val; + continue; + } else if (!userName && forms[k].title == '姓名') { + userName = forms[k].val; + continue; + } + } + + // 统计 + this.statJoinCnt(meetId, timeMark); + + return { + result: 'ok', + joinId + } + } + + // 根据日期获取其所在天设置 + getDaySetByDay(meet, day) { + for (let k in meet.MEET_DAYS_SET) { + if (meet.MEET_DAYS_SET[k].day == day) + return dataUtil.deepClone(meet.MEET_DAYS_SET[k]); + } + return null; + } + + // 根据时段标识获取其所在天 + getDayByTimeMark(timeMark) { + return timeMark.substr(1, 4) + '-' + timeMark.substr(5, 2) + '-' + timeMark.substr(7, 2); + } + + // 根据时段标识获取其所在天设置 + getDaySetByTimeMark(meet, timeMark) { + let day = this.getDayByTimeMark(timeMark); + + for (let k in meet.MEET_DAYS_SET) { + if (meet.MEET_DAYS_SET[k].day == day) + return dataUtil.deepClone(meet.MEET_DAYS_SET[k]); + } + return null; + } + + // 根据时段标识获取其所在时段设置 + getTimeSetByTimeMark(meet, timeMark) { + let day = this.getDayByTimeMark(timeMark); + + for (let k in meet.MEET_DAYS_SET) { + if (meet.MEET_DAYS_SET[k].day != day) continue; + + for (let j in meet.MEET_DAYS_SET[k].times) { + if (meet.MEET_DAYS_SET[k].times[j].mark == timeMark) + return dataUtil.deepClone(meet.MEET_DAYS_SET[k].times[j]); + } + } + return null; + } + + // 预约时段人数和状态控制校验 + async checkMeetTimeControll(meet, timeMark) { + if (!meet) this.AppError('预约时段设置错误, 预约项目不存在'); + + let daySet = this.getDaySetByTimeMark(meet, timeMark); // 当天设置 + let timeSet = this.getTimeSetByTimeMark(meet, timeMark); // 预约时段设置 + + if (!daySet || !timeSet) this.AppError('预约时段设置错误day&time'); + + let statusDesc = timeSet.status == 1 ? '开启' : '关闭'; + let limitDesc = ''; + if (timeSet.isLimit) { + limitDesc = '人数上限MAX=' + timeSet.limit; + } else + limitDesc = '人数不限制NO'; + + this._meetLog(meet, `------------------------------`); + this._meetLog(meet, `#预约时段控制,预约日期=<${daySet.day}>`, `预约时段=[${timeSet.start}-${timeSet.end}],状态=${statusDesc}, ${limitDesc} 当前预约成功人数=${timeSet.stat.succCnt}`); + + if (timeSet.status == 0) this.AppError('该时段预约已经关闭,请选择其他'); + + // 时段总人数限制 + if (timeSet.isLimit) { + if (timeSet.stat.succCnt >= timeSet.limit) { + this.AppError('该时段预约人员已满,请选择其他'); + } + } + } + + + /** 报名规则校验 */ + async checkMeetRules(userId, meetId, timeMark) { + // 预约时段是否存在 + let meetWhere = { + _id: meetId + }; + let day = this.getDayByTimeMark(timeMark); + let meet = await this.getMeetOneDay(meetId, day, meetWhere); + if (!meet) { + this.AppError('预约时段选择错误,请重新选择'); + } + + // 预约时段人数和状态控制校验 + await this.checkMeetTimeControll(meet, timeMark); + + // 截止规则 + await this.checkMeetEndSet(meet, timeMark); + + // 针对用户的次数限制 + await this.checkMeetLimitSet(userId, meet, timeMark); + + } + + + // 预约次数限制校验 + async checkMeetLimitSet(userId, meet, timeMark) { + if (!meet) this.AppError('预约次数规则错误, 预约项目不存在'); + let meetId = meet._id; + + let daySet = this.getDaySetByTimeMark(meet, timeMark); // 当天设置 + let timeSet = this.getTimeSetByTimeMark(meet, timeMark); // 预约时段设置 + + this._meetLog(meet, `------------------------------`); + this._meetLog(meet, `#预约次数规则,预约日期=<${daySet.day}>`, `预约时段=[${timeSet.start}~${timeSet.end}]`); + + let where = { + JOIN_MEET_ID: meetId, + JOIN_MEET_TIME_MARK: timeMark, + JOIN_USER_ID: userId, + JOIN_STATUS: JoinModel.STATUS.SUCC + } + let cnt = await JoinModel.count(where); + this._meetLog(meet, `预约次数规则,mode=本时段可预约1次`, `当前已预约=${cnt}次`); + if (cnt >= 1) { + this.AppError(`您本时段已经预约,无须重复预约`); + } + } + + + + // 预约截止设置校验 + async checkMeetEndSet(meet, timeMark) { + if (!meet) this.AppError('预约截止规则错误, 预约项目不存在'); + + + this._meetLog(meet, `------------------------------`); + let daySet = this.getDaySetByTimeMark(meet, timeMark); // 当天设置 + let timeSet = this.getTimeSetByTimeMark(meet, timeMark); // 预约时段设置 + + this._meetLog(meet, `#预约截止规则,预约日期=<${daySet.day}>`, `预约时段=[${timeSet.start}-${timeSet.end}]`); + + let nowTime = timeUtil.time('Y-M-D h:m:s'); + + let startTime = daySet.day + ' ' + timeSet.start + ':00'; + this._meetLog(meet, `预约开始规则,mode=<时段过期判定>`, `预约开始时段=${startTime},当前时段=${nowTime}`); + if (nowTime > startTime) { + this.AppError('该时段已开始,无法预约,请选择其他'); + } + + } + + + /** 预约详情 */ + async viewMeet(meetId) { + + let fields = '*'; + + let where = { + _id: meetId, + MEET_STATUS: ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]] + } + let meet = await MeetModel.getOne(where, fields); + if (!meet) return null; + + + let getDaysSet = []; + meet.MEET_DAYS_SET = await this.getDaysSet(meetId, timeUtil.time('Y-M-D')); //今天及以后 + let daysSet = meet.MEET_DAYS_SET; + + let now = timeUtil.time('Y-M-D'); + for (let k in daysSet) { + let dayNode = daysSet[k]; + + if (dayNode.day < now) continue; // 排除过期 + + let getTimes = []; + + for (let j in dayNode.times) { + let timeNode = dayNode.times[j]; + + // 排除状态关闭的时段 + if (timeNode.status != 1) continue; + + // 判断数量是否已满 + if (timeNode.isLimit && timeNode.stat.succCnt >= timeNode.limit) + timeNode.error = '预约已满'; + + // 截止规则 + if (!timeNode.error) { + try { + await this.checkMeetEndSet(meet, timeNode.mark); + } catch (ex) { + if (ex.name == 'AppError') + timeNode.error = '预约结束'; + else + throw ex; + } + } + + getTimes.push(timeNode); + } + dayNode.times = getTimes; + + getDaysSet.push(dayNode); + } + + // 只返回需要的字段 + let ret = {}; + ret.MEET_DAYS_SET = getDaysSet; + + ret.MEET_IS_SHOW_LIMIT = meet.MEET_IS_SHOW_LIMIT; + ret.MEET_TITLE = meet.MEET_TITLE; + ret.MEET_CONTENT = meet.MEET_CONTENT; + + + return ret; + } + + /** 用户自助签到 */ + async userSelfCheckin(userId, timeMark) { + let day = this.getDayByTimeMark(timeMark); + + let today = timeUtil.time('Y-M-D'); + if (day != today) + this.AppError('仅在预约当天可以签到,当前签到码的日期是' + day); + + let whereSucc = { + JOIN_MEET_DAY: day, + JOIN_MEET_TIME_MARK: timeMark, + JOIN_USER_ID: userId, + JOIN_STATUS: JoinModel.STATUS.SUCC + } + let cntSucc = await JoinModel.count(whereSucc); + + let whereCheckin = { + JOIN_MEET_DAY: day, + JOIN_MEET_TIME_MARK: timeMark, + JOIN_USER_ID: userId, + JOIN_IS_CHECKIN: 1, + JOIN_STATUS: JoinModel.STATUS.SUCC + } + let cntCheckin = await JoinModel.count(whereCheckin); + + let ret = ''; + if (cntSucc == 0) { + ret = '您没有本次报名的记录,请在「个人中心」查看详情~'; + } else if (cntSucc == cntCheckin) { + ret = '您已签到,无须重复签到,请在「个人中心」查看详情~'; + } else { + let where = { + JOIN_MEET_DAY: day, + JOIN_MEET_TIME_MARK: timeMark, + JOIN_USER_ID: userId, + JOIN_IS_CHECKIN: 0, + JOIN_STATUS: JoinModel.STATUS.SUCC + } + let data = { + JOIN_IS_CHECKIN: 1 + } + await JoinModel.edit(where, data); + ret = '签到成功,请在「个人中心」查看详情~' + } + return { + ret + }; + + } + + + /** 预约前获取关键信息 */ + async detailForJoin(userId, meetId, timeMark) { + + let fields = 'MEET_DAYS_SET,MEET_FORM_SET, MEET_TITLE'; + + let where = { + _id: meetId, + MEET_STATUS: ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]] + } + let day = this.getDayByTimeMark(timeMark); + let meet = await this.getMeetOneDay(meetId, day, where, fields); + if (!meet) return null; + + let dayDesc = timeUtil.fmtDateCHN(this.getDaySetByTimeMark(meet, timeMark).day); + + let timeSet = this.getTimeSetByTimeMark(meet, timeMark); + let timeDesc = timeSet.start + '~' + timeSet.end; + meet.dayDesc = dayDesc + ' ' + timeDesc; + + // 取出本人最近一次本时段填写表单 + let whereMy = { + JOIN_USER_ID: userId, + JOIN_MEET_ID: meetId, + JOIN_MEET_TIME_MARK: timeMark + } + let orderByMy = { + JOIN_ADD_TIME: 'desc' + } + let joinMy = await JoinModel.getOne(whereMy, 'JOIN_FORMS', orderByMy); + + // 取出本人最近一次本项目填写表单 + if (!joinMy) { + whereMy = { + JOIN_USER_ID: userId, + JOIN_MEET_ID: meetId, + } + let orderByMy = { + JOIN_ADD_TIME: 'desc' + } + joinMy = await JoinModel.getOne(whereMy, 'JOIN_FORMS', orderByMy); + } + + // 取出本人最近一次的填写表单 + if (!joinMy) { + whereMy = { + JOIN_USER_ID: userId, + } + let orderByMy = { + JOIN_ADD_TIME: 'desc' + } + joinMy = await JoinModel.getOne(whereMy, 'JOIN_FORMS', orderByMy); + } + + let myForms = joinMy ? joinMy.JOIN_FORMS : []; + meet.myForms = myForms; + + return meet; + } + + /** 获取某天可用时段 */ + async getUsefulTimesByDaysSet(meetId, day) { + let where = { + DAY_MEET_ID: meetId, + day + } + let daysSet = await DayModel.getAll(where, 'day,times'); + let usefulTimes = []; + for (let k in daysSet) { + if (daysSet[k].day != day) + continue; + + let times = daysSet[k].times; + for (let j in times) { + if (times[j].status != 1) continue; + usefulTimes.push(times[j]); + } + break; + + } + return usefulTimes; + } + + /** 按天获取预约项目 */ + async getMeetListByDay(day) { + let where = { + MEET_STATUS: MeetModel.STATUS.COMM, + }; + + let orderBy = { + 'MEET_ORDER': 'asc', + 'MEET_ADD_TIME': 'desc' + }; + + let fields = 'MEET_TITLE,MEET_DAYS_SET,MEET_STYLE_SET'; + + let list = await MeetModel.getAll(where, fields, orderBy); + + let retList = []; + + for (let k in list) { + let usefulTimes = await this.getUsefulTimesByDaysSet(list[k]._id, day); + + if (usefulTimes.length == 0) continue; + + let node = {}; + node.timeDesc = usefulTimes.length > 1 ? usefulTimes.length + '个时段' : usefulTimes[0].start; + node.title = list[k].MEET_TITLE; + node.pic = list[k].MEET_STYLE_SET.pic; + node._id = list[k]._id; + retList.push(node); + + } + return retList; + } + + /** 获取从某天开始可预约的日期 */ + async getHasDaysFromDay(day) { + let where = { + day: ['>=', day], + }; + + let fields = 'times,day'; + let list = await DayModel.getAllBig(where, fields); + + let retList = []; + for (let k in list) { + for (let n in list[k].times) { + if (list[k].times[n].status == 1) { + retList.push(list[k].day); + break; + } + } + } + return retList; + } + + /** 取得预约分页列表 */ + async getMeetList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + typeId, //附加查询条件 + page, + size, + isTotal = true, + oldTotal + }) { + + orderBy = orderBy || { + 'MEET_ORDER': 'asc', + 'MEET_ADD_TIME': 'desc' + }; + let fields = 'MEET_TITLE,MEET_STYLE_SET,MEET_DAYS'; + + let where = {}; + if (typeId && typeId !== '0') where.MEET_TYPE_ID = typeId; + console.log(typeId) + where.MEET_STATUS = ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]]; // 状态 + + if (util.isDefined(search) && search) { + where.MEET_TITLE = { + $regex: '.*' + search, + $options: 'i' + }; + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'sort': + // 排序 + if (sortVal == 'view') { + orderBy = { + 'MEET_VIEW_CNT': 'desc', + 'MEET_ADD_TIME': 'desc' + }; + } + if (sortVal == 'new') { + orderBy = { + 'MEET_ADD_TIME': 'desc' + }; + } + + break; + } + } + let result = await MeetModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + + return result; + } + + + + /** 取消我的预约 只有成功可以取消 */ + async cancelMyJoin(userId, joinId) { + let where = { + JOIN_USER_ID: userId, + _id: joinId, + JOIN_IS_CHECKIN: 0, // 签到不能取消 + JOIN_STATUS: JoinModel.STATUS.SUCC + }; + let join = await JoinModel.getOne(where); + + if (!join) { + this.AppError('未找到可取消的预约记录'); + } + + // 取消规则判定 + let whereMeet = { + _id: join.JOIN_MEET_ID, + MEET_STATUS: ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]] + } + let meet = await this.getMeetOneDay(join.JOIN_MEET_ID, join.JOIN_MEET_DAY, whereMeet); + if (!meet) this.AppError('预约项目不存在或者已关闭'); + + let daySet = this.getDaySetByTimeMark(meet, join.JOIN_MEET_TIME_MARK); + let timeSet = this.getTimeSetByTimeMark(meet, join.JOIN_MEET_TIME_MARK); + if (!timeSet) this.AppError('被取消的时段不存在'); + + let startT = daySet.day + ' ' + timeSet.start + ':00'; + let startTime = timeUtil.time2Timestamp(startT); + + let now = timeUtil.time(); + + if (now > startTime) + this.AppError('该预约已经开始,无法取消'); + + + let data = { + JOIN_STATUS: JoinModel.STATUS.CANCEL, + JOIN_REASON: '', + JOIN_IS_CHECKIN: 0, + } + await JoinModel.edit(where, data); + this.statJoinCnt(join.JOIN_MEET_ID, join.JOIN_MEET_TIME_MARK); + + } + + /** 取得我的预约详情 */ + async getMyJoinDetail(userId, joinId) { + + let fields = 'JOIN_IS_CHECKIN,JOIN_REASON,JOIN_MEET_ID,JOIN_MEET_TITLE,JOIN_MEET_DAY,JOIN_MEET_TIME_START,JOIN_MEET_TIME_END,JOIN_STATUS,JOIN_ADD_TIME,JOIN_CODE,JOIN_FORMS'; + + let where = { + _id: joinId, + JOIN_USER_ID: userId + }; + return await JoinModel.getOne(where, fields); + } + + /** 取得我的预约分页列表 */ + async getMyJoinList(userId, { + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + page, + size, + isTotal = true, + oldTotal + }) { + orderBy = orderBy || { + // 'JOIN_MEET_DAY': 'desc', + // 'JOIN_MEET_TIME_START': 'desc', + 'JOIN_ADD_TIME': 'desc' + }; + let fields = 'JOIN_IS_CHECKIN,JOIN_REASON,JOIN_MEET_ID,JOIN_MEET_TITLE,JOIN_MEET_DAY,JOIN_MEET_TIME_START,JOIN_MEET_TIME_END,JOIN_STATUS,JOIN_ADD_TIME'; + + let where = { + JOIN_USER_ID: userId + }; + //where.MEET_STATUS = ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]]; // 状态 + + if (util.isDefined(search) && search) { + where.JOIN_MEET_TITLE = { + $regex: '.*' + search, + $options: 'i' + }; + } else if (sortType) { + // 搜索菜单 + switch (sortType) { + case 'timedesc': { //按时间倒序 + orderBy = { + 'JOIN_MEET_DAY': 'desc', + 'JOIN_MEET_TIME_START': 'desc', + 'JOIN_ADD_TIME': 'desc' + }; + break; + } + case 'timeasc': { //按时间正序 + orderBy = { + 'JOIN_MEET_DAY': 'asc', + 'JOIN_MEET_TIME_START': 'asc', + 'JOIN_ADD_TIME': 'asc' + }; + break; + } + case 'today': { //今天 + where.JOIN_MEET_DAY = timeUtil.time('Y-M-D'); + break; + } + case 'tomorrow': { //明日 + where.JOIN_MEET_DAY = timeUtil.time('Y-M-D', 86400); + break; + } + case 'succ': { //预约成功 + where.JOIN_STATUS = JoinModel.STATUS.COMM; + //where.JOIN_MEET_DAY = ['>=', timeUtil.time('Y-M-D')]; + //where.JOIN_MEET_TIME_START = ['>=', timeUtil.time('h:m')]; + break; + } + case 'cancel': { //已取消 + where.JOIN_STATUS = ['in', [JoinModel.STATUS.CANCEL, JoinModel.STATUS.ADMIN_CANCEL]]; + break; + } + } + } + let result = await JoinModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + + return result; + } + + /** 取得我的某日预约列表 */ + async getMyJoinSomeday(userId, day) { + + let fields = 'JOIN_IS_CHECKIN,JOIN_MEET_ID,JOIN_MEET_TITLE,JOIN_MEET_DAY,JOIN_MEET_TIME_START,JOIN_MEET_TIME_END,JOIN_STATUS,JOIN_ADD_TIME'; + + let where = { + JOIN_USER_ID: userId, + JOIN_MEET_DAY: day + }; + //where.MEET_STATUS = ['in', [MeetModel.STATUS.COMM, MeetModel.STATUS.OVER]]; // 状态 + + let orderBy = { + 'JOIN_MEET_TIME_START': 'asc', + 'JOIN_ADD_TIME': 'desc' + } + + return await JoinModel.getAll(where, fields, orderBy); + + + } +} + +module.exports = MeetService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/news_service.js b/cloudfunctions/cloud/project/service/news_service.js new file mode 100644 index 0000000..64f3443 --- /dev/null +++ b/cloudfunctions/cloud/project/service/news_service.js @@ -0,0 +1,96 @@ +/** + * Notes: 资讯模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-10-29 07:48:00 + */ + +const BaseService = require('./base_service.js'); +const util = require('../../framework/utils/util.js'); +const NewsModel = require('../model/news_model.js'); + +class NewsService extends BaseService { + + /** 浏览资讯信息 */ + async viewNews(id) { + + let fields = '*'; + + let where = { + _id: id, + NEWS_STATUS: 1 + } + let news = await NewsModel.getOne(where, fields); + if (!news) return null; + + + + return news; + } + + + /** 取得分页列表 */ + async getNewsList({ + search, // 搜索条件 + sortType, // 搜索菜单 + sortVal, // 搜索菜单 + orderBy, // 排序 + cateId, //附加查询条件 + page, + size, + isTotal = true, + oldTotal + }) { + + orderBy = orderBy || { + 'NEWS_ORDER': 'asc', + 'NEWS_ADD_TIME': 'desc' + }; + let fields = 'NEWS_PIC,NEWS_VIEW_CNT,NEWS_TITLE,NEWS_DESC,NEWS_CATE_ID,NEWS_ADD_TIME,NEWS_ORDER,NEWS_STATUS,NEWS_CATE_NAME'; + + let where = {}; + where.NEWS_STATUS = 1; // 状态 + + if (cateId && cateId !== '0') where.NEWS_CATE_ID = cateId; + + if (util.isDefined(search) && search) { + where.NEWS_TITLE = { + $regex: '.*' + search, + $options: 'i' + }; + } else if (sortType && util.isDefined(sortVal)) { + // 搜索菜单 + switch (sortType) { + case 'sort': + // 排序 + if (sortVal == 'new') { + orderBy = { + 'NEWS_ADD_TIME': 'desc' + }; + } + break; + } + } + + return await NewsModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); + } + + + /** 取得首页列表 */ + async getHomeNewsList() { + let orderBy = { + 'NEWS_HOME': 'asc', + 'NEWS_ORDER': 'asc', + 'NEWS_ADD_TIME': 'desc' + }; + let fields = 'NEWS_PIC,NEWS_TITLE,NEWS_DESC,NEWS_ADD_TIME'; + + let where = {}; + where.NEWS_STATUS = 1; // 状态 + + return await NewsModel.getAll(where, fields, orderBy, 10); + } + + +} + +module.exports = NewsService; \ No newline at end of file diff --git a/cloudfunctions/cloud/project/service/passport_service.js b/cloudfunctions/cloud/project/service/passport_service.js new file mode 100644 index 0000000..d442300 --- /dev/null +++ b/cloudfunctions/cloud/project/service/passport_service.js @@ -0,0 +1,88 @@ +/** + * Notes: passport模块业务逻辑 + * Date: 2020-10-14 07:48:00 + */ + +const BaseService = require('./base_service.js'); + +const cloudBase = require('../../framework/cloud/cloud_base.js'); +const UserModel = require('../model/user_model.js'); + +class PassportService extends BaseService { + + // 插入用户 + async insertUser(userId, mobile, name = '', joinCnt = 0) { + // 判断是否存在 + let where = { + USER_MINI_OPENID: userId + } + let cnt = await UserModel.count(where); + if (cnt > 0) return; + + // 入库 + let data = { + USER_MINI_OPENID: userId, + USER_MOBILE: mobile, + USER_NAME: name + } + await UserModel.insert(data); + } + + /** 获取手机号码 */ + async getPhone(cloudID) { + let cloud = cloudBase.getCloud(); + let res = await cloud.getOpenData({ + list: [cloudID], // 假设 event.openData.list 是一个 CloudID 字符串列表 + }); + if (res && res.list && res.list[0] && res.list[0].data) { + + let phone = res.list[0].data.phoneNumber; + + return phone; + } else + return ''; + } + + /** 取得我的用户信息 */ + async getMyDetail(userId) { + let where = { + USER_MINI_OPENID: userId + } + let fields = 'USER_MOBILE,USER_NAME,USER_CITY,USER_TRADE,USER_WORK' + return await UserModel.getOne(where, fields); + } + + /** 修改用户资料 */ + async editBase(userId, { + mobile, + name, + trade, + work, + city + }) { + let where = { + USER_MINI_OPENID: userId + }; + // 判断是否存在 + let cnt = await UserModel.count(where); + if (cnt == 0) { + await this.insertUser(userId, mobile, name, 0); + return; + } + + let data = { + USER_MOBILE: mobile, + USER_NAME: name, + USER_CITY: city, + USER_WORK: work, + USER_TRADE: trade + }; + + await UserModel.edit(where, data); + + } + + +} + +module.exports = PassportService; \ No newline at end of file diff --git "a/demo/10\345\220\216\345\217\260\351\246\226\351\241\265.png" "b/demo/10\345\220\216\345\217\260\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..40a3482bf4c50221ce823c160f6b559d7fa973a2 GIT binary patch literal 52497 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%0ASU#P!-j6QOg|ZR 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%0D``ZR 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 NG*w@#)GOJ9{|`ewH)Q|- literal 0 HcmV?d00001 diff --git "a/demo/15\345\220\216\345\217\260-\351\242\204\347\272\246\347\256\241\347\220\206-\350\217\234\345\215\225.png" "b/demo/15\345\220\216\345\217\260-\351\242\204\347\272\246\347\256\241\347\220\206-\350\217\234\345\215\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..18c80192a83b9a382652b8a7e7000e3597177359 GIT binary patch literal 39071 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ℓ3G1>{CDf2|6`v zWRP7A<=mZIAKRiz`^x8kh4UAPBi{l^9T=PWa3 zQm(l&cy#7yk>0qDp(kw6kBMDvR?D4klk)&D$Tv*#K&f(XSsWkYha+6-PeLYTL$Vbc zeQ_j4l+1o$oQFPJ&zJfw_PB1UA^1dG4;^m!l6XC;Gu-&k`zW6lx)XWvDaDf2EM>7nAm{zP#NB@cUY4f z-G73Q9?gLF1UHMpsphYA9&-8D zRuNv`X8oMIQfcg8Vd)PyX5(m_ACK)Itj*q>;z}CAZ&g*gdu+k-Jv_cgKC%gvkOeG1 zZtMuufW;#Ll;`OCN1b;2`1VfJ^{L-~hH$W=p>Us-yUwn2?FIICjR*&W*A}K~zr|}^ zfm67MgtD9G#KUcu*PCfwdq(77h@*qZZl>&-IXEs2?7H|!S&z@}>W(+=p)Ckid3T`w zlu`!)M0e$LhhYM=x6fV2R@@^9A&_}L_~!(1Z)v$_G0c_zUE=Ni`m$wW?B8!hF6`$D zgw(m7!gN*3C&ct0;^O0axeXHAh(M2k9nV}>TCYl|)OWGDk-N$h*Y9o~R&UOy+2&ZZ zWy{rhxcXjl);#|t;cHiV5pM{0tf9bFH!E(u4j*d`_Gy`kA2Qn|WIMp}j~W75%5R8z z7@w|Yi6BNkXP%&7g%OV&@Cs8GnB-OBINluY&0L-TTY7XZ*3cDU$(0R&<6|(>kTFXd zSL{@3d)aZwtXX>1Z{%LnmS&ykRV`p_{T?p+cfs`^M?8nf-a~7WILp3dCsdSU6QJ{y zirJ%GsiVWSI!g3gufd^Sy(6>q)ST=I#>5Naj*UE)1Y{vr$i>_oO++>A&Vz4t%vb1< zovqMpWBc6ag~jpfR6QClxg4A#A_q3tu`;jgjr!OMnHp$`8vFhchh+1wQ90K=8f`%&gcnjt*T{pp+;Nhk(;1bD zHcVF)sWXp=oEk<=(DyYnTtyD=*cH7fPEZ8XRsOXnu07;_>m7R&mb`XncP;TtNDb%k zEiQ#)b1q|dE40gadSbcui;=8oL)T|zEsYm7T*&x(5lV&2^O?mSb;5 z^S#`ZdBRydcxgzZa<_b}jbHT|m2mqD z6ATHH<2GCd#tnin=bj8OBa;^$E-F>gWM(oZEjwj8CzUNPX(wf{c|?UO?`LJJ2W(;m zxu;QXNL#jZeebcue6(L58+?GfsYZ6|2R>eI()KMs&C8N!QcoP6sT@AQi5~Uu5;B7; z>!8gsZTT+0-at2#l;m&7wS9P}IoA>54Iwt7eds-o8c*eeSM*;`VEpg3fo>%tN1Lfl zE1?^4w!lWyn#NDtPyo8j00pEEE2dnXRe&cECTzadiM6yJKu!CDl>Bh^kd zco+~(_)fUrxLNT}ZfN)CMB?%kc?_7*a+NN=UTPL772$gJpTrQ#e`;N47B{j<^|KNv z`tI{E|K^vdD*xT`%~WwA*VSOTSI=49tUu$+MsWbP+VHp3Qp+vZ0N>Ly1{2@flNgQ5ZrCQZf?7VPS19Z(d^4UVbLuY+<%@T(M+uJC8J67rU9 zZg;=4MR$EHO>dN5>U}CZ`gDsoP7)-)z%!&```;yYY2%(+2d z+~u?^zG~lZ>EO<9n)7*lVLVeZ^Ig`Xq~OXBt{9P2);uWW`Z{-yUSeBHC6EyhH{0lb z!K9l1tGH_oY9haOa( z-RJhb=ka~_ocmlCf6n(LGV4JgcAo}aL?lU`^AX-{FLlRdQk8DzX3vm4&Ps8Wi%pT} zs@exe_uE1gvjEZ4zj^kfQU?l^HAX9$B!ZQlk60i`gg9BogRpc_<&%sZ`i#RH$xfF- z3zhb@ac}25-3x_km(^e3mYO&>B^r#@G?oyHv@TmwGej8sJxCmM9jLTB-3tNmx|*;`eleEOCoSG}EXboxo=G8A7v??U&zjE$qQp_=;Xva!-)B`zu+;hTyPtAVm=6>j|Wd>|KlZ{;`#Ux$73 zBCw+-!xS1*^oE;l(bM*wpGr#3QBCRWT%zoF*XzA(N#?*Wg>vq5;fD2rz|*@Qo>P8; zKp5}ZDn>zHLSEBNi%XAH=lt%>FI1K}v4iC!F(%zdoeO4BdmwSwzEkEAh)+UZU&G+2l>`y#G9V#Sl3g2~nUH11U9ID{D4 z9k?5uXo`)w)Ba}b-2;Xh8})jsScz%q}q{KOV($o$+ zwR`m=wMhhoHt=bwb11b7_whdBQy)++(;Bb!vby%j#GOE zqo6OK@!n$z_Y@H0cdaDFWSp?;<6&R_Awc=>_62v0mABaSZKl+aBeeq=ugCvvTF{!H zxq#p}fSslCK9K186p*P03S@l$KPJ$gs&z89p;r!>pYOP_T%BMn1qL8`A|xiyaN_@m z?LVIJSoj5i?_km3bTeQKL};m>1_hgB^C{%rlg;{a8s{2)OyUi2x2DsW%t_!E+q$kr zd#}1Tyh(fdxw{`&oA(#C>ZO!)tsb4=KeB_rhibz^w@gtn0hEM=xWQ;TZ8B%@)j(;!U{acp$wa`T3BDga5HYMyz2i$8*Vm>cHyI)F~?*rc+Mb*5J_qAuWkkHwTQ7_f7u zTqpJo0igrDCJSc#CR=6E$89(}L&R&t&5(2B>i4+0hLFK#*oNWglYdq>aR6@&R-4kQ?ZgLwaaIjeDHj&4%4&}ThN0S3TbN+(Ri(q$Ub zV~A?SgIB8Ibip}Tr(NMp(eg%V*?9nGkZ?D}YzBqj3ifnH>>Ya{T{;Hef5oC31#kv> zoe`ohr?h;#^2V;!)LVO!l{an36Ttqw2AfmX;Z}}+sJCV+*I^mfeBig93Q7vtvJF-1 zcws~fFVnU9(qXUWM**yhJ40;T2#waeuZP|asfl5N`o!B9tf;LW4R`kSA+jS$G%b8l L5RPy3kG=d)76z~v literal 0 HcmV?d00001 diff --git "a/demo/16\345\220\216\345\217\260-\351\242\204\347\272\246\345\220\215\345\215\225\345\257\274\345\207\272.png" "b/demo/16\345\220\216\345\217\260-\351\242\204\347\272\246\345\220\215\345\215\225\345\257\274\345\207\272.png" new file mode 100644 index 0000000000000000000000000000000000000000..cb8f29c596e2697091e14029974a5873296a9f75 GIT binary patch literal 77607 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�gaXm5qjc`w>>p=SAV7Z+_vn)#ETc)^=THocB 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 z∋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 literal 0 HcmV?d00001 diff --git "a/demo/17\345\220\216\345\217\260-\351\242\204\347\272\246\346\212\245\345\220\215\345\220\215\345\215\225.png" "b/demo/17\345\220\216\345\217\260-\351\242\204\347\272\246\346\212\245\345\220\215\345\220\215\345\215\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..ef16223bfda7e0a0000ab5cc314c2de4ff060f56 GIT binary patch literal 48117 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[Jbf>V$F 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 Hr-UW|^@Aw) literal 0 HcmV?d00001 diff --git "a/demo/19\345\220\216\345\217\260-\345\206\205\345\256\271\347\256\241\347\220\206.png" "b/demo/19\345\220\216\345\217\260-\345\206\205\345\256\271\347\256\241\347\220\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..dc2bdfe6fe488bed9062ccc090ccac3e447be168 GIT binary patch literal 62783 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 G2LB&^A*a6p literal 0 HcmV?d00001 diff --git "a/demo/8\351\242\204\347\272\246\346\210\220\345\212\237.png" "b/demo/8\351\242\204\347\272\246\346\210\220\345\212\237.png" new file mode 100644 index 0000000000000000000000000000000000000000..5f28887727b2345832879e18ae14efd8d9dcf61a GIT binary patch literal 32260 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 S1jyX}hlYxda*?8C$bSQ~HxD=f literal 0 HcmV?d00001 diff --git "a/demo/9\351\242\204\347\272\246\350\257\246\346\203\205.png" "b/demo/9\351\242\204\347\272\246\350\257\246\346\203\205.png" new file mode 100644 index 0000000000000000000000000000000000000000..ed51e85721e78dd87474c040dce47b14d05ff80f GIT binary patch literal 54196 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 literal 0 HcmV?d00001 diff --git a/demo/author-base.png b/demo/author-base.png new file mode 100644 index 0000000000000000000000000000000000000000..ae0604c9ae6ec3fb03e8b5428a865c279482b43e GIT binary patch literal 117010 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%0Ai$ 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 z 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
+ + + 字段名称 + + + + 手机字段不能修改名称,且为必填! + + + + + + 是否必填(为空时不能提交) + + + + + + + 字段填写类型 + + + + + 可填字数 + + + + + + + + 单项选择-选项配置 + 多项选择-选项配置 + + + + + + + 添加新选项 + + + + + + + 多项选择-最少选中项数 + + + + + + + + + + + + + 填写说明 (选填) + + + + + {{formDescFocus}} + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxss b/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxss new file mode 100644 index 0000000..05e930c --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxss @@ -0,0 +1,34 @@ +.main { + margin-bottom: 150rpx; +} + +.oprt { + display: flex; + width: 100%; + justify-content: space-around; +} + +.oprt button { + width: 45%; +} + +.select-close { + width: 60rpx; + font-size: 40rpx !important; + font-weight: bold; + text-align: right; +} + +.title-desc { + padding-left: 24rpx; + color: #aaa; + padding-bottom: 30rpx; + border-bottom: 1rpx solid #eee; +} + +.title-info { + margin-left: 4rpx; + color: #aaa; + font-weight: normal; + font-size: 24rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/form_set_cmpt.js b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.js new file mode 100644 index 0000000..17755ae --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.js @@ -0,0 +1,95 @@ +const pageHelper = require('../../../../helper/page_helper.js'); +const dataHelper = require('../../../../helper/data_helper.js'); + +Component({ + options: { + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + fields: { + type: Array, + value: [], + }, + }, + + /** + * 组件的初始数据 + */ + data: { + cur: -1, + }, + + /** + * 生命周期方法 + */ + lifetimes: { + attached: function () { + + }, + + ready: function () { + + + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + setGlow(cur) { + this.setData({ + cur + }); + setTimeout(() => { + this.setData({ + cur: -1 + }); + }, 800); + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + set: function (fields) { + this.setData({ + fields + }); + this.triggerEvent('formset', fields); + }, + + get: function () { + return this.data.fields; + }, + + bindUpTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let fields = this.data.fields; + dataHelper.arraySwap(fields, idx, idx - 1); + this.setData({ + fields + }); + this.setGlow(idx - 1); + this.triggerEvent('formset', fields); + }, + bindDownTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let fields = this.data.fields; + dataHelper.arraySwap(fields, idx, idx + 1); + this.setData({ + fields + }); + this.setGlow(idx + 1); + this.triggerEvent('formset', fields); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/form_set_cmpt.json b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxml b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxml new file mode 100644 index 0000000..f21c61f --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxml @@ -0,0 +1,36 @@ + + + + + + + + {{item.title}} + + + + 单行文本, + 日期, + 时间点, + 单项选择, + 多项选择, + 开关选择, + 省市区, + 多行文本, + 年份, + 月份, + 整数数字, + 小数数字, + 身份证, + 手机, + + 必填 + 选填 + + + + + + 添加新字段 + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxss b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxss new file mode 100644 index 0000000..87d1e06 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/form_set_cmpt.wxss @@ -0,0 +1,60 @@ +.picker-set { + line-height: 100rpx; + font-size: 24rpx; + width: 100%; + text-align: right; + color: #999; + width: 210rpx; +} + +.form-group .picker-set { + padding-right: 40rpx; + overflow: hidden; + position: relative; +} + +.form-group.cur { + animation: glow 800ms linear 1 alternate; +} + +@keyframes glow { + 0% { + background-color: #ececec; + } + 100% { + background-color: #fff; + } +} + +.form-group-active{ + background-color: #ececec; +} + +.form-group .title { + font-weight: normal; + color: #333; + flex: 1; + padding-right: 10rpx; +} + +.form-group .field-oprt { + color: #777; + background: hsla(0, 0%, 100%, .95); + border-radius: 5rpx; + box-shadow: 0 0 5px rgba(0, 0, 0, .1); + display: flex; + text-align: center; + align-items: center; + justify-content: center; + margin-right: 15rpx; +} + +.form-group .field-oprt>view{ + width:70rpx; + height:55rpx; + display: flex; + text-align: center; + align-items: center; + justify-content: center; + font-size:36rpx; +} diff --git a/miniprogram/cmpts/public/form/form_set_helper.js b/miniprogram/cmpts/public/form/form_set_helper.js new file mode 100644 index 0000000..11c1df6 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set_helper.js @@ -0,0 +1,273 @@ +const dataHelper = require('../../../helper/data_helper.js'); +const pageHelper = require('../../../helper/page_helper.js'); +const helper = require('../../../helper/helper.js'); +const validate = require('../../../helper/validate.js'); + +function defaultForm(defaultforms = null) { + let forms = dataHelper.deepClone(defaultforms); + if (forms) { + for (let k in forms) { + if (!forms[k]['mark']) forms[k]['mark'] = mark(); + } + } + return forms || [{ + mark: mark(), + type: 'line', + title: '姓名', + desc: '您的姓名', + must: true, + len: 50, + onlySet: { + mode: 'day', + cnt: 1 + }, + selectOptions: ['', ''], + mobileTruth: true, //手机真实性 + checkBoxLimit: 2, + }, + { + mark: mark(), + type: 'mobile', + title: '手机', + desc: '您的手机号码', + must: true, + len: 50, + onlySet: { + mode: 'day', + cnt: 1 + }, + selectOptions: ['', ''], + mobileTruth: true, //手机真实性 + checkBoxLimit: 2, + }, + ]; +} + + +// 函数参数必须是字符串,因为二代身份证号码是十八位,而在javascript中,十八位的数值会超出计算范围,造成不精确的结果,导致最后两位和计算的值不一致,从而该函数出现错误。 +// 详情查看javascript的数值范围 +function checkIDCard(idcode) { + if (idcode.length != 18) return false; + + // 加权因子 + var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + // 校验码 + var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; + + var code = idcode + ""; + var last = idcode[17]; //最后一位 + + var seventeen = code.substring(0, 17); + + // ISO 7064:1983.MOD 11-2 + // 判断最后一位校验码是否正确 + var arr = seventeen.split(""); + var len = arr.length; + var num = 0; + for (var i = 0; i < len; i++) { + num = num + arr[i] * weight_factor[i]; + } + + // 获取余数 + var resisue = num % 11; + var last_no = check_code[resisue]; + + // 格式的正则 + // 正则思路 + /* + 第一位不可能是0 + 第二位到第六位可以是0-9 + 第七位到第十位是年份,所以七八位为19或者20 + 十一位和十二位是月份,这两位是01-12之间的数值 + 十三位和十四位是日期,是从01-31之间的数值 + 十五,十六,十七都是数字0-9 + 十八位可能是数字0-9,也可能是X + */ + var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/; + + // 判断格式是否正确 + var format = idcard_patter.test(idcode); + + // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码 + return last === last_no && format ? true : false; +} + +// 判断是否为选择型表单 +function isSelectForm(type) { + let arr = ['select', 'date', 'month', 'hourminute', 'time', 'checkbox', 'switch', 'area']; + return arr.includes(type); +} + +// form 数据校验 +function checkForm(fields, forms) { + for (let k in fields) { + delete fields[k].focus; + } + + for (let k in fields) { + let type = fields[k].type; + let title = '「' + fields[k].title + '」'; + let val = forms[k].val; + + // 必填 + let hintOprt = isSelectForm(type) ? '请选择' : '请填写'; //提示动作 + + if (fields[k].must && type != 'switch' && (!helper.isDefined(val) || val.length == 0)) { + fields[k].focus = hintOprt + title; + return pageHelper.showModal(hintOprt + '' + title); + } + + // 最大长度 + if (type == 'line' || type == 'multi' || type == 'number' || type == 'digit') { + if (val.length > fields[k].len) { + fields[k].focus = title + ' 字数太多,精简一下吧'; + return pageHelper.showModal(title + ' 字数太多,精简一下吧'); + } + } + + switch (type) { + case 'mobile': { + if (val.length > 0 && val.length != 11) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'switch': { + // TODO 是否要做判断 + break; + } + case 'idcard': { + if (val.length > 0 && !checkIDCard(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'checkbox': { + if (val.length > 0 && val.length < fields[k].checkBoxLimit) { + fields[k].focus = title + ' 至少选中' + fields[k].checkBoxLimit + '项'; + return pageHelper.showModal(title + ' 至少选中' + fields[k].checkBoxLimit + '项'); + } + break; + } + case 'date': { + if (validate.checkDate(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'year': { + if (validate.checkYear(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'month': { + if (validate.checkYearMonth(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'hourminute': { + if (validate.checkHourMinute(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'number': { + if (validate.checkInt(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + case 'digit': { + if (validate.checkDigit(val)) { + fields[k].focus = '请填写正确的 ' + title; + return pageHelper.showModal('请填写正确的 ' + title); + } + break; + } + } + + } + return true; +} + +function mark() { + return dataHelper.genRandomAlpha(10).toUpperCase(); +}; + +function getTypeOptions() { + //return dataHelper.getSelectOptions('line=单行文本,select=单项选择,checkbox=多项选择,switch=开关选择,multi=多行文本,idcard=身份证号码,mobile=手机号码,date=日期 (年 月 日),month=月份,year=年份,hourminute=时间点,area=省市区,number=整数数字,digit=带小数点的数字'); + + return dataHelper.getSelectOptions('line=单行文本,select=单项选择,checkbox=多项选择,switch=开关选择,multi=多行文本,idcard=身份证号码,date=日期 (年 月 日),month=月份,year=年份,hourminute=时间点,area=省市区,number=整数数字,digit=带小数点的数字'); +} + +// 重复性规则 +function getOnlySetOptions() { + let mode = dataHelper.getSelectOptions('all=本项目全程重复次数,clock=按每一时段限制重复次数,day=按每天限制重复次数'); + + let list = []; + for (let k in mode) { + let node = {}; + node.label = mode[k].label; + node.val = mode[k].val; + + let children = []; + if (k == 0) { + children.push({ + label: '不限制重复次数', + val: -1 + }); + } + for (let j = 1; j <= 30; j++) { + let childNode = {}; + if (j == 1) + childNode.label = '仅可填写' + j + '次'; + else + childNode.label = '可重复' + j + '次'; + childNode.val = j + children.push(childNode); + } + + node.children = children; + + list.push(node); + } + + return list; +} + +// 重复性规则的表述 +function getOnlySetDesc(rule) { + let ret = ''; + switch (rule.mode) { + case 'all': + ret = rule.cnt > 0 ? '本项目全程可重复' + rule.cnt + '次' : '本项目全程不限制重复次数'; + break; + case 'day': + ret = '每天可重复' + rule.cnt + '次'; + break; + case 'clock': + ret = '每一时段可重复' + rule.cnt + '次'; + break; + } + if (rule.cnt == 1) ret = ret.replace(/可重复/g, '仅可填写'); + return ret; +} + +module.exports = { + checkForm, + mark, + defaultForm, + getTypeOptions, + + getOnlySetOptions, + getOnlySetDesc +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_show/form_show_cmpt.js b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.js new file mode 100644 index 0000000..6162807 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.js @@ -0,0 +1,326 @@ +const pageHelper = require('../../../../helper/page_helper.js'); +const cloudHelper = require('../../../../helper/cloud_helper.js'); +const cacheHelper = require('../../../../helper/cache_helper.js'); +const formSetHelper = require('../form_set_helper.js'); +const validate = require('../../../../helper/validate.js'); + +const CACHE_FORM_SHOW_KEY = 'FORM_SHOW_CMPT'; +const CACHE_FORM_SHOW_TIME = 86400 * 365; + +Component({ + options: { + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + fields: { // 表单属性{mark,val,type,must,selectOptions,desc,title} + type: Array, + value: [], + }, + forms: { //表单值 + type: Array, + value: [], // {mark,title,val,type} + }, + isConfirm: { //是否显示核对信息modal + type: Boolean, + value: true, + }, + isCacheMatch: { //是否开启缓存匹配 + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + isLoad: false, + showCheckModal: false, + }, + + /** + * 生命周期方法 + */ + lifetimes: { + attached: function () { + + }, + + ready: function () { + this._init(); + + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + _init: function () { + let fields = this.data.fields; + let newForms = []; + + for (let k in fields) { + let node = {}; + node.mark = fields[k].mark; + node.title = fields[k].title; + node.type = fields[k].type; + + // 判断是否有表单值 + let val = this._getOneValForm(fields[k].mark, fields[k].title, fields[k].type); + if (val === null) val = ''; + + // 类型修正 + val = this._fixType(fields[k].type, val); + node.val = val; + fields[k].val = val; + + newForms.push(node); + } + + this.setData({ + forms: newForms, + fields, + isLoad: true + }); + //this.triggerEvent('forms', newForms); + }, + + // 根据mark和type获取上次值或者缓存值 + _getOneValForm: function (mark, title, type) { + let ret = null; + + // **** 对传入的默认值匹配 + let forms = this.data.forms; + for (let k in forms) { + if (forms[k].mark == mark) { // 优先匹配mark + ret = forms[k].val; + break; + } + + if (forms[k].title == title) { // 再则匹配名称 + ret = forms[k].val; + break; + } + + if (type == 'mobile' && forms[k].type == 'mobile') { + ret = forms[k].val; + break; + } + + if (type == 'idcard' && forms[k].type == 'idcard') { + ret = forms[k].val; + break; + } + } + + + // **** 对缓存匹配 + let caches = cacheHelper.get(CACHE_FORM_SHOW_KEY); + if (caches && Array.isArray(caches) && !ret) { + for (let k in caches) { + if (caches[k].mark == mark) { // 优先匹配mark + ret = caches[k].val; + break; + } + + if (caches[k].title == title) { // 再则匹配名称 + ret = caches[k].val; + break; + } + + if (type == 'mobile' && caches[k].type == 'mobile') { + ret = caches[k].val; + break; + } + + if (type == 'idcard' && caches[k].type == 'idcard') { + ret = caches[k].val; + break; + } + } + } + + return ret; + }, + + // 原始form没有对应值, 给予默认值; 或者类型不对,修正 + _fixType: function (type, val) { + if (type != 'switch' && type != 'checkbox' && type != 'area') { + if (typeof val === 'object' && !Array.isArray(val)) + val = ''; // [object Object]需要转换 + else + val = String(val).trim(); // 前后去空格 + } + + + // 原始form 有对应值,但是类型不正确 + switch (type) { + case 'area': { + if (!Array.isArray(val) || val.length != 3) return ''; + break; + } + case 'switch': { + if (typeof (val) != 'boolean') return true; + break; + } + case 'checkbox': { + if (!Array.isArray(val)) return [String(val).trim()]; //尝试转为数组来匹配 + break; + } + case 'year': { + if (!val || validate.checkYear(val)) return ''; + break; + } + case 'month': { + if (!val || validate.checkYearMonth(val)) return ''; + break; + } + case 'date': { + if (!val || validate.checkDate(val)) return ''; + break; + } + case 'hourminute': { + if (!val || validate.checkHourMinute(val)) return ''; + break; + } + case 'number': { // 整数(字符形式) + if (!val || validate.checkInt(val)) return ''; + break; + } + case 'digit': { // 小数(字符形式) + if (!val || validate.checkDigit(val)) return ''; + break; + } + default: { + + } + } + + return val; + }, + + _setForm: function (idx, val) { + let forms = this.data.forms; + let fields = this.data.fields; + fields[idx].val = val; + forms[idx].val = val; + this.setData({ + forms, + fields + }); + + //this.triggerEvent('forms', forms); + }, + + bindLineBlur: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.value.trim(); + this._setForm(idx, val); + }, + + bindDayChange: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.value.trim(); + this._setForm(idx, val); + }, + + bindAreaChange: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.value; + this._setForm(idx, val); + }, + + bindSelectCmpt: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.trim(); + this._setForm(idx, val); + }, + + bindCheckBoxCmpt: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail; + this._setForm(idx, val); + }, + + switchModel: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.value; + this._setForm(idx, val); + }, + + bindGetPhoneNumber: async function (e) { + if (e.detail.errMsg == "getPhoneNumber:ok") { + + let cloudID = e.detail.cloudID; + let params = { + cloudID + }; + let opt = { + title: '手机验证中' + }; + await cloudHelper.callCloudSumbit('passport/phone', params, opt).then(res => { + let phone = res.data; + if (!phone || phone.length < 11) + wx.showToast({ + title: '手机号码获取失败,请重新绑定手机号码', + icon: 'none', + duration: 2000 + }); + else { + let idx = pageHelper.dataset(e, 'idx'); + this._setForm(idx, phone); + } + }); + } else + wx.showToast({ + title: '手机号码获取失败,请重新绑定手机号码', + icon: 'none' + }); + }, + + checkForms: function () { + // 写缓存 + if (this.data.isCacheMatch) { + cacheHelper.set(CACHE_FORM_SHOW_KEY, this.data.forms, CACHE_FORM_SHOW_TIME); + } + + let ret = formSetHelper.checkForm(this.data.fields, this.data.forms); + + this.setData({ + fields: this.data.fields + }); + + if (!ret) return; + + if (this.data.isConfirm) { //是否显示确认信息 + this.setData({ + showCheckModal: true + }); + } else { + this.triggerEvent('submit', this.data.forms); + } + + }, + + bindSubmitCmpt: function () { + this.setData({ + showCheckModal: false + }); + this.triggerEvent('submit', this.data.forms); + }, + + getForms: function () { + return this.data.forms; + } + }, + +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_show/form_show_cmpt.json b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.json new file mode 100644 index 0000000..c546d61 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "cmpt-checkbox": "/cmpts/public/checkbox/checkbox_cmpt" + } +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxml b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxml new file mode 100644 index 0000000..26b15d8 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxml @@ -0,0 +1,177 @@ + + + + + + + + {{item.title}}: + + + {{item.focus}} + + + + + {{item.title}}: + + + {{item.focus}} + + + + + {{item.title}}: + + + {{item.focus}} + + + + + {{item.title}} + + + {{item.desc}} + {{item.focus}} + + + + + *{{item.title}} + + 至少选择{{item.checkBoxLimit}}项 + + + + + {{item.focus}} + + + + + {{item.title}} + + + {{item.val || '年,月,日'}} + + + + {{item.desc}} + {{item.focus}} + + + + + {{item.title}} + + + {{item.val || '年份'}} + + + + {{item.desc}} + {{item.focus}} + + + + + {{item.title}} + + + {{item.val || '月份'}} + + + + {{item.desc}} + {{item.focus}} + + + + + {{item.title}} + + + {{item.val || '时间点'}} + + + + {{item.desc}} + {{item.focus}} + + + + + {{item.title}} + + + {{item.val}} + + + 省,区,市 + + + + {{item.desc}} + {{item.focus}} + + + + + {{item.title}} + + + + + + {{item.desc}} + {{item.focus}} + + + + + *{{item.title}} + + {{item.val.length}}/200 + + + + + + {{item.focus}} + + + + + {{item.title}}: + + + {{item.focus}} + + + + + {{item.title}}: + {{item.val||'未填写'}} + + + {{item.focus}} + + + + + {{item.title}}: + + + {{item.focus}} + + + + + + + {{item.title}}: + {{item.val?'是':'否'}} + {{item.val}} + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxss b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxss new file mode 100644 index 0000000..0acd9b5 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_show/form_show_cmpt.wxss @@ -0,0 +1,62 @@ +.form-group .picker-base { + flex:1; + text-align: right; + height: 60rpx; + line-height: 60rpx; +} + +.form-group .picker-select { + padding-right: 40rpx; + overflow: hidden; + position: relative; +} + +.form-group .title { + height:unset!important; + min-height: 60rpx; +} + + +/* 核对信息窗口 */ +.modal-check-info { + width:100%; +} + +.slot-class { + padding:0 20rpx 30rpx; +} + +.modal-check-info .item{ + width:100%; + display: flex; + justify-content: flex-start; + align-items: flex-start; + line-height: 1.8; + font-size: 30rpx; + border-bottom: 1rpx dotted #ddd; + color:#000; + padding:10rpx 10rpx; +} + +.modal-check-info .item:nth-child(odd){ + background-color: #f8f8f8; +} +.modal-check-info .item:last-child{ + border-bottom: 0rpx; +} + +.modal-check-info .item .title{ + font-weight: bold; + max-width: 150rpx; + margin-right: 20rpx; + text-align: left; +} + +.modal-check-info .item .content{ + flex:1; + color:#333; + display: flex; + justify-content: flex-start; + align-items: flex-start; + text-align: left; +} diff --git a/miniprogram/cmpts/public/img/img_upload_cmpt.js b/miniprogram/cmpts/public/img/img_upload_cmpt.js new file mode 100644 index 0000000..21fc4dc --- /dev/null +++ b/miniprogram/cmpts/public/img/img_upload_cmpt.js @@ -0,0 +1,147 @@ +const pageHelper = require('../../../helper/page_helper.js'); +const contentCheckHelper = require('../../../helper/content_check_helper.js'); +const setting = require('../../../setting/setting.js'); + +Component({ + /** + * 组件的属性列表 + */ + properties: { + imgList: { + type: Array, + value: [] + + }, + imgMax: { + type: Number, + value: 4, + }, + title: { + type: String, + value: '图片上传', + }, + isCheck: { //是否做图片内容校验 + type: Boolean, + value: true, + }, + isShowNo: { //是否显示序号 + type: Boolean, + value: false, + }, + imgUploadSize: { //图片最大大小 + type: Number, + value: setting.IMG_UPLOAD_SIZE, + }, + isShowSize: { //是否提示图片尺寸 + type: Boolean, + value: true, + } + }, + + /** + * 组件的初始数据 + */ + data: { + //imgList:[] + }, + + + /** + * 生命周期方法 + */ + lifetimes: { + attached: function () { + + }, + + ready: function () { + + }, + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + /** + * 选择上传图片 + */ + bindChooseImgTap: function (e) { + wx.chooseImage({ + count: this.data.imgMax - this.data.imgList.length, //默认9 + sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有 + sourceType: ['album', 'camera'], //从相册选择 + success: async (res) => { + wx.showLoading({ + title: '图片校验中', + mask: true + }); + + for (let k = 0; k < res.tempFiles.length; k++) { + let size = res.tempFiles[k].size; + let path = res.tempFiles[k].path; + if (!contentCheckHelper.imgTypeCheck(path)) { + wx.hideLoading(); + return pageHelper.showNoneToast('只能上传png、jpg、jpeg格式', 3000); + } + + let imageMaxSize = 1024 * 1000 * this.data.imgUploadSize; + if (!contentCheckHelper.imgSizeCheck(size, imageMaxSize)) { + wx.hideLoading(); + return pageHelper.showNoneToast('单张图片大小不能超过 ' + this.data.imgUploadSize + 'M', 3000); + } + + + // 读取文件流,云校验 + //let imgData = wx.getFileSystemManager().readFileSync(path, 'base64'); + + //console.log('imgData size=' + imgData.length); + + if (this.data.isCheck) { + let check = await contentCheckHelper.imgCheck(path); + if (!check) { + wx.hideLoading(); + return pageHelper.showNoneToast('存在不合适的图片, 已屏蔽', 3000); + } + } + + + this.setData({ + imgList: this.data.imgList.concat(path) + }); + this.triggerEvent('upload', this.data.imgList); + + } + + wx.hideLoading(); + } + }); + }, + + bindPreviewImgTap: function (e) { + wx.previewImage({ + urls: this.data.imgList, + current: e.currentTarget.dataset.url + }); + }, + + /** + * 删除图片 + */ + catchDelImgTap: function (e) { + let that = this; + let callback = function () { + that.data.imgList.splice(e.currentTarget.dataset.index, 1); + that.setData({ + imgList: that.data.imgList + }); + that.triggerEvent('upload', that.data.imgList); + } + pageHelper.showConfirm('确定要删除该图片吗?', callback); + }, + + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/img/img_upload_cmpt.json b/miniprogram/cmpts/public/img/img_upload_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/img/img_upload_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/img/img_upload_cmpt.wxml b/miniprogram/cmpts/public/img/img_upload_cmpt.wxml new file mode 100644 index 0000000..95d5e07 --- /dev/null +++ b/miniprogram/cmpts/public/img/img_upload_cmpt.wxml @@ -0,0 +1,25 @@ + + + {{title}} (每张大小不超过{{imgUploadSize}}M) + + + {{imgList.length}}/{{imgMax}} + + + + + + + + + + + + #{{index}} + + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/img/img_upload_cmpt.wxss b/miniprogram/cmpts/public/img/img_upload_cmpt.wxss new file mode 100644 index 0000000..c8c3442 --- /dev/null +++ b/miniprogram/cmpts/public/img/img_upload_cmpt.wxss @@ -0,0 +1,12 @@ +@import "../../../style/comm/comm.wxss"; +@import "../../../style/project/base/project.wxss"; + +.form-group .upload-img .img-no { + position: absolute; + right: 0; + bottom: 0; + border-top-left-radius: 6rpx; + padding: 6rpx 12rpx; + height: 35rpx; + opacity: .9; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/list/comm_list_cmpt.js b/miniprogram/cmpts/public/list/comm_list_cmpt.js new file mode 100644 index 0000000..1233f98 --- /dev/null +++ b/miniprogram/cmpts/public/list/comm_list_cmpt.js @@ -0,0 +1,447 @@ +const cloudHelper = require('../../../helper/cloud_helper.js'); +const helper = require('../../../helper/helper.js'); +const bizHelper = require('../../../biz/biz_helper.js'); +const pageHelper = require('../../../helper/page_helper.js'); + +Component({ + options: { + addGlobalClass: true, + pureDataPattern: /^_dataList/, // 指定所有 _ 开头的数据字段为纯数据字段 + multipleSlots: true // 在组件定义时的选项中启用多slot支持 + }, + + /** + * 组件的属性列表 + */ + properties: { + listHeight: { // 列表区高度 + type: String, + value: '' + }, + + route: { // 业务路由 + type: String, + value: '' + }, + _params: { // 路由的附加参数 + type: Object, + value: null, + observer: function (newVal, oldVal) { //TODO???? + if (!oldVal || !newVal) return; //页面data里赋值会引起触发,除非在组件标签里直接赋值,或者提前赋值 + + // 清空当前选择 + if (newVal) { + this.setData({ + pulldownMaskShow: false //返回去遮罩 + }); + this._fmtSearchData(); + } + + this.data._dataList = null; + this.triggerEvent('list', { //TODO 考虑改为双向数据绑定model + dataList: this.data._dataList + }); + this._getList(1); + } + }, + isTotalMenu: { + type: Boolean, //是否整个搜索菜单显示 + value: true + }, + _items: { // 下拉菜单基础数据 + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (newVal) this._fmtSearchData(); + } + }, + _menus: { // 非下拉菜单基础数据 + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (newVal) this._fmtSearchData(); //置为纯数据字段则不触发 + } + }, + _dataList: { + type: Object, + value: null + }, + type: { + type: String, //业务类型 info,user,well + value: '' + }, + placeholder: { + type: String, + value: '搜索关键字' + }, + sortMenusDefaultIndex: { + type: Number, + value: -1 //横菜单默认选中的 + }, + search: { + type: String, //搜索框关键字 + value: '', + observer: function (newVal, oldVal) { + // 清空当前选择 + if (newVal) { + this.setData({ + pulldownMaskShow: false //返回去遮罩 + }); + this._fmtSearchData(); + } + + this.data._dataList = null; + this.triggerEvent('list', { //TODO 考虑改为双向数据绑定model + dataList: this.data._dataList + }); + this._getList(1); + } + }, + whereEx: { + type: Object, // 附加查询条件 + value: null, + }, + returnUrl: { + type: String, // 搜索完返回页面 + value: '', + }, + topBottom: { + type: String, // 回顶部按钮的位置 + value: '50' + }, + isCache: { // 非缓存状态下或者list缓存过期下onshow加载, 缓存下onload加载 + type: Boolean, //是否cache + value: true + }, + pulldownType: { + type: Array, // 下拉菜单展示模式 list/modal 每个菜单一个 + value: ['list', 'list', 'list', 'list', 'list', 'list'] + }, + + }, + + /** + * 组件的初始数据 + */ + data: { + refresherTriggered: false, //下拉刷新是否完成 + + sortItems: [], //下拉 + sortMenus: [], //一级菜单非下拉 + + sortType: '', //回传的类型 + sortVal: '', // 回传的值 + + sortItemIndex: -1, + sortIndex: -1, + + topNum: 0, //回顶部 + topShow: false, + + pulldownMaskShow: false, //下拉菜单遮罩 + }, + + lifetimes: { + created: function () { + // 组件实例化,但节点树还未导入,因此这时不能用setData + }, + attached: function () { + // 在组件实例进入页面节点树时执行 + // 节点树完成,可以用setData渲染节点,但无法操作节点 + }, + ready: async function () { + + // 组件布局完成,这时可以获取节点信息,也可以操作节点 + this._fmtSearchData(); + + if (this.data.isCache) //缓存状态下加载 + await this._getList(1); + + //取得预置参数_params的选中状态 + let params = this.data._params; + if (params && params.sortType && params.sortVal) { + let sortMenus = this.data._menus; + for (let k = 0; k < sortMenus.length; k++) { + if (params.sortType == sortMenus[k].type && params.sortVal == sortMenus[k].value) + this.setData({ + sortMenusDefaultIndex: k + }); + } + } + + }, + move: function () { + // 组件实例被移动到树的另一个位置 + }, + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + pageLifetimes: { + async show() { + // 页面被展示 + if (!this.data.isCache || !bizHelper.isCacheList(this.data.type)) { + // 非缓存状态下或者 list缓存过期下加载 + await this._getList(1); + } + + }, + hide() { + // 页面被隐藏 + }, + resize(size) { + // 页面尺寸变化 + } + }, + + /** + * 组件的方法列表 + */ + methods: { + reload: async function () { + await this._getList(1); + }, + // 数据列表 + _getList: async function (page) { + let params = { + page: page, + ...this.data._params + }; + if (this.data.whereEx) params.whereEx = this.data.whereEx; + + // 搜索关键字 + if (this.data.search) + params.search = this.data.search; + + // 搜索菜单 + if (this.data.sortType && helper.isDefined(this.data.sortVal)) { + params.sortType = this.data.sortType; + params.sortVal = this.data.sortVal; + } + + //if (page == 1 && !this.data._dataList) { TODO??? + if (page == 1) { + this.triggerEvent('list', { + dataList: null //第一页面且没有数据提示加载中 + }); + } + + + let opt = {}; + //if (this.data._dataList && this.data._dataList.list && this.data._dataList.list.length > 0) + opt.title = 'bar'; + await cloudHelper.dataList(this, '_dataList', this.data.route, params, opt); + + this.triggerEvent('list', { //TODO 考虑改为双向数据绑定model + sortType: this.data.sortType, + dataList: this.data._dataList + }); + + if (this.data.isCache) + bizHelper.setCacheList(this.data.type); + if (page == 1) this.bindTopTap(); + + + }, + + bindReachBottom: function () { + // 上拉触底 + this._getList(this.data._dataList.page + 1); + }, + + bindPullDownRefresh: async function () { + // 下拉刷新 + this.setData({ + refresherTriggered: true + }); + await this._getList(1); + this.setData({ + refresherTriggered: false + }); + + }, + + /** + * 顶部位置 + * @param {*} e + */ + bindScrollTop: function (e) { + if (e.detail.scrollTop > 100) { + this.setData({ + topShow: true + }); + } else { + this.setData({ + topShow: false + }); + } + }, + + /** + * 一键回到顶部 + */ + bindTopTap: function () { + this.setData({ + topNum: 0 + }); + }, + + // 初始化搜索 + _fmtSearchData: function () { + let data = {}; + let sortItems = []; + let items = this.data._items; + for (let k in items) { + let item = { + show: false, + items: items[k] + }; + sortItems.push(item); + } + data.sortItems = sortItems; + data.sortMenus = this.data._menus; + + data.sortItemIndex = -1; + data.sortIndex = -1; + + data.sortType = ''; + data.sortVal = ''; + this.setData(data); + + }, + + /** + * 清除搜索条件 + */ + bindSearchClearTap: function () { + // 请求父页面清空搜索 + if (this.data.search) { + this.triggerEvent('list', { + search: '' + }); + } + }, + + + // 分类&排序一级菜单选择 + bindSortTap: function (e) { + let sortIndex = e.currentTarget.dataset.index; + let sortItems = this.data.sortItems; + + // 横菜单默认选中取消 TODO + /* + this.setData({ + sortMenusDefaultIndex: -1 + });*/ + + // 换了下拉菜单 + let sortItemIndex = (sortIndex != this.data.sortIndex) ? -1 : this.data.sortItemIndex; + + if (sortIndex < 5) { + let pulldownMaskShow = this.data.pulldownMaskShow; + + // 有下拉 + for (let i = 0; i < sortItems.length; i++) { + if (i != sortIndex) + sortItems[i].show = false; + else { + sortItems[i].show = !sortItems[i].show; + pulldownMaskShow = sortItems[i].show; + } + + } + this.setData({ + pulldownMaskShow, //遮罩 + + sortItems, + sortIndex, + sortItemIndex + }); + } else { + //无下拉 + for (let i = 0; i < sortItems.length; i++) { + sortItems[i].show = false; + } + this.setData({ + pulldownMaskShow: false, + sortItems, + sortIndex, + sortItemIndex + }); + + this._getSortKey(); + } + }, + + /** + * 下拉菜单选择 + */ + bindSortItemTap: function (e) { + let sortItemIndex = e.target.dataset.idx; + let sortItems = this.data.sortItems; + for (let i = 0; i < sortItems.length; i++) { + sortItems[i].show = false; + } + this.setData({ + pulldownMaskShow: false, + sortItemIndex, + sortItems + }); + this._getSortKey(); + + }, + + // 获得排序关键字 + _getSortKey: function () { + let sortVal = ''; + let sortType = ''; + + let oldSortVal = this.data.sortVal; + let oldSortType = this.data.sortType; + + if (this.data.sortIndex < 5) { + sortVal = this.data.sortItems[this.data.sortIndex].items[this.data.sortItemIndex].value; + sortType = this.data.sortItems[this.data.sortIndex].items[this.data.sortItemIndex].type; + } else { + sortVal = this.data.sortMenus[this.data.sortIndex - 5].value; + sortType = this.data.sortMenus[this.data.sortIndex - 5].type; + } + this.setData({ + sortVal, + sortType + }); + + if (sortVal != oldSortVal || sortType != oldSortType) { + // 点击分类 + + if (this.data.search) { + //清空搜索 + this.triggerEvent('list', { + search: '' + }); + } else + this._getList(1); + + } + + }, + + // 搜索跳转 + bindSearchTap: function (e) { + wx.navigateTo({ + url: pageHelper.fmtURLByPID('/pages/search/search?type=' + this.data.type + '&returnUrl=' + this.data.returnUrl) + }); + }, + + getSortIndex: function () { //获得横向菜单 + return this.data.sortIndex; + }, + setSortIndex: function (sortIndex) { //设置横向菜单 + this.setData({ + sortIndex + }); + }, + + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/list/comm_list_cmpt.json b/miniprogram/cmpts/public/list/comm_list_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/list/comm_list_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/list/comm_list_cmpt.wxml b/miniprogram/cmpts/public/list/comm_list_cmpt.wxml new file mode 100644 index 0000000..852cf43 --- /dev/null +++ b/miniprogram/cmpts/public/list/comm_list_cmpt.wxml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + {{ index==sortIndex && item.items[sortItemIndex] ? item.items[sortItemIndex].label: item.items[0].label}} + + + + + + + {{item.label}} + + + + + + + + + + 全部{{its.label}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/list/comm_list_cmpt.wxss b/miniprogram/cmpts/public/list/comm_list_cmpt.wxss new file mode 100644 index 0000000..caa1bee --- /dev/null +++ b/miniprogram/cmpts/public/list/comm_list_cmpt.wxss @@ -0,0 +1,118 @@ +/*sort*/ +.tabs { + display: flex; + font-size: 28rpx; + color: #aaa; + height: 80rpx; + line-height: 80rpx; +} + +.tabs .tab { + flex-grow: 1; + text-align: center; + position: relative; + margin-right:10rpx; +} + +.tabs .cur { + font-weight: bold; +} + +.tabs .tab-menu.cur:after { + content: " "; + position: absolute; + left: 0; + bottom: 0rpx; + width: 100%; + height: 4rpx; + background-color: orange; +} + +.tabs .icon { + color: #000; +} + + +.sort { + position: absolute; + top: 178rpx; + bottom: 0; + width: 100%; + background-color: rgba(188, 188, 188, 0.3); + z-index: 999; + left: 0 +} + +.sort .sort-item { + border-top: 1px solid #eee; + height: 80rpx; + line-height: 80rpx; + padding-left: 50rpx; + background-color: #fff; +} + + +/**头部*/ +.top_bar { + width: 100%; +} + +.top_bar_scroll { + position: fixed; + top: 0rpx; + left: 0; + z-index: 99; + background: #fff; + + z-index: 999; +} + + +.box-list { + display: flex; + flex-direction: column; + height: 100vh; + overflow: hidden; +} + +.box-list-scroll { + flex: 1; + height: 1px; +} + + +.top-button { + position: fixed; + bottom: 50rpx; + right: 30rpx; + opacity: .8; +} + +.list-scroll-view { + display: inline-block; + padding: 0 10rpx; +} + +.pulldown-mask { + width: 100%; + height: 100%; + position: fixed; + background-color: #999; + top: 0; + left: 0; + opacity: 0.5; +} + +.pulldown-scroll-view { + height: 840rpx; + width: 100%; +} + +.pulldown-btn{ + font-size:28rpx; + color:#333!important; + height: 100rpx; + width:200rpx; + line-height: 1.3; + padding:0 15rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/modal/modal_cmpt.js b/miniprogram/cmpts/public/modal/modal_cmpt.js new file mode 100644 index 0000000..37cb4e5 --- /dev/null +++ b/miniprogram/cmpts/public/modal/modal_cmpt.js @@ -0,0 +1,80 @@ +// cmpts/public/modal/modal.js +Component({ + options: { + addGlobalClass: true, + multipleSlots: true + }, + + externalClasses: ['slot-class'], + + /** + * 组件的属性列表 + */ + properties: { + type: { // 类型 comm/bottom/dialog/image + type: String, + value: 'comm' + }, + title: { + type: String, + value: '温馨提示' + }, + subtitle: { + type: String, + value: '' + }, + subtitleAlign: { + type: String, + value: 'center' + }, + show: { + type: Boolean, + value: true + }, + cancelText: { + type: String, + value: '取消' + }, + confirmText: { + type: String, + value: '确定' + }, + showConfirm: { + type: Boolean, + value: true + }, + imgURL: { + type: String, + value: '' + }, + + height: { + type: Number, + value: 600 + }, + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + bindHideModalTap: function (e) { + this.setData({ + show: '' + }) + }, + + nomove: function () {}, + + bindComfirmTap: function (e) { + this.triggerEvent('click', {}); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/modal/modal_cmpt.json b/miniprogram/cmpts/public/modal/modal_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/modal/modal_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/modal/modal_cmpt.wxml b/miniprogram/cmpts/public/modal/modal_cmpt.wxml new file mode 100644 index 0000000..903eb52 --- /dev/null +++ b/miniprogram/cmpts/public/modal/modal_cmpt.wxml @@ -0,0 +1,89 @@ + + + + + {{title}} + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + + + + + + + + {{title}} + + + {{subtitle}} + + + + + + {{cancelText}} + {{confirmText}} + + + + + + + + + + {{title}} + + + {{subtitle}} + + + + + + {{cancelText}} + {{confirmText}} + + + + + + + + + + + + + + + + + + + {{title}} + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/modal/modal_cmpt.wxss b/miniprogram/cmpts/public/modal/modal_cmpt.wxss new file mode 100644 index 0000000..5f43e68 --- /dev/null +++ b/miniprogram/cmpts/public/modal/modal_cmpt.wxss @@ -0,0 +1,67 @@ +.bg-img { + width: 100%; + height: 100%; + position: relative; +} + +.bg-img>image { + top: 0; + left: 0; + position: absolute; + width: 100%; + height: 100%; +} + +.bg-img .action .icon-close { + font-size: 50rpx !important; + font-weight: bold; +} + +.modal .dialog { + padding: 20rpx 0rpx; + margin-top:30rpx; + margin-bottom:30rpx; +} + +.modal .dialog .bar { + background-color: #f8f8f8; +} + +.modal .dialog .bar .content { + color: #333; + font-size: 36rpx; +} + +.modal-bar { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + border-top: 1rpx solid #ccc; + line-height: 3; +} + +.modal-bar>view { + width: 50%; + font-size: 36rpx; + font-weight: bold; +} + +.modal-bar .modal-bar-comfirm { + color: #576B95; + border-left: 1rpx solid #ccc; +} + +.modal .modal-dialog { + padding: 10rpx 0rpx 0; +} + +.modal .modal-dialog .subtitle { + width:100%; + text-align: center; + font-size:30rpx; + color:#777; + padding:0 60rpx; + margin-top:10rpx; + margin-bottom:20rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker/picker_cmpt.js b/miniprogram/cmpts/public/picker/picker_cmpt.js new file mode 100644 index 0000000..17083c1 --- /dev/null +++ b/miniprogram/cmpts/public/picker/picker_cmpt.js @@ -0,0 +1,296 @@ +const helper = require('../../../helper/helper.js'); +const dataHelper = require('../../../helper/data_helper.js'); +const pageHelper = require('../../../helper/page_helper.js'); + +Component({ + externalClasses: ['outside-picker-class'], + + options: { + //addGlobalClass: true + }, + + /** + * 一维格式: 可以通过model返回 + * 对象格式: {label:'对象A',val:'5'}, {label:'对象B',val:'12'}, {label:'对象C',val:'99'} + * 简单形式:['形式1','形式2','形式33'] + * 字符串形式 + */ + + /** + * N维格式: 只能通过trigger返回 + * 对象格式: {label:'对象A',val:'5'}, {label:'对象B',val:'12'}, {label:'对象C',val:'99'} + * 简单形式:['形式1','形式2','形式33'] + * + */ + properties: { + mark: { + type: String, + value: '', + }, + isSlot: { //是否开启slot + type: Boolean, + value: false, + }, + sourceData: { //源数组,sourceData有几维,Picker就可以有几阶 简单形式待选项,,, + type: Array, + value: [], + }, + + sourceDataStr: { //源数组,sourceData有几维,Picker就可以有几阶 简单形式待选项,,, + type: String, + value: '', + }, + + // key + labelKey: { + type: String, + value: '' + }, + + // 阶数 + steps: { + type: Number, + value: 1 + }, + + noDataHint: { // 无数据的提示语 + type: String, + value: '请选择', + }, + + // 选中项的下标数组 1维 + index: { + type: Number, + value: 0 + }, + // 选中项的下标数组 N维 + indexMulti: { + type: Array, + value: [] + }, + // 默认选中项的值数组 1维 + item: { + type: String, + value: '', + observer: function (newVal, oldVal) { + // console.log('one observer', this.data.mark); + if (newVal != oldVal) { + let options = this.data.options; + if (!options || options.length == 0) this._init(); + if (options && options.length > 0) this.selected(newVal); + } + } + }, + // 默认选中项的值数组 N维 + itemMulti: { + type: Array, + value: [], + observer: function (newVal, oldVal) { + // console.log('multi observer', this.data.mark); + if (JSON.stringify(newVal) != JSON.stringify(oldVal)) { + let options = this.data.options; + if (!options || options.length == 0) this._init(); + if (options && options.length > 0) this.selected(newVal); + } + } + }, + + // 是否禁用 + disabled: { + type: Boolean, + value: false, + }, + + disabledHint: { // 禁用提示 + type: String, + value: '', + }, + }, + + /** + * 组件的初始数据 + */ + data: { + options: null, + idx: 0, + multiDesc: '', // 多选的显示文字 + }, + + /** + * 生命周期方法 + */ + lifetimes: { + attached: function () {}, + + ready: function () { + if (!this.data.options || this.data.options.length == 0) this._init(); + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + + }, + + /** + * 组件的方法列表 + */ + methods: { + _init: function () { + let sourceData = this.data.sourceData; + let labelKey = this.data.labelKey; + let idx = this.data.idx; + + // 字符串形式 + if (this.data.steps == 1 && + this.data.sourceDataStr && + (!sourceData || sourceData.length == 0) + ) { + sourceData = dataHelper.getSelectOptions(this.data.sourceDataStr); + this.setData({ + sourceData + }); + } + + if (!sourceData || sourceData.length == 0) return; + + if (this.data.steps == 1) { + if (sourceData.length > 0 && helper.isDefined(sourceData[0]['label'])) { + labelKey = 'label'; + } + idx = this.data.index; + } else if (this.data.steps > 1) { + if (sourceData.length > 0 && helper.isDefined(sourceData[0][0]['label'])) { + labelKey = 'label'; + } + idx = this.data.indexMulti; + } + + this.setData({ + idx, + labelKey, + options: sourceData + }); + this._getMultiDesc(); + + if (this.data.steps == 1) + this.selected(this.data.item); + else + this.selected(this.data.itemMulti); + }, + + _getMultiDesc: function () { + let idx = this.data.idx; + let options = this.data.options; + if (idx.length != options.length) return; + + let multiDesc = []; + if (this.data.labelKey) { + for (let k in options) { + multiDesc[k] = options[k][idx[k]].label; + } + } else { + for (let k in options) { + multiDesc[k] = options[k][idx[k]]; + } + } + this.setData({ + multiDesc + }); + }, + + bindTap: function (e) { // 点击行为 + if (this.data.disabled && this.data.disabledHint) { + pageHelper.showModal(this.data.disabledHint, '提示', null, '知道了'); + } + }, + + // 触发改变 + bindChange: function (e) { + let idx = e.detail.value; + let val = null; + + if (this.data.steps == 1) { + val = this.data.labelKey ? this.data.options[idx].val : this.data.options[idx]; + this.setData({ + item: val, + index: idx + }); + } else { + val = []; + let options = this.data.options; + if (this.data.labelKey) { + for (let k in options) { + val[k] = options[k][idx[k]].val; + } + } else { + for (let k in options) { + val[k] = options[k][idx[k]]; + } + } + this._getMultiDesc(); + } + + this.triggerEvent('select', val); + }, + + // 一维数组根据val获取lable + getLabelOneStep: function (val) { + for (let k in this.data.sourceData) { + if (this.data.sourceData[k].val == val) return this.data.sourceData[k].label; + } + return 'unknown'; + }, + + // 选中值 + selected: function (val) { + let options = this.data.options; + let labelKey = this.data.labelKey; + if (this.data.steps == 1) { + for (let k in options) { + if (labelKey && val == options[k].val) { + this.setData({ + idx: k + }); + return; + } else if (!labelKey && val == options[k]) { + + this.setData({ + idx: k + }); + return; + } + } + this.setData({ + idx: -1 + }); + + //传入数据不匹配的时候,修正父页面传入的的默认值 + this.triggerEvent('select', ''); + + } else if (this.data.steps > 1) { + let idx = []; + for (let k in options) { + let levelTwo = options[k]; + for (let j in levelTwo) { + if (labelKey && val[k] == options[k][j].val) { + idx.push(j); + } else if (!labelKey && val[k] == options[k][j]) { + idx.push(j); + } + } + } + + if (idx.length != options.length) idx = []; + this.setData({ + idx + }); + this._getMultiDesc(); + + //传入数据不匹配的时候,修正父页面传入的的数组默认值 TODO + } + + + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker/picker_cmpt.json b/miniprogram/cmpts/public/picker/picker_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/picker/picker_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker/picker_cmpt.wxml b/miniprogram/cmpts/public/picker/picker_cmpt.wxml new file mode 100644 index 0000000..a3fba28 --- /dev/null +++ b/miniprogram/cmpts/public/picker/picker_cmpt.wxml @@ -0,0 +1,14 @@ + + + {{options[idx].label || noDataHint}} + {{options[idx] || noDataHint}} + + + + + + + {{multiDesc || noDataHint}} + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker/picker_cmpt.wxss b/miniprogram/cmpts/public/picker/picker_cmpt.wxss new file mode 100644 index 0000000..2e606b0 --- /dev/null +++ b/miniprogram/cmpts/public/picker/picker_cmpt.wxss @@ -0,0 +1,36 @@ +.picker-cmpt { + line-height: 100rpx; + font-size: 28rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; + padding-right: 40rpx; +} + +.disabled { + background-color: #eee; + color:#999; +} + +.picker-cmpt::before { + position: absolute; + top: 0; + right: 30rpx; + bottom: 0; + display: block; + margin: auto; + width: 30rpx; + height: 30rpx; + color: var(--grey); + content: "\e6a3"; + text-align: center; + font-size: 34rpx; + font-family: "icon"; + line-height: 30rpx; + margin-top: auto; + margin-right: auto; + margin-bottom: auto; + margin-left: auto; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.js b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.js new file mode 100644 index 0000000..80b22ae --- /dev/null +++ b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.js @@ -0,0 +1,413 @@ +/* 参考文档: https://github.com/IceApriler/miniprogram-picker */ +/* +[{ + label:'ddd' // 展示数据的字段名称 + val:'v1', +}, +{ + label:'cccc', + val:'v2' +}] +*/ +const dataHelper = require('../../../helper/data_helper.js'); + +function isExist(field) { + return field !== null && field !== undefined +} + +Component({ + externalClasses: ['outside-picker-multi-class'], + /** + * 组件的属性列表 + */ + properties: { + // 特定类型 time + mode: { // minute + type: String, + value: '' + }, + + // time特定类型 对应的分钟步长 + timeModeStep: { + type: Number, + value: 1 + }, + + // 初始化时,是否需要自动返回结果给开发者 + autoSelect: { + type: Boolean, + value: false + }, + // 源数组,sourceData有几维,Picker就可以有几阶 + sourceData: { + type: Array, + value: [], + observer: 'sourceDataChange' + }, + // 阶数 + steps: { + type: Number, + value: 1 + }, + + // 选择了第n列后,是否将大于n的列的选择值自动初始化为0 + initColumnSelectedIndex: { + type: Boolean, + value: false, + }, + // 默认选中项的下标数组 + itemIndex: { + type: Array, + value: [] + }, + // 默认选中项的值数组 + itemMulti: { + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (JSON.stringify(newVal) != JSON.stringify(oldVal)) { + this.sourceDataChange(this.data.sourceData); + } + } + }, + // 是否禁用 + disabled: { + type: Boolean, + value: false, + }, + isSlot: { //是否开启slot + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + + // Picker当前所选择的索引数组 => 比如:[0, 0, 2],表示第一列选择第0项,第二列选择第0项,第三列选择第2项。 + multiIndex: { + type: Array, + value: [], + }, + // Picker当前所展示的数组 => 比如:[['河北', '山东'], ['石家庄', '保定'], ['桥西区', '裕华区', '长安区']]。 + multiArray: { + type: Array, + value: [], + }, + // 用户点击确定后,所选择的值数组 => 比如: + // [{name: '河北', id: '3110'}, {name: '石家庄', id: '3110xx'}, {name: '长安区', id: '3110xxx'}]。 + selectedArray: { + type: Array, + value: [], + }, + + }, + /** + * 生命周期方法 + */ + lifetimes: { + created: function () {}, + attached: function () { + + if (this.data.autoSelect) { + this.processData(); + } + }, + + ready: function () { + + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + pageLifetimes: { + show: function () { + + }, + hide: function () { + // 页面被隐藏 + }, + resize: function (size) { + // 页面尺寸变化 + } + }, + + /** + * 组件的方法列表 + */ + methods: { + /** + * 监听源数组更新变化 + * + * @param {Array} newSourceData 源数组,newSourceData有几维,Picker就可以有几阶。 + */ + sourceDataChange: function (newSourceData) { + const { + steps + } = this.data; + // 源数组更新,则需要更新multiIndex、multiArray + const multiIndex = []; + const multiArray = []; + newSourceData = this.checkSourceData(newSourceData); + + // console.warn(newSourceData) + const itemIndex = this.getDefaultIndex(newSourceData); + const handle = (source = [], columnIndex = 0) => { + // 当前遍历Picker的第columnIndex列, + // 当columnIndex = 0时,source表示sourceData,其它则表示子集subset + const _multiArrayColumn0 = []; + + source.forEach((item, index) => { + if (columnIndex === 0) { + // newSourceData的第0维要单独处理,最后unshift到multiArray中 + _multiArrayColumn0.push(item.label) + } + + if (isExist(item.label) && index === (itemIndex[columnIndex] || 0)) { + // 选中的索引和值,默认取每列的第0个 + multiIndex.push(index); + + if (columnIndex < steps - 1) { + if (isExist(item.children)) { + // 开始处理下一维的数据 + const _subsetArr = item.children.map(sub => sub.label); + multiArray.push(_subsetArr); + handle(item.children, columnIndex + 1); + } + } + } + }) + + if (columnIndex === 0) { + multiArray.unshift(_multiArrayColumn0); + } + } + + handle(newSourceData); + + this.setData({ + multiIndex, + multiArray + }) + + if (this.data.autoSelect) { + this.processData(); + } + + }, + /** + * 获取默认值index + * @param {Array} newSourceData 源数组 + */ + getDefaultIndex: function (newSourceData) { + const { + itemIndex, + itemMulti, + steps, + } = this.data; + if (itemIndex.length) { + return itemIndex; // 返回默认选中的下标数据 + } else if (itemMulti.length) { + if (itemMulti.length !== steps) { + this.consoleError(new Error('你设置的"itemMulti"字段阶数与"steps"不符,请修改后再试。')); + return []; + } else { + const _defaultIndex = []; + const handle = (source = [], columnIndex = 0) => { + // 默认值 + _defaultIndex[columnIndex] = 0; + source.forEach((item, index) => { + if ( + (itemMulti[columnIndex]) === + (item.val) + ) { + _defaultIndex[columnIndex] = index; + + if (columnIndex < steps - 1) { + if (item.children) { + // 开始处理下一维的数据 + handle(item.children, columnIndex + 1); + } + } + } + }) + } + handle(newSourceData); + return _defaultIndex; + } + } else { + return []; + } + }, + + /** + * 校验源数组是否正确 + * + * @param {Array} sourceData 源数组 + */ + checkSourceData: function (sourceData) { + const { + steps + } = this.data; + const handle = (source = [], columnIndex = 0) => { + // 当前遍历Picker的第columnIndex列, + // 当columnIndex = 0时,source表示sourceData,其它则表示子集subset + if (!source.length) { + const temp = {}; + temp.label = ''; + temp.children = []; + source.push(temp); + } + return source.map((item) => { + // 有label字段才会去遍历children字段 + if (columnIndex < steps - 1) { + // 开始处理下一维的数据 + item.children = handle(item.children, columnIndex + 1); + } + return item; + }) + } + return handle(sourceData); + }, + + /** + * 用户点击了确认。 + * + * @param {Object} e 事件对象,具体参考微信小程序api。 + * @param {Array} e.detail.value 用户选择的下标数组。 + */ + pickerChange: function (e) { + // console.log('picker发送选择改变,携带值为', e.detail.value) + + this.setData({ + multiIndex: e.detail.value + }) + this.processData(); + }, + + /** + * 处理最终数据,将返回给开发者。 + * + */ + processData: function () { + const { + sourceData, + multiIndex + } = this.data; + let selectedArray = []; + + const handle = (source = [], columnIndex = 0) => { + source.forEach((item, index) => { + if (index === multiIndex[columnIndex]) { + let node = dataHelper.deepClone(item); + delete node.children; + selectedArray.push(node); + if (columnIndex < this.data.steps - 1) { + handle(item.children, columnIndex + 1); + } + } + }) + } + handle(sourceData); + + this.setData({ + selectedArray + }); + + /* + const detail = { + selectedIndex: this.data.multiIndex, + selectedArray: this.data.selectedArray + }*/ + + let ret = dataHelper.getArrByKey(selectedArray, 'val'); + + this.triggerEvent('select', ret); + }, + + /** + * 用户滚动了某一列。 + * + * @param {Object} e 事件对象,具体参考微信小程序api。 + */ + pickerColumnChange: function (e) { + const { + multiArray, + sourceData, + steps, + initColumnSelectedIndex + } = this.data; + let { + multiIndex + } = this.data; + const { + column, + value: changeIndex + } = e.detail; + + // console.log(`修改了Picker的第${column}列(从0开始计算),选中了第${changeIndex}个值(从0开始计算)`) + + // multiIndex变化了,所以也要同步更新multiArray + multiIndex[column] = changeIndex; + + if (initColumnSelectedIndex) { + // 每次重置之后的index为0,但是有bug,待定。 => 经检查,是编辑器的问题,真机上是没有问题的。 + const _multiIndex = multiIndex.map((item, index) => { + if (column >= index) { + return item; + } else { + return 0; + } + }) + multiIndex = _multiIndex; + } + + const handle = (source = [], columnIndex = 0) => { + // 当前遍历第 columnIndex 列 + source.forEach((item, index) => { + if (index === multiIndex[columnIndex]) { + if (columnIndex < steps - 1) { + if (!item.children) { + item.children = []; + } + const multiArrayItem = item.children.map((sub) => sub.label); + // 从第1列开始,才有可能变化 + multiArray[columnIndex + 1] = multiArrayItem; + + handle(item.children, columnIndex + 1); + } + } + }) + } + handle(sourceData); + + this.setData({ + multiArray, + multiIndex, + }) + this.triggerEvent('columnchange', e); + }, + /** + * 用户点击了取消触发 + * @param {Object} e 事件对象 + */ + pickerCancel: function (e) { + this.triggerEvent('cancel', e); + }, + /** + * 绑定console.error + * @param {...any} arg 打印参数 + */ + consoleError: function (...arg) { + console.error(...arg); + }, + + + }, + +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.json b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxml b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxml new file mode 100644 index 0000000..7785b28 --- /dev/null +++ b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxml @@ -0,0 +1,17 @@ + + + + + {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}} + + + {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}} + + + {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}},{{multiArray[3][multiIndex[3]]}} + + + {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}},{{multiArray[3][multiIndex[3]]}},{{multiArray[4][multiIndex[4]]}} + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxss b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxss new file mode 100644 index 0000000..177e414 --- /dev/null +++ b/miniprogram/cmpts/public/picker_multi/picker_multi_cmpt.wxss @@ -0,0 +1,9 @@ +.picker-cmpt { + line-height: 100rpx; + font-size: 28rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_time/datetime_picker.js b/miniprogram/cmpts/public/picker_time/datetime_picker.js new file mode 100644 index 0000000..16d381b --- /dev/null +++ b/miniprogram/cmpts/public/picker_time/datetime_picker.js @@ -0,0 +1,132 @@ +const timeHelper = require('../../../helper/time_helper.js'); + +function withData(param, unit = '') { + if (unit) return param; + return param < 10 ? '0' + param : '' + param; +} + +function getLoopArray(start, end, unit = '', step = 1) { + start = start || 0; + end = end || 1; + start = parseInt(start); + end = parseInt(end); + + let array = []; + let i = 0; + for (i = start; i <= end;) { + array.push(withData(i, unit) + unit); + i += step; + } + + if (step > 1 && i != 59) { + array.push(withData(59, unit) + unit); + } + + return array; +} + +function getMonthDay(year, month, unit = '') { + let flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), + array = null; + month = withData(parseInt(month)); + switch (month) { + case '01': + case '03': + case '05': + case '07': + case '08': + case '10': + case '12': + array = getLoopArray(1, 31, unit); + break; + case '04': + case '06': + case '09': + case '11': + array = getLoopArray(1, 30, unit); + break; + case '02': + array = flag ? getLoopArray(1, 29, unit) : getLoopArray(1, 28, unit); + break; + default: + array = '月份格式不正确,请重新输入!' + } + return array; +} + +function getNewDateArry() { + // 当前时间的处理 + let newDate = new Date(); + let year = withData(newDate.getFullYear()), + mont = withData(newDate.getMonth() + 1), + date = withData(newDate.getDate()), + hour = withData(newDate.getHours()), + minu = withData(newDate.getMinutes()), + seco = withData(newDate.getSeconds()); + + return [year, mont, date, hour, minu, seco]; +} + +function dateTimePicker(startYear, endYear, date, minuStep = 1) { + // 返回默认显示的数组和联动数组的声明 + let dateTimeIndex = [], + dateTimeArray = [ + [], + [], + [], + [], + [], + [] + ]; + let dateTimeArrayPure = [ + [], + [], + [], + [], + [], + [] + ]; + + let start = startYear || 1978; + let end = endYear || 2100; + + if (date && date.length == 4) date += '-01-01 00:00:00'; + if (date && date.length == 7) date += '-01 00:00:00'; + if (date && date.length == 10) date += ' 00:00:00'; + if (date && date.length == 13) date += ':00:00'; + if (date && date.length == 16) date += ':00'; + + // 默认开始显示数据 + let defaultDate = date ? [...date.split(' ')[0].split('-'), ...date.split(' ')[1].split(':')] : getNewDateArry(); + + // 处理联动列表数据 + /*年月日 时分秒*/ + dateTimeArray[0] = getLoopArray(start, end, '年'); + dateTimeArray[1] = getLoopArray(1, 12, '月'); + dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1], '日'); + dateTimeArray[3] = getLoopArray(0, 23, '点'); + dateTimeArray[4] = getLoopArray(0, 59, '分', minuStep); + dateTimeArray[5] = getLoopArray(0, 59, '秒'); + + dateTimeArrayPure[0] = getLoopArray(start, end); + dateTimeArrayPure[1] = getLoopArray(1, 12); + dateTimeArrayPure[2] = getMonthDay(defaultDate[0], defaultDate[1]); + dateTimeArrayPure[3] = getLoopArray(0, 23); + dateTimeArrayPure[4] = getLoopArray(0, 59, '', minuStep); + dateTimeArrayPure[5] = getLoopArray(0, 59); + + dateTimeArrayPure.forEach((current, index) => { + let idx = current.indexOf(defaultDate[index]); + if (idx < 0) idx = 0; + dateTimeIndex.push(idx); + }); + + return { + dateTimeArray, + dateTimeIndex + } +} +module.exports = { + dateTimePicker, + getMonthDay +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_time/picker_time_cmpt.js b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.js new file mode 100644 index 0000000..a4e465a --- /dev/null +++ b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.js @@ -0,0 +1,203 @@ +const dataHelper = require('../../../helper/data_helper.js'); +const dateTimePicker = require('./datetime_picker.js'); + +Component({ + externalClasses: ['picker-class'], + + /** + * 组件的属性列表 + */ + properties: { + mark: { + type: String, + value: '' + }, + + // 特定类型 time minute=单纯时间分钟选择 + mode: { // year/month/day/hour/minute/fullminute/second + type: String, + value: 'second' + }, + + // time特定类型 对应的分钟步长 + timeModeStep: { + type: Number, + value: 5 + }, + + startYear: { + type: Number, + value: 2021 + }, + endYear: { + type: Number, + value: 2030 + }, + item: { + type: String, + value: '', + observer: function (newVal, oldVal) { + if (newVal != oldVal) { + this._init(); + } + } + }, + }, + + /** + * 组件的初始数据 + */ + data: { + multiIndex: [], // Picker当前所选择的索引数组 + multiArray: [], // Picker当前所展示的数组 + }, + + lifetimes: { + created: function () {}, + attached: function () {}, + + ready: function () { + // 单纯分钟选择 + if (this.data.mode == 'minute') { + this.data.startYear = 2021; + this.data.endYear = 2021; + if (this.data.item) { + this.data.item = '2021-01-01 ' + this.data.item; + } + } + + this._init(); + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + _fmtTime: function (str) { + str = str.replace(/[^0-9]/ig, ''); + str = parseInt(str); + return str < 10 ? '0' + str : '' + str; + }, + // 根据选择获取时间字符串 + _getTimeStr: function (selIdex) { + let arr = []; + let multiArray = this.data.multiArray; + for (let k in selIdex) { + let str = this._fmtTime(multiArray[k][selIdex[k]]); + arr.push(str); + } + + let mode = this.data.mode; + switch (mode) { + case 'year': + arr = arr[0]; + break; + case 'month': + arr = arr[0] + '-' + arr[1]; + break; + case 'day': + arr = arr[0] + '-' + arr[1] + '-' + arr[2]; + break; + case 'hour': + arr = arr[0] + '-' + arr[1] + '-' + arr[2] + ' ' + arr[3] + ':00'; + break; + case 'fullminute': + arr = arr[0] + '-' + arr[1] + '-' + arr[2] + ' ' + arr[3] + ':' + arr[4]; + break; + case 'minute': + arr = arr[0] + ':' + arr[1]; + break; + case 'second': + arr = arr[0] + '-' + arr[1] + '-' + arr[2] + ' ' + arr[3] + ':' + arr[4] + ':' + arr[5]; + break; + } + + return arr; + }, + + _init: function () { + let multiIndex = []; + let multiArray = []; + + let mode = this.data.mode; + + let obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear, this.data.item, this.data.timeModeStep); + let idx = obj.dateTimeIndex; + let arr = obj.dateTimeArray; + + switch (mode) { + case 'year': + multiIndex = [idx[0]]; + multiArray = [arr[0]]; + break; + case 'month': + multiIndex = [idx[0], idx[1]]; + multiArray = [arr[0], arr[1]]; + break; + case 'day': + multiIndex = [idx[0], idx[1], idx[2]]; + multiArray = [arr[0], arr[1], arr[2]]; + break; + case 'hour': + multiIndex = [idx[0], idx[1], idx[2], idx[3]]; + multiArray = [arr[0], arr[1], arr[2], arr[3]]; + break; + case 'fullminute': + idx.pop(); + arr.pop(); + multiIndex = idx; + multiArray = arr; + break; + case 'minute': + multiIndex = [idx[3], idx[4]]; + multiArray = [arr[3], arr[4]]; + break; + case 'second': + multiIndex = idx; + multiArray = arr; + break; + } + + this.setData({ + multiIndex, + multiArray + }); + }, + + pickerCancel: function (e) { + + }, + // 用户点击了确认 + pickerChange: function (e) { + let time = this._getTimeStr(e.detail.value); + this.triggerEvent('select', time); + }, + + // 用户点击了列选择 + pickerColumnChange: function (e) { + let multiArray = this.data.multiArray; + let multiIndex = this.data.multiIndex; + + multiIndex[e.detail.column] = e.detail.value; + + let mode = this.data.mode; + + if (mode != 'year' && mode != 'month' && mode != 'minute') { + let year = (multiArray[0][multiIndex[0]]).replace('年', ''); + let month = (multiArray[1][multiIndex[1]]).replace('月', ''); + multiArray[2] = dateTimePicker.getMonthDay(year, month, '日'); + } + + + this.setData({ + multiArray, + multiIndex + }); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_time/picker_time_cmpt.json b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxml b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxml new file mode 100644 index 0000000..38b0b1e --- /dev/null +++ b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxml @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxss b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxss new file mode 100644 index 0000000..208658d --- /dev/null +++ b/miniprogram/cmpts/public/picker_time/picker_time_cmpt.wxss @@ -0,0 +1 @@ +/* cmpts/public/picker_time/picker_time_cmpt.wxss */ \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/images/friend.png b/miniprogram/cmpts/public/poster/images/friend.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1b553f5ad4be8ffa175adecf12ff44c2336cda GIT binary patch literal 4726 zcmV-+5{d1JP)Px{FiAu~RCr$PoqKfDMV80E_tyajcO~875po_WbbRMkE zDhMHg8AWH1hmsaZa0esqy2Hw*AHmld&xnw~tm~|2oE3$YpdtapaUPO{1t9|IZbXnI z{kwbW*Xizb(vRP(ljdl7_`~$ATes@dx9az+x^wIOK_CU_q?Uzaxz7jI7lq9+W%vUmSF@eSa$c!`aJ^;s+ ze~gbH(QY8Hd+4iMcBeb2v;)#vI^$Y`rI4Bb0l<|2E;4rzX*Za6Gx3{pH@`n@%a&Gi z^&8Wc7C^d6i*9G8TS2%Lj67pq(psCh4c*i@RcozO$qzb^&XS_H0J=F<9ZatGYYv20 zVkoUdXK0|(2}pT`cO{6v%Ne|?{#jdFa+u~z448-TlB`R?cnE}r0Gg<_<0jFa&Qklm zV7zF4*VJl^cu4tt{}C`>60FJVB(|(~xrTqDR+AZW0|JB>kC+YO6#&NeGI|HqcKkqr zQeyvC01undA?-SXKq@Lujg(0iPiB1zKg)#r`a0Vl?YgzsNGT9rW*rNbR)8@(j%hoo zw&R8#Pk9@RDcZYWv_=rfoJwz=1Zs|}jd_*FWm{>qwPf{E1|*JG#Iol-s_nS0$5Xxl z@VCi~Huv)&kn+loI{@jwlIY$B;#HnH+ctA;h-ga*5MG+~Tmr9%)tB8=+i`Ud6!Dgw zk*W^In394XGT%2(Vz^Ybn?i3f9SASY+6YFes*XhqHB)WJ#2zSL0=Q6z4jol`JS6yp zCDu8$B_-ZsDiB_h^*aE!tL;$?x&2hzF+u#jtHkbQz-mC3%Bnp;=KGd|v07!Nh?vRV zVj2)$n)OF8uF%|}{uK_Ow&N-SxUfG60JXey0gT75Wu+9v=j0W|3eIZ#$X#8Jx=RP zBRX^g;l)|EgCN$7RF;E~0$0--zqhlb_!EFHH@~saqVE40i2vQFegZFaJ8kRq>d^&+ z7iX1%uu*TL8tb(|9&#X$YdP!CdMA;~m zB{5Z9YO>K<)t!LMQ)#XDqjRP9O~feHsvugv=P7HxuZ$V57}M3iHW4b^byl}pz3PE1 z$#MdyP^&n_a$ZRC4{42WPiKi;ygMw?-(F}9@!A2}tY1%@nuIp);+yL0)g5@L0>Vpe z)4=pw(~UKvkZ}r3x6#^@yE;qk4+8j=K6O1Fvfxx9%koxzIuh4nz+LaOs`@gk1F|IR zbpSt3g|P;8ehK2+=}GU7?y}-(vdlWZG$9Z1-vMy4?RO*QmU^7lP017_1v0?z9LemB z_4!#qx|3>8ywz#9Pl5!Eu~$6@R29D4B*Ghd3{Y9;!=aYWo7S%%eL9hRav)2x_5)_W zjH&E`da+Ir3hBv?H`s2!xJ$wjWk*a^3Gepa0>&RyRnaTNc+}&vCfvYGXf!VwF$-Wb zpUw4lMNPc`m}k&a-q#qQ&SLvPqNp?cI68WOl%Fhs#j;aPLk47ykSvwC-NWCFry~iF zECvvW{f`0w2S5mbLoyryDEe>Wa~ZNC7uH1#umubY2o?YmKo;e1K<~fze5S}m|BI^I z>obY$wC1F;ZJ{p2sAtMraO!eNmQxyG!k`uP&dh2(pjq*a33YdgnL!Mx-_TK{v?w3&payLI}6$fuo zB_4xKfHDz%6DEVr}j9e*05}~0N zg|^>?$h=Dbb_P#2+$QrQ9+&Ouke=ez-dW7iTl);&-srIPi`487WM{Uxr}2BkM(J0u z8v&`9ZakXO=yRSn?ZU1LGCl-wG;}|tywdxh0NthEbbyI}QD0{hvC2v*s`kzyqWYLR zr6HFzEdQIMy+4ZqWX#hb{)G{v4AgBxcc7RipZLsx4oy|XyGjViy!rkYnfYE#3VI0> z_+hux_HW^7s@hi$Lfox)20hT|$b2?2kfzb^0Hj2v4{V|B=tMD1ITj-VePAppuk`*3 zAhC0-xkyA0y6Q5+K@!DJ_$pY2II>7oo@;Pe=Oh7=eb&?%D|KDlhO_62XsSuup{|Gex$+kGtqc?WuVw(_rb` zO5Y;{grAJmRpnV8r!D;SR9xf#8AEkAk-x!VjS82IT0^)gTewf`1xTHBTBWw((8wQA z*@5sCH?0cHlrOLJi9@7h(@eNYBFuExS;OH_Mb+MgL=;{_RN2;NVUGr~Ys`OudA=$| z#)Y<_p#2sR!)siXIU33y=;KyDiqw5QEgrBWhve)v-bH}ExZu7|T77_w z`4hmGB{Rt2=V=K;^r?KosUJX=-$~d%vP|{VT@=1SRb1m+%s{RFG2y2h9JWW|dB{ls zS^AYHt(mqkgyr+*dGlGKxR*O+NH=V74i6t<6|eR!W5zF&_Bx>e|GL3p`=@?Dcq1(M zZg#gZWapUi5LVHNyc=!jnJs zpy)t@BQqR89$rKEy)okHA`M27pMLr@s*1rR&9uT9KE8nAnb|pdy@*KaHO#Vjvq zd^{^Edqk{2xpg4KdBUJKsNh&sJ}kX3VgadW9?KxEa^w`JDEHC(me;AE{Z2DHBc!A6W3K{4Oq-0y+!I?39{eO8x}qB2 z%LLqQ<^XHbMQClPvi8ex6g$|uDZ3>qr7Pn#y1spynK0sdNSGFux+b<7I2w&VJViCW zR|qK6G=OFc6FuKhmDz9IiUVZKQvip~dACwQ`wX*TBn6^0$d9=4+rmN1W{*ia>Wgz7 zArx>;4ODO}Ds_dCHKXqU#GA6B8xqSS%gKKBi4^FYNHH?2U9?dz4$72}7NS z1Z^hJLT7%9?xbMn4Gr~oxdF3bXaN$Oz4!sw#I{JJ_!j1Vt0 zT3+d(_#FmJPtj@!h_a^8eeV30m(BwyA7Z-neKp_Kq(Foc zS98uBkoosUi~>4WvDu5QUyeTvNv}tz=diktCcYYi0~A` z-R`{B-=w9d5IuuJ3ZI!L8ynR?JbQ9)lqK$U;Xaw_|{ zrl}|*)$wksfhbjiiW8wG-8^7I6t^-B!+bF zAd?n&vw?shGjoYMzb%sHd$6EroT_vI5tW?#a_%99DG7&72NLX67Za7Z^I9SaF$W%s z=BY|I5Cuwe&N3p+;X?i9u@nIj?VMxCCGPw~k^6!J2}Q?LWeA9lS+seMmj2c}z+ z=2T2JHim%&r?1=>7_2!acz}R_2qy#JGEZJx_=3Kv8RFP1!Rx9~Mcx(T8sZ#rx6>0uW)!5w>ud z`>M7`c4@6ph+cz?$1sCL8g^5Q=|Do(sX0d(Bp~8g?vM=3^yIZRXOQc;IEiK0lB(m+Lw4@wJ$a?p_+zMtE3BtlB zXM+wTXxv|T2+G{!TO&ViAAxchkk?^)hN%m8BBBEZBn)P6?tKhiD8Qr%5aqXbWr=2b zu4;*-Hxy7Z@n=k>R3_x<$7aBRgctqhoV%EDb?;m!q3HLN&IxfJ`S5W-3e2p}`@dA= zdr{q`K?4%Y!iwgxB3D(uYU_;)b`a=yEXl8*<*&BBlsEW^IMWJ<7~lEL!a1+>4p^$|r9F^D12B8fSnCClM#&k0 zQQRq=4v^*ObCdo$XqmCifOTF2F=GJIO~*Gt(u~Oe12?P1&LN^B6#xJL07*qoM6N<$ Eg8IPzxBvhE literal 0 HcmV?d00001 diff --git a/miniprogram/cmpts/public/poster/images/wechat.png b/miniprogram/cmpts/public/poster/images/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..52a4dd1df9c454fa78163efc01071d6ce05e88e4 GIT binary patch literal 3431 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 { + await this.createPoster(); + }); + }, + + bindCloseTap: function () { + this.setData({ + show: false + }); + }, + + /** + * 异步生成海报 + */ + createPoster: async function () { + // TODO:根据屏幕大小来生成,但是没有负定位 + + let posterConfig = { + width: 375, // rpx + height: 670, + pixelRatio: 2, // 2 为原始大小 + backgroundColor: '#345678', + debug: false, + } + + let config = this.data.config; + if (!helper.isDefined(config['width'])) + config.width = posterConfig.width; + + if (!helper.isDefined(config['height'])) + config.height = posterConfig.height; + + if (!helper.isDefined(config['pixelRatio'])) + config.pixelRatio = posterConfig.pixelRatio; + + if (!helper.isDefined(config['backgroundColor'])) + config.backgroundColor = posterConfig.backgroundColor; + + if (!helper.isDefined(config['debug'])) + config.debug = posterConfig.debug; + + //Object.assign(posterConfig, this.data.config); // TODO有问题 + + this.setData({ + posterConfig: config + }, async () => { + await Poster.create(true, this); + }); + + }, + + onPosterFail: function (e) { + console.log(e) + }, + + bindPosterSuccessCmpt(e) { + let img = e.detail; + this.setData({ + img, + isLoad: true + }); + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindPosterFailCmpt(e) { + console.log(e); + }, + + bindSaveTap: function (e) { + let that = this; + let callback = function () { + wx.saveImageToPhotosAlbum({ + filePath: that.data.img, + success: function (data) { + wx.showToast({ + title: '保存成功', + icon: 'success', + duration: 1000 + }) + }, + }); + } + + picHelper.getWritePhotosAlbum(callback); + } + + + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/poster_cmpt.json b/miniprogram/cmpts/public/poster/poster_cmpt.json new file mode 100644 index 0000000..e96ce17 --- /dev/null +++ b/miniprogram/cmpts/public/poster/poster_cmpt.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "poster": "./wxa-plugin-canvas/poster" + } +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/poster_cmpt.wxml b/miniprogram/cmpts/public/poster/poster_cmpt.wxml new file mode 100644 index 0000000..fbac7e2 --- /dev/null +++ b/miniprogram/cmpts/public/poster/poster_cmpt.wxml @@ -0,0 +1,34 @@ + + + + + + + 关闭 + + + + + + + + + + + + + + + 保存后发朋友圈 + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/poster_cmpt.wxss b/miniprogram/cmpts/public/poster/poster_cmpt.wxss new file mode 100644 index 0000000..16af08b --- /dev/null +++ b/miniprogram/cmpts/public/poster/poster_cmpt.wxss @@ -0,0 +1,67 @@ +.main-poster .poster-share { + width: 100%; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0rpx 50rpx 20rpx; +} + +.main-poster .poster-share .item { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + color: #333; +} + +.main-poster .poster-share .item .pic { + height: 100rpx; + width: 100rpx; + background-color: #f2f2f2; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; +} + +.main-poster .poster-share .item-share { + margin-top: 15rpx; +} + +.main-poster .poster-share .item-share>text { + margin-top: -5rpx !important; +} + +.main-poster .poster-share .item .pic image { + height: 50rpx; + width: 50rpx; +} + +.main-poster .poster-share .item .pic .friend { + height: 60rpx; + width: 60rpx; +} + +.main-poster .poster-share .item>text { + margin-top: 10rpx; + font-size: 30rpx; + text-align: center; +} + +.main-poster .poster-img { + display: flex; + justify-content: center; + align-items: center; + padding-top: 0rpx; + padding-bottom: 20rpx; + min-height: 700rpx; +} + +.load.loading::after { + content: "生成中..."; +} + +.main-poster .poster-img image { + width: 375rpx; + border-radius: 15rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.js b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.js new file mode 100644 index 0000000..a948b88 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.js @@ -0,0 +1,712 @@ +const main = { + /** + * 渲染块 + * @param {Object} params + */ + drawBlock({ + text, + width = 0, + height, + x, + y, + paddingLeft = 0, + paddingRight = 0, + borderWidth, + backgroundColor, + borderColor, + borderRadius = 0, + opacity = 1, + }) { + // 判断是否块内有文字 + let blockWidth = 0; // 块的宽度 + let textX = 0; + let textY = 0; + if (typeof text !== "undefined") { + // 如果有文字并且块的宽度小于文字宽度,块的宽度为 文字的宽度 + 内边距 + const textWidth = this._getTextWidth(typeof text.text === "string" ? text : text.text); + blockWidth = textWidth > width ? textWidth : width; + blockWidth += paddingLeft + paddingLeft; + + const { + textAlign = "left", text: textCon + } = text; + textY = height / 2 + y; // 文字的y轴坐标在块中线 + if (textAlign === "left") { + // 如果是右对齐,那x轴在块的最左边 + textX = x + paddingLeft; + } else if (textAlign === "center") { + textX = blockWidth / 2 + x; + } else { + textX = x + blockWidth - paddingRight; + } + } else { + blockWidth = width; + } + + if (backgroundColor) { + // 画面 + this.ctx.save(); + this.ctx.globalAlpha = opacity; + this.ctx.fillStyle = backgroundColor; + if (borderRadius > 0) { + // 画圆角矩形 + this._drawRadiusRect(x, y, blockWidth, height, borderRadius); + this.ctx.fill(); + } else { + this.ctx.fillRect(this.toPx(x), this.toPx(y), this.toPx(blockWidth), this.toPx(height)); + } + this.ctx.restore(); + } + if (borderWidth) { + // 画线 + this.ctx.save(); + this.ctx.globalAlpha = opacity; + this.ctx.strokeStyle = borderColor; + this.ctx.lineWidth = this.toPx(borderWidth); + if (borderRadius > 0) { + // 画圆角矩形边框 + this._drawRadiusRect(x, y, blockWidth, height, borderRadius); + this.ctx.stroke(); + } else { + this.ctx.strokeRect(this.toPx(x), this.toPx(y), this.toPx(blockWidth), this.toPx(height)); + } + this.ctx.restore(); + } + + if (text) { + this.drawText(Object.assign(text, { + x: textX, + y: textY + })); + } + }, + + /** + * 渲染文字 + * @param {Object} params + */ + drawText(params) { + const { + x, + y, + fontSize, + color, + baseLine, + textAlign, + text, + opacity = 1, + width, + lineNum, + lineHeight + } = params; + if (Object.prototype.toString.call(text) === "[object Array]") { + let preText = { + x, + y, + baseLine + }; + text.forEach((item) => { + preText.x += this.toPx(item.marginLeft || 0); + const textWidth = this._drawSingleText( + Object.assign(item, { + ...preText, + }) + ); + preText.x += textWidth + this.toPx(item.marginRight || 0); // 下一段字的x轴为上一段字x + 上一段字宽度 + }); + } else { + this._drawSingleText(params); + } + }, + + /** + * 渲染图片 + * @param {Object} params + */ + drawImage({ + imgPath, + x, + y, + w, + h, + sx, + sy, + sw, + sh, + borderRadius = 0, + borderWidth = 0, + borderColor + }) { + return new Promise((resolve) => { + const img = this.node.createImage(); + img.onload = () => { + this.ctx.save(); + if (borderRadius > 0) { + this._drawRadiusRect(x, y, w, h, borderRadius); + this.ctx.strokeStyle = "rgba(255,255,255,0)"; + this.ctx.stroke(); + this.ctx.clip(); + this.ctx.drawImage( + img, + this.toPx(sx), + this.toPx(sy), + this.toPx(sw), + this.toPx(sh), + this.toPx(x), + this.toPx(y), + this.toPx(w), + this.toPx(h) + ); + if (borderWidth > 0) { + this.ctx.strokeStyle = borderColor; + this.ctx.lineWidth = this.toPx(borderWidth); + this.ctx.stroke(); + } + } else { + this.ctx.drawImage( + img, + this.toPx(sx), + this.toPx(sy), + this.toPx(sw), + this.toPx(sh), + this.toPx(x), + this.toPx(y), + this.toPx(w), + this.toPx(h) + ); + } + this.ctx.restore(); + resolve(); + }; + img.src = imgPath; + }); + }, + /** + * 渲染线 + * @param {Object} param + */ + drawLine({ + startX, + startY, + endX, + endY, + color, + width + }) { + this.ctx.save(); + this.ctx.beginPath(); + this.ctx.strokeStyle = color; + this.ctx.lineWidth = this.toPx(width); + this.ctx.moveTo(this.toPx(startX), this.toPx(startY)); + this.ctx.lineTo(this.toPx(endX), this.toPx(endY)); + this.ctx.stroke(); + this.ctx.closePath(); + this.ctx.restore(); + }, + downloadResource({ + images = [], + pixelRatio + }) { + + // 本方法比create早执行,所以要预先设定ratio by cc 2021/10/25 + this.pixelRatio = pixelRatio || this.pixelRatio; + + const drawList = []; + images.forEach((image, index) => drawList.push(this._downloadImageAndInfo(image, index))); + return Promise.all(drawList); + }, + initCanvas(w, h, debug) { + const { + platform + } = wx.getSystemInfoSync(); + + return new Promise((resolve) => { + if (platform === "ios") { + this.setData({ + pxWidth: this.toPx(w), + pxHeight: this.toPx(h), + debug, + }); + // ios系统动态设置canvas宽高后立即绘制canvas会偶现变形的BUG + setTimeout(() => { + resolve(); + }, 100); + } else { + this.setData({ + pxWidth: this.toPx(w), + pxHeight: this.toPx(h), + debug, + }, + resolve + ); + } + }); + }, +}; +const handle = { + /** + * 画圆角矩形 + */ + _drawRadiusRect(x, y, w, h, r) { + const br = r / 2; + this.ctx.beginPath(); + this.ctx.moveTo(this.toPx(x + br), this.toPx(y)); // 移动到左上角的点 + this.ctx.lineTo(this.toPx(x + w - br), this.toPx(y)); + this.ctx.arc( + this.toPx(x + w - br), + this.toPx(y + br), + this.toPx(br), + 2 * Math.PI * (3 / 4), + 2 * Math.PI * (4 / 4) + ); + this.ctx.lineTo(this.toPx(x + w), this.toPx(y + h - br)); + this.ctx.arc(this.toPx(x + w - br), this.toPx(y + h - br), this.toPx(br), 0, 2 * Math.PI * (1 / 4)); + this.ctx.lineTo(this.toPx(x + br), this.toPx(y + h)); + this.ctx.arc( + this.toPx(x + br), + this.toPx(y + h - br), + this.toPx(br), + 2 * Math.PI * (1 / 4), + 2 * Math.PI * (2 / 4) + ); + this.ctx.lineTo(this.toPx(x), this.toPx(y + br)); + this.ctx.arc(this.toPx(x + br), this.toPx(y + br), this.toPx(br), 2 * Math.PI * (2 / 4), 2 * Math.PI * (3 / 4)); + }, + /** + * 计算文本长度 + * @param {Array|Object}} text 数组 或者 对象 + */ + _getTextWidth(text) { + let texts = []; + if (Object.prototype.toString.call(text) === "[object Object]") { + texts.push(text); + } else { + texts = text; + } + let width = 0; + texts.forEach(({ + fontSize, + text, + marginLeft = 0, + marginRight = 0 + }) => { + this.ctx.fontSize = this.toPx(fontSize); + width += this.ctx.measureText(text).width + marginLeft + marginRight; + }); + + return this.toRpx(width); + }, + /** + * 渲染一段文字 + */ + _drawSingleText({ + x, + y, + fontSize, + color, + baseLine, + textAlign = "left", + text, + opacity = 1, + textDecoration = "none", + width, + lineNum = 1, + lineHeight = 0, + fontWeight = "normal", + fontStyle = "normal", + fontFamily = "sans-serif", + }) { + this.ctx.save(); + this.ctx.beginPath(); + this.ctx.font = fontStyle + " " + fontWeight + " " + this.toPx(fontSize, true) + "px " + fontFamily; + this.ctx.globalAlpha = opacity; + this.ctx.fillStyle = color; + this.ctx.textBaseline = baseLine; + this.ctx.textAlign = textAlign; + let textWidth = this.toRpx(this.ctx.measureText(text).width); + + const textArr = []; + if (textWidth > width) { + // 文本宽度 大于 渲染宽度 + let fillText = ""; + let line = 1; + for (let i = 0; i <= text.length - 1; i++) { + // 将文字转为数组,一行文字一个元素 + fillText = fillText + text[i]; + if (this.toRpx(this.ctx.measureText(fillText).width) >= width) { + if (line === lineNum) { + if (i !== text.length - 1) { + fillText = fillText.substring(0, fillText.length - 1) + "..."; + } + } + if (line <= lineNum) { + textArr.push(fillText); + } + fillText = ""; + line++; + } else { + if (line <= lineNum) { + if (i === text.length - 1) { + textArr.push(fillText); + } + } + } + } + textWidth = width; + } else { + textArr.push(text); + } + + textArr.forEach((item, index) => { + this.ctx.fillText(item, this.toPx(x), this.toPx(y + (lineHeight || fontSize) * index)); + }); + + this.ctx.restore(); + + // textDecoration + if (textDecoration !== "none") { + let lineY = y; + if (textDecoration === "line-through") { + // 目前只支持贯穿线 + lineY = y; + + // 小程序画布baseLine偏移阈值 + let threshold = 5; + + // 根据baseLine的不同对贯穿线的Y坐标做相应调整 + switch (baseLine) { + case "top": + lineY += fontSize / 2 + threshold; + break; + case "middle": + break; + case "bottom": + lineY -= fontSize / 2 + threshold; + break; + default: + lineY -= fontSize / 2 - threshold; + break; + } + } + this.ctx.save(); + this.ctx.moveTo(this.toPx(x), this.toPx(lineY)); + this.ctx.lineTo(this.toPx(x) + this.toPx(textWidth), this.toPx(lineY)); + this.ctx.strokeStyle = color; + this.ctx.stroke(); + this.ctx.restore(); + } + + return textWidth; + }, +}; +const helper = { + /** + * 下载图片并获取图片信息 + */ + _downloadImageAndInfo(image, index) { + return new Promise((resolve, reject) => { + const { + x, + y, + url, + zIndex + } = image; + const imageUrl = url; + // 下载图片 + this._downImage(imageUrl, index) + // 获取图片信息 + .then((imgPath) => this._getImageInfo(imgPath, index)) + .then(({ + imgPath, + imgInfo + }) => { + console.log(); + // 根据画布的宽高计算出图片绘制的大小,这里会保证图片绘制不变形 + let sx; + let sy; + const borderRadius = image.borderRadius || 0; + const setWidth = image.width; + const setHeight = image.height; + const width = this.toRpx(imgInfo.width); + const height = this.toRpx(imgInfo.height); + + if (width / height <= setWidth / setHeight) { + sx = 0; + sy = (height - (width / setWidth) * setHeight) / 2; + } else { + sy = 0; + sx = (width - (height / setHeight) * setWidth) / 2; + } + if (!this.drawArr) this.drawArr = []; + this.drawArr.push({ + type: "image", + borderRadius, + borderWidth: image.borderWidth, + borderColor: image.borderColor, + zIndex: typeof zIndex !== "undefined" ? zIndex : index, + imgPath, + sx, + sy, + sw: width - sx * 2, + sh: height - sy * 2, + x, + y, + w: setWidth, + h: setHeight, + }); + resolve(); + }) + .catch((err) => reject(err)); + }); + }, + /** + * 下载图片资源 + * @param {*} imageUrl + */ + _downImage(imageUrl) { + return new Promise((resolve, reject) => { + if (imageUrl.includes('tmp') || imageUrl.includes('temp') || imageUrl.includes('wxfile')) { + // 支持本地地址 + resolve(imageUrl); //2021/2/17 by cc + } + + if (/^http/.test(imageUrl) && !new RegExp(wx.env.USER_DATA_PATH).test(imageUrl)) { + wx.downloadFile({ + url: this._mapHttpToHttps(imageUrl), + success: (res) => { + if (res.statusCode === 200) { + resolve(res.tempFilePath); + } else { + reject(res.errMsg); + } + }, + fail(err) { + reject(err); + }, + }); + } else { + // 支持本地地址 + resolve(imageUrl); + } + }); + }, + /** + * 获取图片信息 + * @param {*} imgPath + * @param {*} index + */ + _getImageInfo(imgPath, index) { + return new Promise((resolve, reject) => { + wx.getImageInfo({ + src: imgPath, + success(res) { + resolve({ + imgPath, + imgInfo: res, + index + }); + }, + fail(err) { + reject(err); + }, + }); + }); + }, + toPx(rpx, int) { + if (int) { + return parseInt(rpx * this.factor * this.pixelRatio); + } + return rpx * this.factor * this.pixelRatio; + }, + toRpx(px, int) { + if (int) { + return parseInt(px / (this.factor * this.pixelRatio)); + } + return px / (this.factor * this.pixelRatio); + }, + /** + * 将http转为https + * @param {String}} rawUrl 图片资源url + */ + _mapHttpToHttps(rawUrl) { + if (rawUrl.indexOf(":") < 0) { + return rawUrl; + } + const urlComponent = rawUrl.split(":"); + if (urlComponent.length === 2) { + if (urlComponent[0] === "http") { + urlComponent[0] = "https"; + return `${urlComponent[0]}:${urlComponent[1]}`; + } + } + return rawUrl; + }, +}; +Component({ + properties: {}, + created() { + const sysInfo = wx.getSystemInfoSync(); + const { + pixelRatio, + screenWidth + } = sysInfo; + this.factor = screenWidth / 750; + this.pixelRatio = pixelRatio; + }, + methods: Object.assign({ + /** + * 计算画布的高度 + * @param {*} config + */ + getHeight(config) { + const getTextHeight = (text) => { + let fontHeight = text.lineHeight || text.fontSize; + let height = 0; + if (text.baseLine === "top") { + height = fontHeight; + } else if (text.baseLine === "middle") { + height = fontHeight / 2; + } else { + height = 0; + } + return height; + }; + const heightArr = []; + (config.blocks || []).forEach((item) => { + heightArr.push(item.y + item.height); + }); + (config.texts || []).forEach((item) => { + let height; + if (Object.prototype.toString.call(item.text) === "[object Array]") { + item.text.forEach((i) => { + height = getTextHeight({ + ...i, + baseLine: item.baseLine, + }); + heightArr.push(item.y + height); + }); + } else { + height = getTextHeight(item); + heightArr.push(item.y + height); + } + }); + (config.images || []).forEach((item) => { + heightArr.push(item.y + item.height); + }); + (config.lines || []).forEach((item) => { + heightArr.push(item.startY); + heightArr.push(item.endY); + }); + const sortRes = heightArr.sort((a, b) => b - a); + let canvasHeight = 0; + if (sortRes.length > 0) { + canvasHeight = sortRes[0]; + } + if (config.height < canvasHeight || !config.height) { + return canvasHeight; + } else { + return config.height; + } + }, + async create(config) { + await this.initCtx(); + + this.pixelRatio = config.pixelRatio || this.pixelRatio; + const height = this.getHeight(config); + this.initCanvas(config.width, height, config.debug) + .then(async () => { + this.node.width = this.data.pxWidth * this.pixelRatio; + this.node.height = this.data.pxHeight * this.pixelRatio; + + this.ctx.scale(this.pixelRatio, this.pixelRatio); + + // 设置画布底色 + if (config.backgroundColor) { + this.ctx.save(); + this.ctx.fillStyle = config.backgroundColor; + this.ctx.fillRect(0, 0, this.toPx(config.width), this.toPx(height)); + this.ctx.restore(); + } + const { + texts = [], blocks = [], lines = [] + } = config; + if (!this.drawArr) this.drawArr = []; + const queue = this.drawArr + .concat( + texts.map((item) => { + item.type = "text"; + item.zIndex = item.zIndex || 0; + return item; + }) + ) + .concat( + blocks.map((item) => { + item.type = "block"; + item.zIndex = item.zIndex || 0; + return item; + }) + ) + .concat( + lines.map((item) => { + item.type = "line"; + item.zIndex = item.zIndex || 0; + return item; + }) + ); + // 按照顺序排序 + queue.sort((a, b) => a.zIndex - b.zIndex); + + for (let i = 0, len = queue.length; i < len; i++) { + const item = queue[i]; + if (item.type === "image") { + await this.drawImage(item); + } else if (item.type === "text") { + this.drawText(item); + } else if (item.type === "block") { + this.drawBlock(item); + } else if (item.type === "line") { + this.drawLine(item); + } + } + + wx.canvasToTempFilePath({ + canvas: this.node, + success: (res) => { + this.triggerEvent("success", res.tempFilePath); + }, + fail: (err) => { + this.triggerEvent("fail", err); + }, + }, + this + ); + }) + .catch((err) => { + wx.showToast({ + icon: "none", + title: err.errMsg || "生成失败", + }); + console.error(err); + }); + }, + initCtx() { + return new Promise((resolve) => { + wx.createSelectorQuery() + .in(this) + .select("#canvasid") + .fields({ + node: true, + }) + .exec((res) => { + this.node = res[0].node; + this.ctx = this.node.getContext("2d"); + resolve(); + }); + }); + }, + }, + main, + handle, + helper + ), +}); \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.json b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.json new file mode 100644 index 0000000..fba482a --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxml b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxml new file mode 100644 index 0000000..e981e23 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxss b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxss new file mode 100644 index 0000000..2b9a7ad --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/index/index.wxss @@ -0,0 +1,16 @@ +.canvas { + width: 750rpx; + height: 750rpx; +} +.canvas.pro { + position: absolute; + bottom: 0; + left: 0; + transform: translate3d(-9999rpx, 0, 0); +} +.canvas.debug { + position: absolute; + bottom: 0; + left: 0; + border: 1rpx solid #ccc; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.js b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.js new file mode 100644 index 0000000..0baa358 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.js @@ -0,0 +1,95 @@ +Component({ + properties: { + config: { + type: Object, + value: {}, + }, + preload: { // 是否预下载图片资源 + type: Boolean, + value: false, + }, + hideLoading: { // 是否隐藏loading + type: Boolean, + value: false, + } + }, + ready() { + if (this.data.preload) { + const poster = this.selectComponent('#poster'); + this.downloadStatus = 'doing'; + poster.downloadResource(this.data.config).then(() => { + this.downloadStatus = 'success'; + this.trigger('downloadSuccess'); + }).catch((e) => { + this.downloadStatus = 'fail'; + this.trigger('downloadFail', e); + }); + } + }, + methods: { + trigger(event, data) { + if (this.listener && typeof this.listener[event] === 'function') { + this.listener[event](data); + } + }, + once(event, fun) { + if (typeof this.listener === 'undefined') { + this.listener = {}; + } + this.listener[event] = fun; + }, + downloadResource(reset) { + return new Promise((resolve, reject) => { + if (reset) { + this.downloadStatus = null; + } + const poster = this.selectComponent('#poster'); + if (this.downloadStatus && this.downloadStatus !== 'fail') { + if (this.downloadStatus === 'success') { + resolve(); + } else { + this.once('downloadSuccess', () => resolve()); + this.once('downloadFail', (e) => reject(e)); + } + } else { + poster.downloadResource(this.data.config) + .then(() => { + this.downloadStatus = 'success'; + resolve(); + }) + .catch((e) => reject(e)); + } + }) + }, + onCreate(reset = false) { + !this.data.hideLoading && wx.showLoading({ + mask: true, + title: '生成中' + }); + return this.downloadResource(typeof reset === 'boolean' && reset).then(() => { + !this.data.hideLoading && wx.hideLoading(); + const poster = this.selectComponent('#poster'); + poster.create(this.data.config); + }) + .catch((err) => { + !this.data.hideLoading && wx.hideLoading(); + wx.showToast({ + icon: 'none', + title: err.errMsg || '生成失败' + }); + console.error(err); + this.triggerEvent('fail', err); + }) + }, + onCreateSuccess(e) { + const { + detail + } = e; + this.triggerEvent('success', detail); + }, + onCreateFail(err) { + console.error(err); + this.triggerEvent('fail', err); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.json b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.json new file mode 100644 index 0000000..bed82f6 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "we-canvas": "../index/index" + } +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxml b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxml new file mode 100644 index 0000000..2bbe645 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxss b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/poster.js b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/poster.js new file mode 100644 index 0000000..b6bd343 --- /dev/null +++ b/miniprogram/cmpts/public/poster/wxa-plugin-canvas/poster/poster.js @@ -0,0 +1,29 @@ +const defaultOptions = { + selector: '#poster' +}; + +function Poster(options = {}, that) { + options = { + ...defaultOptions, + ...options, + }; + + const pages = getCurrentPages(); + let ctx = pages[pages.length - 1]; + if (that) ctx = that + const poster = ctx.selectComponent(options.selector); + delete options.selector; + + return poster; +}; + +Poster.create = (reset = false, that) => { + const poster = Poster({}, that); + if (!poster) { + console.error('请设置组件的id="poster"!!!'); + } else { + return Poster({}, that).onCreate(reset); + } +} + +export default Poster; diff --git a/miniprogram/cmpts/public/table/table_cmpt.js b/miniprogram/cmpts/public/table/table_cmpt.js new file mode 100644 index 0000000..03c17f5 --- /dev/null +++ b/miniprogram/cmpts/public/table/table_cmpt.js @@ -0,0 +1,90 @@ +/** + * + */ +Component({ + /** + * 外部样式类 + */ + externalClasses: ['header-row-class-name', 'row-class-name', 'cell-class-name'], + + /** + * 组件样式隔离 + */ + options: { + styleIsolation: "isolated", + multipleSlots: true // 支持多个slot + }, + + /** + * 组件的属性列表 + */ + properties: { + data: { + type: Array, + value: [] + }, + headers: { + type: Array, + value: [] + }, + // table的高度, 溢出可滚动 + height: { + type: String, + value: 'auto' + }, + width: { + type: Number || String, + value: '100%' + }, + // 单元格的宽度 + tdWidth: { + type: Number, + value: 35 + }, + // 固定表头 thead达到Header的位置时就应该被fixed了 + offsetTop: { + type: Number, + value: 150 + }, + // 是否带有纵向边框 + stripe: { + type: Boolean, + value: false + }, + // 是否带有纵向边框 + border: { + type: Boolean, + value: false + }, + msg: { + type: String, + value: '暂无数据~' + } + }, + + /** + * 组件的初始数据 + */ + data: { + scrolWidth: '20%' + }, + + lifetimes: { + attached: function () { + + }, + ready: function () { + + }, + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/table/table_cmpt.json b/miniprogram/cmpts/public/table/table_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/table/table_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/table/table_cmpt.wxml b/miniprogram/cmpts/public/table/table_cmpt.wxml new file mode 100644 index 0000000..9b25ec3 --- /dev/null +++ b/miniprogram/cmpts/public/table/table_cmpt.wxml @@ -0,0 +1,25 @@ + + + + + {{ item.label }} + + + + + + + + + + {{it[head["prop"]]}} + + + + + + {{ msg }} + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/table/table_cmpt.wxss b/miniprogram/cmpts/public/table/table_cmpt.wxss new file mode 100644 index 0000000..f7e3884 --- /dev/null +++ b/miniprogram/cmpts/public/table/table_cmpt.wxss @@ -0,0 +1,91 @@ +.reset { + background: white; +} + +.other { + font-size: 20px; +} + +.table { + position: relative; + font-size: 28rpx; + background: #fff; + border-right:none; + border-radius: 8rpx; + overflow: hidden; +} +.thead{ + border-bottom: none; + display: flex; + justify-content: flex-start; + border-top-right-radius: 8rpx; + border-top-left-radius: 8rpx; + overflow: visible; + color: #909399; + border: 1px solid #ebeef5; + box-sizing: border-box; +} +.thead .td { + padding: 20rpx 10rpx; + font-weight: bold; + display: inline-block; + white-space:nowrap; + text-align: center; + border-right: 1rpx solid #fff; +} +.thead .td:last-child { + border-right: none; +} +.thead-border .td { + border-right: 1rpx solid #ebeef5; +} +.thead-border .td:last-child { + border-right: none; +} +/* .tr{ + display: flex; + white-space:nowrap; +} */ +.tbody { + box-sizing: border-box; + font-size: 28rpx; + color: #666; + border: 1px solid #ebeef5; + border-top: none; + border-bottom-left-radius: 8rpx; + border-bottom-right-radius: 8rpx; +} +.tbody-tr { + display: flex; + border-bottom: 1px solid #ebeef5; +} +.tbody-tr:last-child { + border-bottom-left-radius: 8rpx; + border-bottom-right-radius: 8rpx; +} + +.tbody-tr-stripe { + background: #fff; + border-bottom: none; +} +.tbody-tr-stripe:nth-child(2n) { + background: #F6F6F6; +} +.tbody-tr .td { + white-space: wrap; + padding:20rpx 10rpx; + text-align: center; +} + +.tbody-tr-border .td { + border-right: 1rpx solid #F6F6F6; +} +.tbody-tr-border .td:last-child { + border-right: none; +} +.no-data { + display: flex; + padding: 50rpx; + color: #666; + justify-content: center; +} \ No newline at end of file diff --git a/miniprogram/helper/cache_helper.js b/miniprogram/helper/cache_helper.js new file mode 100644 index 0000000..afa730e --- /dev/null +++ b/miniprogram/helper/cache_helper.js @@ -0,0 +1,84 @@ +/** + * Notes: 微信缓存二次封装,有设置时效性的封装 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ +const helper = require('./helper.js'); + +const TIME_SUFFIX = "_deadtime" + +/** + * 设置 + * k 键key + * v 值value + * t 秒 + */ +function set(k, v, t = 86400 * 30) { + if (!k) return null; + + wx.setStorageSync(k, v); + let seconds = parseInt(t); + if (seconds > 0) { + let newtime = Date.parse(new Date()); + newtime = newtime / 1000 + seconds; + wx.setStorageSync(k + TIME_SUFFIX, newtime + ""); + } else { + wx.removeStorageSync(k + TIME_SUFFIX); + } +} + + +/** + * 获取 + * k 键key + * def 默认值 + */ +function get(k, def = null) { + if (!k) return null; + + let deadtime = wx.getStorageSync(k + TIME_SUFFIX); + if (!deadtime) return def; + + deadtime = parseInt(deadtime); + if (!deadtime) return def; + + if (deadtime) { + if (parseInt(deadtime) < Date.parse(new Date()) / 1000) { + wx.removeStorageSync(k); + wx.removeStorageSync(k + TIME_SUFFIX); + return def; + } + } + + let res = wx.getStorageSync(k); + + if (helper.isDefined(res)) { + return res; + } else { + return def; + } +} + +/** + * 删除 + */ +function remove(k) { + if (!k) return null; + + wx.removeStorageSync(k); + wx.removeStorageSync(k + TIME_SUFFIX); +} + +/** + * 清除所有key + */ +function clear() { + wx.clearStorageSync(); +} + +module.exports = { + set, + get, + remove, + clear +} \ No newline at end of file diff --git a/miniprogram/helper/cloud_helper.js b/miniprogram/helper/cloud_helper.js new file mode 100644 index 0000000..5d2a6d3 --- /dev/null +++ b/miniprogram/helper/cloud_helper.js @@ -0,0 +1,366 @@ + /** + * Notes: 云操作类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + + const helper = require('./helper.js'); + const dataHelper = require('./data_helper.js'); + const cacheHelper = require('./cache_helper.js'); + const constants = require('../biz/constants.js'); + const setting = require('../setting/setting.js'); + const contentCheckHelper = require('../helper/content_check_helper.js'); + const pageHelper = require('../helper/page_helper.js'); + + const CODE = { + SUCC: 200, + SVR: 500, //服务器错误 + LOGIC: 1600, //逻辑错误 + DATA: 1301, // 数据校验错误 + HEADER: 1302, // header 校验错误 + + ADMIN_ERROR: 2401 //管理员错误 + }; + + // 云函数提交请求(直接异步,无提示) + function callCloudSumbitAsync(route, params = {}, options) { + if (!helper.isDefined(options)) options = { + hint: false + } + if (!helper.isDefined(options.hint)) options.hint = false; + return callCloud(route, params, options) + } + + // 云函数提交请求(异步) + async function callCloudSumbit(route, params = {}, options) { + if (!helper.isDefined(options)) options = { + title: '提交中..' + } + if (!helper.isDefined(options.title)) options.title = '提交中..'; + return await callCloud(route, params, options); + } + + // 云函数获取数据请求(异步) + async function callCloudData(route, params = {}, options) { + if (!helper.isDefined(options)) options = { + title: '加载中..' + } + + if (!helper.isDefined(options.title)) options.title = '加载中..'; + let result = await callCloud(route, params, options).catch(err => { + return null; // 异常情况下返回空数据 + }); + + // 直接提取数据 返回值有[], {} 两种形式,如果为空{} ,返回 null + if (result && helper.isDefined(result.data)) { + result = result.data; + if (Array.isArray(result)) { + // 数组处理 + } else if (Object.keys(result).length == 0) { + result = null; //对象处理 + } + + } + return result; + } + + // 云函数请求(异步) + function callCloud(route, params = {}, options) { + + let title = '加载中'; + let hint = true; //数据请求时是否mask提示 + + // 标题 + if (helper.isDefined(options) && helper.isDefined(options.title)) + title = options.title; + + // 是否给提示 + if (helper.isDefined(options) && helper.isDefined(options.hint)) + hint = options.hint; + + // 是否输出错误并处理 + if (helper.isDefined(options) && helper.isDefined(options.doFail)) + doFail = options.doFail; + + if (hint) { + if (title == 'bar') + wx.showNavigationBarLoading(); + else + wx.showLoading({ + title: title, + mask: true + }) + } + + + + let token = ''; + // 管理员token + if (route.indexOf('admin/') > -1) { + let admin = cacheHelper.get(constants.CACHE_ADMIN); + if (admin && admin.token) token = admin.token; + } else { + //正常用户 + let user = cacheHelper.get(constants.CACHE_TOKEN); + if (user && user.id) token = user.id; + } + + return new Promise(function (resolve, reject) { + + let PID = pageHelper.getPID(); + + wx.cloud.callFunction({ + name: 'cloud', + data: { + route: route, + token, + PID, + params + }, + success: function (res) { + if (res.result.code == CODE.LOGIC || res.result.code == CODE.DATA) { + console.log(res) + // 逻辑错误&数据校验错误 + if (hint) { + wx.showModal({ + title: '温馨提示', + content: res.result.msg, + showCancel: false + }); + } + + reject(res.result); + return; + } else if (res.result.code == CODE.ADMIN_ERROR) { + // 后台登录错误 + wx.reLaunch({ + url: '/pages/admin/index/login/admin_login', + }); + //reject(res.result); + return; + } else if (res.result.code != CODE.SUCC) { + if (hint) { + wx.showModal({ + title: '温馨提示', + content: '系统开小差了,请稍后重试', + showCancel: false + }); + } + reject(res.result); + return; + } + + resolve(res.result); + }, + fail: function (err) { + if (hint) { + console.log(err) + if (err && err.errMsg && err.errMsg.includes('-501000') && err.errMsg.includes('Environment not found')) { + wx.showModal({ + title: '', + content: '未找到云环境ID,请按手册检查前端配置文件setting.js的配置项【CLOUD_ID】或咨询作者微信cclinux0730', + showCancel: false + }); + + } else if (err && err.errMsg && err.errMsg.includes('-501000') && err.errMsg.includes('FunctionName')) { + wx.showModal({ + title: '', + content: '云函数未创建或者未上传,请参考手册或咨询作者微信cclinux0730', + showCancel: false + }); + + } else if (err && err.errMsg && err.errMsg.includes('-501000') && err.errMsg.includes('performed in the current function state')) { + wx.showModal({ + title: '', + content: '云函数正在上传中或者上传有误,请稍候', + showCancel: false + }); + } else + wx.showModal({ + title: '', + content: '网络故障,请稍后重试', + showCancel: false + }); + } + reject(err.result); + return; + }, + complete: function (res) { + if (hint) { + if (title == 'bar') + wx.hideNavigationBarLoading(); + else + wx.hideLoading(); + } + // complete + } + }); + }); + } + + /** + * 数据列表请求 + * @param {*} that + * @param {*} listName + * @param {*} route + * @param {*} params + * @param {*} options + * @param {*} isReverse 是否倒序 + */ + async function dataList(that, listName, route, params, options, isReverse = false) { + + console.log('dataList begin'); + + if (!helper.isDefined(that.data[listName]) || !that.data[listName]) { + let data = {}; + data[listName] = { + page: 1, + size: 20, + list: [], + count: 0, + total: 0, + oldTotal: 0 + }; + that.setData(data); + } + + //改为后台默认控制 + //if (!helper.isDefined(params.size)) + // params.size = 20; + + if (!helper.isDefined(params.isTotal)) + params.isTotal = true; + + let page = params.page; + let count = that.data[listName].count; + if (page > 1 && page > count) { + wx.showToast({ + duration: 500, + icon: 'none', + title: '没有更多数据了', + }); + return; + } + + // 删除未赋值的属性 + for (let k in params) { + if (!helper.isDefined(params[k])) + delete params[k]; + } + + // 记录当前老的总数 + let oldTotal = 0; + if (that.data[listName] && that.data[listName].total) + oldTotal = that.data[listName].total; + params.oldTotal = oldTotal; + + // 云函数调用 + await callCloud(route, params, options).then(function (res) { + console.log('cloud begin'); + + // 数据合并 + let dataList = res.data; + let tList = that.data[listName].list; + + if (dataList.page == 1) { + tList = res.data.list; + } else if (dataList.page > that.data[listName].page) { //大于当前页才能更新 + if (isReverse) + tList = res.data.list.concat(tList); + else + tList = tList.concat(res.data.list); + } else + return; + + dataList.list = tList; + let listData = {}; + listData[listName] = dataList; + + that.setData(listData); + + console.log('cloud END'); + }).catch(err => { + console.log(err) + }); + + console.log('dataList END'); + + } + + /** + * 图片上传到云空间 + * @param {*} imgList + * @param {*} dir + * @param {*} id + */ + async function transTempPics(imgList, dir, id) { + + for (let i = 0; i < imgList.length; i++) { + + let filePath = imgList[i]; + let ext = filePath.match(/\.[^.]+?$/)[0]; + + // 是否为临时文件 + if (filePath.includes('tmp') || filePath.includes('temp') || filePath.includes('wxfile')) { + let rd = dataHelper.genRandomNum(100000, 999999); + await wx.cloud.uploadFile({ + cloudPath: id ? dir + id + '/' + rd + ext : dir + rd + ext, + filePath: filePath, // 文件路径 + }).then(res => { + imgList[i] = res.fileID; + }).catch(error => { + // handle error TODO:剔除图片 + console.error(error); + }) + } + } + + return imgList; + } + + /** + * 单个图片上传到云空间 + * @param {*} img + * @param {*} dir + * @param {*} id + * @return 返回cloudId + */ + async function transTempPicOne(img, dir, id, isCheck = true) { + + if (isCheck) { + wx.showLoading({ + title: '图片校验中', + mask: true + }); + let check = await contentCheckHelper.imgCheck(img); + if (!check) { + wx.hideLoading(); + return pageHelper.showModal('不合适的图片, 请重新上传', '温馨提示'); + } + wx.hideLoading(); + } + + + + let imgList = [img]; + imgList = await transTempPics(imgList, dir, id); + + if (imgList.length == 0) + return ''; + else { + return imgList[0]; + } + + + } + + module.exports = { + CODE, + dataList, + callCloud, + callCloudSumbit, + callCloudData, + callCloudSumbitAsync, + transTempPics, + transTempPicOne + } \ No newline at end of file diff --git a/miniprogram/helper/content_check_helper.js b/miniprogram/helper/content_check_helper.js new file mode 100644 index 0000000..167c21a --- /dev/null +++ b/miniprogram/helper/content_check_helper.js @@ -0,0 +1,113 @@ + /** + * Notes: UGC内容校验 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const setting = require('../setting/setting.js'); + +/** + * 图片类型校验 + * @param {*} fileName + * @param {*} type + */ +function imgTypeCheck(path, type = ['jpg', 'jpeg', 'png','JPG','JPEG','PNG']) { + let fmt = path.split(".")[(path.split(".")).length - 1]; + if (type.indexOf(fmt) > -1) + return true; + else + return false; +} + +/** + * 图片大小校验 + * @param {*} size + * @param {*} maxSize + */ +function imgSizeCheck(size, maxSize) { + return size < maxSize; +} + +async function imgCheckCloud(path, opt) { + + + /* + let result = await cloudHelper.callCloudSumbit('check/img', params, opt).then(res => { + return true; + }).catch(err => { + return false; + }); + */ + + let result = await wx.cloud.callFunction({ + name: 'cloud', + data: { + route: 'check/img', + token : '', + params:{img: wx.cloud.CDN( { + type: 'filePath', + filePath: path, + }) + } + }, + success: function (res) { + console.log(res) + console.log('succ') + return true; + }, + fail: function (res) { + console.log(res) + return false; + }, + complete: function (res) { + + } + }); + return result; +} + +/** + * 图像校验 + * @param {*} imgData + */ +async function imgCheck(imgData) { + + let result = await wx.serviceMarket.invokeService({ + service: 'wxee446d7507c68b11', + api: 'imgSecCheck', + data: { + "Action": "ImageModeration", + "Scenes": ["PORN", "POLITICS", "TERRORISM"], + "ImageUrl": new wx.serviceMarket.CDN({ + type: 'filePath', + filePath: imgData, + }), + "ImageBase64": '', + "Config": "", + "Extra": "" + }, + }).then(res => { + if (res && res.data && res.data.Response && + res.data.Response.PornResult && res.data.Response.PornResult.Suggestion === 'PASS' && + res.data.Response.PoliticsResult && res.data.Response.PoliticsResult.Suggestion === 'PASS' && + res.data.Response.TerrorismResult && res.data.Response.TerrorismResult.Suggestion === 'PASS') + return true; + else + return false; + }).catch(err => { + console.log(err); + return false; + }); + + return result; +} + + +module.exports = { + imgCheck, + imgCheckCloud, + imgTypeCheck, + imgSizeCheck +} \ No newline at end of file diff --git a/miniprogram/helper/data_helper.js b/miniprogram/helper/data_helper.js new file mode 100644 index 0000000..e849215 --- /dev/null +++ b/miniprogram/helper/data_helper.js @@ -0,0 +1,414 @@ + /** + * Notes: 字符相关操作函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + + + /** + * 生成一个特定范围内的随机数 + */ + const genRandomNum = (min, max) => (Math.random() * (max - min + 1) | 0) + min; + + /** + * 生成一个随机的数字字母字符串 + */ + const genRandomString = len => { + const text = 'abcdefghijklmnopqrstuvwxyz0123456789'; + const rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < len; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + } + + /** + * 生成一个随机的字母字符串 + */ + const genRandomAlpha = len => { + const text = 'abcdefghijklmnopqrstuvwxyz'; + const rdmIndex = text => Math.random() * text.length | 0; + let rdmString = ''; + for (; rdmString.length < len; rdmString += text.charAt(rdmIndex(text))); + return rdmString; + } + + + // 拆分一维数组为二维数组 + function spArr(arr, size) { + if (!arr || !Array.isArray(arr) || arr.length == 0) return arr; + + let newArray = []; + let index = 0; + while (index < arr.length) { + newArray.push(arr.slice(index, index += size)); + } + return newArray; + } + + /** + * 把字符串格式化为数组 + * @param {*} str + * @param {*} sp + */ + function str2Arr(str, sp = ',') { + if (str && Array.isArray(str)) return str; + + str = str.replace(/,/g, sp); + let arr = str.split(sp); + for (let i = 0; i < arr.length; i++) { + arr[i] = arr[i].trim(); + + if (isNumber(arr[i])) { + arr[i] = Number(arr[i]); + } + + } + return arr; + } + + /** + * 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true + * @param {*} val + * @returns bool + */ + function isNumber(val) { + var reg = /^[0-9]+.?[0-9]*$/; + if (reg.test(val)) { + return true; + } else { + return false; + } + } + + /** + * 提取对象数组的某个属性数组,如[{'x':1},{'x':2}] 提取 x得到[1,2] + * @param {*} arr + * @param {*} key + * @returns [] + */ + function getArrByKey(arr, key) { + if (!Array.isArray(arr)) return; + return arr.map((item) => { + return item[key] + }); + } + + /** + * 提取对象数组的多个属性数组, + * 如 [{'x':1,'y':11,'z':111},{'x':2,'y':22,'z':222}] + * 提取 ['x','y'] 得到[{'x':1,'y':11},{'x':2,'y':22}] + * @param {*} arr + * @param {*} keys + * @returns [] + */ + function getArrByKeyMulti(arr, keys = []) { + if (!Array.isArray(arr)) return; + if (!Array.isArray(keys)) return; + + let ret = []; + for (let k in arr) { + let node = {}; + for (let j in keys) { + node[keys[j]] = arr[k][keys[j]]; + } + ret.push(node); + } + + return ret; + } + + /** + * 提取对象数组某个键值等于某值的对象数据 + * @param {*} arr + * @param {*} key + * @param {*} val + * @returns object {} + */ + function getDataByKey(arr, key, val) { + if (!Array.isArray(arr)) return null; + + for (let k in arr) { + if (arr[k][key] == val) + return arr[k]; + } + + return null; + } + + /** + * 文本内容格式化处理 + * @param {*} content + * @param {*} len 截取长度 -1不截取 + */ + function fmtText(content, len = -1) { + let str = content.replace(/[\r\n]/g, ""); //去掉回车换行 + if (len > 0) { + str = str.substr(0, len); + } + return str.trim(); + } + + // 下划线转换驼峰 + function toHump(name) { + name = name.replace(/\_(\w)/g, function (all, letter) { + return letter.toUpperCase(); + }); + + // 首字母大写 + let firstChar = name.charAt(0).toUpperCase(); + return firstChar + name.slice(1); + } + + // 驼峰转换下划线 + function toLine(name) { + name = name.replace(/([A-Z])/g, "_$1").toLowerCase(); + + //如果首字符为下划线,干掉 + if (name.charAt(0) === '_') + return name.slice(1); + else + return name; + } + + // 金额格式化 dot为金额每隔三位用","或" "间隔 + function fmtMoney(s, dot = '') { + s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(2) + ""; + var l = s.split(".")[0].split("").reverse(), + r = s.split(".")[1]; + t = ""; + for (i = 0; i < l.length; i++) { + t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? dot : ""); + } + return t.split("").reverse().join("") + "." + r; + } + + /** + *简单数组转对象数组 + * @param {*} arr [1,2,3] + * @param {*} key [x1,x2,x3] + * @returns [{x1:1,x2:1,x3:1},{x1:2,x2:2,x3:2},{x1:3,x2:3,x3:3}] + */ + function arr2ObjectArr(arr, key1, key2, key3) { + let ret = []; + for (let k in arr) { + let obj = {}; + if (key1) obj[key1] = arr[k]; + if (key2) obj[key2] = arr[k]; + if (key3) obj[key3] = arr[k]; + ret.push(obj); + } + return ret; + } + + /** + * property + * @param {*} property 排序属性 + * @returns 排序好的数组 + * 用法 arr.sort(compare('age')) + */ + function objArrSortAsc(property) { + return function (a, b) { + var value1 = a[property]; + var value2 = b[property]; + if (value1 < value2) + return -1; + else if (value1 > value2) + return 1; + else return 0; + } + } + + /** + * property + * @param {*} property 排序属性 + * @returns 排序好的数组 + * 用法 arr.sort(compare('age')) + */ + function objArrSortDesc(property) { + return function (a, b) { + var value1 = a[property]; + var value2 = b[property]; + if (value1 < value2) + return 1; + else if (value1 > value2) + return -1; + else return 0; + } + } + + /** + * 数组有则减少,无则增加 + * @param {*} arr + * @param {*} data + * @param {*} sort 排序方式 asc/desc + */ + function arrAddDel(arr, data, sort = 'asc') { + if (!arr) return arr; + if (!Array.isArray(arr)) return arr; + + let idx = arr.indexOf(data); + if (idx > -1) + arr.splice(idx, 1); + else + arr.push(data) + + if (sort == 'asc') + return arr.sort(); + else + return arr.reverse(); + } + + function objArrMerge(arr1, arr2) { + for (let k in arr1) {} + } + + + //数据深度拷贝 + function deepClone(data) { + if (data === null || typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean' || typeof data === 'undefined') { + return data; + } + + return JSON.parse(JSON.stringify(data)); + } + + function padLeft(str, len, charStr) { + if (!str) + str = ''; + else + str = str + ''; + return new Array(len - str.length + 1).join(charStr || '') + str; + } + + function padRight(str, len, charStr) { + if (!str) + str = ''; + else + str = str + ''; + return str + new Array(len - str.length + 1).join(charStr || ''); + } + + + // 选项表单处理 + function getSelectOptions(str) { + if (!str) + return []; + else if (str.includes('=')) { + let arr = str.split(','); + for (let k in arr) { + let node = arr[k].split('='); + arr[k] = {}; + + let labelArr = node[1].split('|'); + arr[k].label = labelArr[0]; + if (labelArr.length > 1) { //扩展属性 + arr[k].ext = labelArr[1]; + } + arr[k].val = node[0]; + } + return arr; + } else { + return str.split(','); + } + } + + // 数组元素交换位置 index1和index2分别是两个数组的索引值 + function arraySwap(arr, index1, index2) { + arr[index1] = arr.splice(index2, 1, arr[index1])[0]; + return arr; + } + + // 数组置顶 + function arrayTop(arr, idx) { + let node = arr.splice(idx, 1)[0]; + arr.unshift(node); + return arr; + } + + // 数组置底 + function arrayBottom(arr, idx) { + let node = arr.splice(idx, 1)[0]; + arr.push(node); + return arr; + } + + /** + * 把某个值/对象按key插到某个对象数组 + * @param {*} arr 目标数组 + * @param {*} key 键 + * @param {*} val 判断值 + * @param {*} obj 插入对象{} + */ + function insertObjArrByKey(arr, key, val, obj) { + if (!arr) return arr; + + for (let k in arr) { + if (arr[k][key] == val) { + // 发现存在 + arr[k].list.push(obj); + return arr; + } + } + + // 不存在 + let newObj = { + [key]: val, + list: [obj] + } + arr.push(newObj); + return arr; + } + + /** + * 从对象数组中, 根据某个键值 获取满足的对象 + * @param {*} arr + * @param {*} key + * @param {*} val + */ + function getValFromArr(arr, key = 'val', val = '') { + if (!Array.isArray(arr)) return null; + for (let k in arr) { + if (arr[k][key] == val) + return arr[k]; + } + + return null; + } + + module.exports = { + arrayTop, + arraySwap, + arrayBottom, + + getValFromArr, + getArrByKey, + getArrByKeyMulti, //提取对象数组的多个属性数组 + spArr, //拆分一维数组为二维 + getDataByKey, + str2Arr, + arr2ObjectArr, + insertObjArrByKey, + arrAddDel, + objArrSortAsc, + objArrSortDesc, + + arrAddDel, + isNumber, + + padLeft, + padRight, + + genRandomString, // 随机字符串 + genRandomAlpha, + genRandomNum, // 随机数字 + fmtText, // 文本内容格式化处理 + fmtMoney, //金额格式化 + + toHump, + toLine, + + getSelectOptions, //选项表单处理 + + deepClone + + } \ No newline at end of file diff --git a/miniprogram/helper/file_helper.js b/miniprogram/helper/file_helper.js new file mode 100644 index 0000000..f82c19a --- /dev/null +++ b/miniprogram/helper/file_helper.js @@ -0,0 +1,44 @@ +/** + * Notes: 文件处理相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-02-05 04:00:00 + */ +const pageHelper = require('./page_helper.js'); +const timeHelper = require('./time_helper.js'); + +function openDoc(name, url, ext = '.xlsx') { + + wx.showLoading({ + title: '文件下载中', + }); + + wx.downloadFile({ + url, + //fileID:' ', + filePath: wx.env.USER_DATA_PATH + '/' + name + timeHelper.time('YMDhms') + ext, + success: function (res) { + wx.hideLoading(); + console.log(res); + if (res.statusCode != 200) + return pageHelper.showModal('打开文件失败,请重试或者采取别的下载方式'); + + const filePath = res.filePath; + wx.openDocument({ + showMenu: true, + filePath: filePath, + success: function (res) { + console.log('打开文档成功'); + } + }) + }, + fail: function (err) { + wx.hideLoading(); + console.log(err); + pageHelper.showModal('打开文件失败,请重试或者采取别的下载方式'); + } + }) +} + +module.exports = { + openDoc +} \ No newline at end of file diff --git a/miniprogram/helper/form_helper.js b/miniprogram/helper/form_helper.js new file mode 100644 index 0000000..b725e62 --- /dev/null +++ b/miniprogram/helper/form_helper.js @@ -0,0 +1,40 @@ + /** + * Notes: 表单通用类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-02-28 07:48:00 + */ + + + /** + * model变表单 + * @param {*} model + */ + function model2Form(model) { + let newModel = {}; + for (let k in model) { + let arr = k.split('_'); + let result = ''; + for (let i = 1; i < arr.length; i++) { + let name = arr[i].toLowerCase(); + name = name.charAt(0).toUpperCase() + name.slice(1); + result = result + name; + } + + newModel['form' + result] = model[k]; + } + return newModel; + } + + // picker表单赋值到页面data + function setOptions(that, options, name, val) { + let idx = options.indexOf(val); + idx = (idx < 0) ? 0 : idx; + that.setData({ + [name]: idx + }) + } + + module.exports = { + model2Form, + setOptions + } \ No newline at end of file diff --git a/miniprogram/helper/helper.js b/miniprogram/helper/helper.js new file mode 100644 index 0000000..6045e51 --- /dev/null +++ b/miniprogram/helper/helper.js @@ -0,0 +1,65 @@ + /** + * Notes: 通用类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + + /** + * 判断变量,参数,对象属性是否定义 + * @param {*} val + */ + function isDefined(val) { + // == 不能判断是否为null + if (val === undefined) + return false; + else + return true; + } + + /** + * 判断对象是否为空 + * @param {*} obj + */ + function isObjectNull(obj) { + return (Object.keys(obj).length == 0); + } + + + function sleep(time) { + return new Promise((resolve) => setTimeout(resolve, time)); + }; + + + function formatNumber(n) { + n = n.toString() + return n[1] ? n : '0' + n + } + + /** + * 从picker options中 获取索引值 + * @param {*} options + * [{ + value: 0, + label: '猎头' + }] + * @param {*} val + */ + function getOptionsIdx(options, val) { + for (let i = 0; i < options.length; i++) { + if (options[i].value === val) + return i; + } + return 0; + } + + + + module.exports = { + isDefined, + isObjectNull, + sleep, + + + getOptionsIdx, + + } \ No newline at end of file diff --git a/miniprogram/helper/page_helper.js b/miniprogram/helper/page_helper.js new file mode 100644 index 0000000..1530c61 --- /dev/null +++ b/miniprogram/helper/page_helper.js @@ -0,0 +1,943 @@ + /** + * Notes: 通用页面操作类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + + const helper = require('./helper.js'); + const setting = require('../setting/setting.js'); + const cacheHelper = require('./cache_helper.js'); + const picHelper = require('./pic_helper.js'); + const CACHE_SKIN = 'SKIN_PID'; + + function getSkin() { + return { + PID: 'A00', // 核酸 + + NAV_COLOR: '#ffffff', + NAV_BG: '#039898', + + MEET_NAME: '预约', + + MENU_ITEM: ['首页', '预约日历', '我的'], // 第1,4,5菜单 + + NEWS_CATE: '1=防疫动态|leftbig,2=预约规则|leftbig', + MEET_TYPE: '1=核酸预约|leftbig2', + + DEFAULT_FORMS: [{ + type: 'line', + title: '姓名', + desc: '请填写您的姓名', + must: true, + len: 50, + onlySet: { + mode: 'all', + cnt: -1 + }, + selectOptions: ['', ''], + mobileTruth: true, + checkBoxLimit: 2, + }, + { + type: 'line', + title: '手机', + desc: '请填写您的手机号码', + must: true, + len: 50, + onlySet: { + mode: 'all', + cnt: -1 + }, + selectOptions: ['', ''], + mobileTruth: true, + checkBoxLimit: 2, + } + ] + } + } + + function getCurrentPageURL() { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const url = `/${currentPage.route}`; + return url; + } + + function setSkin(skin) { + cacheHelper.set(CACHE_SKIN, skin, 86400 * 365); + } + + function getPID() { + if (setting.PID) return setting.PID; // 已配置的情况 + let route = getCurrentPageURL(); + + if (route.includes('/admin/')) { //后台直接读缓存 + let skin = getSkin(); + if (skin) return skin.PID; + } else if (route.startsWith('/projects/A')) { //前台根据路径判定 + let PID = route.replace('/projects/', ''); + PID = PID.split('/')[0]; + return PID; + } else + return ''; + } + + function fmtURLByPID(url, PID = '') { + if (!PID) PID = getPID(); + if (url.startsWith('/pages/')) { + url = url.replace('/pages/', '/projects/' + PID + '/'); + } else { + url = '/projects/' + PID + '/' + url; + } + return url; + } + + /** 定时器销毁 */ + function clearTimer(that, timerName = 'timer') { + if (helper.isDefined(that.data[timerName])) { + clearInterval(null); + } + } + + /** + * 获取父页面 + * @param {*} deep 1=当前 2=父页 3=父父页 + */ + function getPrevPage(deep = 2) { + let pages = getCurrentPages(); + let prevPage = pages[pages.length - deep]; //上一个页面 + return prevPage; + } + + /** + * 修改当前/父页面的某个列表节点 + * @param {*} id 主键 + * @param {*} valName 被修改的字段名 + * @param {*} val 被修改的值 + * @param {*} list 数据集 + * @param {*} idName 主键名 + */ + function modifyListNode(id, list, valName, val, idName = '_id') { + + if (!list || !Array.isArray(list)) return false; + let pos = list.findIndex(item => item[idName] === id); + if (pos > -1) { + list[pos][valName] = val; + return true; + } + return false; + } + + /** + * 修改当前/父页面的某个列表节点(单个值) + * @param {*} id 主键 + * @param {*} valName 被修改的字段名 + * @param {*} val 被修改的值 + * @param {*} deep 1=当前 2=父页 3=父父页 + * @param {*} listName 数据集名 + * @param {*} idName 主键名 + */ + function modifyPrevPageListNode(id, valName, val, deep = 2, listName = 'dataList', idName = '_id') { + let prevPage = getPrevPage(deep); + if (!prevPage) return; + + let dataList = prevPage.data[listName]; + if (!dataList) return; + + let list = dataList['list']; + if (modifyListNode(id, list, valName, val, idName)) { + prevPage.setData({ + [listName + '.list']: list + }); + } + } + + /** + * 修改当前/父页面的某个列表节点(一组值) + * @param {*} id 主键 + * @param {*} valName 被修改的字段名 + * @param {*} val 被修改的值 + * @param {*} deep 1=当前 2=父页 3=父父页 + * @param {*} listName 数据集名 + * @param {*} idName 主键名 + */ + function modifyPrevPageListNodeObject(id, vals, deep = 2, listName = 'dataList', idName = '_id') { + let prevPage = getPrevPage(deep); + if (!prevPage) return; + + let dataList = prevPage.data[listName]; + if (!dataList) return; + + let list = dataList['list']; + + for (let k in vals) { + modifyListNode(id, list, k, vals[k], idName) + } + + prevPage.setData({ + [listName + '.list']: list + }); + } + + /** + * 从记录数组里删除某个节点 + * @param {*} id + * @param {*} list + * @param {*} idName + */ + function delListNode(id, list, idName = '_id') { + if (!list || !Array.isArray(list)) return false; + let pos = list.findIndex(item => item[idName] === id); + if (pos > -1) { + list.splice(pos, 1); + return true; + } + return false; + } + + + /** + * 删除当前/父页面的某个列表节点 + * @param {*} id 主键 + * @param {*} deep 1=当前 2=父页 3=父父页 + * @param {*} listName 数据集名 + * @param {*} idName 主键名 + */ + function delPrevPageListNode(id, deep = 2, listName = 'dataList', idName = '_id') { + let prevPage = getPrevPage(deep); + let dataList = prevPage.data[listName]; + if (!dataList) return; + + let list = dataList['list']; + let total = dataList['total'] - 1; + if (delListNode(id, list, idName)) { + prevPage.setData({ + [listName + '.list']: list, + [listName + '.total']: total + }); + } + + } + + /** + * 刷新当前/父页面的某个列表节点 + * @param {*} deep 1=当前 2=父页 3=父父页 + * @param {*} listName 数据集名 + * @param {*} listFunc 翻页函数名 + */ + async function refreshPrevListNode(deep = 2, listName = 'dataList', listFunc = '_getList') { + let prevPage = getPrevPage(deep); + let dataList = prevPage.data[listName]; + if (!dataList) return; + await prevPage[listFunc](); + } + + /** + * 回到顶部测算 + */ + function scrollTop(e, that) { + if (e.scrollTop > 100) { + that.setData({ + topShow: true + }); + } else { + that.setData({ + topShow: false + }); + } + } + + /** + * 选择图片 + * @param {*} that + * @param {*} max 最大上传上限 + * @param {*} imgListName 图片数组名 + */ + function chooseImage(that, max = 4, imgListName = 'imgList') { + wx.chooseImage({ + count: max, //默认9 + sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有 + sourceType: ['album', 'camera'], //从相册选择 + success: async (res) => { + that.setData({ + [imgListName]: that.data[imgListName].concat(res.tempFilePaths) + }); + } + }); + } + + /** + * 删除图片 + * @param {*} that + * @param {*} idx 被删除图片索引 + * @param {*} imgListName 图片数组名 + */ + function delImage(that, idx, imgListName = 'imgList') { + let callback = function () { + that.data[imgListName].splice(idx, 1); + that.setData({ + [imgListName]: that.data[imgListName] + }) + } + showConfirm('确定要删除该图片吗?', callback); + } + + /** + * 图片预览 + * @param {*} that + * @param {*} url + * @param {*} imgListName 图片数组名 + */ + function previewImage(that, url, imgListName = 'imgList') { + // 图片预览 + wx.previewImage({ + urls: that.data[imgListName], + current: url + }); + } + + /** + * 取得data-数据 去掉驼峰式命名,改成纯小写式命名 + * @param {*} e + * @param {*} name + * @param {*} child 是否获取穿透子元素的data- + */ + function dataset(e, name, child = false) { + if (!child) + return e.currentTarget.dataset[name]; + else + return e.target.dataset[name]; + } + + // 表单的双向数据绑定 + function model(that, e) { + let item = e.currentTarget.dataset.item; + that.setData({ + [item]: e.detail.value + }) + } + + // 表单的开关按钮数据绑定 mode=int/bool + function switchModel(that, e, mode = 'int') { + let item = e.currentTarget.dataset.item; + let sel = (e.detail.value) ? 1 : 0; + + if (mode == 'bool') { + sel = (e.detail.value) ? true : false; + } + + that.setData({ + [item]: sel + }) + } + + // 无提示成功,同时做后续处理, 最多可显示两行 + function showNoneToast(title = '操作完成', duration = 1500, callback) { + return wx.showToast({ + title: title, + icon: 'none', + duration: duration, + mask: true, + success: function () { + callback && (setTimeout(() => { + callback(); + }, duration)); + } + }); + } + + // 无提示成功,返回 + function showNoneToastReturn(title = '操作完成', duration = 2000) { + let callback = function () { + wx.navigateBack({ + delta: 0, + }) + } + return showNoneToast(title, duration, callback); + } + + // 错误提示成功,同时做后续处理, 最多显示7个汉字长度 + function showErrToast(title = '操作失败', duration = 1500, callback) { + return wx.showToast({ + title: title, + icon: 'error', + duration: duration, + mask: true, + success: function () { + callback && (setTimeout(() => { + callback(); + }, duration)); + } + }); + } + + // 加载中,同时做后续处理, 最多显示7个汉字长度 + function showLoadingToast(title = '加载中', duration = 1500, callback) { + return wx.showToast({ + title: title, + icon: 'loading', + duration: duration, + mask: true, + success: function () { + callback && (setTimeout(() => { + callback(); + }, duration)); + } + }); + } + + // 提示成功,同时做后续处理, 最多显示7个汉字长度 + function showSuccToast(title = '操作成功', duration = 1500, callback) { + return wx.showToast({ + title: title, + icon: 'success', + duration: duration, + mask: true, + success: function () { + callback && (setTimeout(() => { + callback(); + }, duration)); + } + }); + } + + // 提示成功,同时返回 + function showSuccToastReturn(title = '操作成功', duration = 1500) { + let callback = function () { + wx.navigateBack({ + delta: 0, + }); + } + return showSuccToast(title, duration, callback); + } + + // 清理提示焦点 + function formClearFocus(that) { + let data = that.data; + let focus = {}; + for (let key in data) { + if (key.startsWith('form') && !key.endsWith('Focus')) + focus[key + 'Focus'] = null; + } + that.setData({ + ...focus + }); + } + + // 焦点提示 + function formHint(that, formName, hint) { + that.setData({ + [formName + 'Focus']: hint + }); + return showModal(hint); + } + + // 编辑或者添加设置标题 + function formSetBarTitleByAddEdit(id, title) { + title = id ? title + '编辑' : title + '添加', + wx.setNavigationBarTitle({ + title + }); + } + + // 二次确认操作 + function showConfirm(title = '确定要删除吗?', yes, no) { + return wx.showModal({ + title: '', + content: title, + cancelText: '取消', + confirmText: '确定', + success: res => { + if (res.confirm) { + yes && yes(); + } else if (res.cancel) { + no && no(); + } + } + }) + } + + function showModal(content, title = '温馨提示', callback = null, confirmText = null) { + return wx.showModal({ + title, + content: content, + confirmText: confirmText || '确定', + showCancel: false, + success(res) { + callback && callback(); + } + }); + } + + /** + * 页面赋值 + * @param {*} that + * @param {*} data + */ + function setPageData(that, data) { + // 删除页面保留数据 + if (helper.isDefined(data['__webviewId__'])) + delete data['__webviewId__']; + + that.setData(data); + } + /** + * 配合搜索列表响应监听 + * @param {*} that + */ + function commListListener(that, e) { + if (helper.isDefined(e.detail.search)) + that.setData({ + search: '', + sortType: '', + }); + else { + that.setData({ + dataList: e.detail.dataList, + }); + if (e.detail.sortType) + that.setData({ + sortType: e.detail.sortType, + }); + } + + } + + function bindShowModalTap(e) { + this.setData({ + modalName: e.currentTarget.dataset.modal + }) + } + + function bindHideModalTap(e) { + this.setData({ + modalName: null + }) + } + + + /** + * 控制回页首按钮 + * @param {*} e + */ + function showTopBtn(e, that) { + if (e.scrollTop > 100) { + that.setData({ + topBtnShow: true + }); + } else { + that.setData({ + topBtnShow: false + }); + } + } + + /** + * 回到顶部 + */ + function top() { + wx.pageScrollTo({ + scrollTop: 0 + }) + } + + // 跳到锚点 + function anchor(id, that) { + let query = wx.createSelectorQuery().in(that); + query.selectViewport().scrollOffset() + //#comm 跳转到指定id位置 + query.select('#' + id).boundingClientRect(); + + query.exec(function (res) { + if (!res || res.length != 2 || !res[0] || !res[1]) return; + //第一个为视图,第二个为当前id + + let miss = res[0].scrollTop + res[1].top - 10; + wx.pageScrollTo({ + scrollTop: miss, + duration: 300 + }); + }); + } + + // 页面跳转/图片预览 + function url(e, that) { + let url = e.currentTarget.dataset.url; + let type = e.currentTarget.dataset.type; + if (!type) type = 'url'; + + switch (type) { + case 'picker': //picker 选择trigger + { + let item = e.currentTarget.dataset.item; + that.setData({ + [item]: e.detail + }) + break; + } + case 'map': + case 'location': { + wx.getLocation({ + type: 'gcj02', //返回可以用于wx.openLocation的经纬度 + success(res) { + if (url) res = url; + const latitude = res.latitude; + const longitude = res.longitude; + const name = res.name; + const address = res.address; + wx.openLocation({ + latitude, + longitude, + name, + address, + scale: 14 + }); + } + }) + break; + } + case 'top': { + top(); + break; + } + case 'mini': { + wx.navigateToMiniProgram({ + appId: e.currentTarget.dataset.app, + path: url, + envVersion: 'release' + }); + break; + } + case 'out': { + wx.navigateTo({ + url: fmtURLByPID('/pages/public/web_article?url=' + encodeURIComponent(url)), + }) + break; + } + case 'redirect': { + if (!url) return; + wx.redirectTo({ + url + }); + break; + } + case 'reLaunch': + case 'relaunch': { + if (!url) return; + wx.reLaunch({ + url + }) + break; + } + case 'copy': { + wx.setClipboardData({ + data: url, + success(res) { + wx.getClipboardData({ + success(res) { + showNoneToast('已复制到剪贴板'); + } + }) + } + }); + break; + } + case 'hint': { + if (!url) return; + showModal(url); + break; + } + case 'switch': { + if (!url) return; + wx.switchTab({ + url + }); + break; + } + case 'back': { + wx.navigateBack({ + delta: 0, + }); + break; + } + case 'toURL': { + toURL(url); + break; + } + case 'phone': { + wx.makePhoneCall({ + phoneNumber: url + }); + break; + } + case 'anchor': { + anchor(url, that); + break; + } + case 'saveimg': + case 'saveimage': { + let callback = function () { + wx.saveImageToPhotosAlbum({ //成功之后保存到本地 + filePath: url, //生成的图片的本地路径 + success: function (res) { + wx.showToast({ + title: e.currentTarget.dataset.hint || '保存成功', + icon: 'none', + duration: 2000 + }) + }, + fail: function (err) { + console.log(err); + } + }) + } + + picHelper.getWritePhotosAlbum(callback); + break; + } + case 'bool': //正反 + { + that.setData({ + [url]: !that.data[url] + }) + break; + } + case 'img': + case 'image': { + if (url.indexOf('qlogo') > -1) { //微信大图 + url = url.replace('/132', '/0'); + } + let urls = [url]; + + if (helper.isDefined(e.currentTarget.dataset.imgs)) + urls = e.currentTarget.dataset.imgs; + + wx.previewImage({ + current: url, // 当前显示图片的http链接 + urls + }) + break; + } + default: + if (!url) return; + wx.navigateTo({ + url + }) + + } + + } + + function getOptions(that, options, idName = 'id') { + let id = options[idName]; + if (!id) return false; + + that.setData({ + [idName]: id + }); + return true; + + } + + // 页面提示 + function hint(msg, type = 'redirect') { + if (type == 'reLaunch') + wx.reLaunch({ + url: fmtURLByPID('/pages/public/hint?type=9&msg=' + encodeURIComponent(msg)), + }); + else + wx.redirectTo({ + url: fmtURLByPID('/pages/public/hint?type=9&msg=' + encodeURIComponent(msg)), + }); + } + + + // 跳转操作,找到页面中的目标,出栈后面的 delta=1为上一页面 + function toURL(url) { + let pages = getCurrentPages(); + for (let k in pages) { + if (pages[k].route.includes(url)) { + wx.navigateBack({ + delta: pages.length - k - 1 + }); + return; + } + } + + wx.redirectTo({ + url, + }); + + } + + /** ListTouch触摸开始 */ + function listTouchStart(e, that) { + that.setData({ + touchX: e.touches[0].pageX + }) + } + + /** ListTouch计算方向 */ + function listTouchMove(e, that, precision = 50) { + if (that.data.touchX - e.touches[0].pageX > precision) { + that.setData({ + touchDirection: 'left' + }); + } else if (that.data.touchX - e.touches[0].pageX < -precision) { + that.setData({ + touchDirection: 'right' + }); + } + + } + + /** ListTouch计算滚动 */ + function listTouchEnd(e, that) { + if (that.data.touchDirection == 'left') { + that.setData({ + touchCur: e.currentTarget.dataset.idx + }) + } else { + that.setData({ + touchCur: null + }) + } + + that.setData({ + touchDirection: null + }); + } + + + + /** + * 多条件复合查询条件 + * @param {*} e + * @param {*} key 查询键值 + * @param {*} val 查询值 + * @param {*} def 键值的数据类型(int,str,float) + */ + function queryMulti(that, e, key, val, def) { + key = helper.isDefined(key) ? key : dataset(e, 'key'); + val = helper.isDefined(val) ? val : dataset(e, 'val'); + def = helper.isDefined(def) ? def : dataset(e, 'def'); + + // 类型转换 + if (def == 'int') { + val = parseInt(val); + } else if (def == 'float') { + val = parseFloat(val); + } else if (def == 'str') { + val = val.toString(); + } + + let _params = that.data._params; + _params.query[key] = val; + that.setData({ + _params + }) + } + + /** + * 页面缓存 + * @param {*} key + * @param {*} that + * @param {*} listKey 数据项KEY + */ + function cacheListExist(key, that, listKey = 'list') { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + return cacheHelper.get(key + '_LIST') && that.data && that.data[listKey]; + else + return false; + } + + function cacheListRemove(key) { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + cacheHelper.remove(key + '_LIST'); + } + + function cacheListSet(key, time = setting.CACHE_LIST_TIME) { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + cacheHelper.set(key + '_LIST', 'TRUE', time); + } + + + module.exports = { + setSkin, + getSkin, + getPID, + fmtURLByPID, + + //### form + formClearFocus, + formHint, + formSetBarTitleByAddEdit, + + //### + dataset, //节点数据data- + + //### 节点操作 + getPrevPage, + modifyListNode, + modifyPrevPageListNode, //单个 + modifyPrevPageListNodeObject, //一组 + delListNode, + delPrevPageListNode, + refreshPrevListNode, + + scrollTop, //### 回顶部 + + // ### 图片 + chooseImage, + previewImage, + delImage, + + //## 提示窗口 + showSuccToastReturn, + showSuccToast, + showErrToast, + showNoneToast, + showNoneToastReturn, + showLoadingToast, + showConfirm, + showModal, + setPageData, + + hint, //单独提示页 + + commListListener, //组件监听 + + bindShowModalTap, + bindHideModalTap, + showTopBtn, + + getOptions, //获取id或者其他参数 + + model, // 双向数据绑定 + switchModel, //开关控件数据绑定 + + top, // 回顶部事件 + url, // 跳转事件 + anchor, //锚点跳转事件 + + toURL, //跳转操作 + + //### 列表横向滑动 + listTouchStart, + listTouchMove, + listTouchEnd, + + //### 多条件复合查询 + queryMulti, + + clearTimer, //定时器销毁 + + //LIST数据缓存 + cacheListExist, + cacheListRemove, + cacheListSet, + + } \ No newline at end of file diff --git a/miniprogram/helper/pic_helper.js b/miniprogram/helper/pic_helper.js new file mode 100644 index 0000000..3507dcf --- /dev/null +++ b/miniprogram/helper/pic_helper.js @@ -0,0 +1,81 @@ +/** + * Notes: 图片处理相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-10-25 04:00:00 + */ + + +function getWritePhotosAlbum(callback) { + wx.getSetting({ + success: res => { + console.log('res=', res); + if (res.authSetting['scope.writePhotosAlbum']) { + console.log('true'); + callback && callback(); + } else if (res.authSetting['scope.writePhotosAlbum'] === undefined) { + wx.showModal({ + title: '提示', + content: '您未开启保存图片到相册的权限,请点击确定去开启权限!', + success: (res) => { + if (res.confirm) { + wx.authorize({ + scope: 'scope.writePhotosAlbum', + success: (res) => { + callback && callback() + console.log('授权下载成功', res); + }, + fail: (res) => { + console.log('您没有授权 fail=', res); + wx.showToast({ + title: '您没有授权,无法保存到相册', + icon: 'none' + }); + } + }); + } else { + console.log('取消了'); + } + } + }); + } else { + wx.showModal({ + title: '提示', + content: '您未开启保存图片到相册的权限,请点击确定去开启权限!', + success: (res) => { + if (res.confirm) { + wx.openSetting({ + success: (res) => { + wx.showToast({ + icon: 'none', + title: '正在保存图片', + }); + if (res.authSetting['scope.writePhotosAlbum']) { + console.log('false success res=', res); + callback && callback(); + } else { + wx.showToast({ + title: '您没有授权,无法保存到相册!', + icon: 'none' + }); + } + }, + fail: (res) => { + console.log('false file res=', res); + } + }); + } else { + wx.showToast({ + title: '您没有授权,无法保存到相册', + icon: 'none' + }); + } + } + }); + } + } + }); +} + +module.exports = { + getWritePhotosAlbum +} \ No newline at end of file diff --git a/miniprogram/helper/sys_helper.js b/miniprogram/helper/sys_helper.js new file mode 100644 index 0000000..5907f0e --- /dev/null +++ b/miniprogram/helper/sys_helper.js @@ -0,0 +1,93 @@ +/** + * Notes: 软硬件系统相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2022-01-25 29:00:00 + */ + + +function getAuth(auth, authName, callback) { + auth = 'scope.' + auth; + wx.getSetting({ + success: res => { + console.log(res) + if (res.authSetting[auth]) { + console.log('true'); + callback && callback(); + } else if (res.authSetting[auth] === undefined) { + // 未做任何授权 + wx.showModal({ + title: '提示', + mask: true, + content: '您尚未开启' + authName + '的权限,请点击确定去开启权限!', + success: (res) => { + if (res.confirm) { + wx.authorize({ + scope: auth, + success: (res) => { + console.log('授权成功', res); + callback && callback(); + }, + fail: (res) => { + console.log('您没有授权 fail=', res); + wx.showToast({ + mask: true, + title: '您没有授权,无法' + authName, + icon: 'none' + }); + } + }); + } else { + wx.showToast({ + mask: true, + title: '您没有授权,无法' + authName, + icon: 'none' + }); + } + } + }); + } else { + // 已经禁止 + wx.showModal({ + title: '提示', + content: '您未开启' + authName + '的权限,请点击确定去开启权限!', + success: (res) => { + if (res.confirm) { + wx.openSetting({ + success: (res) => { + wx.showToast({ + mask: true, + icon: 'none', + title: '正在' + authName, + }); + if (res.authSetting[auth]) { + console.log('false success res=', res); + callback && callback(); + } else { + wx.showToast({ + mask: true, + title: '您没有授权,无法' + authName + '!', + icon: 'none' + }); + } + }, + fail: (res) => { + console.log('false file res=', res); + } + }); + } else { + wx.showToast({ + mask: true, + title: '您没有授权,无法' + authName, + icon: 'none' + }); + } + } + }); + } + } + }); +} + +module.exports = { + getAuth +} \ No newline at end of file diff --git a/miniprogram/helper/time_helper.js b/miniprogram/helper/time_helper.js new file mode 100644 index 0000000..f5a51ca --- /dev/null +++ b/miniprogram/helper/time_helper.js @@ -0,0 +1,351 @@ +/** + * Notes: 时间相关函数 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-09-05 04:00:00 + */ + +const util = require('./helper.js'); + + +/** 日期简化,去掉多余的前缀0 */ +function simpleDate(date) { + let arr = date.split('-'); + if (arr.length < 3) return date; + let month = arr[1]; + if (month.indexOf('0') == 0) + month = month.replace('0', ''); + + let day = arr[2]; + if (day.indexOf('0') == 0) + day = day.replace('0', ''); + + return arr[0] + '-' + month + '-' + day; +} + +/** 时间格式化为年月日点分 */ +function fmtDateCHN(date, fmt = 'Y-M-D') { + if (!date) return ''; + if (fmt == 'hh:mm' && date.includes(':')) { + if (date.includes(' ')) date = date.split(' ')[1]; + let arr = date.split(':'); + return Number(arr[0]) + '点' + arr[1] + '分'; + } else if (fmt == 'Y-M-D hh:mm') { + let arr = date.split(' '); + if (arr.length != 2) return date; + return fmtDateCHN(arr[0], 'Y-M-D') + fmtDateCHN(arr[1], 'hh:mm'); + } else if (fmt == 'M-D hh:mm') { + let arr = date.split(' '); + if (arr.length != 2) return date; + return fmtDateCHN(arr[0], 'M-D') + ' ' + fmtDateCHN(arr[1], 'hh:mm'); + } else { + if (date.includes(' ')) date = date.split(' ')[0]; + + let arr = date.split('-'); + if (fmt == 'Y-M') //年月 + return arr[0] + '年' + Number(arr[1]) + '月'; + else if (fmt == 'M-D') //月日 + return arr[1] + '月' + Number(arr[2]) + '日'; + else if (fmt == 'Y') //年 + return arr[0] + '年'; + else + return arr[0] + '年' +Number(arr[1]) + '月' + Number(arr[2]) + '日'; + } + + +} + +/** + * 毫秒时间戳转时间格式 + * @param {*} unixtime 毫秒 + * @param {*} format Y-M-D h:m:s + * @param {*} diff 时区差异 毫秒 + */ +function timestamp2Time(unixtime, format = 'Y-M-D h:m:s', diff = 0) { + let formateArr = ['Y', 'M', 'D', 'h', 'm', 's']; + let returnArr = []; + let date = new Date(unixtime + diff); + returnArr.push(date.getFullYear()); + returnArr.push(formatNumber(date.getMonth() + 1)); + returnArr.push(formatNumber(date.getDate())); + returnArr.push(formatNumber(date.getHours())); + returnArr.push(formatNumber(date.getMinutes())); + returnArr.push(formatNumber(date.getSeconds())); + for (let i in returnArr) { + format = format.replace(formateArr[i], returnArr[i]); + } + return format; +} + + +function timestame2Ago(dateTimeStamp, fmt = 'Y-M-D', diff = 0) { //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。 + let minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示 + let hour = minute * 60; + let day = hour * 24; + let week = day * 7; + let month = day * 30; + let now = new Date().getTime(); //获取当前时间毫秒 + + let diffValue = now - dateTimeStamp; //时间差 + + if (diffValue < 0) { + return; + } + let minC = diffValue / minute; //计算时间差的分,时,天,周,月 + let hourC = diffValue / hour; + let dayC = diffValue / day; + + let result = ''; + + let weekC = diffValue / week; + let monthC = diffValue / month; + if (monthC >= 1 && monthC <= 3) { + result = ' ' + parseInt(monthC) + '月前' + } else if (weekC >= 1 && weekC <= 3) { + result = ' ' + parseInt(weekC) + '周前' + } else if (dayC >= 1 && dayC <= 6) { + result = ' ' + parseInt(dayC) + '天前' + } else if (hourC >= 1 && hourC <= 23) { + result = ' ' + parseInt(hourC) + '小时前' + } else if (minC >= 1 && minC <= 59) { + result = ' ' + parseInt(minC) + '分钟前' + } else if (diffValue >= 0 && diffValue <= minute) { + result = '刚刚' + } else { + result = timestamp2Time(dateTimeStamp, fmt, diff); + + } + return result; +} + +function formatNumber(n) { + n = n.toString() + return n[1] ? n : '0' + n +} + + +/** + * 时间转时间戳 + * @param {*} date 支持 Y-M-D h:m:s / Y-M-D + */ +function time2Timestamp(date) { + if (date.length < 10) { + let arr = date.split('-'); + if (arr[1].length == 1) arr[1] = '0' + arr[1]; + if (arr[2].length == 1) arr[2] = '0' + arr[2]; + date = arr[0] + '-' + arr[1] + '-' + arr[2]; + } + if (date.length == 10) date = date + ' 00:00:00'; + let d = new Date(date.replace(/-/g, '/')); + return d.getTime(); +} + +/** + * 获取当前时间戳/时间Y-M-D h:m:s + * @param {*} 时间格式 Y-M-D h:m:s + * @param {int} 时间步长 (秒) + */ +function time(fmt, step = 0) { + let t = 0; + if (util.isDefined(fmt)) { + let t = new Date().getTime() + step * 1000; + return timestamp2Time(t, fmt); + } + return new Date().getTime() + t * 1000; +} + +// 获取某天0点 +function getDayFirstTimestamp(timestamp) { + if (!timestamp) timestamp = time(); + return time2Timestamp(timestamp2Time(timestamp, 'Y-M-D')); +} + +/** + * 根据出生日期计算年龄周岁 传参格式为1996-06-08 + * @param {*} birth + */ +function getAge(birth, isMonth = false) { + var returnAge = ''; + var mouthAge = ''; + var arr = birth.split('-'); + var birthYear = arr[0]; + var birthMonth = arr[1]; + var birthDay = arr[2]; + var d = new Date(); + var nowYear = d.getFullYear(); + var nowMonth = d.getMonth() + 1; + var nowDay = d.getDate(); + if (nowYear == birthYear) { + // returnAge = 0; //同年 则为0岁 + var monthDiff = nowMonth - birthMonth; //月之差 + if (monthDiff < 0) {} else { + mouthAge = monthDiff + '个月'; + } + } else { + var ageDiff = nowYear - birthYear; //年之差 + if (ageDiff > 0) { + if (nowMonth == birthMonth) { + var dayDiff = nowDay - birthDay; //日之差 + if (dayDiff < 0) { + returnAge = ageDiff - 1 + '岁'; + } else { + returnAge = ageDiff + '岁'; + } + } else { + var monthDiff = nowMonth - birthMonth; //月之差 + if (monthDiff < 0) { + returnAge = ageDiff - 1 + '岁'; + } else { + mouthAge = monthDiff + '个月'; + returnAge = ageDiff + '岁'; + } + } + } else { + returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天 + } + } + if (isMonth) + return returnAge + mouthAge; //返回周岁年龄+月份 + else + return returnAge; +} + +/** + * 日期计算周几 + * @param {*} day 日期为输入日期,格式为 2013-03-10 + */ +function week(day) { + let arys1 = new Array(); + arys1 = day.split('-'); + let ssdate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]); + let week1 = String(ssdate.getDay()).replace("0", "日").replace("1", "一").replace("2", "二").replace("3", "三").replace("4", "四").replace("5", "五").replace("6", "六") //就是你要的星期几 + return "周" + week1; //就是你要的星期几 +} + +/** 获取某天所在某月第一天时间戳 */ +function getMonthFirstTimestamp(timestamp) { + let inDate = new Date(timestamp); + let year = inDate.getFullYear(); + let month = inDate.getMonth(); + return new Date(year, month, 1).getTime(); +} + +/** 获取某天所在某月最后一天时间戳 */ +function getMonthLastTimestamp(timestamp) { + let inDate = new Date(timestamp); + let year = inDate.getFullYear(); + let month = inDate.getMonth(); + return new Date(year, month + 1, 1).getTime() - 1; +} + +// 取得分钟时间戳 +function getNowMinTimestamp() { + let min = time('Y-M-D h:m') + ':00'; + let timestamp = time2Timestamp(min); + return { + min, + timestamp + } +} + + +// 获取当前日期所在周一 输入和返回格式=yyyy-mm-dd +function getFirstOfWeek(date) { + let now = new Date(date); + let nowTime = now.getTime(); + let day = now.getDay(); + if (day == 0) day = 7; + let oneDayTime = 24 * 60 * 60 * 1000; + let mondayTime = nowTime - (day - 1) * oneDayTime; + return timestamp2Time(mondayTime, 'Y-M-D'); +} + +// 获取当前日期所在周一 输入和返回格式=yyyy-mm-dd +function getLastOfWeek(date) { + let now = new Date(date); + let nowTime = now.getTime(); + let day = now.getDay(); + if (day == 0) day = 7; + let oneDayTime = 24 * 60 * 60 * 1000; + let sundayTime = nowTime + (7 - day) * oneDayTime; + return timestamp2Time(sundayTime, 'Y-M-D'); +} + +// 获取当前日期所在月第一天 输入和返回格式=yyyy-mm-dd +function getFirstOfMonth(date) { + let arr = date.split('-'); + return arr[0] + '-' + arr[1] + '-01'; +} + +// 获取当前日期所在月最后一天 输入和返回格式=yyyy-mm-dd +function getLastOfMonth(date) { + let now = new Date(date); + let y = now.getFullYear(); + let m = now.getMonth(); + let lastDay = new Date(y, m + 1, 0).getTime(); + return timestamp2Time(lastDay, 'Y-M-D'); +} + +/** + * 取倒计时(天时分秒) 支持时间戳或者Y-M-D/Y-M-D h:m:s + * @param {*} datetimeTo + * @param {*} flag 1=正 -1=负 + */ +function getTimeLeft(datetimeTo, flag = 1) { + let time1 = datetimeTo; + + if (String(datetimeTo).includes('-')) { + datetimeTo = String(datetimeTo); + if (!datetimeTo.includes(':')) + datetimeTo += ' 00:00:00'; + time1 = new Date(datetimeTo).getTime(); + } + + let time2 = new Date().getTime(); + let mss = time1 - time2; + + // 将时间差(毫秒)格式为:天时分秒 + let days = parseInt(mss / (1000 * 60 * 60 * 24)); + let hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + let minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60)); + let seconds = parseInt((mss % (1000 * 60)) / 1000); + + if (mss < 0 && mss < -86400 * 1000) { + (days != 0) ? days = -flag * days + "天": days = ''; + return days + "前"; + } else if (mss < 0) { + return "今天"; + } else { + (days != 0) ? days = flag * days + "天": days = ''; + (hours != 0) ? hours = flag * hours + "时": hours = ''; + (minutes != 0) ? minutes = flag * minutes + "分": minutes = ''; + return days + hours + minutes + flag * seconds + "秒" + } + +} + + +module.exports = { + fmtDateCHN, + simpleDate, + + getTimeLeft, + + getNowMinTimestamp, + + getMonthFirstTimestamp, + getMonthLastTimestamp, + + getDayFirstTimestamp, + + timestamp2Time, + timestame2Ago, + time2Timestamp, + time, + getAge, + week, //星期 + + getFirstOfWeek, + getLastOfWeek, + getFirstOfMonth, + getLastOfMonth +} \ No newline at end of file diff --git a/miniprogram/helper/validate.js b/miniprogram/helper/validate.js new file mode 100644 index 0000000..ecd582a --- /dev/null +++ b/miniprogram/helper/validate.js @@ -0,0 +1,630 @@ + /** + * Notes: 数据校验类库 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-01-07 07:48:00 + * +1 规则大循环 +2 规则内循环,取得数据项说明(默认空串),缺省值(默认空串),数据类型(默认String) +3 对比缺省值和数据类型 +4 获取表单名,并取值(若不存在,直接赋予对应的defVal) +5 检查数据类型: + 若传值为undefined/null, 且有默认值,赋予默认值 + Number先做正则判断再转为Num; + Arr/Obj/Bool 若不为undefined , 则判断类型; + String 包含Number,转为Str +6 规则内循环, 数据校验(服务端从第1位,客户端从第2位开始) + * object格式(注意双引号) {"cc":"sss"} + */ + const pageHelper = require('./page_helper.js'); + + const CHECK_OPEN = true; + const CHECK_SOURCE = 'client'; //client/admin + + /** + * 判断变量,参数,对象属性是否定义 + * @param {*} val + */ + function isDefined(val) { + // == 不能判断是否为null + if (val === undefined) + return false; + else + return true; + } + + function isNull(value) { + if (value === null || value === undefined) return true; + if (getDataType(value) == String && value === '') return true; + return false; + } + + function isStrAndArrNull(value) { + if (value === null || value === undefined) return true; + + let type = getDataType(value); + if (type == String && value === '') return true; + if (type == Array && value.length == 0) return true; + + return false; + } + + function isRealNull(value) { + if (value === null || value === undefined) return true; + + let type = getDataType(value); + if (type == String && value === '') return true; + if (type == Array && value.length == 0) return true; + if (type == Object && JSON.stringify(value) == '{}') return true; + + return false; + } + + function getDataType(value) { + if (value === null || value === undefined) return value; + return value.constructor; + } + + // 是否必填 + function checkRequired(value, desc = '') { + switch (getDataType(value)) { + case Object: + if (JSON.stringify(value) == '{}') + return desc + '不能为空obj'; + break; + case Array: + if (value.length == 0) + return desc + '不能为空arr'; + break; + case String: + if (value.length == 0) + return desc + '不能为空'; + break; + case null: + case undefined: + return desc + '不能为空'; + } + } + + // 校验字符/数组长度,校验数字大小 + function checkMin(value, min, desc = '') { + if (isStrAndArrNull(value)) return; + + min = Number(min); + switch (getDataType(value)) { + case Array: + if (value.length < min) + return desc + '不能少于' + min + '项'; + break; + case String: + if (value.length < min) + return desc + '不能少于' + min + '个字'; + break; + case Number: + if (value < min) + return desc + '不能小于' + min; + break; + } + }; + + // 校验字符/数组长度,校验数字大小 + function checkMax(value, max, desc = '') { + if (isStrAndArrNull(value)) return; + + max = Number(max); + switch (getDataType(value)) { + case Array: + if (value.length > max) + return desc + '不能多于' + max + '项'; + break; + case String: + if (value.length > max) + return desc + '不能多于' + max + '个字'; + break; + case Number: + if (value > max) + return desc + '不能大于' + max; + break; + } + }; + + // 校验字符/数组长度 + function checkLen(value, len, desc = '') { + if (isStrAndArrNull(value)) return; + + len = Number(len); + switch (getDataType(value)) { + case Array: + if (value.length != len) + return desc + '必须为' + len + '项'; + break; + case String: + if (value.length != len) + return desc + '必须为' + len + '个字'; + break; + } + }; + + function checkMobile(value, desc = '') { + if (isNull(value)) return; + + if (!/(^1[1|2|3|4|5|6|7|8|9][0-9]{9}$)/.test(value)) + return desc + '格式不正确'; + } + + function checkInt(value, desc = '') { + if (isNull(value)) return; + + if (!/^[0-9]+$/.test(value)) + return desc + '必须为数字'; + } + + function checkDigit(value, desc = '') { + if (isNull(value)) return; + + if (!/^\d+(\.\d+)?$/.test(value)) + return desc + '必须为数字或小数'; + } + + function checkLetter(value, desc = '') { + if (isNull(value)) return; + + if (!/^[A-Za-z]+$/.test(value)) + return desc + '必须为字母'; + } + + function checkMoney(value, desc = '') { + if (isNull(value)) return; + + if (!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)) + return desc + '必须为金额格式,例如2.00'; + } + + + function checkLetterNum(value, desc = '') { + if (isNull(value)) return; + + if (!/^\w+$/.test(value)) + return desc + '必须为字母,数字和下划线'; + } + + function checkId(value, desc = '', min = 1, max = 32) { + if (isNull(value)) return; + + min = Number(min); + max = Number(max); + + if (getDataType(value) != String) return desc + '必须为ID字符串格式'; + + if (value.length < min || value.length > max) return desc + '必须为ID格式'; + /*if (!/^\w+$/.test(value)) + return desc + '必须为ID格式';*/ + } + + // 邮箱 + function checkEmail(value, desc = '') { + if (isNull(value)) return; + + let reg = /^[A-Za-z0-9+]+[A-Za-z0-9\.\_\-+]*@([A-Za-z0-9\-]+\.)+[A-Za-z0-9]+$/; + if (!reg.test(value)) return desc + '必须为邮箱格式'; + } + + // 短日期,形如 (yyyy-mm-dd 2008-07-22) + function checkDate(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 10) return hint; + let r = value.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); + if (r == null) return hint; + let d = new Date(r[1], r[3] - 1, r[4]); + let chk = d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]; + if (!chk) return hint; + } + + // 年份,形如 (yyyy 2008) + function checkYear(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 4) return hint; + value += '-01-01'; + return checkDate(value, desc); + } + + // 年月,形如 (yyyy-mm 2008-01) + function checkYearMonth(value, desc = '') { + if (isNull(value)) return; + + let hint = '请选择' + desc; + if (value.length != 7) return hint; + + value += '-01'; + return checkDate(value, desc); + } + + // 短时间(时分秒),形如 (13:04:06) + function checkTime(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为时间格式'; + if (value.length != 8) return hint; + + let a = value.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); + if (a == null) return hint; + if (a[1] > 23 || a[3] > 59 || a[4] > 59) return hint; + } + + // 短时间(时分),形如 (hh:mm 13:04) + function checkHourMinute(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为时分时间格式'; + if (value.length != 5) return hint; + + value += ':01'; + return checkTime(value, desc); + } + + // 长时间,形如 (2008-07-22 13:04:06) + function checkDatimeTime(value, desc = '') { + if (isNull(value)) return; + + let hint = desc + '必须为完整时间格式'; + if (value.length != 19) return hint; + + var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; + var r = value.match(reg); + if (r == null) return hint; + var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]); + let chk = d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]; + if (!chk) return hint; + } + + function checkArray(value, desc = '') { + if (!Array.isArray(value)) + return desc + '填写错误arr'; + } + + function checkObject(value, desc = '') { + if (value.constructor != Object) + return desc + '填写错误obj'; + } + + function checkBoolean(value, desc = '') { + if (value.constructor != Boolean) + return desc + '填写错误bool'; + } + + // 枚举 ref=1,2,3,4格式 + function checkIn(value, ref, desc = '') { + if (isNull(value)) return; + + let type = getDataType(value); + if (type != String && type != Number) return desc + '填写范围错误'; + + let arr = String(ref).split(','); + if (!arr.includes(value) && !arr.includes(value + '')) + return desc + '填写范围错误'; + } + + function checkIds(value, desc) {} + + function checkString(value, desc) { + if (value.constructor != String) + return desc + '填写错误'; + } + + + function check(data, rules, that) { + let returnData = {}; + for (let k in rules) { + let arr = rules[k].split('|'); + + let desc = k; // 字段说明 + let defVal = undefined; // 缺省值 + let dataType = 'String'; //数据类型 + + if (!CHECK_OPEN) { // 不校验 + // 取值 + let val = data[formName]; + returnData[k] = val; + continue; + } + + // 小循环获取规则 + for (let i = 0; i < arr.length; i++) { + // 数据项说明 + if (arr[i].startsWith('name=')) { + desc = '「' + arr[i].replace('name=', '') + '」'; + continue; + } + + // 缺省值 + if (arr[i].startsWith('default=')) { + defVal = arr[i].replace('default=', '').trim(); + continue; + } + + // 数据类型 + switch (arr[i].toLowerCase()) { + case 'int': + case 'digit': + dataType = 'Number'; + break; + case 'array': + case 'arr': + dataType = 'Array'; + break; + case 'object': + case 'obj': + dataType = 'Object'; + break; + case 'bool': + case 'boolean': + dataType = 'Boolean'; + break; + } + } + + // 校验 + let formName = (CHECK_SOURCE == 'admin') ? k : arr[0]; // 表单名 admin/client + + // 取值 + let val = data[formName]; + + switch (dataType) { + case 'Array': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Array) + return _showError(desc + '默认值数组格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值数组格式错误', formName, that); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Array) + return _showError(desc + '数组格式错误', formName, that); + + break; + } + case 'Object': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Object) + return _showError(desc + '默认值对象格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值对象格式错误', formName, that); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Object) + return _showError(desc + '对象格式错误', formName, that); + + break; + } + case 'Boolean': { + if (defVal !== undefined) { + try { + defVal = JSON.parse(defVal); + + if (getDataType(defVal) != Boolean) + return _showError(desc + '默认值布尔格式错误', formName, that); + } catch (ex) { + return _showError(desc + '默认值布尔格式错误'); + } + } + if (val === null || val === undefined) val = defVal; + + if (val !== undefined && getDataType(val) != Boolean) + return _showError(desc + '布尔格式错误', formName, that); + + break; + } + case 'Number': { + if (checkDigit(defVal, desc + '默认值')) + return _showError(desc + '默认值格式错误', formName, that); + + if (val === null || val === undefined) val = defVal; + + if (val === undefined) break; + + if (val === '') //数字不能为空 + return _showError(desc + '不能为空', formName, that); + + let dataType = getDataType(val); + if (dataType == Object || dataType == Boolean || dataType == Array) + return _showError(desc + '必须为数字格式', formName, that); + + // 数字格式校验 + let result = checkDigit(val, desc); + if (result) return _showError(result, formName, that); + + val = Number(val); + + break; + } + case 'String': { + let dataType = getDataType(val); + if (dataType == Object || dataType == Boolean || dataType == Array) + return _showError(desc + '必须为字符串格式', formName, that); + + if (val === null || val === undefined) val = defVal; + + if (val === undefined) break; + + try { + val = String(val).trim(); // 数字会被转为字符串 + } catch (ex) { + return _showError(desc + '必须为字符串格式', formName, that); + } + break; + } + } + + returnData[k] = val; + + let fromStep = (CHECK_SOURCE == 'admin') ? 0 : 1; //admin/client + for (let i = fromStep; i < arr.length; i++) { + let result = ''; + + let rules = arr[i].split(':'); + let ruleName = rules[0]; + + // 空 且非必填的 不校验 + if (ruleName != 'must' && val === undefined) continue; + + switch (ruleName) { + case 'must': + result = checkRequired(val, desc); + break; + case 'str': + case 'string': + result = checkString(val, desc); + break; + case 'arr': + case 'array': + result = checkArray(val, desc); + break; + case 'obj': + case 'object': + result = checkObject(val, desc); + break; + case 'bool': + case 'boolean': + result = checkBoolean(val, desc); + break; + case 'money': + result = checkMoney(val, desc); + break; + case 'year': + result = checkYear(val, desc); + break; + case 'yearmonth': + result = checkYearMonth(val, desc); + break; + case 'date': + result = checkDate(val, desc); + break; + case 'time': + result = checkTime(val, desc); + break; + case 'hourminute': + result = checkHourMinute(val, desc); + break; + case 'datetime': + result = checkDatimeTime(val, desc); + break; + case 'min': + result = checkMin(val, Number(rules[1]), desc); + break; + case 'max': + result = checkMax(val, Number(rules[1]), desc); + break; + case 'len': + result = checkLen(val, Number(rules[1]), desc); + break; + case 'in': + result = checkIn(val, rules[1], desc); + break; + case 'email': + result = checkEmail(val, desc); + break; + case 'mobile': + result = checkMobile(val, desc); + break; + case 'int': // 正整数 + result = checkInt(val, desc); + break; + case 'digit': // 正小整数 + result = checkDigit(val, desc); + break; + case 'id': + result = checkId(val, desc); + break; + case 'letter': + result = checkLetter(val, desc); + break; + case 'letter_num': + result = checkLetterNum(val, desc); + break; + } + + if (result) { + _showError(result, formName, that); + return false; + } else { + + if (that) { + if (CHECK_SOURCE == 'client') { + // 删除原有的自动聚焦 //admin/client + if (isDefined(that.data[formName + 'Focus'])) { + that.setData({ //TODO delete? + [formName + 'Focus']: false + }); + } + } + } + } + + } + } + return returnData; + } + + function _showError(result, formName, that) { //admin/client + if (CHECK_SOURCE == 'client') { + wx.showModal({ + title: '温馨提示', + content: result, + showCancel: false, + success(res) { + // 自动聚焦 + if (that) { + pageHelper.anchor(formName, that); + + that.setData({ + [formName + 'Focus']: result, + }); + } + + } + }); + } else { + throw new AppError(result, appCode.DATA); + } + + } + + module.exports = { + check, + + checkString, + checkArray, + checkObject, + checkMoney, + checkYear, + checkYearMonth, + checkDate, + checkTime, + checkHourMinute, + checkDatimeTime, + checkMin, + checkMax, + checkLen, + checkIn, + checkEmail, + checkMobile, + checkInt, // 正小整数 + checkDigit, + checkId, + checkLetter, + checkLetterNum, + + } \ No newline at end of file diff --git a/miniprogram/images/default_cover_pic.gif b/miniprogram/images/default_cover_pic.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8528b2b426721ba84c037f30adfe186433107e7 GIT binary patch literal 3206 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 literal 0 HcmV?d00001 diff --git a/miniprogram/lib/tools/base64_lib.js b/miniprogram/lib/tools/base64_lib.js new file mode 100644 index 0000000..d4778c8 --- /dev/null +++ b/miniprogram/lib/tools/base64_lib.js @@ -0,0 +1,135 @@ +function Base64() { + + // private property + var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + + // public method for encoding + this.encode = function (input) { + var output = ""; + var chr1, chr2, chr3, enc1, enc2, enc3, enc4; + var i = 0; + input = _utf8_encode(input); + while (i < input.length) { + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + enc1 = chr1 >> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + enc4 = chr3 & 63; + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + output = output + + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + + _keyStr.charAt(enc3) + _keyStr.charAt(enc4); + } + return output; + } + + // public method for decoding + this.decode = function (input) { + var output = ""; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + while (i < input.length) { + enc1 = _keyStr.indexOf(input.charAt(i++)); + enc2 = _keyStr.indexOf(input.charAt(i++)); + enc3 = _keyStr.indexOf(input.charAt(i++)); + enc4 = _keyStr.indexOf(input.charAt(i++)); + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + output = output + String.fromCharCode(chr1); + if (enc3 != 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 != 64) { + output = output + String.fromCharCode(chr3); + } + } + output = _utf8_decode(output); + return output; + } + + // private method for UTF-8 encoding + var _utf8_encode = function (string) { + string = string.replace(/\r\n/g, "\n"); + var utftext = ""; + for (var n = 0; n < string.length; n++) { + var c = string.charCodeAt(n); + if (c < 128) { + utftext += String.fromCharCode(c); + } else if ((c > 127) && (c < 2048)) { + utftext += String.fromCharCode((c >> 6) | 192); + utftext += String.fromCharCode((c & 63) | 128); + } else { + utftext += String.fromCharCode((c >> 12) | 224); + utftext += String.fromCharCode(((c >> 6) & 63) | 128); + utftext += String.fromCharCode((c & 63) | 128); + } + + } + return utftext; + } + + // private method for UTF-8 decoding + var _utf8_decode = function (utftext) { + var string = ""; + var i = 0; + var c = c1 = c2 = 0; + while (i < utftext.length) { + c = utftext.charCodeAt(i); + if (c < 128) { + string += String.fromCharCode(c); + i++; + } else if ((c > 191) && (c < 224)) { + c2 = utftext.charCodeAt(i + 1); + string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + i += 2; + } else { + c2 = utftext.charCodeAt(i + 1); + c3 = utftext.charCodeAt(i + 2); + string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + i += 3; + } + } + return string; + } +} + + +var base = new Base64(); + +function encode(str) { + return base.encode(str); +} + +function decode(str) { + return base.decode(str); +} + +function safeEncode(str) { + + return encode(str).replace(/[\+=\/]/g, function (c) { + switch (c) { + case '+': + return '-'; + case '=': + return ''; + case '/': + return '_'; + } + }) +} + + +export { + encode, + decode, + safeEncode +} \ No newline at end of file diff --git a/miniprogram/lib/tools/lunar_lib.js b/miniprogram/lib/tools/lunar_lib.js new file mode 100644 index 0000000..b2ec1b7 --- /dev/null +++ b/miniprogram/lib/tools/lunar_lib.js @@ -0,0 +1,306 @@ +/* 公历转农历代码思路: +1、建立农历年份查询表 +2、计算输入公历日期与公历基准的相差天数 +3、从农历基准开始遍历农历查询表,计算自农历基准之后每一年的天数,并用相差天数依次相减,确定农历年份 +4、利用剩余相差天数以及农历每个月的天数确定农历月份 +5、利用剩余相差天数确定农历哪一天 +https://github.com/xm2by/fragment + */ + +//农历节日 +const LUNAR_HOLIDAY = { + '0101': '春节', + '0115': '元宵节', + '0505': '端午节', + '0707': '七夕', + '0715': '中元节', + '0815': '中秋节', + '0909': '重阳节', + '1208': '腊八节', + '1224': '小年' +}; + +// 公历节日 +const PUBLIC_HOLIDAY = { + '0101': '元旦', + '0214': '情人节', + '0307': '女生节', + '0308': '妇女节', + '0312': '植树节', + '0314': '白色情人', + '0315': '消费者日', + '0401': '愚人节', + '0404': '复活节', + '0501': '劳动节', + '0504': '青年节', + '0510': '母亲节', + '0512': '护士节', + '0601': '儿童节', + '0620': '父亲节', + '0701': '建党节', + '0801': '建军节', + '0910': '教师节', + '0928': '孔子诞辰', + '1001': '国庆节', + '1006': '老人节', + '1024': '联合国日', + '1101': '万圣节', + '1125': '感恩节', + '1224': '平安夜', + '1225': '圣诞节' +}; + +const SOLAR_STERM = ['小寒', '大寒', '立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪', '冬至']; + + +const SOLAR_STERM_INFO = [0, 1272480000, 2548020000, 3830160000, 5120220000, 6420840000, + 7732020000, 9055260000, 10388940000, 11733060000, 13084320000, 14441580000, + 15800580000, 17159340000, 18513780000, 19861980000, 21201000000, 22529640000, + 23846820000, 25152600000, 26447700000, 27733440000, 29011920000, 30285480000 +]; + +// 农历1949-2100年查询表 +const LUNAR_YEAR_ARR = [ + 0x0b557, //1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, //1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, //1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, //1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, //1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, //1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, //2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, //2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, //2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, //2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, //2040-2049 + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, //2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, //2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, //2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, //2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, //2090-2099 + 0x0d520 //2100 +]; +const LUNAR_MONTH = ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '冬', '腊']; +const LUNAR_DAY = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '初', '廿']; +const TIAN_GAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; +const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; + + +// 公历转农历函数 +function sloarToLunar(sy, sm, sd) { + if (typeof (sy) == 'string') { + let arr = sy.split('-'); + sy = Number(arr[0]); + sm = Number(arr[1]); + sd = Number(arr[2]); + } + + // 公历节日 + let publicHoliday = (sm > 9 ? sm : '0' + sm) + '' + (sd > 9 ? sd : '0' + sd); + if (PUBLIC_HOLIDAY.hasOwnProperty(publicHoliday)) { + return PUBLIC_HOLIDAY[publicHoliday]; + } + + // 输入的月份减1处理 + sm -= 1; + + // 计算与公历基准的相差天数 + // Date.UTC()返回的是距离公历1970年1月1日的毫秒数,传入的月份需要减1 + let daySpan = (Date.UTC(sy, sm, sd) - Date.UTC(1949, 0, 29)) / (24 * 60 * 60 * 1000) + 1; + let ly, lm, ld; + // 确定输出的农历年份 + for (let j = 0; j < LUNAR_YEAR_ARR.length; j++) { + daySpan -= lunarYearDays(LUNAR_YEAR_ARR[j]); + if (daySpan <= 0) { + ly = 1949 + j; + // 获取农历年份确定后的剩余天数 + daySpan += lunarYearDays(LUNAR_YEAR_ARR[j]); + break + } + } + + // 确定输出的农历月份 + for (let k = 0; k < lunarYearMonths(LUNAR_YEAR_ARR[ly - 1949]).length; k++) { + daySpan -= lunarYearMonths(LUNAR_YEAR_ARR[ly - 1949])[k]; + if (daySpan <= 0) { + // 有闰月时,月份的数组长度会变成13,因此,当闰月月份小于等于k时,lm不需要加1 + if (hasLeapMonth(LUNAR_YEAR_ARR[ly - 1949]) && hasLeapMonth(LUNAR_YEAR_ARR[ly - 1949]) <= k) { + if (hasLeapMonth(LUNAR_YEAR_ARR[ly - 1949]) < k) { + lm = k; + } else if (hasLeapMonth(LUNAR_YEAR_ARR[ly - 1949]) === k) { + lm = '闰' + k; + } else { + lm = k + 1; + } + } else { + lm = k + 1; + } + // 获取农历月份确定后的剩余天数 + daySpan += lunarYearMonths(LUNAR_YEAR_ARR[ly - 1949])[k]; + break + } + } + + // 确定输出农历哪一天 + ld = daySpan; + + //农历节日 + let paraHoliday = (lm > 9 ? lm : '0' + lm) + '' + (ld > 9 ? ld : '0' + ld); + if (LUNAR_HOLIDAY.hasOwnProperty(paraHoliday)) { + return LUNAR_HOLIDAY[paraHoliday]; + } + + // TODO:除夕 + /* + if (lm == 12) { + var theLastDay = lDate.isLeap ? leapDays(y) : monthDays(y, m); //农历当月最後一天 + if (theLastDay == ld) { + return "除夕"; + } + }*/ + + // 农历节气 + let temp = getSolarTerm(sy, sm + 1, sd) + if (temp) return temp; + + + // 将计算出来的农历月份转换成汉字月份,闰月需要在前面加上闰字 + if (hasLeapMonth(LUNAR_YEAR_ARR[ly - 1949]) && (typeof (lm) === 'string' && lm.indexOf('闰') > -1)) { + lm = `闰${LUNAR_MONTH[/\d/.exec(lm) - 1]}` + } else { + lm = LUNAR_MONTH[lm - 1]; + } + + // 将计算出来的农历年份转换为天干地支年 + //ly = getTianGan(ly) + getDiZhi(ly); + ly = ''; + + // 将计算出来的农历天数转换成汉字 + if (ld < 11) { + ld = `${LUNAR_DAY[10]}${LUNAR_DAY[ld-1]}` + } else if (ld > 10 && ld < 20) { + ld = `${LUNAR_DAY[9]}${LUNAR_DAY[ld-11]}` + } else if (ld === 20) { + ld = `${LUNAR_DAY[1]}${LUNAR_DAY[9]}` + } else if (ld > 20 && ld < 30) { + ld = `${LUNAR_DAY[11]}${LUNAR_DAY[ld-21]}` + } else if (ld === 30) { + ld = `${LUNAR_DAY[2]}${LUNAR_DAY[9]}` + } + + //console.log(ly, lm, ld); + if (ld == '初一') ld = lm + '月'; + + /* + return { + lunarYear: ly, + LUNAR_MONTH: lm, + LUNAR_DAY: ld, + }*/ + return ld; +} + +// 计算农历年是否有闰月,参数为存储农历年的16进制 +// 农历年份信息用16进制存储,其中16进制的最后1位可以用于判断是否有闰月 +function hasLeapMonth(ly) { + // 获取16进制的最后1位,需要用到&与运算符 + if (ly & 0xf) { + return ly & 0xf + } else { + return false + } +} + +// 如果有闰月,计算农历闰月天数,参数为存储农历年的16进制 +// 农历年份信息用16进制存储,其中16进制的第1位(0x除外)可以用于表示闰月是大月还是小月 +function leapMonthDays(ly) { + if (hasLeapMonth(ly)) { + // 获取16进制的第1位(0x除外) + return (ly & 0xf0000) ? 30 : 29 + } else { + return 0 + } +} + +// 计算农历一年的总天数,参数为存储农历年的16进制 +// 农历年份信息用16进制存储,其中16进制的第2-4位(0x除外)可以用于表示正常月是大月还是小月 +function lunarYearDays(ly) { + let totalDays = 0; + + // 获取正常月的天数,并累加 + // 获取16进制的第2-4位,需要用到>>移位运算符 + for (let i = 0x8000; i > 0x8; i >>= 1) { + let monthDays = (ly & i) ? 30 : 29; + totalDays += monthDays; + } + // 如果有闰月,需要把闰月的天数加上 + if (hasLeapMonth(ly)) { + totalDays += leapMonthDays(ly); + } + + return totalDays +} + +// 获取农历每个月的天数 +// 参数需传入16进制数值 +function lunarYearMonths(ly) { + let monthArr = []; + + // 获取正常月的天数,并添加到monthArr数组中 + // 获取16进制的第2-4位,需要用到>>移位运算符 + for (let i = 0x8000; i > 0x8; i >>= 1) { + monthArr.push((ly & i) ? 30 : 29); + } + // 如果有闰月,需要把闰月的天数加上 + if (hasLeapMonth(ly)) { + monthArr.splice(hasLeapMonth(ly), 0, leapMonthDays(ly)); + } + + return monthArr +} + +// 将农历年转换为天干,参数为农历年 +function getTianGan(ly) { + let tianGanKey = (ly - 3) % 10; + if (tianGanKey === 0) tianGanKey = 10; + return TIAN_GAN[tianGanKey - 1] +} + +// 将农历年转换为地支,参数为农历年 +function getDiZhi(ly) { + let diZhiKey = (ly - 3) % 12; + if (diZhiKey === 0) diZhiKey = 12; + return DIZHI[diZhiKey - 1] +} + +/** + * 节气(参数为公历) + * @param {*} sy + * @param {*} sm + * @param {*} sd + */ +function getSolarTerm(sy, sm, sd) { + sm -= 1; + let solarTermStr = ""; + //月份乘2是因为每月平均2节气对应二十四节气加一考虑存在闰月 + let tmp1 = new Date((31556925974.7 * (sy - 1900) + SOLAR_STERM_INFO[sm * 2 + 1]) + Date.UTC(1900, 0, 6, 2, 5)); + let tmp2 = tmp1.getUTCDate(); + if (tmp2 == sd) solarTermStr = SOLAR_STERM[sm * 2 + 1]; + tmp1 = new Date((31556925974.7 * (sy - 1900) + SOLAR_STERM_INFO[sm * 2]) + Date.UTC(1900, 0, 6, 2, 5)); + tmp2 = tmp1.getUTCDate(); + if (tmp2 == sd) solarTermStr = SOLAR_STERM[sm * 2]; + if (sd > 1) { + sd -= 1; + } else { + sm -= 1; + sd = 31; + if (sm < 0) { + sy -= 1; + sm = 11; + } + } + return solarTermStr; +} + +module.exports = { + sloarToLunar +} \ No newline at end of file diff --git a/miniprogram/lib/tools/qrcode_lib.js b/miniprogram/lib/tools/qrcode_lib.js new file mode 100644 index 0000000..6e3336f --- /dev/null +++ b/miniprogram/lib/tools/qrcode_lib.js @@ -0,0 +1,1604 @@ +//--------------------------------------------------------------------- +/* + * @demoURL: https://github.com/Pudon/weapp-qrcode + */ +//--------------------------------------------------------------------- + +/** + * qrcode + * @param typeNumber 1 to 40 Version + * @param errorCorrectLevel 'L','M','Q','H' + */ +var qrcode = function(typeNumber, errorCorrectLevel) { + + var PAD0 = 0xEC; + var PAD1 = 0x11; + + var _typeNumber = typeNumber; + var _errorCorrectLevel = QRErrorCorrectLevel[errorCorrectLevel]; + var _modules = null; + var _moduleCount = 0; + var _dataCache = null; + var _dataList = new Array(); + + var _this = {}; + + var makeImpl = function(test, maskPattern) { + + _moduleCount = _typeNumber * 4 + 17; + _modules = function(moduleCount) { + var modules = new Array(moduleCount); + for (var row = 0; row < moduleCount; row += 1) { + modules[row] = new Array(moduleCount); + for (var col = 0; col < moduleCount; col += 1) { + modules[row][col] = null; + } + } + return modules; + }(_moduleCount); + + setupPositionProbePattern(0, 0); + setupPositionProbePattern(_moduleCount - 7, 0); + setupPositionProbePattern(0, _moduleCount - 7); + setupPositionAdjustPattern(); + setupTimingPattern(); + setupTypeInfo(test, maskPattern); + + if (_typeNumber >= 7) { + setupTypeNumber(test); + } + + if (_dataCache == null) { + _dataCache = createData(_typeNumber, _errorCorrectLevel, _dataList); + } + + mapData(_dataCache, maskPattern); + }; + + var setupPositionProbePattern = function(row, col) { + + for (var r = -1; r <= 7; r += 1) { + + if (row + r <= -1 || _moduleCount <= row + r) continue; + + for (var c = -1; c <= 7; c += 1) { + + if (col + c <= -1 || _moduleCount <= col + c) continue; + + if ( (0 <= r && r <= 6 && (c == 0 || c == 6) ) + || (0 <= c && c <= 6 && (r == 0 || r == 6) ) + || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) { + _modules[row + r][col + c] = true; + } else { + _modules[row + r][col + c] = false; + } + } + } + }; + + var getBestMaskPattern = function() { + + var minLostPoint = 0; + var pattern = 0; + + for (var i = 0; i < 8; i += 1) { + + makeImpl(true, i); + + var lostPoint = QRUtil.getLostPoint(_this); + + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + } + } + + return pattern; + }; + + var setupTimingPattern = function() { + + for (var r = 8; r < _moduleCount - 8; r += 1) { + if (_modules[r][6] != null) { + continue; + } + _modules[r][6] = (r % 2 == 0); + } + + for (var c = 8; c < _moduleCount - 8; c += 1) { + if (_modules[6][c] != null) { + continue; + } + _modules[6][c] = (c % 2 == 0); + } + }; + + var setupPositionAdjustPattern = function() { + + var pos = QRUtil.getPatternPosition(_typeNumber); + + for (var i = 0; i < pos.length; i += 1) { + + for (var j = 0; j < pos.length; j += 1) { + + var row = pos[i]; + var col = pos[j]; + + if (_modules[row][col] != null) { + continue; + } + + for (var r = -2; r <= 2; r += 1) { + + for (var c = -2; c <= 2; c += 1) { + + if (r == -2 || r == 2 || c == -2 || c == 2 + || (r == 0 && c == 0) ) { + _modules[row + r][col + c] = true; + } else { + _modules[row + r][col + c] = false; + } + } + } + } + } + }; + + var setupTypeNumber = function(test) { + + var bits = QRUtil.getBCHTypeNumber(_typeNumber); + + for (var i = 0; i < 18; i += 1) { + var mod = (!test && ( (bits >> i) & 1) == 1); + _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod; + } + + for (var i = 0; i < 18; i += 1) { + var mod = (!test && ( (bits >> i) & 1) == 1); + _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }; + + var setupTypeInfo = function(test, maskPattern) { + + var data = (_errorCorrectLevel << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + + // vertical + for (var i = 0; i < 15; i += 1) { + + var mod = (!test && ( (bits >> i) & 1) == 1); + + if (i < 6) { + _modules[i][8] = mod; + } else if (i < 8) { + _modules[i + 1][8] = mod; + } else { + _modules[_moduleCount - 15 + i][8] = mod; + } + } + + // horizontal + for (var i = 0; i < 15; i += 1) { + + var mod = (!test && ( (bits >> i) & 1) == 1); + + if (i < 8) { + _modules[8][_moduleCount - i - 1] = mod; + } else if (i < 9) { + _modules[8][15 - i - 1 + 1] = mod; + } else { + _modules[8][15 - i - 1] = mod; + } + } + + // fixed module + _modules[_moduleCount - 8][8] = (!test); + }; + + var mapData = function(data, maskPattern) { + + var inc = -1; + var row = _moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + var maskFunc = QRUtil.getMaskFunction(maskPattern); + + for (var col = _moduleCount - 1; col > 0; col -= 2) { + + if (col == 6) col -= 1; + + while (true) { + + for (var c = 0; c < 2; c += 1) { + + if (_modules[row][col - c] == null) { + + var dark = false; + + if (byteIndex < data.length) { + dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1); + } + + var mask = maskFunc(row, col - c); + + if (mask) { + dark = !dark; + } + + _modules[row][col - c] = dark; + bitIndex -= 1; + + if (bitIndex == -1) { + byteIndex += 1; + bitIndex = 7; + } + } + } + + row += inc; + + if (row < 0 || _moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + }; + + var createBytes = function(buffer, rsBlocks) { + + var offset = 0; + + var maxDcCount = 0; + var maxEcCount = 0; + + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + + for (var r = 0; r < rsBlocks.length; r += 1) { + + var dcCount = rsBlocks[r].dataCount; + var ecCount = rsBlocks[r].totalCount - dcCount; + + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + + dcdata[r] = new Array(dcCount); + + for (var i = 0; i < dcdata[r].length; i += 1) { + dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset]; + } + offset += dcCount; + + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1); + + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i += 1) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0; + } + } + + var totalCodeCount = 0; + for (var i = 0; i < rsBlocks.length; i += 1) { + totalCodeCount += rsBlocks[i].totalCount; + } + + var data = new Array(totalCodeCount); + var index = 0; + + for (var i = 0; i < maxDcCount; i += 1) { + for (var r = 0; r < rsBlocks.length; r += 1) { + if (i < dcdata[r].length) { + data[index] = dcdata[r][i]; + index += 1; + } + } + } + + for (var i = 0; i < maxEcCount; i += 1) { + for (var r = 0; r < rsBlocks.length; r += 1) { + if (i < ecdata[r].length) { + data[index] = ecdata[r][i]; + index += 1; + } + } + } + + return data; + }; + + var createData = function(typeNumber, errorCorrectLevel, dataList) { + + var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel); + + var buffer = qrBitBuffer(); + + for (var i = 0; i < dataList.length; i += 1) { + var data = dataList[i]; + buffer.put(data.getMode(), 4); + buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) ); + data.write(buffer); + } + + // calc num max data. + var totalDataCount = 0; + for (var i = 0; i < rsBlocks.length; i += 1) { + totalDataCount += rsBlocks[i].dataCount; + } + + if (buffer.getLengthInBits() > totalDataCount * 8) { + throw new Error('code length overflow. (' + + buffer.getLengthInBits() + + '>' + + totalDataCount * 8 + + ')'); + } + + // end code + if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { + buffer.put(0, 4); + } + + // padding + while (buffer.getLengthInBits() % 8 != 0) { + buffer.putBit(false); + } + + // padding + while (true) { + + if (buffer.getLengthInBits() >= totalDataCount * 8) { + break; + } + buffer.put(PAD0, 8); + + if (buffer.getLengthInBits() >= totalDataCount * 8) { + break; + } + buffer.put(PAD1, 8); + } + + return createBytes(buffer, rsBlocks); + }; + + _this.addData = function(data) { + var newData = qr8BitByte(data); + _dataList.push(newData); + _dataCache = null; + }; + + _this.isDark = function(row, col) { + if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) { + throw new Error(row + ',' + col); + } + return _modules[row][col]; + }; + + _this.getModuleCount = function() { + return _moduleCount; + }; + + _this.make = function() { + makeImpl(false, getBestMaskPattern() ); + }; + + _this.createTableTag = function(cellSize, margin) { + + cellSize = cellSize || 2; + margin = (typeof margin == 'undefined')? cellSize * 4 : margin; + + var qrHtml = ''; + + qrHtml += ''; + qrHtml += ''; + + for (var r = 0; r < _this.getModuleCount(); r += 1) { + + qrHtml += ''; + + for (var c = 0; c < _this.getModuleCount(); c += 1) { + qrHtml += ''; + } + + qrHtml += ''; + qrHtml += '
'; + } + + qrHtml += '
'; + + return qrHtml; + }; + + _this.createImgTag = function(cellSize, margin, size) { + + cellSize = cellSize || 2; + margin = (typeof margin == 'undefined')? cellSize * 4 : margin; + + var min = margin; + var max = _this.getModuleCount() * cellSize + margin; + + return createImgTag(size, size, function(x, y) { + if (min <= x && x < max && min <= y && y < max) { + var c = Math.floor( (x - min) / cellSize); + var r = Math.floor( (y - min) / cellSize); + return _this.isDark(r, c)? 0 : 1; + } else { + return 1; + } + } ); + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// qrcode.stringToBytes +//--------------------------------------------------------------------- + +qrcode.stringToBytes = function(s) { + var bytes = new Array(); + for (var i = 0; i < s.length; i += 1) { + var c = s.charCodeAt(i); + bytes.push(c & 0xff); + } + return bytes; +}; + +//--------------------------------------------------------------------- +// qrcode.createStringToBytes +//--------------------------------------------------------------------- + +/** + * @param unicodeData base64 string of byte array. + * [16bit Unicode],[16bit Bytes], ... + * @param numChars + */ +qrcode.createStringToBytes = function(unicodeData, numChars) { + + // create conversion map. + + var unicodeMap = function() { + + var bin = base64DecodeInputStream(unicodeData); + var read = function() { + var b = bin.read(); + if (b == -1) throw new Error(); + return b; + }; + + var count = 0; + var unicodeMap = {}; + while (true) { + var b0 = bin.read(); + if (b0 == -1) break; + var b1 = read(); + var b2 = read(); + var b3 = read(); + var k = String.fromCharCode( (b0 << 8) | b1); + var v = (b2 << 8) | b3; + unicodeMap[k] = v; + count += 1; + } + if (count != numChars) { + throw new Error(count + ' != ' + numChars); + } + + return unicodeMap; + }(); + + var unknownChar = '?'.charCodeAt(0); + + return function(s) { + var bytes = new Array(); + for (var i = 0; i < s.length; i += 1) { + var c = s.charCodeAt(i); + if (c < 128) { + bytes.push(c); + } else { + var b = unicodeMap[s.charAt(i)]; + if (typeof b == 'number') { + if ( (b & 0xff) == b) { + // 1byte + bytes.push(b); + } else { + // 2bytes + bytes.push(b >>> 8); + bytes.push(b & 0xff); + } + } else { + bytes.push(unknownChar); + } + } + } + return bytes; + }; +}; + +//--------------------------------------------------------------------- +// QRMode +//--------------------------------------------------------------------- + +var QRMode = { + MODE_NUMBER : 1 << 0, + MODE_ALPHA_NUM : 1 << 1, + MODE_8BIT_BYTE : 1 << 2, + MODE_KANJI : 1 << 3 +}; + +//--------------------------------------------------------------------- +// QRErrorCorrectLevel +//--------------------------------------------------------------------- + +var QRErrorCorrectLevel = { + L : 1, + M : 0, + Q : 3, + H : 2 +}; + +//--------------------------------------------------------------------- +// QRMaskPattern +//--------------------------------------------------------------------- + +var QRMaskPattern = { + PATTERN000 : 0, + PATTERN001 : 1, + PATTERN010 : 2, + PATTERN011 : 3, + PATTERN100 : 4, + PATTERN101 : 5, + PATTERN110 : 6, + PATTERN111 : 7 +}; + +//--------------------------------------------------------------------- +// QRUtil +//--------------------------------------------------------------------- + +var QRUtil = function() { + + var PATTERN_POSITION_TABLE = [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ]; + var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0); + var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0); + var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1); + + var _this = {}; + + var getBCHDigit = function(data) { + var digit = 0; + while (data != 0) { + digit += 1; + data >>>= 1; + } + return digit; + }; + + _this.getBCHTypeInfo = function(data) { + var d = data << 10; + while (getBCHDigit(d) - getBCHDigit(G15) >= 0) { + d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) ); + } + return ( (data << 10) | d) ^ G15_MASK; + }; + + _this.getBCHTypeNumber = function(data) { + var d = data << 12; + while (getBCHDigit(d) - getBCHDigit(G18) >= 0) { + d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) ); + } + return (data << 12) | d; + }; + + _this.getPatternPosition = function(typeNumber) { + return PATTERN_POSITION_TABLE[typeNumber - 1]; + }; + + _this.getMaskFunction = function(maskPattern) { + + switch (maskPattern) { + + case QRMaskPattern.PATTERN000 : + return function(i, j) { return (i + j) % 2 == 0; }; + case QRMaskPattern.PATTERN001 : + return function(i, j) { return i % 2 == 0; }; + case QRMaskPattern.PATTERN010 : + return function(i, j) { return j % 3 == 0; }; + case QRMaskPattern.PATTERN011 : + return function(i, j) { return (i + j) % 3 == 0; }; + case QRMaskPattern.PATTERN100 : + return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; }; + case QRMaskPattern.PATTERN101 : + return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; }; + case QRMaskPattern.PATTERN110 : + return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; }; + case QRMaskPattern.PATTERN111 : + return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; }; + + default : + throw new Error('bad maskPattern:' + maskPattern); + } + }; + + _this.getErrorCorrectPolynomial = function(errorCorrectLength) { + var a = qrPolynomial([1], 0); + for (var i = 0; i < errorCorrectLength; i += 1) { + a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) ); + } + return a; + }; + + _this.getLengthInBits = function(mode, type) { + + if (1 <= type && type < 10) { + + // 1 - 9 + + switch(mode) { + case QRMode.MODE_NUMBER : return 10; + case QRMode.MODE_ALPHA_NUM : return 9; + case QRMode.MODE_8BIT_BYTE : return 8; + case QRMode.MODE_KANJI : return 8; + default : + throw new Error('mode:' + mode); + } + + } else if (type < 27) { + + // 10 - 26 + + switch(mode) { + case QRMode.MODE_NUMBER : return 12; + case QRMode.MODE_ALPHA_NUM : return 11; + case QRMode.MODE_8BIT_BYTE : return 16; + case QRMode.MODE_KANJI : return 10; + default : + throw new Error('mode:' + mode); + } + + } else if (type < 41) { + + // 27 - 40 + + switch(mode) { + case QRMode.MODE_NUMBER : return 14; + case QRMode.MODE_ALPHA_NUM : return 13; + case QRMode.MODE_8BIT_BYTE : return 16; + case QRMode.MODE_KANJI : return 12; + default : + throw new Error('mode:' + mode); + } + + } else { + throw new Error('type:' + type); + } + }; + + _this.getLostPoint = function(qrcode) { + + var moduleCount = qrcode.getModuleCount(); + + var lostPoint = 0; + + // LEVEL1 + + for (var row = 0; row < moduleCount; row += 1) { + for (var col = 0; col < moduleCount; col += 1) { + + var sameCount = 0; + var dark = qrcode.isDark(row, col); + + for (var r = -1; r <= 1; r += 1) { + + if (row + r < 0 || moduleCount <= row + r) { + continue; + } + + for (var c = -1; c <= 1; c += 1) { + + if (col + c < 0 || moduleCount <= col + c) { + continue; + } + + if (r == 0 && c == 0) { + continue; + } + + if (dark == qrcode.isDark(row + r, col + c) ) { + sameCount += 1; + } + } + } + + if (sameCount > 5) { + lostPoint += (3 + sameCount - 5); + } + } + }; + + // LEVEL2 + + for (var row = 0; row < moduleCount - 1; row += 1) { + for (var col = 0; col < moduleCount - 1; col += 1) { + var count = 0; + if (qrcode.isDark(row, col) ) count += 1; + if (qrcode.isDark(row + 1, col) ) count += 1; + if (qrcode.isDark(row, col + 1) ) count += 1; + if (qrcode.isDark(row + 1, col + 1) ) count += 1; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + } + + // LEVEL3 + + for (var row = 0; row < moduleCount; row += 1) { + for (var col = 0; col < moduleCount - 6; col += 1) { + if (qrcode.isDark(row, col) + && !qrcode.isDark(row, col + 1) + && qrcode.isDark(row, col + 2) + && qrcode.isDark(row, col + 3) + && qrcode.isDark(row, col + 4) + && !qrcode.isDark(row, col + 5) + && qrcode.isDark(row, col + 6) ) { + lostPoint += 40; + } + } + } + + for (var col = 0; col < moduleCount; col += 1) { + for (var row = 0; row < moduleCount - 6; row += 1) { + if (qrcode.isDark(row, col) + && !qrcode.isDark(row + 1, col) + && qrcode.isDark(row + 2, col) + && qrcode.isDark(row + 3, col) + && qrcode.isDark(row + 4, col) + && !qrcode.isDark(row + 5, col) + && qrcode.isDark(row + 6, col) ) { + lostPoint += 40; + } + } + } + + // LEVEL4 + + var darkCount = 0; + + for (var col = 0; col < moduleCount; col += 1) { + for (var row = 0; row < moduleCount; row += 1) { + if (qrcode.isDark(row, col) ) { + darkCount += 1; + } + } + } + + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + + return lostPoint; + }; + + return _this; +}(); + +//--------------------------------------------------------------------- +// QRMath +//--------------------------------------------------------------------- + +var QRMath = function() { + + var EXP_TABLE = new Array(256); + var LOG_TABLE = new Array(256); + + // initialize tables + for (var i = 0; i < 8; i += 1) { + EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i += 1) { + EXP_TABLE[i] = EXP_TABLE[i - 4] + ^ EXP_TABLE[i - 5] + ^ EXP_TABLE[i - 6] + ^ EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i += 1) { + LOG_TABLE[EXP_TABLE[i] ] = i; + } + + var _this = {}; + + _this.glog = function(n) { + + if (n < 1) { + throw new Error('glog(' + n + ')'); + } + + return LOG_TABLE[n]; + }; + + _this.gexp = function(n) { + + while (n < 0) { + n += 255; + } + + while (n >= 256) { + n -= 255; + } + + return EXP_TABLE[n]; + }; + + return _this; +}(); + +//--------------------------------------------------------------------- +// qrPolynomial +//--------------------------------------------------------------------- + +function qrPolynomial(num, shift) { + + if (typeof num.length == 'undefined') { + throw new Error(num.length + '/' + shift); + } + + var _num = function() { + var offset = 0; + while (offset < num.length && num[offset] == 0) { + offset += 1; + } + var _num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i += 1) { + _num[i] = num[i + offset]; + } + return _num; + }(); + + var _this = {}; + + _this.getAt = function(index) { + return _num[index]; + }; + + _this.getLength = function() { + return _num.length; + }; + + _this.multiply = function(e) { + + var num = new Array(_this.getLength() + e.getLength() - 1); + + for (var i = 0; i < _this.getLength(); i += 1) { + for (var j = 0; j < e.getLength(); j += 1) { + num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) ); + } + } + + return qrPolynomial(num, 0); + }; + + _this.mod = function(e) { + + if (_this.getLength() - e.getLength() < 0) { + return _this; + } + + var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) ); + + var num = new Array(_this.getLength() ); + for (var i = 0; i < _this.getLength(); i += 1) { + num[i] = _this.getAt(i); + } + + for (var i = 0; i < e.getLength(); i += 1) { + num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio); + } + + // recursive call + return qrPolynomial(num, 0).mod(e); + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// QRRSBlock +//--------------------------------------------------------------------- + +var QRRSBlock = function() { + + + // [1: [L, M, Q, H], ..] + var RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]]; + + var qrRSBlock = function(totalCount, dataCount) { + var _this = {}; + _this.totalCount = totalCount; + _this.dataCount = dataCount; + return _this; + }; + + var _this = {}; + + var getRsBlockTable = function(typeNumber, errorCorrectLevel) { + + switch(errorCorrectLevel) { + case QRErrorCorrectLevel.L : + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; + case QRErrorCorrectLevel.M : + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; + case QRErrorCorrectLevel.Q : + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; + case QRErrorCorrectLevel.H : + return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; + default : + return undefined; + } + }; + + _this.getRSBlocks = function(typeNumber, errorCorrectLevel) { + + var rsBlock = getRsBlockTable(typeNumber, errorCorrectLevel); + + if (typeof rsBlock == 'undefined') { + throw new Error('bad rs block @ typeNumber:' + typeNumber + + '/errorCorrectLevel:' + errorCorrectLevel); + } + + var length = rsBlock.length / 3; + + var list = new Array(); + + for (var i = 0; i < length; i += 1) { + + var count = rsBlock[i * 3 + 0]; + var totalCount = rsBlock[i * 3 + 1]; + var dataCount = rsBlock[i * 3 + 2]; + + for (var j = 0; j < count; j += 1) { + list.push(qrRSBlock(totalCount, dataCount) ); + } + } + + return list; + }; + + return _this; +}(); + +//--------------------------------------------------------------------- +// qrBitBuffer +//--------------------------------------------------------------------- + +var qrBitBuffer = function() { + + var _buffer = new Array(); + var _length = 0; + + var _this = {}; + + _this.getBuffer = function() { + return _buffer; + }; + + _this.getAt = function(index) { + var bufIndex = Math.floor(index / 8); + return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1; + }; + + _this.put = function(num, length) { + for (var i = 0; i < length; i += 1) { + _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1); + } + }; + + _this.getLengthInBits = function() { + return _length; + }; + + _this.putBit = function(bit) { + + var bufIndex = Math.floor(_length / 8); + if (_buffer.length <= bufIndex) { + _buffer.push(0); + } + + if (bit) { + _buffer[bufIndex] |= (0x80 >>> (_length % 8) ); + } + + _length += 1; + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// qr8BitByte +//--------------------------------------------------------------------- + +var qr8BitByte = function(data) { + + var _mode = QRMode.MODE_8BIT_BYTE; + var _data = data; + var _parsedData = []; + + var _this = {}; + + + // Added to support UTF-8 Characters + for (var i = 0, l = _data.length; i < l; i++) { + var byteArray = []; + var code = _data.charCodeAt(i); + + if (code > 0x10000) { + byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18); + byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12); + byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6); + byteArray[3] = 0x80 | (code & 0x3F); + } else if (code > 0x800) { + byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12); + byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6); + byteArray[2] = 0x80 | (code & 0x3F); + } else if (code > 0x80) { + byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6); + byteArray[1] = 0x80 | (code & 0x3F); + } else { + byteArray[0] = code; + } + + // Fix Unicode corruption bug + _parsedData.push(byteArray); + } + + _parsedData = Array.prototype.concat.apply([], _parsedData); + + if (_parsedData.length != _data.length) { + _parsedData.unshift(191); + _parsedData.unshift(187); + _parsedData.unshift(239); + } + + var _bytes = _parsedData; + + _this.getMode = function() { + return _mode; + }; + + _this.getLength = function(buffer) { + return _bytes.length; + }; + + _this.write = function(buffer) { + for (var i = 0; i < _bytes.length; i += 1) { + buffer.put(_bytes[i], 8); + } + }; + + return _this; +}; + +//===================================================================== +// GIF Support etc. +// + +//--------------------------------------------------------------------- +// byteArrayOutputStream +//--------------------------------------------------------------------- + +var byteArrayOutputStream = function() { + + var _bytes = new Array(); + + var _this = {}; + + _this.writeByte = function(b) { + _bytes.push(b & 0xff); + }; + + _this.writeShort = function(i) { + _this.writeByte(i); + _this.writeByte(i >>> 8); + }; + + _this.writeBytes = function(b, off, len) { + off = off || 0; + len = len || b.length; + for (var i = 0; i < len; i += 1) { + _this.writeByte(b[i + off]); + } + }; + + _this.writeString = function(s) { + for (var i = 0; i < s.length; i += 1) { + _this.writeByte(s.charCodeAt(i) ); + } + }; + + _this.toByteArray = function() { + return _bytes; + }; + + _this.toString = function() { + var s = ''; + s += '['; + for (var i = 0; i < _bytes.length; i += 1) { + if (i > 0) { + s += ','; + } + s += _bytes[i]; + } + s += ']'; + return s; + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// base64EncodeOutputStream +//--------------------------------------------------------------------- + +var base64EncodeOutputStream = function() { + + var _buffer = 0; + var _buflen = 0; + var _length = 0; + var _base64 = ''; + + var _this = {}; + + var writeEncoded = function(b) { + _base64 += String.fromCharCode(encode(b & 0x3f) ); + }; + + var encode = function(n) { + if (n < 0) { + // error. + } else if (n < 26) { + return 0x41 + n; + } else if (n < 52) { + return 0x61 + (n - 26); + } else if (n < 62) { + return 0x30 + (n - 52); + } else if (n == 62) { + return 0x2b; + } else if (n == 63) { + return 0x2f; + } + throw new Error('n:' + n); + }; + + _this.writeByte = function(n) { + + _buffer = (_buffer << 8) | (n & 0xff); + _buflen += 8; + _length += 1; + + while (_buflen >= 6) { + writeEncoded(_buffer >>> (_buflen - 6) ); + _buflen -= 6; + } + }; + + _this.flush = function() { + + if (_buflen > 0) { + writeEncoded(_buffer << (6 - _buflen) ); + _buffer = 0; + _buflen = 0; + } + + if (_length % 3 != 0) { + // padding + var padlen = 3 - _length % 3; + for (var i = 0; i < padlen; i += 1) { + _base64 += '='; + } + } + }; + + _this.toString = function() { + return _base64; + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// base64DecodeInputStream +//--------------------------------------------------------------------- + +var base64DecodeInputStream = function(str) { + + var _str = str; + var _pos = 0; + var _buffer = 0; + var _buflen = 0; + + var _this = {}; + + _this.read = function() { + + while (_buflen < 8) { + + if (_pos >= _str.length) { + if (_buflen == 0) { + return -1; + } + throw new Error('unexpected end of file./' + _buflen); + } + + var c = _str.charAt(_pos); + _pos += 1; + + if (c == '=') { + _buflen = 0; + return -1; + } else if (c.match(/^\s$/) ) { + // ignore if whitespace. + continue; + } + + _buffer = (_buffer << 6) | decode(c.charCodeAt(0) ); + _buflen += 6; + } + + var n = (_buffer >>> (_buflen - 8) ) & 0xff; + _buflen -= 8; + return n; + }; + + var decode = function(c) { + if (0x41 <= c && c <= 0x5a) { + return c - 0x41; + } else if (0x61 <= c && c <= 0x7a) { + return c - 0x61 + 26; + } else if (0x30 <= c && c <= 0x39) { + return c - 0x30 + 52; + } else if (c == 0x2b) { + return 62; + } else if (c == 0x2f) { + return 63; + } else { + throw new Error('c:' + c); + } + }; + + return _this; +}; + +//--------------------------------------------------------------------- +// gifImage (B/W) +//--------------------------------------------------------------------- + +var gifImage = function(width, height) { + + var _width = width; + var _height = height; + var _data = new Array(width * height); + + var _this = {}; + + _this.setPixel = function(x, y, pixel) { + _data[y * _width + x] = pixel; + }; + + _this.write = function(out) { + + //--------------------------------- + // GIF Signature + + out.writeString('GIF87a'); + + //--------------------------------- + // Screen Descriptor + + out.writeShort(_width); + out.writeShort(_height); + + out.writeByte(0x80); // 2bit + out.writeByte(0); + out.writeByte(0); + + //--------------------------------- + // Global Color Map + + // black + out.writeByte(0x00); + out.writeByte(0x00); + out.writeByte(0x00); + + // white + out.writeByte(0xff); + out.writeByte(0xff); + out.writeByte(0xff); + + //--------------------------------- + // Image Descriptor + + out.writeString(','); + out.writeShort(0); + out.writeShort(0); + out.writeShort(_width); + out.writeShort(_height); + out.writeByte(0); + + //--------------------------------- + // Local Color Map + + //--------------------------------- + // Raster Data + + var lzwMinCodeSize = 2; + var raster = getLZWRaster(lzwMinCodeSize); + + out.writeByte(lzwMinCodeSize); + + var offset = 0; + + while (raster.length - offset > 255) { + out.writeByte(255); + out.writeBytes(raster, offset, 255); + offset += 255; + } + + out.writeByte(raster.length - offset); + out.writeBytes(raster, offset, raster.length - offset); + out.writeByte(0x00); + + //--------------------------------- + // GIF Terminator + out.writeString(';'); + }; + + var bitOutputStream = function(out) { + + var _out = out; + var _bitLength = 0; + var _bitBuffer = 0; + + var _this = {}; + + _this.write = function(data, length) { + + if ( (data >>> length) != 0) { + throw new Error('length over'); + } + + while (_bitLength + length >= 8) { + _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) ); + length -= (8 - _bitLength); + data >>>= (8 - _bitLength); + _bitBuffer = 0; + _bitLength = 0; + } + + _bitBuffer = (data << _bitLength) | _bitBuffer; + _bitLength = _bitLength + length; + }; + + _this.flush = function() { + if (_bitLength > 0) { + _out.writeByte(_bitBuffer); + } + }; + + return _this; + }; + + var getLZWRaster = function(lzwMinCodeSize) { + + var clearCode = 1 << lzwMinCodeSize; + var endCode = (1 << lzwMinCodeSize) + 1; + var bitLength = lzwMinCodeSize + 1; + + // Setup LZWTable + var table = lzwTable(); + + for (var i = 0; i < clearCode; i += 1) { + table.add(String.fromCharCode(i) ); + } + table.add(String.fromCharCode(clearCode) ); + table.add(String.fromCharCode(endCode) ); + + var byteOut = byteArrayOutputStream(); + var bitOut = bitOutputStream(byteOut); + + // clear code + bitOut.write(clearCode, bitLength); + + var dataIndex = 0; + + var s = String.fromCharCode(_data[dataIndex]); + dataIndex += 1; + + while (dataIndex < _data.length) { + + var c = String.fromCharCode(_data[dataIndex]); + dataIndex += 1; + + if (table.contains(s + c) ) { + + s = s + c; + + } else { + + bitOut.write(table.indexOf(s), bitLength); + + if (table.size() < 0xfff) { + + if (table.size() == (1 << bitLength) ) { + bitLength += 1; + } + + table.add(s + c); + } + + s = c; + } + } + + bitOut.write(table.indexOf(s), bitLength); + + // end code + bitOut.write(endCode, bitLength); + + bitOut.flush(); + + return byteOut.toByteArray(); + }; + + var lzwTable = function() { + + var _map = {}; + var _size = 0; + + var _this = {}; + + _this.add = function(key) { + if (_this.contains(key) ) { + throw new Error('dup key:' + key); + } + _map[key] = _size; + _size += 1; + }; + + _this.size = function() { + return _size; + }; + + _this.indexOf = function(key) { + return _map[key]; + }; + + _this.contains = function(key) { + return typeof _map[key] != 'undefined'; + }; + + return _this; + }; + + return _this; +}; + +var createImgTag = function(width, height, getPixel, alt) { + + var gif = gifImage(width, height); + for (var y = 0; y < height; y += 1) { + for (var x = 0; x < width; x += 1) { + gif.setPixel(x, y, getPixel(x, y) ); + } + } + + var b = byteArrayOutputStream(); + gif.write(b); + + var base64 = base64EncodeOutputStream(); + var bytes = b.toByteArray(); + for (var i = 0; i < bytes.length; i += 1) { + base64.writeByte(bytes[i]); + } + base64.flush(); + + var img = ''; + img += 'data:image/gif;base64,'; + img += base64; + + return img; +}; + +//--------------------------------------------------------------------- +// returns qrcode function. + +var drawImg = function(text, options) { + options = options || {}; + var typeNumber = options.typeNumber || 4; + var errorCorrectLevel = options.errorCorrectLevel || 'M'; + var size = options.size || 500; + + var qr; + + try { + qr = qrcode(typeNumber, errorCorrectLevel || 'M'); + qr.addData(text); + qr.make(); + } catch (e) { + if(typeNumber >= 40) { + throw new Error('Text too long to encode'); + } else { + return drawImg(text, { + size: size, + errorCorrectLevel: errorCorrectLevel, + typeNumber: typeNumber + 1 + }); + } + } + + // calc cellsize and margin + var cellsize = parseInt(size / qr.getModuleCount()); + var margin = parseInt((size - qr.getModuleCount() * cellsize) / 2); + + return qr.createImgTag(cellsize, margin, size); +}; +module.exports = { + drawImg: drawImg +}; \ No newline at end of file diff --git a/miniprogram/pages/admin/content/admin_content.js b/miniprogram/pages/admin/content/admin_content.js new file mode 100644 index 0000000..0db1e78 --- /dev/null +++ b/miniprogram/pages/admin/content/admin_content.js @@ -0,0 +1,100 @@ +const AdminBiz = require('../../../biz/admin_biz.js'); +const pageHelper = require('../../../helper/page_helper.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + formContent: [{ + type: 'text', + val: '', + }] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (!AdminBiz.isAdmin(this)) return; + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + let formContent = parent.data.formContent; + if (formContent && formContent.length > 0) + this.setData({ + formContent + }); + }, + + + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + + }, + + model: function (e) { + pageHelper.model(this, e); + }, + + bindSaveTap: function (e) { + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + parent.setData({ + formContent: this.data.formContent + }); + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindSaveTap: function (e) { + let formContent = this.selectComponent("#contentEditor").getNodeList(); + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + parent.setData({ + formContent + }, () => { + parent._setContentDesc(); + }); + + wx.navigateBack({ + delta: 0, + }); + } +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/content/admin_content.json b/miniprogram/pages/admin/content/admin_content.json new file mode 100644 index 0000000..0017c8a --- /dev/null +++ b/miniprogram/pages/admin/content/admin_content.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "cmpt-editor": "../../../cmpts/public/editor/editor_cmpt" + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "详细内容" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/content/admin_content.wxml b/miniprogram/pages/admin/content/admin_content.wxml new file mode 100644 index 0000000..f05804e --- /dev/null +++ b/miniprogram/pages/admin/content/admin_content.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + + 不保存,返回 + 保存 + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/content/admin_content.wxss b/miniprogram/pages/admin/content/admin_content.wxss new file mode 100644 index 0000000..e0d00f7 --- /dev/null +++ b/miniprogram/pages/admin/content/admin_content.wxss @@ -0,0 +1,35 @@ +@import '../../../style/project/base/admin.wxss'; + +.main-admin { + width: 100%; + box-sizing: border-box; + padding: 30rpx 20rpx; + padding-bottom: 200rpx; +} + +.form-group { + padding: 1rpx 1rpx; + overflow: hidden; +} + +.oprt { + display: flex; + width: 100%; + justify-content: space-around; +} + +.oprt button { + width: 45%; +} + +.bottom-oprt { + position: fixed; + bottom: 0; + height: 130rpx; + background-color: #f8f8f8; + display: flex; + justify-content: space-around; + align-items: center; + border-top: 1rpx solid #ccc; + z-index: 99999; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/index/home/admin_home.js b/miniprogram/pages/admin/index/home/admin_home.js new file mode 100644 index 0000000..3055d87 --- /dev/null +++ b/miniprogram/pages/admin/index/home/admin_home.js @@ -0,0 +1,125 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const cloudHelper = require('../../../../helper/cloud_helper.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: {}, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (!AdminBiz.isAdmin(this)) return; + + + this._loadDetail(); + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + _loadDetail: async function () { + + let admin = AdminBiz.getAdminToken(); + this.setData({ + isLoad: true, + admin + }); + + try { + let opts = { + title: 'bar' + } + let res = await cloudHelper.callCloudData('admin/home', {}, opts); + this.setData({ + + data: res + }); + + } catch (err) { + console.log(err); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindExitTap: function (e) { + + let callback = function () { + AdminBiz.clearAdminToken(); + wx.reLaunch({ + url: pageHelper.fmtURLByPID('/pages/my/index/my_index'), + }); + } + pageHelper.showConfirm('您确认退出?', callback); + }, + + bindSettingTap: function (e) { + let itemList = ['清除数据缓存']; + wx.showActionSheet({ + itemList, + success: async res => { + switch (res.tapIndex) { + case 0: { //清除缓存 + await this._clearCache(); + break; + } + } + }, + fail: function (res) {} + }) + }, + + _clearCache: async function () { + try { + let opts = { + title: '数据缓存清除中' + } + await cloudHelper.callCloudSumbit('admin/clear_cache', {}, opts).then(res => { + pageHelper.showSuccToast('清除成功'); + }); + } catch (err) { + console.error(err); + } + } + +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/index/home/admin_home.json b/miniprogram/pages/admin/index/home/admin_home.json new file mode 100644 index 0000000..f6dd045 --- /dev/null +++ b/miniprogram/pages/admin/index/home/admin_home.json @@ -0,0 +1,9 @@ +{ + "usingComponents": { + "cmpt-foot": "../../../../cmpts/biz/foot/foot_cmpt" + }, + "enablePullDownRefresh": true, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "后台管理" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/index/home/admin_home.wxml b/miniprogram/pages/admin/index/home/admin_home.wxml new file mode 100644 index 0000000..3b63107 --- /dev/null +++ b/miniprogram/pages/admin/index/home/admin_home.wxml @@ -0,0 +1,91 @@ + + + + + + + + + {{admin.name}} + + 超级管理员 + 一般管理员 + + + 共登录{{admin.cnt}}次,上次{{admin.last}} + + + + + + + {{data.meetCnt||'...'}}活动/预约数 + {{data.joinCnt||'...'}}预约数 + {{data.userCnt||'...'}}用户 + {{data.newsCnt||'...'}}文章数 + + + + + + 功能管理 + + + + + 活动/预约管理 + + 用户管理 + + 内容管理 + + + + + + + + + + + 编辑 - 关于我们 + + + + + + + 编辑 - 联系我们 + + + + + + + 小程序二维码 + + + + + + + + 管理员操作日志 + + + + + + + 设置 + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/index/home/admin_home.wxss b/miniprogram/pages/admin/index/home/admin_home.wxss new file mode 100644 index 0000000..033d390 --- /dev/null +++ b/miniprogram/pages/admin/index/home/admin_home.wxss @@ -0,0 +1,79 @@ +@import '../../../../style/project/base/admin.wxss'; + +.main-admin { + padding: 0; +} + +.admin-info { + height: 200rpx; + width: 100%; + color: #fff; + display: flex; + justify-content: flex-start; + align-items: center; + position: relative; +} + +.admin-info .pic { + width: 100rpx; + height: 100rpx; + font-size: 70rpx; + display: flex; + justify-content: center; + align-items: center; + margin-right: 20rpx; +} + +.admin-info .right { + flex: 1; + display: flex; + flex-direction: column; +} + +.admin-info .right .name { + font-size: 32rpx; + line-height: 1.8; +} + +.admin-info .right .desc { + font-size: 24rpx; + line-height: 1.3; +} + +.admin-info .exit-admin { + position: absolute; + top: 12rpx; + right: 12rpx; + font-size: 45rpx; +} + + +.main-admin .comm-list, +.main-admin .bar { + background-color: #fff; + width: 100%; +} + +.main-admin .exit { + width: 100%; + padding: 0 20rpx; + margin-bottom: 50rpx; +} + +.main-admin .exit button { + width: 100%; + color: #fff; + height: 70rpx; +} + +.grid.col-6>view { + width: 16.66%; +} + +.foot-bottom { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + bottom: 50rpx; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/index/login/admin_login.js b/miniprogram/pages/admin/index/login/admin_login.js new file mode 100644 index 0000000..2060c22 --- /dev/null +++ b/miniprogram/pages/admin/index/login/admin_login.js @@ -0,0 +1,62 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const PassportBiz = require('../../../../biz/passport_biz.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + name: '', + pwd: '', + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + AdminBiz.clearAdminToken(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindBackTap: function (e) { + wx.reLaunch({ + url: pageHelper.fmtURLByPID('/pages/my/index/my_index'), + }); + }, + + bindLoginTap: async function (e) { + return PassportBiz.adminLogin(this.data.name, this.data.pwd, this); + } + +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/index/login/admin_login.json b/miniprogram/pages/admin/index/login/admin_login.json new file mode 100644 index 0000000..da840f9 --- /dev/null +++ b/miniprogram/pages/admin/index/login/admin_login.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "cmpt-foot": "../../../../cmpts/biz/foot/foot_cmpt" + }, + "disableScroll": true, + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/index/login/admin_login.wxml b/miniprogram/pages/admin/index/login/admin_login.wxml new file mode 100644 index 0000000..98a8844 --- /dev/null +++ b/miniprogram/pages/admin/index/login/admin_login.wxml @@ -0,0 +1,28 @@ + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/index/login/admin_login.wxss b/miniprogram/pages/admin/index/login/admin_login.wxss new file mode 100644 index 0000000..f2a1d07 --- /dev/null +++ b/miniprogram/pages/admin/index/login/admin_login.wxss @@ -0,0 +1,71 @@ +@import '../../../../style/project/base/admin.wxss'; + +.main-admin { + width: 100%; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: relative; +} + +.login { + width: 500rpx; + background-color: #fff; + min-height: 550rpx; + border-radius: 20rpx; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding: 50rpx 20rpx; + margin-top: -100rpx; +} + +.login button { + width: 85%; + color: #fff; + font-size: 32rpx; +} + +.login .hint { + width: 100%; + color: #000; + font-weight: bold; + font-size: 36rpx; + text-align: center; +} + +.login .return { + width: 100%; + font-size: 30rpx; + text-align: center; + font-size: 26rpx; +} + +.pic { + width: 180rpx; + height: 180rpx; + font-size: 130rpx; + display: flex; + justify-content: center; + align-items: center; +} + +.foot-bottom { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + position: absolute; + bottom: 50rpx; +} + +.site-footer { + color: #fff !important; +} + +.form-group .title { + color:#333; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/content/admin_meet_content.js b/miniprogram/pages/admin/meet/content/admin_meet_content.js new file mode 100644 index 0000000..7f9b4ac --- /dev/null +++ b/miniprogram/pages/admin/meet/content/admin_meet_content.js @@ -0,0 +1,95 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +Page({ + + /** + * 页面的初始数据 + */ + data: { + formContent: [{ + type: 'text', + val: '', + }] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (!AdminBiz.isAdmin(this)) return; + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + let formContent = parent.data.formContent; + if (formContent && formContent.length > 0) + this.setData({ + formContent + }); + }, + + + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + + }, + + model: function (e) { + pageHelper.model(this, e); + }, + + bindSaveTap: function (e) { + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + parent.setData({ + formContent: this.data.formContent + }); + }, + + bindSaveTap: function (e) { + let formContent = this.selectComponent("#contentEditor").getNodeList(); + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + parent.setData({ + formContent + }, () => { + parent._setContentDesc(); + }); + + wx.navigateBack({ + delta: 0, + }); + } +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/content/admin_meet_content.json b/miniprogram/pages/admin/meet/content/admin_meet_content.json new file mode 100644 index 0000000..38d7fb3 --- /dev/null +++ b/miniprogram/pages/admin/meet/content/admin_meet_content.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "cmpt-editor": "../../../../cmpts/public/editor/editor_cmpt" + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "后台-预约详细介绍" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/content/admin_meet_content.wxml b/miniprogram/pages/admin/meet/content/admin_meet_content.wxml new file mode 100644 index 0000000..f05804e --- /dev/null +++ b/miniprogram/pages/admin/meet/content/admin_meet_content.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + + 不保存,返回 + 保存 + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/content/admin_meet_content.wxss b/miniprogram/pages/admin/meet/content/admin_meet_content.wxss new file mode 100644 index 0000000..727871e --- /dev/null +++ b/miniprogram/pages/admin/meet/content/admin_meet_content.wxss @@ -0,0 +1,35 @@ +@import '../../../../style/project/base/admin.wxss'; + +.main-admin { + width: 100%; + box-sizing: border-box; + padding: 30rpx 20rpx; + padding-bottom: 200rpx; +} + +.form-group { + padding: 1rpx 1rpx; + overflow: hidden; +} + +.oprt { + display: flex; + width: 100%; + justify-content: space-around; +} + +.oprt button { + width: 45%; +} + +.bottom-oprt { + position: fixed; + bottom: 0; + height: 130rpx; + background-color: #f8f8f8; + display: flex; + justify-content: space-around; + align-items: center; + border-top: 1rpx solid #ccc; + z-index: 99999; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/cover/admin_meet_cover.js b/miniprogram/pages/admin/meet/cover/admin_meet_cover.js new file mode 100644 index 0000000..3e7fccd --- /dev/null +++ b/miniprogram/pages/admin/meet/cover/admin_meet_cover.js @@ -0,0 +1,130 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const dataHelper = require('../../../../helper/data_helper.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + + title: '', + status: '', + + mode: '', + desc: '', + pic: '', + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + if (!AdminBiz.isAdmin(this)) return; + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + let skin = pageHelper.getSkin(); + + let formStyleSet = parent.data.formStyleSet; + let title = parent.data.formTitle; + let status = parent.data.beginSetDesc; + this.setData({ + title, + status, + ...formStyleSet + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindChooseImgTap: function (e) { + let that = this; + wx.chooseImage({ + count: 1, + sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有 + sourceType: ['album', 'camera'], //从相册选择 + success: async (res) => { + let pic = res.tempFiles[0].path; + that.setData({ + pic + }); + } + }); + }, + catchDelImgTap: function (e) { + let that = this; + let callback = function () { + that.setData({ + pic: '' + }); + } + pageHelper.showConfirm('确定要删除该图片吗?', callback); + }, + + bindSaveTap: function (e) { + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + if (!this.data.pic) return pageHelper.showModal('请上传封面图片'); + + parent.setData({ + formStyleSet: { + desc: dataHelper.fmtText(this.data.desc), + pic: this.data.pic + } + }); + + wx.navigateBack({ + delta: 0, + }); + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/cover/admin_meet_cover.json b/miniprogram/pages/admin/meet/cover/admin_meet_cover.json new file mode 100644 index 0000000..bd377ec --- /dev/null +++ b/miniprogram/pages/admin/meet/cover/admin_meet_cover.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "后台-预约封面设置" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxml b/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxml new file mode 100644 index 0000000..f4a2d4a --- /dev/null +++ b/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxml @@ -0,0 +1,70 @@ + + + + + + + + 简要描述 + + + {{desc.length}}/100 + + + + + + + + + 封面图 (必填) + + + + 更换图片 + 上传图片 + + + + + + + 效果图 + + + + + + + + + {{title||'演示标题'}} + + {{desc||'简要描述未填写'}} + + + {{status||'9天可预约'}} + + + + + + + + + + + + + + + + 不保存,返回 + 保存封面设置 + + diff --git a/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxss b/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxss new file mode 100644 index 0000000..505458e --- /dev/null +++ b/miniprogram/pages/admin/meet/cover/admin_meet_cover.wxss @@ -0,0 +1,76 @@ +@import '../../../../style/project/base/admin.wxss'; +@import '../../../../style/project/base/appt.wxss'; + +.form-box-main { + width: 100%; + box-sizing: border-box; + padding: 0rpx 20rpx; +} + +.demo { + background-color: #ffff; + width: 100%; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; +} + +.demo { + background-color: #f2f2f2; + width: 100%; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + padding: 0 20rpx; +} + +.demo .demo-title { + width: 100%; + background-color: #fff; + padding: 10rpx 20rpx; + font-size: 32rpx; + color: #333; + text-align: center; +} + + +.form-group .upload-img { + display: flex; + flex-wrap: wrap; + overflow: hidden; + flex: 1; +} + +.form-group .cover-img { + flex: 1; + width: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} + +.form-group .cover-img image { + width: 60rpx; + height: 60rpx; + border-radius: 5rpx; +} + +.form-group .cover-img .close-img, +.form-group .cover-img .upload-img { + height: 60rpx; + border-radius: 5rpx; + text-align: center; + display: flex; + justify-content: flex-end; + align-items: center; + font-size: 50rpx; + color: orange; + min-width: 80rpx; +} + +.form-group .cover-img .upload-img { + color: #999; + font-weight: normal; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/edit/admin_meet_edit.js b/miniprogram/pages/admin/meet/edit/admin_meet_edit.js new file mode 100644 index 0000000..41e9594 --- /dev/null +++ b/miniprogram/pages/admin/meet/edit/admin_meet_edit.js @@ -0,0 +1,286 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const bizHelper = require('../../../../biz/biz_helper.js'); +const cloudHelper = require('../../../../helper/cloud_helper.js'); +const timeHelper = require('../../../../helper/time_helper.js'); +const validate = require('../../../../helper/validate.js'); +const AdminMeetBiz = require('../../../../biz/admin_meet_biz.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + id: null, + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (!AdminBiz.isAdmin(this)) return; + pageHelper.getOptions(this, options); + + this.setData(await AdminMeetBiz.initFormData()); // 初始化表单数据 + + await this._loadDetail(); + + this._setContentDesc(); + }, + + _loadDetail: async function () { + let id = this.data.id; + if (!id) return; + + pageHelper.formSetBarTitleByAddEdit(id, '后台-活动/预约'); + + let params = { + id + }; + let opt = { + title: 'bar' + }; + let meet = await cloudHelper.callCloudData('admin/meet_detail', params, opt); + + if (!meet) { + this.setData({ + isLoad: null + }) + return; + } + + this.setData({ + isLoad: true, + + + // 表单数据 + formTitle: meet.MEET_TITLE, + formTypeId: meet.MEET_TYPE_ID, + formContent: meet.MEET_CONTENT, + formOrder: meet.MEET_ORDER, + formStyleSet: meet.MEET_STYLE_SET, + + formDaysSet: meet.MEET_DAYS_SET, + + formIsShowLimit: meet.MEET_IS_SHOW_LIMIT, + + formFormSet: meet.MEET_FORM_SET, + }); + }, + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () {}, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + model: function (e) { + pageHelper.model(this, e); + }, + + bindFormSetCmpt: function (e) { + this.setData({ + formFormSet: e.detail, + }); + }, + + bindFormAddSubmit: async function () { + pageHelper.formClearFocus(this); + + if (!AdminBiz.isAdmin(this)) return; + + let data = this.data; + if (data.formTitle.length <= 0) return pageHelper.formHint(this, 'formTitle', '请填写「标题」'); + + if (data.formTypeId.length <= 0) return pageHelper.formHint(this, 'formTypeId', '请选择「分类」'); + + if (data.formStyleSet.pic.length <= 0) { + pageHelper.anchor('formStyleSet', this); + return pageHelper.formHint(this, 'formStyleSet', '封面图片未设置'); + } + if (data.formDaysSet.length <= 0) { + pageHelper.anchor('formDaysSet', this); + return pageHelper.formHint(this, 'formDaysSet', '请配置「可预约时段」'); + } + if (data.formFormSet.length <= 0) return pageHelper.showModal('请至少设置一项「用户填写资料」'); + + if (data.contentDesc.includes('未填写')) + return pageHelper.formHint(this, 'formContent', '请填写「详细介绍」'); + + data = validate.check(data, AdminMeetBiz.CHECK_FORM, this); + if (!data) return; + data.typeName = AdminMeetBiz.getTypeName(data.typeId); + + try { + // 先创建,再上传 + let result = await cloudHelper.callCloudSumbit('admin/meet_insert', data); + let meetId = result.data.id; + + let formContent = this.data.formContent; + if (formContent && formContent.length > 0) { + wx.showLoading({ + title: '提交中...', + mask: true + }); + await AdminMeetBiz.updateMeetCotnentPic(meetId, formContent, this); + } + + // 样式 提交处理 + let formStyleSet = this.data.formStyleSet; + wx.showLoading({ + title: '提交中...', + mask: true + }); + if (!await AdminMeetBiz.updateMeetStyleSet(meetId, formStyleSet, this)) return; + + let callback = async function () { + bizHelper.removeCacheList('admin-meet'); + bizHelper.removeCacheList('meet-list'); + wx.navigateBack(); + + } + pageHelper.showSuccToast('添加成功', 2000, callback); + + } catch (err) { + console.log(err); + } + + }, + + bindFormEditSubmit: async function () { + pageHelper.formClearFocus(this); + + if (!AdminBiz.isAdmin(this)) return; + + let data = this.data; + if (data.formTitle.length <= 0) return pageHelper.formHint(this, 'formTitle', '请填写「标题」'); + + if (data.formTypeId.length <= 0) return pageHelper.formHint(this, 'formTypeId', '请选择「分类」'); + + if (data.formStyleSet.pic.length <= 0) { + pageHelper.anchor('formStyleSet', this); + return pageHelper.formHint(this, 'formStyleSet', '封面图片未设置'); + } + if (data.formDaysSet.length <= 0) { + pageHelper.anchor('formDaysSet', this); + return pageHelper.formHint(this, 'formDaysSet', '请配置「可预约时段」'); + } + if (data.formFormSet.length <= 0) return pageHelper.showModal('请至少设置一项「用户填写资料」'); + + data = validate.check(data, AdminMeetBiz.CHECK_FORM, this); + if (!data) return; + data.typeName = AdminMeetBiz.getTypeName(data.typeId); + + try { + let meetId = this.data.id; + data.id = meetId; + + // 先修改,再上传 + await cloudHelper.callCloudSumbit('admin/meet_edit', data); + + // 富文本 提交处理 + let formContent = this.data.formContent; + wx.showLoading({ + title: '提交中...', + mask: true + }); + if (!await AdminMeetBiz.updateMeetCotnentPic(meetId, formContent, this)) return; + + + // 样式 提交处理 + let formStyleSet = this.data.formStyleSet; + wx.showLoading({ + title: '提交中...', + mask: true + }); + if (!await AdminMeetBiz.updateMeetStyleSet(meetId, formStyleSet, this)) return; + + + let callback = async function () { + // 更新列表页面数据 + let node = { + 'MEET_TITLE': data.title, + 'MEET_TYPE_NAME': data.typeName, + 'MEET_DAYS_SET': data.daysSet, + 'MEET_FORM_SET': data.formSet, + 'MEET_EDIT_TIME': timeHelper.time('Y-M-D h:m:s'), + 'leaveDay': AdminMeetBiz.getLeaveDay(data.daysSet) + } + pageHelper.modifyPrevPageListNodeObject(meetId, node); + wx.navigateBack(); + + } + pageHelper.showSuccToast('编辑成功', 2000, callback); + + } catch (err) { + console.log(err); + } + + }, + + + bindMyImgUploadListener: function (e) { + this.setData({ + imgList: e.detail + }); + }, + + switchModel: function (e) { + pageHelper.switchModel(this, e); + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + _setContentDesc: function () { + let contentDesc = '未填写'; + let content = this.data.formContent; + let imgCnt = 0; + let textCnt = 0; + for (let k in content) { + if (content[k].type == 'img') imgCnt++; + if (content[k].type == 'text') textCnt++; + } + + if (imgCnt || textCnt) { + contentDesc = textCnt + '段文字,' + imgCnt + '张图片'; + } + this.setData({ + contentDesc + }); + } + +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/edit/admin_meet_edit.json b/miniprogram/pages/admin/meet/edit/admin_meet_edit.json new file mode 100644 index 0000000..063b38a --- /dev/null +++ b/miniprogram/pages/admin/meet/edit/admin_meet_edit.json @@ -0,0 +1,11 @@ +{ + "usingComponents": { + "cmpt-form-set": "../../../../cmpts/public/form/form_set/form_set_cmpt", + "cmpt-picker-time": "../../../../cmpts/public/picker_time/picker_time_cmpt", + "cmpt-picker-multi": "../../../../cmpts/public/picker_multi/picker_multi_cmpt" + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true, + "navigationBarTitleText": "后台-活动/预约添加" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxml b/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxml new file mode 100644 index 0000000..0a28c71 --- /dev/null +++ b/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxml @@ -0,0 +1,72 @@ + + + + + + + + 标题 + + + {{formTitleFocus}} + + + 分类 + + + {{formTypeIdFocus}} + + + 封面设置(必填) + + 封面图片未设置 + + {{formStyleSetFocus}} + + + 详细介绍(必填) + 详细介绍未填写 + {{contentDesc}} + + {{formContentFocus}} + + + 排序号 + + + {{formOrderFocus}} + + + + + + 预约时间设置 + {{formDaysSet.length}}天可约 + 请配置可预约时段 + + {{formDaysSetFocus}} + + + + 是否显示可预约人数 + + + {{formIsShowLimitFocus}} + + + + + + + 用户填写资料设置 (共{{formFormSet.length}}个字段) + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxss b/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxss new file mode 100644 index 0000000..b5b29f4 --- /dev/null +++ b/miniprogram/pages/admin/meet/edit/admin_meet_edit.wxss @@ -0,0 +1,72 @@ +@import '../../../../style/project/base/admin.wxss'; + + +.main-admin { + padding: 20rpx 0rpx; + +} + +.form-box { + border-radius: 0; +} + +.modal-rules { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 0; +} + +.modal-rules .padding-xl { + padding: 0; +} + +.modal-rules .item { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-bottom: 2rpx solid #ddd; + padding: 20rpx 0; + position: relative; +} + +.modal-rules .item.cur { + background-color: #f2f2f2; + font-weight: bold; +} + +.modal-rules .item.cur .icon-right { + color: var(--adminColor)!important; +} + +.modal-rules .item .icon-right { + right: 10rpx; + position: absolute; + top: 50rpx; +} + +.modal-rules .item.item-last { + border-bottom: 0; +} + +.modal-rules .item .title { + font-size: 36rpx; + color: #111; +} + +.modal-rules .item .desc { + font-size: 28rpx; + color: #777; + margin-top: 10rpx; +} + +cmpt-picker-multi { + flex: 1; +} + +.form-group .desc-textarea { + height: 100rpx; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/export/admin_join_export.js b/miniprogram/pages/admin/meet/export/admin_join_export.js new file mode 100644 index 0000000..b66e0d8 --- /dev/null +++ b/miniprogram/pages/admin/meet/export/admin_join_export.js @@ -0,0 +1,158 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const cloudHelper = require('../../../../helper/cloud_helper.js'); +const timeHelper = require('../../../../helper/time_helper.js'); +const fileHelper = require('../../../../helper/file_helper.js'); + +Page({ + + /** + * 页面的初始数据 + */ + data: { + title: '', + + url: '', + time: '', + + startDay: timeHelper.time('Y-M-D'), + endDay: timeHelper.time('Y-M-D'), + status: 1 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + if (!AdminBiz.isAdmin(this)) return; + if (!pageHelper.getOptions(this, options, 'meetId')) return; + + if (options && options.title) { + let title = decodeURIComponent(options.title); + this.setData({ + title + }); + } + + this._loadDetail(1); + }, + + _loadDetail: async function (isDel) { + if (!AdminBiz.isAdmin(this)) return; + + let params = { + isDel + } + let options = { + title: 'bar' + } + let data = await cloudHelper.callCloudData('admin/join_data_get', params, options); + + if (!data) return; + + this.setData({ + isLoad: true, + url: data.url, + time: data.time + }) + + }, + + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(1); + wx.stopPullDownRefresh(); + }, + + bindOpenTap:function(e) { + fileHelper.openDoc('预约名单', this.data.url); + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + bindExportTap: async function (e) { + try { + let options = { + title: '数据生成中' + } + + let params = { + meetId: this.data.meetId, + startDay: this.data.startDay, + endDay: this.data.endDay, + status: this.data.status + } + + await cloudHelper.callCloudData('admin/join_data_export', params, options).then(res => { + this._loadDetail(0); + pageHelper.showModal('数据文件生成成功(' + res.total + '条记录), 请点击「直接打开」按钮或者复制文件地址下载'); + + }); + } catch (err) { + console.log(err); + pageHelper.showNoneToast('导出失败,请重试'); + } + + }, + + bindDelTap: async function (e) { + try { + let options = { + title: '数据删除中' + } + await cloudHelper.callCloudData('admin/join_data_del', {}, options).then(res => { + this.setData({ + url: '', + time: '' + }); + pageHelper.showSuccToast('删除成功'); + }); + } catch (err) { + console.log(err); + pageHelper.showNoneToast('删除失败,请重试'); + } + + }, + + +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/export/admin_join_export.json b/miniprogram/pages/admin/meet/export/admin_join_export.json new file mode 100644 index 0000000..dbe84f2 --- /dev/null +++ b/miniprogram/pages/admin/meet/export/admin_join_export.json @@ -0,0 +1,9 @@ +{ + "usingComponents": { + "cmpt-picker-time": "../../../../cmpts/public/picker_time/picker_time_cmpt" + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true, + "navigationBarTitleText": "预约名单导出" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/export/admin_join_export.wxml b/miniprogram/pages/admin/meet/export/admin_join_export.wxml new file mode 100644 index 0000000..4485ea2 --- /dev/null +++ b/miniprogram/pages/admin/meet/export/admin_join_export.wxml @@ -0,0 +1,63 @@ + + + + + + + {{title}} + + + 起始日期 + + {{startDay||'请选择'}} + + + + + 终止日期 + + {{endDay||'请选择'}} + + + + + 数据类型 + + + + + + + + 数据下载链接({{time}} 生成) + + + + + + + + + + + 链接使用说明 + 1. 复制以上链接地址,建议在电脑浏览器中打开链接下载数据文件 + 2. 为保障信息安全,请勿外传数据链接 + 3. 为了防止隐私数据泄露,请在下载后及时点击下方按钮删除 + + + + + + + + + + + + + + 为了防止隐私数据泄露,请在下载上述文件后及时点击按钮删除 + + + \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/export/admin_join_export.wxss b/miniprogram/pages/admin/meet/export/admin_join_export.wxss new file mode 100644 index 0000000..5933b8e --- /dev/null +++ b/miniprogram/pages/admin/meet/export/admin_join_export.wxss @@ -0,0 +1,12 @@ +@import '../../../../style/project/base/admin.wxss'; + +.form-box .title-desc { + padding-bottom: 10rpx; + border: 0; + font-size: 29rpx; + color: #888; +} + +.btn-admin{ + margin-bottom: 20rpx; +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/join/admin_meet_join.js b/miniprogram/pages/admin/meet/join/admin_meet_join.js new file mode 100644 index 0000000..b11af61 --- /dev/null +++ b/miniprogram/pages/admin/meet/join/admin_meet_join.js @@ -0,0 +1,483 @@ +const AdminBiz = require('../../../../biz/admin_biz.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const cacheHelper = require('../../../../helper/cache_helper.js'); +const helper = require('../../../../helper/helper.js'); +const cloudHelper = require('../../../../helper/cloud_helper.js'); + +const CACHE_CANCEL_REASON = 'JOIN_CANCEL_REASON'; +const CACHE_REFUSE_REASON = 'JOIN_REFUSE_REASON'; + +Page({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + isAllFold: true, + + parentDayIdx: 0, + parentTimeIdx: 0, + + menuIdx: 0, + + meetId: '', + mark: '', + + title: '', + titleEn: '', + + cancelModalShow: false, + cancelAllModalShow: false, + refuseModalShow: false, + formReason: '', + curIdx: -1 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + if (!AdminBiz.isAdmin(this)) return; + + // 附加参数 + if (options && options.meetId && options.mark) { + //设置搜索菜单 + this._getSearchMenu(); + + this.setData({ + meetId: options.meetId, + mark: options.mark, + parentDayIdx: options.dayidx, + parentTimeIdx: options.timeidx, + time: options.time, + + _params: { + meetId: options.meetId, + mark: options.mark, + } + }, () => ( + this.setData({ + isLoad: true + }) + )); + } + + if (options && options.title) { + let title = decodeURIComponent(options.title); + this.setData({ + title, + titleEn: options.title + }); + wx.setNavigationBarTitle({ + title: '分时段预约名单 - ' + title + }); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + bindUnFoldTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let dataList = this.data.dataList; + dataList.list[idx].fold = false; + this.setData({ + dataList + }); + }, + + bindFoldTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let dataList = this.data.dataList; + dataList.list[idx].fold = true; + this.setData({ + dataList + }); + }, + + bindFoldAllTap: function (e) { + let dataList = this.data.dataList; + for (let k in dataList.list) { + dataList.list[k].fold = true; + } + this.setData({ + isAllFold: true, + dataList + }); + }, + + bindUnFoldAllTap: function (e) { + let dataList = this.data.dataList; + for (let k in dataList.list) { + dataList.list[k].fold = false; + } + this.setData({ + isAllFold: false, + dataList + }); + }, + + bindCopyTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let forms = this.data.dataList.list[idx].JOIN_FORMS; + + let ret = ''; + + ret += `项目:${this.data.dataList.list[idx].JOIN_MEET_TITLE}\r`; + + ret += `时段:${this.data.dataList.list[idx].JOIN_MEET_DAY} ${this.data.dataList.list[idx].JOIN_MEET_TIME_START}~${this.data.dataList.list[idx].JOIN_MEET_TIME_END}\r`; + for (let k in forms) { + ret += forms[k].title + ':' + forms[k].val + '\r'; + } + wx.setClipboardData({ + data: ret, + success(res) { + wx.getClipboardData({ + success(res) { + pageHelper.showSuccToast('已复制到剪贴板'); + } + }) + } + }); + + }, + + bindCancelTap: function (e) { + this.setData({ + formReason: cacheHelper.get(CACHE_CANCEL_REASON) || '', + curIdx: pageHelper.dataset(e, 'idx'), + cancelModalShow: true + }); + }, + + bindCancelAllTap: function (e) { + this.setData({ + formReason: '', + cancelAllModalShow: true + }); + }, + + bindRefuseTap: function (e) { + this.setData({ + formReason: cacheHelper.get(CACHE_REFUSE_REASON) || '', + curIdx: pageHelper.dataset(e, 'idx'), + refuseModalShow: true + }); + }, + + bindCancelCmpt: async function () { + let e = { + currentTarget: { + dataset: { + status: 99, + idx: this.data.curIdx + } + } + } + cacheHelper.set(CACHE_CANCEL_REASON, this.data.formReason, 86400 * 365); + await this.bindStatusTap(e); + }, + + bindCancelAllCmpt: async function () { + try { + let params = { + reason: this.data.formReason, + meetId: this.data.meetId, + timeMark: this.data.mark + } + let opt = { + title: '预约记录取消中' + } + await cloudHelper.callCloudSumbit('admin/meet_cancel_time_join', params, opt).then(res => { + let callback = () => { + let parent = pageHelper.getPrevPage(2); + if (parent) { + let daysSet = parent.data.daysSet; + daysSet[this.data.parentDayIdx].times[this.data.parentTimeIdx].stat = res.data; + parent.setData({ + daysSet + }); + } + + wx.redirectTo({ + url: `admin_meet_join?meetId=${this.data.meetId}&mark=${this.data.mark}&title=${this.data.titleEn}&time=${this.data.time}&dayidx=${this.data.parentDayIdx}&timeidx=${this.data.parentTimeIdx}`, + }); + } + pageHelper.showSuccToast('取消成功', 1500, callback); + }) + } catch (err) { + console.log(err); + }; + }, + + bindRefuseCmpt: async function () { + let e = { + currentTarget: { + dataset: { + status: 8, + idx: this.data.curIdx + } + } + } + cacheHelper.set(CACHE_REFUSE_REASON, this.data.formReason, 86400 * 365); + await this.bindStatusTap(e); + }, + + bindCheckinTap: async function (e) { + let flag = Number(pageHelper.dataset(e, 'flag')); + + let callback = async () => { + let idx = Number(pageHelper.dataset(e, 'idx')); + let dataList = this.data.dataList; + let joinId = dataList.list[idx]._id; + let params = { + joinId, + flag, + } + let opts = { + title: '处理中' + } + try { + await cloudHelper.callCloudSumbit('admin/join_checkin', params, opts).then(res => { + let cb = () => { + let sortIndex = this.selectComponent('#cmpt-comm-list').getSortIndex(); + if (sortIndex >= 10 && !this.data.search) { // 全部或者检索的结果 + dataList.list.splice(idx, 1); + dataList.total--; + } else { + dataList.list[idx].JOIN_IS_CHECKIN = flag; + } + this.setData({ + dataList + }); + } + + pageHelper.showSuccToast('操作成功', 1000, cb); + + + }); + } catch (err) { + console.error(err); + } + } + if (flag == 1) + pageHelper.showConfirm('确认「签到核销」?', callback); + else if (flag == 0) + pageHelper.showConfirm('确认「取消签到」?', callback); + + }, + + bindDelTap: async function (e) { + + let callback = async () => { + let idx = Number(pageHelper.dataset(e, 'idx')); + let dataList = this.data.dataList; + let joinId = dataList.list[idx]._id; + let params = { + joinId + } + let opts = { + title: '删除中' + } + try { + await cloudHelper.callCloudSumbit('admin/join_del', params, opts).then(res => { + + let cb = () => { + let dataList = this.data.dataList; + dataList.list.splice(idx, 1); + dataList.total--; + this.setData({ + dataList + }); + + let parent = pageHelper.getPrevPage(2); + if (parent) { + let daysSet = parent.data.daysSet; + daysSet[this.data.parentDayIdx].times[this.data.parentTimeIdx].stat = res.data; + parent.setData({ + daysSet + }); + } + } + + pageHelper.showSuccToast('删除成功', 1000, cb); + }); + } catch (err) { + console.error(err); + } + } + + pageHelper.showConfirm('确认删除该预约记录? 删除后用户将无法查询到本预约记录', callback); + + + }, + + bindStatusTap: async function (e) { + let status = Number(pageHelper.dataset(e, 'status')); + let oldStatus = Number(pageHelper.dataset(e, 'old')); + + let callback = async () => { + let idx = Number(pageHelper.dataset(e, 'idx')); + let dataList = this.data.dataList; + let joinId = dataList.list[idx]._id; + let params = { + joinId, + status, + reason: this.data.formReason + } + let opts = { + title: '处理中' + } + try { + await cloudHelper.callCloudSumbit('admin/join_status', params, opts).then(res => { + pageHelper.showSuccToast('操作成功', 1000); + let sortIndex = this.selectComponent('#cmpt-comm-list').getSortIndex(); + + if (sortIndex != -1 && sortIndex != 5 && !this.data.search) { // 全部或者检索的结果 + dataList.list.splice(idx, 1); + dataList.total--; + } else { + dataList.list[idx].JOIN_REASON = this.data.formReason; + dataList.list[idx].JOIN_STATUS = status; + dataList.list[idx].JOIN_IS_CHECKIN = 0; + } + + this.setData({ + cancelModalShow: false, + refuseModalShow: false, + formReason: '', + curIdx: -1, + dataList + }); + + let parent = pageHelper.getPrevPage(2); + if (parent) { + let daysSet = parent.data.daysSet; + daysSet[this.data.parentDayIdx].times[this.data.parentTimeIdx].stat = res.data; + parent.setData({ + daysSet + }); + } + }); + } catch (err) { + console.error(err); + } + } + + switch (status) { + case 99: //直接取消 + await callback(); + break; + case 1: { + + if (oldStatus == 10) + pageHelper.showConfirm('确认变更为「预约成功」?', callback); + else if (oldStatus == 99) + pageHelper.showConfirm('确认恢复为「预约成功」状态?', callback); + break; + } + } + + }, + + bindCommListCmpt: function (e) { + + if (helper.isDefined(e.detail.search)) + this.setData({ + search: '', + sortType: '', + }); + else { + let dataList = e.detail.dataList; + if (dataList) { + for (let k in dataList.list) { + dataList.list[k].fold = this.data.isAllFold; + } + } + + this.setData({ + dataList, + }); + if (e.detail.sortType) + this.setData({ + sortType: e.detail.sortType, + }); + } + + }, + + // 修改与展示状态菜单 + _getSearchMenu: function () { + + let sortItems = []; + let sortMenus = [{ + label: '全部', + type: '', + value: '' + }, { + label: `成功`, + type: 'status', + value: 1 + }, + + { + label: `已取消`, + type: 'status', + value: 1099 + }, + { + label: `已签到`, + type: 'checkin', + value: 1 + }, + { + label: `未签到`, + type: 'checkin', + value: 0 + } + + ] + this.setData({ + sortItems, + sortMenus + }) + + + }, + + bindClearReasonTap: function (e) { + this.setData({ + formReason: '' + }) + } +}) \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/join/admin_meet_join.json b/miniprogram/pages/admin/meet/join/admin_meet_join.json new file mode 100644 index 0000000..e2df8e2 --- /dev/null +++ b/miniprogram/pages/admin/meet/join/admin_meet_join.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + + }, + "navigationBarBackgroundColor": "#2499f2", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "分时段预约名单" +} \ No newline at end of file diff --git a/miniprogram/pages/admin/meet/join/admin_meet_join.wxml b/miniprogram/pages/admin/meet/join/admin_meet_join.wxml new file mode 100644 index 0000000..b965bc9 --- /dev/null +++ b/miniprogram/pages/admin/meet/join/admin_meet_join.wxml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + ({{time}}) + 共有{{dataList.total}}条符合条件记录 + 全部展开 + 全部收起 + + + + + + {{item.JOIN_MEET_DAY}} ({{item.JOIN_MEET_TIME_START}}~{{item.JOIN_MEET_TIME_END}}) + + + 复制资料 + + + + + + + 状态 + + + 预约成功 + ,已签到 + ,未签到 + + 用户取消 + 系统取消 + + + + + 取消原因 + + {{item.JOIN_REASON||'未填'}} + + + 未通过原因 + + {{item.JOIN_REASON||'未填'}} + + + + {{form.title}} + + {{valItem}} + {{valItem}} + + 更多资料... + + 收起 + + + 提交/变更 + + {{item.JOIN_EDIT_TIME}} + + + + + 签到核销 + + 取消签到 + + + + 取消预约 + + + + 恢复预约 + + + 删除 + + + + + {{index+1}} + + + + + + +

pgMgrzb=5H1rYfz95H1%zv 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 literal 0 HcmV?d00001 diff --git "a/demo/\344\272\214\347\273\264\347\240\201.png" "b/demo/\344\272\214\347\273\264\347\240\201.png" new file mode 100644 index 0000000000000000000000000000000000000000..e1b0cf3efafd0628fdb6f9e501f91779a4240b04 GIT binary patch literal 189719 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 z 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 literal 0 HcmV?d00001 diff --git a/miniprogram/app.js b/miniprogram/app.js new file mode 100644 index 0000000..cbc70d9 --- /dev/null +++ b/miniprogram/app.js @@ -0,0 +1,47 @@ +const setting = require('./setting/setting.js'); + +App({ + onLaunch: function (options) { + + if (!wx.cloud) { + console.error('请使用 2.2.3 或以上的基础库以使用云能力') + } else { + wx.cloud.init({ + // env 参数说明: + // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 + // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 + // 如不填则使用默认环境(第一个创建的环境) + // env: 'my-env-id', + env: setting.CLOUD_ID, + traceUser: true, + }) + } + + this.globalData = {}; + + // 用于自定义导航栏 + wx.getSystemInfo({ + success: e => { + this.globalData.statusBar = e.statusBarHeight; + let capsule = wx.getMenuButtonBoundingClientRect(); + if (capsule) { + this.globalData.custom = capsule; + this.globalData.customBar = capsule.bottom + capsule.top - e.statusBarHeight; + } else { + this.globalData.customBar = e.statusBarHeight + 50; + } + } + }); + }, + + + /* + onShow: function (options) { + // 启动,或者从后台进入前台 + //GroupBiz.initGroupShareTicket(options); + }, + onHide: function () { + // 小程序从前台进入后台 + //GroupBiz.clearGroupShareTicket(); + }*/ +}) \ No newline at end of file diff --git a/miniprogram/app.json b/miniprogram/app.json new file mode 100644 index 0000000..c17ac3f --- /dev/null +++ b/miniprogram/app.json @@ -0,0 +1,102 @@ +{ + "pages": [ + "projects/A00/default/index/default_index", + "projects/A00/about/index/about_index", + "projects/A00/about/contact/about_contact", + "projects/A00/calendar/index/calendar_index", + "projects/A00/meet/index/meet_index", + "projects/A00/meet/join/meet_join", + "projects/A00/meet/detail/meet_detail", + "projects/A00/meet/self/meet_self", + "projects/A00/my/index/my_index", + "projects/A00/my/edit/my_edit", + "projects/A00/my/join/my_join", + "projects/A00/my/join_detail/my_join_detail", + "projects/A00/news/index/news_index", + "projects/A00/news/detail/news_detail", + "projects/A00/news/cate1/news_cate1", + "projects/A00/news/cate2/news_cate2", + "projects/A00/search/search", + + "cmpts/public/form/form_set/field/form_set_field", + "pages/admin/index/home/admin_home", + "pages/admin/index/login/admin_login", + "pages/admin/content/admin_content", + "pages/admin/meet/content/admin_meet_content", + "pages/admin/meet/cover/admin_meet_cover", + "pages/admin/meet/edit/admin_meet_edit", + "pages/admin/meet/export/admin_join_export", + "pages/admin/meet/join/admin_meet_join", + "pages/admin/meet/list/admin_meet_list", + "pages/admin/meet/record/admin_record_list", + "pages/admin/meet/scan/admin_meet_scan", + "pages/admin/meet/self/admin_meet_self", + "pages/admin/meet/temp/admin_temp_select", + "pages/admin/meet/time/admin_meet_time", + "pages/admin/mgr/log/admin_log_list", + "pages/admin/news/list/admin_news_list", + "pages/admin/news/add/admin_news_add", + "pages/admin/news/edit/admin_news_edit", + "pages/admin/news/content/admin_news_content", + "pages/admin/setup/about/admin_setup_about", + "pages/admin/setup/contact/admin_setup_contact", + "pages/admin/setup/qr/admin_setup_qr", + "pages/admin/user/list/admin_user_list", + "pages/admin/user/export/admin_user_export" + + ], + "window": { + "backgroundColor": "#f1f1f1", + "backgroundTextStyle": "dark", + "navigationBarBackgroundColor": "#039898", + "navigationBarTitleText": "核酸检测预约小程序", + "navigationBarTextStyle": "white" + }, + "tabBar": { + "custom": false, + "backgroundColor": "#fefefe", + "color": "#999999", + "selectedColor": "#039898", + "list": [{ + "pagePath": "projects/A00/default/index/default_index", + "text": "首页", + "iconPath": "/projects/A00/skin/images/tabbar/home.png", + "selectedIconPath": "/projects/A00/skin/images/tabbar/home_cur.png" + }, + { + "pagePath": "projects/A00/news/cate1/news_cate1", + "text": "防疫动态", + "iconPath": "/projects/A00/skin/images/tabbar/cate1.png", + "selectedIconPath": "/projects/A00/skin/images/tabbar/cate1_cur.png" + }, + { + "pagePath": "projects/A00/news/cate2/news_cate2", + "text": "预约规则", + "iconPath": "/projects/A00/skin/images/tabbar/cate2.png", + "selectedIconPath": "/projects/A00/skin/images/tabbar/cate2_cur.png" + }, + { + "pagePath": "projects/A00/calendar/index/calendar_index", + "text": "预约日历", + "iconPath": "/projects/A00/skin/images/tabbar/day.png", + "selectedIconPath": "/projects/A00/skin/images/tabbar/day_cur.png" + }, + { + "pagePath": "projects/A00/my/index/my_index", + "text": "我的", + "iconPath": "/projects/A00/skin/images/tabbar/my.png", + "selectedIconPath": "/projects/A00/skin/images/tabbar/my_cur.png" + } + ] + }, + "permission": {}, + "useExtendedLib": { + "weui": true + }, + "usingComponents": { + "cmpt-comm-list": "/cmpts/public/list/comm_list_cmpt", + "cmpt-picker": "/cmpts/public/picker/picker_cmpt", + "cmpt-modal": "/cmpts/public/modal/modal_cmpt" + }, + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss new file mode 100644 index 0000000..036dc00 --- /dev/null +++ b/miniprogram/app.wxss @@ -0,0 +1,2 @@ +@import "style/comm/comm.wxss"; +@import "style/project/base/project.wxss"; diff --git a/miniprogram/behavior/about_contact_bh.js b/miniprogram/behavior/about_contact_bh.js new file mode 100644 index 0000000..c6900ce --- /dev/null +++ b/miniprogram/behavior/about_contact_bh.js @@ -0,0 +1,92 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + const accountInfo = wx.getAccountInfoSync(); + this.setData({ + accountInfo + }); + + this._loadDetail(); + }, + + _loadDetail: async function () { + let opts = { + title: 'bar' + } + let about = await cloudHelper.callCloudData('home/setup_all', {}, opts); + if (!about) { + this.setData({ + isLoad: null + }); + return; + } + + if (about) this.setData({ + about, + isLoad: true + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/about_index_bh.js b/miniprogram/behavior/about_index_bh.js new file mode 100644 index 0000000..c6900ce --- /dev/null +++ b/miniprogram/behavior/about_index_bh.js @@ -0,0 +1,92 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + const accountInfo = wx.getAccountInfoSync(); + this.setData({ + accountInfo + }); + + this._loadDetail(); + }, + + _loadDetail: async function () { + let opts = { + title: 'bar' + } + let about = await cloudHelper.callCloudData('home/setup_all', {}, opts); + if (!about) { + this.setData({ + isLoad: null + }); + return; + } + + if (about) this.setData({ + about, + isLoad: true + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/calendar_index_bh.js b/miniprogram/behavior/calendar_index_bh.js new file mode 100644 index 0000000..17e1509 --- /dev/null +++ b/miniprogram/behavior/calendar_index_bh.js @@ -0,0 +1,134 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const timeHelper = require('../helper/time_helper.js'); +const setting = require('../setting/setting.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + list: [], + + day: '', + hasDays: [] + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (setting.IS_SUB) wx.hideHomeButton(); + }, + + _loadList: async function () { + let params = { + day: this.data.day + } + let opts = { + title: this.data.isLoad ? 'bar' : 'bar' + } + try { + this.setData({ + list: null + }); + await cloudHelper.callCloudSumbit('meet/list_by_day', params, opts).then(res => { + this.setData({ + list: res.data, + isLoad: true + }); + }); + } catch (err) { + console.error(err); + } + }, + + _loadHasList: async function () { + let params = { + day: timeHelper.time('Y-M-D') + } + let opts = { + title: 'bar' + } + try { + await cloudHelper.callCloudSumbit('meet/list_has_day', params, opts).then(res => { + this.setData({ + hasDays: res.data, + }); + }); + } catch (err) { + console.error(err); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: async function () { + this.setData({ + day: timeHelper.time('Y-M-D') + }, async () => { + await this._loadHasList(); + await this._loadList(); + }); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadHasList(); + await this._loadList(); + wx.stopPullDownRefresh(); + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + bindClickCmpt: async function (e) { + let day = e.detail.day; + this.setData({ + day + }, async () => { + await this._loadList(); + }) + + }, + + bindMonthChangeCmpt: function (e) { + console.log(e.detail) + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/default_index_bh.js b/miniprogram/behavior/default_index_bh.js new file mode 100644 index 0000000..ad77aee --- /dev/null +++ b/miniprogram/behavior/default_index_bh.js @@ -0,0 +1,76 @@ +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); +const setting = require('../setting/setting.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (setting.IS_SUB) wx.hideHomeButton(); + }, + + _loadList: async function () { + let opts = { + title: 'bar' + } + await cloudHelper.callCloudSumbit('news/home_list', {}, opts).then(res => { + this.setData({ + dataList: res.data + }); + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: async function () { + this._loadList(); + }, + + onPullDownRefresh: async function () { + await this._loadList(); + wx.stopPullDownRefresh(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/meet_detail_bh.js b/miniprogram/behavior/meet_detail_bh.js new file mode 100644 index 0000000..caa61a3 --- /dev/null +++ b/miniprogram/behavior/meet_detail_bh.js @@ -0,0 +1,227 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const AdminMeetBiz = require('../biz/admin_meet_biz.js'); +const MeetBiz = require('../biz/meet_biz.js'); +const setting = require('../setting/setting.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + + + tabCur: 0, + mainCur: 0, + verticalNavTop: 0, + + showMind: true, + showTime: false, + }, + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + if (!pageHelper.getOptions(this, options)) return; + + this._loadDetail(); + }, + + _loadDetail: async function () { + let id = this.data.id; + if (!id) return; + + let params = { + id, + }; + let opt = { + title: 'bar' + }; + let meet = await cloudHelper.callCloudData('meet/view', params, opt); + if (!meet) { + this.setData({ + isLoad: null + }) + return; + } + + + this.setData({ + isLoad: true, + meet, + + canNullTime: setting.MEET_CAN_NULL_TIME + }); + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + bindJoinTap: async function (e) { + let dayIdx = pageHelper.dataset(e, 'dayidx'); + let timeIdx = pageHelper.dataset(e, 'timeidx'); + + let time = this.data.meet.MEET_DAYS_SET[dayIdx].times[timeIdx]; + + + if (time.error) { + if (time.error.includes('预约')) + return pageHelper.showModal('该时段' + time.error + ',换一个时段试试吧!'); + else + return pageHelper.showModal('该时段预约' + time.error + ',换一个时段试试吧!'); + } + + let meetId = this.data.id; + let timeMark = time.mark; + + let callback = async () => { + try { + let opts = { + title: '请稍候', + } + let params = { + meetId, + timeMark + } + await cloudHelper.callCloudSumbit('meet/before_join', params, opts).then(res => { + wx.navigateTo({ + url: `../join/meet_join?id=${meetId}&timeMark=${timeMark}`, + }) + }); + } catch (ex) { + console.log(ex); + } + } + MeetBiz.subscribeMessageMeet(callback); + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + onPageScroll: function (e) { + console.log(111) + if (e.scrollTop > 100) { + this.setData({ + topShow: true + }); + } else { + this.setData({ + topShow: false + }); + } + }, + + bindTopTap: function () { + wx.pageScrollTo({ + scrollTop: 0 + }) + }, + + bindVerticalMainScroll: function (e) { + if (!this.data.isLoad) return; + + let list = this.data.meet.MEET_DAYS_SET; + let tabHeight = 0; + + for (let i = 0; i < list.length; i++) { + let view = wx.createSelectorQuery().in(this).select("#main-" + i); + view.fields({ + size: true + }, data => { + list[i].top = tabHeight; + tabHeight = tabHeight + data.height; + list[i].bottom = tabHeight; + }).exec(); + } + + let scrollTop = e.detail.scrollTop + 20; // + i*0.5; //TODO + for (let i = 0; i < list.length; i++) { + + if (scrollTop > list[i].top && scrollTop < list[i].bottom) { + + this.setData({ + verticalNavTop: (i - 1) * 50, + tabCur: i + }) + return false; + } + } + }, + + bindTabSelectTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + this.setData({ + tabCur: idx, + mainCur: idx, + verticalNavTop: (idx - 1) * 50 + }) + }, + + bindShowMindTap: function (e) { + this.setData({ + showMind: true, + showTime: false + }); + }, + + bindShowTimeTap: function (e) { + this.setData({ + showMind: false, + showTime: true + }); + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/meet_index_bh.js b/miniprogram/behavior/meet_index_bh.js new file mode 100644 index 0000000..a31ae74 --- /dev/null +++ b/miniprogram/behavior/meet_index_bh.js @@ -0,0 +1,108 @@ +const pageHelper = require('../helper/page_helper.js'); +const dataHelper = require('../helper/data_helper.js'); +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + + }, + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (options && options.id) { + this.setData({ + _params: { + typeId: options.id, + } + }); + } else { + this.setData({ + _params: { + typeId: 0, + } + }); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: async function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + bindCommListCmpt: function (e) { + pageHelper.commListListener(this, e); + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + _setTypeTitle: function (skin, typeId = null) { + + wx.setNavigationBarTitle({ + title: skin.MEET_NAME + }); + + // 获取当前小程序的页面栈 + let pages = getCurrentPages(); + // 数组中索引最大的页面--当前页面 + let currentPage = pages[pages.length - 1]; + // 附加参数 + if (currentPage.options && currentPage.options.id) { + typeId = currentPage.options.id; + } + let typeList = dataHelper.getSelectOptions(skin.MEET_TYPE); + for (let k in typeList) { + if (typeList[k].val == typeId) { + wx.setNavigationBarTitle({ + title: typeList[k].label + }); + + if (typeList[k].ext) { //样式 + this.setData({ + listMode: typeList[k].ext + }); + } else { + this.setData({ + listMode: 'rightpic' + }); + } + } + } + return ''; + + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/meet_join_bh.js b/miniprogram/behavior/meet_join_bh.js new file mode 100644 index 0000000..59b1eea --- /dev/null +++ b/miniprogram/behavior/meet_join_bh.js @@ -0,0 +1,175 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const setting = require('../setting/setting.js'); +const MeetBiz = require('../biz/meet_biz.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + + forms: [{ + mark: 'PCERZITIQH', + val: [2, 1], + title: 't111', + type: 'line' + }, { + mark: 'SDFHUJWMLF', + val: [false], + title: 't111', + type: 'line' + }, { + mark: 'KWTHSZLIVF1', + val: '555', + title: '电话1', + type: 'line' + }, { + mark: 'ccc', + val: ['广东省', '深圳市', ''], + title: '地区1', + type: 'mobile' + }, { + mark: 'ALETOSCFPZ', + val: '777', + title: '女朋友', + type: 'idcard' + }], + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (!pageHelper.getOptions(this, options)) return; + if (!pageHelper.getOptions(this, options, 'timeMark')) return; + + this._loadDetail(); + + }, + + _loadDetail: async function () { + let id = this.data.id; + if (!id) return; + + let timeMark = this.data.timeMark; + if (!timeMark) return; + + let params = { + meetId: id, + timeMark + }; + let opt = { + title: 'bar' + }; + let meet = await cloudHelper.callCloudData('meet/detail_for_join', params, opt); + if (!meet) { + this.setData({ + isLoad: null + }) + return; + } + + + this.setData({ + isLoad: true, + meet, + }); + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + + + url: function (e) { + pageHelper.url(e, this); + }, + + onPageScroll: function (e) { + // 回页首按钮 + pageHelper.showTopBtn(e, this); + + }, + + bindCheckTap: async function (e) { + this.selectComponent("#form-show").checkForms(); + }, + + bindSubmitCmpt: async function (e) { + let forms = e.detail; + + let callback = async () => { + try { + let opts = { + title: '提交中' + } + let params = { + meetId: this.data.id, + timeMark: this.data.timeMark, + forms + } + await cloudHelper.callCloudSumbit('meet/join', params, opts).then(res => { + let content = '预约成功!' + + let joinId = res.data.joinId; + wx.showModal({ + title: '温馨提示', + showCancel: false, + content, + success() { + let ck = () => { + wx.reLaunch({ + url: pageHelper.fmtURLByPID('/pages/my/join_detail/my_join_detail?flag=home&id=' + joinId), + }) + } + ck(); + } + }) + }) + } catch (err) { + console.log(err); + }; + } + + // 消息订阅 + await MeetBiz.subscribeMessageMeet(callback); + + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/meet_self_bh.js b/miniprogram/behavior/meet_self_bh.js new file mode 100644 index 0000000..bd7e58a --- /dev/null +++ b/miniprogram/behavior/meet_self_bh.js @@ -0,0 +1,91 @@ +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (options && options.scene) { + let params = { + timeMark: options.scene + }; + let opts = { + title: 'bar' + } + try { + await cloudHelper.callCloudSumbit('my/my_join_checkin', params, opts).then(res => { + let cb = () => { + wx.reLaunch({ + url: pageHelper.fmtURLByPID('/pages/my/index/my_index'), + }); + } + pageHelper.showModal(res.data.ret, '温馨提示', cb); + }); + } catch (err) { + console.error(err); + } + } else { + pageHelper.showModal('签到码扫描错误,请关闭本小程序,使用「微信›扫一扫」重新扫码'); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/my_edit_bh.js b/miniprogram/behavior/my_edit_bh.js new file mode 100644 index 0000000..59aefb0 --- /dev/null +++ b/miniprogram/behavior/my_edit_bh.js @@ -0,0 +1,188 @@ +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); +const validate = require('../helper/validate.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + await this._loadDetail(); + }, + + _loadDetail: async function (e) { + + let opts = { + title: 'bar' + } + let user = await cloudHelper.callCloudData('passport/my_detail', {}, opts); + if (!user) { + this.setData({ + isLoad: true, + formName: '', + formMobile: '', + formCity: '', + formWork: '', + formTrade: '' + }); + wx.setNavigationBarTitle({ + title: '注册' + }); + return; + }; + + this.setData({ + isLoad: true, + formName: user.USER_NAME, + formMobile: user.USER_MOBILE, + formTrade: user.USER_TRADE, + formWork: user.USER_WORK, + formCity: user.USER_CITY + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + bindGetPhoneNumber: async function (e) { + if (e.detail.errMsg == "getPhoneNumber:ok") { + + let cloudID = e.detail.cloudID; + let params = { + cloudID + }; + let opt = { + title: '手机验证中' + }; + await cloudHelper.callCloudSumbit('passport/phone', params, opt).then(res => { + let phone = res.data; + if (!phone || phone.length < 11) + wx.showToast({ + title: '手机号码获取失败,请重新绑定手机号码', + icon: 'none', + duration: 4000 + }); + else { + let idx = pageHelper.dataset(e, 'idx'); + this._setForm(idx, phone); + } + }); + } else + wx.showToast({ + title: '手机号码获取失败,请重新绑定手机号码', + icon: 'none' + }); + }, + bindGetPhoneNumber: async function (e) { + if (e.detail.errMsg == "getPhoneNumber:ok") { + + let cloudID = e.detail.cloudID; + let params = { + cloudID + }; + let opt = { + title: '手机验证中' + }; + await cloudHelper.callCloudSumbit('passport/phone', params, opt).then(res => { + let phone = res.data; + if (!phone || phone.length < 11) + wx.showToast({ + title: '手机号码获取失败,请重新填写手机号码', + icon: 'none', + duration: 2000 + }); + else { + this.setData({ + formMobile: phone + }); + } + }); + } else + wx.showToast({ + title: '手机号码获取失败,请重新填写手机号码', + icon: 'none' + }); + }, + + + bindSubmitTap: async function (e) { + try { + let data = this.data; + let mobile = data.formMobile; + if (mobile.length != 11) return pageHelper.showModal('请填写正确的手机号码'); + + let CHECK_FORM = { + name: 'formName|must|string|min:1|max:20|name=姓名', + mobile: 'formMobile|must|len:11|name=手机', + city: 'formCity|string|max:100|name=所在城市', + work: 'formWork|string|max:100|name=所在单位', + trade: 'formTrade|string|max:100|name=行业领域', + }; + // 数据校验 + data = validate.check(data, CHECK_FORM, this); + if (!data) return; + + let opts = { + title: '提交中' + } + await cloudHelper.callCloudSumbit('passport/edit_base', data, opts).then(res => { + let callback = () => { + wx.navigateBack(); + } + pageHelper.showSuccToast('提交成功', 1500, callback); + }); + } catch (err) { + console.error(err); + } + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/my_index_bh.js b/miniprogram/behavior/my_index_bh.js new file mode 100644 index 0000000..9b936ae --- /dev/null +++ b/miniprogram/behavior/my_index_bh.js @@ -0,0 +1,133 @@ +const cacheHelper = require('../helper/cache_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); +const timeHelper = require('../helper/time_helper.js'); +const PassortBiz = require('../biz/passport_biz.js'); +const setting = require('../setting/setting.js'); + +module.exports = Behavior({ + data: { + myTodayList: null + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (setting.IS_SUB) wx.hideHomeButton(); + }, + + _loadTodayList: async function () { + try { + let params = { + day: timeHelper.time('Y-M-D') + } + let opts = { + title: 'bar' + } + await cloudHelper.callCloudSumbit('my/my_join_someday', params, opts).then(res => { + this.setData({ + myTodayList: res.data + }); + }); + } catch (err) { + console.log(err) + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: async function () { + await this._loadTodayList(); + this._loadUser(); + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + _loadUser: async function (e) { + + let opts = { + title: 'bar' + } + let user = await cloudHelper.callCloudData('passport/my_detail', {}, opts); + if (!user) return; + + this.setData({ + user + }) + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadTodayList(); + await this._loadUser(); + wx.stopPullDownRefresh(); + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () {}, + + url: function (e) { + pageHelper.url(e, this); + }, + + setTap: function (e, skin) { + let itemList = ['清除缓存', '后台管理']; + wx.showActionSheet({ + itemList, + success: async res => { + let idx = res.tapIndex; + if (idx == 0) { + cacheHelper.clear(); + pageHelper.showNoneToast('清除缓存成功'); + } + + if (idx == 1) { + pageHelper.setSkin(skin); + if (setting.IS_SUB) { + PassortBiz.adminLogin('admin', '123456', this); + } else { + wx.reLaunch({ + url: '/pages/admin/index/login/admin_login', + }); + } + + } + + }, + fail: function (res) {} + }) + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/my_join_bh.js b/miniprogram/behavior/my_join_bh.js new file mode 100644 index 0000000..c90ac39 --- /dev/null +++ b/miniprogram/behavior/my_join_bh.js @@ -0,0 +1,156 @@ +const MeetBiz = require('../biz/meet_biz.js'); +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + bindCommListCmpt: function (e) { + pageHelper.commListListener(this, e); + }, + + /** 搜索菜单设置 */ + getSearchMenu: function (skin, that) { + + wx.setNavigationBarTitle({ + title: '我的' + skin.MEET_NAME + }); + + let sortItem1 = [{ + label: '排序', + type: '', + value: '' + }, { + label: '按时间倒序', + type: 'timedesc', + value: '' + }, { + label: '按时间正序', + type: 'timeasc', + value: '' + }]; + + let sortItems = [sortItem1]; + let sortMenus = [{ + label: '全部', + type: '', + value: '' + }, { + label: '今日', + type: 'today', + value: '' + }, { + label: '明日', + type: 'tomorrow', + value: '' + }, { + label: '已预约', + type: 'succ', + value: '' + }, + { + label: '已取消', + type: 'cancel', + value: '' + } + ] + + that.setData({ + sortItems, + sortMenus + }); + + }, + bindCancelTap: async function (e) { + let callback = async () => { + let joinId = pageHelper.dataset(e, 'id'); + try { + let params = { + joinId + } + let opts = { + title: '取消中' + } + + await cloudHelper.callCloudSumbit('my/my_join_cancel', params, opts).then(res => { + pageHelper.modifyListNode(joinId, this.data.dataList.list, 'JOIN_STATUS', 10, '_id'); + this.setData({ + dataList: this.data.dataList + }); + pageHelper.showNoneToast('已取消'); + }); + } catch (err) { + console.log(err); + } + } + + pageHelper.showConfirm('确认取消该预约?', callback); + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/my_join_detail_bh.js b/miniprogram/behavior/my_join_detail_bh.js new file mode 100644 index 0000000..1e2d1b2 --- /dev/null +++ b/miniprogram/behavior/my_join_detail_bh.js @@ -0,0 +1,159 @@ +const pageHelper = require('../helper/page_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); +const timeHelper = require('../helper/time_helper.js'); +const qrcodeLib = require('../lib/tools/qrcode_lib.js'); +const MeetBiz = require('../biz/meet_biz.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + + isShowHome: false, + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + if (!pageHelper.getOptions(this, options)) return; + this._loadDetail(); + + if (options && options.flag == 'home') { + this.setData({ + isShowHome: true + }); + } + }, + + _loadDetail: async function (e) { + let id = this.data.id; + if (!id) return; + + let params = { + joinId: id + } + let opts = { + title: 'bar' + } + try { + let join = await cloudHelper.callCloudData('my/my_join_detail', params, opts); + if (!join) { + this.setData({ + isLoad: null + }) + return; + } + + let qrImageData = qrcodeLib.drawImg('meet=' + join.JOIN_CODE, { + typeNumber: 1, + errorCorrectLevel: 'L', + size: 100 + }); + + this.setData({ + isLoad: true, + join, + qrImageData + }); + } catch (err) { + console.error(err); + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + bindCancelTap: async function (e) { + let callback = async () => { + try { + let params = { + joinId: this.data.id + } + let opts = { + title: '取消中' + } + + await cloudHelper.callCloudSumbit('my/my_join_cancel', params, opts).then(res => { + let join = this.data.join; + join.JOIN_STATUS = 10; + this.setData({ + join + }); + pageHelper.showNoneToast('已取消'); + }); + } catch (err) { + console.log(err); + } + } + + pageHelper.showConfirm('确认取消该预约?', callback); + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + bindNoticeTap: function (e) { + let callback = () => { + pageHelper.showSuccToast('开启成功'); + } + MeetBiz.subscribeMessageMeet(callback); + }, + + bindCalendarTap: function (e) { + let join = this.data.join; + let title = join.JOIN_MEET_TITLE; + + let startTime = timeHelper.time2Timestamp(join.JOIN_MEET_DAY + ' ' + join.JOIN_MEET_TIME_START + ':00') / 1000; + let endTime = timeHelper.time2Timestamp(join.JOIN_MEET_DAY + ' ' + join.JOIN_MEET_TIME_END + ':00') / 1000; + + MeetBiz.addMeetPhoneCalendar(title, startTime, endTime); + } + }, + +}) \ No newline at end of file diff --git a/miniprogram/behavior/news_detail_bh.js b/miniprogram/behavior/news_detail_bh.js new file mode 100644 index 0000000..a962932 --- /dev/null +++ b/miniprogram/behavior/news_detail_bh.js @@ -0,0 +1,112 @@ +const cloudHelper = require('../helper/cloud_helper.js'); +const pageHelper = require('../helper/page_helper.js'); + + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + isLoad: false, + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + + if (!pageHelper.getOptions(this, options)) return; + + this._loadDetail(); + + }, + + _loadDetail: async function () { + let id = this.data.id; + if (!id) return; + + let params = { + id, + }; + let opt = { + title: 'bar' + }; + let news = await cloudHelper.callCloudData('news/view', params, opt); + if (!news) { + this.setData({ + isLoad: null + }) + return; + } + + + this.setData({ + isLoad: true, + news, + + }); + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: async function () { + await this._loadDetail(); + wx.stopPullDownRefresh(); + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + onPageScroll: function (e) { + // 回页首按钮 + pageHelper.showTopBtn(e, this); + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function (res) { + + } + } + +}) \ No newline at end of file diff --git a/miniprogram/behavior/news_index_bh.js b/miniprogram/behavior/news_index_bh.js new file mode 100644 index 0000000..45d5354 --- /dev/null +++ b/miniprogram/behavior/news_index_bh.js @@ -0,0 +1,125 @@ +const NewsBiz = require('../biz/news_biz.js'); +const pageHelper = require('../helper/page_helper.js'); +let dataHelper = require('../helper/data_helper.js'); +const setting = require('../setting/setting.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + if (options && options.id) { + this.setData({ + _params: { + cateId: options.id, + } + }); + } else { + this.setData({ + _params: { + cateId: 0, + } + }); + } + + if (setting.IS_SUB) wx.hideHomeButton(); + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: async function () { + /* + // 获取当前小程序的页面栈 + let pages = getCurrentPages(); + // 数组中索引最大的页面--当前页面 + let currentPage = pages[pages.length - 1]; + // 附加参数 + if (currentPage.options && currentPage.options.id) { + this.setData({ + _params: { + cateId: currentPage.options.id, + } + }); + } + */ + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: async function (e) { + pageHelper.url(e, this); + }, + + bindCommListCmpt: function (e) { + pageHelper.commListListener(this, e); + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + + _setCateTitle: function (skin, cateId = null) { + + // 获取当前小程序的页面栈 + let pages = getCurrentPages(); + // 数组中索引最大的页面--当前页面 + let currentPage = pages[pages.length - 1]; + // 附加参数 + if (currentPage.options && currentPage.options.id) { + cateId = currentPage.options.id; + } + let cateList = dataHelper.getSelectOptions(skin.NEWS_CATE); + for (let k in cateList) { + if (cateList[k].val == cateId) { + wx.setNavigationBarTitle({ + title: cateList[k].label + }); + + if (cateList[k].ext) { //样式 + this.setData({ + listMode: cateList[k].ext + }); + } else { + this.setData({ + listMode: 'leftpic' + }); + } + + } + } + return ''; + + } + } +}) \ No newline at end of file diff --git a/miniprogram/behavior/public_hint_bh.js b/miniprogram/behavior/public_hint_bh.js new file mode 100644 index 0000000..9aa065d --- /dev/null +++ b/miniprogram/behavior/public_hint_bh.js @@ -0,0 +1,64 @@ +const pageHelper = require('../helper/page_helper.js'); +const PassportBiz = require('../biz/passport_biz.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + type: -1, //0-需要注册提示 1=用户异常提示 2=认证中提示 9=自定义错误 + msg: '' + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + + let type = -1; + let msg = (options && options.msg) ? decodeURIComponent(options.msg) : ''; + + if (options && options.type) type = options.type; + + this.setData({ + type, + msg + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + } + } + +}) \ No newline at end of file diff --git a/miniprogram/behavior/search_bh.js b/miniprogram/behavior/search_bh.js new file mode 100644 index 0000000..db6799b --- /dev/null +++ b/miniprogram/behavior/search_bh.js @@ -0,0 +1,132 @@ +const SearchBiz = require('../biz/search_biz.js'); +const pageHelper = require('../helper/page_helper.js'); +const PassportBiz = require('../biz/passport_biz.js'); + +module.exports = Behavior({ + + /** + * 页面的初始数据 + */ + data: { + type: '', // 来自哪个业务标识 + returnUrl: '', //搜索完返回哪个地址 + cacheName: '', //本业务搜索历史缓存 + search: '', //搜索关键字 + + hisKeys: [] + }, + + methods: { + /** + * 生命周期函数--监听页面加载 + */ + onLoad: async function (options) { + + let type = options.type; + let returnUrl = options.returnUrl; + + let cacheName = 'SERACH_HIS_' + type; + + let hisKeys = SearchBiz.getHistory(cacheName); + if (hisKeys) + this.setData({ + hisKeys + }); + + this.setData({ + hisKeys, + type, + cacheName, + returnUrl + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + url: function (e) { + pageHelper.url(e, this); + }, + + + /** + * 点击确认搜索 + */ + bindSearchConfirm: function (e) { + + if (!this.data.type) return; + + let search = this.data.search.trim(); + if (!search) return; + + // 历史记录 + let hisKeys = SearchBiz.addHistory(this.data.cacheName, search); + this.setData({ + search, + hisKeys + }); + + let prevPage = pageHelper.getPrevPage(); + // 直接调用上一个页面的setData()方法,把数据存到上一个页面中去 + prevPage.setData({ + search, + }) + wx.navigateBack({ + delta: 0, + }); + + }, + + // 清空搜索记录 + bindDelHisTap: function (e) { + SearchBiz.clearHistory(this.data.cacheName); + this.setData({ + hisKeys: [] + }); + }, + + //清除关键字 + bindClearKeyTap: function (e) { + this.setData({ + search: '' + }); + }, + + // 点击历史 + bindKeyTap: function (e) { + let search = e.currentTarget.dataset.key.trim(); + if (search) { + this.setData({ + search + }); + this.bindSearchConfirm(e); + } + } + } + +}) \ No newline at end of file diff --git a/miniprogram/biz/admin_biz.js b/miniprogram/biz/admin_biz.js new file mode 100644 index 0000000..b1aa265 --- /dev/null +++ b/miniprogram/biz/admin_biz.js @@ -0,0 +1,106 @@ +/** + * Notes: 后台管理模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); +const cacheHelper = require('../helper/cache_helper.js'); +const setting = require('../setting/setting.js'); +const constants = require('../biz/constants.js'); + +class AdminBiz extends BaseBiz { + + // 文章内容 + static setContentDesc(that) { + let contentDesc = '未填写'; + let content = that.data.formContent; + let imgCnt = 0; + let textCnt = 0; + for (let k in content) { + if (content[k].type == 'img') imgCnt++; + if (content[k].type == 'text') textCnt++; + } + + if (imgCnt || textCnt) { + contentDesc = textCnt + '段文字,' + imgCnt + '张图片'; + } + that.setData({ + contentDesc + }); + } + + /** + * 管理员登录 + * @param {*} admin + */ + static adminLogin(admin) { + cacheHelper.set(constants.CACHE_ADMIN, admin, setting.ADMIN_TOKEN_EXPIRE); + } + + /** + * 清空管理员登录 + */ + static clearAdminToken() { + cacheHelper.remove(constants.CACHE_ADMIN); + } + + /** + * 获取管理员信息 + */ + static getAdminToken() { + return cacheHelper.get(constants.CACHE_ADMIN); + } + + /** + * 获取管理员电话 + */ + static getAdminName() { + let admin = cacheHelper.get(constants.CACHE_ADMIN); + if (!admin) return ''; + return admin.name; + } + + /** + * 是否超级管理员 + */ + static isSuperAdmin() { + let admin = cacheHelper.get(constants.CACHE_ADMIN); + if (!admin) return false; + return (admin.type == 1); + } + + // 登录状态判定 + static isAdmin(that) { + wx.setNavigationBarColor({ //顶部 + backgroundColor: '#2499f2', + frontColor: '#ffffff', + }); + + let admin = cacheHelper.get(constants.CACHE_ADMIN); + if (!admin) { + + return wx.showModal({ + title: '', + content: '登录已过期,请重新登录', + showCancel: false, + confirmText: '确定', + success: res => { + wx.reLaunch({ + url: '/pages/admin/index/login/admin_login', + }); + return false; + } + }); + + } + + that.setData({ + isAdmin: true + }); + return true; + } + +} + +module.exports = AdminBiz; \ No newline at end of file diff --git a/miniprogram/biz/admin_meet_biz.js b/miniprogram/biz/admin_meet_biz.js new file mode 100644 index 0000000..77b29b7 --- /dev/null +++ b/miniprogram/biz/admin_meet_biz.js @@ -0,0 +1,522 @@ +/** + * Notes:预约后台管理模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); +const cloudHelper = require('../helper/cloud_helper.js'); +const dataHelper = require('../helper/data_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const timeHelper = require('../helper/time_helper.js'); +const setting = require('../setting/setting.js'); +const formSetHelper = require('../cmpts/public/form/form_set_helper.js'); + +const TIME_NODE = { + mark: 'mark-no', + start: '00:00', //开始 + end: '23:59', // 结束 + limit: 50, //人数限制 + isLimit: false, + status: 1, + stat: { //统计数据 + succCnt: 0, + cancelCnt: 0, + adminCancelCnt: 0, + } +}; + + +class AdminMeetBiz extends BaseBiz { + + /** 取得分类 */ + static async getTypeList() { + let skin = pageHelper.getSkin(); + + let typeList = dataHelper.getSelectOptions(skin.MEET_TYPE); + let arr = []; + for (let k in typeList) { + arr.push({ + label: typeList[k].label, + type: 'typeId', + val: typeList[k].val, //for options + value: typeList[k].val, //for list + }) + } + return arr; + } + + static getTypeName(typeId) { + let skin = pageHelper.getSkin(); + let typeList = dataHelper.getSelectOptions(skin.MEET_TYPE); + + for (let k in typeList) { + if (typeList[k].val == typeId) return typeList[k].label; + } + return ''; + } + + // 计算剩余天数 + static getLeaveDay(days) { + let now = timeHelper.time('Y-M-D'); + let count = 0; + for (let k in days) { + if (days[k].day >= now) count++; + } + return count; + } + + static getNewTimeNode(day) { + let node = dataHelper.deepClone(TIME_NODE); + day = day.replace(/-/g, ''); + node.mark = 'T' + day + 'AAA' + dataHelper.genRandomAlpha(10).toUpperCase(); + return node; + } + + static getDaysTimeOptions() { + let HourArr = []; + let clockArr = []; + let k = 0; + + for (k = 0; k <= 23; k++) { + let node = {}; + node.label = k + '点'; + node.val = k < 10 ? '0' + k : k; + HourArr.push(node); + } + + for (k = 0; k < 59;) { + let node = {}; + node.label = k + '分'; + node.val = k < 10 ? '0' + k : k; + clockArr.push(node); + k += 5; + + if (k == 60) { + node = {}; + node.label = '59分'; + node.val = '59'; + clockArr.push(node); + } + } + + return [HourArr, clockArr]; + } + + static getEndBeforeSetOptions() { + let ret = ''; + let k = 0; + for (k = 0; k < 60;) { + ret += ',' + k + '=预约时段开始前' + k + '分钟截止'; + k += 10; + } + + for (k = 60; k < 360;) { + ret += ',' + k + '=预约时段开始前' + k / 60 + '小时截止'; + k += 30; + } + + for (k = 360; k <= 48 * 60;) { + ret += ',' + k + '=预约时段开始前' + k / 60 + '小时截止'; + k += 60; + } + + if (ret.startsWith(',')) ret = ret.substring(1); + + return dataHelper.getSelectOptions(ret); + } + + static getEndYesterdaySetOptions() { + let ret = ''; + let k = 0; + for (k = 0; k < 24; k++) { + ret += ',' + (k < 10 ? '0' + k : k) + ':00=前一天' + k + '点00分' + '截止'; + ret += ',' + (k < 10 ? '0' + k : k) + ':30=前一天' + k + '点30分' + '截止'; + } + + ret += ',23:59=前一天23点59分截止'; + if (ret.startsWith(',')) ret = ret.substring(1); + + return dataHelper.getSelectOptions(ret); + } + + static getEndTodaySetOptions() { + let ret = ''; + let k = 0; + for (k = 0; k < 24; k++) { + ret += ',' + (k < 10 ? '0' + k : k) + ':00=当天' + k + '点00分' + '截止'; + ret += ',' + (k < 10 ? '0' + k : k) + ':30=当天' + k + '点30分' + '截止'; + } + + ret += ',23:59=当天23点59分截止'; + if (ret.startsWith(',')) ret = ret.substring(1); + + return dataHelper.getSelectOptions(ret); + } + + static getEndAfterSetOptions() { + let ret = ''; + let k = 0; + for (k = 0; k < 60;) { + ret += ',' + k + '=预约时段开始后' + k + '分钟截止'; + k += 5; + } + + for (k = 60; k <= 3 * 60;) { + ret += ',' + k + '=预约时段开始后' + k / 60 + '小时截止'; + k += 30; + } + + if (ret.startsWith(',')) ret = ret.substring(1); + + return dataHelper.getSelectOptions(ret); + } + + static getBeginDaySetOptions() { + let dayArr = []; + let clockArr = []; + let k = 0; + + let nodeCur = {}; + nodeCur.label = '当天'; + nodeCur.val = 0; + dayArr.push(nodeCur); + + for (k = 1; k <= 180; k++) { + let node = {}; + node.label = '提前' + k + '天'; + node.val = k; + dayArr.push(node); + } + + for (k = 0; k < 24; k++) { + let node = {}; + node.label = k + '点00分' + '开始'; + node.val = (k < 10 ? '0' + k : k) + ':00'; + clockArr.push(node); + + node = {}; + node.label = k + '点30分' + '开始'; + node.val = (k < 10 ? '0' + k : k) + ':30'; + clockArr.push(node); + + } + + return [dayArr, clockArr]; + + } + + static getCancelSetOptions() { + let modeArr = [{ + label: '取消后无须后台审核', + val: 'no' + } + /*, { + label: '取消后须后台审核', + val: 'check' + }*/ + ]; + let timeArr = []; + + let k = 0; + for (k = -60; k < 0;) { + let node = {}; + node.label = '开始后' + (-k) + '分钟内可取消'; + node.val = k; + timeArr.push(node); + k += 10; + } + + for (k = 0; k < 60;) { + let node = {}; + node.label = '开始前' + k + '分钟可取消'; + node.val = k; + timeArr.push(node); + k += 10; + } + + for (k = 60; k < 60 * 24;) { + let node = {}; + node.label = '开始前' + k / 60 + '小时可取消'; + node.val = k; + timeArr.push(node); + k += 60; + } + + for (k = 60 * 24; k <= 60 * 24 * 10;) { + let node = {}; + node.label = '开始前' + k / (60 * 24) + '天可取消'; + node.val = k; + timeArr.push(node); + k += 60 * 24; + } + + return [timeArr, modeArr]; + + } + + static getLimitSetOptions() { + let mode = dataHelper.getSelectOptions('all=本项目全程限制次数,clock=按每一时段限制次数,day=按每天限制次数,week=按自然周限制次数,month=按自然月限制次数'); + + let list = []; + for (let k in mode) { + let node = {}; + node.label = mode[k].label; + node.val = mode[k].val; + + let children = []; + if (k == 0) { + children.push({ + label: '不限制预约次数', + val: -1 + }); + } + for (let j = 1; j <= 30; j++) { + let childNode = {}; + childNode.label = '可预约' + j + '次'; + childNode.val = j + children.push(childNode); + } + + node.children = children; + + list.push(node); + } + + return list; + + } + + // 上限规则的表述 + static getLimitSetDesc(rule) { + let ret = ''; + switch (rule.mode) { + case 'all': + ret = rule.cnt > 0 ? '本项目全程可预约' + rule.cnt + '次' : '本项目全程不限制次数'; + break; + case 'month': + ret = '自然月内可预约' + rule.cnt + '次'; + break; + case 'week': + ret = '自然周内可预约' + rule.cnt + '次'; + break; + case 'day': + ret = '每天可预约' + rule.cnt + '次'; + break; + case 'clock': + ret = '每一时段可预约' + rule.cnt + '次'; + break; + } + return ret; + } + + // 截止规则的表述 + static getEndSetDesc(rule) { + let ret = ''; + switch (rule.mode) { + case 'no': + ret = '不限制'; + break; + case 'yesterday': + ret = '前一天' + rule.time + '预约截止'; + break; + case 'today': + ret = '当天' + rule.time + '预约截止'; + break; + case 'clock': + ret = rule.time + '预约截止'; + break; + case 'before': + if (rule.time < 60) + ret = '开始前' + rule.time + '分钟预约截止'; + else + ret = '开始前' + rule.time / 60 + '小时预约截止'; + break; + case 'after': + if (rule.time < 60) + ret = '开始后' + rule.time + '分钟预约截止'; + else + ret = '开始后' + rule.time / 60 + '小时预约截止'; + break; + } + return ret; + } + + // 取消规则的表述 + static getCancelSetDesc(rule) { + let ret = ''; + switch (rule.mode) { + case 'no': + if (rule.time < 0) + ret = '开始后' + (-rule.time) + '分钟可取消,无须审核'; + else if (rule.time == 0) + ret = '开始前均可取消,无须审核'; + else if (rule.time < 60) + ret = '开始前' + rule.time + '分钟可取消,无须审核'; + else if (rule.time < 1440) + ret = '开始前' + rule.time / 60 + '小时可取消,无须审核'; + else + ret = '开始前' + rule.time / (60 * 24) + '天可取消,无须审核'; + break; + case 'check': + if (rule.time == 60) + ret = '开始前均可取消,须审核'; + else if (rule.time < 60) + ret = '开始前' + rule.time + '分钟可取消,须审核'; + else if (rule.time < 1440) + ret = '开始前' + rule.time / 60 + '小时可取消,无须审核'; + else + ret = '开始前' + rule.time / (60 * 24) + '天可取消,须审核'; + break; + } + + ret = ret.replace(',无须审核', ''); + return ret; + } + + + // 开放规则的表述 + static getBeginSetDesc(rule) { + let ret = ''; + switch (rule.mode) { + case 'no': + ret = '随时可预约'; + break; + case 'day': + if (rule.day == 0) + ret = '当天 ' + rule.time + '开放预约'; + else + ret = '提前' + rule.day + '天 ' + rule.time + '开放预约'; + break; + case 'clock': + ret = rule.time + '起开放预约'; + break; + } + return ret; + } + + /** 表单初始化相关数据 */ + static async initFormData() { + let skin = pageHelper.getSkin(); + + return { + + // 选项数据 + typeIdOptions: await AdminMeetBiz.getTypeList(), + beginDaySetOptions: AdminMeetBiz.getBeginDaySetOptions(), + + // 表单数据 + formTitle: '', + formTypeId: '', + formContent: '', + formOrder: 9999, + formStyleSet: { + pic: '', + desc: '' + }, + + formDaysSet: [], // 时间设置 + + + formIsShowLimit: 1, //是否显示可预约数量 + + formFormSet: formSetHelper.defaultForm(skin.DEFAULT_FORMS) + } + + } + + /** + * 样式更新 + * @param {string} meetId + * @param {Array} content 富文本数组 + */ + static async updateMeetStyleSet(meetId, styleSet, that) { + let pic = styleSet.pic; + + // 图片上传到云空间 + if (styleSet.pic) + pic = await cloudHelper.transTempPicOne(pic, setting.MEET_PIC_PATH, meetId, false); + + styleSet.pic = pic; + + // 更新本记录的图片信息 + let params = { + meetId, + styleSet + } + + try { + // 更新数据 从promise 里直接同步返回 + await cloudHelper.callCloudSumbit('admin/meet_update_style', params); + that.setData({ + formStyleSet: styleSet + }); + } catch (e) { + console.error(e); + return false; + } + return true; + } + + /** + * 富文本中的图片上传 + * @param {string} meetId + * @param {Array} content 富文本数组 + */ + static async updateMeetCotnentPic(meetId, content, that) { + let imgList = []; + for (let k in content) { + if (content[k].type == 'img') { + imgList.push(content[k].val); + } + } + + // 图片上传到云空间 + imgList = await cloudHelper.transTempPics(imgList, setting.MEET_PIC_PATH, meetId); + + // 更新图片地址 + let imgIdx = 0; + for (let k in content) { + if (content[k].type == 'img') { + content[k].val = imgList[imgIdx]; + imgIdx++; + } + } + + // 更新本记录的图片信息 + let params = { + meetId, + content + } + + try { + // 更新数据 从promise 里直接同步返回 + await cloudHelper.callCloudSumbit('admin/meet_update_content', params); + that.setData({ + formContent: content + }); + } catch (e) { + console.error(e); + return false; + } + + return true; + } + +} + + +/** 表单校验 本地 */ +AdminMeetBiz.CHECK_FORM = { + title: 'formTitle|must|string|min:2|max:50|name=标题', + typeId: 'formTypeId|must|id|name=分类', + order: 'formOrder|must|int|min:1|max:9999|name=排序号', + + daysSet: 'formDaysSet|must|array|name=预约时间设置', + isShowLimit: 'formIsShowLimit|must|int|in:0,1|name=是否显示可预约人数', + + formSet: 'formFormSet|must|array|name=用户资料设置', +}; + + +module.exports = AdminMeetBiz; \ No newline at end of file diff --git a/miniprogram/biz/admin_news_biz.js b/miniprogram/biz/admin_news_biz.js new file mode 100644 index 0000000..5c123c1 --- /dev/null +++ b/miniprogram/biz/admin_news_biz.js @@ -0,0 +1,175 @@ +/** + * Notes: 资讯后台管理模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const cloudHelper = require('../helper/cloud_helper.js'); +const dataHelper = require('../helper/data_helper.js'); +const pageHelper = require('../helper/page_helper.js'); +const setting = require('../setting/setting.js'); + +class AdminNewsBiz { + + // 提取简介 + static getDesc(desc, content) { + if (desc) return dataHelper.fmtText(desc, 100); + if (!Array.isArray(content)) return desc; + + for (let k in content) { + if (content[k].type == 'text') return dataHelper.fmtText(content[k].val, 100); + } + return desc; + } + + /** + * 图片上传 + * @param {string} newsId + * @param {Array} imgList 图片数组 + */ + static async updateNewsPic(newsId, imgList) { + + // 图片上传到云空间 + imgList = await cloudHelper.transTempPics(imgList, setting.NEWS_PIC_PATH, newsId); + + // 更新本记录的图片信息 + let params = { + newsId: newsId, + imgList: imgList + } + + try { + // 更新数据 从promise 里直接同步返回 + let res = await cloudHelper.callCloudSumbit('admin/news_update_pic', params); + return res.data.urls; + } catch (err) { + console.error(err); + } + } + + + /** + * 富文本中的图片上传 + * @param {string} newsId + * @param {Array} content 富文本数组 + */ + static async updateNewsCotnentPic(newsId, content, that) { + let imgList = []; + for (let k in content) { + if (content[k].type == 'img') { + imgList.push(content[k].val); + } + } + + // 图片上传到云空间 + imgList = await cloudHelper.transTempPics(imgList, setting.NEWS_PIC_PATH, newsId); + + // 更新图片地址 + let imgIdx = 0; + for (let k in content) { + if (content[k].type == 'img') { + content[k].val = imgList[imgIdx]; + imgIdx++; + } + } + + // 更新本记录的图片信息 + let params = { + newsId, + content + } + + try { + // 更新数据 从promise 里直接同步返回 + await cloudHelper.callCloudSumbit('admin/news_update_content', params); + that.setData({ + formContent: content + }); + } catch (e) { + console.error(e); + return false; + } + + return true; + } + + static getCateName(cateId) { + let skin = pageHelper.getSkin(); + let cateList = dataHelper.getSelectOptions(skin.NEWS_CATE); + + for (let k in cateList) { + if (cateList[k].val == cateId) return cateList[k].label; + } + return ''; + } + + + /** 取得分类 */ + static async getCateList() { + let skin = pageHelper.getSkin(); + + let cateList = dataHelper.getSelectOptions(skin.NEWS_CATE); + + let arr = []; + for (let k in cateList) { + arr.push({ + label: cateList[k].label, + type: 'cateId', + val: cateList[k].val, //for options + value: cateList[k].val, //for list + }) + } + return arr; + } + + /** 表单初始化相关数据 */ + static async initFormData(id = '') { + let cateIdOptions = await AdminNewsBiz.getCateList(); + + return { + id, + + contentDesc: '', + + // 分类 + cateIdOptions, + + // 图片数据 + imgList: [], + + + // 表单数据 + formType: 0, //类型 + formOrder: 9999, + formTitle: '', + formDesc: '', + formUrl: '', + formContent: [], + formCateId: '', + } + + } + +} + + +/** 表单校验 本地 */ +AdminNewsBiz.CHECK_FORM = { + title: 'formTitle|must|string|min:4|max:50|name=标题', + cateId: 'formCateId|must|id|name=分类', + order: 'formOrder|must|int|min:1|max:9999|name=排序号', + desc: 'formDesc|string|min:10|max:200|name=简介', + type: 'formType|must|int|in:0,1|name=是否外部文章' +}; + +/** 表单校验 外部 */ +AdminNewsBiz.CHECK_FORM_OUT = { + title: 'formTitle|must|string|min:4|max:50|name=标题', + cateId: 'formCateId|must|id|name=分类', + order: 'formOrder|must|int|min:1|max:9999|name=排序号', + desc: 'formDesc|string|min:10|max:200|name=简介', + type: 'formType|must|int|in:0,1|name=是否外部文章', + url: 'formUrl|must|string|min:10|max:300|name=外部链接地址', +}; + +module.exports = AdminNewsBiz; \ No newline at end of file diff --git a/miniprogram/biz/base_biz.js b/miniprogram/biz/base_biz.js new file mode 100644 index 0000000..88d84f3 --- /dev/null +++ b/miniprogram/biz/base_biz.js @@ -0,0 +1,12 @@ +/** + * Notes: 基础模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ +const dataHelper = require('../helper/data_helper.js'); + +class BaseBiz { + +} + +module.exports = BaseBiz; \ No newline at end of file diff --git a/miniprogram/biz/biz_helper.js b/miniprogram/biz/biz_helper.js new file mode 100644 index 0000000..377d083 --- /dev/null +++ b/miniprogram/biz/biz_helper.js @@ -0,0 +1,36 @@ +/** + * Notes: 业务通用 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const cacheHelper = require('../helper/cache_helper.js'); +const setting = require('../setting/setting.js'); + + +function isCacheList(key) { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + return cacheHelper.get(key + '_LIST'); + else + return false; +} + +function removeCacheList(key) { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + cacheHelper.remove(key + '_LIST'); +} + +function setCacheList(key, time = setting.CACHE_LIST_TIME) { + key = key.toUpperCase(); + if (setting.CACHE_IS_LIST) + cacheHelper.set(key + '_LIST', 'TRUE', time); +} + + +module.exports = { + isCacheList, + removeCacheList, + setCacheList, +} \ No newline at end of file diff --git a/miniprogram/biz/constants.js b/miniprogram/biz/constants.js new file mode 100644 index 0000000..496078d --- /dev/null +++ b/miniprogram/biz/constants.js @@ -0,0 +1,10 @@ + /** + * Notes: 通用常量 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + + module.exports = { + CACHE_TOKEN: 'CACHE_TOKEN', // 登录 + CACHE_ADMIN: 'ADMIN_TOKEN', // 管理员登录 + } \ No newline at end of file diff --git a/miniprogram/biz/meet_biz.js b/miniprogram/biz/meet_biz.js new file mode 100644 index 0000000..a14776e --- /dev/null +++ b/miniprogram/biz/meet_biz.js @@ -0,0 +1,42 @@ +/** + * Notes: 预约模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-12-10 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); +const setting = require('../setting/setting.js'); +const pageHelper = require('../helper/page_helper.js'); + +class MeetBiz extends BaseBiz { + + static async subscribeMessageMeet(callback) { + callback && await callback(); + } + + static addMeetPhoneCalendar(title, startTime, endTime, alarmOffset = 3600) { + wx.addPhoneCalendar({ + title, + startTime, + endTime, + // description: "这是日程内容", + alarm: 'true', + alarmOffset, //提前时间,秒 + success: () => { + pageHelper.showSuccToast('添加成功'); + }, + fail: (res) => { + if (res && res.errMsg && res.errMsg.includes('refuesed')) { + pageHelper.showModal('请在手机的"设置›微信" 选项中,允许微信访问你的日历', '日历权限未开启') + } + }, + complete: (res) => { + console.log(res) + } + + }) + } + +} + +module.exports = MeetBiz; \ No newline at end of file diff --git a/miniprogram/biz/news_biz.js b/miniprogram/biz/news_biz.js new file mode 100644 index 0000000..eebdbef --- /dev/null +++ b/miniprogram/biz/news_biz.js @@ -0,0 +1,34 @@ +/** + * Notes: 资讯模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); ; + +class NewsBiz extends BaseBiz { + + /** 搜索菜单设置 */ + static async getSearchMenu() { + let sortMenus = [{ + label: '全部', + type: '', + value: '' + }]; + let sortMenusAfter = [{ + label: '最新', + type: 'sort', + value: 'new' + }, ]; + let sortItems = []; + + sortMenus = sortMenus.concat(sortMenusAfter); + + return { + sortItems, + sortMenus + } + } +} + +module.exports = NewsBiz; \ No newline at end of file diff --git a/miniprogram/biz/passport_biz.js b/miniprogram/biz/passport_biz.js new file mode 100644 index 0000000..1f0c0d8 --- /dev/null +++ b/miniprogram/biz/passport_biz.js @@ -0,0 +1,96 @@ +/** + * Notes: 注册登录模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); +const AdminBiz = require('./admin_biz.js'); +const setting = require('../setting/setting.js'); +const dataHelper = require('../helper/data_helper.js'); +const cloudHelper = require('../helper/cloud_helper.js'); + +class PassportBiz extends BaseBiz { + + /** + * 页面初始化 分包下使用 + * @param {*} skin + * @param {*} that + * @param {*} isLoadSkin 是否skin加载为data + * @param {*} tabIndex 是否修改本页标题为设定值 + * @param {*} isModifyNavColor 是否修改头部导航颜色 + */ + static async initPage({ + skin, + that, + isLoadSkin = false, + tabIndex = -1, + isModifyNavColor = true + }) { + + if (isModifyNavColor) { + wx.setNavigationBarColor({ //顶部 + backgroundColor: skin.NAV_BG, + frontColor: skin.NAV_COLOR, + }); + } + + + if (tabIndex > -1) { + wx.setNavigationBarTitle({ + title: skin.MENU_ITEM[tabIndex] + }); + } + + skin.IS_SUB = setting.IS_SUB; + if (isLoadSkin) { + skin.newsCateArr = dataHelper.getSelectOptions(skin.NEWS_CATE); + skin.meetTypeArr = dataHelper.getSelectOptions(skin.MEET_TYPE); + that.setData({ + skin + }); + } + } + + static async adminLogin(name, pwd, that) { + if (name.length < 5 || name.length > 30) { + wx.showToast({ + title: '账号输入错误(5-30位)', + icon: 'none' + }); + return; + } + + if (pwd.length < 5 || pwd.length > 30) { + wx.showToast({ + title: '密码输入错误(5-30位)', + icon: 'none' + }); + return; + } + + let params = { + name, + pwd + }; + let opt = { + title: '登录中' + }; + + try { + await cloudHelper.callCloudSumbit('admin/login', params, opt).then(res => { + if (res && res.data && res.data.name) AdminBiz.adminLogin(res.data); + + wx.reLaunch({ + url: '/pages/admin/index/home/admin_home', + }); + }); + } catch (e) { + console.log(e); + } + + } + +} + +module.exports = PassportBiz; \ No newline at end of file diff --git a/miniprogram/biz/search_biz.js b/miniprogram/biz/search_biz.js new file mode 100644 index 0000000..2f20bea --- /dev/null +++ b/miniprogram/biz/search_biz.js @@ -0,0 +1,56 @@ +/** + * Notes: 搜索模块业务逻辑 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2020-11-14 07:48:00 + */ + +const BaseBiz = require('./base_biz.js'); +const cacheHelper = require('../helper/cache_helper.js'); + +/** + * + */ +class SearchBiz extends BaseBiz { + + static clearHistory(key){ + cacheHelper.remove(key); + } + + static getHistory(key) + { + return cacheHelper.get(key, []); + + } + + /**添加关键字缓存 + * + * @param {*} key + * @param {*} val + * @param {*} size 个数 + * @param {*} expire 过期时间 + */ + static addHistory(key, val, size = 20, expire = 86400 * 30) { + if (!val || val.length == 0) return []; + + let his = cacheHelper.get(key, []); + + //查询是否存在 并删除 + let pos = his.indexOf(val); + if (pos > -1) his.splice(pos, 1); + + // 加到头部 + his.unshift(val); + + // 判断个数, 多的删除 + if (his.length > size) + his.splice(his.length - 1, 1); + + // 存缓存 + cacheHelper.set(key, his, expire); + + return his; + } + +} + +module.exports = SearchBiz; \ No newline at end of file diff --git a/miniprogram/cmpts/biz/foot/foot_cmpt.js b/miniprogram/cmpts/biz/foot/foot_cmpt.js new file mode 100644 index 0000000..f74f5d4 --- /dev/null +++ b/miniprogram/cmpts/biz/foot/foot_cmpt.js @@ -0,0 +1,61 @@ +const pageHelper = require('../../../helper/page_helper'); +const setting = require('../../../setting/setting.js'); + +Component({ + options: { + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + color: { + type: String, + value: '' + }, + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + lifetimes: { + created: function () { + // 组件实例化,但节点树还未导入,因此这时不能用setData + }, + attached: function () { + // 在组件实例进入页面节点树时执行 + // 节点树完成,可以用setData渲染节点,但无法操作节点 + }, + ready: async function () { + // 组件布局完成,这时可以获取节点信息,也可以操作节点 + // 当前用户,用于评论删除 + this._loadDetail(); + }, + move: function () { + // 组件实例被移动到树的另一个位置 + }, + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + _loadDetail: async function () { + this.setData({ + company: setting.COMPANY, + ver: setting.VER + }); + }, + url: function (e) { + pageHelper.url(e, this); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/biz/foot/foot_cmpt.json b/miniprogram/cmpts/biz/foot/foot_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/biz/foot/foot_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/biz/foot/foot_cmpt.wxml b/miniprogram/cmpts/biz/foot/foot_cmpt.wxml new file mode 100644 index 0000000..c0b0df7 --- /dev/null +++ b/miniprogram/cmpts/biz/foot/foot_cmpt.wxml @@ -0,0 +1,4 @@ + + {{company}} + {{ver}} + \ No newline at end of file diff --git a/miniprogram/cmpts/biz/foot/foot_cmpt.wxss b/miniprogram/cmpts/biz/foot/foot_cmpt.wxss new file mode 100644 index 0000000..176ec97 --- /dev/null +++ b/miniprogram/cmpts/biz/foot/foot_cmpt.wxss @@ -0,0 +1,13 @@ +@import "../../../style/project/base/project.wxss"; + +.site-footer { + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 24rpx; + color: #aaa; + margin-top: 20rpx; + margin-bottom: 20rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/biz/test/test_cmpt.js b/miniprogram/cmpts/biz/test/test_cmpt.js new file mode 100644 index 0000000..2674bc4 --- /dev/null +++ b/miniprogram/cmpts/biz/test/test_cmpt.js @@ -0,0 +1,27 @@ +// cmpts/biz/test/test_cmpt.js +Component({ + options: { + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) diff --git a/miniprogram/cmpts/biz/test/test_cmpt.json b/miniprogram/cmpts/biz/test/test_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/biz/test/test_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/biz/test/test_cmpt.wxml b/miniprogram/cmpts/biz/test/test_cmpt.wxml new file mode 100644 index 0000000..123586a --- /dev/null +++ b/miniprogram/cmpts/biz/test/test_cmpt.wxml @@ -0,0 +1,13 @@ + + + + Modal标题 + + + + + + Modal 内容。{{index}} + + + \ No newline at end of file diff --git a/miniprogram/cmpts/biz/test/test_cmpt.wxss b/miniprogram/cmpts/biz/test/test_cmpt.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.js b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.js new file mode 100644 index 0000000..a948b88 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.js @@ -0,0 +1,712 @@ +const main = { + /** + * 渲染块 + * @param {Object} params + */ + drawBlock({ + text, + width = 0, + height, + x, + y, + paddingLeft = 0, + paddingRight = 0, + borderWidth, + backgroundColor, + borderColor, + borderRadius = 0, + opacity = 1, + }) { + // 判断是否块内有文字 + let blockWidth = 0; // 块的宽度 + let textX = 0; + let textY = 0; + if (typeof text !== "undefined") { + // 如果有文字并且块的宽度小于文字宽度,块的宽度为 文字的宽度 + 内边距 + const textWidth = this._getTextWidth(typeof text.text === "string" ? text : text.text); + blockWidth = textWidth > width ? textWidth : width; + blockWidth += paddingLeft + paddingLeft; + + const { + textAlign = "left", text: textCon + } = text; + textY = height / 2 + y; // 文字的y轴坐标在块中线 + if (textAlign === "left") { + // 如果是右对齐,那x轴在块的最左边 + textX = x + paddingLeft; + } else if (textAlign === "center") { + textX = blockWidth / 2 + x; + } else { + textX = x + blockWidth - paddingRight; + } + } else { + blockWidth = width; + } + + if (backgroundColor) { + // 画面 + this.ctx.save(); + this.ctx.globalAlpha = opacity; + this.ctx.fillStyle = backgroundColor; + if (borderRadius > 0) { + // 画圆角矩形 + this._drawRadiusRect(x, y, blockWidth, height, borderRadius); + this.ctx.fill(); + } else { + this.ctx.fillRect(this.toPx(x), this.toPx(y), this.toPx(blockWidth), this.toPx(height)); + } + this.ctx.restore(); + } + if (borderWidth) { + // 画线 + this.ctx.save(); + this.ctx.globalAlpha = opacity; + this.ctx.strokeStyle = borderColor; + this.ctx.lineWidth = this.toPx(borderWidth); + if (borderRadius > 0) { + // 画圆角矩形边框 + this._drawRadiusRect(x, y, blockWidth, height, borderRadius); + this.ctx.stroke(); + } else { + this.ctx.strokeRect(this.toPx(x), this.toPx(y), this.toPx(blockWidth), this.toPx(height)); + } + this.ctx.restore(); + } + + if (text) { + this.drawText(Object.assign(text, { + x: textX, + y: textY + })); + } + }, + + /** + * 渲染文字 + * @param {Object} params + */ + drawText(params) { + const { + x, + y, + fontSize, + color, + baseLine, + textAlign, + text, + opacity = 1, + width, + lineNum, + lineHeight + } = params; + if (Object.prototype.toString.call(text) === "[object Array]") { + let preText = { + x, + y, + baseLine + }; + text.forEach((item) => { + preText.x += this.toPx(item.marginLeft || 0); + const textWidth = this._drawSingleText( + Object.assign(item, { + ...preText, + }) + ); + preText.x += textWidth + this.toPx(item.marginRight || 0); // 下一段字的x轴为上一段字x + 上一段字宽度 + }); + } else { + this._drawSingleText(params); + } + }, + + /** + * 渲染图片 + * @param {Object} params + */ + drawImage({ + imgPath, + x, + y, + w, + h, + sx, + sy, + sw, + sh, + borderRadius = 0, + borderWidth = 0, + borderColor + }) { + return new Promise((resolve) => { + const img = this.node.createImage(); + img.onload = () => { + this.ctx.save(); + if (borderRadius > 0) { + this._drawRadiusRect(x, y, w, h, borderRadius); + this.ctx.strokeStyle = "rgba(255,255,255,0)"; + this.ctx.stroke(); + this.ctx.clip(); + this.ctx.drawImage( + img, + this.toPx(sx), + this.toPx(sy), + this.toPx(sw), + this.toPx(sh), + this.toPx(x), + this.toPx(y), + this.toPx(w), + this.toPx(h) + ); + if (borderWidth > 0) { + this.ctx.strokeStyle = borderColor; + this.ctx.lineWidth = this.toPx(borderWidth); + this.ctx.stroke(); + } + } else { + this.ctx.drawImage( + img, + this.toPx(sx), + this.toPx(sy), + this.toPx(sw), + this.toPx(sh), + this.toPx(x), + this.toPx(y), + this.toPx(w), + this.toPx(h) + ); + } + this.ctx.restore(); + resolve(); + }; + img.src = imgPath; + }); + }, + /** + * 渲染线 + * @param {Object} param + */ + drawLine({ + startX, + startY, + endX, + endY, + color, + width + }) { + this.ctx.save(); + this.ctx.beginPath(); + this.ctx.strokeStyle = color; + this.ctx.lineWidth = this.toPx(width); + this.ctx.moveTo(this.toPx(startX), this.toPx(startY)); + this.ctx.lineTo(this.toPx(endX), this.toPx(endY)); + this.ctx.stroke(); + this.ctx.closePath(); + this.ctx.restore(); + }, + downloadResource({ + images = [], + pixelRatio + }) { + + // 本方法比create早执行,所以要预先设定ratio by cc 2021/10/25 + this.pixelRatio = pixelRatio || this.pixelRatio; + + const drawList = []; + images.forEach((image, index) => drawList.push(this._downloadImageAndInfo(image, index))); + return Promise.all(drawList); + }, + initCanvas(w, h, debug) { + const { + platform + } = wx.getSystemInfoSync(); + + return new Promise((resolve) => { + if (platform === "ios") { + this.setData({ + pxWidth: this.toPx(w), + pxHeight: this.toPx(h), + debug, + }); + // ios系统动态设置canvas宽高后立即绘制canvas会偶现变形的BUG + setTimeout(() => { + resolve(); + }, 100); + } else { + this.setData({ + pxWidth: this.toPx(w), + pxHeight: this.toPx(h), + debug, + }, + resolve + ); + } + }); + }, +}; +const handle = { + /** + * 画圆角矩形 + */ + _drawRadiusRect(x, y, w, h, r) { + const br = r / 2; + this.ctx.beginPath(); + this.ctx.moveTo(this.toPx(x + br), this.toPx(y)); // 移动到左上角的点 + this.ctx.lineTo(this.toPx(x + w - br), this.toPx(y)); + this.ctx.arc( + this.toPx(x + w - br), + this.toPx(y + br), + this.toPx(br), + 2 * Math.PI * (3 / 4), + 2 * Math.PI * (4 / 4) + ); + this.ctx.lineTo(this.toPx(x + w), this.toPx(y + h - br)); + this.ctx.arc(this.toPx(x + w - br), this.toPx(y + h - br), this.toPx(br), 0, 2 * Math.PI * (1 / 4)); + this.ctx.lineTo(this.toPx(x + br), this.toPx(y + h)); + this.ctx.arc( + this.toPx(x + br), + this.toPx(y + h - br), + this.toPx(br), + 2 * Math.PI * (1 / 4), + 2 * Math.PI * (2 / 4) + ); + this.ctx.lineTo(this.toPx(x), this.toPx(y + br)); + this.ctx.arc(this.toPx(x + br), this.toPx(y + br), this.toPx(br), 2 * Math.PI * (2 / 4), 2 * Math.PI * (3 / 4)); + }, + /** + * 计算文本长度 + * @param {Array|Object}} text 数组 或者 对象 + */ + _getTextWidth(text) { + let texts = []; + if (Object.prototype.toString.call(text) === "[object Object]") { + texts.push(text); + } else { + texts = text; + } + let width = 0; + texts.forEach(({ + fontSize, + text, + marginLeft = 0, + marginRight = 0 + }) => { + this.ctx.fontSize = this.toPx(fontSize); + width += this.ctx.measureText(text).width + marginLeft + marginRight; + }); + + return this.toRpx(width); + }, + /** + * 渲染一段文字 + */ + _drawSingleText({ + x, + y, + fontSize, + color, + baseLine, + textAlign = "left", + text, + opacity = 1, + textDecoration = "none", + width, + lineNum = 1, + lineHeight = 0, + fontWeight = "normal", + fontStyle = "normal", + fontFamily = "sans-serif", + }) { + this.ctx.save(); + this.ctx.beginPath(); + this.ctx.font = fontStyle + " " + fontWeight + " " + this.toPx(fontSize, true) + "px " + fontFamily; + this.ctx.globalAlpha = opacity; + this.ctx.fillStyle = color; + this.ctx.textBaseline = baseLine; + this.ctx.textAlign = textAlign; + let textWidth = this.toRpx(this.ctx.measureText(text).width); + + const textArr = []; + if (textWidth > width) { + // 文本宽度 大于 渲染宽度 + let fillText = ""; + let line = 1; + for (let i = 0; i <= text.length - 1; i++) { + // 将文字转为数组,一行文字一个元素 + fillText = fillText + text[i]; + if (this.toRpx(this.ctx.measureText(fillText).width) >= width) { + if (line === lineNum) { + if (i !== text.length - 1) { + fillText = fillText.substring(0, fillText.length - 1) + "..."; + } + } + if (line <= lineNum) { + textArr.push(fillText); + } + fillText = ""; + line++; + } else { + if (line <= lineNum) { + if (i === text.length - 1) { + textArr.push(fillText); + } + } + } + } + textWidth = width; + } else { + textArr.push(text); + } + + textArr.forEach((item, index) => { + this.ctx.fillText(item, this.toPx(x), this.toPx(y + (lineHeight || fontSize) * index)); + }); + + this.ctx.restore(); + + // textDecoration + if (textDecoration !== "none") { + let lineY = y; + if (textDecoration === "line-through") { + // 目前只支持贯穿线 + lineY = y; + + // 小程序画布baseLine偏移阈值 + let threshold = 5; + + // 根据baseLine的不同对贯穿线的Y坐标做相应调整 + switch (baseLine) { + case "top": + lineY += fontSize / 2 + threshold; + break; + case "middle": + break; + case "bottom": + lineY -= fontSize / 2 + threshold; + break; + default: + lineY -= fontSize / 2 - threshold; + break; + } + } + this.ctx.save(); + this.ctx.moveTo(this.toPx(x), this.toPx(lineY)); + this.ctx.lineTo(this.toPx(x) + this.toPx(textWidth), this.toPx(lineY)); + this.ctx.strokeStyle = color; + this.ctx.stroke(); + this.ctx.restore(); + } + + return textWidth; + }, +}; +const helper = { + /** + * 下载图片并获取图片信息 + */ + _downloadImageAndInfo(image, index) { + return new Promise((resolve, reject) => { + const { + x, + y, + url, + zIndex + } = image; + const imageUrl = url; + // 下载图片 + this._downImage(imageUrl, index) + // 获取图片信息 + .then((imgPath) => this._getImageInfo(imgPath, index)) + .then(({ + imgPath, + imgInfo + }) => { + console.log(); + // 根据画布的宽高计算出图片绘制的大小,这里会保证图片绘制不变形 + let sx; + let sy; + const borderRadius = image.borderRadius || 0; + const setWidth = image.width; + const setHeight = image.height; + const width = this.toRpx(imgInfo.width); + const height = this.toRpx(imgInfo.height); + + if (width / height <= setWidth / setHeight) { + sx = 0; + sy = (height - (width / setWidth) * setHeight) / 2; + } else { + sy = 0; + sx = (width - (height / setHeight) * setWidth) / 2; + } + if (!this.drawArr) this.drawArr = []; + this.drawArr.push({ + type: "image", + borderRadius, + borderWidth: image.borderWidth, + borderColor: image.borderColor, + zIndex: typeof zIndex !== "undefined" ? zIndex : index, + imgPath, + sx, + sy, + sw: width - sx * 2, + sh: height - sy * 2, + x, + y, + w: setWidth, + h: setHeight, + }); + resolve(); + }) + .catch((err) => reject(err)); + }); + }, + /** + * 下载图片资源 + * @param {*} imageUrl + */ + _downImage(imageUrl) { + return new Promise((resolve, reject) => { + if (imageUrl.includes('tmp') || imageUrl.includes('temp') || imageUrl.includes('wxfile')) { + // 支持本地地址 + resolve(imageUrl); //2021/2/17 by cc + } + + if (/^http/.test(imageUrl) && !new RegExp(wx.env.USER_DATA_PATH).test(imageUrl)) { + wx.downloadFile({ + url: this._mapHttpToHttps(imageUrl), + success: (res) => { + if (res.statusCode === 200) { + resolve(res.tempFilePath); + } else { + reject(res.errMsg); + } + }, + fail(err) { + reject(err); + }, + }); + } else { + // 支持本地地址 + resolve(imageUrl); + } + }); + }, + /** + * 获取图片信息 + * @param {*} imgPath + * @param {*} index + */ + _getImageInfo(imgPath, index) { + return new Promise((resolve, reject) => { + wx.getImageInfo({ + src: imgPath, + success(res) { + resolve({ + imgPath, + imgInfo: res, + index + }); + }, + fail(err) { + reject(err); + }, + }); + }); + }, + toPx(rpx, int) { + if (int) { + return parseInt(rpx * this.factor * this.pixelRatio); + } + return rpx * this.factor * this.pixelRatio; + }, + toRpx(px, int) { + if (int) { + return parseInt(px / (this.factor * this.pixelRatio)); + } + return px / (this.factor * this.pixelRatio); + }, + /** + * 将http转为https + * @param {String}} rawUrl 图片资源url + */ + _mapHttpToHttps(rawUrl) { + if (rawUrl.indexOf(":") < 0) { + return rawUrl; + } + const urlComponent = rawUrl.split(":"); + if (urlComponent.length === 2) { + if (urlComponent[0] === "http") { + urlComponent[0] = "https"; + return `${urlComponent[0]}:${urlComponent[1]}`; + } + } + return rawUrl; + }, +}; +Component({ + properties: {}, + created() { + const sysInfo = wx.getSystemInfoSync(); + const { + pixelRatio, + screenWidth + } = sysInfo; + this.factor = screenWidth / 750; + this.pixelRatio = pixelRatio; + }, + methods: Object.assign({ + /** + * 计算画布的高度 + * @param {*} config + */ + getHeight(config) { + const getTextHeight = (text) => { + let fontHeight = text.lineHeight || text.fontSize; + let height = 0; + if (text.baseLine === "top") { + height = fontHeight; + } else if (text.baseLine === "middle") { + height = fontHeight / 2; + } else { + height = 0; + } + return height; + }; + const heightArr = []; + (config.blocks || []).forEach((item) => { + heightArr.push(item.y + item.height); + }); + (config.texts || []).forEach((item) => { + let height; + if (Object.prototype.toString.call(item.text) === "[object Array]") { + item.text.forEach((i) => { + height = getTextHeight({ + ...i, + baseLine: item.baseLine, + }); + heightArr.push(item.y + height); + }); + } else { + height = getTextHeight(item); + heightArr.push(item.y + height); + } + }); + (config.images || []).forEach((item) => { + heightArr.push(item.y + item.height); + }); + (config.lines || []).forEach((item) => { + heightArr.push(item.startY); + heightArr.push(item.endY); + }); + const sortRes = heightArr.sort((a, b) => b - a); + let canvasHeight = 0; + if (sortRes.length > 0) { + canvasHeight = sortRes[0]; + } + if (config.height < canvasHeight || !config.height) { + return canvasHeight; + } else { + return config.height; + } + }, + async create(config) { + await this.initCtx(); + + this.pixelRatio = config.pixelRatio || this.pixelRatio; + const height = this.getHeight(config); + this.initCanvas(config.width, height, config.debug) + .then(async () => { + this.node.width = this.data.pxWidth * this.pixelRatio; + this.node.height = this.data.pxHeight * this.pixelRatio; + + this.ctx.scale(this.pixelRatio, this.pixelRatio); + + // 设置画布底色 + if (config.backgroundColor) { + this.ctx.save(); + this.ctx.fillStyle = config.backgroundColor; + this.ctx.fillRect(0, 0, this.toPx(config.width), this.toPx(height)); + this.ctx.restore(); + } + const { + texts = [], blocks = [], lines = [] + } = config; + if (!this.drawArr) this.drawArr = []; + const queue = this.drawArr + .concat( + texts.map((item) => { + item.type = "text"; + item.zIndex = item.zIndex || 0; + return item; + }) + ) + .concat( + blocks.map((item) => { + item.type = "block"; + item.zIndex = item.zIndex || 0; + return item; + }) + ) + .concat( + lines.map((item) => { + item.type = "line"; + item.zIndex = item.zIndex || 0; + return item; + }) + ); + // 按照顺序排序 + queue.sort((a, b) => a.zIndex - b.zIndex); + + for (let i = 0, len = queue.length; i < len; i++) { + const item = queue[i]; + if (item.type === "image") { + await this.drawImage(item); + } else if (item.type === "text") { + this.drawText(item); + } else if (item.type === "block") { + this.drawBlock(item); + } else if (item.type === "line") { + this.drawLine(item); + } + } + + wx.canvasToTempFilePath({ + canvas: this.node, + success: (res) => { + this.triggerEvent("success", res.tempFilePath); + }, + fail: (err) => { + this.triggerEvent("fail", err); + }, + }, + this + ); + }) + .catch((err) => { + wx.showToast({ + icon: "none", + title: err.errMsg || "生成失败", + }); + console.error(err); + }); + }, + initCtx() { + return new Promise((resolve) => { + wx.createSelectorQuery() + .in(this) + .select("#canvasid") + .fields({ + node: true, + }) + .exec((res) => { + this.node = res[0].node; + this.ctx = this.node.getContext("2d"); + resolve(); + }); + }); + }, + }, + main, + handle, + helper + ), +}); \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.json b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.json new file mode 100644 index 0000000..fba482a --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxml b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxml new file mode 100644 index 0000000..e981e23 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxss b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxss new file mode 100644 index 0000000..2b9a7ad --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/index/index.wxss @@ -0,0 +1,16 @@ +.canvas { + width: 750rpx; + height: 750rpx; +} +.canvas.pro { + position: absolute; + bottom: 0; + left: 0; + transform: translate3d(-9999rpx, 0, 0); +} +.canvas.debug { + position: absolute; + bottom: 0; + left: 0; + border: 1rpx solid #ccc; +} \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.js b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.js new file mode 100644 index 0000000..0baa358 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.js @@ -0,0 +1,95 @@ +Component({ + properties: { + config: { + type: Object, + value: {}, + }, + preload: { // 是否预下载图片资源 + type: Boolean, + value: false, + }, + hideLoading: { // 是否隐藏loading + type: Boolean, + value: false, + } + }, + ready() { + if (this.data.preload) { + const poster = this.selectComponent('#poster'); + this.downloadStatus = 'doing'; + poster.downloadResource(this.data.config).then(() => { + this.downloadStatus = 'success'; + this.trigger('downloadSuccess'); + }).catch((e) => { + this.downloadStatus = 'fail'; + this.trigger('downloadFail', e); + }); + } + }, + methods: { + trigger(event, data) { + if (this.listener && typeof this.listener[event] === 'function') { + this.listener[event](data); + } + }, + once(event, fun) { + if (typeof this.listener === 'undefined') { + this.listener = {}; + } + this.listener[event] = fun; + }, + downloadResource(reset) { + return new Promise((resolve, reject) => { + if (reset) { + this.downloadStatus = null; + } + const poster = this.selectComponent('#poster'); + if (this.downloadStatus && this.downloadStatus !== 'fail') { + if (this.downloadStatus === 'success') { + resolve(); + } else { + this.once('downloadSuccess', () => resolve()); + this.once('downloadFail', (e) => reject(e)); + } + } else { + poster.downloadResource(this.data.config) + .then(() => { + this.downloadStatus = 'success'; + resolve(); + }) + .catch((e) => reject(e)); + } + }) + }, + onCreate(reset = false) { + !this.data.hideLoading && wx.showLoading({ + mask: true, + title: '生成中' + }); + return this.downloadResource(typeof reset === 'boolean' && reset).then(() => { + !this.data.hideLoading && wx.hideLoading(); + const poster = this.selectComponent('#poster'); + poster.create(this.data.config); + }) + .catch((err) => { + !this.data.hideLoading && wx.hideLoading(); + wx.showToast({ + icon: 'none', + title: err.errMsg || '生成失败' + }); + console.error(err); + this.triggerEvent('fail', err); + }) + }, + onCreateSuccess(e) { + const { + detail + } = e; + this.triggerEvent('success', detail); + }, + onCreateFail(err) { + console.error(err); + this.triggerEvent('fail', err); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.json b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.json new file mode 100644 index 0000000..bed82f6 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "we-canvas": "../index/index" + } +} \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxml b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxml new file mode 100644 index 0000000..2bbe645 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxss b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/poster.js b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/poster.js new file mode 100644 index 0000000..b6bd343 --- /dev/null +++ b/miniprogram/cmpts/lib/wxa-plugin-canvas/poster/poster.js @@ -0,0 +1,29 @@ +const defaultOptions = { + selector: '#poster' +}; + +function Poster(options = {}, that) { + options = { + ...defaultOptions, + ...options, + }; + + const pages = getCurrentPages(); + let ctx = pages[pages.length - 1]; + if (that) ctx = that + const poster = ctx.selectComponent(options.selector); + delete options.selector; + + return poster; +}; + +Poster.create = (reset = false, that) => { + const poster = Poster({}, that); + if (!poster) { + console.error('请设置组件的id="poster"!!!'); + } else { + return Poster({}, that).onCreate(reset); + } +} + +export default Poster; diff --git a/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.js b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.js new file mode 100644 index 0000000..448a620 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.js @@ -0,0 +1,145 @@ +const timeHelper = require('../../../../helper/time_helper.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const calendarLib = require('../calendar_lib.js'); + +/*#### 父组件日历颜色定义*/ +/* 整体颜色 */ +//--calendarPageColor: #F0F4FF; +/* 加重颜色*/ +//--calendarMainColor: #388AFF; +/* 加重的亮颜色 用于选中日期的数据小圆点 */ +//--calendarLightColor: #A2C7FF; + + +Component({ + options: { + addGlobalClass: true + }, + properties: { + isLunar: { //是否开启农历 + type: Boolean, + value: true + }, + mode: { // 模式 one/multi + type: String, + value: 'one' + }, + + year: { // 正在操作的年 + type: Number, + value: 0 + }, + + month: { // 正在操作的月 + type: Number, + value: 0 + }, + fold: { //日历折叠 + type: Boolean, + value: false + }, + selectTimeout: { //过期时间选择(mode=multi) + type: Boolean, + value: true + }, + selectTimeoutHint: { //过期时间选择提示(mode=multi) + type: String, + value: '不能选择过去的日期' + }, + hasDays: { // 有数据的日期 + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (newVal.length != oldVal.length) { + // TODO 引起加载的时候二次调用 + //this._init(); + } + } + }, + oneDoDay: { // 正在操作的天 string + type: String, + value: null + }, + multiDoDay: { // 多选模式>正在操作的天 arrary[] + type: Array, + value: null, + }, + multiOnlyOne: { //多选模式>只能选一个 + type: Boolean, + value: false + } + }, + + data: { + weekNo: 0, // 正在操作的那天位于第几周 + fullToday: 0, //今天 + }, + + lifetimes: { + attached() { + this._init(); + } + }, + + methods: { + _init: function () { + calendarLib.getNowTime(this); + calendarLib.createDay(this); + }, + + + bindFoldTap: function (e) { // 日历折叠 + calendarLib.bindFoldTap(this); + }, + + + bindNextTap(e) { // 下月 + calendarLib.bindNextTap(this); + }, + + bindLastTap(e) { // 上月 + calendarLib.bindLastTap(this); + }, + + bindDayOneTap(e) { // 单个天点击 + let day = e.currentTarget.dataset.fullday; + let now = timeHelper.time('Y-M-D'); + if (day < now) + return pageHelper.showNoneToast('已过期', 1000); + + calendarLib.bindDayOneTap(e, this); + }, + + bindDayMultiTap(e) { // 多选天点击 + // 过期时间判断 + if (!this.data.selectTimeout) { + let day = e.currentTarget.dataset.fullday; + let now = timeHelper.time('Y-M-D'); + if (day < now) + return pageHelper.showNoneToast(this.data.selectTimeoutHint); + } + + + calendarLib.bindDayMultiTap(e, this); + }, + + bindToNowTap: function (e) { // 回本月 + calendarLib.bindToNowTap(this); + }, + + // ListTouch触摸开始 + listTouchStart(e) { + pageHelper.listTouchStart(e, this); + }, + + // ListTouch计算方向 + listTouchMove(e) { + pageHelper.listTouchMove(e, this); + }, + + /** ListTouch计算滚动 */ + listTouchEnd: function (e) { + calendarLib.listTouchEnd(this); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.json b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxml b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxml new file mode 100644 index 0000000..882ac60 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxml @@ -0,0 +1,67 @@ + + + // 比较操作日期所在月是否当前显示的月 + function compareYearMonth(oneDoDay, year, month) { + var arr = oneDoDay.split('-'); + return arr[0] == year && arr[1] == month; + } + + module.exports = { + compareYearMonth: compareYearMonth, + }; + + + + + 本月 + + + {{year}}年{{month}}月 + + + + + + + + + + + + + + + + + + + + + + + + {{item.show}} + {{item.show}} + {{item.lunar}} + + + + + + + + + + + {{item.show}} + {{item.show}} + {{item.lunar}} + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxss b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxss new file mode 100644 index 0000000..59f3688 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_comm/calendar_comm_cmpt.wxss @@ -0,0 +1,215 @@ +@import "./din.wxss"; + +page { + /*#### 父组件日历颜色定义*/ + /* 整体颜色 */ + --calendarPageColor: #fff; + /* 加重颜色*/ + --calendarMainColor: #1F6ED4; + /* 加重的亮颜色 用于选中日期的数据小圆点 */ + --calendarLightColor: #A2C7FF; +} + +.calendar-text { + color: var(--calendarMainColor) !important +} + +.calendar-bg { + background-color: var(--calendarMainColor) !important +} + +.cal-container { + width: 100%; + padding-bottom: 10rpx; + background-color: var(--calendarPageColor) +} + +.cal-container .cal-nav { + position: relative; + width: 100%; + min-height: 80rpx; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 0 20rpx; + color: #666; + font-weight: bold; + background-color: #f8f8f8; +} + +.cal-container .cal-nav .select-item { + width: 500rpx; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.cal-container .cal-nav .arrow { + width: 150rpx; + font-size: 40rpx; +} + +.cal-container .cal-nav .fold { + position: absolute; + right: 0rpx; + width: 100rpx; + font-size: 40rpx; + font-weight: bold; +} + +.cal-container .cal-nav .to-now { + position: absolute; + left: 5rpx; + width: 100rpx; + font-size: 28rpx; + display: flex; + align-items: center; + justify-content: center; +} + +.cal-main { + width: 100%; + padding: 0rpx 0rpx; +} + +.cal-title { + display: flex; + width: 100%; + border-bottom: 2rpx dashed #ccc; + background-color: #f8f8f8; +} + +.cal-title view { + width: 14.28%; + height: 70rpx; + display: flex; + justify-content: center; + align-items: center; + color: #333; + font-size: 32rpx; + font-weight: bold; +} + +.cal-center { + display: flex; + flex-direction: row; + flex-wrap: wrap; + overflow: hidden; + justify-content: center; + align-items: center; +} + +.cal-center .cube { + width: 14.28%; + display: flex; + justify-content: center; + align-items: center; +} + +.cal-center .cube.lunar { + margin-bottom: 0rpx; +} + +.cal-center .num-grid { + min-width: 70rpx; + height: 70rpx; + display: flex; + justify-content: center; + align-items: center; + color: #333; + margin-bottom: 2rpx; + border-radius: 10rpx; +} + +.cal-center .cube.lunar .num-grid { + width: 70rpx; + height: 90rpx; +} + +.cal-center .num-grid.now-day-cur { + background-color: #fadbd9; + color: orangered; + font-weight: bold; +} + +.cal-center .num-grid.now-day-cur.calendar-bg { + color: #fbbd08 !important; +} + + +.cal-center .num { + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 32rpx; + font-family: 'din'; +} + +.cal-center .num .lunar { + font-size: 20rpx; + font-weight: normal; + color: #aaa; +} + +.cal-center .text-no-month { + color: #333; + opacity: .5; +} + +.cal-center .calendar-bg .text-no-month { + color: #ccc; + opacity: 1; +} + + +/* 当日有数据 */ +.data-has { + position: relative; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; +} + +.data-has::before { + position: absolute; + content: ''; + width: 12rpx; + height: 12rpx; + border-radius: 50%; + background-color: var(--calendarMainColor); + right: -16rpx; + top: 14rpx; +} + +.calendar-bg .data-has::before { + background-color: var(--calendarLightColor); +} + + +/* 选中某日 */ +.cube .data-checked { + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +.cube .data-checked::before { + position: absolute; + content: ''; + width: 17rpx; + height: 17rpx; + transform: rotate(45deg); + border-right: 3rpx solid #fff; + border-bottom: 3rpx solid #fff; + bottom: 13rpx; +} + +.cube.lunar .data-checked::before { + bottom: 38rpx; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_comm/din.wxss b/miniprogram/cmpts/public/calendar/calendar_comm/din.wxss new file mode 100644 index 0000000..9097c61 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_comm/din.wxss @@ -0,0 +1,8 @@ +@font-face { + font-family: 'din'; + src: url('data:font/ttf;charset=utf-8;base64,AAEAAAAPAIAAAwBwRkZUTYgLMMEAAlaAAAAAHEdERUY15TphAAHagAAAAI5HUE9TXpiR2QAB9UgAAGE4R1NVQgGZl0kAAdsQAAAaNk9TLzJhprB7AAABeAAAAGBjbWFwlg4SlgAAEUAAAAVOZ2FzcP//AAMAAdp4AAAACGdseWZKMGmsAAAeVAABkBhoZWFkGyNVqwAAAPwAAAA2aGhlYRFbC3oAAAE0AAAAJGhtdHiGGBg+AAAB2AAAD2hsb2NhAkJmIgAAFpAAAAfEbWF4cAQqAFsAAAFYAAAAIG5hbWUcsXOaAAGubAAAB3Fwb3N0m0IygAABteAAACSWAAEAAAAEAAB/+YqcXw889QALCAAAAAAA1FMptQAAAADeE+AD/Zz9rgv+CUgAAAAIAAIAAAAAAAAAAQAAB779/gAADDv9nP1tC/4AAQAAAAAAAAAAAAAAAAAAA9MAAQAAA+EAWAAHAAAAAAACAAAAAQABAAAAQAAAAAAAAAAEBN0B9AAFAAAFMwTNAAAAmgUzBM0AAALNAGYCkQAAAAAGAAAAAAAAACAAAAcAAAABAAAAAAAAAABVTEEgAMAADfsCB779/gAACaQCuCAAAZMAAAAAAhcCvAAAACAABgSyAFIAAAAAAqoAAAAAAAACZgAAAmYAAAHGAHEDEAB7BdIAMQUGAC8H5wBMBVoAcwHAAHsCmwCWAsoAzwLZADMEAgBIAcQARgL1AHkBzABaArL/zQTvAFYE7wDTBO8ASgTvACUE7wBEBO8APwTvAF4E7wBcBO8ATgTvAEwBzABaAcgARgQCAEgEAgBIBAIARgObAAgHqQA/Bfn//gWsALAFkQA/Bi8AsAVJALAEqQCwBfkAPwZRALACcgCwBBL/+gXOALAEUwCwB14AsAZRALAGeAA/BWYAsAaHAD8FyACwBQYALwS0ABAGGACTBZsABAhiAAQFoQAbBTH//gVYAEgCzACwBCgAyQOyARcEYAA/BJEAAALMAGoEuABMBXIAsASDAEIFdgBCBLwAQgLXAEgFIgBCBWAAsAJTAJwCXv9QBNcAsAJqALAIUwCmBVMApgUGAEIFcgCwBXYAQgM5AKYD2wApA1EANwU/AIMES//+Bz3//gSLABcEWv/yBFMAVgKwAEICNwC2AzEA5QQCAIMCZgAAAcYAcwTMAEIEaABIBakAQgUzAAACNwC2BBYAKQMOAEgF6wA/AxgAOwPAACUEhwBIAvUAeQXrAD8CzABaAtQApgQCAEgDFAAzAt0AFALMAHUFagCwBQD//AHCAFoCzACYAh4AHwNFADcD1ACDBqwAHwbbAB8HKwAUA5sAPQX5//4F+f/+Bfn//gX5//4F+f/+Bfn//giF//4FkQA/BUkAsAVJALAFSQCwBUkAsAJy/+UCcgCmAnL/7AJy//wGXgAABlEAsAZ4AD8GeAA/BngAPwZ4AD8GeAA/BAIAiwZ4AD8GGACTBhgAkwYYAJMGGACTBTH//gVyALAFPwCWBLgATAS4AEwEuABMBLgATAS4AEwEuABMB8gATASDAEIEvABCBLwAQgS8AEIEvABCAlP/1wJTAJgCU//dAlP/7gTAAEQFUwCmBQYAQgUGAEIFBgBCBQYAQgUGAEIEAgBIBQYAQgU/AIMFPwCDBT8AgwU/AIMEWv/yBXIAsARa//IF+f/+BLgATAX5//4EuABMBfn//gTAAEwFkQA/BIMAQgWRAD8EgwBCBZEAPwSDAEIFkQA/BIMAQgYvALAGJABCBl4AAAV4AEIFSQCwBLwAQgVJALAEvABCBUkAsAS8AEIFWgCwBLwAQgVJALAEvABCBfkAPwUiAEIF+QA/BSIAQgX5AD8FIgBCBfkAPwUiAEIGUQCwBWD/4wbXAD0FYAAGAnL/5wJT/9kCcgArAlMAHwJyAAwCU//+AnIAnAIvAHkCcgCqAlMApgaFALAEsgCcBBL/+gJD/0YFzgCwBNcAsATKAKYEUwCoAmoApARTALACagCcBFMAsAMYALAEUwCwAv0AsARa//QCsP/2BlEAsAVTAKYGUQCwBVMApgZRALAFUwCmBjsALwZRALAFUwCmBngAPwUGAEIGeAA/BQYAQgZ4AD8FBgBCCM4APwhHAEIFyACwAzkApgXIALADOQCLBcgAsAM5AIEFBgAvA9sAKQUGAC8D2wApBQYALwPbACkFBgAvA9sAKQS0ABADUQA3BLQAEANaADcEtAAQA1EANwYYAJMFPwCDBhgAkwU/AIMGGACTBT8AgwYYAJMFPwCDBhgAkwU/AIMGGgCWBTMAgwhiAAQHPf/+BTH//gRa//IFMf/+BVgASARTAFYFWABIBFMAVgVYAEgEUwBWBkMAOwMO/xAGeAA/BQYAQgYYAJMFPwCDC4cAsAqDALAJygBCCGYAsAayALAEyACwCmQAsAiwALAHsgCmBfkAPwUiAEIGeAA/BQYAQgX5//4EuABMCIX//gfIAEwGeAA/BQYAQgX5//4EuABMBfn//gS4AEwFSQCwBLwAQgVJALAEvABCAnL/fwJT/3ECcgAMAlP//gZ4AD8FBgBCBngAPwUGAEIFyACwAzkAMQXIALADOQCmBhgAkwU/AIMGGACTBT8AgwUGAC8D2wApBLQAEANRADcGeAA/BQYAQgZ4AD8FBgBCBngAPwUGAEIFMf/+BFr/8gJD/0YEvAAtAAD/FAF8AC8CzAFmAswAcwLMABkCzAACAQ4AKQLMAFoCzAB1AswAagEOACkCzAA5AswA1wLMAHUCzACwAswAFALM//IAAP7LAAD/fQAA/rIAAP6uAAD+8gAA/tMAAP9xAAD+wQAA/xkAAP8OAAD+iwAA/pwAAP5GAAD+0wAA/30AAAAAAAD/cQAA/sEAAP9kAAD/BAAA/0YAAP7TAAD+8gAA/ZwF+f/+BwAAEAVqALAFzv/lBZEAPwSDAEIGLwCwBXYAQgYvALAFdgBCBUkAsAS8AEIFSQCwBLwAQgVJALAEvABCBfkAPwUiAEIGUQCwBWAAsAZRALAFYACwAnL/+gJT/+wEUwCwAmoAqARTALACagApB14AsAhTAKYGUQCwBVMApgZRALAFUwCmBlEAsAVTAKYGeAA/BQYAQgZ4AD8FBgBCBngAPwUGAEIGeAA/BQYAQgXIALADOQCYBcgAsAM5ABkFBgAvA9sAKQUGAC8D2wApBQYALwPbACkFBgAvA9sAKQUGAC8D2wApBLQAEANRADcEtAAQA1EANwYYAJMFPwCDBhgAkwU/AIMIYgAEBz3//ghiAAQHPf/+CGIABAc9//4FMf/+BFr/8gVYAEgEUwBWA1EAGQV8AJYF+f/+BLgATAX5//4EuABMBfn//gS4AEwF+f/+BLgATAX5//4EuABMBfn//gS4AEwF+f/+BLgATAX5//4EuABMBfn//gS4AEwF+f/+BLgATAX5//4EuABMBfn//gS4AEwFSQCwBLwAQgVJALAEvABCBUkAsAS8AEIFSQCwBLwAQgVJALAEvABCBUkAsAS8AEIFSQCwBLwAQgVJALAEvABCAnIAVAJTAEYCcgCqAlMAnAZ4AD8FBgBCBngAPwUGAEIGeAA/BQYAQgZ4AD8FBgBCBngAPwUGAEIGeAA/BQYAQgZ4AD8FBgBCBngAPwUGAEIGeAA/BQYAQgZ4AD8FBgBCBngAPwUGAEIGeAA/BQYAQgYYAJMFPwCDBhgAkwU/AIMGGACTBT8AgwYYAJMFPwCDBhgAkwU/AIMGGACTBT8AgwYYAJMFPwCDBTH//gRa//IFMf/+BFr/8gUx//4EWv/yBTH//gRa//IE7wAAAcwAAAGZAAAAzAAAAAAAAAL1AHkE7wAAAz8AAAVuAAAFbgAAAcQARgHEAEYBxABGAwoARgMKAEYDCgBGBF4AIQReACECWABaBQYAWgt+AEwBtgBSAxIAUgI3ACUCTQCDALj9ywOXAEwDMQA1AwoAKwM7AEwDBgA9A0UARAM7ADsDlwBMAh4AHwMUADMC3QAUAzEANQMKACsDOwBMAwYAPQNFAEQDOwA7BZEAPwS0AB8EaABIBiAAKQw7ALAH+wACBXgAQgZPAEgFbgAhBgIAKQXMAD8FkQA/BLoAPwWNAD0GAAA7BXIAIwPAACsJpwCwByD/9AcAABAGeACPBswAHwdLABQHbgArBy0APQTtAEYD8wAABYUAAAX7ALAE5QA/BAIASAKy/80CWABaBY0AEAbzAEIC1//pBAIAgwQCAEgEAgBIBAIARgQ5AEIFKwBIBVgASAYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYeAJMGHgCTBh4AkwYtAJMGHgCTBh4AkwYeAJMLhwCwCoMAsASyAE4EsgBOBLIATgSyAE4EsgBOBLIATgSyAE4EsgBOBLIATgSyAE4EsgBOBLIATgSyAE4EsgBOBLIATgSyAE4EsgBOBLIATgSyAE4EsgBOBLIATgS4AFQEsgBOBE8AkwX7AD8F+wA/BfsAPwX7AD8F+wA/BfsAPwX7AD8D6wBkB/0AZAPrAGQFPwACB/0AZAPrAGQD6wBkA+sAOwPrAGQD6wBkA+sAZAPrAGQD6wBkA+sAZAPrAGQD6wBkA+sAZAPrAGQEEv/6BBL/+ghmALAJhQCwCYUAsAYkALAKNwCwBiQAsAYkALAGJACwBiQAsAYkALAGJgCwCIMAsAYkALAGJACwBngAPwYeADMFSQAzBUkAMwVJADMFSQAzBUkAMwVJADMFSQAzBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEGJACRBiQAkQYkAJEJZgCTCWYAkwlmAJMJZgCTCWYAkwXrAJMF6wCTBesAkwXrAJMF6wCTBesAkwXrAJMF6wCTBesAkwXrAJMFWABIBVgASAVYAEgFWABIBVgASAVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIFaABCBWgAQgVoAEIHuABMB7gATAnKAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIErABCBKwAQgSsAEIEzgBCBKwAQgSsADMCkQCTBKcAlgJTAJwCiwCTAosAhQMOAJMCiwCTAt8AkwKLAJME6QCTAosAOwLG//YIIgBCAwoAiwMKAIsDEgCLAwoAiwMKAIsDCv/RAwoAiwMKAIsHyACBB8gAgQfIAIEHyACBB8gAgQU9AIMFPQCDBT0AgwU9AIMFPQCDBT0AgwU9AIMFPQCDBT0AgwRTAFYEUwBWBFMAVgRTAFYEUwBWCAwASAeLAJMKYABICdQAkwg5AEgHsACTB4kASAdDAJME+QCTBXYASAWNAGADJgAXBLoAPQRaAAQE3QA7BKcALQT1AF4EnQBIBQoAVAUAAFAFjQBgAyYAFwRiAD0EWgAEBN0AOwSnAC8E9QBeBJ0ASgUKAFQE9QBQBO8ASATvAOkE7wBgBO8AJQTvAEQE7wA/BO8AXgTvAFwE7wBOBO8ATAOXAEwCHgAfAxQAMwLdABQDMQA1AwoAKwM7AEwDBgA9A0UARAM7ADsDlwBMAh4AHwMUADMC3QAUAzEANQMKACsDOwBMAwYAPQNFAEQDOwA7ATcAFAAAAAD/ff8n/sH+4/9xAAD+4/6W/uP+uv7B/sH+wf62AAAAAwAAAAMAAAAcAAEAAAAAA0QAAwABAAAAHAAEAygAAADGAIAABgBGAAAADQB+AX4BjwGSAaEBsAHMAecB6wIbAi0CMwI3AlkCvAK/AswC3QME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NREhERQWMz4BNwRGARL+qv7uqP66YH1N8HGm00bXher+2QETs46RwA4FmvvO/v7+wX1kxU1jvZWuanUBASzxAkD924qwAcGbAAIAk/8nBVgHZgADACMAAAEHIxMBIREQACEiJCc3HgEzMjY9AQ4BByIANREhERQWMz4BNwRC/uLZAQsBEv6q/u6o/rpgfU3wcabTRteF6v7ZAROzjpHADgb+0wE7/jT7zv7+/sF9ZMVNY72Vrmp1AQEs8QJA/duKsAHBmwACAJP/JwVYB1wABgAmAAABByMTMxMjFyEREAAhIiQnNx4BMzI2PQEOAQciADURIREUFjM+ATcC9n3R2ena0dMBEv6q/u6o/rpgfU3wcabTRteF6v7ZAROzjpHADgbnsgEn/tmb+87+/v7BfWTFTWO9la5qdQEBLPECQP3birABwZsAAAADAJP/JwVYB1oACwAXADcAAAEiJjU0NjMyFhUUBiEiJjU0NjMyFhUUBhchERAAISIkJzceATMyNj0BDgEHIgA1ESERFBYzPgE3Aj06S0o7OkxNATw6TUw7OE1NXAES/qr+7qj+umB9TfBxptNG14Xq/tkBE7OOkcAOBkZOOz1OTj06T047PU5OPTpPrPvO/v7+wX1kxU1jvZWuanUBASzxAkD924qwAcGbAAAAAgCT/ycFWAdkAAgAKAAAACImNTQ2MhYUFyEREAAhIiQnNx4BMzI2PQEOAQciADURIREUFjM+ATcDNX5RUX5QwQES/qr+7qj+umB9TfBxptNG14Xq/tkBE7OOkcAOBj1TQUBTUoL2+87+/v7BfWTFTWO9la5qdQEBLPECQP3birABwZsAAgCT/a4FWAWaAB8AKQAAASEREAAhIiQnNx4BMzI2PQEOAQciADURIREUFjM+ATcBMhYUBiImJzQ2BEYBEv6q/u6o/rpgfU3wcabTRteF6v7ZAROzjpHADv7APlJSfE8CUAWa+87+/v7BfWTFTWO9la5qdQEBLPECQP3birABwZv7OVN+UlFAP1MAAAACAJP/JwVYB2gAAwAjAAABIyclASEREAAhIiQnNx4BMzI2PQEOAQciADURIREUFjM+ATcDgeH+AQYBngES/qr+7qj+umB9TfBxptNG14Xq/tkBE7OOkcAOBi3TaP4y+87+/v7BfWTFTWO9la5qdQEBLPECQP3birABwZsAAgCT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ASMiBgceAQO2KjIGdw13WV5xPj92Ozks/tJ5xtHd0ceRAQv+9Xr06v7gARrm+33+y4CpDAypgIitAgKrBqwvKSlPWWpTPmM2Jy9MKyIs/t+qARf+6Zn7uK66ATj7+AEyAQO9/TuihU6ForuTlLoAAAAEAEL/9ATFBy8AEwAaACkANgAAASIGFSMQMzIeATMyNTMQIyIuAgczEyMnByMFIREhNQYjIgA1NAA3NhcBMjY3NS4BIyIGBx4BAkgiJJy5L1hHGUibuChJLTUc3dHHeXnGAkkBC/71evTq/uABGub7ff7LgKkMDKmAiK0CAqsGhS8rAQQ0NFz+/h8mH43+6aqqmfu4rroBOPv4ATIBA739O6KFToWiu5OUugAABABC//QExQYhAAMABwAWACMAAAEjJzcBIyc3EyERITUGIyIANTQANzYXATI2NzUuASMiBgceAQJ9y7zdAgzLvN2FAQv+9Xr06v7gARrm+33+y4CpDAypgIitAgKrBNnqXv646l7+J/u4rroBOPv4ATIBA739O6KFToWiu5OUugAEAEL/9ATFBggACwAXACYAMwAAASImNTQ2MzIWFRQGISImNTQ2MzIWFRQGFyERITUGIyIANTQANzYXATI2NzUuASMiBgceAQH4OktKOzlMTAE8Ok5NOzhNTRUBC/71evTq/uABGub7ff7LgKkMDKmAiK0CAqsE9E47PU5OPTtOTjs9Tk49Ok+s+7iuugE4+/gBMgEDvf07ooVOhaK7k5S6AAAAAAMAQv5xBMUEVQAOABsAJQAAASERITUGIyIANTQANzYXATI2NzUuASMiBgceARMyFhQGIiYnNDYDugEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICq68+UVF8TwJQBEj7uK66ATj7+AEyAQO9/TuihU6ForuTlLr+wFJ+UlFAP1IAAwBC//QExQYXAAMAEgAfAAABIyclASERITUGIyIANTQANzYXATI2NzUuASMiBgceAQM74f4BBgFYAQv+9Xr06v7gARrm+33+y4CpDAypgIitAgKrBNvTaf4x+7iuugE4+/gBMgEDvf07ooVOhaK7k5S6AAADAEL/9ATFBj8AEwAiAC8AAAEiBgcnPgEzMhYVFAYHJz4BNTQmEyERITUGIyIANTQANzYXATI2NzUuASMiBgceAQKsKzQFfQ17W2F2QD97Ozos5gEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICqwW+LykrUlxwVj1kNikvSyojLP6K+7iuugE4+/gBMgEDvf07ooVOhaK7k5S6AAADAEL/9ATFBgYACwAaACcAAAAiBgcjPgEgFhcjJhchESE1BiMiADU0ADc2FwEyNjc1LgEjIgYHHgEC5GhGA7AEpwEEpwSwA5ABC/71evTq/uABGub7ff7LgKkMDKmAiK0CAqsFWEg5iKeniDnI+7iuugE4+/gBMgEDvf07ooVOhaK7k5S6AAAAAwBC//QExQXdAAMAEgAfAAABFSE1ASERITUGIyIANTQANzYXATI2NzUuASMiBgceAQO8/egCFgEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICqwXdwMD+a/u4rroBOPv4ATIBA739O6KFToWiu5OUugAAAAACAEL+YgUIBFUAHwAsAAAFFw4BIyImNTQ3IzUGIyIANTQANzYXNSERIwYVFBYzMgEyNjc1LgEjIgYHHgEEvkolajxEYWZEevTq/uABGub7fQELQGAfGDL994CpDAypgIitAgKryVg8QVFTaJKuugE4+/gBMgEDvbD7uIlGGyAB3aKFToWiu5OUugAAAAQAQv/0BMUGdQAKABIAIQAuAAAAIiY1NDYzMhYVFCYiBhQWMjY0EyERITUGIyIANTQANzYXATI2NzUuASMiBgceAQMUyI6PY2SQvmxLS2xNhwEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICqwSTjGRjj5BiY95IZkhIZv6S+7iuugE4+/gBMgEDvf07ooVOhaK7k5S6AAAABQBC//QExQf2AAMADgAWACUAMgAAAQcjExIiJjU0NjMyFhUUJiIGFBYyNjQTIREhNQYjIgA1NAA3NhcBMjY3NS4BIyIGBx4BBAz+4dkOyI6PY2SQvmxLS2xNhwEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICqweN0wE8/JuMZGOPkGJj3khmSEhm/pT7uK66ATj7+AEyAQO9/TuihU6ForuTlLoAAAAAAwBC//QExQYhABMAIgAvAAABIhUjEDMyHgIzMjUzECMiLgIBIREhNQYjIgA1NAA3NhcBMjY3NS4BIyIGBx4BAlBKqMMnTDA5FUqowipMLzcBVAEL/vV69Or+4AEa5vt9/suAqQwMqYCIrQICqwViYAEfIikiYP7kISgh/ub7uK66ATj7+AEyAQO9/TuihU6ForuTlLoAAAADAEz/9Ad5BFIAJQArADUAACUyNxcGISImJwYhIiY1NDY3ITUuASMiByc+ATMgFzYzMgAXBR4BEyIGByUmATUhIgYUFjMyNgWRroiZuP7ZnvdKiP63rtfbwgFCAYF4lq1hiNSGAQN1lf3hARUK/PYnl0yMngMCLUP89/7qa2RpW22jy5eN33t08b2ZmK0CH2JnZ7lLPJSS/vfj3VhkArStmZ6o/fhoQYxRZwAABABM//QHeQYUAAMAKQAvADkAAAEHIxMBMjcXBiEiJicGISImNTQ2NyE1LgEjIgcnPgEzIBc2MzIAFwUeARMiBgclJgE1ISIGFBYzMjYFLf7h2QFqroiZuP7ZnvdKiP63rtfbwgFCAYF4lq1hiNSGAQN1lf3hARUK/PYnl0yMngMCLUP89/7qa2RpW22jBazTATv6t5eN33t08b2ZmK0CH2JnZ7lLPJSS/vfj3VhkArStmZ6o/fhoQYxRZwAEAEL/9AmFBgoABgAVACcAMQAAASMDMxc3MwERIREhNQYjIgA1NAAzMgEhFSU1EyM1ITclNQUVAzMVIQQgNhAmIyIGBxYIK/7l44GB4/qsAQv+9Xn36v7gAR3n+gPZAmz8SPisAUvB/boDlPCg/r76GgEUra2KiK0CAgTPATu8vP2JAl36ELC8ATj7+QEy/IfbArABIbriAtkCs/7quvC6ASi6u5OUAAACAEL/9gR5BFMAEgAYAAAlMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmApOwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBy5mP3wEz+qL8jgED/vfk3VpkArSonJ6mAAADAEL/9gR5BhQAAwAWABwAAAEHIxMDMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmA7j+4dkfsISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQWs0wE7+reZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAwBC//YEeQYGAAwAHwAlAAABIiYnMx4BMjY3Mw4BAzI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgJtgqgEsQNGaEUDsQSoW7CEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EE16eIOUpKOYin+/SZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAAMAQv/2BHkGCgAGABkAHwAAASMDMxc3MwEyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYC5f7l44GB5P7IsISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQTPATu8vPrBmY/fATP6ovyOAQP+9+TdWmQCtKicnqYAAAMAQv4XBHkGBgAMADQAOgAAASImJzMeATI2NzMOAQMyNxcGBQceARUUBiMiJzcWMzI2NTQmIyIHNyYANTQ+ATc2ABcFHgETIgYHJSYCbYKoBLEDRmhFA7EEqFuwhJun/v85QkuAY2VTNTM+KTM0LxkuWNv++of9p+UBHQr89CeZToqgAwInQQTXp4g5Sko5iKf79JmPyBV3D1RBWmw5eykxIR8sCMUcASniovyOAQP+9+TdWmQCtKicnqYAAwBC//YEeQYKAAYAGQAfAAABByMTMxMjAzI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgJtfdHZ6dnRVrCEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EFlrMBJ/7Z++iZj98BM/qi/I4BA/735N1aZAK0qJyepgAABABC//YFAAbTAAMACgAdACMAAAEHIxMBByMTMxMjBzYAFwUeATMyNxcGISAANTQ+AQMlJiMiBgUA9LbR/kZ5x9Hd0cd45QEdCvz0J5lmsISbuv7Z/v/+wof9eAInQbmKoAZxxQEn/riqARf+6ZED/vfk3VpkmY/fATP6ovyO/eyepqgABABC/nEEeQXyAAYAGQAfACoAAAEHIxMzEyMDMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmAzIWFAYjIiYnNDYCbXnH0d3Rx1KwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBxT5RUT4/TwJRBYeqARX+6/vumY/fATP6ovyOAQP+9+TdWmQCtKicnqb8FFJ+UlI/P1IAAAAEAEL/9gR5BtMAAwAKAB0AIwAAASMnNwEHIxMzEyMDMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmBFq29tn+5nnH0d3Rx1KwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBBazFYv64qgEX/un76pmP3wEz+qL8jgED/vfk3VpkArSonJ6mAAAABABC//YEeQclABMAGgAtADMAAAEiBgcnPgEzMhYVFAYHJz4BNTQmAQcjEzMTIwMyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYDcyozBnYNd1lecT4/dzs6LP7SecfR3dHHUrCEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EGrC8pKU9ZalM+YzYnL0wrIiz+36oBF/7p++qZj98BM/qi/I4BA/735N1aZAK0qJyepgAEAEL/9gR5By8AFAAbAC4ANAAAASIGFSMQMzIeAjMyNTMQIyIuAgczEyMnByMBMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmAgQiJJu4JUkvNhVHnLgoSS02HN3Rx3h5xwFmsISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQaFLysBBCEmIVz+/h8mH43+6aqq++qZj98BM/qi/I4BA/735N1aZAK0qJyepgAABABC//YEeQYhAAMABwAaACAAAAEjJzcBIyc3AzI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgI5yr3dAg3Lvd5fsISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQTZ6l7+uOpe+qqZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAAAEAEL/9gR5BggACwAXACoAMAAAASImNTQ2MzIWFRQGISImNTQ2MzIWFRQGAzI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgG0OktKOzlMTAE8Ok1MOzhNTc6whJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBBPROOz1OTj07Tk47PU5OPTpP+9eZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAwBC//YEeQYUAAcAGgAgAAAAIiY0NjIWFAMyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYCrH5RUX5QabCEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EE7lOAU1KC+4uZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAwBC/nEEeQRTABIAGAAjAAAlMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmAzIWFAYjIiYnNDYCk7CEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0HFPlFRPj9PAlHLmY/fATP6ovyOAQP+9+TdWmQCtKicnqb8FFJ+UlI/P1IAAAADAEL/9gR5BhcAAwAWABwAAAEjJyUTMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmAvjh/gEGdLCEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EE29Np+rSZj98BM/qi/I4BA/735N1aZAK0qJyepgAAAwBC//YEeQY/ABMAJgAsAAABIgYHJz4BMzIWFRQGByc+ATU0JhMyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYCaCs0BX0Ne1thd0A/ezs5LAOwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBBb4vKStSXHBWPWQ2KS9LKiMs+w2Zj98BM/qi/I4BA/735N1aZAK0qJyepgADAEL/9gR5BgYADAAfACUAAAAiBgcjPgEzMhYXIyYDMjcXBiEgADU0PgE3NgAXBR4BEyIGByUmAqFoRgOxBKiCgagEsQNTsISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQVYSDmIp6eIOfu7mY/fATP6ovyOAQP+9+TdWmQCtKicnqYAAAAAAwBC//YEeQXdAAMAFgAcAAABFSE1ATI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgN5/ecBM7CEm7r+2f7//sKH/aflAR0K/PQnmU6KoAMCJ0EF3cDA+u6Zj98BM/qi/I4BA/735N1aZAK0qJyepgAAAAQAQv/2BHkHgQADAAcAGgAgAAABByMbARUhNQEyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYDyf7i2rT95wE1sISbuv7Z/v/+wof9p+UBHQr89CeZToqgAwInQQcZ0wE7/jnAwPsRmY/fATP6ovyOAQP+9+TdWmQCtKicnqYAAAAABABC//YEeQeBAAMABwAaACAAAAEjJyUDNSEVAzI3FwYhIAA1ND4BNzYAFwUeARMiBgclJgLu4v4BBrYCGeSwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBBkbTaP15wMD70ZmP3wEz+qL8jgED/vfk3VpkArSonJ6mAAIAQv5iBHkEUwAiACgAAAEyNxcGIyImNTQ3BiMgADU0PgE3NgAXBR4BMzI2NxcGFRQWASIGByUmA6wwMEpNfERifW12/v/+wof9p+UBHQr89CeZZlWcOo7XH/7niqADAidB/vZBWH1RU4WoPQEz+qL8jgED/vfk3VpkQTyW/YQbIASJqJyepgADAEL/9gR5Bh8AEwAmACwAAAEiFSMQMzIeAjMyNTMQIyIuAhMyNxcGISAANTQ+ATc2ABcFHgETIgYHJSYCDEmowidMMTkVSqjDKkwvN3GwhJu6/tn+//7Ch/2n5QEdCvz0J5lOiqADAidBBWBgAR8iKSJg/uQhKCH7a5mP3wEz+qL8jgED/vfk3VpkArSonJ6mAAAAAgAz//UEagRSABIAGAAAASAAFRQOAQcGACclLgEjIgcnNgEyNjcFFgIrAQEBPof9p+X+4woDDCeZZrCEm7oBLYqgA/3ZQQRS/s36ovyOAQMBCOTdWmWakN/8d6ecnaYAAQCTAAADHwX8ABIAAAEiBh0BIRUhESERND4BMzIXByYCKz5PARL+7v71cKxolXNlRQUXR0Vww/yoBIN5r1FMyzIAAAAEAJb+ZgTJBhQAAwAHAAsAGQAAAQUHIwEFByMFIREhBRQGJyYnNxYXFjY1ESEBbwEG/uEDLQEG/uL9vQEK/vYDXrmjmnRBQlJERwEKBhRo0wE7aNOR+7gtrcACA0XHLAMCW1kETgAAAAIAnAAAAboGEgAHAAsAABIyFhQGIiY0EyERIex+UFB+UAoBCv72BhJSglJSgv6I+7gAAAABAJP/9AKLBfAADQAAARQWMzI3FwYjIiY1ESEBnDYuKUQeamWBqAEJAWI9PiHfNbOlBKQAAgCF//QCiwe8AAMAEQAAAQUHIwEUFjMyNxcGIyImNREhAV4BBv7hARc2LilEHmplgagBCQe8aNP64T0+Id81s6UEpAACAJP/9AMdBfAADQARAAABFBYzMjcXBiMiJjURITsBAyMBnDYuKUQeamWBqAEJlew+rgFiPT4h3zWzpQSk/lgAAgCT/fACiwXwAA0AGgAABSImNREhERQWMzI3FwYHMhYVFA8BIzcmNTQ2AbyBqAEJNi4pRB5q1zdMJXmBTjdLDLOlBKT7cj0+Id81Wko+Nji0tiVHO00AAAIAk//0AukF8AANABcAAAEUFjMyNxcGIyImNREhEjIWFRQGIiY1NAGcNi4pRB5qZYGoAQmLdkxNdE0BYj0+Id81s6UEpP3MTj8+UVE+PwAAAgCT/nMCiwXwAA0AFgAAARQWMzI3FwYjIiY1ESECMhYUBiImNTQBnDYuKUQeamWBqAEJkX5QUH5RAWI9PiHfNbOlBKT5qlOCUlNAQQAAAAADAJP+ZgRWBh8ACwAZACkAAAEyFhUUBiMiJjU0NgEUFjMyNxcGIyImNREhARQOAiMiJzcWMzI2NREhA7RIWltHQ1pZ/iw2LilEHmplgagBCQKdPGeBSIdrUkFGOEUBCAYfWUdEWlpERlr7Qz0+Id81s6UEpPnxXZRaMErNL0ZFBG8AAAACADv+vgKLBfAADQARAAABFBYzMjcXBiMiJjURIQEhFSEBnDYuKUQeamWBqAEJ/p8CGf3nAWI9PiHfNbOlBKT5j8EAAAH/9v/0AscF8AAVAAABFwYjIiY1EQc1NxEhETcVBxEUFjMyAqgfamWBqNnZAQjs7DYuKQEI3zWzpQG0P74/AjL+HEbBRf4WPT4AAAADAEL/9gfyBFMAHQAjAC0AACUyNxcGISImJw4BIyAANTQAITIWFz4BNzYAFwUeARMiBgclJgEyNhAmIyIGEBYGCq+EnLr+2ZXlQ0Pik/7//sABQAEBk+BDQNmR5QEeDPzzJZpOiqADAilB+9iHrKyHiq2ty5mP33htbXgBNfr4ATN1bGp2AQP+9+TdWmQCtKicnqb9VrkBJrm4/ti4AAAAAQCL//QC4QVIABAAAAEXBiMiJjURIREhFSERFDMyAqQ9h4eQuAELATn+x3Q+AQzIULysA+z+08P+M6wAAQCL//QC4QVIABQAAAEXBiMiJjURIREhFSEVIRUhFRQzMgKkPYSKkLgBCwE3/skBN/7JdDsBDMhQvKwD7P7TubK4bawAAAAAAgCL//QC+gXwAAMAFAAAAQMjEQMyNxcGIyImNREhESEVIREUAvo8rgY+XD2Hh5C4AQsBOf7HBfD+owFd+u8tyFC8rAPs/tPD/jOsAAEAi/4vAuEFSAAlAAAFHgEVFAYjIic3FjMyNjU0JiMiBzcuATURIREhFSERFDMyNxcGBwIKQkyBY2VTNTM+KTMzLxouTH2YAQsBOf7HdD5cPVhOZg9VQFptOXspMSEgLAioELicA+z+08P+M6wtyDQQAAAAAgCL/fAC4QVIABAAHQAAJQYjIiY1ESERIRUhERQzMjcDMhYVFA8BIzcmNTQ2AuGHh5C4AQsBOf7HdD5c2TdMJXmBTjdLRFC8rAPs/tPD/jOsLf6OSj42OLS2JUc7TQAAA//R//QC4QcIAAsAFwAoAAATFAYjIiY1NDYzMhYXIiY1NDYzMhYVFAYTFwYjIiY1ESERIRUhERQzMttMOTpLSjs5TPA6TUw7OE1NoT2Hh5C4AQsBOf7HdD4GfTtOTjs9Tk7GTjs9Tk49Ok/7GMhQvKwD7P7Tw/4zrAAAAAIAi/5zAuEFSAAQABkAACUGIyImNREhESEVIREUMzI3ADIWFAYiJjU0AuGHh5C4AQsBOf7HdD5c/uh+UFB+UURQvKwD7P7Tw/4zrC3+jlOCUlNAQQAAAAACAIv+vgLhBUgAEAAUAAAFIiY1ESERIRUhERQzMjcXBgE1IRUB05C4AQsBOf7HdD5cPYf+YgIZDLysA+z+08P+M6wtyFD+ysHBAAAAAQCB//QHSARIAB8AAAEUAiMiJicOASMiAjURIREUFjI2NREhERQWMzI2NREhB0j5zIPkNzTig879AQqC1H0BDINtZn0BCwHL1P79f2hofwED1AJ9/Y9pfn1qAnH9j2l+fmkCcQAAAAACAIH/9AdIBhQAAwAjAAABBQcjARQCIyImJw4BIyICNREhERQWMjY1ESERFBYzMjY1ESEEKwEG/uED9vnMg+Q3NOKDzv0BCoLUfQEMg21mfQELBhRo0/zy1P79f2hofwED1AJ9/Y9pfn1qAnH9j2l+fmkCcQAAAAACAIH/9AdIBgoABgAmAAABMxMjJwcjARQCIyImJw4BIyICNREhERQWMjY1ESERFBYzMjY1ESEDcenZ0X190ASw+cyD5Dc04oPO/QEKgtR9AQyDbWZ9AQsGCv7Zs7P86NT+/X9oaH8BA9QCff2PaX59agJx/Y9pfn5pAnEAAwCB//QHSAYIAAsAFwA3AAABMhYVFAYjIiY1NDYhMhYVFAYjIiY1NDYBFAIjIiYnDgEjIgI1ESERFBYyNjURIREUFjMyNjURIQMtOUxMOTpLSgGwOE1NODpNTALh+cyD5Dc04oPO/QEKgtR9AQyDbWZ9AQsGCE49O05OOz1OTj06T047PU77w9T+/X9oaH8BA9QCff2PaX59agJx/Y9pfn5pAnEAAAAAAgCB//QHSAYXAAMAIwAAARMjJwEUAiMiJicOASMiAjURIREUFjI2NREhERQWMzI2NREhA5jZ4v4Et/nMg+Q3NOKDzv0BCoLUfQEMg21mfQELBhf+xNP8HdT+/X9oaH8BA9QCff2PaX59agJx/Y9pfn5pAnEAAAAAAQCD/mcEqgRIAB4AAAEhERQAJyYkJzceARcyNj0BBgciJjURIREUFjM+ATUDoAEK/tD7e/78WEZLy16SrHD5yesBDIJyhZgESPwt7v7gAQJYRsM5RwOkjZ66A+XDAkb+BnODAbGYAAACAIP+ZwSqBhQAAwAiAAABByMbASERFAAnJiQnNx4BFzI2PQEGByImNREhERQWMz4BNQPj/uHZwwEK/tD7e/78WEZLy16SrHD5yesBDIJyhZgFrNMBO/40/C3u/uABAlhGwzlHA6SNnroD5cMCRv4Gc4MBsZgAAAACAIP+ZwSqBgoABgAlAAABByMTMxMjFyERFAAnJiQnNx4BFzI2PQEGByImNREhERQWMz4BNQKYfdHZ6dnRjAEK/tD7e/78WEZLy16SrHD5yesBDIJyhZgFlrMBJ/7Zm/wt7v7gAQJYRsM5RwOkjZ66A+XDAkb+BnODAbGYAAAAAAMAg/5nBKoGCAALABcANgAAASImNTQ2MzIWFRQGISImNTQ2MzIWFRQGFyERFAAnJiQnNx4BFzI2PQEGByImNREhERQWMz4BNQHfOktKOzlMTAE8Ok1MOzhNTRQBCv7Q+3v+/FhGS8tekqxw+cnrAQyCcoWYBPROOz1OTj07Tk47PU5OPTpPrPwt7v7gAQJYRsM5RwOkjZ66A+XDAkb+BnODAbGYAAAAAAIAg/5nBdsESAAeACkAAAERIREUACcmJCc3HgEXMjY9AQYHIiY1ESERFBYzPgEBMhYUBiMiJic0NgOgAQr+0Pt7/vxYRkvLXpKscPnJ6wEMgnKFmAGsPlFRPj9PAlECogGm/C3u/uABAlhGwzlHA6SNnroD5cMCRv4Gc4MBsf2JUn5SUj8/UgACAIP+ZwSqBhcAAwAiAAABIyclASERFAAnJiQnNx4BFzI2PQEGByImNREhERQWMz4BNQMj4f4BBgFWAQr+0Pt7/vxYRkvLXpKscPnJ6wEMgnKFmATb02n+Mfwt7v7gAQJYRsM5RwOkjZ66A+XDAkb+BnODAbGYAAACAIP+ZwSqBj8AEwAyAAABIgYHJz4BMzIWFRQGByc+ATU0JhMhERQAJyYkJzceARcyNj0BBgciJjURIREUFjM+ATUCkys0BX0NfFthdkA/ezs5LOUBCv7Q+3v+/FhGS8tekqxw+cnrAQyCcoWYBb4vKStSXHBWPWQ2KS9LKiMs/or8Le7+4AECWEbDOUcDpI2eugPlwwJG/gZzgwGxmAAAAgCD/mcEqgW6AAMAIgAAARUhNQEhERQAJyYkJzceARcyNj0BBgciJjURIREUFjM+ATUDov3nAhcBCv7Q+3v+/FhGS8tekqxw+cnrAQyCcoWYBbrAwP6O/C3u/uABAlhGwzlHA6SNnroD5cMCRv4Gc4MBsZgAAAAAAgCD/mcEqgYfABMAMgAAASIVIxAzMh4CMzI1MxAjIi4CASERFAAnJiQnNx4BFzI2PQEGByImNREhERQWMz4BNQI3SajCJ0wxORVKqMMqTC83AVMBCv7Q+3v+/FhGS8tekqxw+cnrAQyCcoWYBWBgAR8iKSJg/uQhKCH+6Pwt7v7gAQJYRsM5RwOkjZ66A+XDAkb+BnODAbGYAAAAAQBW//4EDgRIABEAACUhFSU1EyM1ITclNQUVAzMVIQGiAmz8SPisAUzA/boDlPCg/r7Z2wKwASG64gLZArP+6roAAAACAFb//gQOBhQAAwAVAAABByMTAyEVJTUTIzUhNyU1BRUDMxUhA4f+4dnfAmz8SPisAUzA/boDlPCg/r4FrNMBO/rF2wKwASG64gLZArP+6roAAAACAFb//gQOBgoABgAYAAABIwMzFzczASEVJTUTIzUhNyU1BRUDMxUhArT+5eOBgeT+CAJs/Ej4rAFMwP26A5TwoP6+BM8BO7y8+s/bArABIbriAtkCs/7qugAAAAIAVv/+BA4GFAAHABkAAAAiJjQ2MhYUASEVJTUTIzUhNyU1BRUDMxUhAnp+UFB+Uf7XAmz8SPisAUzA/boDlPCg/r4E7lKCUlOA+5jbArABIbriAtkCs/7qugAAAgBW/nMEDgRIABEAGgAAJSEVJTUTIzUhNyU1BRUDMxUhAjIWFRQGIiY0AaICbPxI+KwBTMD9ugOU8KD+vnh+UVF+UNnbArABIbriAtkCs/7quv3XU0FAU1KCAAAEAEgAAAdzBhQABwAfADcAOwAAACImNDYyFhQFIgYdASEVIREhESM1MzU0PgIzMhcHJgU0PgIzMhcHJiMiBh0BIRUhESERIzUzAREhEQciflBQflH6/D5QARP+7f72j49AbYtNk3NiSQEBQm6JTHdWCGJQQUwBEv7u/vWPjwKmAQoE7lKCUlOAKkdFcMP8qANYw2hbk1swTMsylF2TWi8v5i1DRnDD/KgDWMP75QRI+7gAAAAEAJMAAAbyBhQABwAaAC4AMgAAACImNDYyFhQFND4BMzIXByYjIgYdASEVIREhATQ+AjMyFwcmIyIGHQEhFSERKQERIREGoX5QUH5R+aFwrGiVc2VFSj5PARL+7v71ApJBbohMeVYKYk9BTAET/u3+9gK4AQoE7lKCUlOAvnmvUUzLMkdFcMP8qASDXZNaLy/mLUNGcMP8qARI+7gAAAAABgBI/mYJzQYfAAsAEwArAEMARwBXAAABIiY1NDYzMhYVFAYkIiY0NjIWFAUiBh0BIRUhESERIzUzNTQ+AjMyFwcmFzQ+AjMyFwcmIyIGHQEhFSERIREjNTMlESERAREhERQOAiMiJzcWMzI2CStDW1pESFpb/aZ+UFB+UPsHPlABE/7t/vaPj0Bti02Tc2JJ90JuiUx3VghiUEFNARP+7f72j48DsP72AlQBCDxngUiHa1JBRjhFBOFbQ0ZaWUdEWg1SglJSgilHRXDD/KgDWMNoW5NbMEzLMpRdk1ovL+YtQ0Zww/yoA1jDLfu4BEj7kQRv+5ldlFowSs0vRgAAAAYAk/5mCUIGHwALABMAJgA6AD4ATgAAASImNTQ2MzIWFRQGJCImNDYyFhQFND4BMzIXByYjIgYdASEVIREhATQ+AjMyFwcmIyIGHQEhFSERIQERIREBESERFA4CIyInNxYzMjYIoERaWkRIWlv9pn5RUX5Q+bZwrGiVc2VFSj5PARL+7v71ApJBbohMeVYKYk9BTAET/u3+9gOu/vYCVAEIPWeBSIZrUkFGOEUE4VtDRlpZR0RaDVOAU1KCvXmvUUzLMkdFcMP8qASDXZNaLy/mLUNGcMP8qARI+7gESPuRBG/7mV2UWjBKzS9GAAAAAAMASAAAB4kGBgAVAC0AMQAAATQ2FxYXByYnJgYdASEHIREhESM1MyUiBh0BIRUhESERIzUzNTQ+AjMyFwcmJSERIQO42ayBTgZFTk1jARQC/u7+9Y+P/rc+UAET/u3+9o+PQG2LTZNzYkkDyAEK/vYEnKHJAgMo5zADAmVPWMH8pgNawfxHRXDD/KgDWMNoW5NbMEzLMtn6EAAAAAMAk//0B7AF/AASACYANAAAEzQ+ATMyFwcmIyIGHQEhFSERIQE0PgIzMhcHJiMiBh0BIRUhESEBFwYjIiY1ESERFBYzMpNwrGiVc2VFSj5PARL+7v71ApJCbolMd1YIYlFBTAET/u3+9gRsH2plgagBCTYuKASDea9RTMsyR0Vww/yoBINdk1ovL+YtQ0Zww/yoAQjfNbOlBKT7cj0+AAAFAEj+Zgb2Bh8ACwATACsALwA/AAABIiY1NDYzMhYVFAYkIiY0NjIWFAU0PgIzMhcHJiMiBh0BIRUhESERIzUzJREhEQERIREUDgIjIic3FjMyNgZURFpaREhaW/2mflBQflD8RkJuiUx3VghiUEFNARP+7f72j48DsP72AlQBCDxngUiHa1JBRjhFBOFbQ0ZaWUdEWg1SglJSgr1dk1ovL+YtQ0Zww/yoA1jDLfu4BEj7kQRv+5ldlFowSs0vRgAFAJP+ZgawBh8ACwATACcAKwA7AAABIiY1NDYzMhYVFAYkIiY0NjIWFAU0PgIzMhcHJiMiBh0BIRUhESEBESERAREhERQOAiMiJzcWMzI2Bg5DWllESFpb/aZ+UFB+UfxHQW+ITHhWCmJOQUwBEv7u/vUDr/71AlQBCDxngUiHa1JBRjhFBOFaREZaWUdEWg1SglJTgL5dk1ovL+YtQ0Zww/yoBEj7uARI+5EEb/uZXZRaMErNL0YAAwCTAAAEYAYUAAcAGwAfAAAAIiY0NjIWFAU0PgIzMhcHJiMiBh0BIRUhESkBESERBBB+UFB+UPwzQW+ITHhWCmJOQUwBEv7u/vUCuQEKBO5SglJSgr1dk1ovL+YtQ0Zww/yoBEj7uAABAEj/JwV3BfsAIwAAEz4BFzIWFREUFjMyNxcGIyImNRE0JicmBhUXMxUjAyERIzUz1wL26eLvNS4qQh9qZYGobWhjZgLg4AL+9o+PBI+zuQHJvPwhPT4g3zWzpQPlVlsCAUlGgcL8ugNGwgACAGD/+AUvBaIACQATAAAAIAAREAAgABEQJCAGERAWIDYREAGfAlABQP7A/bD+wQMR/qykpAFUpgWi/on+pP6i/ocBeQFeAV2d9f77/vr4+AEGAQQAAAAAAQAXAAACPwWaAAUAABMhESERIRcCKP7s/uwFmvpmBKoAAAAAAQA9AAAEZgWmABUAAAE2NTQmIyIHJyQhMhYVFAYHASEXITUCZqRyZ6zbbQEMAR/I+YWB/qACoQL79gL0pHhOWLTT0cmmcd2J/pDwxQAAAAABAAT/9AQGBZgAGwAAAR4BFRQEIyIkJzceATMyNjU0JisBNQEhNSEVAQKBsNX+4e+I/vNfcU69YYSVkonNAWX90QN9/nIDQhPMpcz+WUnfTFJ6aWptoAF77Kr+XAAAAAABADsAAAS0BZoADgAAASEBIREhETMHIxEhESE1AhsBCv45AYkBAM0Cy/8A/VQFmvylAUr+tuv+rAFUyQABAC3/9gRWBZoAGgAAATcyBBUUACMiJCc3HgEzMjY1NCYjIgcRIRUhAZyy6gEe/tn4gv7kbHFTxmKDk5OBzbADff2BA40C87/f/vhdTd1MUnxuZnMPAwfwAAAAAAIAXv/0BLAFpgAXACUAAAEmIyIGFz4BMzIWFRQAIyAAERAAITIWFwEiBhUUHgIzMjY1NCYEIYuvwsIFOMGC1Pn+6en+6/7DAVcBIG7wWP4hg5ohQW5Fe5GKBGZd/d1bYvvQ4P75AXYBSgFXAZs9NP2Yj2stVUcrhnhwgAABAEgAAARvBZoACAAAEyEVASEBIRUjSAQn/dP+3QIg/f71BZrN+zMEqskAAAMAVP/0BLYFpgAXACEALQAAATIEFRQGBx4BFRQEISAkNTQ2Ny4BNTQkFyIGFBYzMjY0JgMiBhUUFjMyNjU0JgKF4gEIbF+Akv7S/v/+/P7RnIVldAEJ4nuHh3t5h4Z8j56ekY6fngWmyq1kni0uwX7A392+fsUuMKNkqcbFZrhnZ7hm/aZzaGt2dWxocwAAAAIAUP/0BKIFpgAXACQAABMWMzI2Jw4BIyImNTQAMyAAERAAISImJwEyNjU0LgEjIgYVFBbfibHCwgU4wYLU+QEX6QEVAT3+qf7gb+9YAd+DmjiBXHuRigEzXP3cW2H60OEBB/6J/rb+qf5mPDQCaY9rPmtKhnhwfwAAAAACAGD/+AUvBNUACQAVAAAAIAAREAAgABEQJSIGFRQWMzI2NTQmAbQCJgFV/qv92v6sAmeVubmVl7m6BNX+qP7r/uj+qAFYARgBFXnatLfY2Le02gABABcAAAI/BM0ABQAAEyERIREhFwIo/uz+7ATN+zMD2wAAAAABAD0AAAQMBN8AFgAAAT4BNTQmIyIGByc2ITIWFRQHASEVITUCMT9MX1VQulZr7wEFve3v/tkCR/xQApg8dyo7QlVJ07ivkK7s/urwwQAAAAEABP8nBAgEywAbAAABHgEVFAQjIiQnNx4BMzI2NTQmKwE1ASE1IRUBAoGy1f7f8Yf+9WBzTL1jg5SThtEBZ/3RA33+dAJ3FcykzP9YSt9MUntpam2fAXnuqv5eAAAAAAEAO/8zBLQEzQAOAAABIQEhESERMxUjESERITUCGwEK/jkBiQEAzc3/AP1UBM38pgFJ/rfu/q4BUssAAAEAL/8pBFYEzQAaAAABNzIEFRQAIyIkJzceATMyNjU0JiMiBxEhFyEBnLLqAR7+2PeC/uZsbVTIYYKUk4HZpAN7Av2BAsEC9L/d/vZdTd1MUn5uZXIOAwbyAAAAAgBe//QEsAWmABcAJQAAASYjIgYXPgEzMhYVFAAjIAAREAAhMhYXASIGFRQeAjMyNjU0JgQhi6/CwgU4wYLU+f7p6f7r/sMBVwEgbvBY/iGDmiFBbkV7kYoEZl393Vti+9Dg/vkBdgFKAVcBmz00/ZiPay1VRyuGeHCAAAEASv8zBHEEzQAIAAATIRUBIQEhByNKBCf9zv7eAiD+AALxBM3N+zMEqMkAAwBU//QEtgWmABcAIQAtAAABMgQVFAYHHgEVFAQhICQ1NDY3LgE1NCQXIgYUFjMyNjQmAyIGFRQWMzI2NTQmAoXiAQhsX4CS/tL+//78/tGchWV0AQnie4eHe3mHhnyPnp6Rjp+eBabKrWSeLS7BfsDf3b5+xS4wo2SpxsVmuGdnuGb9pnNoa3Z1bGhzAAAAAgBQ/ycEogTZABcAJQAANxYzMjYnDgEjIiY1NAAzIAAREAAhIiYnATI2NTQuAiMiBhUUFt+JscLCBTjBgtT5ARfpARUBPf6p/uBu8FgB34OaIUFuRXuRimZc/dxbYfvQ4AEH/or+tv6p/mU9NAJoj2stVUcrhnhwgAAAAAIASP/4BKgE1wAJABUAAAAgABEQACAAERAlIgYVFBYzMjY1NCYBfwH0ATX+y/4M/skCL4WmpoWHpqcE1/6m/uv+6f6nAVoBFgEVheC6u+Dgu7rgAAEA6QAAAysEzwAFAAATIREhESHpAkL+7v7QBM/7MQPdAAAAAAEAYAAABHUE3wAVAAABNjU0JiMiBgcnNiEyFhUUBQEhFSE1An+eb2Jayl1r/QEWzP7++v6uApD8CAKYiVY7QlRK07aukbLm/urywwABACX/JwRxBM0AGgAAAR4BFRQEISIkJzcWMzI2NTQmKwE1ASEnIRUBAsHG6v7L/v2R/uJlcbLdl6inmtsBj/2YAgO8/kYCdxXLpc3+WErfnntpam+dAXvuqv5cAAEARP8zBL4EzwAOAAABIQEhETMTMxUjESMRITUCJQEI/jcBjv4CzM7+/VIEz/ykAUn+t+z+rAFUyQAAAAEAP/8pBIsEzwAaAAABMzIEFRQAISIkJzceATMyNjU0JiMiBxEhFSEBsL/0ASj+z/8Ahv7ab29ZzmaLnpyJ7aADnP1iAsP0v97+911N3UxSfm5ldBADCPIAAAAAAgBe//QErAWoABcAIwAAAS4BIyICFzYhMhYVFAAjIAAREAAhMhYXASIGFwYWMzI2NTQmBBtAplLCwwhzAQbV+P7p6f7s/sYBVAEfbu9X/iWEmwICkIV7lY0EbSsv/v/fv/rT3/76AXUBSQFZAZ09NP2akmxjlYh4coQAAAEAXP8zBK4EzwAIAAATIRUBIQEhByNcBFL9tP7bAkD91QL0BM/N+zEEqskAAwBO//QEpAWoABcAIAAsAAABMgQVFAYHHgEVFAQjICQ1NDY3LgE1NCQEIgYUFjI2NTQDIgYVFBYzMjY1NCYCd+ABA2pdfpP+1P//AP7VmIRlbwEEAVfwhITwgvyMm5yNjJ2eBajKr2OfLS7BfsDf3b6Awy4yo2SpxsVmuGdmXVz+DHNobXZ2a2h1AAACAEz/JwSWBNsAFgAiAAA3FjMyEicGISImNTQAMyAAERAAISImJwEiBhUUFjMyNic2JtuIrcHBBXL+/NT3ARbmARMBO/6s/uFs7FgB4XqQiniDmQICjWJaAQDfvvrT3wEG/ov+t/6n/mM+MwRciHhyhJJsY5UAAAACAEz/+gNMA1YACwAXAAABMhYVFAYjIiY1NDYXIgYVFBYzMjY1NCYBy7TNzbSyzcyzYm9uY2RtbQNW5MjJ5+fJx+Wcj4GCkI+DgY8AAQAfAAABhQNSAAUAABMhESMRIx8BZr6oA1L8rgK0AAABADMAAALRA1gAFQAAATY1NCYjIgYHJzYzMhYVFA8BIRUhNQGJXj85N4A5TKexgqOkzwGU/XkBxV4/KS04Mo19eGN8ncqagQABABT/+gKaA1AAGgAAAR4BFRQGIyImJzcWMzI2NTQmKwE1NyE1IRUHAbRnf7OXV6o7Tl9+S1NTS4Xe/qUCNOoB8g56YHmXNS2WZ0M6OTxo2ZJx5wABADUAAAMIA1IADgAAATMBMzUzFTMVIxUjNSE1AVa6/urhsnt7sv5aA1L9/MbGjcHBhQAAAQAr//gCyQNSABoAAAE2MzIWFRQGIyImJzcWMzI2NTQmIyIHESEVIQEjLTOVsbmbU7NETmWASVNSSphVAjP+fwIICoVwhKE4LphrRT43PAwB3ZoAAgBM//gDAANYABcAIwAAATIWFRQGIyImNTQ2MzIXByYjIgYdAT4BEzI2NTQmIyIGFRQWAeWBmrCSrcXeu5B3SlBrbncbdiNGUk5GSVROAiuVfYSd38XK8kSLNXx1GTVB/mxGQTxBSTo2SwAAAQA9AAAC2wNSAAgAABMhFQEjASEVIz0Cnv6uywFK/t+qA1KJ/TcCuHsAAAADAET/+AMEA1gAFQAfACoAAAAgFhUUBgceARUUBiAmNTQ2Ny4BNTQEIgYVFBYyNjU0AiIGFRQWMzI2NTQBFwEapj84S1m9/rq9XlA9RgF6ik1Nikw/pFhXU1JaA1h5aDhcHBxzSHOFg3FKdRweYDhlCzczMjc3MjP+1z45Oz4/OjkAAAACADv/+gLwA1oAFwAjAAABMhYVFAYjIic3FjMyNj0BDgEHIiY1NDYTMjY1NCYjIgYVFBYBfa3G37uQdkpSaG53G3ZSgZqwlkpUT0tGUU4DWuDEyfNDjDZ9dRk1QQGVfYSd/l5JOjZLRkE8QQACAEwCQgNMBZ4ACwAXAAABMhYVFAYjIiY1NDYXIgYVFBYzMjY1NCYBy7TNzbSyzcyzYm9vYmRtbQWe5MjJ5+fJx+Wcj4GCkZCDgY8AAQAfAkgBhQWaAAUAABMhESMRIx8BZr6oBZr8rgK0AAABADMCSALRBaAAFQAAATY1NCYjIgYHJzYzMhYVFA8BIRUhNQGJXj85N4A5TKexgqOkzwGU/XkEDF5AKS04Mo19eGN8ncuZgQABABQCQgKaBZgAGgAAAR4BFRQGIyImJzcWMzI2NTQmKwE1NyE1IRUHAbRnf7OXV6o7Tl9+S1NTS4Xe/qUCNOoEOQ55YHmXNS2VZkM6OTxo2ZJx6AABADUCSAMIBZoADgAAATMBMzUzFTMVIxUjNSE1AVa6/urhsnt7sv5aBZr9/MbGjsDAhQAAAQArAj8CyQWaABoAAAE2MzIWFRQGIyImJzcWMzI2NTQmIyIHESEVIQEjLTOVsbmbUrRETmSBSVNSSpBdAjP+fwRQCoVxhKE5LpdqRT43PA0B3poAAgBMAj8DAAWgABcAIwAAATIWFRQGIyImNTQ2MzIXByYjIgYdAT4BEzI2NTQmIyIGFRQWAeWBmrCSrcXeu5B3SlBrbncbdiNGUk5GSVROBHOWfYSd38XK80SLNX11GDVB/mtGQTxBSTo2SwAAAQA9AkgC2wWaAAgAABMhFQEjASEVIz0Cnv6uywFK/t+qBZqK/TgCuHsAAAADAEQCPwMEBaAAFQAfACoAAAAgFhUUBgceARUUBiAmNTQ2Ny4BNTQEIgYVFBYyNjU0AiIGFRQWMzI2NTQBFwEapj84S1m9/rq9XlA9RgF6ik1Nikw/pFhXU1JaBaB6aDhcHBxzSHOFg3FKdRweYThlCzgzMTc3MTP+1z05Oz4/OjkAAAACADsCQgLwBaIAFwAjAAABMhYVFAYjIic3FjMyNj0BDgEHIiY1NDYTMjY1NCYjIgYVFBYBfa3G37uQdkpQam53G3ZSgZqwlkpUT0tGUU4FouDEyfNDizV9dRg1QAGVfYSd/l5JOjZLRkE8QQABABQCkQEjA64ACAAAEjIWFRQGIiY0YXZMTXROA65OPz5SUnwAAAAAAQAAA/IA7AWaAAMAABEzAyPsPq4Fmv5YAAAAAAH/fQSkAJ4GTgAMAAATFhUUBiMiJjU0PwEzUDdLPDdMJXuBBZgjSjtMST43OLQAAAH/JwSBANMGFAATAAADPgEzMhYVFAYHJz4BNTQmIyIGB9kNd1lecT4/dzs6LCgqMgYFbU9YaVM+YzYnL0wrIiwvKQAAAf7BBN0BPwXyAAYAABsBIycHIxNv0MZ5ecbQBfL+66qqARUAAf7jBNMBHQXnAAsAAAEOASImJzMeATI2NwEdBJ/0nwSkA0NmQwMF53yYmHw1Q0M1AAAAAAH/cf5xAI//kwAJAAAVMhYUBiImJzQ2PlFRfE8CUG1SflJRQD9SAAABAAAEPQDpBZoAAwAAETMDI+k7rgWa/qMAAAAAAv7jBNcBagdSAAMADwAAExcHIwceATI2NzMOASImJ3P389UbA0NmQwOkBJ/0nwQHUmTFOzZFRTZ9mpp9AAAAAAL+lgTXAR0HUgADAA8AAAMTIycTHgEyNjczDgEiJidz09fz8QNDZkMDpASf9J8EB1L+2cX+/jZFRTZ9mpp9AAAC/uME1wEdB5YAEwAfAAADPgEzMhYVFAYHJz4BNTQmIyIGDwEeATI2NzMOASImJ80Nd1lecT4/djs5LCgqMgYjA0NmQwOkBJ/0nwQG7k9ZalM+YzYnL0wrIiwvKdc2RUU2fZqafQAAAAL+ugTXAT0HLwAUACAAAAEQIyIuAiMiBhUjEDMyHgIzMjUBHgEyNjczDgEiJicBPbYoSi01FSIknrslSC42Fkb+5QNDZkMDpASf9J8EByP+/iAmIDAsAQQgJiBa/ss2RUU2fZqafQAAAv7BBOECkwbTAAMACgAAARcHIyUzEyMnByMButnzt/6o3tDGeXnGBtNixUz+6aqqAAAAAAL+wQThAe4G0wADAAoAAAETIycHMxMjJwcjARvTt/Wx3tDGeXnGBtP+2cV5/umqqgAAAAAC/sEE4QHZByUAEwAaAAATPgEzMhYVFAYHJz4BNTQmIyIGBwUzEyMnByMtDXdZXnE+P3c7OiwoKjIG/u3e0MZ5ecYGfU9ZalM+YzYnL0wrIiwvKVz+6aqqAAAAAAL+tgThAT8HLwATABoAAAEQIyIuAiMiBhUjEDMyHgEzMjUBMxMjJwcjATm4KEktNRYiJJy5L1hHGUj+897Qxnl5xgcj/v4fJh8vKwEENDRc/tX+6aqqAAAAAB4BbgABAAAAAAAAAFIApgABAAAAAAABABEBHQABAAAAAAACAAcBPwABAAAAAAADABwBgQABAAAAAAAEABEBwgABAAAAAAAFADwCTgABAAAAAAAGABECrwABAAAAAAAIABEC5QABAAAAAAAJABEDGwABAAAAAAALABkDYQABAAAAAAAMABkDrwABAAAAAAANAJAE6wABAAAAAAAOABoFsgABAAAAAAAQAAoF4wABAAAAAAARAAYF/AADAAEECQAAAKQAAAADAAEECQABACIA+QADAAEECQACAA4BLwADAAEECQADADgBRwADAAEECQAEACIBngADAAEECQAFAHgB1AADAAEECQAGACICiwADAAEECQAIACICwQADAAEECQAJACIC9wADAAEECQALADIDLQADAAEECQAMADIDewADAAEECQANASADyQADAAEECQAOADQFfAADAAEECQAQABQFzQADAAEECQARAAwF7gBDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAxADEAIAAtACAAMgAwADEANgAgAFQAaABlACAATQBvAG4AdABzAGUAcgByAGEAdAAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzACAAKABqAHUAbABpAGUAdABhAC4AdQBsAGEAbgBvAHYAcwBrAHkAQABn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AH0AfAC4AKEAfwB+AIAAgQDsAO4AugEKAQsBDAENAQ4BDwD9AP4BEAERARIBEwD/AQABFAEVARYBAQEXARgBGQEaARsBHAEdAR4BHwEgASEBIgD4APkBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgD6ANcBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEA4gDjAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQALAAsQFRAVIBUwFUAVUBVgFXAVgBWQFaAPsA/ADkAOUBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAC7AXEBcgFzAXQA5gDnAXUApgF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYA2ADhAbcBuAG5AboBuwDbANwA3QDgANkA3wG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gCbAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI/AkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBALIAswKCALYAtwDEALQAtQDFAIIAwgCHAKsAxgKDAoQAvgC/ALwChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYA9wKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAIwCpwKoAqkCqgKrAqwAmAKtAq4AmgCZAO8CrwKwAKUAkgCcAKcAjwCUAJUAuQDAAMECsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gETlVMTAJDUgd1bmkwMEEwB3VuaTAwQUQHdW5pMDBCMgd1bmkwMEIzB3VuaTAwQjUHdW5pMDBCOQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgKQ2RvdGFjY2VudApjZG90YWNjZW50BkRjYXJvbgZkY2Fyb24GRGNyb2F0B0VtYWNyb24HZW1hY3JvbgZFYnJldmUGZWJyZXZlCkVkb3RhY2NlbnQKZWRvdGFjY2VudAdFb2dvbmVrB2VvZ29uZWsGRWNhcm9uBmVjYXJvbgtHY2lyY3VtZmxleAtnY2lyY3VtZmxleApHZG90YWNjZW50Cmdkb3RhY2NlbnQMR2NvbW1hYWNjZW50DGdjb21tYWFjY2VudAtIY2lyY3VtZmxleAtoY2lyY3VtZmxleARIYmFyBGhiYXIGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAxrZ3JlZW5sYW5kaWMGTGFjdXRlBmxhY3V0ZQxMY29tbWFhY2NlbnQMbGNvbW1hYWNjZW50BkxjYXJvbgZsY2Fyb24ETGRvdARsZG90Bk5hY3V0ZQZuYWN1dGUMTmNvbW1hYWNjZW50DG5jb21tYWFjY2VudAZOY2Fyb24GbmNhcm9uC25hcG9zdHJvcGhlA0VuZwNlbmcHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDE2Mgd1bmkwMTYzBlRjYXJvbgZ0Y2Fyb24EVGJhcgR0YmFyBlV0aWxkZQZ1dGlsZGUHVW1hY3Jvbgd1bWFjcm9uBlVicmV2ZQZ1YnJldmUFVXJpbmcFdXJpbmcNVWh1bmdhcnVtbGF1dA11aHVuZ2FydW1sYXV0B1VvZ29uZWsHdW9nb25lawtXY2lyY3VtZmxleAt3Y2lyY3VtZmxleAtZY2lyY3VtZmxleAt5Y2lyY3VtZmxleAZaYWN1dGUGemFjdXRlClpkb3RhY2NlbnQKemRvdGFjY2VudAd1bmkwMThGBU9ob3JuBW9ob3JuBVVob3JuBXVob3JuB3VuaTAxQzQHdW5pMDFDNQd1bmkwMUM2B3VuaTAxQzcHdW5pMDFDOAd1bmkwMUM5B3VuaTAxQ0EHdW5pMDFDQgd1bmkwMUNDBkdjYXJvbgZnY2Fyb24HdW5pMDFFQQd1bmkwMUVCCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGUHdW5pMDIwMAd1bmkwMjAxB3VuaTAyMDIHdW5pMDIwMwd1bmkwMjA0B3VuaTAyMDUHdW5pMDIwNgd1bmkwMjA3B3VuaTAyMDgHdW5pMDIwOQd1bmkwMjBBB3VuaTAyMEIHdW5pMDIwQwd1bmkwMjBEB3VuaTAyMEUHdW5pMDIwRgd1bmkwMjEwB3VuaTAyMTEHdW5pMDIxMgd1bmkwMjEzB3VuaTAyMTQHdW5pMDIxNQd1bmkwMjE2B3VuaTAyMTcMU2NvbW1hYWNjZW50DHNjb21tYWFjY2VudAd1bmkwMjFBB3VuaTAyMUIHdW5pMDIyQQd1bmkwMjJCB3VuaTAyMkMHdW5pMDIyRAd1bmkwMjMwB3VuaTAyMzEHdW5pMDIzMgd1bmkwMjMzB3VuaTAyMzcHdW5pMDI1OQd1bmkwMkJCB3VuaTAyQkMHdW5pMDJCRQd1bmkwMkJGB3VuaTAyQzgHdW5pMDJDOQd1bmkwMkNBB3VuaTAyQ0IHdW5pMDJDQwlncmF2ZWNvbWIJYWN1dGVjb21iB3VuaTAzMDIJdGlsZGVjb21iB3VuaTAzMDQHdW5pMDMwNgd1bmkwMzA3B3VuaTAzMDgNaG9va2Fib3ZlY29tYgd1bmkwMzBBB3VuaTAzMEIHdW5pMDMwQwd1bmkwMzBGB3VuaTAzMTEHdW5pMDMxMgd1bmkwMzFCDGRvdGJlbG93Y29tYgd1bmkwMzI0B3VuaTAzMjYHdW5pMDMyNwd1bmkwMzI4B3VuaTAzMkUHdW5pMDMzMQd1bmkwMzM1B3VuaTAzOTQHdW5pMDNBOQd1bmkwM0JDB3VuaTFFMDgHdW5pMUUwOQd1bmkxRTBDB3VuaTFFMEQHdW5pMUUwRQd1bmkxRTBGB3VuaTFFMTQHdW5pMUUxNQd1bmkxRTE2B3VuaTFFMTcHdW5pMUUxQwd1bmkxRTFEB3VuaTFFMjAHdW5pMUUyMQd1bmkxRTI0B3VuaTFFMjUHdW5pMUUyQQd1bmkxRTJCB3VuaTFFMkUHdW5pMUUyRgd1bmkxRTM2B3VuaTFFMzcHdW5pMUUzQQd1bmkxRTNCB3VuaTFFNDIHdW5pMUU0Mwd1bmkxRTQ0B3VuaTFFNDUHdW5pMUU0Ngd1bmkxRTQ3B3VuaTFFNDgHdW5pMUU0OQd1bmkxRTRDB3VuaTFFNEQHdW5pMUU0RQd1bmkxRTRGB3VuaTFFNTAHdW5pMUU1MQd1bmkxRTUyB3VuaTFFNTMHdW5pMUU1QQd1bmkxRTVCB3VuaTFFNUUHdW5pMUU1Rgd1bmkxRTYwB3VuaTFFNjEHdW5pMUU2Mgd1bmkxRTYzB3VuaTFFNjQHdW5pMUU2NQd1bmkxRTY2B3VuaTFFNjcHdW5pMUU2OAd1bmkxRTY5B3VuaTFFNkMHdW5pMUU2RAd1bmkxRTZFB3VuaTFFNkYHdW5pMUU3OAd1bmkxRTc5B3VuaTFFN0EHdW5pMUU3QgZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwd1bmkxRThFB3VuaTFFOEYHdW5pMUU5Mgd1bmkxRTkzB3VuaTFFOTcHdW5pMUU5RQd1bmkxRUEwB3VuaTFFQTEHdW5pMUVBMgd1bmkxRUEzB3VuaTFFQTQHdW5pMUVBNQd1bmkxRUE2B3VuaTFFQTcHdW5pMUVBOAd1bmkxRUE5B3VuaTFFQUEHdW5pMUVBQgd1bmkxRUFDB3VuaTFFQUQHdW5pMUVBRQd1bmkxRUFGB3VuaTFFQjAHdW5pMUVCMQd1bmkxRUIyB3VuaTFFQjMHdW5pMUVCNAd1bmkxRUI1B3VuaTFFQjYHdW5pMUVCNwd1bmkxRUI4B3VuaTFFQjkHdW5pMUVCQQd1bmkxRUJCB3VuaTFFQkMHdW5pMUVCRAd1bmkxRUJFB3VuaTFFQkYHdW5pMUVDMAd1bmkxRUMxB3VuaTFFQzIHdW5pMUVDMwd1bmkxRUM0B3VuaTFFQzUHdW5pMUVDNgd1bmkxRUM3B3VuaTFFQzgHdW5pMUVDOQd1bmkxRUNBB3VuaTFFQ0IHdW5pMUVDQwd1bmkxRUNEB3VuaTFFQ0UHdW5pMUVDRgd1bmkxRUQwB3VuaTFFRDEHdW5pMUVEMgd1bmkxRUQzB3VuaTFFRDQHdW5pMUVENQd1bmkxRUQ2B3VuaTFFRDcHdW5pMUVEOAd1bmkxRUQ5B3VuaTFFREEHdW5pMUVEQgd1bmkxRURDB3VuaTFFREQHdW5pMUVERQd1bmkxRURGB3VuaTFFRTAHdW5pMUVFMQd1bmkxRUUyB3VuaTFFRTMHdW5pMUVFNAd1bmkxRUU1B3VuaTFFRTYHdW5pMUVFNwd1bmkxRUU4B3VuaTFFRTkHdW5pMUVFQQd1bmkxRUVCB3VuaTFFRUMHdW5pMUVFRAd1bmkxRUVFB3VuaTFFRUYHdW5pMUVGMAd1bmkxRUYxBllncmF2ZQZ5Z3JhdmUHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCB3VuaTIwMTAKZmlndXJlZGFzaAd1bmkyMDE1Bm1pbnV0ZQZzZWNvbmQHdW5pMjA3MAd1bmkyMDc0B3VuaTIwNzUHdW5pMjA3Ngd1bmkyMDc3B3VuaTIwNzgHdW5pMjA3OQd1bmkyMDgwB3VuaTIwODEHdW5pMjA4Mgd1bmkyMDgzB3VuaTIwODQHdW5pMjA4NQd1bmkyMDg2B3VuaTIwODcHdW5pMjA4OAd1bmkyMDg5DWNvbG9ubW9uZXRhcnkEbGlyYQd1bmkyMEE2BnBlc2V0YQd1bmkyMEE5BGRvbmcERXVybwd1bmkyMEFEB3VuaTIwQjEHdW5pMjBCMgd1bmkyMEI1B3VuaTIwQjkHdW5pMjBCQQd1bmkyMEJDB3VuaTIwQkQHdW5pMjExMwd1bmkyMTE2B3VuaTIxMjYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCGVtcHR5c2V0B3VuaTIyMDYHdW5pMjIxNQd1bmkyMjE5BkEuc3MwMQtBYWN1dGUuc3MwMQtBYnJldmUuc3MwMQx1bmkxRUFFLnNzMDEMdW5pMUVCNi5zczAxDHVuaTFFQjAuc3MwMQx1bmkxRUIyLnNzMDEMdW5pMUVCNC5zczAxEEFjaXJjdW1mbGV4LnNzMDEMdW5pMUVBNC5zczAxDHVuaTFFQUMuc3MwMQx1bmkxRUE2LnNzMDEMdW5pMUVBOC5zczAxDHVuaTFFQUEuc3MwMQx1bmkwMjAwLnNzMDEOQWRpZXJlc2lzLnNzMDEMdW5pMUVBMC5zczAxC0FncmF2ZS5zczAxDHVuaTFFQTIuc3MwMQx1bmkwMjAyLnNzMDEMQW1hY3Jvbi5zczAxDEFvZ29uZWsuc3MwMQpBcmluZy5zczAxD0FyaW5nYWN1dGUuc3MwMQtBdGlsZGUuc3MwMQx1bmkwMUM0LnNzMDEMdW5pMDFDNS5zczAxBkUuc3MwMQtFYWN1dGUuc3MwMQtFYnJldmUuc3MwMQtFY2Fyb24uc3MwMQx1bmkxRTFDLnNzMDEQRWNpcmN1bWZsZXguc3MwMQx1bmkxRUJFLnNzMDEMdW5pMUVDNi5zczAxDHVuaTFFQzAuc3MwMQx1bmkxRUMyLnNzMDEMdW5pMUVDNC5zczAxDHVuaTAyMDQuc3MwMQ5FZGllcmVzaXMuc3MwMQ9FZG90YWNjZW50LnNzMDEMdW5pMUVCOC5zczAxC0VncmF2ZS5zczAxDHVuaTFFQkEuc3MwMQx1bmkwMjA2LnNzMDEMRW1hY3Jvbi5zczAxDHVuaTFFMTYuc3MwMQx1bmkxRTE0LnNzMDEMRW9nb25lay5zczAxDHVuaTFFQkMuc3MwMQZGLnNzMDEGRy5zczAxC0dicmV2ZS5zczAxC0djYXJvbi5zczAxEEdjaXJjdW1mbGV4LnNzMDERR2NvbW1hYWNjZW50LnNzMDEPR2RvdGFjY2VudC5zczAxDHVuaTFFMjAuc3MwMQZJLnNzMDEHSUouc3MwMQtJYWN1dGUuc3MwMRBJYWN1dGVfSi5sb2NsTkxEFUlhY3V0ZV9KLmxvY2xOTEQuc3MwMQtJYnJldmUuc3MwMRBJY2lyY3VtZmxleC5zczAxDHVuaTAyMDguc3MwMQ5JZGllcmVzaXMuc3MwMQx1bmkxRTJFLnNzMDEPSWRvdGFjY2VudC5zczAxDHVuaTFFQ0Euc3MwMQtJZ3JhdmUuc3MwMQx1bmkxRUM4LnNzMDEMdW5pMDIwQS5zczAxDEltYWNyb24uc3MwMQxJb2dvbmVrLnNzMDELSXRpbGRlLnNzMDEGSi5zczAxEEpjaXJjdW1mbGV4LnNzMDEMdW5pMDFDNy5zczAxBk0uc3MwMQx1bmkxRTQyLnNzMDEGTi5zczAxDHVuaTAxQ0Euc3MwMQtOYWN1dGUuc3MwMQtOY2Fyb24uc3MwMRFOY29tbWFhY2NlbnQuc3MwMQx1bmkxRTQ0LnNzMDEMdW5pMUU0Ni5zczAxCEVuZy5zczAxDHVuaTAxQ0Iuc3MwMQx1bmkxRTQ4LnNzMDELTnRpbGRlLnNzMDEGUS5zczAxDHVuaTAxOEYuc3MwMQZULnNzMDEJVGJhci5zczAxC1RjYXJvbi5zczAxDHVuaTAxNjIuc3MwMQx1bmkwMjFBLnNzMDEMdW5pMUU2Qy5zczAxDHVuaTFFNkUuc3MwMQZVLnNzMDELVWFjdXRlLnNzMDELVWJyZXZlLnNzMDEQVWNpcmN1bWZsZXguc3MwMQx1bmkwMjE0LnNzMDEOVWRpZXJlc2lzLnNzMDEMdW5pMUVFNC5zczAxC1VncmF2ZS5zczAxDHVuaTFFRTYuc3MwMQpVaG9ybi5zczAxDHVuaTFFRTguc3MwMQx1bmkxRUYwLnNzMDEMdW5pMUVFQS5zczAxDHVuaTFFRUMuc3MwMQx1bmkxRUVFLnNzMDESVWh1bmdhcnVtbGF1dC5zczAxDHVuaTAyMTYuc3MwMQxVbWFjcm9uLnNzMDEMdW5pMUU3QS5zczAxDFVvZ29uZWsuc3MwMQpVcmluZy5zczAxC1V0aWxkZS5zczAxDHVuaTFFNzguc3MwMQZXLnNzMDELV2FjdXRlLnNzMDEQV2NpcmN1bWZsZXguc3MwMQ5XZGllcmVzaXMuc3MwMQtXZ3JhdmUuc3MwMQZZLnNzMDELWWFjdXRlLnNzMDEQWWNpcmN1bWZsZXguc3MwMQ5ZZGllcmVzaXMuc3MwMQx1bmkxRThFLnNzMDEMdW5pMUVGNC5zczAxC1lncmF2ZS5zczAxDHVuaTFFRjYuc3MwMQx1bmkwMjMyLnNzMDEMdW5pMUVGOC5zczAxBlouc3MwMQtaYWN1dGUuc3MwMQtaY2Fyb24uc3MwMQ9aZG90YWNjZW50LnNzMDEMdW5pMUU5Mi5zczAxBmEuc3MwMQthYWN1dGUuc3MwMQthYnJldmUuc3MwMQx1bmkxRUFGLnNzMDEMdW5pMUVCNy5zczAxDHVuaTFFQjEuc3MwMQx1bmkxRUIzLnNzMDEMdW5pMUVCNS5zczAxEGFjaXJjdW1mbGV4LnNzMDEMdW5pMUVBNS5zczAxDHVuaTFFQUQuc3MwMQx1bmkxRUE3LnNzMDEMdW5pMUVBOS5zczAxDHVuaTFFQUIuc3MwMQx1bmkwMjAxLnNzMDEOYWRpZXJlc2lzLnNzMDEMdW5pMUVBMS5zczAxC2FncmF2ZS5zczAxDHVuaTFFQTMuc3MwMQx1bmkwMjAzLnNzMDEMYW1hY3Jvbi5zczAxDGFvZ29uZWsuc3MwMQphcmluZy5zczAxD2FyaW5nYWN1dGUuc3MwMQthdGlsZGUuc3MwMQdhZS5zczAxDGFlYWN1dGUuc3MwMQx1bmkwMUM2LnNzMDEGZS5zczAxC2VhY3V0ZS5zczAxC2VicmV2ZS5zczAxC2VjYXJvbi5zczAxDHVuaTFFMUQuc3MwMRBlY2lyY3VtZmxleC5zczAxDHVuaTFFQkYuc3MwMQx1bmkxRUM3LnNzMDEMdW5pMUVDMS5zczAxDHVuaTFFQzMuc3MwMQx1bmkxRUM1LnNzMDEMdW5pMDIwNS5zczAxDmVkaWVyZXNpcy5zczAxD2Vkb3RhY2NlbnQuc3MwMQx1bmkxRUI5LnNzMDELZWdyYXZlLnNzMDEMdW5pMUVCQi5zczAxDHVuaTAyMDcuc3MwMQxlbWFjcm9uLnNzMDEMdW5pMUUxNy5zczAxDHVuaTFFMTUuc3MwMQxlb2dvbmVrLnNzMDEMdW5pMUVCRC5zczAxDHVuaTAyNTkuc3MwMQZmLnNzMDEQaWFjdXRlX2oubG9jbE5MRAlpLmxvY2xUUksGbC5zczAxC2xhY3V0ZS5zczAxC2xjYXJvbi5zczAxEWxjb21tYWFjY2VudC5zczAxCWxkb3Quc3MwMQx1bmkxRTM3LnNzMDEMdW5pMDFDOS5zczAxDHVuaTFFM0Iuc3MwMQtsc2xhc2guc3MwMQdvZS5zczAxBnQuc3MwMQl0YmFyLnNzMDELdGNhcm9uLnNzMDEMdW5pMDE2My5zczAxDHVuaTAyMUIuc3MwMQx1bmkxRTk3LnNzMDEMdW5pMUU2RC5zczAxDHVuaTFFNkYuc3MwMQZ3LnNzMDELd2FjdXRlLnNzMDEQd2NpcmN1bWZsZXguc3MwMQ53ZGllcmVzaXMuc3MwMQt3Z3JhdmUuc3MwMQZ5LnNzMDELeWFjdXRlLnNzMDEQeWNpcmN1bWZsZXguc3MwMQ55ZGllcmVzaXMuc3MwMQx1bmkxRUY1LnNzMDELeWdyYXZlLnNzMDEMdW5pMUVGNy5zczAxDHVuaTAyMzMuc3MwMQx1bmkxRUY5LnNzMDEGei5zczAxC3phY3V0ZS5zczAxC3pjYXJvbi5zczAxD3pkb3RhY2NlbnQuc3MwMQx1bmkxRTkzLnNzMDEFZl9mX2kKZl9mX2kuc3MwMQZmX2ZfaWoLZl9mX2lqLnNzMDEFZl9mX2wKZl9mX2wuc3MwMQRmX2lqCWZfaWouc3MwMQdmaS5zczAxB2ZsLnNzMDEHemVyby5sZgZvbmUubGYGdHdvLmxmCHRocmVlLmxmB2ZvdXIubGYHZml2ZS5sZgZzaXgubGYIc2V2ZW4ubGYIZWlnaHQubGYHbmluZS5sZgh6ZXJvLm9zZgdvbmUub3NmB3R3by5vc2YJdGhyZWUub3NmCGZvdXIub3NmCGZpdmUub3NmB3NpeC5vc2YJc2V2ZW4ub3NmCWVpZ2h0Lm9zZghuaW5lLm9zZgl6ZXJvLnRvc2YIb25lLnRvc2YIdHdvLnRvc2YKdGhyZWUudG9zZglmb3VyLnRvc2YJZml2ZS50b3NmCHNpeC50b3NmCnNldmVuLnRvc2YKZWlnaHQudG9zZgluaW5lLnRvc2YJemVyby5kbm9tCG9uZS5kbm9tCHR3by5kbm9tCnRocmVlLmRub20JZm91ci5kbm9tCWZpdmUuZG5vbQhzaXguZG5vbQpzZXZlbi5kbm9tCmVpZ2h0LmRub20JbmluZS5kbm9tCXplcm8ubnVtcghvbmUubnVtcgh0d28ubnVtcgp0aHJlZS5udW1yCWZvdXIubnVtcglmaXZlLm51bXIIc2l4Lm51bXIKc2V2ZW4ubnVtcgplaWdodC5udW1yCW5pbmUubnVtchZwZXJpb2RjZW50ZXJlZC5sb2NsQ0FUDWNhcm9uY29tYi5hbHQLdW5pMDMyNi5hbHQSaG9va2Fib3ZlY29tYi5jYXNlEHVuaTAzMDIubG9jbFZJRVQQdW5pMDMwNi5sb2NsVklFVBVkb3RiZWxvd2NvbWIubG9jbFZJRVQTY2Fyb25jb21iLmFsdC5zaG9ydAt1bmkwMzA2MDMwMQt1bmkwMzA2MDMwMAt1bmkwMzA2MDMwOQt1bmkwMzA2MDMwMwt1bmkwMzAyMDMwMQt1bmkwMzAyMDMwMAt1bmkwMzAyMDMwOQt1bmkwMzAyMDMwMwAAAAAAAf//AAIAAQAAAAwAAABkAHgAAgAOAAEBkgABAZMBqgADAasCpgABAqcCqAACAqkDlAABA5UDlQACA5YDlgABA5cDlwACA5gDmAABA5kDmQACA5oDmgABA5sDmwACA5wD0QABA9ID4AADAA4AAQAGAAEABAABAsEAAQABA54AAgADAZMBoQABA9MD1gABA9kD4AABAAAAAQAAAAoCIgN0AAJERkxUAA5sYXRuADoABAAAAAD//wARAAAAAQADAAQABQAGAAcAEQASABMAFAAVABYAFwAYABkAGgA6AAlBWkUgAGRDQVQgAI5DUlQgALhLQVogAOJNT0wgAQxOTEQgATZST00gAWBUQVQgAYpUUksgAbQAAP//ABIAAAABAAIAAwAEAAUABgAHABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAIABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAJABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAKABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwALABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAMABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwANABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAOABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAPABEAEgATABQAFQAWABcAGAAZABoAAP//ABIAAAABAAMABAAFAAYABwAQABEAEgATABQAFQAWABcAGAAZABoAG2FhbHQApGNhc2UArGNjbXAAsmRsaWcAvGRub20AwmZyYWMAyGxpZ2EA0mxudW0A2GxvY2wA3mxvY2wA5GxvY2wA6mxvY2wA8GxvY2wA9mxvY2wA/GxvY2wBAmxvY2wBCGxvY2wBDm51bXIBFG9udW0BGm9yZG4BIHBudW0BKHNhbHQBLnNpbmYBNHNzMDEBOnN1YnMBQHN1cHMBRnRudW0BTAAAAAIAAAABAAAAAQAbAAAAAwACAAMABAAAAAEAHAAAAAEAEQAAAAMAEgATABQAAAABAB0AAAABABcAAAABAA0AAAABAAYAAAABAAwAAAABAAkAAAABAAgAAAABAAUAAAABAAcAAAABAAoAAAABAAsAAAABABAAAAABABoAAAACABUAFgAAAAEAGAAAAAEAHgAAAAEAIAAAAAEAHwAAAAEADgAAAAEADwAAAAEAGQAiAEYATgBWAGQAbgB2AH4AiACQAJgAoACoALAAuADAAMgA0ADYAOAA6ADwAPoBBAEMARQBHAEkASwBNAE8AUQBTAFUAVwAAQAAAAEBHgADAAAAAQUUAAYAAAAEBvIHFgdMB2oABgAAAAIKbgqMAAQAAAABCqAABAAAAAEK7gAGAAAAAgsMCzIAAQAAAAELTgABAAAAAQtgAAEAAAABC3IAAQAAAAELdgABAAAAAQt6AAEAAAABC34AAQAAAAELggABAAAAAQuGAAEAAAABC44AAQAAAAELqgABAAAAAQuyAAEAAAABC7oAAQAAAAELvgAGAAAAAgvGC+gABgAAAAIMBAwoAAQAAAABDEIAAQAAAAEMVAABAAAAAQxcAAEAAAABDJIAAQAAAAEMwgABAAAAAQz4AAQAAAABDUoABAAAAAENZAABAAAAAQ2QAAEAAAABEU4AAQAAAAEVDAABAAAAARUUAAICAAD9AmwCxALbAtwC4wL1AvgC+gB+AwUDBwMOAyUDKgM0A1UDbQGAA3AAfgN6A4IDhwOQA9ECugKqArECwQK4Ar8C0wLFAskC0ALvAuUC6QLrAwQDFQMPAxEDEwMrA0oDOgNBA1EDSANPA1IDZANWA1oDYQOIA4oCvQNNAqsDOwK+A04C1gNnAsYDVwLRA2IC2QNqAscDWALfAt0C4QLgAvQC8gLoAvMC7QLkAvYDcQNzA3IDdAN4AvwC/gL9AwEDeQF0AXUDCQN8AwgDewMjAx8DEAMiAx0DIQMnA4QDLAOJAy0DNQORAzcDkwM2A5IDBgMXAsICwwNUAvcDdgL7AwIC3gLAA1ADUwK3A0cCvANMAs8DYALVA2YC6gLxAxIDHgMLA34DMgOOA2wD1ALYA2kC1wNoAsgDWQLiAuwDdQN3AvkC/wMAAwMDDAOAAw0DgQMkAyADKQOGAyYDgwMoA4UDLgM4A5QDfwK5A0kCuwNLArIDQgK0A0QCtQNFArYDRgKzA0MCrAM8Aq4DPgKvAz8CsANAAq0DPQLSA2MC1ANlAtoDawLKA1sCzANdAs0DXgLOA18CywNcAvAC7gMUAxYDGAMaAxsDHAMZAzADjAMvA4sDMQONAzMDjwOdA54C5wOWA5gDmgOcA70DvgO/A8ADwQPCA8MDxAPFA8YAAQD9ABQAKgArACwALgAvADIAMwA0ADYAOQA6ADwAPgA/AEoASwBPAFEAVABZAFwAXgBfAHsAhACFAIYAhwCIAIkAjACNAI4AjwCQAJEAkgCTAJUAnQCeAJ8AoAChAKQApQCmAKcAqACpAKoArACtAK4ArwDBAMMAxADFAMYAxwDIAMkA1gDXANgA2QDaANsA3ADdAN4A3wDgAOIA5ADmAOwA7gDwAPIA9AD2APgA/gEAAQIBBAEGAQcBCQELAQ4BFwEiASMBKAEpASoBKwEsAS4BMAEyATQBNgE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFHAUkBSgFLAUwBTgFPAVABUgFWAVcBWQFcAV0BXgFfAWABYQFiAWMBZAFmAXABcgF2AXcBfgF/AYEBmwG1AbYBtwG4AbkBugG7AcEBxAHGAccByQHLAc0B5QHmAecB6AHpAesB7QHuAe8B8AHxAfIB8wH1AfYB9wH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIwI9Aj8CQQJDAkUCRwJJAksCTAJNAk4CTwJQAlECUgKnAqgC5gOVA5cDmQObA8cDyAPJA8oDywPMA80DzgPPA9AAAQG+AC0AYABuAHwAigCYAKYAtADCANAA3gDsAPIA+AD+AQQBCgEQARYBHAEiASgBLgE0AToBQAFGAUwBUgFYAV4BZAFqAXABdgF8AYIBiAGOAZQBmgGgAaYBrAGyAbgABgJ0Am0DxwO9A58DswAGAnUAfQPIA74DoAO0AAYCdgB2A8kDvwOhA7UABgJ3AHcDygPAA6IDtgAGAngCbgPLA8EDowO3AAYCeQJvA8wDwgOkA7gABgJ6AnADzQPDA6UDuQAGAnsCcQPOA8QDpgO6AAYCfAJyA88DxQOnA7sABgJ9AnMD0APGA6gDvAACAG4CqQACAG4DOQACAPUDbwACAXYDCgACAXcDfQACABUDqQACABYDqgACABcDqwACABgDrAACABkDrQACABoDrgACABsDrwACABwDsAACAB0DsQAC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AAoAAgAuABQAFQAWABcAGAAZABoAGwAcAB0AHgOzA7QDtQO2A7cDuAO5A7oDuwO8AAIAAQOfA7IAAAACAC4AFAOzA7QDtQO2A7cDuAO5A7oDuwO8A6kDqgOrA6wDrQOuA68DsAOxA7IAAgACABUAHgAAA58DqAAKAAIARAAfA58DoAOhA6IDowOkA6UDpgOnA6gD1AOfA6ADoQOiA6MDpAOlA6YDpwOoA58DoAOhA6IDowOkA6UDpgOnA6gAAgADABUAHgAAAZsBmwAKA6kDvAALAAEAHAABAAgAAgAGAA4DlwADAEsA9wObAAIA9wABAAEASwABAC4AAQAIAAQACgASABoAIAOZAAMASwBRA5UAAwBLAE4CqAACAFECpwACAE4AAQABAEsAAgHkAO8CqQLEAtsC3ALjAvUC+AL6AwUDBwMOAyUDKgM0AzkDVQNtA3ADegOCA4cDkAK6AqoCsQLBArgCvwLTAsUCyQLQAu8C5QLpAusDBAMVAw8DEQMTAysDSgM6A0EDUQNIA08DUgNkA1YDWgNhA4gDigK9A00CqwM7Ar4DTgLWA2cCxgNXAtEDYgLZA2oCxwNYAt8C3QLhAuAC9ALyAugC8wLtAuQC9gNxA3MDcgN0A3gC/AL+Av0DAQN5AwoDfQMJA3wDCAN7AyMDHwMQAyIDHQMhAycDhAMsA4kDLQM1A5EDNwOTAzYDkgMGAxcCwgLDA1QC9wN2AvsDAgLeAsADUANTArcDRwK8A0wCzwNgAtUDZgLqAvEDEgMeAwsDfgMyA44DbALYA2kC1wNoAsgDWQLiAuwDdQN3AvkC/wMAAwMDDAOAAw0DgQMkAyADKQOGAyYDgwMoA4UDLgM4A5QDfwK5A0kCuwNLArIDQgK0A0QCtQNFArYDRgKzA0MCrAM8Aq4DPgKvAz8CsANAAq0DPQLSA2MC1ANlAtoDawLKA1sCzANdAs0DXgLOA18CywNcAvAC7gMUAxYDGAMaAxsDHAMZAzADjAMvA4sDMQONAzMDjwOdA54C5wOWA5gDmgOcAAEA7wAmACoAKwAsAC4ALwAyADMANgA5ADoAPAA+AD8ARgBKAEsAUQBZAFwAXgBfAIQAhQCGAIcAiACJAIwAjQCOAI8AkACRAJIAkwCVAJ0AngCfAKAAoQCkAKUApgCnAKgAqQCqAKwArQCuAK8AwQDDAMQAxQDGAMcAyADJANYA1wDYANkA2gDbANwA3QDeAN8A4ADiAOQA5gDsAO4A8ADyAPQA9gD4AP4BAAECAQQBBgEHAQkBCwEOARcBJgEnASgBKQEqASsBLAEuATABMgE0ATYBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRwFJAUoBSwFMAU4BTwFQAVIBVgFXAVkBXAFdAV4BXwFgAWEBYgFjAWQBZgFwAXIBdgF3AX4BfwGBAbUBtgG3AbgBuQG6AbsBwQHEAcYBxwHJAcsBzQHlAeYB5wHoAekB6wHtAe4B7wHwAfEB8gHzAfUB9gH3AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIjAj0CPwJBAkMCRQJHAkkCSwJMAk0CTgJPAlACUQJSAqcCqALmA5UDlwOZA5sAAgHkAO8CqQLEAtsC3ALjAvUC+AL6AwUDBwMOAyUDKgM0AzkDVQNtA3ADegOCA4cDkAK6AqoCsQLBArgCvwLTAsUCyQLQAu8C5QLpAusDBAMVAw8DEQMTAysDSgM6A0EDUQNIA08DUgNkA1YDWgNhA4gDigK9A00CqwM7Ar4DTgLWA2cCxgNXAtEDYgLZA2oCxwNYAt8C3QLhAuAC9ALyAugC8wLtAuQC9gNxA3MDcgN0A3gC/AL+Av0DAQN5AwoDfQMJA3wDCAN7AyMDHwMQAyIDHQMhAycDhAMsA4kDLQM1A5EDNwOTAzYDkgMGAxcCwgLDA1QC9wN2AvsDAgLeAsADUANTArcDRwK8A0wCzwNgAtUDZgLqAvEDEgMeAwsDfgMyA44DbALYA2kC1wNoAsgDWQLiAuwDdQN3AvkC/wMAAwMDDAOAAw0DgQMkAyADKQOGAyYDgwMoA4UDLgM4A5QDfwK5A0kCuwNLArIDQgK0A0QCtQNFArYDRgKzA0MCrAM8Aq4DPgKvAz8CsANAAq0DPQLSA2MC1ANlAtoDawLKA1sCzANdAs0DXgLOA18CywNcAvAC7gMUAxYDGAMaAxsDHAMZAzADjAMvA4sDMQONAzMDjwOdA54C5wOWA5gDmgOcAAEA7wAmACoAKwAsAC4ALwAyADMANgA5ADoAPAA+AD8ARgBKAEsAUQBZAFwAXgBfAIQAhQCG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AAIALwAvAAEA+AD4AAEAAQABApAAAQDiAM4AAwDyAAwACAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAJIAmACeAKQAqgCwALYAvAABAo8AAAABApoFmgABAAAAAAABAlIAAAABAm0ESAABAAAAAAABAtUAAAABArwESAABBCUESAABAwwAAAABAwAFmgABAAAAAAABAtsAAAABAAAAAAABBVwF8AABAxsAAAABAx8FmgABAAAAAAABAwwAAAABAwAFmgABAAAAAAABAysAAAABAzsFmgABAAAAAAABAAgACQBmAHkCfgKEAogCiQKPAAIAAgGTAakAAAPSA+AAFwAmAAEAmgABAKAAAQCmAAEArAABALIAAQC4AAEAvgABAMQAAQDKAAEA0AABANYAAQDcAAEA4gABAOgAAQDuAAIA9AAAAPoAAAEAAAABBgAAAQwAAAESAAABGAAAAR4AAgEkAAEBKgABATAAAQE2AAEBPAAAAUIAAgFIAAEBTgABAVQAAQFaAAEBYAABAWYAAQFsAAEBcgABAXgAAQApBEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAf/+BEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAABZoAAQAABEgAAf/+BEgAAQAABEgAAQAABEgAAQAAAAAAAQAABZoAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAsACYAAwA8AAwAAQAIAA4AFAABAtUAAAABArwESAABBCUESAABAAEBrQACAAIBkwGpAAAD0gPgABcAJgABAJoAAQCgAAEApgABAKwAAQCyAAEAuAABAL4AAQDEAAEAygABANAAAQDWAAEA3AABAOIAAQDoAAEA7gACAPQAAAD6AAABAAAAAQYAAAEMAAABEgAAARgAAAEeAAIBJAABASoAAQEwAAEBNgABATwAAAFCAAIBSAABAU4AAQFUAAEBWgABAWAAAQFmAAEBbAABAXIAAQF4AAEAKQRIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAH//gRIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAAWaAAEAAARIAAH//gRIAAEAAARIAAEAAARIAAEAAAAAAAEAAAWaAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAE/rj7eAAM/vgAMAp4Ptg+8D8IPyA/OD9QP2g/gD+YP7A/yD/gP/hAEEAoQEBAWEBwQIhAoEC4QNBA6EEAQRhBMEFIQWBBeEGQQahBwEHYQfBCCEIgQjhCUEJoQoBCmEKwQshC4EL4QxBDKENAQ1hDcEOIQ6BDuEPQQ+hEAEQYRDBESERgRHhEkESoRMBE2ETwRQhFIEU4RVBFaEWARZhFsEXIReBF+EYQRihGQEZYRnBGiEagRrhG0EboRwBHGEcwR0hHYEd4R5BHqEfAR9hH8EgISCBIOEhQSGhIgEiYSLBIyEjgSPhJEEkoSUBJWElwSYhJoEm4SdBJ6EoAShhKMEpISmBKeEqQSqhKwErYSvBLCEsgSzhLUEtoS4BLmEuwS8hL4Ev4TBBMKExATFhMcEyITKBMuEzQTOhNAE0YTTBNSE1gTXhNkE2oTcBN2E3wTghOIE44TlBOaE6ATphOsE7ITuBO+E8QTyhPQE9YT3BPiE+gT7hP0E/oUABQGFAwUEhQYFB4UJBQqFDAUNhQ8FEIUSBROFFQUWhRgFGYUbBRyFHgUfhSEFIoUkBSWFJwUohSoFK4UtBS6FMAUxhTMFNIU2BTeFOQU6hTwFPYU/BUCFQgVDhUUFRoVIBUmFSwVMhU4FT4VRBVKFVAVVhVcFWIVaBVuFXQVehWAFYYVjBWSFZgVnhWkFaoVsBW2FbwVwhXIFc4V1BXaFeAV5hXsFfIV+BX+FgQWChYQFhYWHBYiFigWLhY0FjoWQBZGFkwWUhZYFl4WZBZqFnAWdhZ8FoIWiBaOFpQWmhagFqYWrBayFrgWvhbEFsoW0BbWFtwW4hboFu4W9Bb6FwAXBhcMFxIXGBceFyQXKhcwFzYXPBdCF0gXThdUF1oXYBdmF2wXchd4F34XhBeKF5AXlhecF6IXqBeuF7QXuhfAF8YXzBfSF9gX3hfkF+oX8Bf2F/wYAhgIGA4YFBgaGCAYJhgsGDIYOBg+GEQYShhQGFYYXBhiGGgYbhh0GHoYgBiGGIwYkhiYGJ4YpBiqGLAYthi8GMIYyBjOGNQY2hjgGOYY7BjyGPgY/hkEGQoZEBkWGRwZIhkoGS4ZNBk6GUAZRhlMGVIZWBleGWQZahlwGXYZfBmCGYgZjhmUGZoZoBmmGawZshm4Gb4ZxBnKGdAZ1hncGeIZ6BnuGfQZ+hoAGgYaDBoSGhgaHhokGioaMBo2GjwaQhpIGk4aVBpaGmAaZhpsGnIaeBp+GoQaihqQGpYanBqiGqgarhq0GroawBrGGswa0hrYGt4a5BrqGvAa9hr8GwIbCBsOGxQbGhsgGyYbLBsyGzgbPhtEG0obUBtWG1wbYhtoG24bdBt6G4AbhhuMG5IbmBueG6QbqhuwG7YbvBvCG8gbzhvUG9ob4BvmG+wb8hv4G/4cBBwKHBAcFhwcHCIcKBwuHDQcOhxAHEYcTBxSHFgcXhxkHGoccBx2HHwcghyIHI4clByaHKAcphysHLIcuBy+HMQcyhzQHNYc3BziHOgc7hz0HPodAB0GHQwdEh0YHR4dJB0qHTAdNh08HUIdSB1OHVQdWh1gHWYdbB1yHXgdfh2EHYodkB2WHZwdoh2oHa4dtB26HcAdxh3MHdId2B3eHeQd6h3wHfYd/B4CHggeDh4UHhoeIB4mHiweMh44Hj4eRB5KHlAeVh5cHmIeaB5uHnQeeh6AHoYejB6SHpgenh6kHqoesB62Hrwewh7IHs4e1B7aHuAe5h7sHvIe+B7+HwQfCh8QHxYfHB8iHygfLh80HzofQB9GH0wfUh9YH14fZB9qH3Afdh98H4IfiB+OH5Qfmh+gH6YfrB+yH7gfvh/EH8of0B/WH9wf4h/oH+4f9B/6IAAgBiAMIBIgGCAeICQgKiAwIDYgPCBCIEggTiBUIFogYCBmIGwgciB4IH4ghCCKIJAgliCcIKIgqCCuILQguiDAIMYgzCDSINgg3iDkIOog8CD2IPwhAiEIIQ4hFCEaISAhJiEsITIhOCE+IUQhSiFQIVYhXCFiIWghbiF0IXohgCGGIYwhkiGYIZ4hpCGqIbAhtiG8IcIhyCHOIdQh2iHgIeYh7CHyIfgh/iIEIgoiECIWIhwiIiIoIi4iNCI6IkAiRiJMIlIiWCJeImQiaiJwInYifCKCIogijiKUIpoioCKmIqwisiK4Ir4ixCLKItAi1iLcIuIi6CLuIvQi+iMAIwYjDCMSIxgjHiMkIyojMCM2IzwjQiNII04jVCNaI2AjZiNsI3IjeCN+I4QjiiOQI5YjnCOiI6gjriO0I7ojwCPGI8wj0iPYI94j5CPqI/Aj9iP8JAIkCCQOJBQkGiQgJCYkLCQyJDgkPiREJEokUCRWJFwkYiRoJG4kdCR6JIAkhiSMJJIkmCSeJKQkqiSwJLYkvCTCJMgkziTUJNok4CTmJOwk8iT4JP4lBCUKJRAlFiUcJSIlKCUuJTQlOiVAJUYlTCVSJVglXiVkJWolcCV2JXwlgiWIJY4llCWaJaAlpiWsJbIluCW+JcQlyiXQJdYl3CXiJegl7iX0JfomACYGJgwmEiYYJh4mJCYqJjAmNiY8JkImSCZOJlQmWiZgJmYmbCZyJngmfiaEJoomkCaWJpwmoiaoJq4mtCa6JsAmxibMJtIm2CbeJuQm6ibwJvYm/CcCJwgnDicUJxonICcmJywnMic4Jz4nRCdKJ1AnVidcJ2InaCduJ3QneieAJ4YnjCeSJ5gnniekJ6onsCe2J7wnwifIJ84n1CfaJ+An5ifsJ/In+Cf+KAQoCigQKBYoHCgiKCgoLig0KDooQChGKEwoUihYKF4oZChqKHAodih8KIIoiCiOKJQomiigKKYorCiyKLgovijEKMoo0CjWKNwo4ijoKO4o9Cj6KQApBikMKRIpGCkeKSQpKikwKTYpPClCKUgpTilUKVopYClmKWwpcil4KX4phCmKKZAplimcKaIpqCmuKbQpuinAKcYpzCnSKdgp3inkKeop8Cn2KfwqAioIKg4qFCoaKiAqJiosKjIqOCo+KkQqSipQKlYqXCpiKmgqbip0KnoqgCqGKowqkiqYKp4qpCqqKrAqtiq8KsIqyCrOKtQq2irgKuYq7CryKvgq/isEKworECsWKxwrIisoKy4rNCs6K0ArRitMK1IrWCteK2QraitwK3YrfCuCK4grjiuUK5oroCumK6wrsiu4K74rxCvKK9Ar1ivcK+Ir6CvuK/Qr+iwALAYsDCwSLBgsHiwkLCosMCw2LDwsQixILE4sVCxaLGAsZixsLHIseCx+LIQsiiyQLJYsnCyiLKgsriy0LLoswCzGLMws0izYLN4s5CzqLPAs9iz8LQItCC0OLRQtGi0gLSYtLC0yLTgtPi1ELUotUC1WLVwtYi1oLW4tdC16LYAthi2MLZItmC2eLaQtqi2wLbYtvC3CLcgtzi3ULdot4C3mLewt8i34Lf4uBC4KLhAuFi4cLiIuKC4uLjQuOi5ALkYuTC5SLlguXi5kLmoucC52Lnwugi6ILo4ulC6aLqAupi6sLrIuuC6+LsQuyi7QLtYu3C7iLugu7i70LvovAC8GLwwvEi8YLx4vJC8qLzAvNi88L0IvSC9OL1QvWi9gL2YvbC9yL3gvfi+EL4ovkC+WL5wvoi+oL64vtC+6L8Avxi/ML9Iv2C/eL+Qv6i/wL/Yv/DACMAgwDjAUMBowIDAmMCwwMjA4MD4wRDBKMFAwVjBcMGIwaDBuMHQwejCAMIYwjDCSMJgwnjCkMKowsDC2MLwwwjDIMM4w1DDaMOAw5jDsMPIw+DD+MQQxCjEQMRYxHDEiMSgxLjE0MToxQDFGMUwxUjFYMV4xZDFqMXAxdjF8MYIxiDGOMZQxmjGgMaYxrDGyMbgxvjHEMcox0DHWMdwx4jHoMe4x9DH6MgAyBjIMMhIyGDIeMiQyKjIwMjYyPDJCMkgyTjJUMloyYDJmMmwycjJ4Mn4yhDKKMpAyljKcMqIyqDKuMrQyujLAMsYyzDLSMtgy3jLkMuoy8DL2MvwzAjMIMw4zFDMaMyAzJjMsMzIzODM+M0QzSjNQM1YzXDNiM2gzbjN0M3ozgDOGM4wzkjOYM54zpDOqM7AztjO8M8IzyDPOM9Qz2jPgM+Yz7DPyM/gz/jQENAo0EDQWNBw0IjQoNC40NDQ6NEA0RjRMNFI0WDReNGQ0ajRwNHY0fDSCNIg0jjSUNJo0oDSmNKw0sjS4NL40xDTKNNA01jTcNOI06DTuNPQ0+jUANQY1DDUSNRg1HjUkNSo1MDU2NTw1QjVINU41VDVaNWA1ZjVsNXI1eDV+NYQ1ijWQNZY1nDWiNag1rjW0Nbo1wDXGNcw10jXYNd415DXqNfA19jX8NgI2CDYONhQ2GjYgNiY2LDYyNjg2PjZENko2UDZWNlw2YjZoNm42dDZ6NoA2hjaMNpI2mDaeNqQ2qjawNrY2vDbCNsg2zjbUNto24DbmNuw28jb4Nv43BDcKNxA3FjccNyI3KDcuNzQ3OjdAN0Y3TDdSN1g3XjdkN2o3cDd2N3w3gjeI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BZoAAQSgBbgAAQMQAAAAAQMOBZoAAQSgBbgAAQMQAAAAAQMOBZoAAQSgBbgAAQKeAAAAAQKYBZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQAAAAAAAQPlBEgAAQAAAAAAAQJSAAAAAQJtBEgAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQK0AAAAAQLJBEgAAQAAAAAAAQKFAAAAAQKDBEYAAQMbBEgAAQKFAAAAAQKDBEYAAQMbBEgAAQKFAAAAAQKDBEYAAQMbBEgAAQKFAAAAAQKDBEYAAQMbBEgAAQKFAAAAAQKDBEYAAQMbBEgAAQAAAAAAAQKDBEYAAQAAAAAAAQKoAAAAAQKPBEgAAQP4BEgAAQKoAAAAAQKPBEgAAQP4BEgAAQKoAAAAAQKPBEgAAQP4BEgAAQKoAAAAAQKPBEgAAQP4BEgAAQN/AAAAAQIxBEgAAQAAAAAAAQE3AAAAAQE3BfAAAQIvBEgAAQN/AAAAAQIxBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQMMAAAAAQMABZoAAQAAAAAAAQJSAAAAAQJtBEgAAQAAAAAAAQMMAAAAAQMABZoAAQAAAAAAAQJSAAAAAQJtBEgAAQAAAAAAAQMMAAAAAQMABZoAAQAAAAAAAQJSAAAAAQJtBEgAAQAAAAAAAQMMAAAAAQMABZoAAQAAAAAAAQJSAAAAAQJtBEgAAQAAAAAAAQMZAAAAAQLnBZoAAQAAAAAAAQLbAAAAAQAAAAAAAQVcBfAAAQNIAAAAAQMXBZoAAQAAAAAAAQLbAAAAAQAAAAAAAQVcBfAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQMbAAAAAQMfBZoAAQAAAAAAAQAAAAAAAQKRBEgAAQAAAAAAAQMbAAAAAQMfBZoAAQAAAAAAAQAAAAAAAQKRBEgAAQAAAAAAAQMbAAAAAQMfBZoAAQAAAAAAAQAAAAAAAQKRBEgAAQAAAAAAAQMbAAAAAQMfBZoAAQAAAAAAAQAAAAAAAQKRBEgAAQAAAAAAAQMnAAAAAQM1BZoAAQAAAAAAAQLFAAAAAQExBfAAAQInBEwAAQNqAAAAAQN5BZoAAQAAAAAAAQLFAAAAAQExBfAAAQInBEwAAQE5AAAAAQE5BZoAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQE5AAAAAQE5BwYAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQE5AAAAAQE5BZoAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQE5AAAAAQE5BZoAAQAAAAAAAQAAAAAAAQErBEgAAQAAAAAAAQE5AAAAAQRqBZoAAQAAAAAAAQErAAAAAQErBEgAAQAAAAAAAQAAAAAAAQH4BZoAAQAAAAAAAQAAAAAAAQEhBEgAAQAAAAAAAQLXAAAAAQLXBZoAAQAAAAAAAQKWAAAAAQE3BfAAAQIvBEgAAQJgAAAAAQErBEgAAQAAAAAAAQJvAAAAAQE7BZoAAQNCBZoAAQE3AAAAAQE3BfAAAQJQBfAAAQJvAAAAAQE7BZoAAQNCBZoAAQE3AAAAAQE3BfAAAQJQBfAAAQJvAAAAAQE7BZoAAQNCBZoAAQE3AAAAAQE3BfAAAQJQBfAAAQJvAAAAAQE7BZoAAQNCBZoAAQE3AAAAAQE3BfAAAQJQBfAAAQJ1AAAAAQFCBZoAAQNIBZoAAQFeAAAAAQFeBfAAAQJ3BfAAAQMrAAAAAQM7BZoAAQAAAAAAAQK0AAAAAQLJBEgAAQAAAAAAAQMrAAAAAQM7BZoAAQAAAAAAAQK0AAAAAQLJBEgAAQAAAAAAAQMrAAAAAQM7BZoAAQAAAAAAAQK0AAAAAQLJ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BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQL0AAAAAQL+BZoAAQAAAAAAAQJIAAAAAQJYBEgAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLLB1oAAQAAAAAAAQJoAAAAAQJgBgYAAQAAAAAAAQLJAAAAAQLPBzUAAQAAAAAAAQJoAAAAAQJkBeEAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQLJAAAAAQLPBZoAAQAAAAAAAQJoAAAAAQJkBEYAAQAAAAAAAQE5AAAAAQE1B1oAAQAAAAAAAQAAAAAAAQEnBggAAQAAAAAAAQE5AAAAAQE5BZoAAQAAAAAAAQErAAAAAQErBEgAAQAAAAAAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMtB1oAAQPFBbgAAQKFAAAAAQJ/BgYAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQM/AAAAAQMxByEAAQPFBbgAAQKFAAAAAQKDBc0AAQMbBEgAAQM/AAAAAQMxByEAAQPFBbgAAQKFAAAAAQKDBc0AAQMbBEgAAQM/AAAAAQMtB1oAAQPFBbgAAQKFAAAAAQJ/BgYAAQMbBEgAAQM/AAAAAQMxBzUAAQPFBbgAAQKFAAAAAQKDBeEAAQMbBEgAAQM/AAAAAQMxBZoAAQPFBbgAAQKFAAAAAQKDBEYAAQMbBEgAAQMQAAAAAQMOBZoAAQSgBbgAAQKoAAAAAQKPBEgAAQP4BEgAAQMQAAAAAQMKB1oAAQSgBbgAAQKoAAAAAQKLBggAAQP4BEgAAQMQAAAAAQMOByEAAQSgBbgAAQKoAAAAAQKYBc8AAQP4BEgAAQMQAAAAAQMOByEAAQSgBbgAAQKoAAAAAQKYBc8AAQP4BEgAAQMQAAAAAQMKB1oAAQSgBbgAAQKoAAAAAQKTBggAAQP4BEgAAQMQAAAAAQMOBzUAAQSgBbgAAQKoAAAAAQKYBeMAAQP4BEgAAQMQAAAAAQMOBZoAAQSgBbgAAQKoAAAAAQKYBEgAAQP4BEgAAQKeAAAAAQKYBZoAAQAAAAAAAQN/AAAAAQIxBEgAAQAAAAAAAQKeAAAAAQKYBZoAAQAAAAAAAQN/AAAAAQIxBEgAAQAAAAAAAQKeAAAAAQKTB1oAAQAAAAAAAQN/AAAAAQItBggAAQAAAAAAAQKeAAAAAQKYBzUAAQAAAAAAAQN/AAAAAQIxBeMAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQByEAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMMB1oAAQAAAAAAAQMQAAAAAQMQByEAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQMQAAAAAQMQCQIAAQAAAAAAAQMQAAAAAQMQBZoAAQAAAAAAAQjbAAAAAQjjBZoAAQAAAAAAAQhgAAAAAQhqBEgAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgByEAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgByEAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKcB1oAAQAAAAAAAQKRAAAAAQKgByEAAQAAAAAAAQKRAAAAAQKgBZoAAQAAAAAAAQKRAAAAAQKgCI0AAQAAAAAAAQKRAAAAAQKgCI0AAQAAAAAAAQKRAAAAAQKgBzUAAQAAAAAAAQMKAAAAAQMKBZoAAQAAAAAAAQMKAAAAAQMKBZoAAQAAAAAAAQMKAAAAAQMKBx8AAQAAAAAAAQMKAAAAAQMKBZoAAQAAAAAAAQMKAAAAAQMKBZoAAQAAAAAAAQMKAAAAAQMKBZoAAQAAAAAAAQMKAAAAAQMKBwYAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQX+BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQE5AAAAAQCFBwoAAQAAAAAAAQH2AAAAAQX+ByEAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2ByEAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2CLwAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQHyB1oAAQAAAAAAAQH2AAAAAQH2ByEAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQH2AAAAAQH2BZoAAQAAAAAAAQAAAAAAAQISBZoAAQAAAAAAAQAAAAAAAQISByEAAQAAAAAAAQJvAAAAAQZmBZoAAQNCBZoAAQTPAAAAAQE5BZoAAQAAAAAAAQTPAAAAAQE5BZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQg3BZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQNtBx0AAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMSAAAAAQMZBZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQMfAAAAAQNtBZoAAQAAAAAAAQM/AAAAAQMxBZoAAQPFBbgAAQKgAAAAAQKmBZoAAQAAAAAAAQKgAAAAAQKmBZoAAQAAAAAAAQKgAAAAAQKmBZoAAQAAAAAAAQKgAAAAAQKmBZoAAQAAAAAAAQKgAAAAAQKmBZoAAQAAAAAAAQKgAAAAAQKmBZoAAQAAAAAAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTByEAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLPB1oAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTByEAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTByEAAQRvBbgAAQLsAAAAAQLPB1oAAQRvBbgAAQLsAAAAAQLTBzUAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTByEAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTCKIAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTBZoAAQRvBbgAAQLsAAAAAQLTCLwAAQRvBbgAAQAAAAAAAQS0BZoAAQAAAAAAAQAAAAAAAQS0BZoAAQAAAAAAAQAAAAAAAQS0BZoAAQAAAAAAAQAAAAAAAQS0BZoAAQAAAAAAAQAAAAAAAQS0BZoAAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQL2Bx0AAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQL2BZoAAQAAAAAAAQMG/z0AAQLyB1oAAQAAAAAAAQMG/z0AAQL2BwYAAQAAAAAAAQMG/z0AAQL2BzUAAQAAAAAAAQKsAAAAAQK0BZoAAQAAAAAAAQKsAAAAAQK0BZoAAQAAAAAAAQKsAAAAAQK0BZoAAQAAAAAAAQKsAAAAAQK0BZoAAQAAAAAAAQKsAAAAAQK0BZoAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBc8AAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKsBggAAQAAAAAAAQKqAAAAAQKwBc8AAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQKqAAAAAQKwB7AAAQAAAAAAAQKqAAAAAQKwBEgAAQAAAAAAAQAAAAAAAQPRBEgAAQAAAAAAAQAAAAAAAQPRBc8AAQAAAAAAAQeoAAAAAQeyBEgAAQVcBfAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBc8AAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBc8AAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJoBggAAQAAAAAAAQJvAAAAAQJtBc8AAQAAAAAAAQJvAAAAAQJtBEgAAQAAAAAAAQJvAAAAAQJtBzsAAQAAAAAAAQJvAAAAAQJtBzsAAQAAAAAAAQJvAAAAAQJtBeMAAQAAAAAAAQI/AAAAAQI9BEgAAQAAAAAAAQAAAAAAAQNtBc8AAQAAAAAAAQAAAAAAAQErBcsAAQAAAAAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQFKAAAAAQEZBfAAAQIxBfAAAQGFAAAAAQFUBfAAAQJtBfAAAQdzAAAAAQdzBEgAAQAAAAAAAQHLAAAAAQEQBUgAAQIQBfAAAQGeAAAAAQAAAAAAAQAAAAAAAQHLAAAAAQEQBUgAAQIQBfAAAQHLAAAAAQEQBUgAAQIQBfAAAQHLAAAAAQEQBUgAAQIQBfAAAQHLAAAAAQEQBuMAAQIQBfAAAQHLAAAAAQEQBUgAAQIQBfAAAQHLAAAAAQEQBUgAAQIQBfAAAQAAAAAAAQPlBEgAAQAAAAAAAQAAAAAAAQPlBEgAAQAAAAAAAQAAAAAAAQPlBEgAAQAAAAAAAQAAAAAAAQPlBEgAAQAAAAAAAQAAAAAAAQPlBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKYBEgAAQAAAAAAAQVMAAAAAQKTBggAAQAAAAAAAQVMAAAAAQKYBbQAAQAAAAAAAQVMAAAAAQKYBeMAAQAAAAAAAQIxAAAAAQI7BEgAAQAAAAAAAQIxAAAAAQI7BEgAAQAAAAAAAQIxAAAAAQI7BEgAAQAAAAAAAQIxAAAAAQI7BEgAAQAAAAAAAQIxAAAAAQI7BEgAAQAAAAAAAgAiACYAJgAAACgAKgABACwANAAEADYAOgANADwAPAASAD4APwATAEYARgAVAEgASgAWAEwATgAZAFAAVAAcAFcAWgAhAFwAXAAlAF4AXwAmAIQAmgAoAJwAoQA/AKQAswBFALUAugBVALwAxwBbAMoA2wBnAN4A8QB5APQBKQCNASsBNQDDATgBQgDOAUUBgQDZAa8B9wEWAfkCUgFfAqkCvQG5Ar8C2AHOAtoC2gHoAtwDBQHpAwcDBwITAwkDaQIUA2sDbAJ1A24DlAJ3AAIAAgGTAakAAAPSA+AAFwAmAAEAmgABAKAAAQCmAAEArAABALIAAQC4AAEAvgABAMQAAQDKAAEA0AABANYAAQDcAAEA4gABAOgAAQDuAAIA9AAAAPoAAAEAAAABBgAAAQwAAAESAAABGAAAAR4AAgEkAAEBKgABATAAAQE2AAEBPAAAAUIAAgFIAAEBTgABAVQAAQFaAAEBYAABAWYAAQFsAAEBcgABAXgAAQApBEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAf/+BEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAABZoAAQAABEgAAf/+BEgAAQAABEgAAQAABEgAAQAAAAAAAQAABZoAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQAABEgAAQCIAH4AAQCeAAwADgAeACQAKgAwADYAPABCAEgATgBUAFoAYABmAGwAAQApBc8AAQAABc8AAQAABc8AAQAABeMAAQAABbQAAQAABc8AAQAABcsAAQAABeMAAf/6BggAAQAABikAAQAABc8AAQAABc0AAQAABc8AAQAABc8AAgABAZMBoAAAAAIAAwGTAaEAAAPTA9YADwPZA+AAEwAbAAAAbgAAAHQAAAB6AAAAgAAAAIYAAACMAAAAkgAAAJgAAACeAAAApAAAAKoAAACwAAAAtgAAALwAAADCAAAAyAAAAM4AAADUAAAA2gAAAOAAAADmAAAA7AAAAPIAAAD4AAAA/gAAAQQAAAEKAAEAKQRIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAH//gRIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAH//gRIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAEAAARIAAAAAQAAAADVpCcIAAAAANRTKbUAAAAA3hPgAw==') format('truetype'); + font-weight: 500; + font-style: normal; + font-display: swap; +} + diff --git a/miniprogram/cmpts/public/calendar/calendar_lib.js b/miniprogram/cmpts/public/calendar/calendar_lib.js new file mode 100644 index 0000000..879b8ff --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_lib.js @@ -0,0 +1,471 @@ +/** + * Notes: 日历组件通用方法 + * Ver : CCMiniCloud Framework 2.0.1 ALL RIGHTS RESERVED BY cclinux@qq.com + * Date: 2021-01-01 07:48:00 + */ +const lunarLib = require('../../../lib/tools/lunar_lib.js'); +const timeHelper = require('../../../helper/time_helper.js'); +const dataHelper = require('../../../helper/data_helper.js'); +const pageHelper = require('../../../helper/page_helper.js'); + +// 是否节日 +function isHoliday(day) { + if (!day) return false; + + let arr = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '初', '廿']; + for (let k in arr) { + if (day.includes(arr[k])) + return false; + } + return true; +} + +// 某天是某月的第几周 +function weekIndexInMonth(year = null, month = null, today = null) { + let time = new Date(); + + if (year == null) { // 没有设定,则取当前 + year = time.getFullYear(); + month = time.getMonth(); + today = time.getDate(); + } else { + year = Number(year); + month = Number(month) - 1; + today = Number(today); + } + + time = new Date(year, month, 1); //取第一天 + + let space = time.getDay() - 1; //获取当前星期X(0-6,0代表星期天) + if (space == -1) space = 6; //调整为周1-周7格式 + + return Math.ceil((today + space) / 7); // 本月第几周 + +} + +// 日期格式化,一位补2位 +function fmtDate(str) { + str = str + ''; + if (str.length == 1) + return '0' + str; + else + return str; +} + +// 获取当前时间,若定义了要操作的天, 则取得年份和月份,用以构造日历 +function getNowTime(that) { + const time = new Date(); + let year = time.getFullYear(); + let month = time.getMonth() + 1; + let week = time.getDay(); + + let today = time.getDate(); // 今天 + let fullToday = year + '-' + fmtDate(month) + '-' + fmtDate(today); // 今天完整格式 + + // 若定义了要操作的天, 则取得年份和月份,用以构造日历 + if (that.data.mode == 'one' && that.data.oneDoDay) { + year = Number(timeHelper.timestamp2Time(timeHelper.time2Timestamp(that.data.oneDoDay), 'Y')); + month = Number(timeHelper.timestamp2Time(timeHelper.time2Timestamp(that.data.oneDoDay), 'M')); + } else if (that.data.mode == 'multi' && that.data.multiDoDay && that.data.multiDoDay.length > 0 && that.data.multiDoDay[0]) { + year = Number(timeHelper.timestamp2Time(timeHelper.time2Timestamp(that.data.multiDoDay[0]), 'Y')); + month = Number(timeHelper.timestamp2Time(timeHelper.time2Timestamp(that.data.multiDoDay[0]), 'M')); + } + + let oneDoDay = that.data.oneDoDay || fullToday; // 正在操作的天完整格式 + // let multiDoDay = that.data.multiDoDay || [oneDoDay]; // 多选默认选中一天 + let multiDoDay = that.data.multiDoDay; + + that.setData({ + year, + month, + + fullToday, + + oneDoDay, + multiDoDay, + week + }); +} +//获得某月天数 +function getMonthCnt(year, month) { + let baseMonthsDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //各月天数 + if (month == 2 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) + return 29; + else + return baseMonthsDay[month - 1]; +} + +//获得上月天数 +function getLastMonthCnt(year, month) { + if (month == 1) { + month = 12; + --year; + } else + --month; + return getMonthCnt(year, month); +} + +//从上月补几天 +function getLastMonthArr(that, year, month) { + + let time = new Date(year, month - 1, 1); + let space = time.getDay() - 1; //获取当前星期X(0-6,0代表星期天) + if (space == -1) space = 6; //调整为周1-周7格式 + + // 获取上个月天数 + let lastMonthCnt = getLastMonthCnt(year, month); + if (month == 1) { + month = 12; + --year; + } else + --month; + + let dayArr = []; + for (let i = space; i >= 1; i--) { + let lunar = that.data.isLunar ? lunarLib.sloarToLunar(year, month, lastMonthCnt - i + 1) : ''; + let holiday = isHoliday(lunar); + let full = year + '-' + fmtDate(month) + '-' + fmtDate(lastMonthCnt - i + 1); + dayArr.push({ + lunar, + holiday, + show: lastMonthCnt - i + 1, + curMonth: false, + weekNo: 1, //必然第一周 + val: year + '-' + month + '-' + (lastMonthCnt - i + 1), + full + }); + } + return dayArr; + +} + +/** + * //从下月补几天 + * @param {*} year + * @param {*} month + * @param {*} hasDayLen 已有多少天 + */ +function getNextMonthArr(that, year, month, hasDayLen) { + + if (that.mode == 'multi') { + if (month == 12) { + month = 1; + ++year; + } else + month++; + + // 多选统一补成6行 + let dayArr = []; + for (let i = 1; i <= (6 * 7 - hasDayLen); i++) { + let weekNo = Math.ceil((hasDayLen + i) / 7); // 计算当前是第几周 + + let lunar = that.data.isLunar ? lunarLib.sloarToLunar(year, month, i) : ''; + let holiday = isHoliday(lunar); + let full = year + '-' + fmtDate(month) + '-' + fmtDate(i); + dayArr.push({ + lunar, + holiday, + has: false, //是否有数据 + show: i, + curMonth: false, + weekNo, + val: year + '-' + month + '-' + i, + full + }); + } + } else { + // 单选只把最后一行补齐 + let endDay = getMonthCnt(year, month); //最后一天 + + let time = new Date(year, month - 1, endDay); + let space = time.getDay(); //获取当前星期X(0-6,0代表星期天) + space = 7 - space; + if (space == 7) space = 0; + + if (space <= 0) return []; + + if (month == 12) { + month = 1; + ++year; + } else + month++; + + let dayArr = []; + for (let i = 1; i <= space; i++) { + let lunar = that.data.isLunar ? lunarLib.sloarToLunar(year, month, i) : ''; + let holiday = isHoliday(lunar); + let full = year + '-' + fmtDate(month) + '-' + fmtDate(i); + dayArr.push({ + lunar, + holiday, + show: i, + curMonth: false, + weekNo: that.data.weekNo, + val: year + '-' + month + '-' + i, + full + }); + } + return dayArr; + } + + + return dayArr; + +} + + +function createDay(that) { + // 创建日历 + let month = that.data.month; + let year = that.data.year; + + let dayArr = []; + let len = getMonthCnt(year, month); + for (let i = 1; i <= len; i++) { + let lunar = that.data.isLunar ? lunarLib.sloarToLunar(year, month, i) : ''; + let holiday = isHoliday(lunar); + let full = year + '-' + fmtDate(month) + '-' + fmtDate(i) //实际日期(补位); + dayArr.push({ + lunar, + holiday, + has: false, //是否有数据 + show: i, // 显示 + curMonth: true, //是否当前月 + weekNo: weekIndexInMonth(year, month, i), //第几周 + val: year + '-' + month + '-' + i, //实际日期(简化) + full + }); + } + + + // 前后补空 + let lastArr = getLastMonthArr(that, year, month); + let nextArr = getNextMonthArr(that, year, month, dayArr.length + lastArr.length); + + let data = lastArr.concat(dayArr).concat(nextArr); + + /* + // 数据循环处理 + let hasDays = that.data.hasDays; + if (hasDays.length > 0) { + for (let j in hasDays) { + for (let k in data) { + if (data[k].full == hasDays[j]) { + data[k].has = true; //当日有数据 + } + } + } + }*/ + + // 当前操作日为周几? 仅针对单选模式 + let weekNo = 0; + if (that.data.mode == 'one') { + if (!that.data.oneDoDay) { + weekNo = weekIndexInMonth(); + } else { + let arr = that.data.oneDoDay.split('-'); + weekNo = weekIndexInMonth(arr[0], arr[1], arr[2]); + } + } + + that.setData({ + weekNo, + dayArr: data + }); +} + +/** ListTouch计算滚动 */ +function listTouchEnd(that) { + if (that.data.touchDirection == 'left') { + that.setData({ + animation: 'slide-left' + }); + + setTimeout(function () { + that.setData({ + animation: '' + }) + }, 200); + that.bindNextTap(); + } else if (that.data.touchDirection == 'right') { + that.setData({ + animation: 'slide-right' + }); + + setTimeout(function () { + that.setData({ + animation: '' + }) + }, 200); + that.bindLastTap(); + } + + that.setData({ + touchDirection: null + }); +} + +// 回本月 +function bindToNowTap(that) { + const time = new Date(); + let year = time.getFullYear(); + let month = time.getMonth() + 1; + + that.setData({ + month, + year, + fold: false + }); + + that.setData({ + animation: 'fade' + }); + + setTimeout(function () { + that.setData({ + animation: '' + }) + }, 300); + createDay(that); + + if (that.data.mode == 'one') { + //月份切换引起父组件变动 + that.triggerEvent('monthChange', { + yearMonth: that.data.year + '-' + dataHelper.padLeft(that.data.month, 2, '0') + }); + } +} + +//多选天点击 +function bindDayMultiTap(e, that) { + + // 显示 + let oneDoDay = e.currentTarget.dataset.fullday; + let multiDoDay = dataHelper.deepClone(that.data.multiDoDay); + + if (that.data.multiOnlyOne) { + // 只能选一个 + multiDoDay = [oneDoDay]; + } else { + multiDoDay = dataHelper.arrAddDel(multiDoDay, oneDoDay); + } + if (multiDoDay.length < that.data.multiDoDay.length) { + // 有取消 + that.triggerEvent('cancel', { + day: oneDoDay + }); + } + + that.setData({ + multiDoDay + }); + + // 传递给父组件 + that.triggerEvent('click', { + days: multiDoDay + }); +} + +//单个天点击 +function bindDayOneTap(e, that) { + // 显示 + let oneDoDay = e.currentTarget.dataset.fullday; + + // 当前周 + let weekNo = 0; + let arr = oneDoDay.split('-'); + weekNo = weekIndexInMonth(arr[0], arr[1], arr[2]); + + that.setData({ + oneDoDay, + weekNo + }); + + // 传递给父组件 + that.triggerEvent('click', { + day: oneDoDay + }); +} + +// 下月 +function bindNextTap(that) { + let month = that.data.month; + if (month == 12) { + that.setData({ + year: that.data.year + 1, + month: 1, + fold: false //翻页不折叠 + }) + } else { + that.setData({ + month: month + 1, + fold: false + }) + } + createDay(that); + + if (that.data.mode == 'one') { + //月份切换引起父组件变动 + that.triggerEvent('monthChange', { + yearMonth: that.data.year + '-' + dataHelper.padLeft(that.data.month, 2, '0') + }); + } +} + +// 上个月 +function bindLastTap(that) { + let month = that.data.month; + if (month == 1) { + that.setData({ + year: that.data.year - 1, + month: 12, + fold: false + }) + } else { + that.setData({ + month: month - 1, + fold: false + }) + } + createDay(that); + + if (that.data.mode == 'one') { + //月份切换引起父组件变动 + that.triggerEvent('monthChange', { + yearMonth: that.data.year + '-' + dataHelper.padLeft(that.data.month, 2, '0') + }); + } +} + +// 日历折叠 +function bindFoldTap(that) { + if (that.data.fold) + that.setData({ + fold: false + }); + else { + //that._init(); //折叠回本月 + that.setData({ + fold: true + }); + } +} + +module.exports = { + isHoliday, + weekIndexInMonth, + fmtDate, + getNowTime, + getMonthCnt, + getLastMonthCnt, + getLastMonthArr, + getNextMonthArr, + createDay, + listTouchEnd, + bindToNowTap, + bindDayMultiTap, + bindDayOneTap, + bindNextTap, + bindLastTap, + bindFoldTap +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.js b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.js new file mode 100644 index 0000000..bfd9455 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.js @@ -0,0 +1,168 @@ +const timeHelper = require('../../../../helper/time_helper.js'); +const pageHelper = require('../../../../helper/page_helper.js'); +const calendarLib = require('../calendar_lib.js'); + +/*#### 父组件日历颜色定义*/ +/* 整体颜色 */ +//--calendarPageColor: #F0F4FF; +/* 加重颜色*/ +//--calendarMainColor: #388AFF; +/* 加重的亮颜色 用于选中日期的数据小圆点 */ +//--calendarLightColor: #A2C7FF; + + +Component({ + options: { + addGlobalClass: true + }, + properties: { + isLunar: { //是否开启农历 + type: Boolean, + value: false + }, + mode: { // 模式 one/multi + type: String, + value: 'one' + }, + + year: { // 正在操作的年 + type: Number, + value: 0 + }, + + month: { // 正在操作的月 + type: Number, + value: 0 + }, + fold: { //日历折叠 + type: Boolean, + value: false + }, + selectTimeout: { //过期时间选择(mode=multi) + type: Boolean, + value: true + }, + hasDays: { // 过期有数据的日期 + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (newVal.length != oldVal.length) { + // TODO 引起加载的时候二次调用 + //this._init(); + } + } + }, + hasJoinDays: { // 未超期有预约的日期 + type: Array, + value: [], + }, + oneDoDay: { // 正在操作的天 string + type: String, + value: null + }, + multiDoDay: { // 多选模式>正在操作的天 arrary[] + type: Array, + value: null, + }, + multiOnlyOne: { //多选模式>只能选一个 + type: Boolean, + value: false + } + }, + + data: { + weekNo: 0, // 正在操作的那天位于第几周 + fullToday: 0, //今天 + glow: '', //闪烁效果 + }, + + lifetimes: { + attached() { + this._init(); + } + }, + + methods: { + _init: function () { + calendarLib.getNowTime(this); + calendarLib.createDay(this); + }, + + + bindFoldTap: function (e) { // 日历折叠 + calendarLib.bindFoldTap(this); + }, + + + bindNextTap(e) { // 下月 + calendarLib.bindNextTap(this); + + + this.setData({ + glow: 'glow' + }); + setTimeout(() => { + this.setData({ + glow: '' + }); + }, 800); + + }, + + bindLastTap(e) { // 上月 + calendarLib.bindLastTap(this); + + this.setData({ + glow: 'glow' + }); + setTimeout(() => { + this.setData({ + glow: '' + }); + }, 300); + + }, + + bindDayOneTap(e) { // 单个天点击 + calendarLib.bindDayOneTap(e, this); + }, + + bindDayMultiTap(e) { // 多选天点击 + let day = e.currentTarget.dataset.fullday; + + // 过期时间判断 + if (!this.data.selectTimeout) { + let now = timeHelper.time('Y-M-D'); + if (day < now) + return pageHelper.showNoneToast('不能编辑过往的日期'); + } + + // 是否有预约判断 + if (this.data.hasJoinDays.includes(day)) { + return pageHelper.showModal('该日期已有用户预约/预约待审核,不可直接取消;如果确要取消,请先删除有预约的时段'); + } + + + calendarLib.bindDayMultiTap(e, this); + }, + + bindToNowTap: function (e) { // 回本月 + calendarLib.bindToNowTap(this); + }, + + // ListTouch触摸开始 + listTouchStart(e) { + pageHelper.listTouchStart(e, this); + }, + + // ListTouch计算方向 + listTouchMove(e) { + pageHelper.listTouchMove(e, this); + }, + + /** ListTouch计算滚动 */ + listTouchEnd: function (e) { + calendarLib.listTouchEnd(this); + } + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.json b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxml b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxml new file mode 100644 index 0000000..2ab2387 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxml @@ -0,0 +1,61 @@ + + + // 比较操作日期所在月是否当前显示的月 + function compareYearMonth(oneDoDay, year, month) { + var arr = oneDoDay.split('-'); + return arr[0] == year && arr[1] == month; + } + + module.exports = { + compareYearMonth: compareYearMonth, + }; + + + + + + 本月 + + + {{year}}年{{month}}月 + + + + + + + + + + + + + + + + + + + + + + + + + + {{item.show}} + {{item.lunar}} + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxss b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxss new file mode 100644 index 0000000..5fe9477 --- /dev/null +++ b/miniprogram/cmpts/public/calendar/calendar_meet/calendar_meet_cmpt.wxss @@ -0,0 +1,258 @@ +page { + + /*#### 父组件日历颜色定义*/ + /* 整体颜色 */ + --calendarPageColor: #F0F4FF; + /* 加重颜色*/ + --calendarMainColor: #1F6ED4; + /* 加重的亮颜色 用于选中日期的数据小圆点 */ + --calendarLightColor: #A2C7FF; +} + +.calendar-text { + color: var(--calendarMainColor) !important +} + +.calendar-bg { + background-color: var(--calendarMainColor) !important +} + +.cal-container { + width: 100%; + padding-top: 10rpx; + padding-bottom: 20rpx; + background-color: #fff; + display: flex; + align-items: center; +} + +.cal-container .left, +.cal-container .right { + width: 70rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 80rpx; + height: 400rpx; + color: #888; +} + +.cal-container .cal-nav { + position: relative; + width: 100%; + min-height: 60rpx; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + color: #000; + border-bottom-left-radius: 15rpx; + border-bottom-right-radius: 15rpx; + font-size: 32rpx; + font-weight: bold; +} + +.cal-container .cal-nav .select-item { + width: 500rpx; + display: flex; + flex-direction: row; + justify-content: space-around; + align-items: center; +} + +.cal-container .cal-nav .arrow { + width: 150rpx; + font-size: 40rpx; +} + +.cal-container .cal-nav .fold { + position: absolute; + right: 0rpx; + width: 100rpx; + font-size: 40rpx; + font-weight: bold; +} + +.cal-container .cal-nav .to-now { + position: absolute; + left: 5rpx; + width: 100rpx; + font-size: 30rpx; + color: var(--calendarMainColor); + display: flex; + align-items: center; + justify-content: center; +} + +.cal-main { + flex: 1; + padding: 10rpx 0rpx 20rpx; + background-color: #fcfcfc; +} + +.cal-title { + display: flex; + justify-content: center; +} + +.cal-title view { + width: 80rpx; + height: 80rpx; + display: flex; + justify-content: center; + align-items: center; + color: #666; +} + +.cal-center { + display: flex; + flex-direction: row; + flex-wrap: wrap; + overflow: hidden; + justify-content: center; + align-items: center; +} + +.cal-center.cur { + border-bottom-right-radius: 0rpx; + border-bottom-left-radius: 0rpx; +} + +.cal-center .cube { + width: 80rpx; + height: 80rpx; + display: flex; + justify-content: center; + align-items: center; + color: #333; + border: 1rpx solid #ccc; +} + +.cal-center .cube.glow { + animation: glow 300ms linear 1 alternate; +} + +@keyframes glow { + 0% { + background-color: #ececec; + } + + 100% { + background-color: inherit; + } +} + +.cal-center .cube.lunar { + margin-bottom: 8rpx; +} + +.cal-center .num-grid { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +.cal-center .cube.lunar .num-grid { + width: 85rpx; + height: 85rpx; +} + +.cal-center .num-grid.now-day-cur { + background-color: orange; + height: 60rpx; + width: 60rpx; + border-radius: 50%; + color: #fff; +} + +.cal-center .num-grid.now-day-cur .text-no-month { + color: #fff; +} + + +.cal-center .num { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 30rpx; +} + +.cal-center .num .lunar { + font-size: 20rpx; + font-weight: normal; + color: #aaa; +} + +.cal-center .text-no-month { + color: #aaa; +} + +.cal-center .timeout { + background-color: #f2f2f2; +} + +.cal-center .timeout .num-grid { + color: #aaa; +} + +/* 当日有数据 */ +.data-has { + position: relative; + font-family: "icon"; + font-size: inherit; + font-style: normal; +} + +.data-has::before { + position: absolute; + content: '\e699'; + right: 1rpx; + bottom: 0rpx; + color: #999; + font-size: 22rpx; +} + +.cube.data-checked.data-has::before { + color: #fff; +} + +/* 当日有预约 */ +.join-has { + position: relative; + font-family: "icon"; + font-size: inherit; + font-style: normal; +} + +.join-has::before { + position: absolute; + content: '\e6c0'; + right: 1rpx; + bottom: 0rpx; + color: #999; + font-size: 24rpx; +} + +.cube.data-checked.join-has::before { + color: #fff; +} + + + +/* 选中某日 */ +.cube.data-checked { + position: relative; + display: flex; + justify-content: center; + align-items: center; + color: #fff !important; +} + +.cube.data-checked .text-no-month { + color: #fff !important; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/checkbox/checkbox_cmpt.js b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.js new file mode 100644 index 0000000..7bcfb26 --- /dev/null +++ b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.js @@ -0,0 +1,80 @@ + Component({ + externalClasses: ['outside-picker-multi-class'], + + /** + * 组件的属性列表 + */ + properties: { + sourceData: { //源数组 + type: Array, + value: [], + }, + // 默认选中项的值数组 + itemMulti: { + type: Array, + value: [], + observer: function (newVal, oldVal) { + if (JSON.stringify(newVal) != JSON.stringify(oldVal)) { + console.log('checkbox observer'); + this._fixDefaultVal(); + } + } + }, + disabled: { // 是否禁用 + type: Boolean, + value: false, + }, + }, + + /** + * 生命周期方法 + */ + lifetimes: { + attached: function () {}, + + ready: function () { + this._fixDefaultVal(); + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + bindChange: function (e) { + this.triggerEvent('select', e.detail.value); + }, + + _fixDefaultVal() { //传入数据不匹配的时候,修正父页面传入的的数组默认值 + if (!Array.isArray(this.data.itemMulti)) { + this.triggerEvent('select', []); + } + + if (this.data.itemMulti.length == 0) return; + + let ret = []; + let sourceData = this.data.sourceData; + let itemMulti = this.data.itemMulti; + for (let k in sourceData) { + for (let j in itemMulti) { + if (sourceData[k] == itemMulti[j]) + ret.push(itemMulti[j]); + } + } + + this.triggerEvent('select', ret); + } + } + }) \ No newline at end of file diff --git a/miniprogram/cmpts/public/checkbox/checkbox_cmpt.json b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxml b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxml new file mode 100644 index 0000000..b806ab8 --- /dev/null +++ b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxss b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxss new file mode 100644 index 0000000..f32a80a --- /dev/null +++ b/miniprogram/cmpts/public/checkbox/checkbox_cmpt.wxss @@ -0,0 +1,43 @@ +.checkbox-group { + width: 100%; + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + padding: 0rpx 10rpx; +} + +.checkbox-group .item { + width: 100%; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + line-height: 2.1; + min-height: 70rpx; + border-bottom: 1rpx solid #eee; + font-size: 28rpx; +} + +.checkbox-group .item label{ + width: 100%; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; +} + + +.checkbox-group .item:last-child { + border-bottom: 0; +} + +.checkbox-group .item:nth-child(odd) { + background-color: #fcfcfc; +} + + +.checkbox-group .item checkbox { + margin-right: 20rpx; + padding-left: 10rpx; +} diff --git a/miniprogram/cmpts/public/editor/editor_cmpt.js b/miniprogram/cmpts/public/editor/editor_cmpt.js new file mode 100644 index 0000000..72fd0ab --- /dev/null +++ b/miniprogram/cmpts/public/editor/editor_cmpt.js @@ -0,0 +1,185 @@ +const pageHelper = require('../../../helper/page_helper.js'); +const dataHelper = require('../../../helper/data_helper.js'); +const contentCheckHelper = require('../../../helper/content_check_helper.js'); + +Component({ + options: { + addGlobalClass: true + }, + + /** + * 组件的属性列表 + */ + properties: { + nodeList: { // [{type:'text/img',val:'txt/cloudId'}] + type: Array, + value: [{ + type: 'text', + val: '' + }] + }, + viewMode: { + type: Boolean, + value: false, + }, + isView: { + type: Boolean, + value: false, + } + }, + + /** + * 组件的初始数据 + */ + data: { + cur: -1, + }, + + lifetimes: { + attached: function () {}, + + ready: function () { + + }, + + detached: function () { + // 在组件实例被从页面节点树移除时执行 + }, + }, + + /** + * 组件的方法列表 + */ + methods: { + url: function (e) { + pageHelper.url(e, this); + }, + setGlow(cur) { + this.setData({ + cur + }); + setTimeout(() => { + this.setData({ + cur: -1 + }); + }, 1000); + }, + bindAddTextTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let node = { + type: 'text', + val: '' + } + let nodeList = this.data.nodeList; + nodeList.splice(idx + 1, 0, node); + this.setData({ + nodeList + }); + + this.setGlow(idx + 1); + }, + bindAddImageTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let that = this; + wx.chooseImage({ + count: 1, + sizeType: ['compressed'], + sourceType: ['album', 'camera'], + success(res) { + let path = res.tempFilePaths[0]; + let size = res.tempFiles[0].size; + + if (!contentCheckHelper.imgTypeCheck(path)) { + wx.hideLoading(); + return pageHelper.showNoneToast('只能上传png、jpg、jpeg格式', 3000); + } + + let maxSize = 10; //TODO setting + let imageMaxSize = 1024 * 1000 * maxSize; + console.log('IMGX SIZE=' + size + 'Byte,' + size / 1024 + 'K'); + if (!contentCheckHelper.imgSizeCheck(size, imageMaxSize)) { + wx.hideLoading(); + return pageHelper.showModal('图片大小不能超过 ' + maxSize + '兆'); + } + + let node = { + type: 'img', + val: path + }; + let nodeList = that.data.nodeList; + nodeList.splice(idx + 1, 0, node); + that.setData({ + nodeList + }); + that.setGlow(idx + 1); + } + }) + }, + + bidnDeleteNodeTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + if (this.data.nodeList.length == 1) return pageHelper.showNoneToast('至少需要一个内容框'); + nodeList.splice(idx, 1); + this.setData({ + nodeList + }); + }, + bindUpTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + nodeList = dataHelper.arraySwap(nodeList, idx, idx - 1); + this.setData({ + nodeList + }); + pageHelper.anchor('editor-node-' + (idx - 1), this); + this.setGlow(idx - 1); + }, + bindTopTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + nodeList = dataHelper.arrayTop(nodeList, idx); + this.setData({ + nodeList + }); + pageHelper.anchor('editor-node-0', this); + this.setGlow(0); + }, + bindBottomTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + nodeList = dataHelper.arrayBottom(nodeList, idx); + this.setData({ + nodeList + }); + pageHelper.anchor('editor-node-' + (nodeList.length - 1), this); + this.setGlow(nodeList.length - 1); + }, + bindDownTap: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + nodeList = dataHelper.arraySwap(nodeList, idx, idx + 1); + this.setData({ + nodeList + }); + pageHelper.anchor('editor-node-' + (idx + 1), this); + this.setGlow(idx + 1); + }, + + bindTextareaInput: function (e) { + let idx = pageHelper.dataset(e, 'idx'); + let nodeList = this.data.nodeList; + let node = nodeList[idx]; + if (node.type == 'text') { + node.val = e.detail.value; + nodeList[idx] = node; + this.setData({ + nodeList + }); + } + }, + getNodeList: function (e) { + return this.data.nodeList; + }, + } +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/editor/editor_cmpt.json b/miniprogram/cmpts/public/editor/editor_cmpt.json new file mode 100644 index 0000000..7efff18 --- /dev/null +++ b/miniprogram/cmpts/public/editor/editor_cmpt.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/editor/editor_cmpt.wxml b/miniprogram/cmpts/public/editor/editor_cmpt.wxml new file mode 100644 index 0000000..0aed579 --- /dev/null +++ b/miniprogram/cmpts/public/editor/editor_cmpt.wxml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + 添加文本 + 添加图片 + + + \ No newline at end of file diff --git a/miniprogram/cmpts/public/editor/editor_cmpt.wxss b/miniprogram/cmpts/public/editor/editor_cmpt.wxss new file mode 100644 index 0000000..d864dd9 --- /dev/null +++ b/miniprogram/cmpts/public/editor/editor_cmpt.wxss @@ -0,0 +1,146 @@ +.editor-tab { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + position: fixed; + top: 0; + z-index: 999; + line-height: 3; + height: 70rpx; + margin-top:40rpx; +} + + +.editor-tab .item.cur::after { + width: 100%; + position: absolute; + bottom: 10rpx; + left: 0rpx; + height: 6rpx; + content: ''; + background-color: #ff5858; +} + +.iconfont { + font-size: 32rpx; + font-style: normal; +} + +.editor-wrapper { + padding: 30rpx; + box-sizing: border-box; +} + +.editor-add-wrapper { + display: flex; + flex-direction: row; + align-items: center; + margin: 0 auto; + font-size: 30rpx; + width: 100%; + justify-content: center; +} + +.editor-add-wrapper>view { + width: 250rpx; + line-height: 2; + text-align: center; +} + +.editor-add-wrapper .iconfont { + padding: 20rpx; + color: #666; + font-size: 48rpx; + box-sizing: border-box; +} + +.editor-node-wrapper { + position: relative; + width: 100%; + margin-top: 10rpx; + margin-bottom: 10rpx; + border: 1rpx dashed #999; + background: #fff; +} + +.editor-node-wrapper.is-view{ + border: 1rpx solid #fff; + border-radius: 10rpx; +} + +.editor-node-wrapper.cur { + animation: glow 800ms ease-out infinite alternate; +} + +@keyframes glow { + 0% { + box-shadow: 0 0 5px rgba(252, 94, 94, .2), inset 0 0 5px rgba(252, 94, 94, .1), 0 0px 0 #d70c19; + } + + 100% { + border-color: #d70c19; + box-shadow: 0 0 20px rgba(252, 94, 94, .6), inset 0 0 10px rgba(252, 94, 94, .4), 0 0px 0 #d70c19; + } +} + +.editor-delete { + position: absolute; + z-index: 999; + display: flex; + text-align: center; + align-items: center; + justify-content: center; + top: -30rpx; + right: 0rpx; + color: #999; + background: hsla(0, 0%, 100%, .95); + border-radius: 40rpx; + padding: 15rpx; + box-shadow: 0 0 5px rgba(0, 0, 0, .1); +} + +.editor-delete .iconfont { + padding: 0 20rpx; +} + +.editor-wrapper .editor-node-wrapper .editor-textarea { + margin: 0; + display: block; + width: 100%; + line-height: 1.5; + padding: 35rpx 20rpx 20rpx; + min-height: 240rpx; + font-size: 32rpx; +} + +.editor-images { + display: flex; + flex-direction: row; + flex-wrap: wrap; + width: 656rpx; + border: 2rpx solid #e4e7ed; + background: #fff; + padding: 20rpx; + min-height: 2.5em; +} + +.editor-images .item-image { + display: flex; + align-items: center; + justify-content: center; + margin: 5rpx; + width: 150rpx; + height: 150rpx; + box-sizing: border-box; +} + +.editor-images .editor-images-add { + border: 4rpx dashed #c0c4cc; + color: #c0c4cc; +} + +.editor-image { + display: block; + width: 100%; +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/field/form_set_field.js b/miniprogram/cmpts/public/form/form_set/field/form_set_field.js new file mode 100644 index 0000000..11f6775 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/field/form_set_field.js @@ -0,0 +1,260 @@ +const pageHelper = require('../../../../../helper/page_helper.js'); +const dataHelper = require('../../../../../helper/data_helper.js'); +const helper = require('../../../../../helper/helper.js'); +const formSetHelper = require('../../form_set_helper.js'); + +let _parentFormSet = null; + +Page({ + + /** + * 页面的初始数据 + */ + data: { + index: -1, // 父页面索引 -1则为新加 + + typeOptions: formSetHelper.getTypeOptions(), + onlySetOptions: formSetHelper.getOnlySetOptions(), + lenOptions: dataHelper.getSelectOptions('1=1个字以内,2=2个字以内,3=3个字以内,4=4个字以内,5=5个字以内,6=6个字以内,7=7个字以内,8=8个字以内,9=9个字以内,10=10个字以内,15=15个字以内,20=20个字以内,30=30个字以内,40=40个字以内,50=50个字以内,100=100个字以内,200=200个字以内,500=500个字以内'), + + checkBoxLimitOptions: dataHelper.getSelectOptions('0=0项,1=1项,2=2项,3=3项,4=4项,5=5项,6=6项,7=7项,8=8项,9=9项,10=10项,11=11项,12=12项,13=13项,14=14项,15=15项,16=16项,17=17项,18=18项,19=19项,20=20项'), + + onlySetDesc: '', + + // 基本属性 + formMark: '', + formType: 'line', + formTitle: '', + formDesc: '', + formMust: true, + formLen: 50, + formOnlySet: { + mode: 'all', + cnt: -1 + }, + + // type=select + formSelectOptions: ['', ''], + + // type=mobile + formMobileTruth: true, //手机真实性 + + // type=checkbox + formCheckBoxLimit: 2, + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.setData({ + formMark: formSetHelper.mark(), + onlySetDesc: formSetHelper.getOnlySetDesc(this.data.formOnlySet) + }); + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + _parentFormSet = parent.selectComponent("#form-set"); + + if (options && helper.isDefined(options.idx)) { + let index = options.idx; + + let fields = _parentFormSet.get(); + let node = fields[index]; + + if (!node.mark) node.mark = formSetHelper.mark(); + + this.setData({ + index, + formMark: node.mark, + formType: node.type, + formTitle: node.title, + formDesc: node.desc, + formMust: node.must, + formLen: node.len, + formOnlySet: node.onlySet, + formSelectOptions: node.selectOptions, + formMobileTruth: node.mobileTruth, + formCheckBoxLimit: node.checkBoxLimit, + + onlySetDesc: formSetHelper.getOnlySetDesc(node.onlySet) + }); + + + + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + // 重复次数 + bindOnlySetCmpt: function (e) { + let formOnlySet = {}; + formOnlySet.mode = e.detail[0]; + formOnlySet.cnt = e.detail[1]; + this.setData({ + formOnlySet, + onlySetDesc: formSetHelper.getOnlySetDesc(formOnlySet) + }); + }, + + bindDelTap: function (e) { + if (this.data.index == -1) return; + + let callback = () => { + let fields = _parentFormSet.get(); + fields.splice(this.data.index, 1); + _parentFormSet.set(fields); + wx.navigateBack({ + delta: 0, + }); + } + + pageHelper.showConfirm('确定要删除当前字段吗?', callback); + }, + + bindSubmitTap: function (e) { + if (this.data.formTitle.length < 1) return pageHelper.showModal('字段名称必填哦'); + if (this.data.formTitle.length > 60) return pageHelper.showModal('字段名称必不能超过60个字'); + + if (this.data.formDesc.length > 30) return pageHelper.showModal('填写说明不能超过30个字'); + + if (this.data.formType.length < 1) return pageHelper.showModal('字段填写类型必须选择哦'); + let formType = this.data.formType; + + if (formType == 'select' || formType == 'checkbox') { + // 下拉框 + let formSelectOptions = this.data.formSelectOptions; + + for (let k in formSelectOptions) { + if (formSelectOptions[k].length < 1) { + return pageHelper.showModal('选项' + (Number(k) + 1) + '还没填哦'); + } + + if (formSelectOptions[k].length > 30) { + return pageHelper.showModal('选项' + (Number(k) + 1) + '不能超过30个字,精简一点!'); + } + } + + this.data.formMobileTruth = true; + this.data.formLen = 50; + + if (formType == 'select') this.data.formCheckBoxLimit = 2; + + } else if (formType == 'mobile') { + //非本类型的排除 + this.data.formSelectOptions = ['', '']; + this.data.formCheckBoxLimit = 2; + this.data.formLen = 50; + } else { + //非本类型的排除 + this.data.formSelectOptions = ['', '']; + this.data.formMobileTruth = true; + this.data.formCheckBoxLimit = 2; + + if (formType != 'line' && formType != 'multi' && formType != 'number' && formType != 'digit') { + this.data.formLen = 50; + } + } + + let parent = pageHelper.getPrevPage(2); + if (!parent) return; + + let fields = _parentFormSet.get(); + + + let node = { + mark: this.data.formMark, + title: this.data.formTitle, + desc: this.data.formDesc, + type: this.data.formType, + must: this.data.formMust, + len: Number(this.data.formLen), + onlySet: this.data.formOnlySet, + selectOptions: this.data.formSelectOptions, + mobileTruth: this.data.formMobileTruth, + checkBoxLimit: Number(this.data.formCheckBoxLimit), + }; + + + if (this.data.index == -1) { + fields.push(node); //新的 + } else { + fields[this.data.index] = node; + } + + _parentFormSet.set(fields); + wx.navigateBack({ + delta: 0, + }); + }, + + switchModel: function (e) { + pageHelper.switchModel(this, e, 'bool'); + }, + + bindSelectOptionsBlur: function (e) { + // 多选项目的输入 + let idx = pageHelper.dataset(e, 'idx'); + let val = e.detail.value.trim(); + let formSelectOptions = this.data.formSelectOptions; + formSelectOptions[idx] = val; + this.setData({ + formSelectOptions + }); + }, + + bindDelSelectOptionsTap: function (e) { + let formSelectOptions = this.data.formSelectOptions; + if (formSelectOptions.length <= 2) return pageHelper.showModal('至少2个选项'); + + + let callback = () => { + let idx = pageHelper.dataset(e, 'idx'); + formSelectOptions.splice(idx, 1); + this.setData({ + formSelectOptions + }); + } + + pageHelper.showConfirm('确定删除该项吗?', callback); + }, + + bindAddSelectOptionsTap: function (e) { + let formSelectOptions = this.data.formSelectOptions; + if (formSelectOptions.length >= 20) return pageHelper.showModal('最多可以添加20个选项'); + + formSelectOptions.push(''); + this.setData({ + formSelectOptions + }); + } + +}) \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/field/form_set_field.json b/miniprogram/cmpts/public/form/form_set/field/form_set_field.json new file mode 100644 index 0000000..4b23bd2 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/field/form_set_field.json @@ -0,0 +1,10 @@ +{ + "usingComponents": { + "cmpt-picker-multi": "../../../picker_multi/picker_multi_cmpt" + }, + "navigationBarBackgroundColor": "#ffffff", + "navigationBarTextStyle": "black", + "enablePullDownRefresh": true, + "backgroundTextStyle": "dark", + "navigationBarTitleText": "后台-字段添加" +} \ No newline at end of file diff --git a/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxml b/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxml new file mode 100644 index 0000000..b6e2542 --- /dev/null +++ b/miniprogram/cmpts/public/form/form_set/field/form_set_field.wxml @@ -0,0 +1,90 @@ + +

7 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 M)W{Na*S#419{{*%VE_OC literal 0 HcmV?d00001 diff --git "a/demo/1\351\246\226\351\241\265.png" "b/demo/1\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..6c67e45375ad73f24d42f72828cb05d8786f915a GIT binary patch literal 215150 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

*g~U2Q9%o$Xvgnn{^Q&0foy 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%0AX|5$mIGjiUrReT1+=SJ4NlhlDz79+OKn&fy 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 Yd@{_hoyW(EiwU?aOs!3xz^}#s1H`BSp8x;= literal 0 HcmV?d00001 diff --git "a/demo/2\351\230\262\347\226\253\345\212\250\346\200\201.png" "b/demo/2\351\230\262\347\226\253\345\212\250\346\200\201.png" new file mode 100644 index 0000000000000000000000000000000000000000..8e295976f578633a4d220252cfc57e9feb4c599a GIT binary patch literal 228545 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

?Ar{rdbusBSI*K}b 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

BqAVkNnAEjSqg;su23-O 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

K&2XJ|6TF-S(G|otETU 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 TX1vmd00000NkvXXu0mjf-Ju9) literal 0 HcmV?d00001 diff --git "a/demo/4\346\210\221\347\232\204.png" "b/demo/4\346\210\221\347\232\204.png" new file mode 100644 index 0000000000000000000000000000000000000000..6619ebe4c796f27efdc54bee92fa612ffbde8c52 GIT binary patch literal 65055 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 K&DT@UL&8_^s3W)e!Excv?u=V#$)90 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 z zgoMus8JuNB6?F^8Y@Sm=vR41ovsm9t569es{S7f41>^L61VS?TA+va!4OL_&J^M*H zr`fN87IhseN$e*yZ!MtbHz@fY`b6fM%~j0;f*OSe3!=S@h^n@B%$WeaUk9&=^<{kD z1&fS)Sl_$|DZg8kn{;Xo=}?&8UaUI8IB8MkTW}4b#VA5wA1&^?<_w0+1h^_zDH|7J zvx-closXr=Sn*0Ldj?!S-FIC#J)N{!y+QCKgPT(FD0Ih}NrthT1^c+qoeHrHUr^|h zD>5k>k;d#4a83@Qc?qxTP(R5wevC>P@#AapEbly&X}oE}+Wgx0gAUho{EzPp|pyTNPWq1&glQ zBPkj@#7fCICb;C+`>gz8io-{uY&*JdQbSH!ilgCcszjD4lZFX)zWGA-dy(h2hc2Fv z5*DiLcDV2^n_`|S#JI3GmOJc?g{_J$U=rz>>qU9tKWGwCfGsA}MDZjkgYXWb^P{*v!5 zUJ`s1vI%aY6*~&&n%snH+DobCOY%T9+-{zvm)FC8uIu@9w$T6^gHimw<;g4*n?bR6 z;g&X-XTrMJo=t@{Kw@q7EfcDAW{kAifrxqIx+mOeUIIqh{zY+}wpkrCUu6bzkA%M} zD;D(#>R#S;msK({X;>G!{I-_Ip(uZ}zUe~=t`qJtS4s}Sfgffq>kt4N4LuI8R$a1g%O_KPXP6qMY)IO9VP|GhgLI+)x*m1cj8KaXzwY+wq zQe*ZU$k~BH2eEmHMm&Xrw>J|+e*WwaLl%7ghe_D~KY@$fP;z#@UPQz-HYzUY`~o8- zutWD=`rymsA*#~Sw4`L2vzu(0T@q?6@~)$fu>5a7N4ozG9D$8h^s`4oO&in@g;~_n zA~1G{=VQ$G?|2P30t2hyCz2wNzZ|~Ymj^CtB6so^>c31@3VjB$yey#Tx%fF;&J$=m zL+v`O%X1~MANaZJqZ-rCV66XO6MlZ*rQR$pFQG3b3PGQJ>2j#{??DG>beH386cpKf zZD3eJj=k$UJKz=)k@)zkDou-C$lytAi_HH?2k6?&`knRKjJ2>v1O^uPljXp7f%Z&` z0Cc8d*)78J9xG9Uks{QvQbqodwp22#kTuke>ikzkq%#bgREL5eZ7K1YwCDpCT~5I3 zOTc#uO$FF5@`NNB>8I0KOEEM{B_~{X?gO;tF;{~bbi+q60{>>#R(5vEw<$$AvmxTc z&bRf}dB(SM8oBBAjjgF&*;-5YMql_geKK?cx z5)5}H-Z=?sF3#%6`nRsYHJ9(R&60+6KnGWsJ_`FKwzDH~eJpegs~S&_+Vz)od2z4W ze0k9Gh})8gEX<{p&eysEK)YOGkB>Z;$AwG4p$4eDWb0^G&LGdE{y!praK&hGZVE4_1-i0kL&pK|JpzvVb|MCkSG+} zw3e4iWX4DjZ8~#`)OkSqkAZVj!J|QIHc@3JmfH5R1nyr&*u8H1qB*uHWpWfdiG$vi zgXs=+1ma;(RhK)t^Dptkf9?E`r1rmYKHU3?glmYe0K3npiYKCxJI`B!`&_=`UbeAd zv6O#TXgs`p=ez=oLA;E}i-rKkaTqdgu(-0~ zzuvta+WObg(Gfo6LzRY;P4=urLB+p5ySs!tlk}%EMA;R1dwlyJM(E1X&)*;7{z;T9 zjOy~svn|>d#-0)gczYL{Y8ycN?@0_fev3s+DOU(6Mn$DNtN6FiW3PR79F6dDCQIRW zRr@Mz{~wuupPYq6pkvW_GClkquhK|?0YX0B6xXc(2q+Z8=TmY@xj03|GZj)R=wKUs z6sK}1$-g7aKH_}*^%8cA2)OF{^ok#Wb1$^8-BM^dSc+3Ti-LS*(ov8v9p_FVFx&Q6 zPUXV$|9;B`zTC6{b{>U)@{#o1m{eI$ej=h;A#9n4x0s^RL-~AH955qi*tyJv7QsWT zMI$}^fb~wH$osJWYDG=pp-Q?S$`AheRSqLdg?mT* zrKu{{*tC3rCq)J6d7`Rb2r14o?8`w>vwsjvNu#eOKYtS3IG5l`ep zU|4ZbtQvLcrT+JQo70M^r*8t+-zr03g>9J0j!dXiDY;PdSpAlKJ-SJ9rgsxvV(gJa5F zUJ;o`6kuYK_kbTHVd@wCT3ms3?{jvJBIAN<)~PVmUzRT_EcVoEZZogY3ZPDWXCJ0A+Rm8BD9 zv5JzMBvLO1U=dcmqFHlP9+Qw}(nzUW-Uuq|=A!Z96@t&Lel^@aXmedI3<@tGpJU^P zlRd_Bon?9- z^POB!7E>A$5WFG27b|!%H2S+rSUAt`OIMer2%(E)+R44v?p^Q7>L|XxjM^pe;?`2s z$i9tE*86bw2nVS4j4>BHV@@uZv(~SCW$>XRtazcMpDVNbx8e(zU^|?-{`H@i{6BR< z&FI%bei(DZ>}L|f{P3(ZvIUAho;XrKijnxn?Xt7wPYcD}a5#IWzt2}LCSv(ZWozFx z)u#{JoNMLt&ygQRRi9MMgihu2uLcg_KpMcD>)6iVhs*@pdZ*bGo{GI@OKz*nN1TeW zt1~{GpYjD#T5u7??)58vH}=TL&$~Y|-mSXz5oMq-pqSzA8U9JOTzej0BmZk<6>~X< zXrrm5^hAL;Up=pjQn^*>@(B;5Hv}${gXF{$E-p>XvS(?J_c1?C{WT~mqpe`Z$n*hP zdeKbG;9Af4=QT;chI`X&9iXLDiG_yocn*r!NRWOeFHTHZecm2@rY=(9b@bpX${8Mc zcYpJkS$oh}+biv0DX0Ojq})ui{DY}S^eT4!vA;N|{8-!P0P-8fd9PU&SuLB>VFm!QAC*eUJc zBMyFH#uR1*tj-MNq3gU{G58#7Vx-lyP>5CJ!=I{sdN+y5F^FZfc4Dz3@pHo~Nt*UFdxHnA>rk#3F$n`mBt+VzECy{gT%5hde3zjIO19r{$63BtF6>?l0vv zr!o9r+;=fXfCow)kw9UqNe$=BRb9^R&$9ZMKx%e`^OPQlG_~eHM`a_e%h?8dop(n# zglcMV7(-%i>)px2cZy-IO+Kv7>ZDawY7{e;)2eSHN{r~QUz_ute_G`0=HoZ3A4I^} zVvL#9m~C}<+G*GJ{c^Y7i^EENQZ}zK`a=yXfD&}IIvjpJwM(FG5_TPv5ccOqeH_I) zxX?sygB%rfI{(-jBT!RcbyWpkj#g}??owrc4nr{HRoPyo*5G0BrF9~{8s6aSihX+j z2f-fM(Yd!$Jc#U`kWyZa)t}o^WV~?!@-Qq1Ihb63r_;NDk{|GUEg9MpcCO^_PwP-P!L|9EzMQ5GbJ8<}aOtbR z_ALkAt!nH1xFcJwJ4W%UPESbRaGYhpEQ%*5cF>E)qfUl-($)4>x!g{au4qeIhqvEAZC1ot~YS zXC;_88F``W^VyK_ztP3KJnjcB`}dx0#D=tN49?ZEv(0fjy?_1bv|1YP1mH(=11TrG z$q903eLTpvmyvLTmDEW&9CQ+99OoDD_`prxoc2xUON?6KSVdq%ui^O2pMx@aZ}*6> zOon3tLP39kDcyesmV-Rsls0Y9?$y_(oK{IIYTIM<=-1&+pAxjWdLfI8P_cNd#R)(w z29?e4nTQ2S_eQEfoFPY??V+v%3xE!Uou`gcfY2iMwn+@^@kFURoH9S z8Wc;&hTuIqtYWM@quq#IJ1Gn$dhd(|B}h$i`Go*W5G+O1=4rTQ28f?XMEc6g-a6t1 z=*}AwgA4~Ev6G*tF}hipzKhwIi_A?rTqa6Sr;yxFku?Cg{HM=XUAW1c3nT#)Znu$b zUPA_3VcOQ+k!y|C`_(ToyD2NEzB?~@I2{*FWu$w}PwbOxM3GkI62iZ6wRDRfD0bX- z2Bly_Fkj!nj};-0O9qRK)I|WDC6@n=uwP$1?wK#pk<>gj8^sZ*>+ffNea7h$S8Xi; zT#_?AUavLDSusUZmz+Lg0-N%(k%kWLEl#p6GdUZviPg}WxkXaXe0%WSO*)t0xAi%Wsu9C>8tyCENl!Vo$UxC zzfunhf+crMKKC1X>A^a*DSwS0V_sDQZnAXRaiGaF8nfYs?-(|sntqB%&+~VbfeJkj zxDSmN#HV&WQCqMmmfP|NOD8mwD#|++7+iE>D`^z)rfP4s}Tf`a2`*I*&swov`D=Qf+X! zL9h<#TK?z51qltCT2?tV3nttcGX4dm1=Wj4{#y3Fa;V)DK8#RHz_hRk+ZQvJejT31 zOMx_>WM$c#Au>Uo2y_{ygWE}trJ`pO58@P3dq-R4l?VFz2)F1*Yc zIgBFIlLj(u5Zp&TLYdvgnr@*07b0<^F8I_*v$^+=DvFL(=|^4?40R24A;sx$H*x8b zw4`CdDqD~@w}G2n$5=El@>V^3p#OP%?&juJKC6TLtdQeScrti3gx~nG|0lqI zmslMG!U7xdd@*ChwRbKwTxO8E-dO-23JN*kQ(LO~Rby<%G@5VLo8IK6A7QkKN2nil zB2MhAA{%F4rbSAO3+Tr_5gN<(Oq-IkK-XCYT`s#`k31(NF~S| zQAOKVG?p{xb8>3sQFvufq!P1S=Lvl6iGy5N+!3+uW|t3Ai@~iV#A*{>68p;s5uSUu zJ>$90H6PAO@L;!^ghs(02jXCr^(p^q$&{Wa+*sQF>6rw%|IW_?Ks=i#U5jSe!1B-_ zt7&toRVKgIeS?cBME9eXaT|$M7Q6`EkCoO>HTj0y93!q53)tYKF7JRJcf;!H?Z-}M z7rvcK`V8-`HNenrs-m*>5%{opJn(a}rN=St@A9V$Z)TFFt7$iF2iX6R9Yv%EVM1It z`g)63b!C3o2vR7auF7IC6A(?{KSRsVi&QN8Qij6_#bhZak0Z!1FX9&D#Nx*jYl?tD z1G`tJ4YVat0ht{AD3Tea!6s|j73pS%z2^bnw3cu1(m9A{Rglr-&{cb4o;>|TSjPLm zqYVBfu>V^^;s5qslX1B6>S{$DRG7B$;p5uuDxW8KNL%7RnuGwKfRZ9mHI?EYJVEa9 zA5P?dj79w4F8aSBEUqpk%tYMn$5crzBWh>#^6MnK;wkaN(@f4=SD+h<<>>-)es(x! zcN9I{gpnmm#a8-ZORqQORudz~buqSc_7V(kLH1k`<}Qgr(C+sKNXjK^O!s6|G}xY-Va8EfH~j#%Ge z9kTi`O2^S0e!*=DZA400ECldqcJKXIW}|Au@L14DgKFJ!5dv05BlURf?QSIdsL7d^ zR48qoV?uY#u^&Lem2T@L7 z>F1ZFLsHq0-rF3N8$x8Adm?SE=XKEP##xs!bDf__jZT}ZY?GzH;URReKO2njhdKDw zF1>E?!8E_c692t($1{mD4v*msdJz-coaliJEw7@VD>!(kkZ#r^)AJ{#$oVSHTBGTs zr-E)i!qNAC$#+OPX*;f)+enzs^%F1+<06~?kS=WNp&kE#Bfd6{Fke=+IZN68l5ZO_ zT4L*SV6LEHQ-YCzkxwLW@Cii!y}G?_?JxauK*z_xfR&n&c|_;^=9L{-4f)Lc$2a8K z-R2kj-AwF=!qJ`xc|HEG>k{Mka&2p<7h-`FnvRYr8}9%SVrr_)0k<#;>x#c4k>WZ= z_ejoXeS~79o&N;-(@R8hlODVnK86r{0hpGduS61Flf$&MwB>p9Z{G(6P}?)fYlfWU zNl7bl#b0is)|N?-8wz2GDxigOnjFtVo-IaG>*AORdo(NY#l{|b!{9es`WZyAE|WM{ zqU#ROArfj2O~8Qw#-px#X3T6sFraeR12Drb*|C9`_0Ap1T8W~+WrlEff|ast=||k{ z0ow%D@SgJ`cyXLkkU?bkCVy+yb(Zv$KR}Wsz-xNop7pV8h1Tay<#AUmZ1x13VJDQt zG{(7iE#gbyz4F0He{J2(WpUeXig+8V618;73S!r<+hd`D5bz}i3!b5i$;@`o0kFpk0S0D>%;ibmmXoqM&fm1x8kk!fLfN?iu-Mr(W?(Lmrz(?9wFV2zI+H93=4U7qC zf0spWoGn|TFo}lf3GiNhw$OF*G|QrJSY6;wuPwEJ;hl`0r5GZv>rB4dBal}Nj%qb+ z*SY1YElCqn^P%GFRg#3AtV|b`(k5F-Y;ZqSNXt0>#goTCEB8Al`%|gwYI2R`S*xG9 z{o`@+*x4j;2U0-I0ly^{;?uM^o!lx916Gt5W1at&UmBvNWXa_knM^RyldouR zGJK})v`jJ>MK}H6`AGKpNrweQi<$n zMQcR7VeNL~CiUOpsiDG|JSM&uTn6(QGRaW1hC5>N?IyHvY6!7QTJq%>dTW16v+-V& zIV_Cw6r}AxsB#hAbPwYrrl7c86>(fAo_^a*JGaLdpDPZZS|{^eqxn%YbxPN1watRV z$heK{Es3YfqL2A$Ory&Q(sjXwRQPY4Dlv<=^`S;KsMTIU>HD5vZi26k89$d*Q}^Sq zF)tvR7B~e=&`5vm;x01VbX6TQ`;cCp&b^4(GuUba2(B}*(8m6gppcGZ|RhJq(n2KgQxA9i8~x|DgQYjwD~!a*4(G1ITr`DELuo}?#*vi{uz@9U0SUCL4NK(1@JbW_ z9MHvvy3&{|+h!ZGwyx&fyqJsi%Ppw=4+UYZLFoB#Mii~;#b<3DVE0QodVD%63iLRSVPDnE}?>VhezxI<;13`(Q&5#?CswM@pN?A@70* zT-1ze0mByZuaxPLNs^7-FUH_cl{2^dRcmR#_ZZS5h_G&tY~jD5w~*xyHl1D{M4IC3 z@wp#T&~yE~gD1b?AV5O?r-*EmxpVmo=wDyx`rJZ}Z#L0+xfFb=yp|`4ZZ~;nb|FO8 zkBaBsh!{?E0|%A)aLg1+o!bMFp%R-Ik(V3supNJXt@)fEXx1s&U?U-e<|C z!^$kV4BJ6XqGVIw6!za2<`yU~}@(jvamse3SADdSywavo&Svb|SeM3`Ss9$Yp5(%9s<*~Z{@-zG3?^A2;{_n0_o zy#vSHfix%gfppty#`ieeH%;UV;#}2A{XVbyvv2P3wzM{MtH^1ylXT$bQe?s;cbh|$ zvJaa;O<9q2I+7_Dk>rj1pf*SaCjR}!6*v0L-nDSPdV6rs4{q`W z#7eo(sZb?QZD%K75m87>1>2Q>5DC?-?SLb^*IbRm z1C4Ws6Mt8(?p*K2tu3sjf=_)8760UPh5pu(WWwki_!E>J`1Tp??Qq=11O{w6T%EJ4 z%{ZX1a;0XkRiLJhGrJAc@e8h89<|+oqgraAY0D1C|7^0c&uMag80n0x3Bu4MvO}A9 z;WY+5lhgJR|8-S`Rc)XX$P^ z=x#^F$&kZ*(@OyAn5-^?Vy70)d{?+vY>a5x;#(ICvn zh_FMB%RC3b-a9JDxTS?~(?l)1_l+y6Tm7ATur$~o-NA`r;C=v=c(Y2AvvL9(OgBp_ zopsG`;MEECi^4(AP8ZPmF)fu9Z!f8sg(DDb8kx2COB9?UH5U}?kni-lfWp+@3iTMu zwm>?|W77H2q|p~%AlMh-7Ql`V8tRU#K<3w6TeWr!`xVDl$HGH#*y{JL6v5jNxRheK z53-}^N>NHp(ehNbM{&v~>Aw5rb&AIygP@iTGj_)4X?JPkzJF zV5o5>ILvw4{>c)BGax3xdaCd90CZ0CCZ@;1y0vK`Yg$G7jN}_$STih zdf+QuRGYS{XJMNVK%au`=5r!}!0=&#UaKi7~0-?^L4VfSFCN4MXH9C~oO`x=(O9pUGyn zWFG~lmf-Wq7`>2FRSU=u7a=FXHJ`G*Nv(e+`zvY#`ZA`~EUt(h%hCpYx1TBpZ{Iw#N+$t$NP8osLI0aW(+>aefj zRU&KsnIXrxjuIJ@ybo;tzK^@XV%80YyyYhqcCi8U$=Pq2&a zP+=jZU$hazzeLlK3C&H7=^7_wiV%tzs!TsxJbw(;G*W#PZKy3HVQj*qdG*5$qk&+os?CJLN)&)qeM7fmv^Lg-SdOm@xQ zHePPjTYO6r7o-pmzwb;neRQ(_UdJi)?gCxO(j0l?V@O-fsb+q@0DPw7)Qvr@JvoR~ zt}&!WnlyZa3KZbe_^Z5l;H1v+C?9IuBjCM!w2Ssjt9ym3=$Z_I4JsAe{WkDjvE{WX z(CCbW)Q$#FcO)i|J#_$Z)cMO*3kD%2sRf?rJuS`Tde!y%mosm{ccxZB%%z085aE0 zkRpaj>fQ$antVc*HKzzwht=pf{Y$H#5e`1ghTZ=EC7wbCMi}LoxGc=XCZm_g+ znnspbr&L10lY`ugeWVKlGdSp8ahaq~q{yUM)EYUMCptGNCAr^9I*2IT@ET+_^f(8? zYEam!;dl%yH*M(@j|_yE?%=;eE->kfQB6&%e(e`Sjn&88_oOCL2-~iY5bwh8x>-0- zOgbfH1%5Re(cL|h1lFCvi0k+@TK!h! zZStX)gb>HCmg^y~`-qFz{pZ?8xrR%EF&0)i+F&vmHXs#(gb)_7=b^`~SDNSilLM8G zV4al3G!r|n8@KQri41ao@n*$y>*J;Zq8dO7fMH@~^~T;_ykLSzwwhK0C(xsDd{~tj zQNTc(`1&Whhd|#$8qMR>c5m?aG)tfk<-Yv%$ce!@$RRnkBB}B%V7qH)EqBTv)pjp@+1hJfxa~U5C*rAL&NqfUT|$#%RyU`*FijC~=CiFdL5j!o>|j zLQ3v3JJRS8gQ&p&)Rv|V31GDG#E+)DiV9L;NHQjiN2@@do@^V7cjr~Y%q@uqtfF9fiK{e+8xsPk4rGjxI97+|(k0raqg2>A-~ z@})mvTo^n$gCb;T5LD=t63Ytp`8J$d>I9?0P^2)fYYw*Dn>`<-Jn0aUrt^?oTesTa zK6EuWJz9`%O2FFX;zQ|C=dveRbXju%hWUnwwu9-apwsmK?izzq?sXHVHr&T^2)#%^UCT66y9e?oTWMj)SK^+jli;WZgjxGdJmp|~%~TLDqB0BRCN5h5uc(HE%O zB>9eBl{>U};E4bPEQ zcP)u6VpK+vFyL>!XxI2;4|Lt$O{s2#S+Bd$y50+qNh4C|mT>-a=yn9BSge<@ z+tUkb`QrcXfg`=?phm~ls9*sk)|6Wa{&9?mHK`uIEUv*AKWX90FJ^cRfv##1T^Hbt z4S9M;n@0ca_kC}<9{7I*tp@V?6>a`a=MXHx)POIm*4N{StkCXo_pBmwiBq9X4-bVj(2Qwp}?Wy2;I&Hrdl9RS7Q&Ke)4iS>e@$ZJ|27`q`e3&FDefY5} zAB5?Wh}KoO>r?1IjirtI#zTX=SWLY~1Yu3vG_$<}$7f*DA8c=Lwa4@ZMmI}Ck54>` z*ixe~M}hmdq#~LLobxSj)CSJXB4IW)In@)Ej)%GEmlqcZV18tyOKO|Z$Hi*80F}_7 zc$o=8*S0t~Sp0S0TjpV0C}%$1A|W5=Wq`L8X0qpzhw+x*hRqU#APAP;U(y$|ZKBpP zu0oz^F#KHq$f_b~wmhH>%iQAJcxV|wUq-m~XY6fNX8Uvbq6@4l<XnGTW(<{5=#ynyl`lDP-OOMV6eoSd;75tFj!27gqNOvuA1V>Zn<17$77SzU=D2V5^4U-KZ>%yI-D4szxcxqc z!%jL3-@D;D16Y~Fk9R)(i(}t533KDMz0tSnsUg?DPaACqj*rZC7#Q!gc)aC!GDlPZ zf+is=cWa7ntGJGKKGfP#RepK00P#+*?@V-W0vL%+m-}{n;d@uG6rOB8 zL7R0wOsKAz(pDHW;|TpilbfiEg#hg{#7bA^Ubrus;;}Z4@t9n_5-?2M0vJTKb5~2Y zQd>SqMa4^YjqDc_QZojA5adbLjg<+bMpxwRK+ZM*8flGW#I7Cz1|%9#pvaP;6B!XaYS}(J~n(gKJC(%Svd08B>~R34d;>eHB^kt;0!Z~ z^dk(g?lCO+b=JBKj=*B8iGC<9CXXfAj<|ZF)Tg19jEUpNdYRvF%kMvKZH-F2K5>+2 z+Y(U?K){0o^*UX!_yj$P;nn>@+0vk=-C<+^qQf`9($P?JN7IJHs!_XsXmv$1Nat8p zVeX*uMRpjH+S@o_m0cW<~`nayH z94eDuGT=RFyIPosW*I`wM4*ideQG&9_9T*H856V}?=R>WwCcs?;<0^0xXc9NHT3+E zqbZJ@pK&}%1?Zu9cqU>rHHo)lE+r9AbAD$G$;Ceme7e%t4fmkau9?0ui0E2#dBIoS zEKOMcBVJ=*)fAzf=02F;);Qk7gONArsq7v$b=iLj$30lszt_l<$Z)7GJdoU%QWMo7 z%*kowS98PC+hiN)u>6jzQ)W@aoC66vsSjo#h6?ZQrG5Tx;SI}Y?Yv{{4Fdc4o`@jG zXKuL0{?ASgMbr~9A`QLFa)7`03m~kv^+yc%0^ib@Ty5@Ft=;Vj0!J!NL_wZW<{Q^u z`Z&9r@+48(>yU<;Z+fQj)27KqYAj2MWRT2>zqDJU1--BvG{L|2=xdC7$xcmEvk?K_ z(=(mb#;_D>ifl4sm@2Kq;=3Gzy3df=KjC)W?Wo=KA0<`O2oNEqnOASYwtoB}W^_FK z1uGEfj!h_T5JcVuMU{Fq5 zYN|84G52@J_>ZOyoF)zj2gYt?3wbUpYd?PAElp;~xyf}LK*hDFksT9yqr;Jz6Vej# zQYk`0bDYk(ZhaBUx-Ut2U|mIB7ef5i&=NrQdoemD9!PK5>jb$dW4MYIZ2-sLeWx%uO=!avo>S(N#psD_S zV94hxM6xO|(%!Rgv9Tnsp@+%+Ls0u$#&rK>u&M!>M{sHtI8t)2-M*LY6JQlGe&v3%bUyBIQ%Q~H+dYhbeA=)J$lF3c#-<rJAj5ML{oy4GnGo7=A!3svjzL?x;n!!&}UJ%I3h$uMWAvy6${ zH>6Jn%el$^uPe~zXtBQ&4)U>9Esp#7qUB1bRI1O(5d*tmGBPbKDk1`gwr9L!?Tpa= ztSk2PYm5uH1*sDbWXD=-*zq`GV7UA#v0PGGP((+Vn`-Vb^a_O+j{79A_`pupKRHL_ z**E1vDl~&&o;^SNtk8tjJGlj8K2>Xbtj8Q+?(?^{g&Zh=(W>_UI^*d74xdrV@UKpn zv=jF^K3*AB!pj|9O4Pq~I%Nste|C8PGl7o(k($T<(Vv6b`4Ya<(O^1_VA4H2Jy}r! z*ZU|%qLFS|;Agy;nZrNFb#bM}nt2DzN_RzU7`h^326BJl5X2}3nA_2wwSCVlp~Az| zwsuO$&JGx2oTLcr=p=GX6qKqUxcsD7%ELx9hX=>OiEss&Xj6Kz%fbS)8A3?SJXf9s7QM8IOSTS;F z#uy}QMWLa54imXZIar{Zz7-+|haK4n4XB@7+0xGmWbgi*t@NyvMI@W3N>rMy@{~hS z1!&;L@Yn1|M_`zYK{X2g?9;`P(xn-V8P*WATN%PTRIQ6-o|*`9^up`vJ`ERTT&|<# z#_PpoUAou?vn^*9asYv*;CFjP=-cae{5ztM?IbIr!vzoX5AZG3Y@&1NhKX z9yXa_?g$MW@o%SU5BdC~;E9xHohKvkJ$2Ve(l%dGxgkx~+Ws%K#;^T*X*aRrR8T%5 z+CL5G{`wq^!aK-Yi~SecO3*Wdi2rc-W3TUG`7JJNH~0B=kXF>An9H&hN!Xio0;sK} zUgY31Ca&+6Iqz`P!orMQT0E zPZdF%UxtUZJb6=G$CDaHMc&}))Qz$Uj!}nyQoD}XnafA!crv&cX38IcA4Ru>e3h94=}|! zy^WR)wPxY;Z;bqS-z$^ghPLGK4e@nLVOQ7*vLAWfT2o=-B?>u?aJ(li$-NRTt?Txo zo}LM8cy^+7e&^LAE}m!IgCf18T2g`GVw)p-R9WKJkd&!=H+m%yTgBPCWs6&-y!u1< zy~j`Lz*H0`o|W@w8=k*$)?Vk}V%nO*ayO_q3W#!Bmmx>nBc_mQwmf{ZnSuSeL_yDx z&4q40$Bs@STHI^c(K1Pp65M4Q1tz^33Nf6MR8w(&&omh(o@<5)!2Na* zz514Y-2%K14`7;dBAF8=fgs_TV+Y8SP$)9J5%tq_NyQHkNB6y3{(yxVa9rTR-YW=U zbvc>Nc`}DgN|V@g-@TeN)I{j+qP!G^z$T7_oglyU_Z6Sd3uCwS?oQ*zgGpoRF6 zurbw(eh+_GJo0bSHG;HiEwRv_v*i_^+(i3QL6DX$2M#~KM~;`;1^RuQsKKW0tx%gL z4_noOmj^+D7gj=eey8-=)F;#}FD?*pujN8nSPCn^0MQy19{LsJxapO6&s4bMqatwc z)sPlu)Uvy*VXNP~5ip0mjSe6K77n+T?H}jUm(b3dko?;o*yzjm#IXH`Vk$w?pL;UH z1!g?1CtjT3!`2L*eXA1`TNxij>b`b*#DSFwlbW~GK+CBlOGz~?yll>zIX@F%<3w{s zcZw+_7FZjE(V;Fxc^BjS6QX!~JDiK0es+C5I;iMb29P<2O!g2vxzdsGPGZ;niQNh; zQL=G8T0_!ihv4>%&3iPVgoLrXa-Vg(03A8kmD&bDyz!v({+T;mds!m(oi6oAo^zjK zs>6?IOZK9t62^WgP>laEOXt?JN)PYLbcJ8hHJ1Z+gi95i%Q2}kYL^Y;;$QynF ze!iE-U>ec&R>QOU#L-;D>p>TWY>ieta?a7_Vf|)3Qfg3wEB828zTYr{z4Uc`(Ia?> zLWL&@+V0|+{wmxFaOno?>pRmE-ROOups%2RkIP)pgvg8Q8!aOmLTuTH^tSiIrrcb7 zdB?1A<=T$L_j`ih@K_Gk8|U0V-A^$PtLs8qePD&aq}U-=gx*OjM?A@>%XNO|&*B70 zAV|-)7!IsdStw6~h9m!Need|I9-1y3olQWiRkS!e+2+@qwS%$9DR28Q7A5GZ#`6BB zx&F@~GCi*cFJjy|1h}W|HW}G86$5f@6`}q(Z}B0g%}o!#X+cZhc3zl*IeEH^>N?trBRkNrh+hYt?u#QDTHMSTwfNpcwywh<*XN4V?Rm+AKK zn?^G`^IX7Bt$nKM~U82w3jsw~cF2X~XyV`?l~*9y>T*V2;1C^8Vw z;t)1y>PuK&rIv$rXK87;hx@hl({jLIb?o&prI50anntfyoo`Fh6U>Y6pk7JtGWRRyd~D;_O!A$d%EsBN6@fR-_n1*!0|mn7A$}0P>^&wFzNX{({yRG zswxJQ{wDMihZYH%V$kZ^*=O44L>=*W-PiSaoWT}cj-Iul)v55JP~~hbK{53x)zK|{tW^FeMCYpgc!T8Eyrm_%3k4mIsh%r zNV55Lc3U#+xrewx={MXgsy7~@*wJMPn}E=-CKWR=9FoFV;mJKA!(N)#ca-DpaI&IY z9(^h1!0qJiGvVhvWmMRSp`80+?()hln5GV%G*2VCry+Uc=>;mXX)NWuh6F(<)N#-X z4z@LDtf3!l`zEB*_U=NmM=#Oie66XUM!@znf=*$eI|r_(=~T^P#!IoOjal~-P_Lu3 znH`RN)>iPeXyN`FH4itOOZ(y16k>nyA$T<`R2-}iZeD;xM&nXjlORd#-oqtVHC!=f zCf(3D)Ac}uB$=|xYJl+US$>{K)!)4Bdji4t;uUMMK!S{RqCRxVyW3SAh+=gdSJsCy ztYaH#fY+fT0j#uyvNWtr#|A$$=ynUnFQxa& zi6$fJhKUrgQqM-`vP^rY^6q;_e8j`>(*jY}e!hSU;YM7jxmxpaB#P#7W#U?Nt_y_W zF*H}u(^18_wD+l`38tG`khv}?ph3c=Zmv41*O}=cRJG0E?r?^;^Zg_tQ@vN3Q;)t$ z(;xaYF4Iu>B|eQ$K{yqXpXcngO5h z)>F0y2H$|=j#hQPw&X)leHk`}SnOE=33Xq|F0ReB7A0S2IfDPIhn!SdDyf}G_l;XH zQc-N8@%+*YXobwXdpNq=AzQZn`0U!Qu+b9eem==u>vrKTf4-Z)EZW;YYE!+dz)&%4 zRYhvKP!SKQQqM7Sa8QEOHkRzxTCjX~hf;jsdap&ytHW?6b+_$LNav`M#EwO4M?r`z#Q_WWC7-KSc*xTw&ic74WLY1|^M_ zfK=#W1o6il$>6zH%!Ny0|C29H3UC&=8Cl`)$l>QbU-k0Qq_JP7p&zcZIeed8#=mq? z?+wK>e&+6(mLqEn<9h;Hx7}WAdJOv=LC#P{0Niy^y6!^aT|0Snx_H0Uwt(NR`&{ti zrC$AvtfYGPH@f2PSq>w~B%cklMT$y}*N?kFH~ubi3|qZ%6IMh9PJFWmE1W8H*;3!E zvNcDqYoot4M@o4nrge;oHeSi8rTfGRd413QDoV`X_AbN;q}D);r8r&UzwdRvLp|UV zrk~RHAesl=^yibj3-t*hA`Ne~Q9+19?^dgnHz*{j&W1r3vMOEsb?a48i)Jn_?M&*} z^>8qi08WEp?h7faPb>Ovv8xB0mc8Eae)uj<-`-dFg<7XFbYpe@eO!DwY{<)Z+@RPD zI8Eos=1Q;-fn1dSn`rHDY3~zuV18)sr{Vj3cO!ywVW$z5%uJ=|(k!wqZXV<~uTFXANj51%h2TDB)GCbq{F z|8vBbj`@$=!M5bgyzu_t;&$RtpMPCIKH2%v<&RzOKi1Yj0GZ)>JR#s2JW|Bg!_=s# z+`JZHwhGbJT}TTLNF;Pjh#F-YMk7B1W?EH^L93@N1&+NFr;sS14+e)F?myypX4`89 zZ--L4y{9%pSDxbvwJZZgN`s{Fx>0m87p2}TsPzPMAu}{f3GMpxGm+LnO*KgClh~Lm zTWXM{Y6N2y_wSUpS0W^s+>zuBnXipIYK`%`&~W21UiADiB>NhaTWmJPsg0*8!ROAU zDk~%wW(7Rlrg4)^{3F}#{-RvI()oOz;r~jQkFo}pW|w{icYI!|nc*&Q2VaSceBiqM zsT1^LKU6Q%5@86w{U^(=UpGk>o^LE7jeLB6LFaIy#&R5K3jNoug@RCMeNFBVc)Sp4 z%4Q)}V6oF$0l^QgFj!*#NO{FPKyUqF6`}4Gwf751(yuhKy0~dC+USA%?)I?2fwl)U z=FBWL@*-aRFV|Ou&u`@*k8EkBKRv)fq(^vz_fmOHkem0SSEMeg&qW_+NTR&7Z-n)* za_K5X<41qebLXo)?R7pN3?Sva#Zcw}+U$v^2B->Kb&;~<11phpdsRul;mB=9nm>gb z4lI9T;{^AzG6JTH5tDWgFV-|-NU>Q&uZ3^E1t)3=)q!Q3L(bj18x3y-zr36%6FfRO zm~oV1kM$A0xNV13)pP~Nr&hI}aNUjoht$|(f1iBi{=#hI{>HB3Yf9n$sm*=1+Dh#E z_vH107l&itmqlNu-57H%Ggz+;)h)SFy93{M7NjnJnDUg^gxHpy`J5I*=Z=cFrBqbk zP@V_@^st&ZB1sP$HW-fIW7D^Nz03&G`nw^PUN9MXSA)4+Ph>^*p38@138l6T7ScLe zVfHqEz`3^n5^U)oJ(6A5Y*ATMSrBJFZ}*1#s2FJ5-iK3%qJ+fKKrhs3PyP zftLHGD(8{(BEfO;c!wy2Jo_}cvf--t=Aws`o{`uo%}>ytwF)sNR_ z50*CX(W1E2@i`}`Wjmyy^cu!?XArc=wzXFo#r=l(?Lofwyk5k0Bm>|017~pB-+t0h zrZ}{Nx5q?7aS=!(uMLhjo8TVL4kT9LrM?dt-lkH8cBY*rD2v@<$BU-J0HcrI5^+0A zJU=fglx`V%@kApiy_OSQ7h4n(Ps=T+Loqh6sIwV{c_Z~U^u<7)4|ck9_&NbvSa15Z zS^Gxd^Ghb(PRt|kCqi!lL_#ahDIRBZ;dR|gN2#*c?)l?N*!#p3aopEPt!0PTnY!W* zj>N`@L0@T> zXIO8BC(f(X^qH7$GYzjk!|`+a==6A6bw|LW@)8Ggpxbe}TbjM5rmJ(!w z7Cb+=;KJ2jzfm<{B0WFlvQP}h5GdDd#%aWr8f{!840&4kSZ`Sl8hGO9wc1mwXj8H1 z-f;STwJXk8vbNK^qp|1^IU={|2d@)(gP!I=ZdP_7ei!3!xh^K z4KH?oPA2t!m3$)lHPHe0C^pi)jMtC;zL<8aX|O52u_CEyyMKrEB_8sn-+Me)j?D}+ zntK1(k(?@h{srB*{+wdc**MOeWl&I}m!m2=?^K9g1cTR)%}9eMBZ`Ci@g<`<^#YM$X+ zDe?>hYeO_?_+rGwbjyCjMHeQQ_}u(&A--2ZxV99agMhvBWo2FJer!kG3Z-nya_xE5 zRQ)@7Ne8yN`@vK0Q3rLKxOOuQymry^{_cnLapGy^w|4P(%TQ~)C%`J~v&)%o1kHsG z=&Kr~-#C6dGO2SP^ybEyEN|=3UttxJ{n$&}Y2-rx~j{sf(*yu(9j~oOx{79kDfale{i~L`^Ko=(oZmfhQv<+w0Bv7+M zyXfz0fEb@)!>SGEdfFo1RG3M8G~e1(cgKnA^ygUXU=FroWx+|qm~^dU@JOP^Z0gjEDkx9uTj#M&>O^4 zrb)HcQtrykoz1L+fU}%ssB28DPzL$a=nc!UFebyyP^W_1d;aFQAWiaZpMpb;BA>NY;52l4GkE0&(oM~j!Q{Q zp48joJ4ht=KiyfG#NvbKGBuZ&k(l+-R0(leOKc`QzjhJMF30;VQ>ABJ4YAejz7+e{ zAz?LnZF*e?58laUggemCp$Ngn^>tC9)=XIIzF=1)!c$~PM=LgvIq3QjT*1TlT{qw> zahp2%dwn`_C)3#d8u~^n-C9E z=O9v0?B5zUJYeTH;A~K*th|E`yDRuz*qIuNK?OBi_Z%!q z8sZFz;O-U4{#qJg2svo~CMbRyiIbhwN)xKd3{JR8ey$$ewP^(dJ?Kkns?YlB(MWO< z$5Os8zE2#yaH7GM>!g-If!b_P`kM;9k6L=fmt3V-3%7Wc8MxEBz&WF{E2$qbZj5~% zZ)jezdV!W?cYj=BoXk5rH;y~@GNW#H3ASjeAOY6-7kiV>srg~~%NJNMD!<5^LEXC= zryLUd-s%d;dyd7*wKYLVlou9bA}2*cB`;;^r22zGT)u$`#vr+9MD_Sk>I*}0Yz^1% zYSMPh;C{pxTL~&wYBBotGN@Yx0Lf>&NlFCy)9j*Zux{uiO*yR&R>z<@;iDApEx~yu z%vQ-uEWVWXAPpER`Hg`iwMuySW_AC5nTTVpHGwEPM6p!I8Yj}c)$tS_fENcN4w=vV z$NAr6?%X9So3Y73fv#+vpzCa;0X14dL2~S5ayyZ43XhAFOwj}JvmV|1XW+vv{91y1${qRy|V9hkU5_)*@qnpxTy>M3pGy|7JI z5X6U+`?)c2Vo!(#%9m5E@^A$75yKyz@=`dz`-(u#vCd89!cPBy!b+`Maa2DF%q{Hs zL7|11oOJRT%7NT+=5MCYaHcl6oQGvFYFBu&e zndBg4SPgE|>SF&;hukTggAViI8k81w` zp9&huzK|MI_VZ5Z6sb{wgN&XBGZHA5H1V5}BO!awgxT=>!ug1k;`epLVNv{*jUW-j`m>hA^j%-&Tmx!m#n1 z=DZtxK-SR;9d(4W9{dCVh1K|*&NJtKS7mVV8p-Z4O-TtAZRoaa2!kgWSSLKE zJ$@4IlTWtN^TI0s)UN9wzK*`Qt6Cb|N0;mY80kJ`y7LyKJnl{wE4`n{F>_)gN0{9Y zE{B09Ig=275$Hka_m8VvGsRIClj?isg0Fyy@G7G)PWO^&!&Y2da*&jxV&F#L(+v+; zQ`>NYQdXb|qn6zu|LIg33A+&yfzY$S>q{Pl>x_-qgQPf&(cFfM9gT>{_TblA58j%B zd%sSAfsp?bC;yEYwJM_l{4`zxaz`;Z=(gV=-Z-K7YVe#a;M1|k(ns>;El?OfPaoF> zY8z2@&|I{7r~Ah}5}^vK@vVa#MHewj!1jRYu0e|mgw->gVDYb*e&nEr9pM^D4$HEe zXWAyP?Jc}yuuoZtJWuM%W}b2em(7fq`5n216O$KaCOCI&*FyiWvA(cgSI|*eGfV{x z30d5&l&ktbtTSp@LO01NG~vW3a!_(K)}uq@8ILDRs^Gxy`Pxc7jaMx-DZ)1T@x$cm z=FBRg^+1pFzu_z7#1)!2xmzVP$(ko+phOi8KITc{SB}P?n{&`rA^W7IL9>63GkjDo ze*}>ZmP;i3;HHsTyH=sz7YbI`57!D&XCiT3+>M)XAwF-<$qm&FJ@jB?A;=ojNnm3M zoujoMXST@4zCJi;xutVe=HYato8glKM-k6$|uK5$q>w+W}75jp;k>yXy~9)>H=j9(Ck|BlZz1 zhThGtF@xTe5p2NgaQb(jt;78a|4ypMTpSFU3c8?vRCS88?`%>5SI}UM~ z^Rzd5G8=>7Dn>=;MUW;%&Hba7$r-=@tW%nCwjP zU@wC?b-FDuSLvTYK>H1U`@@x<%C_rG8dhqXhcI-w;$#J@llC3M4<$E*P&UmV6ppZ?JF@NKla(D08FTK*^QCIU?(C*TJQc$!JLaN93-0YjYMeMkI_~FYSqpOEP zfck=#GQ4HV)I#xY?$uSuVjO~#oDlJ1s?u^Jezc4LxeRZ}q>+R!UtWl3?Dk;ac@U~^ zAw<{-TQz6BS*I)><)#D@vmk}_x-K(cPJpjZjMcLsBpqc{F^yFF-Kuc2G=c7D`VwJ# zi84(Ot3g9_xBWdJz=f_W=j!Ci)$bwSg0kD;UKZ{-j=+YkS9hc}B|yD=%Whc~qGIx(pY*-p9M8pJ&5p$y<~!vZ3a4F^6|OMDMtdl%ZH?_y z+&|*J;$jE)n?z^4?6P%OFV{gktD$R#DfZ&lU{8(hQ4^|RV0xKS-=Emu*OUJvTNEBS3)`BWD#O4RbpwJagbLEh;I@c00Dv{Wk{$8+@TsrsjAosG zVvV+gJm@1*_z#TbaalA{aftQ_uj-A4p|sRxku;(sHw~ZwCA7;(C3uWREzH^|6cv#W z^F`hVb*#+1*wjmz2kP)O;NYxYC)Kok{MJE=Vvjl-=e&Fv(GXUOD}7dym+j=;uhX~gjgHxivT$y0kWRaBM> z9yT1QN<@+}Ox;b)7hk0Sh$4(Xp0V8CpKBxlCnK{)OynU7QfWg?q| z4|orF)5y}%0KCvKo4yDOVWHGzCMQt)DrhMp9%dDcxG!AQAja}`TU4r{NHQC&Zu;8Z zit#DV(EUVqk814zX+uXeJ35^3RTkvM1(4>UG7={da>AcXB=YJ5d(fmjWW?HV6vN+9 zuizEMF*g&8GkVH0SXw!#p|8UR;iUdFm+aftNcHPOhwpwRBfv9j7NEFxFjuv6z-okv z?Ns>Hm`cD;fXQ5kNbX&|Yd=h^ZlDu3{u+@TT9iJGAZ9Tfq6%2ki4cN|5YF|+d;jgU zrlgS?L|o$5cXn03o|zXv97U&GQW(bxTA z*WLaDFjw(VW-^7Gnz-)+5=4@Qbinn(G#O9lyHG(rnUb);7VG+ z4TLd`-AS9xz8A?KpKa*EQs9q?-E^>)3m>G&2C{$0iRza9m6U4+5N@vG#rOAq#jqQ> z>^Tu}Je}Fn4v*)fQFS!Zo(~t@;_7;BV`(l{v*AE4QVvrUAB4e6VG?{b-wLd|rLs{R zAIf?hTtUSQ%sX~x94+=4t-Kgm3eoJ)5`b&Mmx@nOCu?O!olZtHTH*}>M>SkoJOZ5w z1))VR2ZzI$MXb5>Y~^GpT9sKoF6QyYZiWsu_Kzo;pC|O-<;ALLjxiV#oB*zYhFFUl z8X(-Ea)-JHOh|mBXk%sd>1?wZ`DSI(SIKjW_wT7Mb$gk9} z8eE^8hhdQGCx@i;XfFU|q6*u63c^bEYP+Cnzx5MCaC=l$(uMmOc_j8u)r>)WG-PD0 z%fx>5xtRh`A<-o0XNsaZyj=@7!jU9b+?|Dj%TtPJ>}=y0crBG?cwp42AfRUUi- z=+`arhGT7G80e;mesuLAlN@l*VDTFOx+@Vs4cy#O#{SV}L4O!<$Ll_Z@IPa<$yd9-`|v@vtH;IaKvBmRLzvA84%U2UKwnx#t%Hj`!vr^8ak>HlL>;7Lm)Z z5TrHV1gIyiG6yO;v7zv-kb$1QUX+GzQ~aUD?=~T+d)K3Kd3+|dSBYJfU64PnLWH51 z<0o)qTWkA$W95U;Oo2tFD%gOM&m?t!U#n$az?qrah;?Kp4>Ky;<4@fRbY>EZVHY?L z&O2@b=!l0Jg`@R8=)RtMxg(y%)TuA&1(CkcFo6-@FqVD2meTYtYNRiEelSJ#M*!)h z!#o)yC7O2@hV0zgAuv$&Jo5nFYMzjxgPUZ=}-N>>e3 zx3o-;|Dfc)Im@V2wgU(EtM$BtsS){iSt>|I$Rsl>5Xrl7C1%L6def$Iq-}cQZGoUN4SrI*?3yUPt691oaNhJFJmACQ#^l4^>Am-lr36``pj|i?HMX=D#jy7t(K%C&#Lyt?`_nP!VGnyqd zW1Qi~r4%YqOS`;&{p>F|&2(h?@H$|25pm^5V8eS3avh9Dn^U279aZ7Oq2PO zj0S}%Ei&KQxyG9)Gv`-uTfIxkIDA1AALL*pIivpzT4}BqjB5OLczL^B&q8VE%mYnC zO1k@+K^1IROsf3{4jZ~QXrb1qnq%&5?YIm!+Ei^GLe!po zA(0w;T-FKZJ8Yil)7^e`z0TycVEAdH+YbOoHR)`+W5jFS>h8ne_T{Ax8re30joa{; z(^G0cQbkTCZH1-YLX$ONxGuqT=6StlniQL@$15;;%gYan+V8cJee5Tn9Ssb2m}TC$ z7;yJ_NjNf)L)tHL?3t*O*^OEc8t4lW$uf$x4|ZO8j%Ysy()Vor<&)cV{#pAXdtG8m z#%QcxB614qZxjzlUR6}$-Q@gA^0`e8@MzMX01be+C`(;@}9pG zFw${H>E1^gdGb#EDHQlyl?tq6$8Ixm@LG4idvKw1kNdh?4a82UaZ(jUPG{!5gAhp^ zyD{$qty{eEZ2(J-+P#m?*D73>2Ts%%-=;xtwRGf};LOiLQQ&;-tJHhobI`u~*-cKs zt^4Hz8SvCsmLBK1tfqjxN%a}^c-5hGq3_e|Ow3MOpmcHft`Oe>aI|4EQQRWai{9?K zw;ajE0+da23c#$!eM=Ca(A)k>SaD~Y;@EA7v|7hTmH-Ov61UkX7w+2S=d{} z#OqlALi{_Z8Dg$tCG(LV1qem+>MQSe=~=K=GUru>05o)HwSi+Lf)9{84G0IKZ7A0j z>5)8)Lzn4~1YnMa{xZb45@=mJXrf$UyzK1oVWiWkPo&`q&C<;@?P{y#xAmFDvL$@tHiqR^6U^EgFTqFftmrwk3&Q zLfA9j?>utY&Al|*7o5=*2eE%^WV$szCHO6t8*F#M^dO2g#4<1d_&z<4eB1m`zJ`e) z+nyk!c6|o2xP1-hvsHXLu{G#Y3gH%VE{w462OUvpKDY$20m&i<3~!aKbQ9;2tB$a;~U|JS>1OxI#WO;D9^IX8bNrv z2uf-@8mYMocwc?{vH3mTrq@LU(@b0`13M#B&?F0{w(*^oCawc?@SZH%2nbys%!wG5DzEy-t!yD-6nID zAInASeh%a#UH^=*o{%#MP@RrIuz&lh;zqqKv+4ERy5#?iBiC7-fnEVFt$E>Zb#GgJ z-KCiPY`pj3yZ6WgHd>r1W~R+61C?Bx!$GTOo<el(>=&nPAk2n1xKWwUz`aoVMhTjAckL*f=d0 zwWEC#ZSck`abU31Y0YeQTO%5pJm^M)l*OadZ?91F^bR`78R>G9vQ>Zq)ew9>y$L8V zXz~*YzOEJ2FtX^-6-1JHEJJ2*T?9pyDZj0FP=?On-D+^^EQ@ zLC0RKTwIrUa9!9j8HFfiKMFl`&UHQ&38Xk6upbz$rNGGRuasHh(!mgVEaGTAmjmhY zrh;HnN3MC}*N^8M!b#eUsg7fP=VZq-+^2eGMIXa!aB!A_`P73**UWe$Yr<91%!9Fv9JsD8Phn1m6#Z<3*?Qh&WDPaXN0J*-|`h-K<$;dQNV^_X=Zgx%P{VwZAd)S{ke=`cIj(F|uGCh@?J zdMj-GG#W(fg$h6$WG?twxXYUwqo%V~&>uDak0qNKntPP-7Q$d^xOnQ*#NIJ9lI(nI znr7pK>!hoa|9k68ESG5WGex8PagI|gsV`daA6TA+@WFFukh%A4ZmzNVgaz)}mCZxSegk+BGd993Mt3Q`j9=ri~zM_mEn{0RS1aWyHPyWD~I%T;1_XHmORWtmdJq2R#p# z{zLm4uo#cY;=xW;rdy2mlrJEy6u=ilr`djoYr)9EZab>K zjD_65r7!Mhy_p{qM%MUE?;TReP`0Ga4JBiP5{!e!T2q4$t;2DY$h&KkU=)X;g5 z61&l@3^1m>= zAwk(GHFvK6sygGu*sy`Mn!{G;auVj?OcU9qc{tsLOquYu`+>~MPgJvqyJzRzr0_wI zK5|YTY&~a1gqRX)QynJxDAFrrMqzs!kY@KbDrxzJQp&J z_muD`J59*30~cR13LbE>t5UpgE#6A2XecSv&vn~Wej^7}ADO~V$wGnR;YB^Xy1*qy zZf>lCa@~^RO5#>w;RpV1WUTHaNi%r>?ZmlfuYKbZ9G;ny;&YmaJ_8`0Q=ke+W?ru5m-#qTA! z4{C_2mfbv2m9N()h7H+E{4_%ktq_SFXD?RJR)u_HZqFkm0Q5^K%%jli#PcyfJFZ=~ zZVW%qW|CdnSjJII5PEO2-IT*d$PDdZz*dWqRmJ8{F&v6{i{u^+pTqZuu>(JLcsE9V z4%GKBHB}C|s>qG|EPIA=(q2^gTs)4k6*A$kzXywoMURu-J6XZlhrKPVJdLUpr5%4qFZW#nEvk$P>(~eOsHiIG-;1#HUX$cT z`LWG6QUzk+1Egpcn<4_N+Sg_^&!|eK;$~~0%$#?iUhkyLEPh}`l1Mxne?=jdA^ISeZ8dQ719@yuWDN?aPi11bCo;w3ShN4>EXFKAM;OX`= zsB2ydXrFfG|BQia|FxjyJetNaY$O!#7?;wxW>6~f*5PBm4 zlyd#!g~!$r2GannI`%|7@=bQx z#J9cVV1Kj9BskG*6L7#Extk?i#LGn)lYsoTDGhsB0ZH4L4vXp+fyq4nlqWzY0vd{9 zgL7Ew`)4UPA}D?-b4%V!AY(u1Ae$k9QJ53&>iN7KF0rYq?+xOYBt1&}jWV z;+R3kp%K#2>{dXWM`g~jB{;^wkn@htB6SCC$Z0S7lk&_8?-d^hC(^+2D8fQ~! zZ9()T1ES}6F5L#2cOSy(C6cx-@+2x^a?G?X!%$Z3-xbms~%E(D$jkyiCn8jrmbLWnluUYxl zNoP}6j*we%K)tRKhpvk}Xz;`$=pzR$E#?U_-n{v3?X-h9wh$r0*x%UPKr>yw3vf}1 zfh21Gp!ftCU>W?i^(R1F8JrP|_Cky$#6>t2}PfZCqnZ-PY zn8gEyIA7MQckKDyZ&A*^1LD}DSe?_j9_EBL&bvu<@UfC5x-grfP&>}MFt5Wc`X$s5 zZPBs^@MA7ugiRt+VaGGStiOmCf+j+*ZSQwt^8-kQkXh>kd?xNBZ(CHpbshZ|rk4aWNQT$m}-IdNUYSHk}!F^I@cKKsg3sHI!7mCe3 zs;Xi#MOtj}xkGk%bmBHnAce`vc#YjHxO!5_GFZI4EXTx58VhS$THi%vEdZUR-Afq2 z4n(u^69#+nF_D)K)*_^KiJ>YD2x_hfghEmn8qKM#8Hovx=-N4*Y03DX}rbA%ddthac@>9feS?166t>m%`a;$BNJ&mes z<;$HniN&4T-3aRes-Tou)zvZfLPwe@nY@CZ1wOd`@>n~VF-{Hx6W$103;%LwNklCz z>I>?p(31lxPsyAC^Cr{{C)2>r&T>Oyxn#XGAXZ?-2ve0Kj$;X4ci!2#_hY8_0LSd6 z9;C38)26f>@Wmc$oo6qa-SCMg&KMQB7k-whe)_MBx^WvH!i=5R;i&p{6gaPGt_ zu0qRHLE74=YQV)NA||o|5$LlG(!Snz@;A&{MJan0q|xbq$87rCnjSPj*(0 zyA*j#1G2aL6$6)}rON{vwVE8H$vM;AoBcq^2(2=_xUo)B|4y7(Z!)a+`pSd2PBPUqnpk00MP{{6a^ zB@O#nOtD3azVE`wKY18ozr{bT@{alhH#N>P+NDOGdILR?Op2-T3UfBhlJ2v0`b zAMX!p%J&=>K~FN)g~Urn*f(guV61Y^Hlk-fS@EofWONR26nWJDtySfJgCc+KQ^5cF z*BByi0k?_3f!>~ep};f5)O{kPn57CfyoMKOdaEg3l-zhMGoVtKDA`NwxePIN7W{EN z_x})USijXEQ$4JrH zoy$Uw!mQE>4mxjpX`ayz{gMbfNT28A5Kj$lan=s^ZC^)491F0&x%lGeiTpwYG>F_B ziVYc^H&c?HbM($61I^+2asLMvFN?xNC0^_t-Nb~HYK)XRnuwAtVdk^J&uEd(D=v7J z%lg_q;{`{*>8xdtx3sR;o=l4w;Ja)_1W4&Fk`EEpftS^|m6uL}Y-EYz;fJ#Gx)Mqs zI(<`kE?f@Mc`U3ssp!;n0l%CVUNU<#MtoG{SAX;eh(b>#JN8f^F1w4f%N(3x$^AZX3Fywn3g{ zn6JS)3u@{;IRRqKM-*l;0x^KfY8U=WCdbgb7xUe}0KccZA5QZ1ECf6@igg}L7cn>! zGP_qSh^bLwMCt50MCDQn(};5xVwVa5p+j(!-|56K9YLqnE-s^rqC^^n#ExRRauAR7 z^$NA>f;ZbOB~}2Qx?tZJE~~~}%ca~39Q}WGe6_bT6hsk3Vot%)z# z)C-UzX#oPJbK^zA8`-{%T! z=fPHJ|EciYkHh>Qr-leh(2IA&9kx*Ne;6f)qvl@R8~Fa;CGb-Z0_5la`oh-T^1dF# zru{p7#5q%c*Sa{9_YV&Kzd!#g1DBELsRKWggYln174t{$Y47NV7wlCJzE4h0_Tx}n zoHVYUx~ ztf$R3B&hs-ZAl3-0|NsX3=UN+x$2~QJo$BV158a#B_JSZsKUm=3Ur;Yvw-qB0kqz# zRm@v?dJ+*66Jys^R`wmuSEOWT$38s;j@k&~;NvrKalIW+@9*!QS%K#Sp&rkNo`q87Y+ke>IXkpqGmsxBpK0ZF8P;r$2l@H6c zudh#=zjR9xF`1X&Us6mg_VV(Q^hEnk*VL5zY<}6dae5u)_rt@7$|1D`q^j_yCP5Ap zH4P0VTU(a3wY8bmRSsK~bQUfC(sOY~kY+n!UJ^=GbTq~{XTDSpLoG9)uy9dvG1A`N zUh2_P#R&waB{>oJ`8ceO{=!yIPfwecXdy6&E#R3oS=al1yY|vh;<8WRhsPF%Ic~hP z)!Q#9mCeHA`_L#b7$s^)r|j%P;z7VC7f0SvO;XqYUtPfj707GL%VS1CK_(uFrgf0x zs}@(HATw6rM)?&plA(r1QVVbE2BxBy%xnbc@#fa-^u4c^R*Eh^~x4zEve^3Ogbk_0#ijO6~Uc|8MCN}c^{d<-f9j4H)UPa~4 znmgfj3fVQ=CjqPW?P}>}>T=k10nZ5MZ@h5mhs!{gt6mQ%!N1nTU#IC{G-IrF6YGGW z(7uBs(FfJnJzZ$)J82DZ+|bfm;`ZM66e2yhQX4VxBT6wxD_07D;HDFAnzv&ghb=FE zum9b`MJ&C$^EujPB$)Mt0oZ26i>DNE_SARyn+;6)@{Cjs#-JytZazt#Q%>U(aJxObR9zV`oeGT1K5v8Qs!VmkX z6_=aar4<;5^b(b=#!AGgl-QCQ}&wLx+^f!cYl(yvO0Y@UIJgg zlvi&&9{N3c7_pKUiYRk|sl9PKEES^jStpadyC&zdb50asl@v%Rpf;V=)c~dR?U!{K&b896^oj zF85cz*Y2E)o#G*0!EN7ZF}T==%r1hN5u-C^e@hi>ZW{#L?eHlm-jF*SJ@_~Y^(e4X z;Vbq%?K z4>(8>F{#`yAO{xP6+(}EH21lQj;f&KPZ1_73MCSe8uwM8dPA`Q1`G^6l{Bjb4$BC! zROWmd&Vh<2Wds-pp8mS`50%G7c0|xLn|-#{4bip8-)hUI03EoAwd+)$c&wkGYkmLD z$HT<`{O1;+>gDj4|qG{SHfuNH$OeV zxQgk%UOU;67l6hl{qf=d&T}!j;w2GO3AcmjCFEztX@8v3I490G*;&#;2Vi{~R4FQ@ z;y*==*j32mK2Yk!VF8TS3z~(izQ8dEKoOy27-f+(L1=atSye!*b;$4Cd|r*pZoUiw$4a(g}h?;$r#eb zycn``PSe-rXo1x&3$3PI6)ttEY9j@2x^N51_AK2%>FEp!9D3NF>w5hLkYbtuu&h8^ z(1uVe1&Dlk0ak8FMoi4KPOaFNa16;H1haD$^NKlgYlfDH74b4;M;siDGtF9LrzkxZ zeFYV0HIy6;wOFiW-oMBnuD%v%WpdayE$FE%W1{k6;oM}p>X$2`1gS4)@(CpK{s0#J zJT}-E-juwe`D=aP^suvEu5ehhKkOgKCF09b_^}@B(r3~00FT1(+3aDgt{a1c{r1H5 z0`7~)>2>UL*<%ohbD|?{YnWZlJZkn`ymw z_eA`8h?)!pm)w`JqaF;m`4tp1-Td1ZY3j0(oMOo8{!M2fRE0WY%6qZBQF8^%6AM9E z)RRiCyryQQKsTA{DjNFoJih*FWRATm$dmyeZN3>7b@YT6^UQU%sA{qqKniZ7t`o!HK|u3oL=ey zh$qkb@WdN(4PPcc2V;8+eaOl1s~?btb(HG^^HkG|=2S(gG#ClAhUK@eBp?tfR1_|( zu$$~Kngk}TeYsotzNEG?OOSL)<DQOs}30GSVGWjYHq?eJW%1i1Dj1@yF z-|k` z*qYBn&3wuti^koNoKK6J7=T#?g}x+MAUnH1FR$RsLJK>94yj!hDPy8A9($JPiy%fF zhrza?kS)rB!d0&Y1tm&S#2CAM!WpP5G`O3Z`1IE=_@$^AU`vxJEI(2M5t8A@Dx$fh zvP`*%8q^jT04KWL+0lypCJ>DMSArYM-~+^7*a9AZkUZJZ$@Jp8@zp@q2M2ni+bOBu zfz77`1fnU7;w=y)A&kx*WRb*?Jln0Xz@xM-NrF-N7{$sl!!7E_uDPz+P;x8Tmt?$| zUs10^tAm|)9NEM^4TCTIj?#=e1cf0yGRvf9IzYM9I!Z@fO#`lkfjZ%$j}WgbRm!Qh zX^kC?_VZzUaQ3|*0*}agru+_Q)6vIPcawB^>6?H90a5#Py;Y62j1yG^4@FK>-_A!is(ds8U23(5*sPd7sLs!P|G2{{Gg7r%d z3a)2Q6|-BU-Hog1UOpkuTD&*GPohtk>q(dE!;z!}#_l>yJ-;4&0w2Gk&jlRsKQ=Rs zls#s#>eh|1XNFUPa7y3Wje{k2lz?%GFbMP;^f7Um<1m@b;x zMC0A6U7g#+eNo}uFg=aJ%<1G$l4f5VR(}hv;YcfsVFo&Rx8AZ>mrUv zl3aa6k4pL(P~6vMof`fjL;>`XOPmO|^CI@-44qAV`yc7|U0~b8kBVOZ0fZPk%UM+b zEcDwDusJ%P;Hxz3p_9*T^OGCz-$L0VpOPtOv-Q!^ht91ZON7*e6qyB9x*^I z_!oUXcfWH&<+lo5wP3EiyZO9WRPg1@%uja&zPDVgic%N9<-BSp-~77S^N;W^GYjsf z6VxJfwjC?(GB0!EYeCO%-k!|t#9q-rnt%2OP8j1{kz*PKM(x=mx{qn{}eX$+eP`y`3ljX+;-~=I{r>TPTSVF!RD~VnLlki-D~b=YV2&Wb0>?xr*IG% zmM%~{8usDa2r#1$F1kAu?s3`5?@_~a>_UtW@Wo%_POjD|j0{zYO0HO}sF7_gUtKjD zP2D?CN+zv)EOA$Z}LXt)}M`) zP)j#bO-X9#jdKWPNSn7v&;88&!|cHK(hvi>Tnk3Y!bOXJh?}c{M#wRESx8i^`IxK+ zPREXgK{F8w|J61`5J!Mv|9I?9}sOtGoL3Bv_NIluU8&8{Z= z9pgB%NSj_Iv#&Kz?5Tmsmxou3;gGEG4g%xi?)FZ^S2Blh#tLA5S$)tavd z^Kt>9Fdxxkd7v}9P9~PNrzdX8yq+%r(8y;okEzt$1@^@Bp7jV1o%(B+^MAUt;B$k6 z2KXs>8u(0Hn<=asE`e6B0))j+Uu6xoO4*y_7N0d_TLP!+I`UUe>nAcrlFPrR5ac8z zVhZn<+WJr|U;#;NN?LS!8}ipnqnrcfVZYtF>2xT_d!xGN^pQzac%1LNH{M&%T6qT2 za8@Txf3yCwi1bMob4QGd5-*3;xD3gEXYY12y?#+0{U%Lvbb|A1p|wX$ zK>ftufz>L7glGkh0VZhnl5B0xaG^1f(M}jj|Ea!)Eu4nZ`uAkh-f^YXt{LmqsUUJH zGTA(d7!_5i_%k&XX9|%Inti{vCP#O@jH?Pa64U&8L0V4fBXf36PFF?>S4tjH0(8N8 zVKIQux6}Lb+E4bp>^j#0P3~-CZw@=*;C&j-A`1)Dp}@3})@Xh6v^CFN8LdBDE=Bje zb@FV9f%a5r0BqLQRpdfp*T|RVNM!35L6Ke%WZdDcm~fn{+JfsC7~JFG9O>MFuC}qa zxDW~1F!yTZd9zHuUeXeCIvTq%4kTH)8?bzTF%69Ee=yX==Xtf8v4%8cNS_^aI{%%= zCHyT?nO(!wfxpzc7)IK1+optgVGgBII(r=Q?ln!9o??9tfq-D*aGPMDu@FvP7rjy{ z@s+U?+aEi!_JW$2k?A?(BGV=f9&5(%#*&@uX!}gc_-M)_f798O#~r@%#x_2x3t;_*cfU`4tkAVnIRq? zh}zcu9%9^M&-td2QZpnRuK# zxX(&4An6T?v@nV*Ig4e6lHtf6ausN zM>ATVVjfP7y}bF(-D2LpBc##`#jM|<;f|KIl>K~hn;Bq9L{{(8>*v#Nsa;%HfzH6g z(jm%CB`}{qZ8v+4m}*6qme&2y!B1HaOpvaoANjfF`Ge4d>K{!`c!hkoq~2l})~C_n z3hK*w9ms=OqM_mh%X0DTc0tn5HG(uMXML7&q4`;{&bxOZ!%j_QO1R32af*iS1pU_5 zzK93RB1fc*Iwikz)lYz#KdZJHR)^PHNLPTV+|V z`2eE)b7oPY{=Ox#bd|PqRx^Na4hrIR8e=lCs)_qY4h#7A)=K(xvcu(?Mp=-7=lMC$ zF=X5h23FLuZDYf$yx^?~Vh~I~*H)4H=~u%d4Fy#MEN1BJaNAG_l&uTqnvmNmqc0)qg3d#T3Ml?HydS-EKbJ+L5&a_8hIIQMwN;W@ot?C zPeL5xI3Zrg3!<+HG;CP6Hq&Bf-g!%6ZdQHTS$_)5WgqPev3bSwoPR|3BQ1GY8V1b> zO;21CMoz>k!*oI(d%Xfs4@H~&)`>nr33_{qsQuo7P+Ns8Jl579r)+gXh*|hX5u0XT zE4_4&N$9raOAT$-xtpwyl@L(TK=eBgS_`SIKca)__(!5`YeG7r_-N=*jc~6X7b1sv z35A@B0l_b{)B(qgrnaRn=Eh(~Z9y&pTmHB|B^e)hue0|wD_i;N$>jMAzS~*NRF*Z- zkK!vC%5o@H;;9lt$EM_upor=txrRzlKC{JlK$7$XKkd%pVR?X9EzP@~Am}I$xlsnH zf2*s*@|~A(v0T%T{mtJe2ubd2#8ozqLEbQ?G%6aC;D%oB?n4#`g)LpCY)46n=Yv8d z5PtwfeMizR!>V@fVg1c6axIOaj2B&7%zSKA=|eEmhU<*<0VNkRz?P)=+g5>X5G67P z;c9Eb;oTxRPbcA#09>zYLvPfRXS2 zHj2N+FJWNPOmD>^BLq0bHEU|VK`9A%iYzC;*R^BlO&`ue9bNPfsr{ z?X&nn1>2=vhoRiv975}wWWkv9N#64)6ij4DwO2Qc#ZB@rY%d>rdOsFJplyIaZ|97PCPK=Y~hpu_yfjU8SgQ$<&hz=QM$cb&Y zg+VRU;`6^Wt4@^+UGUD;d1d+^fHlP%bsDPu*sb1kFgJtrt;k(x@?>!DyxIqLPD~5c z!!quZj8Yo3IfYh~Qp3U0^0*AWx*Pl-`eL*KDNcwEcqLOTqcxNfi|2p;G2oQ4+~qIu zFB?RMb{JF0caA9?EBMSKm5F!oAypy|Agh7mVr31%2y@@#DXKK&oSg-mf)=%mgh*W7 zU+>o(aw#iL6(Z`F(CDo?u+um8I}{8^D^Ovb{MpJTs!{Mu$N1_^H90+HS=vlD#k5^q zI)A~ymgOJvCX__YIhL0|qzH$20R!M` zV5Hka2(phDe{H@r)_TB#9z=ZLU53}{)OR3=12n?Jk@A7Rf_7;B+yhWx=JPvFI=etY zM~BRZq}A$UXu4LS`I~Ny3qdq(&T(|bqMXkuf3c5Ll8OPrxPU3u;#X{nrtUvSPu?5g zAv?r$LrUGoWTYL*Pv6_cFW4})_n-@%A6*kA$EIm501@-_ack{xY&`^^nqotL9K99~ z7~#;O9nacoSD=a)DI1`t!w5ynz_RI%6u|KXkLrwsDlV0P$_ov0wV2g*$0*K#TdVWl zU1g*dgSoon16PyajD%Q1QLL`bE2tI4nSz})4X3|iSwI$eGj`331gNfDFH(#N;%Hrv zbR0a*Me=q97?F~Kl-Y+%LvI?XKRt*OoAsKT~63p1p| z=>cj*>|%6#p1x>YX74GXG+JNJZ#8x)KvJjga2y;PNPU%Z``U>d72av4S58G&wGrjA zgN8y_>rqSnwCc&AQ_V9($xTlD&ezjMiJ1b)bDF|psLik4#U4J9kq-z0l*!1EZj11} zV@{zR#EyRG+KdAPWMoO@4%H`bc>U}D;kKca-mniUjsUos$@Gr>vb^O+)xOD(tZa)~ z7c>_#@L;j<2p)Co%!hR(bK}6?6tt@r)$tR~`gOlp$pDXR32v}&fSv2fQ{^m?Jk!1-9Mnn9LRq|XG;-NLk zmV*X9CDI5@4dymRi4*s|4s~{w@Y^88qi!m-2tRgW+m&ojsy?kN=;?xGRSA{RUbl8; zo{mkbK1}hZ1o}-w-q5*`T5Q8dRxd4V>m!xJ>CYb!=B-!yanMUuoVgHDVbzjmX1Xhu z?d+1%iROg)*sF8LUENz*k(1V^99K-xRkV&MztaL^n*?GA8BLOgxJsj>Alc6*(G_kn zl+4nfpZdL?fUO9(Xv8hW=A`2urxRrkn-l*&brF}Wdv`F@5;4KGc`znOAX*h9YwRyJ z7X*)UL^u&@vt;RMO@qvXI?7o!aCoylW%YibSom`)r2iUC6|C0a0)5o`HoZYf)Lk$? zHk(Zwb$aZ2xUZ_oWt)|oJGcTy_e`CeQA}>i5irk*xC~=(pnm+p4UAQ8G#77r$4E#> z7`Aok)e>_C{;pi+`e_6|hRjTkvp-FRA521Cri?$7ZrEE-@)IfXmdOrhiKL{?S9Sbj zIVTZ8-sa9)#R$)DMrpFQh;zj{MU7Sd$Wlb(k#{zHfK{HEs$KA;inODTFq(HayQ->! zl?(CkZF9qMIt9IxJe?WSD$8Ns0{5h@ceIP1pvLdpI5aa9Yc9#1H@pBA(l#sSAJy^Q zW;qQQrJ}gmu}#VA@DOl;BzrMGN1@>1^cx#QYOnM6_MSEP!b3*v4#c+|REIq>Z80Zh z7N&eG$ig20ukiDVf23UtHhifI_=$yGA3K!~FTjYObG%dj8bOM0Z163M?Rh3Eym73YkoDON}qiU09X-;~=&N{e;urMh>!AGXku%0eFoObTjUNI>> zy$>4VPlv-Bqa`Y@#ihcx%JpY69Evl#a+@qaiVWN88mg9qxZkeN^sbe-^ZJ?;($LE* znb2x0kQvU{6CKpkF}aYkv-2o)j-p8#?fr`aurw&o9b^PRg@ zlvZ)1!iwAoA2BAMX+^pDJDA@5WOYbEXm*n$NNTI6H#&&-4naA0`P@GxbYVW`=Mfx{ zEVcMH0^e^_C86lLd@YK=pkcfE0Xo3!CfuCxA2deq|BuFa zgr~7&`fdFA1+#Jb*0ul+TU98ps1OhkfXvQn#U~^vhbSqU{@Zm0gF)9@TU%l1XlO6^ zjVbd65vFL$LHzCLD6XBIojK=;%1RC}kcxxS7?HVT79&rc4W2Z*NE4JXu{Wpqw%iYk zxaB_$@Amd40f}%tK@5jVnYK#sf}=1FS~$>DUg#79^ePAUU-+SXIwSkhtv{x!Jnvd4 zf&z7#gOUw?!+*PV#pjZ^WJn~?h~_e`)!)Xs9rtq;g?FiuAwPI69rNlYbPSozP5K2} zlGFWzPM;f{&?DkOHkV=J1MEcN9-u5;ECNq!k|DoqjK|`}?>F!txQcU9x9Cr+D3SPR zK6s(eu4Hfv!b>Ht+3^j{>(DW3^%tJ)>h17_Byg@G30b7*DExevSI>N&@cnnNRW>ZI zBhy3*|I6S?4zUe>beGlcy52z^?MsI}g}anG|1+74@aQgMpI!IYm;aEvFFPf=*Te)6 P;6G&rb@@73%dr0e@UgSW literal 0 HcmV?d00001 diff --git "a/demo/5\351\242\204\347\272\246\350\247\204\345\210\231.png" "b/demo/5\351\242\204\347\272\246\350\247\204\345\210\231.png" new file mode 100644 index 0000000000000000000000000000000000000000..ab72bb711009c09d1e48fcb592e040824b0c730a GIT binary patch literal 149317 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�+uw>FaD-bEuqwxe*=Xdrd$?46I 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

+M$mUHIb} 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