From 4fa658db18aadb31c088018c5f67c99c3a984070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=80=AA?= <690927457@qq.com> Date: Wed, 11 Oct 2023 22:20:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .hbuilderx/launch.json | 16 + App.vue | 1 + api/index.js | 4 +- api/request.js | 8 +- config/index.js | 6 +- manifest.json | 2 +- pages/index/index.vue | 104 +- pages/user/index.vue | 59 +- static/done.png | Bin 0 -> 74915 bytes static/undone.png | Bin 0 -> 72916 bytes uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 +++ .../components/uni-icons/uni-icons.vue | 96 + .../components/uni-icons/uniicons.css | 663 ++ .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes uni_modules/uni-icons/package.json | 86 + uni_modules/uni-icons/readme.md | 8 + unpackage/dist/dev/mp-weixin/api/index.js | 463 + unpackage/dist/dev/mp-weixin/api/request.js | 194 + unpackage/dist/dev/mp-weixin/app.js | 29 + unpackage/dist/dev/mp-weixin/app.json | 40 + unpackage/dist/dev/mp-weixin/app.wxss | 698 ++ unpackage/dist/dev/mp-weixin/common/vendor.js | 7477 +++++++++++++++++ .../dist/dev/mp-weixin/components/mySwiper.js | 39 + .../dev/mp-weixin/components/mySwiper.json | 4 + .../dev/mp-weixin/components/mySwiper.wxml | 1 + .../dev/mp-weixin/components/mySwiper.wxss | 39 + unpackage/dist/dev/mp-weixin/config/index.js | 17 + .../dist/dev/mp-weixin/pages/index/index.js | 88 + .../dist/dev/mp-weixin/pages/index/index.json | 8 + .../dist/dev/mp-weixin/pages/index/index.wxml | 1 + .../dist/dev/mp-weixin/pages/index/index.wxss | 110 + .../dist/dev/mp-weixin/pages/user/index.js | 48 + .../dist/dev/mp-weixin/pages/user/index.json | 4 + .../dist/dev/mp-weixin/pages/user/index.wxml | 1 + .../dist/dev/mp-weixin/pages/user/index.wxss | 0 .../dev/mp-weixin/pages/wikipedia/index.js | 8 + .../dev/mp-weixin/pages/wikipedia/index.json | 4 + .../dev/mp-weixin/pages/wikipedia/index.wxml | 0 .../dev/mp-weixin/pages/wikipedia/index.wxss | 0 .../dist/dev/mp-weixin/project.config.json | 29 + .../dev/mp-weixin/project.private.config.json | 7 + unpackage/dist/dev/mp-weixin/static/done.png | Bin 0 -> 74915 bytes unpackage/dist/dev/mp-weixin/static/logo.png | Bin 0 -> 4023 bytes .../dist/dev/mp-weixin/static/tabs/cart.png | Bin 0 -> 4022 bytes .../dist/dev/mp-weixin/static/tabs/cart2.png | Bin 0 -> 2887 bytes .../dist/dev/mp-weixin/static/tabs/home.png | Bin 0 -> 3831 bytes .../dist/dev/mp-weixin/static/tabs/home2.png | Bin 0 -> 1376 bytes .../dist/dev/mp-weixin/static/tabs/order.png | Bin 0 -> 968 bytes .../dist/dev/mp-weixin/static/tabs/order2.png | Bin 0 -> 1185 bytes .../dist/dev/mp-weixin/static/tabs/share.png | Bin 0 -> 1449 bytes .../dist/dev/mp-weixin/static/tabs/user.png | Bin 0 -> 3805 bytes .../dist/dev/mp-weixin/static/tabs/user2.png | Bin 0 -> 2301 bytes .../dist/dev/mp-weixin/static/undone.png | Bin 0 -> 72916 bytes unpackage/dist/dev/mp-weixin/static/vip2.png | Bin 0 -> 128840 bytes unpackage/dist/dev/mp-weixin/store/index.js | 103 + .../uni-icons/components/uni-icons/icons.js | 1173 +++ .../components/uni-icons/uni-icons.js | 64 + .../components/uni-icons/uni-icons.json | 4 + .../components/uni-icons/uni-icons.wxml | 1 + .../components/uni-icons/uni-icons.wxss | 532 ++ .../components/uni-popup/uni-popup.js | 370 + .../components/uni-popup/uni-popup.json | 6 + .../components/uni-popup/uni-popup.wxml | 1 + .../components/uni-popup/uni-popup.wxss | 47 + .../uni-transition/createAnimation.js | 115 + .../uni-transition/uni-transition.js | 265 + .../uni-transition/uni-transition.json | 4 + .../uni-transition/uni-transition.wxml | 1 + .../uni-transition/uni-transition.wxss | 0 70 files changed, 14216 insertions(+), 23 deletions(-) create mode 100644 .hbuilderx/launch.json create mode 100644 static/done.png create mode 100644 static/undone.png create mode 100644 uni_modules/uni-icons/changelog.md create mode 100644 uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 uni_modules/uni-icons/package.json create mode 100644 uni_modules/uni-icons/readme.md create mode 100644 unpackage/dist/dev/mp-weixin/api/index.js create mode 100644 unpackage/dist/dev/mp-weixin/api/request.js create mode 100644 unpackage/dist/dev/mp-weixin/app.js create mode 100644 unpackage/dist/dev/mp-weixin/app.json create mode 100644 unpackage/dist/dev/mp-weixin/app.wxss create mode 100644 unpackage/dist/dev/mp-weixin/common/vendor.js create mode 100644 unpackage/dist/dev/mp-weixin/components/mySwiper.js create mode 100644 unpackage/dist/dev/mp-weixin/components/mySwiper.json create mode 100644 unpackage/dist/dev/mp-weixin/components/mySwiper.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/mySwiper.wxss create mode 100644 unpackage/dist/dev/mp-weixin/config/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/user/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/user/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/user/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/user/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/wikipedia/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/wikipedia/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/wikipedia/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/wikipedia/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/project.config.json create mode 100644 unpackage/dist/dev/mp-weixin/project.private.config.json create mode 100644 unpackage/dist/dev/mp-weixin/static/done.png create mode 100644 unpackage/dist/dev/mp-weixin/static/logo.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/cart.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/cart2.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/home.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/home2.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/order.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/order2.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/share.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/user.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/user2.png create mode 100644 unpackage/dist/dev/mp-weixin/static/undone.png create mode 100644 unpackage/dist/dev/mp-weixin/static/vip2.png create mode 100644 unpackage/dist/dev/mp-weixin/store/index.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxss diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..dd4ad0b --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue index b9168e8..b04c11b 100644 --- a/App.vue +++ b/App.vue @@ -1,4 +1,5 @@ - + \ No newline at end of file diff --git a/static/done.png b/static/done.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8747e5860ec57fd02e0d0bc865aad909ef1e64 GIT binary patch literal 74915 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

Vs1Rn<{;Ma|cQ!20L(SP0>y7?6>&@ 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 literal 0 HcmV?d00001 diff --git a/static/undone.png b/static/undone.png new file mode 100644 index 0000000000000000000000000000000000000000..cbec11bfaccbab4d73a3ad23f60eebee5c1882e6 GIT binary patch literal 72916 zcmeGE_gj<8_XY}w5Rj^Lq#6N1dT)Xdl`6dn(xo@0sYp*mk*0u3M?g?|6Hq`AqS8A` zRho1Z=`FOJNrLO^?JqzQT94)RKQnX-JPjp`FJ$%zwXsG z?*4IQWi0W|_{X8|0zotg2odam|AB8nQ!!MUH2?k-40=EcVJ3o-!I6;v`G=FN7qXhw z`YPgoKg5lphLryQ&7eq=MKpOSUX%8}Pgo(A#Q&L?>>eCJj1J>^#`Qm|;m1fpYDoWA zV4VD`2qY=;getG&l4mmWaz)@g#MqR z|JRKFr|5r0#s7KqzvAWppyOZg^MBCsf6#$XnExM=VKHxS$d!d zJZ(It^TF|;62Jm_DelY>(jJ-)wb0Shj%7|%EIx^`CxDHC-Mq|nCc*7JmMa_4AD_GK?EUt%0JfEHV@dmzwjrQMaia*|faC!N1=vneXtb eZrWmTY!MvdFBlzApSDB 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�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 literal 0 HcmV?d00001 diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..a87f68e --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..835f33bc9411461b8b9046b3fec742e921d6ce3a GIT binary patch literal 35760 zcmeFacbp?vl{Q?rN>WLsSXIigCAC7gI!S6tox^m`be^1}CwPJ>yxZ{uSzi{WC_=LI+*Wx!<-H!v})21fuKMZQ#fB2Fs zuEGwU_ZyDmuR3&e_s&PS@Be}0T=(JF$l;w=9Als0-iQ4lE^0cm^YDeWhnK#G<4!$@ z>-QZydhsP6Kl0Pv9Cw|EbP-?YO$@C;`+ zuKnR1zxV)MXnddfv56Dn_-W<%#_jZ^d%1f!hyI(6O8C!lXY}93nl=3f9^gzbYS03Jm0vJ;T)Z1IKntfUtypB#zx`e6wG3 zC5AhB&Me^QdH${3yL1otSUp#NN^cKN_yKnkm%XqxczWUgrT^Oo|6lL`SPy&+DZ_DX z1{?B^82rf|!cpSXHhg1*;kZecHy+MI*MqCu>g9T0eYieaf9edzAC9!tJL|pm0UQ~l zBQN;JaG!_sb8)VT%i=%By_I_#_ZIFh?(N(=xVtf?-^|^~y@`7RcMEqbcN=#*_eSmx z?)BVjxU0EqFm9T;Q`~9pTJAdTdhWH{>+qBtxEr~fxSP3Gb60T(xkKDx?g)33JH{R7 zPH-1465x0fg%5CGeb33>TxSiZCZa24wyO7(&Q z>$wfwMs5?gnVaOMxM^;NYvpFSIc_<(f-7(s&u0CxL#u8VbF$klItIryQ@x|5W z48lm`>dOtnnB(dz48rK+>MISxIOOW948n-y>Z=XH*yQSK48kbo>T3axcUVKK~8Y>od!W-aP?gVL3VKU-3CF5aP>U~L7s5+3k`x~;p%%0f{fwn z`wW7#;p+Phg52Ti2MmG);_4R}1X;w@scs-hC9Y0&13^AJNK#+l4o$3aH zH00`3HxT3^SEssxAR)Or)eQt$$+z7tkWDxWPSHIIBXb!IaW`m$ZxcXZRf;QpmZ#4*d zg{!~KAZQq_ewRVeHC+Ae20`m^^>-Kq{lnGoHVB%CtKVY~bP`v;*C1#ou700E&{JIf zeuJQ~xcWN{g6`t#?=lEljH|!fAm}r${tpI0vvKtY41$j1>hCcK+K#I~Xb|)sSAVZT z(12Y1eFi}na`pEc1g*%`|Ir}mN3Q+>gPp}tAE%avLosrF^GJG z`bQ0dZsqD9GYDFitAE@e=v%J-34@?{x%wv!f)3{DpE3yAn5#cz5cD!v|Fl8S&|Lj9 z20>SI_0JjvtVjlpxwFpV+N5QQ~$g{(D+>a3kE^= zbM-G81S^26f5{-&16=*f2Ej7m>R&MkHUd}wszKz<)E_qpb^}-cnn7g6)t@j3wggxI zxp1QBm2=klxXa|a&TVx+;Qp=WwVt{>D}O~9QXW)O>O0h5db_-@^8Ud$^pPT-1=NS-v_4k2r|_kM*0!vaW9xyNll~`AaKH zuPQxR4wv6t{%QC2?wh**v$DGKU?rS_5?F|crGafkiL7dNk-%Y_E4VmkSn6>Hb;SUukEx3l0# zej=BS$yT%Av8Uc*J`xpdRw>aQ5n{34Scli{%@0hjo|#!%t;CXMOO1~vM@By$$wu(0 z7+*JsbCF0c%-{dHFL+pQI~s3&zjaOf89{d%!`6o3fsCO(`6

PqiNa$~E4XJ#a8s%?nsx`&SiQ7Wz{CE9c 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 literal 0 HcmV?d00001 diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js new file mode 100644 index 0000000..4f304a3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/api/index.js @@ -0,0 +1,463 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +const api_request = require("./request.js"); +const API = { + //微信登录 + getToken: (data) => api_request.net.POST("/login/token", data), + // 获取token + wx_login: (data, userId) => api_request.net.POST("/user/binding/wechat", data, true, { "userId": userId }), + // 微信登录 + /* + 首页信息 + */ + getIndexInfo: (data) => api_request.net.GET("/api/index/index"), + // 首页信息 + getIndexBanner: (data) => api_request.net.GET("/api/banner/index", data), + // 轮播图 + getIndexNotice: (data) => api_request.net.GET("/api/news/notice"), + // 公告 + getGoodsDetail: (data) => api_request.net.GET("/api/goods/detail", data), + // 商品详情(普通商品) + getSeckillGoodsDetail: (data) => api_request.net.GET("/api/seckill_goods/detail", data), + // 商品详情(秒杀) + getGroupGoodsDetail: (data) => api_request.net.GET("/api/group_goods/detail", data), + // 商品详情(团购) + getGoodsList: (data) => api_request.net.GET("/api/goods/lists", data), + // 商品列表(普通商品) + getSeckillGoodsList: (data) => api_request.net.GET("/api/seckill_goods/lists", data), + // 商品列表(限时) + getGroupGoodsList: (data) => api_request.net.GET("/api/group_goods/lists?page=&keyword=", data), + // 商品列表(团购) + getNewinfo: (data) => api_request.net.GET("/api/goods/getGoodsSpec", data), + // 根据商品规格更新数据 + getCategoryList: (data) => api_request.net.GET("/api/goods_category/lists"), + // 获取商品分类 + getCategory: (data) => api_request.net.GET("/api/goods/category", data), + // 根据分类Id获取分类商品 + getCartList: (data) => api_request.net.GET("/api/cart/lists", data), + // 获取购物车列表 + addCart: (data) => api_request.net.POST("/api/cart/add", data), + // 加入购物车 + delCart: (data) => api_request.net.POST("/api/cart/delete", data), + // 删除购物车 + updateCart: (data) => api_request.net.POST("/api/cart/edit", data), + // 更新购物车 + login: (data) => api_request.net.POST("/api/user/wechatLogin", data), + // 登录 + login_test: (data) => api_request.net.GET("/api/user/testLogin?id=1"), + // 登录 测试专用 + zhuce: (data) => api_request.net.POST("/api/user/profile", data), + // 注册 + getOrderList: (data) => api_request.net.GET("/api/order/lists", data), + //订单列表 + getOrderGroupList: (data) => api_request.net.GET("/api/group_order/lists", data), + //订单列表(团购) + getOrderSeckillList: (data) => api_request.net.GET("/api/seckill_order/lists", data), + //订单列表(秒杀) + pay: (data) => api_request.net.POST("/api/order/pay", data), + //支付 + payGroup: (data) => api_request.net.POST("/api/group_order/pay", data), + //支付(团购) + paySeckill: (data) => api_request.net.POST("/api/seckill_order/pay", data), + //支付(秒杀) + refund: (data) => api_request.net.POST("/api/order/refund", data), + //退款 + getOrderInviteList: (data) => api_request.net.GET("/api/invite/order", data), + //分销订单 + getOrderBaseinfo: (data) => api_request.net.POST("/api/order/preview", data), + //获取订单提交页面的基本信息 + getOrderGroupBaseinfo: (data) => api_request.net.POST("/api/group_order/preview", data), + //获取订单提交页面的基本信息(团购) + getOrderSeckillBaseinfo: (data) => api_request.net.POST("/api/seckill_order/preview", data), + //获取订单提交页面的基本信息(秒杀) + getOrderCartinfo: (data) => api_request.net.POST("/api/order/cartPreview", data), + //获取订单提交页面的基本信息(购物车来的) + getDelivery: (data) => api_request.net.GET("/api/index/delivery", data), + //获取配送相关的选项(普通商品) + staffApply: (data) => api_request.net.POST("/api/invite/apply", data), + //业务员申请 + deliveryApply: (data) => api_request.net.POST("/api/staff/apply", data), + //配送员申请 + getDeliveryArea: (data) => api_request.net.GET("/api/staff/getDeliveryArea"), + //获取配送区域 + getAddressList: (data) => api_request.net.GET("/api/address/lists"), + //地址列表 + getAddDetail: (data) => api_request.net.GET("/api/address/detail", data), + //地址详情 + addAddress: (data) => api_request.net.POST("/api/address/add", data), + //新增地址 + editAddress: (data) => api_request.net.POST("/api/address/edit", data), + //修改地址 + delAddress: (data) => api_request.net.GET("/api/address/delete", data), + //删除地址 + getDefaultAddress: (data) => api_request.net.GET("/api/address/getDefault"), + //获取默认地址 + orderSubmitFunc: (data) => api_request.net.POST("/api/order/order", data), + //提交订单(普通订单) + orderSubmitCartFunc: (data) => api_request.net.POST("/api/order/cartOrder", data), + //提交订单(购物车) + orderSubmitGroupFunc: (data) => api_request.net.POST("/api/group_order/order", data), + //提交订单(团购订单) + orderSubmitSeckillFunc: (data) => api_request.net.POST("/api/seckill_order/order", data), + //提交订单(秒杀订单) + orderDetail: (data) => api_request.net.GET("/api/order/detail", data), + //订单详情-普通订单 (顾客) + orderGroupDetail: (data) => api_request.net.GET("/api/group_order/detail", data), + //订单详情-团购订单 + orderSeckillDetail: (data) => api_request.net.GET("/api/seckill_order/detail", data), + //订单详情-秒杀订单 + orderStaffDetail: (data) => api_request.net.GET("/api/staff/orderDetail", data), + //订单详情-配送订单 + orderLeaderDetail: (data) => api_request.net.GET("/api/leader/orderDetail", data), + //订单详情-管理员订单 + orderCancel: (data) => api_request.net.POST("/api/order/cancle", data), + //取消订单 + orderCancelGroup: (data) => api_request.net.POST("/api/group_order/cancle", data), + //取消订单 (团购) + orderCancelSeckill: (data) => api_request.net.POST("/api/seckill_order/cancle", data), + //取消订单 (秒杀) + /* + 用户相关 + */ + getUserInfo: (data) => api_request.net.GET("/api/user/userInfo", data), + //获取用户信息 + updateUserInfo: (data) => api_request.net.POST("/api/user/profile", data), + //更新用户信息 + rechargeFunc: (data) => api_request.net.POST("/api/recharge/recharge", data), + //充值 + withdrawalFunc: (data) => api_request.net.POST("/api/withdrawl/submit", data), + //提现 + vipBuy: (data) => api_request.net.POST("/api/vip/order", data), + //购买VIP + vipConfig: (data) => api_request.net.GET("/api/vip/config"), + //会员说明 + /* + 优惠券 + */ + getCouponsList: (data) => api_request.net.GET("/api/coupon/userCoupons", data), + //优惠券 + getCouponsCenterList: (data) => api_request.net.GET("/api/coupon/lists", data), + //领券中心 + couponsCenterReceive: (data) => api_request.net.POST("/api/coupon/receive", data), + //领取优惠 + getMyStars: (data) => api_request.net.GET("/api/collect/lists", data), + //我的收藏 + /* + 推广中心 + */ + inviteCenter: (data) => api_request.net.GET("/api/invite/index", data), + //首页 + inviteCenterwithdrawl: (data) => api_request.net.POST("/api/withdrawl/submit", data), + //提现 + inviteCenterwithdrawlDetail: (data) => api_request.net.GET("/api/invite/withdrawlDetail", data), + //提现明细 + inviteCenterwithdrawlRecodes: (data) => api_request.net.GET("/api/invite/record", data), + //提现明细(佣金) + getShareQrcode: (data) => api_request.net.GET("/api/user/getShareQrcode"), + //用户分销二维码 + /* + 配置相关 + */ + getConfig: (data) => api_request.net.GET("/api/index/config"), + setDeliveryTime: (data) => api_request.net.POST("/api/staff/setDeliveryTime", data), + // 设置配送时间 + getDeliveryTime: (data) => api_request.net.GET("/api/staff/getDeliveryTime"), + // 获取配送时间 + getStaffOrder: (data) => api_request.net.GET("/api/staff/orderLists", data), + // 获取订单管理列表(配送员) + getManageOrder: (data) => api_request.net.GET("/api/leader/orderLists", data), + // 获取订单管理列表(团长) + deliveryPhoto: (data) => api_request.net.POST("/api/staff/deliveryPhoto", data), + // 送达拍照 + reveiceOrder: (data) => api_request.net.POST("/api/staff/reveiceOrder", data), + // 接单 + reveiceOrderOk: (data) => api_request.net.POST("/api/leader/assignOrder", data), + // 派单 + getStaffList: (data) => api_request.net.GET("/api/leader/staffList"), + // 配送员列表 + goodsBuyFunc: (data) => api_request.net.POST("/api/leader/goodsBuy", data), + // 商品申购 + getRecordList: (data) => api_request.net.GET("/api/leader/recordList", data), + // 货物入库 + /** + * + * 登录类信息 + * + */ + // 检查更新 + getUpdateVersion: (data) => api_request.net.GET("/api/v1/index/version"), + // 获取定位 + getLocationInfo: (data) => api_request.net.GET("/api/v1/index/ip", data), + // 验证码登陆 + codeLogin: (data) => api_request.net.POST("/code/login", data), + // H5扫码登录邀请接口 + inviteLogin: (data) => api_request.net.POST("/api/v1/invite/login", data), + // 发送手机验证码接口 + sendVerifyCode: (data) => api_request.net.POST("/api/v1/sms/send", { send_type: "student", ...data }), + // 注销账号 + unRegister: (data) => api_request.net.POST("/api/v1/student/delete", data), + // 授权登录 + accessLogin: (data, t = "wx") => api_request.net.POST(`/api/v1/${t}/login`, data), + // 退出登录 + logOut: (data) => api_request.net.POST("/api/v1/code/logout", data), + // 获取省份 + getProvince: (data) => api_request.net.GET("/api/v1/colleges/getProvince", data), + // 根据学员所选择的教学点获取院校列表接口 + collegesList: (data) => api_request.net.GET("/api/v1/colleges/list", data), + // 通过市反查省/自治区/直辖市 + getProvinceByCity: (data) => api_request.net.GET("/api/v1/region/getProvinceByCity", data), + /** + * + * 用户信息 + * + */ + // 学员个人信息接口 + selectUserInfo: (data) => api_request.net.GET("/api/v1/student/info", data), + // 登录成功后填写学员信息接口 + userUpdate: (data) => api_request.net.POST("/api/v1/student/update", data), + // 邀请二维码 + qrcode: (data) => api_request.net.POST("/api/v1/student/invite/qrcode", data), + uploadBase64: (data) => api_request.net.POST("/api/v1/student/uploadBase64", data), + // 获取被邀请人列表接口 + inviteList: (data) => api_request.net.GET("/api/v1/student/invite/list", data), + // 积分列表 + scoreList: (data) => api_request.net.GET("/point", data), + // 余额明细 + balanceList: (data) => api_request.net.POST("/api/v1/balance/detail/get/list", data), + // 模拟测试记录 + recordList: (data) => api_request.net.GET("/api/v1/test-record/mock/examination/record", data), + // 练习题错误集详情 + practiceList: (data) => api_request.net.GET("/api/v1/test-record/practice/list", data), + /** + * + * 首页数据 + * + */ + // 首页配置获取 + indexConfig: (data) => api_request.net.GET("/api/v1/index/config", data), + // 轮播 + // indexBanner: data => net.GET('/app/banner', data), + indexBanner: (data) => api_request.net.POST("/api/v1/index/lbt", data), + // 获取咨询文章列表 + // wzList: data => net.GET('/app/consult-wz', data), + wzList: (data) => api_request.net.POST("/api/v1/index/wz/list", data), + // 获取咨询文章 + // wzInfo: id => net.GET(`/app/consult-wz/${id}`), + wzInfo: (id) => api_request.net.GET(`/api/v1/index/wz/${id}`), + // 获取课程分页 + getCourseList: (data) => api_request.net.GET(`/app/course/page`, data), + // 获取推荐院校列表 + // recommendwzList: data => net.GET('/app/academy', data), + recommendwzList: (data) => api_request.net.POST("/api/v1/index/academy/list", data), + // 获取推荐院校文章 + // recommendwzInfo: id => net.GET(`/app/academy/${id}`), + recommendwzInfo: (id) => api_request.net.GET(`/api/v1/index/academy/${id}`), + // 推荐院校文章阅读量累计 + // recomendaddReadNumber: data => net.PUT('/app/academy/num',data), + recomendaddReadNumber: (data) => api_request.net.POST("/api/v1/index/academy/add/num", data), + //获取考试大纲列表 + syllabusList: (data) => api_request.net.POST("/api/v1/index/syllabus/list", data), + // 搜索 + search: (data) => api_request.net.POST("/api/v1/index/search", data), + // 阅读量累计 + addReadNumber: (data) => api_request.net.PUT("/app/consult-wz/num", data), + // 师资团队列表 + lecturerList: (data) => api_request.net.GET("/api/v1/index/lecturer", data), + // 师资详情 + lecturerDetail: (id) => api_request.net.GET(`/api/v1/index/lecturer/${id}`), + // 获取资料列表 + indexMaterial: (data) => api_request.net.GET("/api/v1/index/material", data), + // indexMaterial: data => net.GET('/app/material', data), + // 获取资料详情 + materialDetail: (data) => api_request.net.GET(`/api/v1/index/material/${data.id}`, { buyer_id: data.buyer_id }), + // 获取精品课程 + indexBoutiqueCourse: (data) => api_request.net.GET("/api/v1/index/boutique/course", data), + // 获取精品课程详情 + boutiqueCourseDetail: (id) => api_request.net.GET(`/api/v1/index/boutique/course/${id}`), + // 获取课程 + courseList: (data) => api_request.net.POST("/api/v1/course/get", data), + // 获取套餐 + comboList: (data) => api_request.net.POST("/api/v1/combo/course/get", data), + // courseList: data => net.GET('/app/course/page', data), + // 获取课程详情 + courseDetail: (id, data) => api_request.net.GET(`/api/v1/course/${id}`, data), + // courseDetail: (id, data) => net.GET(`/app/course`, {id}), + // 获取线下课程 + offlineCourseList: (data) => api_request.net.POST("/api/v1/offline/course/get", data), + // 获取线下课程详情 + offlineCourseDetail: (id) => api_request.net.GET(`/api/v1/offline/course/${id}`), + // 获取套餐课程详情 + getComboDetail: (data) => api_request.net.GET(`/api/v1/combo/course/${data.id}`, { buyer_id: data.buyer_id }), + // 获取直播课列表 + // liveCourseList: data => net.GET('/api/v1/sys-course-live', data), + liveCourseList: (data) => api_request.net.GET("/api/v1/api-live-course", data), + // 直播课详情 + viewCourse: (id, data) => api_request.net.GET("/api/v1/sys-course-live/" + id, { buyer_id: data.buyer_id }), + // 直播课详情 测试 + viewCourse_test: (id, data) => api_request.net.GET("/api/v1/api-live-course/" + id, { buyer_id: data.buyer_id }), + /*题库 管理*/ + //题库 + getQuestionExercise: (data) => api_request.net.GET("/exercises", data), + // 科目 + subjectList: (data) => api_request.net.GET("/api/v1/public/subject", data), + // subjectList: data => net.GET('/app/subject/list', data), + // 获取学员学习列表接口 + learningList: (data) => api_request.net.GET("/api/v1/learning", data), + // 学习课程详情 + learningDetail: (data) => api_request.net.GET(`/api/v1/learning/course/${data}`), + // 学习直播课程详情 + learningLiveDetail: (data) => api_request.net.GET(`/api/v1/learning/course/live/${data}`), + // 学员学习计时接口 + // "time_type": "stop" //计时类型 start-开始计时 stop-停止计时 + studyDuration: (data) => api_request.net.POST("/api/v1/learning/course/duration", data), + // 学习统计API + courseStatistics: (data) => api_request.net.POST("/api/v1/learning/course/statistics", data), + // 题型分类 + questionBankType: (data) => api_request.net.GET("/api/v1/questionBank/type", data), + // 网课、测试、题库详情 + exercisesDetails: (data) => api_request.net.GET(`/api/v1/exercises/detail/${data}`), + // 测试练习题列表 + testList: (data) => api_request.net.GET("/api/v1/exercises/test/list", data), + // 模拟试卷列表 + examinationList: (data) => api_request.net.GET("/api/v1/examination/list", data), + // 获取题库、网课题目列表接口 + exerciseSubjectList: (data) => api_request.net.GET("/api/v1/exercise/subject/list", data), + // 试题分类 + exercisesType: (data) => api_request.net.GET("/api/v1/exercises/type", data), + // 模拟题详情 + examinationDetail: (id) => api_request.net.GET(`/api/v1/examination/detail/${id}`), + // 开始答题 + startTest: (data) => api_request.net.POST("/api/v1/exercises/start/answer", data), + // question_bank_id + // 交卷 + submitTest: (data) => api_request.net.POST("/api/v1/exercises/submit", data), + // 下一题 + nextSubject: (data) => api_request.net.POST("/api/v1/exercises/next", data), + // 重新答题 + againAnswer: (data) => api_request.net.POST("/api/v1/exercises/againAnswer", data), + // 答题成绩报告 + scoreReport: (data) => api_request.net.GET("/api/v1/exercises/achievement/report", data), + // 获取团购列表 + getGroupList: (data) => api_request.net.GET("/api/v1/group/page", data), + // 获取团购详情 + getGroupPurchaseData: (data) => api_request.net.GET("/api/v1/group", data), + //发起拼团 + starGroupPurchase: (data) => api_request.net.POST("/api/v1/group", data), + //加入拼团 + joinGroupPurchase: (data) => api_request.net.POST("/api/v1/group/join", data), + /** + * + * 支付接口 + * + */ + // 支付接口 + wxOrAlipay: (data) => api_request.net.POST("/api/v1/pay", data), + // 获取openid + getOpenID: (data) => { + return common_vendor.index.request({ + url: "https://api.weixin.qq.com/sns/oauth2/access_token", + method: "GET", + // header: { + // ...header, + // ...headers + // }, + data + }); + }, + // 余额支付 + yuePay: (data) => api_request.net.POST("/api/v1/student/pay/balance", data), + //H5下单API + // v3_pay:data => net.POST('https://api.mch.weixin.qq.com/v3/pay/transactions/h5',data) + v3_pay: (data) => { + return common_vendor.index.request({ + url: "https://api.mch.weixin.qq.com/v3/pay/transactions/h5", + method: "POST", + header: { + "Content-Type": "application/json" + }, + data + }); + }, + //测试 + pay_check: (data) => api_request.net.POST("/api/v1/wxpay/check", data), + pay_callback: (data) => api_request.net.POST("/api/v1/wxpay/callback", data), + /** + * + * 地址接口 + * + */ + // 列表 + addressList: (data) => api_request.net.POST("/api/v1/address", data), + // student_id + // 新增/编辑 + addressAction: (data) => api_request.net.POST(`/api/v1/address/add`, data), + editaddressAction: (data) => api_request.net.PUT(`/api/v1/address`, data), + // 删除 + addressDelete: (data) => api_request.net.DELETE("/api/v1/address", data), + // id + /** + * + * 购物车接口 + * + */ + // 列表 + cartList: (data) => api_request.net.POST("/api/v1/shopping/cart", data), + // 添加 + cartAdd: (data) => api_request.net.POST("/api/v1/shopping/cart/add", data), + // 编辑 + cartUpdate: (data) => api_request.net.POST("/api/v1/shopping/cart/update", data), + // 删除 + cartDelete: (data) => api_request.net.POST("/api/v1/shopping/cart/delete", data), + // id + /** + * + * 订单接口 + * + */ + // 订单查询 + orderList: (data) => api_request.net.POST("/api/v1/api-order/get/my/order/list", data), + // 确认收货 + orderUpdate: (data) => api_request.net.POST("/api/v1/api-order/update/material/order", data), + // 删除 + orderDelete: (data) => api_request.net.POST("/api/v1/api-order/delete/order", data), + /** + * 商品价格合计 + * @param { order_count_list: [{ id: '', order_type: '', num: ''}] } + * + */ + orderCount: (data) => api_request.net.POST("/api/v1/api-order/order/count", data), + /** + * 资料,在线课程的立即购买/购物车 + * @param { goods: [{ id: '', order_type: '', num: ''}], student_id: '' } + * + */ + orderBuynow: (data) => api_request.net.POST("/api/v1/api-order/order/buynow", data), + // 新增资料订单 + orderMaterialAdd: (data) => api_request.net.POST("/api/v1/api-order/add/material/order", data), + // 新增在线课程订单 + orderOnlineAdd: (data) => api_request.net.POST("/api/v1/api-order/add/online/order", data), + // 直播课订单 + orderLiveAdd: (data) => api_request.net.POST("/api/v1/api-order/add/live/order", data), + // 新增套餐课程订单 + orderComboAdd: (data) => api_request.net.POST("/api/v1/api-order/add/combo/order", data), + // 新增线下订单==报名 + orderOfflineAdd: (data) => api_request.net.POST("/api/v1/api-order/add/offline/order", data), + // 新增团购订单 + orderGroupAdd: (data) => api_request.net.POST("/api/v1/api-order/add/group/order", data), + // 分享平台 + shareProvider: () => api_request.net.getShareProvider(), + // 支付方式 + paymentProvider: () => api_request.net.getPaymentProvider(), + // 物流查询 + queryKuaidi: (data) => api_request.net.POST("/api/v1/kuaidi/poll/query", data), + // SHARE: () => net.SHARE(), + // 提现 + transfer: (data) => api_request.net.POST("/api/v1/wxpay/transfer", data), + // 获取我的收藏分页列表 + getStarList: (data) => api_request.net.POST("/api/v1/favorite/get", data), + // 取消收藏 + cancelStar: (data) => api_request.net.DELETE("/api/v1/favorite", data), + //添加收藏 + addStar: (data) => api_request.net.POST("/api/v1/favorite", data) +}; +exports.API = API; diff --git a/unpackage/dist/dev/mp-weixin/api/request.js b/unpackage/dist/dev/mp-weixin/api/request.js new file mode 100644 index 0000000..0e6ce17 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/api/request.js @@ -0,0 +1,194 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +const config_index = require("../config/index.js"); +const loginUrl = "pages/user/login"; +const net = { + REQUEST(url, method = "GET", data, checkLogin = true, header) { + let token = common_vendor.index.getStorageSync("access_token") || "Basic ZGV20mRldjEyMw=="; + const headers = { + "Content-Type": "application/json", + // "Content-Type": "application/x-www-form-urlencoded", + "Authorization": token, + "x-token": token, + "token": token + // "X-Forwarded-For":'client_ip' + // 'Referer':'twzxjy.com' + }; + var pages = getCurrentPages(); + var page = pages[pages.length - 1]; + if (!header) { + headers["Content-Type"] = "application/x-www-form-urlencode"; + } + console.log("headers :", headers); + return common_vendor.index.request({ + url: config_index.config.baseUrl + url, + method, + header: { + ...header, + ...headers + }, + data + }).then((res) => { + if (res.statusCode === 200 && res.data) { + if (res.data.code === 409) { + common_vendor.index.showModal({ + title: "提示", + content: "您的账号已在其他设备登录,已强制下线!", + confirmColor: "#006647", + showCancel: false, + success: (res2) => { + if (res2.confirm) { + common_vendor.index.removeStorageSync("access_token"); + common_vendor.index.removeStorageSync("user_info"); + if (checkLogin && page.route != loginUrl) { + common_vendor.index.navigateTo({ + url: "/" + loginUrl + }); + } + } + } + }); + return { + ...res.data + }; + } + if (res.data.code === 5) { + common_vendor.index.removeStorageSync("access_token"); + if (page.route != loginUrl && checkLogin) { + common_vendor.index.navigateTo({ + url: "/" + loginUrl + }); + } + } + return res.data; + } else { + const reg = /abort/; + let code = 0; + let msg = res[0] && res[0].errMsg || "未知错误"; + if (res[0] && res[0].errMsg && reg.test(res[0].errMsg)) { + msg = "网络请求中断"; + } + return { + code, + msg, + data: null + }; + } + }).catch((parmas) => { + return parmas; + }); + }, + GET(url, body, checkLogin = true, header) { + return this.REQUEST(url, "GET", body, checkLogin, header); + }, + POST(url, body, checkLogin = true, header) { + return this.REQUEST(url, "POST", body, checkLogin, header); + }, + PUT(url, body, header) { + return this.REQUEST(url, "PUT", body, header); + }, + DELETE(url, body, header) { + return this.REQUEST(url, "DELETE", body, header); + }, + UPLOAD(data) { + return new Promise((resolve, reject) => { + let token = common_vendor.index.getStorageSync("access_token") || ""; + common_vendor.index.uploadFile({ + ...data, + url: config_index.config.base_url + data.url, + header: { + "Access-Token": token + }, + success(res) { + res.data = JSON.parse(res.data); + if (res.data.code === 401) { + common_vendor.index.removeStorageSync("access_token"); + common_vendor.index.removeStorageSync("userInfo"); + common_vendor.index.navigateTo({ + url: "/pages/login/login" + }); + } + resolve(res); + }, + fail(e) { + console.log(e); + reject(e); + } + }); + }); + }, + getShareProvider: () => { + return common_vendor.index.getProvider({ + service: "share" + }).then((res) => { + let data = []; + for (let i = 0; i < res.provider.length; i++) { + switch (res.provider[i]) { + case "weixin": + data.push({ + name: "微信好友", + id: "weixin", + icon: "/static/wx.png" + }); + data.push({ + name: "朋友圈", + id: "weixin", + type: "WXSenceTimeline", + icon: "/static/pyq.png" + }); + break; + case "qq": + data.push({ + name: "QQ好友", + id: "qq", + icon: "/static/qq.png" + }); + break; + } + } + return data; + }).catch((parmas) => { + return Promise.reject(); + }); + }, + getPaymentProvider: () => { + return common_vendor.index.getProvider({ + service: "payment" + }).then((res) => { + let data = []; + const aliPay = { + name: "支付宝支付", + id: "alipay", + icon: "/static/order/zfbp@3x.png" + }; + const wxPay = { + name: "微信支付", + id: "wxpay", + icon: "/static/order/wxp@3x.png" + }; + const yuePay = { + name: "余额支付", + id: "yepay", + icon: "/static/order/yep@3x.png" + }; + for (let i = 0; i < res[1].provider.length; i++) { + switch (res[1].provider[i]) { + case "alipay": + data.push({ + ...aliPay + }); + break; + case "wxpay": + data.push({ + ...wxPay + }); + break; + } + } + return [...data, yuePay]; + }).catch((parmas) => { + return Promise.reject(); + }); + } +}; +exports.net = net; diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js new file mode 100644 index 0000000..26f2973 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); +const common_vendor = require("./common/vendor.js"); +if (!Math) { + "./pages/index/index.js"; + "./pages/wikipedia/index.js"; + "./pages/user/index.js"; +} +const _sfc_main = { + onLaunch: function() { + console.log("App Launch"); + }, + onShow: function() { + console.log("App Show"); + }, + onHide: function() { + console.log("App Hide"); + } +}; +const App = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-f13b4d11"], ["__file", "F:/项目2023/视力表/vision-record/App.vue"]]); +function createApp() { + const app = common_vendor.createSSRApp(App); + app.use(common_vendor.createPinia()); + return { + app + }; +} +createApp().app.mount("#app"); +exports.createApp = createApp; diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json new file mode 100644 index 0000000..8f785f9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -0,0 +1,40 @@ +{ + "pages": [ + "pages/index/index", + "pages/wikipedia/index", + "pages/user/index" + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "tabBar": { + "color": "#999999", + "selectedColor": "#26758d", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/index/index", + "iconPath": "static/tabs/home.png", + "selectedIconPath": "static/tabs/home2.png", + "text": "首页" + }, + { + "pagePath": "pages/wikipedia/index", + "iconPath": "static/tabs/order.png", + "selectedIconPath": "static/tabs/order2.png", + "text": "百科" + }, + { + "pagePath": "pages/user/index", + "iconPath": "static/tabs/user.png", + "selectedIconPath": "static/tabs/user2.png", + "text": "我的" + } + ] + }, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/app.wxss b/unpackage/dist/dev/mp-weixin/app.wxss new file mode 100644 index 0000000..a7333f8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/app.wxss @@ -0,0 +1,698 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uniui-color:before { + content: "\e6cf"; +} +.uniui-wallet:before { + content: "\e6b1"; +} +.uniui-settings-filled:before { + content: "\e6ce"; +} +.uniui-auth-filled:before { + content: "\e6cc"; +} +.uniui-shop-filled:before { + content: "\e6cd"; +} +.uniui-staff-filled:before { + content: "\e6cb"; +} +.uniui-vip-filled:before { + content: "\e6c6"; +} +.uniui-plus-filled:before { + content: "\e6c7"; +} +.uniui-folder-add-filled:before { + content: "\e6c8"; +} +.uniui-color-filled:before { + content: "\e6c9"; +} +.uniui-tune-filled:before { + content: "\e6ca"; +} +.uniui-calendar-filled:before { + content: "\e6c0"; +} +.uniui-notification-filled:before { + content: "\e6c1"; +} +.uniui-wallet-filled:before { + content: "\e6c2"; +} +.uniui-medal-filled:before { + content: "\e6c3"; +} +.uniui-gift-filled:before { + content: "\e6c4"; +} +.uniui-fire-filled:before { + content: "\e6c5"; +} +.uniui-refreshempty:before { + content: "\e6bf"; +} +.uniui-location-filled:before { + content: "\e6af"; +} +.uniui-person-filled:before { + content: "\e69d"; +} +.uniui-personadd-filled:before { + content: "\e698"; +} +.uniui-back:before { + content: "\e6b9"; +} +.uniui-forward:before { + content: "\e6ba"; +} +.uniui-arrow-right:before { + content: "\e6bb"; +} +.uniui-arrowthinright:before { + content: "\e6bb"; +} +.uniui-arrow-left:before { + content: "\e6bc"; +} +.uniui-arrowthinleft:before { + content: "\e6bc"; +} +.uniui-arrow-up:before { + content: "\e6bd"; +} +.uniui-arrowthinup:before { + content: "\e6bd"; +} +.uniui-arrow-down:before { + content: "\e6be"; +} +.uniui-arrowthindown:before { + content: "\e6be"; +} +.uniui-bottom:before { + content: "\e6b8"; +} +.uniui-arrowdown:before { + content: "\e6b8"; +} +.uniui-right:before { + content: "\e6b5"; +} +.uniui-arrowright:before { + content: "\e6b5"; +} +.uniui-top:before { + content: "\e6b6"; +} +.uniui-arrowup:before { + content: "\e6b6"; +} +.uniui-left:before { + content: "\e6b7"; +} +.uniui-arrowleft:before { + content: "\e6b7"; +} +.uniui-eye:before { + content: "\e651"; +} +.uniui-eye-filled:before { + content: "\e66a"; +} +.uniui-eye-slash:before { + content: "\e6b3"; +} +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} +.uniui-info-filled:before { + content: "\e649"; +} +.uniui-reload:before { + content: "\e6b2"; +} +.uniui-micoff-filled:before { + content: "\e6b0"; +} +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} +.uniui-map-pin:before { + content: "\e6ad"; +} +.uniui-location:before { + content: "\e6ae"; +} +.uniui-starhalf:before { + content: "\e683"; +} +.uniui-star:before { + content: "\e688"; +} +.uniui-star-filled:before { + content: "\e68f"; +} +.uniui-calendar:before { + content: "\e6a0"; +} +.uniui-fire:before { + content: "\e6a1"; +} +.uniui-medal:before { + content: "\e6a2"; +} +.uniui-font:before { + content: "\e6a3"; +} +.uniui-gift:before { + content: "\e6a4"; +} +.uniui-link:before { + content: "\e6a5"; +} +.uniui-notification:before { + content: "\e6a6"; +} +.uniui-staff:before { + content: "\e6a7"; +} +.uniui-vip:before { + content: "\e6a8"; +} +.uniui-folder-add:before { + content: "\e6a9"; +} +.uniui-tune:before { + content: "\e6aa"; +} +.uniui-auth:before { + content: "\e6ab"; +} +.uniui-person:before { + content: "\e699"; +} +.uniui-email-filled:before { + content: "\e69a"; +} +.uniui-phone-filled:before { + content: "\e69b"; +} +.uniui-phone:before { + content: "\e69c"; +} +.uniui-email:before { + content: "\e69e"; +} +.uniui-personadd:before { + content: "\e69f"; +} +.uniui-chatboxes-filled:before { + content: "\e692"; +} +.uniui-contact:before { + content: "\e693"; +} +.uniui-chatbubble-filled:before { + content: "\e694"; +} +.uniui-contact-filled:before { + content: "\e695"; +} +.uniui-chatboxes:before { + content: "\e696"; +} +.uniui-chatbubble:before { + content: "\e697"; +} +.uniui-upload-filled:before { + content: "\e68e"; +} +.uniui-upload:before { + content: "\e690"; +} +.uniui-weixin:before { + content: "\e691"; +} +.uniui-compose:before { + content: "\e67f"; +} +.uniui-qq:before { + content: "\e680"; +} +.uniui-download-filled:before { + content: "\e681"; +} +.uniui-pyq:before { + content: "\e682"; +} +.uniui-sound:before { + content: "\e684"; +} +.uniui-trash-filled:before { + content: "\e685"; +} +.uniui-sound-filled:before { + content: "\e686"; +} +.uniui-trash:before { + content: "\e687"; +} +.uniui-videocam-filled:before { + content: "\e689"; +} +.uniui-spinner-cycle:before { + content: "\e68a"; +} +.uniui-weibo:before { + content: "\e68b"; +} +.uniui-videocam:before { + content: "\e68c"; +} +.uniui-download:before { + content: "\e68d"; +} +.uniui-help:before { + content: "\e679"; +} +.uniui-navigate-filled:before { + content: "\e67a"; +} +.uniui-plusempty:before { + content: "\e67b"; +} +.uniui-smallcircle:before { + content: "\e67c"; +} +.uniui-minus-filled:before { + content: "\e67d"; +} +.uniui-micoff:before { + content: "\e67e"; +} +.uniui-closeempty:before { + content: "\e66c"; +} +.uniui-clear:before { + content: "\e66d"; +} +.uniui-navigate:before { + content: "\e66e"; +} +.uniui-minus:before { + content: "\e66f"; +} +.uniui-image:before { + content: "\e670"; +} +.uniui-mic:before { + content: "\e671"; +} +.uniui-paperplane:before { + content: "\e672"; +} +.uniui-close:before { + content: "\e673"; +} +.uniui-help-filled:before { + content: "\e674"; +} +.uniui-paperplane-filled:before { + content: "\e675"; +} +.uniui-plus:before { + content: "\e676"; +} +.uniui-mic-filled:before { + content: "\e677"; +} +.uniui-image-filled:before { + content: "\e678"; +} +.uniui-locked-filled:before { + content: "\e668"; +} +.uniui-info:before { + content: "\e669"; +} +.uniui-locked:before { + content: "\e66b"; +} +.uniui-camera-filled:before { + content: "\e658"; +} +.uniui-chat-filled:before { + content: "\e659"; +} +.uniui-camera:before { + content: "\e65a"; +} +.uniui-circle:before { + content: "\e65b"; +} +.uniui-checkmarkempty:before { + content: "\e65c"; +} +.uniui-chat:before { + content: "\e65d"; +} +.uniui-circle-filled:before { + content: "\e65e"; +} +.uniui-flag:before { + content: "\e65f"; +} +.uniui-flag-filled:before { + content: "\e660"; +} +.uniui-gear-filled:before { + content: "\e661"; +} +.uniui-home:before { + content: "\e662"; +} +.uniui-home-filled:before { + content: "\e663"; +} +.uniui-gear:before { + content: "\e664"; +} +.uniui-smallcircle-filled:before { + content: "\e665"; +} +.uniui-map-filled:before { + content: "\e666"; +} +.uniui-map:before { + content: "\e667"; +} +.uniui-refresh-filled:before { + content: "\e656"; +} +.uniui-refresh:before { + content: "\e657"; +} +.uniui-cloud-upload:before { + content: "\e645"; +} +.uniui-cloud-download-filled:before { + content: "\e646"; +} +.uniui-cloud-download:before { + content: "\e647"; +} +.uniui-cloud-upload-filled:before { + content: "\e648"; +} +.uniui-redo:before { + content: "\e64a"; +} +.uniui-images-filled:before { + content: "\e64b"; +} +.uniui-undo-filled:before { + content: "\e64c"; +} +.uniui-more:before { + content: "\e64d"; +} +.uniui-more-filled:before { + content: "\e64e"; +} +.uniui-undo:before { + content: "\e64f"; +} +.uniui-images:before { + content: "\e650"; +} +.uniui-paperclip:before { + content: "\e652"; +} +.uniui-settings:before { + content: "\e653"; +} +.uniui-search:before { + content: "\e654"; +} +.uniui-redo-filled:before { + content: "\e655"; +} +.uniui-list:before { + content: "\e644"; +} +.uniui-mail-open-filled:before { + content: "\e63a"; +} +.uniui-hand-down-filled:before { + content: "\e63c"; +} +.uniui-hand-down:before { + content: "\e63d"; +} +.uniui-hand-up-filled:before { + content: "\e63e"; +} +.uniui-hand-up:before { + content: "\e63f"; +} +.uniui-heart-filled:before { + content: "\e641"; +} +.uniui-mail-open:before { + content: "\e643"; +} +.uniui-heart:before { + content: "\e639"; +} +.uniui-loop:before { + content: "\e633"; +} +.uniui-pulldown:before { + content: "\e632"; +} +.uniui-scan:before { + content: "\e62a"; +} +.uniui-bars:before { + content: "\e627"; +} +.uniui-cart-filled:before { + content: "\e629"; +} +.uniui-checkbox:before { + content: "\e62b"; +} +.uniui-checkbox-filled:before { + content: "\e62c"; +} +.uniui-shop:before { + content: "\e62f"; +} +.uniui-headphones:before { + content: "\e630"; +} +.uniui-cart:before { + content: "\e631"; +} +@font-face { + font-family: uniicons; + src: url("data:font/ttf;base64,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5nkAAOZ5AAAAVQAA5noAAOZ6AAAAVgAA5nsAAOZ7AAAAVwAA5nwAAOZ8AAAAWAAA5n0AAOZ9AAAAWQAA5n4AAOZ+AAAAWgAA5n8AAOZ/AAAASAAA5oAAAOaAAAAASQAA5oEAAOaBAAAASgAA5oIAAOaCAAAASwAA5oMAAOaDAAAAKgAA5oQAAOaEAAAATAAA5oUAAOaFAAAATQAA5oYAAOaGAAAATgAA5ocAAOaHAAAATwAA5ogAAOaIAAAAKwAA5okAAOaJAAAAUAAA5ooAAOaKAAAAUQAA5osAAOaLAAAAUgAA5owAAOaMAAAAUwAA5o0AAOaNAAAAVAAA5o4AAOaOAAAARQAA5o8AAOaPAAAALAAA5pAAAOaQAAAARgAA5pEAAOaRAAAARwAA5pIAAOaSAAAAPwAA5pMAAOaTAAAAQAAA5pQAAOaUAAAAQQAA5pUAAOaVAAAAQgAA5pYAAOaWAAAAQwAA5pcAAOaXAAAARAAA5pgAAOaYAAAAFQAA5pkAAOaZAAAAOQAA5poAAOaaAAAAOgAA5psAAOabAAAAOwAA5pwAAOacAAAAPAAA5p0AAOadAAAAFAAA5p4AAOaeAAAAPQAA5p8AAOafAAAAPgAA5qAAAOagAAAALQAA5qEAAOahAAAALgAA5qIAAOaiAAAALwAA5qMAAOajAAAAMAAA5qQAAOakAAAAMQAA5qUAAOalAAAAMgAA5qYAAOamAAAAMwAA5qcAAOanAAAANAAA5qgAAOaoAAAANQAA5qkAAOapAAAANgAA5qoAAOaqAAAANwAA5qsAAOarAAAAOAAA5qwAAOasAAAAJwAA5q0AAOatAAAAKAAA5q4AAOauAAAAKQAA5q8AAOavAAAAEwAA5rAAAOawAAAAJgAA5rEAAOaxAAAAAgAA5rIAAOayAAAAJQAA5rMAAOazAAAAIgAA5rQAAOa0AAAAIwAA5rUAAOa1AAAAHQAA5rYAAOa2AAAAHgAA5rcAAOa3AAAAHwAA5rgAAOa4AAAAHAAA5rkAAOa5AAAAFgAA5roAAOa6AAAAFwAA5rsAAOa7AAAAGAAA5rwAAOa8AAAAGQAA5r0AAOa9AAAAGgAA5r4AAOa+AAAAGwAA5r8AAOa/AAAAEgAA5sAAAObAAAAADAAA5sEAAObBAAAADQAA5sIAAObCAAAADgAA5sMAAObDAAAADwAA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ZWQLc2hvcC1maWxsZWQMc3RhZmYtZmlsbGVkCnZpcC1maWxsZWQLcGx1cy1maWxsZWQRZm9sZGVyLWFkZC1maWxsZWQMeWFuc2UtZmlsbGVkC3R1bmUtZmlsbGVkD2NhbGVuZGFyLWZpbGxlZBNub3RpZmljYXRpb24tZmlsbGVkDXdhbGxldC1maWxsZWQMbWVkYWwtZmlsbGVkC2dpZnQtZmlsbGVkC2ZpcmUtZmlsbGVkDHJlZnJlc2hlbXB0eQ9sb2NhdGlvbi1maWxsZWQNcGVyc29uLWZpbGxlZBBwZXJzb25hZGQtZmlsbGVkBGJhY2sHZm9yd2FyZAthcnJvdy1yaWdodAphcnJvdy1sZWZ0CGFycm93LXVwCmFycm93LWRvd24GYm90dG9tBXJpZ2h0A3RvcARsZWZ0A2V5ZQpleWUtZmlsbGVkCWV5ZS1zbGFzaBBleWUtc2xhc2gtZmlsbGVkC2luZm8tZmlsbGVkBnJlbG9hZA1taWNvZmYtZmlsbGVkD21hcC1waW4tZWxsaXBzZQdtYXAtcGluCGxvY2F0aW9uCHN0YXJoYWxmBHN0YXILc3Rhci1maWxsZWQIY2FsZW5kYXIEZmlyZQVtZWRhbARmb250BGdpZnQEbGluawxub3RpZmljYXRpb24Fc3RhZmYDdmlwCmZvbGRlci1hZGQEdHVuZQRhdXRoBnBlcnNvbgxlbWFpbC1maWxsZWQMcGhvbmUtZmlsbGVkBXBob25lBWVtYWlsCXBlcnNvbmFkZBBjaGF0Ym94ZXMtZmlsbGVkB2NvbnRhY3QRY2hhdGJ1YmJsZS1maWxsZWQOY29udGFjdC1maWxsZWQJY2hhdGJveGVzCmNoYXRidWJibGUNdXBsb2FkLWZpbGxlZAZ1cGxvYWQGd2VpeGluB2NvbXBvc2UCcXEPZG93bmxvYWQtZmlsbGVkA3B5cQVzb3VuZAx0cmFzaC1maWxsZWQMc291bmQtZmlsbGVkBXRyYXNoD3ZpZGVvY2FtLWZpbGxlZA1zcGlubmVyLWN5Y2xlBXdlaWJvCHZpZGVvY2FtCGRvd25sb2FkBGhlbHAPbmF2aWdhdGUtZmlsbGVkCXBsdXNlbXB0eQtzbWFsbGNpcmNsZQxtaW51cy1maWxsZWQGbWljb2ZmCmNsb3NlZW1wdHkFY2xlYXIIbmF2aWdhdGUFbWludXMFaW1hZ2UDbWljCnBhcGVycGxhbmUFY2xvc2ULaGVscC1maWxsZWQRcGFwZXJwbGFuZS1maWxsZWQEcGx1cwptaWMtZmlsbGVkDGltYWdlLWZpbGxlZA1sb2NrZWQtZmlsbGVkBGluZm8GbG9ja2VkDWNhbWVyYS1maWxsZWQLY2hhdC1maWxsZWQGY2FtZXJhBmNpcmNsZQ5jaGVja21hcmtlbXB0eQRjaGF0DWNpcmNsZS1maWxsZWQEZmxhZwtmbGFnLWZpbGxlZAtnZWFyLWZpbGxlZARob21lC2hvbWUtZmlsbGVkBGdlYXISc21hbGxjaXJjbGUtZmlsbGVkCm1hcC1maWxsZWQDbWFwDnJlZnJlc2gtZmlsbGVkB3JlZnJlc2gMY2xvdWQtdXBsb2FkFWNsb3VkLWRvd25sb2FkLWZpbGxlZA5jbG91ZC1kb3dubG9hZBNjbG91ZC11cGxvYWQtZmlsbGVkBHJlZG8NaW1hZ2VzLWZpbGxlZAt1bmRvLWZpbGxlZARtb3JlC21vcmUtZmlsbGVkBHVuZG8GaW1hZ2VzCXBhcGVyY2xpcAhzZXR0aW5ncwZzZWFyY2gLcmVkby1maWxsZWQEbGlzdBBtYWlsLW9wZW4tZmlsbGVkEGhhbmQtZG93bi1maWxsZWQJaGFuZC1kb3duDmhhbmQtdXAtZmlsbGVkB2hhbmQtdXAMaGVhcnQtZmlsbGVkCW1haWwtb3BlbgVoZWFydARsb29wCHB1bGxkb3duBHNjYW4EYmFycwtjYXJ0LWZpbGxlZAhjaGVja2JveA9jaGVja2JveC1maWxsZWQEc2hvcApoZWFkcGhvbmVzBGNhcnQAAAAA") format("truetype"); +} +.uni-icons { + font-family: uniicons; + text-decoration: none; + text-align: center; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +/*每个页面公共css */ +.page-bg-gray.data-v-f13b4d11 { + background: #f8f8f8; +} +.page-box.data-v-f13b4d11 { + /* height: 100%; + overflow: scroll; */ + min-height: 100%; +} +uni-page-body.data-v-f13b4d11, page.data-v-f13b4d11 { + height: 100%; +} +page.data-v-f13b4d11 { + font-size: 28rpx; +} +.text-ellipsis-1.data-v-f13b4d11 { + /*超出部分省略号 单行*/ + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 1; + display: -webkit-box; + -webkit-box-orient: vertical; + /* min-height: 38rpx; */ +} +.icon-custom.data-v-f13b4d11 { + width: 32rpx; + height: 32rpx; +} +.small-text.data-v-f13b4d11 { + color: gray !important; + font-size: 24rpx; + font-weight: 100 !important; +} +.bold-text.data-v-f13b4d11 { + font-weight: 600; + font-size: 36rpx; +} +.margin-line.data-v-f13b4d11 { + height: 20rpx; + width: 100%; + background-color: #f8f8f8; +} +.clearCss.data-v-f13b4d11 { + opacity: 0 !important; +} +.shim.data-v-f13b4d11 { + /* 垫片 */ + width: 100%; + height: 140rpx; +} +.big-text.data-v-f13b4d11 { + font-size: 80rpx; + /* font-weight: 600; */ +} +.red-text.data-v-f13b4d11 { + color: red; +} +.line.data-v-f13b4d11 { + height: 2rpx; + width: 100%; + background-color: #e7e7e7; +} +.num-show.data-v-f13b4d11 { + position: absolute; + width: 40rpx; + height: 40rpx; + color: white; + background: #7cc4e8; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + top: -24rpx; + right: -10rpx; + border: 2rpx solid white; +} + +/* 通用卡片样式 */ +.u-card.data-v-f13b4d11 { + background-color: white; +} +.u-card .u-card-row.data-v-f13b4d11:last-child { + border-bottom: unset; +} +.u-card .u-card-row.data-v-f13b4d11 { + padding: 40rpx; + border-bottom: 2rpx solid #e7e7e7; +} +.u-card .u-card-row .u-card-row-btn.data-v-f13b4d11 { + color: #086EC7; +} +.u-card .u-card-row .u-card-row-top.data-v-f13b4d11, .u-card .u-card-row .u-card-row-content.data-v-f13b4d11 { + display: flex; + align-items: center; + justify-content: space-between; +} +.u-card .u-card-row .u-card-row-top.data-v-f13b4d11 { + padding-bottom: 40rpx; +} +.u-card .u-card-row .u-card-row-top .u-card-right .u-card-right-btn.data-v-f13b4d11 { + color: #7cc4e8; +} +.u-card .u-card-row .u-card-row-content .u-card-right.data-v-f13b4d11 { + display: flex; +} +.popup-content.data-v-f13b4d11 { + padding-top: 40rpx; + background-color: white; + border-radius: 20rpx 20rpx 0 0; + overflow: scroll; +} +.small-btn-css.data-v-f13b4d11 { + background: #7CC4E8; + color: white; + padding: 6rpx 40rpx; + border-radius: 40rpx; + font-size: 28rpx; + white-space: nowrap; + margin-left: 10rpx; + position: relative; +} +.cancel-btn.data-v-f13b4d11 { + display: block; + margin-top: 20rpx; +} +.cancel-btn .add-btn.data-v-f13b4d11 { + background: white !important; + color: black !important; + border: 2rpx solid #7cc4e8 !important; +} +.invalidCss.data-v-f13b4d11 { + background-color: #767676 !important; +} +.data-v-f13b4d11 .uni-popup__wrapper { + bottom: -34px; +} +.data-v-f13b4d11 .popup-content { + bottom: -34px; + padding-bottom: 34px; + background-color: white; +}page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js new file mode 100644 index 0000000..8fb5b39 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -0,0 +1,7477 @@ +"use strict"; +const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; +function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; +} +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*.*?\*\//gs; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +const EMPTY_OBJ = Object.freeze({}); +const EMPTY_ARR = Object.freeze([]); +const NOOP = () => { +}; +const NO = () => false; +const onRE = /^on[^a-z]/; +const isOn = (key) => onRE.test(key); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty$1 = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +const camelizeRE = /-(\w)/g; +const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); +const capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1)); +const toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns$1 = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +const def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +const looseToNumber = (val) => { + const n2 = parseFloat(val); + return isNaN(n2) ? val : n2; +}; +const LINEFEED = "\n"; +const SLOT_DEFAULT_NAME = "d"; +const ON_SHOW = "onShow"; +const ON_HIDE = "onHide"; +const ON_LAUNCH = "onLaunch"; +const ON_ERROR = "onError"; +const ON_THEME_CHANGE = "onThemeChange"; +const ON_PAGE_NOT_FOUND = "onPageNotFound"; +const ON_UNHANDLE_REJECTION = "onUnhandledRejection"; +const ON_LOAD = "onLoad"; +const ON_READY = "onReady"; +const ON_UNLOAD = "onUnload"; +const ON_INIT = "onInit"; +const ON_SAVE_EXIT_STATE = "onSaveExitState"; +const ON_RESIZE = "onResize"; +const ON_BACK_PRESS = "onBackPress"; +const ON_PAGE_SCROLL = "onPageScroll"; +const ON_TAB_ITEM_TAP = "onTabItemTap"; +const ON_REACH_BOTTOM = "onReachBottom"; +const ON_PULL_DOWN_REFRESH = "onPullDownRefresh"; +const ON_SHARE_TIMELINE = "onShareTimeline"; +const ON_ADD_TO_FAVORITES = "onAddToFavorites"; +const ON_SHARE_APP_MESSAGE = "onShareAppMessage"; +const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap"; +const ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = "onNavigationBarSearchInputClicked"; +const ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = "onNavigationBarSearchInputChanged"; +const ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = "onNavigationBarSearchInputConfirmed"; +const ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = "onNavigationBarSearchInputFocusChanged"; +const customizeRE = /:/g; +function customizeEvent(str) { + return camelize(str.replace(customizeRE, "-")); +} +function hasLeadingSlash(str) { + return str.indexOf("/") === 0; +} +function addLeadingSlash(str) { + return hasLeadingSlash(str) ? str : "/" + str; +} +const invokeArrayFns = (fns, arg) => { + let ret; + for (let i = 0; i < fns.length; i++) { + ret = fns[i](arg); + } + return ret; +}; +function once(fn, ctx = null) { + let res; + return (...args) => { + if (fn) { + res = fn.apply(ctx, args); + fn = null; + } + return res; + }; +} +function getValueByDataPath(obj, path) { + if (!isString(path)) { + return; + } + path = path.replace(/\[(\d+)\]/g, ".$1"); + const parts = path.split("."); + let key = parts[0]; + if (!obj) { + obj = {}; + } + if (parts.length === 1) { + return obj[key]; + } + return getValueByDataPath(obj[key], parts.slice(1).join(".")); +} +function sortObject(obj) { + let sortObj = {}; + if (isPlainObject$1(obj)) { + Object.keys(obj).sort().forEach((key) => { + const _key = key; + sortObj[_key] = obj[_key]; + }); + } + return !Object.keys(sortObj) ? obj : sortObj; +} +const encode = encodeURIComponent; +function stringifyQuery(obj, encodeStr = encode) { + const res = obj ? Object.keys(obj).map((key) => { + let val = obj[key]; + if (typeof val === void 0 || val === null) { + val = ""; + } else if (isPlainObject$1(val)) { + val = JSON.stringify(val); + } + return encodeStr(key) + "=" + encodeStr(val); + }).filter((x) => x.length > 0).join("&") : null; + return res ? `?${res}` : ""; +} +const PAGE_HOOKS = [ + ON_INIT, + ON_LOAD, + ON_SHOW, + ON_HIDE, + ON_UNLOAD, + ON_BACK_PRESS, + ON_PAGE_SCROLL, + ON_TAB_ITEM_TAP, + ON_REACH_BOTTOM, + ON_PULL_DOWN_REFRESH, + ON_SHARE_TIMELINE, + ON_SHARE_APP_MESSAGE, + ON_ADD_TO_FAVORITES, + ON_SAVE_EXIT_STATE, + ON_NAVIGATION_BAR_BUTTON_TAP, + ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, + ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, + ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, + ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED +]; +function isRootHook(name) { + return PAGE_HOOKS.indexOf(name) > -1; +} +const UniLifecycleHooks = [ + ON_SHOW, + ON_HIDE, + ON_LAUNCH, + ON_ERROR, + ON_THEME_CHANGE, + ON_PAGE_NOT_FOUND, + ON_UNHANDLE_REJECTION, + ON_INIT, + ON_LOAD, + ON_READY, + ON_UNLOAD, + ON_RESIZE, + ON_BACK_PRESS, + ON_PAGE_SCROLL, + ON_TAB_ITEM_TAP, + ON_REACH_BOTTOM, + ON_PULL_DOWN_REFRESH, + ON_SHARE_TIMELINE, + ON_ADD_TO_FAVORITES, + ON_SHARE_APP_MESSAGE, + ON_SAVE_EXIT_STATE, + ON_NAVIGATION_BAR_BUTTON_TAP, + ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, + ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, + ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, + ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED +]; +const MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /* @__PURE__ */ (() => { + return { + onPageScroll: 1, + onShareAppMessage: 1 << 1, + onShareTimeline: 1 << 2 + }; +})(); +function isUniLifecycleHook(name, value, checkType = true) { + if (checkType && !isFunction(value)) { + return false; + } + if (UniLifecycleHooks.indexOf(name) > -1) { + return true; + } else if (name.indexOf("on") === 0) { + return true; + } + return false; +} +let vueApp; +const createVueAppHooks = []; +function onCreateVueApp(hook) { + if (vueApp) { + return hook(vueApp); + } + createVueAppHooks.push(hook); +} +function invokeCreateVueAppHook(app) { + vueApp = app; + createVueAppHooks.forEach((hook) => hook(app)); +} +const invokeCreateErrorHandler = once((app, createErrorHandler2) => { + if (isFunction(app._component.onError)) { + return createErrorHandler2(app); + } +}); +const E = function() { +}; +E.prototype = { + on: function(name, callback, ctx) { + var e2 = this.e || (this.e = {}); + (e2[name] || (e2[name] = [])).push({ + fn: callback, + ctx + }); + return this; + }, + once: function(name, callback, ctx) { + var self = this; + function listener() { + self.off(name, listener); + callback.apply(ctx, arguments); + } + listener._ = callback; + return this.on(name, listener, ctx); + }, + emit: function(name) { + var data = [].slice.call(arguments, 1); + var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); + var i = 0; + var len = evtArr.length; + for (i; i < len; i++) { + evtArr[i].fn.apply(evtArr[i].ctx, data); + } + return this; + }, + off: function(name, callback) { + var e2 = this.e || (this.e = {}); + var evts = e2[name]; + var liveEvents = []; + if (evts && callback) { + for (var i = 0, len = evts.length; i < len; i++) { + if (evts[i].fn !== callback && evts[i].fn._ !== callback) + liveEvents.push(evts[i]); + } + } + liveEvents.length ? e2[name] = liveEvents : delete e2[name]; + return this; + } +}; +var E$1 = E; +const LOCALE_ZH_HANS = "zh-Hans"; +const LOCALE_ZH_HANT = "zh-Hant"; +const LOCALE_EN = "en"; +const LOCALE_FR = "fr"; +const LOCALE_ES = "es"; +function include(str, parts) { + return !!parts.find((part) => str.indexOf(part) !== -1); +} +function startsWith(str, parts) { + return parts.find((part) => str.indexOf(part) === 0); +} +function normalizeLocale(locale, messages) { + if (!locale) { + return; + } + locale = locale.trim().replace(/_/g, "-"); + if (messages && messages[locale]) { + return locale; + } + locale = locale.toLowerCase(); + if (locale === "chinese") { + return LOCALE_ZH_HANS; + } + if (locale.indexOf("zh") === 0) { + if (locale.indexOf("-hans") > -1) { + return LOCALE_ZH_HANS; + } + if (locale.indexOf("-hant") > -1) { + return LOCALE_ZH_HANT; + } + if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) { + return LOCALE_ZH_HANT; + } + return LOCALE_ZH_HANS; + } + let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; + if (messages && Object.keys(messages).length > 0) { + locales = Object.keys(messages); + } + const lang = startsWith(locale, locales); + if (lang) { + return lang; + } +} +function getBaseSystemInfo() { + return wx.getSystemInfoSync(); +} +function validateProtocolFail(name, msg) { + console.warn(`${name}: ${msg}`); +} +function validateProtocol(name, data, protocol, onFail) { + if (!onFail) { + onFail = validateProtocolFail; + } + for (const key in protocol) { + const errMsg = validateProp$1(key, data[key], protocol[key], !hasOwn(data, key)); + if (isString(errMsg)) { + onFail(name, errMsg); + } + } +} +function validateProtocols(name, args, protocol, onFail) { + if (!protocol) { + return; + } + if (!isArray(protocol)) { + return validateProtocol(name, args[0] || /* @__PURE__ */ Object.create(null), protocol, onFail); + } + const len = protocol.length; + const argsLen = args.length; + for (let i = 0; i < len; i++) { + const opts = protocol[i]; + const data = /* @__PURE__ */ Object.create(null); + if (argsLen > i) { + data[opts.name] = args[i]; + } + validateProtocol(name, data, { [opts.name]: opts }, onFail); + } +} +function validateProp$1(name, value, prop, isAbsent) { + if (!isPlainObject$1(prop)) { + prop = { type: prop }; + } + const { type, required, validator } = prop; + if (required && isAbsent) { + return 'Missing required args: "' + name + '"'; + } + if (value == null && !required) { + return; + } + if (type != null) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType$1(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + return getInvalidTypeMessage$1(name, value, expectedTypes); + } + } + if (validator) { + return validator(value); + } +} +const isSimpleType$1 = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol"); +function assertType$1(value, type) { + let valid; + const expectedType = getType$1(type); + if (isSimpleType$1(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else { + { + valid = value instanceof type; + } + } + return { + valid, + expectedType + }; +} +function getInvalidTypeMessage$1(name, value, expectedTypes) { + let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(capitalize).join(", ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue$1(value, expectedType); + const receivedValue = styleValue$1(value, receivedType); + if (expectedTypes.length === 1 && isExplicable$1(expectedType) && !isBoolean$1(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable$1(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; +} +function getType$1(ctor) { + const match = ctor && ctor.toString().match(/^\s*function (\w+)/); + return match ? match[1] : ""; +} +function styleValue$1(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } +} +function isExplicable$1(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); +} +function isBoolean$1(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); +} +function tryCatch(fn) { + return function() { + try { + return fn.apply(fn, arguments); + } catch (e2) { + console.error(e2); + } + }; +} +let invokeCallbackId = 1; +const invokeCallbacks = {}; +function addInvokeCallback(id, name, callback, keepAlive = false) { + invokeCallbacks[id] = { + name, + keepAlive, + callback + }; + return id; +} +function invokeCallback(id, res, extras) { + if (typeof id === "number") { + const opts = invokeCallbacks[id]; + if (opts) { + if (!opts.keepAlive) { + delete invokeCallbacks[id]; + } + return opts.callback(res, extras); + } + } + return res; +} +const API_SUCCESS = "success"; +const API_FAIL = "fail"; +const API_COMPLETE = "complete"; +function getApiCallbacks(args) { + const apiCallbacks = {}; + for (const name in args) { + const fn = args[name]; + if (isFunction(fn)) { + apiCallbacks[name] = tryCatch(fn); + delete args[name]; + } + } + return apiCallbacks; +} +function normalizeErrMsg$1(errMsg, name) { + if (!errMsg || errMsg.indexOf(":fail") === -1) { + return name + ":ok"; + } + return name + errMsg.substring(errMsg.indexOf(":fail")); +} +function createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) { + if (!isPlainObject$1(args)) { + args = {}; + } + const { success, fail, complete } = getApiCallbacks(args); + const hasSuccess = isFunction(success); + const hasFail = isFunction(fail); + const hasComplete = isFunction(complete); + const callbackId = invokeCallbackId++; + addInvokeCallback(callbackId, name, (res) => { + res = res || {}; + res.errMsg = normalizeErrMsg$1(res.errMsg, name); + isFunction(beforeAll) && beforeAll(res); + if (res.errMsg === name + ":ok") { + isFunction(beforeSuccess) && beforeSuccess(res, args); + hasSuccess && success(res); + } else { + hasFail && fail(res); + } + hasComplete && complete(res); + }); + return callbackId; +} +const HOOK_SUCCESS = "success"; +const HOOK_FAIL = "fail"; +const HOOK_COMPLETE = "complete"; +const globalInterceptors = {}; +const scopedInterceptors = {}; +function wrapperHook(hook, params) { + return function(data) { + return hook(data, params) || data; + }; +} +function queue$1(hooks, data, params) { + let promise = false; + for (let i = 0; i < hooks.length; i++) { + const hook = hooks[i]; + if (promise) { + promise = Promise.resolve(wrapperHook(hook, params)); + } else { + const res = hook(data, params); + if (isPromise(res)) { + promise = Promise.resolve(res); + } + if (res === false) { + return { + then() { + }, + catch() { + } + }; + } + } + } + return promise || { + then(callback) { + return callback(data); + }, + catch() { + } + }; +} +function wrapperOptions(interceptors2, options = {}) { + [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => { + const hooks = interceptors2[name]; + if (!isArray(hooks)) { + return; + } + const oldCallback = options[name]; + options[name] = function callbackInterceptor(res) { + queue$1(hooks, res, options).then((res2) => { + return isFunction(oldCallback) && oldCallback(res2) || res2; + }); + }; + }); + return options; +} +function wrapperReturnValue(method, returnValue) { + const returnValueHooks = []; + if (isArray(globalInterceptors.returnValue)) { + returnValueHooks.push(...globalInterceptors.returnValue); + } + const interceptor = scopedInterceptors[method]; + if (interceptor && isArray(interceptor.returnValue)) { + returnValueHooks.push(...interceptor.returnValue); + } + returnValueHooks.forEach((hook) => { + returnValue = hook(returnValue) || returnValue; + }); + return returnValue; +} +function getApiInterceptorHooks(method) { + const interceptor = /* @__PURE__ */ Object.create(null); + Object.keys(globalInterceptors).forEach((hook) => { + if (hook !== "returnValue") { + interceptor[hook] = globalInterceptors[hook].slice(); + } + }); + const scopedInterceptor = scopedInterceptors[method]; + if (scopedInterceptor) { + Object.keys(scopedInterceptor).forEach((hook) => { + if (hook !== "returnValue") { + interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); + } + }); + } + return interceptor; +} +function invokeApi(method, api, options, params) { + const interceptor = getApiInterceptorHooks(method); + if (interceptor && Object.keys(interceptor).length) { + if (isArray(interceptor.invoke)) { + const res = queue$1(interceptor.invoke, options); + return res.then((options2) => { + return api(wrapperOptions(getApiInterceptorHooks(method), options2), ...params); + }); + } else { + return api(wrapperOptions(interceptor, options), ...params); + } + } + return api(options, ...params); +} +function hasCallback(args) { + if (isPlainObject$1(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) { + return true; + } + return false; +} +function handlePromise(promise) { + return promise; +} +function promisify$1(name, fn) { + return (args = {}, ...rest) => { + if (hasCallback(args)) { + return wrapperReturnValue(name, invokeApi(name, fn, args, rest)); + } + return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { + invokeApi(name, fn, extend(args, { success: resolve2, fail: reject }), rest); + }))); + }; +} +function formatApiArgs(args, options) { + const params = args[0]; + if (!options || !isPlainObject$1(options.formatArgs) && isPlainObject$1(params)) { + return; + } + const formatArgs = options.formatArgs; + const keys = Object.keys(formatArgs); + for (let i = 0; i < keys.length; i++) { + const name = keys[i]; + const formatterOrDefaultValue = formatArgs[name]; + if (isFunction(formatterOrDefaultValue)) { + const errMsg = formatterOrDefaultValue(args[0][name], params); + if (isString(errMsg)) { + return errMsg; + } + } else { + if (!hasOwn(params, name)) { + params[name] = formatterOrDefaultValue; + } + } + } +} +function invokeSuccess(id, name, res) { + return invokeCallback(id, extend(res || {}, { errMsg: name + ":ok" })); +} +function invokeFail(id, name, errMsg, errRes) { + return invokeCallback(id, extend({ errMsg: name + ":fail" + (errMsg ? " " + errMsg : "") }, errRes)); +} +function beforeInvokeApi(name, args, protocol, options) { + { + validateProtocols(name, args, protocol); + } + if (options && options.beforeInvoke) { + const errMsg2 = options.beforeInvoke(args); + if (isString(errMsg2)) { + return errMsg2; + } + } + const errMsg = formatApiArgs(args, options); + if (errMsg) { + return errMsg; + } +} +function normalizeErrMsg(errMsg) { + if (!errMsg || isString(errMsg)) { + return errMsg; + } + if (errMsg.stack) { + console.error(errMsg.message + LINEFEED + errMsg.stack); + return errMsg.message; + } + return errMsg; +} +function wrapperTaskApi(name, fn, protocol, options) { + return (args) => { + const id = createAsyncApiCallback(name, args, options); + const errMsg = beforeInvokeApi(name, [args], protocol, options); + if (errMsg) { + return invokeFail(id, name, errMsg); + } + return fn(args, { + resolve: (res) => invokeSuccess(id, name, res), + reject: (errMsg2, errRes) => invokeFail(id, name, normalizeErrMsg(errMsg2), errRes) + }); + }; +} +function wrapperSyncApi(name, fn, protocol, options) { + return (...args) => { + const errMsg = beforeInvokeApi(name, args, protocol, options); + if (errMsg) { + throw new Error(errMsg); + } + return fn.apply(null, args); + }; +} +function wrapperAsyncApi(name, fn, protocol, options) { + return wrapperTaskApi(name, fn, protocol, options); +} +function defineSyncApi(name, fn, protocol, options) { + return wrapperSyncApi(name, fn, protocol, options); +} +function defineAsyncApi(name, fn, protocol, options) { + return promisify$1(name, wrapperAsyncApi(name, fn, protocol, options)); +} +const API_UPX2PX = "upx2px"; +const Upx2pxProtocol = [ + { + name: "upx", + type: [Number, String], + required: true + } +]; +const EPS = 1e-4; +const BASE_DEVICE_WIDTH = 750; +let isIOS = false; +let deviceWidth = 0; +let deviceDPR = 0; +function checkDeviceWidth() { + const { platform, pixelRatio, windowWidth } = getBaseSystemInfo(); + deviceWidth = windowWidth; + deviceDPR = pixelRatio; + isIOS = platform === "ios"; +} +const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => { + if (deviceWidth === 0) { + checkDeviceWidth(); + } + number = Number(number); + if (number === 0) { + return 0; + } + let width = newDeviceWidth || deviceWidth; + let result = number / BASE_DEVICE_WIDTH * width; + if (result < 0) { + result = -result; + } + result = Math.floor(result + EPS); + if (result === 0) { + if (deviceDPR === 1 || !isIOS) { + result = 1; + } else { + result = 0.5; + } + } + return number < 0 ? -result : result; +}, Upx2pxProtocol); +const API_ADD_INTERCEPTOR = "addInterceptor"; +const API_REMOVE_INTERCEPTOR = "removeInterceptor"; +const AddInterceptorProtocol = [ + { + name: "method", + type: [String, Object], + required: true + } +]; +const RemoveInterceptorProtocol = AddInterceptorProtocol; +function mergeInterceptorHook(interceptors2, interceptor) { + Object.keys(interceptor).forEach((hook) => { + if (isFunction(interceptor[hook])) { + interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]); + } + }); +} +function removeInterceptorHook(interceptors2, interceptor) { + if (!interceptors2 || !interceptor) { + return; + } + Object.keys(interceptor).forEach((name) => { + const hooks = interceptors2[name]; + const hook = interceptor[name]; + if (isArray(hooks) && isFunction(hook)) { + remove(hooks, hook); + } + }); +} +function mergeHook(parentVal, childVal) { + const res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal; + return res ? dedupeHooks(res) : res; +} +function dedupeHooks(hooks) { + const res = []; + for (let i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res; +} +const addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => { + if (isString(method) && isPlainObject$1(interceptor)) { + mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor); + } else if (isPlainObject$1(method)) { + mergeInterceptorHook(globalInterceptors, method); + } +}, AddInterceptorProtocol); +const removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => { + if (isString(method)) { + if (isPlainObject$1(interceptor)) { + removeInterceptorHook(scopedInterceptors[method], interceptor); + } else { + delete scopedInterceptors[method]; + } + } else if (isPlainObject$1(method)) { + removeInterceptorHook(globalInterceptors, method); + } +}, RemoveInterceptorProtocol); +const interceptors = {}; +const API_ON = "$on"; +const OnProtocol = [ + { + name: "event", + type: String, + required: true + }, + { + name: "callback", + type: Function, + required: true + } +]; +const API_ONCE = "$once"; +const OnceProtocol = OnProtocol; +const API_OFF = "$off"; +const OffProtocol = [ + { + name: "event", + type: [String, Array] + }, + { + name: "callback", + type: Function + } +]; +const API_EMIT = "$emit"; +const EmitProtocol = [ + { + name: "event", + type: String, + required: true + } +]; +const emitter = new E$1(); +const $on = defineSyncApi(API_ON, (name, callback) => { + emitter.on(name, callback); + return () => emitter.off(name, callback); +}, OnProtocol); +const $once = defineSyncApi(API_ONCE, (name, callback) => { + emitter.once(name, callback); + return () => emitter.off(name, callback); +}, OnceProtocol); +const $off = defineSyncApi(API_OFF, (name, callback) => { + if (!name) { + emitter.e = {}; + return; + } + if (!isArray(name)) + name = [name]; + name.forEach((n2) => emitter.off(n2, callback)); +}, OffProtocol); +const $emit = defineSyncApi(API_EMIT, (name, ...args) => { + emitter.emit(name, ...args); +}, EmitProtocol); +let cid; +let cidErrMsg; +let enabled; +function normalizePushMessage(message) { + try { + return JSON.parse(message); + } catch (e2) { + } + return message; +} +function invokePushCallback(args) { + if (args.type === "enabled") { + enabled = true; + } else if (args.type === "clientId") { + cid = args.cid; + cidErrMsg = args.errMsg; + invokeGetPushCidCallbacks(cid, args.errMsg); + } else if (args.type === "pushMsg") { + const message = { + type: "receive", + data: normalizePushMessage(args.message) + }; + for (let i = 0; i < onPushMessageCallbacks.length; i++) { + const callback = onPushMessageCallbacks[i]; + callback(message); + if (message.stopped) { + break; + } + } + } else if (args.type === "click") { + onPushMessageCallbacks.forEach((callback) => { + callback({ + type: "click", + data: normalizePushMessage(args.message) + }); + }); + } +} +const getPushCidCallbacks = []; +function invokeGetPushCidCallbacks(cid2, errMsg) { + getPushCidCallbacks.forEach((callback) => { + callback(cid2, errMsg); + }); + getPushCidCallbacks.length = 0; +} +const API_GET_PUSH_CLIENT_ID = "getPushClientId"; +const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: resolve2, reject }) => { + Promise.resolve().then(() => { + if (typeof enabled === "undefined") { + enabled = false; + cid = ""; + cidErrMsg = "uniPush is not enabled"; + } + getPushCidCallbacks.push((cid2, errMsg) => { + if (cid2) { + resolve2({ cid: cid2 }); + } else { + reject(errMsg); + } + }); + if (typeof cid !== "undefined") { + invokeGetPushCidCallbacks(cid, cidErrMsg); + } + }); +}); +const onPushMessageCallbacks = []; +const onPushMessage = (fn) => { + if (onPushMessageCallbacks.indexOf(fn) === -1) { + onPushMessageCallbacks.push(fn); + } +}; +const offPushMessage = (fn) => { + if (!fn) { + onPushMessageCallbacks.length = 0; + } else { + const index2 = onPushMessageCallbacks.indexOf(fn); + if (index2 > -1) { + onPushMessageCallbacks.splice(index2, 1); + } + } +}; +const SYNC_API_RE = /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/; +const CONTEXT_API_RE = /^create|Manager$/; +const CONTEXT_API_RE_EXC = ["createBLEConnection"]; +const ASYNC_API = ["createBLEConnection"]; +const CALLBACK_API_RE = /^on|^off/; +function isContextApi(name) { + return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1; +} +function isSyncApi(name) { + return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1; +} +function isCallbackApi(name) { + return CALLBACK_API_RE.test(name) && name !== "onPush"; +} +function shouldPromise(name) { + if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) { + return false; + } + return true; +} +if (!Promise.prototype.finally) { + Promise.prototype.finally = function(onfinally) { + const promise = this.constructor; + return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => { + throw reason; + })); + }; +} +function promisify(name, api) { + if (!shouldPromise(name)) { + return api; + } + if (!isFunction(api)) { + return api; + } + return function promiseApi(options = {}, ...rest) { + if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) { + return wrapperReturnValue(name, invokeApi(name, api, options, rest)); + } + return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { + invokeApi(name, api, extend({}, options, { + success: resolve2, + fail: reject + }), rest); + }))); + }; +} +const CALLBACKS = ["success", "fail", "cancel", "complete"]; +function initWrapper(protocols2) { + function processCallback(methodName, method, returnValue) { + return function(res) { + return method(processReturnValue(methodName, res, returnValue)); + }; + } + function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) { + if (isPlainObject$1(fromArgs)) { + const toArgs = keepFromArgs === true ? fromArgs : {}; + if (isFunction(argsOption)) { + argsOption = argsOption(fromArgs, toArgs) || {}; + } + for (const key in fromArgs) { + if (hasOwn(argsOption, key)) { + let keyOption = argsOption[key]; + if (isFunction(keyOption)) { + keyOption = keyOption(fromArgs[key], fromArgs, toArgs); + } + if (!keyOption) { + console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`); + } else if (isString(keyOption)) { + toArgs[keyOption] = fromArgs[key]; + } else if (isPlainObject$1(keyOption)) { + toArgs[keyOption.name ? keyOption.name : key] = keyOption.value; + } + } else if (CALLBACKS.indexOf(key) !== -1) { + const callback = fromArgs[key]; + if (isFunction(callback)) { + toArgs[key] = processCallback(methodName, callback, returnValue); + } + } else { + if (!keepFromArgs && !hasOwn(toArgs, key)) { + toArgs[key] = fromArgs[key]; + } + } + } + return toArgs; + } else if (isFunction(fromArgs)) { + fromArgs = processCallback(methodName, fromArgs, returnValue); + } + return fromArgs; + } + function processReturnValue(methodName, res, returnValue, keepReturnValue = false) { + if (isFunction(protocols2.returnValue)) { + res = protocols2.returnValue(methodName, res); + } + return processArgs(methodName, res, returnValue, {}, keepReturnValue); + } + return function wrapper(methodName, method) { + if (!hasOwn(protocols2, methodName)) { + return method; + } + const protocol = protocols2[methodName]; + if (!protocol) { + return function() { + console.error(`微信小程序 暂不支持${methodName}`); + }; + } + return function(arg1, arg2) { + let options = protocol; + if (isFunction(protocol)) { + options = protocol(arg1); + } + arg1 = processArgs(methodName, arg1, options.args, options.returnValue); + const args = [arg1]; + if (typeof arg2 !== "undefined") { + args.push(arg2); + } + const returnValue = wx[options.name || methodName].apply(wx, args); + if (isSyncApi(methodName)) { + return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName)); + } + return returnValue; + }; + }; +} +const getLocale = () => { + const app = isFunction(getApp) && getApp({ allowDefault: true }); + if (app && app.$vm) { + return app.$vm.$locale; + } + return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN; +}; +const setLocale = (locale) => { + const app = isFunction(getApp) && getApp(); + if (!app) { + return false; + } + const oldLocale = app.$vm.$locale; + if (oldLocale !== locale) { + app.$vm.$locale = locale; + onLocaleChangeCallbacks.forEach((fn) => fn({ locale })); + return true; + } + return false; +}; +const onLocaleChangeCallbacks = []; +const onLocaleChange = (fn) => { + if (onLocaleChangeCallbacks.indexOf(fn) === -1) { + onLocaleChangeCallbacks.push(fn); + } +}; +if (typeof global !== "undefined") { + global.getLocale = getLocale; +} +const UUID_KEY = "__DC_STAT_UUID"; +let deviceId; +function useDeviceId(global2 = wx) { + return function addDeviceId(_, toRes) { + deviceId = deviceId || global2.getStorageSync(UUID_KEY); + if (!deviceId) { + deviceId = Date.now() + "" + Math.floor(Math.random() * 1e7); + wx.setStorage({ + key: UUID_KEY, + data: deviceId + }); + } + toRes.deviceId = deviceId; + }; +} +function addSafeAreaInsets(fromRes, toRes) { + if (fromRes.safeArea) { + const safeArea = fromRes.safeArea; + toRes.safeAreaInsets = { + top: safeArea.top, + left: safeArea.left, + right: fromRes.windowWidth - safeArea.right, + bottom: fromRes.screenHeight - safeArea.bottom + }; + } +} +function populateParameters(fromRes, toRes) { + const { brand = "", model = "", system = "", language = "", theme, version: version2, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation } = fromRes; + let osName = ""; + let osVersion = ""; + { + osName = system.split(" ")[0] || ""; + osVersion = system.split(" ")[1] || ""; + } + let hostVersion = version2; + let deviceType = getGetDeviceType(fromRes, model); + let deviceBrand = getDeviceBrand(brand); + let _hostName = getHostName(fromRes); + let _deviceOrientation = deviceOrientation; + let _devicePixelRatio = pixelRatio; + let _SDKVersion = SDKVersion; + const hostLanguage = language.replace(/_/g, "-"); + const parameters = { + appId: "__UNI__A2B2065", + appName: "vision-record", + appVersion: "1.0.0", + appVersionCode: "100", + appLanguage: getAppLanguage(hostLanguage), + uniCompileVersion: "3.8.12", + uniRuntimeVersion: "3.8.12", + uniPlatform: "mp-weixin", + deviceBrand, + deviceModel: model, + deviceType, + devicePixelRatio: _devicePixelRatio, + deviceOrientation: _deviceOrientation, + osName: osName.toLocaleLowerCase(), + osVersion, + hostTheme: theme, + hostVersion, + hostLanguage, + hostName: _hostName, + hostSDKVersion: _SDKVersion, + hostFontSizeSetting: fontSizeSetting, + windowTop: 0, + windowBottom: 0, + // TODO + osLanguage: void 0, + osTheme: void 0, + ua: void 0, + hostPackageName: void 0, + browserName: void 0, + browserVersion: void 0 + }; + extend(toRes, parameters); +} +function getGetDeviceType(fromRes, model) { + let deviceType = fromRes.deviceType || "phone"; + { + const deviceTypeMaps = { + ipad: "pad", + windows: "pc", + mac: "pc" + }; + const deviceTypeMapsKeys = Object.keys(deviceTypeMaps); + const _model = model.toLocaleLowerCase(); + for (let index2 = 0; index2 < deviceTypeMapsKeys.length; index2++) { + const _m = deviceTypeMapsKeys[index2]; + if (_model.indexOf(_m) !== -1) { + deviceType = deviceTypeMaps[_m]; + break; + } + } + } + return deviceType; +} +function getDeviceBrand(brand) { + let deviceBrand = brand; + if (deviceBrand) { + deviceBrand = deviceBrand.toLocaleLowerCase(); + } + return deviceBrand; +} +function getAppLanguage(defaultLanguage) { + return getLocale ? getLocale() : defaultLanguage; +} +function getHostName(fromRes) { + const _platform = "WeChat"; + let _hostName = fromRes.hostName || _platform; + { + if (fromRes.environment) { + _hostName = fromRes.environment; + } else if (fromRes.host && fromRes.host.env) { + _hostName = fromRes.host.env; + } + } + return _hostName; +} +const getSystemInfo = { + returnValue: (fromRes, toRes) => { + addSafeAreaInsets(fromRes, toRes); + useDeviceId()(fromRes, toRes); + populateParameters(fromRes, toRes); + } +}; +const getSystemInfoSync = getSystemInfo; +const redirectTo = {}; +const previewImage = { + args(fromArgs, toArgs) { + let currentIndex = parseInt(fromArgs.current); + if (isNaN(currentIndex)) { + return; + } + const urls = fromArgs.urls; + if (!isArray(urls)) { + return; + } + const len = urls.length; + if (!len) { + return; + } + if (currentIndex < 0) { + currentIndex = 0; + } else if (currentIndex >= len) { + currentIndex = len - 1; + } + if (currentIndex > 0) { + toArgs.current = urls[currentIndex]; + toArgs.urls = urls.filter((item, index2) => index2 < currentIndex ? item !== urls[currentIndex] : true); + } else { + toArgs.current = urls[0]; + } + return { + indicator: false, + loop: false + }; + } +}; +const showActionSheet = { + args(fromArgs, toArgs) { + toArgs.alertText = fromArgs.title; + } +}; +const getDeviceInfo = { + returnValue: (fromRes, toRes) => { + const { brand, model } = fromRes; + let deviceType = getGetDeviceType(fromRes, model); + let deviceBrand = getDeviceBrand(brand); + useDeviceId()(fromRes, toRes); + toRes = sortObject(extend(toRes, { + deviceType, + deviceBrand, + deviceModel: model + })); + } +}; +const getAppBaseInfo = { + returnValue: (fromRes, toRes) => { + const { version: version2, language, SDKVersion, theme } = fromRes; + let _hostName = getHostName(fromRes); + let hostLanguage = language.replace(/_/g, "-"); + toRes = sortObject(extend(toRes, { + hostVersion: version2, + hostLanguage, + hostName: _hostName, + hostSDKVersion: SDKVersion, + hostTheme: theme, + appId: "__UNI__A2B2065", + appName: "vision-record", + appVersion: "1.0.0", + appVersionCode: "100", + appLanguage: getAppLanguage(hostLanguage) + })); + } +}; +const getWindowInfo = { + returnValue: (fromRes, toRes) => { + addSafeAreaInsets(fromRes, toRes); + toRes = sortObject(extend(toRes, { + windowTop: 0, + windowBottom: 0 + })); + } +}; +const getAppAuthorizeSetting = { + returnValue: function(fromRes, toRes) { + const { locationReducedAccuracy } = fromRes; + toRes.locationAccuracy = "unsupported"; + if (locationReducedAccuracy === true) { + toRes.locationAccuracy = "reduced"; + } else if (locationReducedAccuracy === false) { + toRes.locationAccuracy = "full"; + } + } +}; +const baseApis = { + $on, + $off, + $once, + $emit, + upx2px, + interceptors, + addInterceptor, + removeInterceptor, + onCreateVueApp, + invokeCreateVueAppHook, + getLocale, + setLocale, + onLocaleChange, + getPushClientId, + onPushMessage, + offPushMessage, + invokePushCallback +}; +function initUni(api, protocols2, platform = wx) { + const wrapper = initWrapper(protocols2); + const UniProxyHandlers = { + get(target, key) { + if (hasOwn(target, key)) { + return target[key]; + } + if (hasOwn(api, key)) { + return promisify(key, api[key]); + } + if (hasOwn(baseApis, key)) { + return promisify(key, baseApis[key]); + } + return promisify(key, wrapper(key, platform[key])); + } + }; + return new Proxy({}, UniProxyHandlers); +} +function initGetProvider(providers) { + return function getProvider2({ service, success, fail, complete }) { + let res; + if (providers[service]) { + res = { + errMsg: "getProvider:ok", + service, + provider: providers[service] + }; + isFunction(success) && success(res); + } else { + res = { + errMsg: "getProvider:fail:服务[" + service + "]不存在" + }; + isFunction(fail) && fail(res); + } + isFunction(complete) && complete(res); + }; +} +const objectKeys = [ + "qy", + "env", + "error", + "version", + "lanDebug", + "cloud", + "serviceMarket", + "router", + "worklet", + "__webpack_require_UNI_MP_PLUGIN__" +]; +const singlePageDisableKey = ["lanDebug", "router", "worklet"]; +const launchOption = wx.getLaunchOptionsSync ? wx.getLaunchOptionsSync() : null; +function isWxKey(key) { + if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) { + return false; + } + return objectKeys.indexOf(key) > -1 || typeof wx[key] === "function"; +} +function initWx() { + const newWx = {}; + for (const key in wx) { + if (isWxKey(key)) { + newWx[key] = wx[key]; + } + } + if (typeof globalThis !== "undefined" && typeof requireMiniProgram === "undefined") { + globalThis.wx = newWx; + } + return newWx; +} +const mocks$1 = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"]; +const getProvider = initGetProvider({ + oauth: ["weixin"], + share: ["weixin"], + payment: ["wxpay"], + push: ["weixin"] +}); +function initComponentMocks(component) { + const res = /* @__PURE__ */ Object.create(null); + mocks$1.forEach((name) => { + res[name] = component[name]; + }); + return res; +} +function createSelectorQuery() { + const query = wx$2.createSelectorQuery(); + const oldIn = query.in; + query.in = function newIn(component) { + return oldIn.call(this, initComponentMocks(component)); + }; + return query; +} +const wx$2 = initWx(); +let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo(); +if (!baseInfo) { + baseInfo = wx$2.getSystemInfoSync(); +} +const host = baseInfo ? baseInfo.host : null; +const shareVideoMessage = host && host.env === "SAAASDK" ? wx$2.miniapp.shareVideoMessage : wx$2.shareVideoMessage; +var shims = /* @__PURE__ */ Object.freeze({ + __proto__: null, + createSelectorQuery, + getProvider, + shareVideoMessage +}); +const compressImage = { + args(fromArgs, toArgs) { + if (fromArgs.compressedHeight && !toArgs.compressHeight) { + toArgs.compressHeight = fromArgs.compressedHeight; + } + if (fromArgs.compressedWidth && !toArgs.compressWidth) { + toArgs.compressWidth = fromArgs.compressedWidth; + } + } +}; +var protocols = /* @__PURE__ */ Object.freeze({ + __proto__: null, + compressImage, + getAppAuthorizeSetting, + getAppBaseInfo, + getDeviceInfo, + getSystemInfo, + getSystemInfoSync, + getWindowInfo, + previewImage, + redirectTo, + showActionSheet +}); +const wx$1 = initWx(); +var index = initUni(shims, protocols, wx$1); +function warn$1(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +let activeEffectScope; +class EffectScope { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$1(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else { + warn$1(`onScopeDispose() is called when there is no active effect scope to be associated with.`); + } +} +const createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; +}; +const wasTracked = (dep) => (dep.w & trackOpBit) > 0; +const newTracked = (dep) => (dep.n & trackOpBit) > 0; +const initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } +}; +const finalizeDepMarkers = (effect) => { + const { deps } = effect; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } +}; +const targetMap = /* @__PURE__ */ new WeakMap(); +let effectTrackDepth = 0; +let trackOpBit = 1; +const maxMarkerBits = 30; +let activeEffect; +const ITERATE_KEY = Symbol("iterate"); +const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate"); +class ReactiveEffect { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } +} +function cleanupEffect(effect) { + const { deps } = effect; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect); + } + deps.length = 0; + } +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = { effect: activeEffect, target, type, key }; + trackEffects(dep, eventInfo); + } +} +function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo)); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = { target, type, key, newValue, oldValue, oldTarget }; + if (deps.length === 1) { + if (deps[0]) { + { + triggerEffects(deps[0], eventInfo); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + { + triggerEffects(createDep(effects), eventInfo); + } + } +} +function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect of effects) { + if (effect.computed) { + triggerEffect(effect, debuggerEventExtraInfo); + } + } + for (const effect of effects) { + if (!effect.computed) { + triggerEffect(effect, debuggerEventExtraInfo); + } + } +} +function triggerEffect(effect, debuggerEventExtraInfo) { + if (effect !== activeEffect || effect.allowRecurse) { + if (effect.onTrigger) { + effect.onTrigger(extend({ effect }, debuggerEventExtraInfo)); + } + if (effect.scheduler) { + effect.scheduler(); + } else { + effect.run(); + } + } +} +function getDepFromReactive(object, key) { + var _a2; + return (_a2 = targetMap.get(object)) === null || _a2 === void 0 ? void 0 : _a2.get(key); +} +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +const get$1 = /* @__PURE__ */ createGetter(); +const shallowGet = /* @__PURE__ */ createGetter(false, true); +const readonlyGet = /* @__PURE__ */ createGetter(true); +const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true); +const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; +} +const set$1 = /* @__PURE__ */ createSetter(); +const shallowSet = /* @__PURE__ */ createSetter(true); +function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; +} +function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; +} +function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); +} +const mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys +}; +const readonlyHandlers = { + get: readonlyGet, + set(target, key) { + { + warn$1(`Set operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + }, + deleteProperty(target, key) { + { + warn$1(`Delete operation on key "${String(key)}" failed: target is readonly.`, target); + } + return true; + } +}; +const shallowReactiveHandlers = /* @__PURE__ */ extend({}, mutableHandlers, { + get: shallowGet, + set: shallowSet +}); +const shallowReadonlyHandlers = /* @__PURE__ */ extend({}, readonlyHandlers, { + get: shallowReadonlyGet +}); +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow2 = false) { + target = target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set$2(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target); + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow2) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this)); + } + return type === "delete" ? false : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set: set$2, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set: set$2, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + /* TriggerOpTypes.ADD */ + ), + set: createReadonlyMethod( + "set" + /* TriggerOpTypes.SET */ + ), + delete: createReadonlyMethod( + "delete" + /* TriggerOpTypes.DELETE */ + ), + clear: createReadonlyMethod( + "clear" + /* TriggerOpTypes.CLEAR */ + ), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod( + "add" + /* TriggerOpTypes.ADD */ + ), + set: createReadonlyMethod( + "set" + /* TriggerOpTypes.SET */ + ), + delete: createReadonlyMethod( + "delete" + /* TriggerOpTypes.DELETE */ + ), + clear: createReadonlyMethod( + "clear" + /* TriggerOpTypes.CLEAR */ + ), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +const [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`); + } +} +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value[ + "__v_skip" + /* ReactiveFlags.SKIP */ + ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap); +} +function shallowReactive(target) { + return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap); +} +function readonly(target) { + return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap); +} +function shallowReadonly(target) { + return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target[ + "__v_raw" + /* ReactiveFlags.RAW */ + ] && !(isReadonly2 && target[ + "__v_isReactive" + /* ReactiveFlags.IS_REACTIVE */ + ])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]); + } + return !!(value && value[ + "__v_isReactive" + /* ReactiveFlags.IS_REACTIVE */ + ]); +} +function isReadonly(value) { + return !!(value && value[ + "__v_isReadonly" + /* ReactiveFlags.IS_READONLY */ + ]); +} +function isShallow(value) { + return !!(value && value[ + "__v_isShallow" + /* ReactiveFlags.IS_SHALLOW */ + ]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + const raw = observed && observed[ + "__v_raw" + /* ReactiveFlags.RAW */ + ]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + def(value, "__v_skip", true); + return value; +} +const toReactive = (value) => isObject(value) ? reactive(value) : value; +const toReadonly = (value) => isObject(value) ? readonly(value) : value; +function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } + } +} +function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = toRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +} +function toRef(object, key, defaultValue) { + const val = object[key]; + return isRef(val) ? val : new ObjectRefImpl(object, key, defaultValue); +} +var _a; +class ComputedRefImpl { + constructor(getter, _setter, isReadonly2, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this[_a] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this[ + "__v_isReadonly" + /* ReactiveFlags.IS_READONLY */ + ] = isReadonly2; + } + get value() { + const self = toRaw(this); + trackRefValue(self); + if (self._dirty || !self._cacheable) { + self._dirty = false; + self._value = self.effect.run(); + } + return self._value; + } + set value(newValue) { + this._setter(newValue); + } +} +_a = "__v_isReadonly"; +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + }; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling(appWarnHandler, instance, 11, [ + msg + args.join(""), + instance && instance.proxy, + trace.map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`).join("\n"), + trace + ]); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +const ErrorTypeStrings = { + [ + "sp" + /* LifecycleHooks.SERVER_PREFETCH */ + ]: "serverPrefetch hook", + [ + "bc" + /* LifecycleHooks.BEFORE_CREATE */ + ]: "beforeCreate hook", + [ + "c" + /* LifecycleHooks.CREATED */ + ]: "created hook", + [ + "bm" + /* LifecycleHooks.BEFORE_MOUNT */ + ]: "beforeMount hook", + [ + "m" + /* LifecycleHooks.MOUNTED */ + ]: "mounted hook", + [ + "bu" + /* LifecycleHooks.BEFORE_UPDATE */ + ]: "beforeUpdate hook", + [ + "u" + /* LifecycleHooks.UPDATED */ + ]: "updated", + [ + "bum" + /* LifecycleHooks.BEFORE_UNMOUNT */ + ]: "beforeUnmount hook", + [ + "um" + /* LifecycleHooks.UNMOUNTED */ + ]: "unmounted hook", + [ + "a" + /* LifecycleHooks.ACTIVATED */ + ]: "activated hook", + [ + "da" + /* LifecycleHooks.DEACTIVATED */ + ]: "deactivated hook", + [ + "ec" + /* LifecycleHooks.ERROR_CAPTURED */ + ]: "errorCaptured hook", + [ + "rtc" + /* LifecycleHooks.RENDER_TRACKED */ + ]: "renderTracked hook", + [ + "rtg" + /* LifecycleHooks.RENDER_TRIGGERED */ + ]: "renderTriggered hook", + [ + 0 + /* ErrorCodes.SETUP_FUNCTION */ + ]: "setup function", + [ + 1 + /* ErrorCodes.RENDER_FUNCTION */ + ]: "render function", + [ + 2 + /* ErrorCodes.WATCH_GETTER */ + ]: "watcher getter", + [ + 3 + /* ErrorCodes.WATCH_CALLBACK */ + ]: "watcher callback", + [ + 4 + /* ErrorCodes.WATCH_CLEANUP */ + ]: "watcher cleanup function", + [ + 5 + /* ErrorCodes.NATIVE_EVENT_HANDLER */ + ]: "native event handler", + [ + 6 + /* ErrorCodes.COMPONENT_EVENT_HANDLER */ + ]: "component event handler", + [ + 7 + /* ErrorCodes.VNODE_HOOK */ + ]: "vnode hook", + [ + 8 + /* ErrorCodes.DIRECTIVE_HOOK */ + ]: "directive hook", + [ + 9 + /* ErrorCodes.TRANSITION_HOOK */ + ]: "transition hook", + [ + 10 + /* ErrorCodes.APP_ERROR_HANDLER */ + ]: "app errorHandler", + [ + 11 + /* ErrorCodes.APP_WARN_HANDLER */ + ]: "app warnHandler", + [ + 12 + /* ErrorCodes.FUNCTION_REF */ + ]: "ref function", + [ + 13 + /* ErrorCodes.ASYNC_COMPONENT_LOADER */ + ]: "async component loader", + [ + 14 + /* ErrorCodes.SCHEDULER */ + ]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" +}; +function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] || type; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + { + const info = ErrorTypeStrings[type] || type; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + console.error(err); + } else { + console.error(err); + } + } +} +let isFlushing = false; +let isFlushPending = false; +const queue = []; +let flushIndex = 0; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick$1(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function hasQueueJob(job) { + return queue.indexOf(job) > -1; +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? Infinity : job.id; +const comparator = (a, b) => { + const diff2 = getId(a) - getId(b); + if (diff2 === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff2; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = (job) => checkRecursiveUpdates(seen, job); + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling( + job, + null, + 14 + /* ErrorCodes.SCHEDULER */ + ); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +let devtools; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools) { + devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook(hook, target) { + var _a2, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + // eslint-disable-next-line no-restricted-globals + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-globals + !((_b = (_a2 = window.navigator) === null || _a2 === void 0 ? void 0 : _a2.userAgent) === null || _b === void 0 ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook( + "component:added" + /* DevtoolsHooks.COMPONENT_ADDED */ +); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook( + "component:updated" + /* DevtoolsHooks.COMPONENT_UPDATED */ +); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" + /* DevtoolsHooks.COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = (component) => { + if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + // fixed by xxxxxx + // 为 0 是 App,无 parent 是 Page 指向 App + component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0, + component + ); + }; +} +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:start" + /* DevtoolsHooks.PERFORMANCE_START */ +); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:end" + /* DevtoolsHooks.PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1("component:emit", component.appContext.app, component, event, params); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { emitsOptions, propsOptions: [propsOptions] } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn(`Invalid event arguments: event validation failed for event "${event}".`); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn(`Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(instance, instance.type)} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".`); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling(handler, instance, 6, args); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling(onceHandler, instance, 6, args); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +let currentRenderingInstance = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + instance && instance.type.__scopeId || null; + return prev; +} +function provide(key, value) { + if (!currentInstance) { + { + warn(`provide() can only be used inside setup().`); + } + } else { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + if (currentInstance.type.mpType === "app") { + currentInstance.appContext.app.provide(key, value); + } + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = currentInstance || currentRenderingInstance; + if (instance) { + const provides = instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance.proxy) : defaultValue; + } else { + warn(`injection "${String(key)}" not found.`); + } + } else { + warn(`inject() can only be used inside setup() or functional components.`); + } +} +const INITIAL_WATCHER_VALUE = {}; +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn(`\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + if (!cb) { + if (immediate !== void 0) { + warn(`watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`); + } + if (deep !== void 0) { + warn(`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`); + } + } + const warnInvalidSource = (s2) => { + warn(`Invalid watch source: `, s2, `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`); + }; + const instance = getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s2) => isReactive(s2) || isShallow(s2)); + getter = () => source.map((s2) => { + if (isRef(s2)) { + return s2.value; + } else if (isReactive(s2)) { + return traverse(s2); + } else if (isFunction(s2)) { + return callWithErrorHandling( + s2, + instance, + 2 + /* ErrorCodes.WATCH_GETTER */ + ); + } else { + warnInvalidSource(s2); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling( + source, + instance, + 2 + /* ErrorCodes.WATCH_GETTER */ + ); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling(source, instance, 3, [onCleanup]); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect.onStop = () => { + callWithErrorHandling( + fn, + instance, + 4 + /* ErrorCodes.WATCH_CLEANUP */ + ); + }; + }; + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect.active) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect = new ReactiveEffect(getter, scheduler); + { + effect.onTrack = onTrack; + effect.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect.run(); + } + } else if (flush === "post") { + queuePostRenderEffect$1(effect.run.bind(effect), instance && instance.suspense); + } else { + effect.run(); + } + const unwatch = () => { + effect.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect); + } + }; + return unwatch; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} +function traverse(value, seen) { + if (!isObject(value) || value[ + "__v_skip" + /* ReactiveFlags.SKIP */ + ]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject$1(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; +} +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + if (isRootHook(type)) { + target = target.root; + } + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey((ErrorTypeStrings[type] || type.replace(/^on/, "")).replace(/ hook$/, "")); + warn(`${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().`); + } +} +const createHook$1 = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); +const onBeforeMount = createHook$1( + "bm" + /* LifecycleHooks.BEFORE_MOUNT */ +); +const onMounted = createHook$1( + "m" + /* LifecycleHooks.MOUNTED */ +); +const onBeforeUpdate = createHook$1( + "bu" + /* LifecycleHooks.BEFORE_UPDATE */ +); +const onUpdated = createHook$1( + "u" + /* LifecycleHooks.UPDATED */ +); +const onBeforeUnmount = createHook$1( + "bum" + /* LifecycleHooks.BEFORE_UNMOUNT */ +); +const onUnmounted = createHook$1( + "um" + /* LifecycleHooks.UNMOUNTED */ +); +const onServerPrefetch = createHook$1( + "sp" + /* LifecycleHooks.SERVER_PREFETCH */ +); +const onRenderTriggered = createHook$1( + "rtg" + /* LifecycleHooks.RENDER_TRIGGERED */ +); +const onRenderTracked = createHook$1( + "rtc" + /* LifecycleHooks.RENDER_TRACKED */ +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn("Do not use built-in directive ids as custom directive id: " + name); + } +} +const COMPONENTS = "components"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component2 = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component2, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component2; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component2[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component2; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn(`resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +const getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的 + // $el: i => i.vnode.el, + $el: (i) => i.__$el || (i.__$el = {}), + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props), + $attrs: (i) => shallowReadonly(i.attrs), + $slots: (i) => shallowReadonly(i.slots), + $refs: (i) => shallowReadonly(i.refs), + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i), + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx + $watch: (i) => instanceWatch.bind(i) + }) +); +const isReservedPrefix = (key) => key === "_" || key === "$"; +const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n2 = accessCache[key]; + if (n2 !== void 0) { + switch (n2) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`); + } else if (instance === currentRenderingInstance) { + warn(`Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn(`Cannot mutate