├── .DS_Store ├── .gitignore ├── .hbuilderx └── launch.json ├── App.vue ├── Json.js ├── LICENSE ├── README.en.md ├── README.md ├── api ├── account.js ├── cms.js ├── common.js ├── exchange.js ├── finance.js ├── lottery.js ├── mining.js ├── option.js ├── otc.js ├── prediction.js ├── simpleearn.js └── user.js ├── common └── mixin │ └── mixin.js ├── components ├── SJ-LotteryDraw │ ├── SJ-LotteryDraw.css │ ├── SJ-LotteryDraw.css.map │ ├── SJ-LotteryDraw.js │ ├── SJ-LotteryDraw.scss │ └── SJ-LotteryDraw.vue ├── code-elf-guide │ └── code-elf-guide.vue ├── coin-list.vue ├── empty.vue ├── lime-painter │ ├── README.md │ ├── canvas.js │ ├── draw.js │ ├── gradient.js │ ├── index.vue │ ├── layout.js │ ├── qrcode.js │ └── utils.js ├── mescroll-uni │ ├── components │ │ ├── mescroll-down.css │ │ ├── mescroll-down.vue │ │ ├── mescroll-empty.vue │ │ ├── mescroll-top.vue │ │ ├── mescroll-up.css │ │ └── mescroll-up.vue │ ├── mescroll-body.css │ ├── mescroll-body.vue │ ├── mescroll-mixins.js │ ├── mescroll-uni-option.js │ ├── mescroll-uni.css │ ├── mescroll-uni.js │ ├── mescroll-uni.vue │ └── mixins │ │ ├── mescroll-comp.js │ │ ├── mescroll-more-item.js │ │ └── mescroll-more.js ├── mescroll-uni_bak │ ├── components │ │ ├── mescroll-down.css │ │ ├── mescroll-down.vue │ │ ├── mescroll-empty.vue │ │ ├── mescroll-top.vue │ │ ├── mescroll-up.css │ │ └── mescroll-up.vue │ ├── mescroll-body.css │ ├── mescroll-body.vue │ ├── mescroll-mixins.js │ ├── mescroll-uni-option.js │ ├── mescroll-uni.css │ ├── mescroll-uni.js │ ├── mescroll-uni.vue │ └── mixins │ │ ├── mescroll-comp.js │ │ ├── mescroll-more-item.js │ │ └── mescroll-more.js ├── mix-list-cell.vue ├── mix-loading │ └── mix-loading.vue ├── mpvuePicker.vue ├── noticeSwiper.vue ├── share.vue ├── tki-qrcode │ ├── qrcode.js │ └── tki-qrcode.vue ├── uni-cell.vue ├── uni-icons │ ├── icons.js │ └── uni-icons.vue ├── uni-indexed-list │ ├── uni-indexed-list-item.vue │ └── uni-indexed-list.vue ├── uni-list.vue ├── uni-load-more.vue ├── uni-load-more │ └── uni-load-more.vue ├── uni-number-box.vue ├── uni-popup.vue ├── uni-refresh.vue ├── uni-refresh.wxs ├── uni-steps.vue ├── uni-valid-popup.vue ├── upload-images.vue └── verifition │ └── verify │ ├── utils │ ├── ase.js │ └── request.js │ ├── verify.vue │ ├── verifyPoint │ └── verifyPoint.vue │ └── verifySlider │ └── verifySlider.vue ├── config └── componentConfig.js ├── doc ├── 10.jpg ├── 11.jpg ├── 12.jpg ├── 13.jpg ├── 14.jpeg ├── 15.jpeg ├── 16.jpeg ├── 17.jpeg ├── 18.jpg ├── 19.jpeg ├── appbox.jpg ├── fexcoin.jpg ├── qq_qrcode.jpg └── wechat_qrcode.jpg ├── hybrid ├── .DS_Store └── html │ ├── .DS_Store │ ├── chartConfig.js │ ├── charting_library │ ├── charting_library.min.d.ts │ ├── charting_library.min.js │ ├── datafeed-api.d.ts │ └── static │ │ ├── ar-tv-chart.2be7786e4f16505951a7.html │ │ ├── bundles │ │ ├── 0.1d4cbcaddbec7d8c5363.js │ │ ├── 1.2fa13f88d2bf6ae6f3f0.css │ │ ├── 1.2fa13f88d2bf6ae6f3f0.rtl.css │ │ ├── 1.ea828ac684caa2b94a1b.js │ │ ├── 10.0501e55a3ef6aa50aec6.js │ │ ├── 10.c0a8664f16f3834961e4.css │ │ ├── 10.c0a8664f16f3834961e4.rtl.css │ │ ├── 11.b900b9cb8ed6dd3bc321.css │ │ ├── 11.b900b9cb8ed6dd3bc321.rtl.css │ │ ├── 11.dd520838f92e45cd91e3.js │ │ ├── 12.18e3c4b9c329e737cb80.js │ │ ├── 12.87f9777d9fe2086ce090.css │ │ ├── 12.87f9777d9fe2086ce090.rtl.css │ │ ├── 13.46f312828e93b6546d0c.js │ │ ├── 14.579d7892443d1a90180c.js │ │ ├── 15.19c5212d15382007773d.js │ │ ├── 16.cc58f582c191485d9392.css │ │ ├── 16.cc58f582c191485d9392.rtl.css │ │ ├── 16.e0d00f8a564954896734.js │ │ ├── 17.00b04a06a8cd9c6f5f6c.js │ │ ├── 18.183d41ade16dae257526.css │ │ ├── 18.183d41ade16dae257526.rtl.css │ │ ├── 18.e4c458360dbad4de5cf6.js │ │ ├── 19.aba848e28ec755548668.css │ │ ├── 19.aba848e28ec755548668.rtl.css │ │ ├── 19.c5542d290eefbb001433.js │ │ ├── 2.195070ea59b3395625da.js │ │ ├── 2.a3e34146d368d13b6bc1.css │ │ ├── 2.a3e34146d368d13b6bc1.rtl.css │ │ ├── 20.2416da4fc4c075b56691.js │ │ ├── 20.f75162343321d7d9178c.css │ │ ├── 20.f75162343321d7d9178c.rtl.css │ │ ├── 21.7e987db0ed47cc3f789c.css │ │ ├── 21.7e987db0ed47cc3f789c.rtl.css │ │ ├── 21.fc856808959a5b8734f7.js │ │ ├── 22.c118eafc7686081984c8.js │ │ ├── 22.f31ebffc8672752a2d4b.css │ │ ├── 22.f31ebffc8672752a2d4b.rtl.css │ │ ├── 23.7c4be219df640cb3880c.css │ │ ├── 23.7c4be219df640cb3880c.rtl.css │ │ ├── 23.e89d09694523563b8f86.js │ │ ├── 24.319f9ed9725f3cea260a.js │ │ ├── 25.15d449d35706e01821dd.js │ │ ├── 26.16e9146c09ea7d6b839a.js │ │ ├── 27.54aad15135c7ea57b345.js │ │ ├── 28.3f2589cd73664ea3f3e3.js │ │ ├── 29.6a6accc00e80feb13030.js │ │ ├── 3.f41fdd1a128935b63e5b.js │ │ ├── 30.c3cc90c5fbe9a2b87ffb.js │ │ ├── 31.5c895c4f655400b0b4e2.css │ │ ├── 31.5c895c4f655400b0b4e2.rtl.css │ │ ├── 31.d081df3316799b489847.js │ │ ├── 32.48df7a8cdc38d60b308b.js │ │ ├── 32.b92773bfff0363a69bb9.css │ │ ├── 32.b92773bfff0363a69bb9.rtl.css │ │ ├── 33.4a74c62095be3045c87e.js │ │ ├── 33.ac320c107772f8e72252.css │ │ ├── 33.ac320c107772f8e72252.rtl.css │ │ ├── 34.17e0ce399a577f17ba55.js │ │ ├── 34.dd27b311326fd1fc6fde.css │ │ ├── 34.dd27b311326fd1fc6fde.rtl.css │ │ ├── 35.47b9d16b3fa10b495a11.css │ │ ├── 35.47b9d16b3fa10b495a11.rtl.css │ │ ├── 35.58433cec10095e3c1b7e.js │ │ ├── 36.2ee80b40751fcc88a65c.js │ │ ├── 36.e9a6bec06ee11d2c2d4a.css │ │ ├── 36.e9a6bec06ee11d2c2d4a.rtl.css │ │ ├── 37.065a5f2249aafcfe50ec.css │ │ ├── 37.065a5f2249aafcfe50ec.rtl.css │ │ ├── 37.1735365b01406a8d696d.js │ │ ├── 38.4073381c29c4e2bc2209.css │ │ ├── 38.4073381c29c4e2bc2209.rtl.css │ │ ├── 38.9ae2eea9402c30aa3046.js │ │ ├── 39.5f64b4bc2e263edfbf6e.css │ │ ├── 39.5f64b4bc2e263edfbf6e.rtl.css │ │ ├── 39.7e524b82ef9947f0f19f.js │ │ ├── 4.80bf1a925965757be6d4.js │ │ ├── 40.0f54f57304896d7506a2.css │ │ ├── 40.0f54f57304896d7506a2.rtl.css │ │ ├── 40.42bd9598272e9dd24457.js │ │ ├── 41.11c024e8e0504741fd66.js │ │ ├── 41.1dc91fcdd5dbde1247d7.css │ │ ├── 41.1dc91fcdd5dbde1247d7.rtl.css │ │ ├── 42.0491acaaf55887f7fcb3.js │ │ ├── 42.db948a104cb86b7df06e.css │ │ ├── 42.db948a104cb86b7df06e.rtl.css │ │ ├── 43.12df9892872230fa2898.css │ │ ├── 43.12df9892872230fa2898.rtl.css │ │ ├── 43.4ae432f1b8259dbfd0e5.js │ │ ├── 44.01ec30ff4ce8cf7fa8e5.css │ │ ├── 44.01ec30ff4ce8cf7fa8e5.rtl.css │ │ ├── 44.7aabc64d3dfb54c85d60.js │ │ ├── 45.6c1fc3ac2f6063249f97.js │ │ ├── 45.e09d2beed14ffd8995a9.css │ │ ├── 45.e09d2beed14ffd8995a9.rtl.css │ │ ├── 46.75a0e6fecbc3c92a6bc7.js │ │ ├── 46.923fdbea563cd1d28d4c.css │ │ ├── 46.923fdbea563cd1d28d4c.rtl.css │ │ ├── 47.773635a99e184d6dc131.js │ │ ├── 47.b48791ffffadc9c96a10.css │ │ ├── 47.b48791ffffadc9c96a10.rtl.css │ │ ├── 48.912258c9b4f11cd518c3.css │ │ ├── 48.912258c9b4f11cd518c3.rtl.css │ │ ├── 48.9d08141ee2d55bcad3e7.js │ │ ├── 49.0cb5c561f3b28a047912.css │ │ ├── 49.0cb5c561f3b28a047912.rtl.css │ │ ├── 49.929acbc67c2613c57f58.js │ │ ├── 5.1beaffde9123ffaeff74.js │ │ ├── 50.2c50aad369bf63f77061.js │ │ ├── 50.e2f9bc14536ad546e595.css │ │ ├── 50.e2f9bc14536ad546e595.rtl.css │ │ ├── 51.30c5804303a9f1c455e3.js │ │ ├── 51.a35e4c0d0b08a018e307.css │ │ ├── 51.a35e4c0d0b08a018e307.rtl.css │ │ ├── 52.be1d70abe1a172cc5c3a.css │ │ ├── 52.be1d70abe1a172cc5c3a.rtl.css │ │ ├── 52.c212ca3684de16c6f115.js │ │ ├── 53.3f6d736abe33683640bc.css │ │ ├── 53.3f6d736abe33683640bc.rtl.css │ │ ├── 53.7217742e39b70fc9d431.js │ │ ├── 54.9eb4ca2a30197d95fe82.js │ │ ├── 54.cf540e4ba48bf75e96c2.css │ │ ├── 54.cf540e4ba48bf75e96c2.rtl.css │ │ ├── 55.7707e6ae9f2ec8cfb656.js │ │ ├── 55.c11884ad80d526214fb6.css │ │ ├── 55.c11884ad80d526214fb6.rtl.css │ │ ├── 56.83cd8456e872f49059c3.js │ │ ├── 56.ea0c135a2b02b495fbb5.css │ │ ├── 56.ea0c135a2b02b495fbb5.rtl.css │ │ ├── 57.6384b62456dc4fed6ffb.js │ │ ├── 57.651927021db01a7ed13f.css │ │ ├── 57.651927021db01a7ed13f.rtl.css │ │ ├── 58.8077d6b199609737b3d5.js │ │ ├── 58.82b7bef062a290e587d4.css │ │ ├── 58.82b7bef062a290e587d4.rtl.css │ │ ├── 6.35dee0cfeb8a4d70732c.css │ │ ├── 6.35dee0cfeb8a4d70732c.rtl.css │ │ ├── 6.902d5f3923d45b49b876.js │ │ ├── 7.e98fce2ffac2c552565f.css │ │ ├── 7.e98fce2ffac2c552565f.rtl.css │ │ ├── 7.fc0941206f7b7d32812d.js │ │ ├── 8.180c6bdc716e5045b645.css │ │ ├── 8.180c6bdc716e5045b645.rtl.css │ │ ├── 8.62bd4ee21281906a7019.js │ │ ├── 9.855edb9bea2352bd5129.js │ │ ├── add-compare-dialog.e9db1b14483f3e7358f4.js │ │ ├── change-interval-dialog.c8c04c297cc329376f2b.js │ │ ├── chart-bottom-toolbar.da7ac0cc35cc8a26f65a.js │ │ ├── chart-widget-gui.8005316cfc1f06be4bf0.js │ │ ├── clipboard.5403f9bd852af06addff.js │ │ ├── confirm-inputs-dialog.f9823e95a365cd8974c9.js │ │ ├── confirm-symbol-input-dialog.c72289c830292c73812f.js │ │ ├── context-menu-renderer.5eff9c34fa03e94b2c1b.js │ │ ├── create-dialog.472fe015128398f27a86.js │ │ ├── crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur │ │ ├── dialogs-core.c712826575e8ea62d8e0.js │ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.css │ │ ├── dialogs-core.e9f630dd3fdeb4ceee21.rtl.css │ │ ├── dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur │ │ ├── drawing-toolbar.35360bdf4aedb7db7287.js │ │ ├── ds-property-pages.33a0b54c87f584f79681.js │ │ ├── editobjectdialog.a4fd348616e0724542ac.js │ │ ├── eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur │ │ ├── export-data.ea9e219d1d41389ea3b7.js │ │ ├── floating-toolbars.d7f25f59513991368767.js │ │ ├── fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff │ │ ├── fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2 │ │ ├── go-to-date-dialog-impl.51162344726d8956c763.js │ │ ├── grab.bc156522a6b55a60be9fae15c14b66c5.cur │ │ ├── grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur │ │ ├── hammerjs.46686dd839f22b742351.js │ │ ├── header-toolbar.743cca210a6a3e37939e.js │ │ ├── ie-fallback-logos.589046871bfa17cbfbda.js │ │ ├── lazy-jquery-ui.3a9fe36168ca8e6cacb8.js │ │ ├── lazy-velocity.d040cf1092d3b2920dde.js │ │ ├── library.4876b44fcf466b634068.js │ │ ├── library.bb7ca756e7cbe50becb3.css │ │ ├── library.bb7ca756e7cbe50becb3.rtl.css │ │ ├── line-tools-icons.c89643eed013eb0ff7c1.js │ │ ├── load-chart-dialog.24806d5c5be9fbdfd103.js │ │ ├── lt-pane-views.e06093931461762ecd11.js │ │ ├── moment.fdf50ccef2c78863664d.js │ │ ├── new-edit-object-dialog.232c44a337440602cba4.js │ │ ├── objecttreedialog.bb84539d18c87a88a80b.js │ │ ├── opacity-pattern.a6506134daec7169f68f563f084a9d41.svg │ │ ├── precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js │ │ ├── react.cdaa9c19dda854fad341.js │ │ ├── restricted-toolset.e356a29caff335c91f6b.js │ │ ├── runtime.d22af752ee0c2111becd.js │ │ ├── series-icons-map.e3b746e7a7341e8ddb2d.js │ │ ├── series-pane-views.678a074c53e327c3184a.js │ │ ├── service-worker.js │ │ ├── study-market.ff409c6c02ba9edc0151.js │ │ ├── study-pane-views.ee901b6c4a31f84ba03d.js │ │ ├── study-template-dialog.a6f710070f1f64f2ef11.js │ │ ├── symbol-info-dialog-impl.eaddb54cc066d7a021e2.js │ │ ├── symbolsearch.0057814b113bcee3d957.js │ │ ├── take-chart-image-dialog-impl.d61e03a87b11d0c1adf1.js │ │ ├── vendors.7b3c16ffccc2173faf89.js │ │ └── zoom.e21f24dd632c7069139bc47ae89c54b5.cur │ │ ├── cs-tv-chart.2be7786e4f16505951a7.html │ │ ├── da_DK-tv-chart.2be7786e4f16505951a7.html │ │ ├── de-tv-chart.2be7786e4f16505951a7.html │ │ ├── el-tv-chart.2be7786e4f16505951a7.html │ │ ├── en-tv-chart.2be7786e4f16505951a7.html │ │ ├── es-tv-chart.2be7786e4f16505951a7.html │ │ ├── et_EE-tv-chart.2be7786e4f16505951a7.html │ │ ├── fa-tv-chart.2be7786e4f16505951a7.html │ │ ├── fr-tv-chart.2be7786e4f16505951a7.html │ │ ├── he_IL-tv-chart.2be7786e4f16505951a7.html │ │ ├── hu_HU-tv-chart.2be7786e4f16505951a7.html │ │ ├── id_ID-tv-chart.2be7786e4f16505951a7.html │ │ ├── images │ │ ├── balloon.png │ │ ├── bar-loader.gif │ │ ├── button-bg.png │ │ ├── charting_library │ │ │ ├── logo-widget-copyright-faded.png │ │ │ └── logo-widget-copyright.png │ │ ├── controlll.png │ │ ├── delayed.png │ │ ├── dialogs │ │ │ ├── checkbox.png │ │ │ ├── close-flat.png │ │ │ ├── large-slider-handle.png │ │ │ ├── linewidth-slider.png │ │ │ └── opacity-slider.png │ │ ├── icons.png │ │ ├── prediction-clock-black.png │ │ ├── prediction-clock-white.png │ │ ├── prediction-failure-white.png │ │ ├── prediction-success-white.png │ │ ├── price_label.png │ │ ├── select-bg.png │ │ ├── svg │ │ │ ├── chart │ │ │ │ ├── bucket2.svg │ │ │ │ ├── font.svg │ │ │ │ ├── large-slider-handle.svg │ │ │ │ └── pencil2.svg │ │ │ └── question-mark-rounded.svg │ │ ├── tvcolorpicker-bg-gradient.png │ │ ├── tvcolorpicker-bg.png │ │ ├── tvcolorpicker-check.png │ │ └── tvcolorpicker-sprite.png │ │ ├── it-tv-chart.2be7786e4f16505951a7.html │ │ ├── ja-tv-chart.2be7786e4f16505951a7.html │ │ ├── ko-tv-chart.2be7786e4f16505951a7.html │ │ ├── ms_MY-tv-chart.2be7786e4f16505951a7.html │ │ ├── nl_NL-tv-chart.2be7786e4f16505951a7.html │ │ ├── no-tv-chart.2be7786e4f16505951a7.html │ │ ├── pl-tv-chart.2be7786e4f16505951a7.html │ │ ├── pt-tv-chart.2be7786e4f16505951a7.html │ │ ├── ro-tv-chart.2be7786e4f16505951a7.html │ │ ├── ru-tv-chart.2be7786e4f16505951a7.html │ │ ├── sk_SK-tv-chart.2be7786e4f16505951a7.html │ │ ├── sv-tv-chart.2be7786e4f16505951a7.html │ │ ├── th-tv-chart.2be7786e4f16505951a7.html │ │ ├── tr-tv-chart.2be7786e4f16505951a7.html │ │ ├── vi-tv-chart.2be7786e4f16505951a7.html │ │ ├── zh-tv-chart.2be7786e4f16505951a7.html │ │ └── zh_TW-tv-chart.2be7786e4f16505951a7.html │ ├── charting_library_bak │ ├── charting_library.min.d.ts │ ├── charting_library.min.js │ ├── datafeed-api.d.ts │ └── static │ │ ├── ar-tv-chart.f5b3f142c9a35410af32.html │ │ ├── bundles │ │ ├── 10.001220e38ce0a39f882e.js │ │ ├── 13.03948444fb8e65f7a856.js │ │ ├── 15.14e44c9fe762e0c75635.js │ │ ├── 9.8309436d1561a99a7fad.js │ │ ├── crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur │ │ ├── dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur │ │ ├── ds-property-pages.32e5c40c0d43a1c499d6.js │ │ ├── editobjectdialog.87341e675e49f8f78022.js │ │ ├── eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur │ │ ├── go-to-date-dialog-impl.1fd01bb757e29b98a2c4.js │ │ ├── grab.bc156522a6b55a60be9fae15c14b66c5.cur │ │ ├── grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur │ │ ├── ie-fallback-logos.8319ee6d7ee230348d2d.js │ │ ├── lazy-jquery-ui.80fda7f0fdda5f17c4c8.js │ │ ├── lazy-velocity.832705322dfa540785f6.js │ │ ├── library.d8f5cc7dfd69730985ef782d21a1321f.css │ │ ├── library.db04e45ec22f0b637da3.js │ │ ├── lt-pane-views.dda44202da975d956b7b.js │ │ ├── objecttreedialog.33adfe386aa3612bb60e.js │ │ ├── propertypagesfactory.37bd38e8744b0cc04a07.js │ │ ├── symbol-info-dialog-impl.7cc4262db972e773d5ad.js │ │ ├── take-chart-image-dialog-impl.0e1b5c4adb4a0f91ae6b.js │ │ ├── vendors.a94ef44ed5c201cefcf6ad7460788c1a.css │ │ ├── vendors.f03f04415e9140647af1.js │ │ └── zoom.e21f24dd632c7069139bc47ae89c54b5.cur │ │ ├── cs-tv-chart.f5b3f142c9a35410af32.html │ │ ├── da_DK-tv-chart.f5b3f142c9a35410af32.html │ │ ├── de-tv-chart.f5b3f142c9a35410af32.html │ │ ├── el-tv-chart.f5b3f142c9a35410af32.html │ │ ├── en-tv-chart.f5b3f142c9a35410af32.html │ │ ├── es-tv-chart.f5b3f142c9a35410af32.html │ │ ├── et_EE-tv-chart.f5b3f142c9a35410af32.html │ │ ├── fa-tv-chart.f5b3f142c9a35410af32.html │ │ ├── fonts │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ │ ├── fr-tv-chart.f5b3f142c9a35410af32.html │ │ ├── he_IL-tv-chart.f5b3f142c9a35410af32.html │ │ ├── hu_HU-tv-chart.f5b3f142c9a35410af32.html │ │ ├── id_ID-tv-chart.f5b3f142c9a35410af32.html │ │ ├── images │ │ ├── balloon.png │ │ ├── bar-loader.gif │ │ ├── button-bg.png │ │ ├── charting_library │ │ │ ├── logo-widget-copyright-faded.png │ │ │ └── logo-widget-copyright.png │ │ ├── controlll.png │ │ ├── delayed.png │ │ ├── dialogs │ │ │ ├── checkbox.png │ │ │ ├── close-flat.png │ │ │ ├── large-slider-handle.png │ │ │ ├── linewidth-slider.png │ │ │ └── opacity-slider.png │ │ ├── icons.png │ │ ├── prediction-clock-black.png │ │ ├── prediction-clock-white.png │ │ ├── prediction-failure-white.png │ │ ├── prediction-success-white.png │ │ ├── select-bg.png │ │ ├── sidetoolbar │ │ │ ├── instruments.png │ │ │ └── toolgroup.png │ │ ├── svg │ │ │ ├── chart │ │ │ │ ├── bucket2.svg │ │ │ │ ├── font.svg │ │ │ │ ├── large-slider-handle.svg │ │ │ │ └── pencil2.svg │ │ │ └── question-mark-rounded.svg │ │ ├── tvcolorpicker-bg-gradient.png │ │ ├── tvcolorpicker-bg.png │ │ ├── tvcolorpicker-check.png │ │ ├── tvcolorpicker-sprite.png │ │ └── warning-icon.png │ │ ├── it-tv-chart.f5b3f142c9a35410af32.html │ │ ├── ja-tv-chart.f5b3f142c9a35410af32.html │ │ ├── ko-tv-chart.f5b3f142c9a35410af32.html │ │ ├── lib │ │ └── external │ │ │ └── spin.min.js │ │ ├── ms_MY-tv-chart.f5b3f142c9a35410af32.html │ │ ├── nl_NL-tv-chart.f5b3f142c9a35410af32.html │ │ ├── no-tv-chart.f5b3f142c9a35410af32.html │ │ ├── pl-tv-chart.f5b3f142c9a35410af32.html │ │ ├── pt-tv-chart.f5b3f142c9a35410af32.html │ │ ├── quota.svg │ │ ├── ro-tv-chart.f5b3f142c9a35410af32.html │ │ ├── ru-tv-chart.f5b3f142c9a35410af32.html │ │ ├── setting.svg │ │ ├── sk_SK-tv-chart.f5b3f142c9a35410af32.html │ │ ├── sv-tv-chart.f5b3f142c9a35410af32.html │ │ ├── th-tv-chart.f5b3f142c9a35410af32.html │ │ ├── tr-tv-chart.f5b3f142c9a35410af32.html │ │ ├── vi-tv-chart.f5b3f142c9a35410af32.html │ │ ├── zh-tv-chart.f5b3f142c9a35410af32.html │ │ └── zh_TW-tv-chart.f5b3f142c9a35410af32.html │ ├── datafeed.js │ ├── event.js │ ├── index.html │ ├── index.js │ ├── pako.js │ └── websocket.js ├── main.js ├── manifest.json ├── package-lock.json ├── package.json ├── pages.json ├── pages ├── address │ ├── address.vue │ └── addressManage.vue ├── earn │ └── simple │ │ ├── about.vue │ │ ├── detail.vue │ │ ├── index.vue │ │ └── order.vue ├── exchange │ └── index.vue ├── finance │ ├── deposit.vue │ ├── depositDetail.vue │ ├── historyOrder.vue │ └── myOrder.vue ├── index │ ├── guide.vue │ └── index.vue ├── lottery │ └── index.vue ├── market │ ├── index.vue │ └── intro.vue ├── mining │ ├── detail.vue │ ├── index.vue │ ├── my.vue │ └── profit.vue ├── news │ └── news.vue ├── notice │ ├── detail.vue │ └── notice.vue ├── option │ ├── index - 副本.vue │ ├── index.vue │ ├── kline.vue │ ├── list.vue │ └── market.vue ├── otc │ ├── business │ │ └── business.vue │ ├── components │ │ ├── advert-list-item.vue │ │ ├── business-list-item.vue │ │ ├── otc-list-item.vue │ │ └── otc-list.vue │ ├── merchant │ │ ├── addAdvert - 副本.vue │ │ ├── addAdvert.vue │ │ ├── advertList.vue │ │ ├── apply.vue │ │ ├── merchant.vue │ │ └── orderList.vue │ ├── order │ │ ├── appeal.vue │ │ ├── detail.vue │ │ └── list.vue │ ├── otc.vue │ └── subnvue │ │ └── drawer.nvue ├── prediction │ ├── history.vue │ ├── kline.vue │ └── prediction.vue ├── public │ ├── coinList.vue │ ├── forget.vue │ ├── h5kline.vue │ ├── kline.vue │ ├── login.vue │ ├── login_mobile.vue │ ├── register.vue │ ├── register_mobile.vue │ └── web.vue ├── set │ ├── about.vue │ ├── aboutDetail.vue │ ├── help.vue │ └── set.vue ├── user │ ├── encrypAddress.vue │ ├── googleBind.vue │ ├── googleSetting.vue │ ├── invit.vue │ ├── payType.vue │ ├── payment │ │ ├── method.vue │ │ └── update.vue │ ├── realname.vue │ ├── safe.vue │ ├── signin.vue │ ├── updateEmail.vue │ ├── updateEncrypAddress.vue │ ├── updateLoginPwd.vue │ ├── updateLoginPwd_mobile.vue │ ├── updateMobile.vue │ ├── updatePayPwd.vue │ ├── updatePayPwd_mobile.vue │ ├── updatePayType.vue │ └── user.vue └── wallet │ ├── deposit.vue │ ├── detail.vue │ ├── flow.vue │ ├── search.vue │ ├── wallet.vue │ └── withdraw.vue ├── static ├── .DS_Store ├── Alipay.png ├── UnionPay.png ├── Wechat.png ├── about_logo.png ├── arc.png ├── bank.png ├── bank1.png ├── default.jpg ├── empty.jpg ├── emptyCart.jpg ├── errorImage.jpg ├── exc.png ├── exchange.png ├── filter.png ├── font │ ├── fexfont.ttf │ ├── font_1078604_w4kpxh0rafi.ttf │ └── otc-detail.ttf ├── guarantee.png ├── help_bg.jpg ├── icon-addr.png ├── icon-deposit-draw.png ├── icon-deposit-history.png ├── icon-deposit-ing.png ├── icon-fiat-r.png ├── icon-fiat.png ├── icon-filter.png ├── icon-help-ex.png ├── icon-help-fiat.png ├── icon-help-safe.png ├── icon-help-wc.png ├── icon-invit1.jpg ├── icon-invit2.jpg ├── icon-invit3.jpg ├── icon-invit4.jpg ├── icon-order.png ├── icon-pre1.png ├── icon-pre2.png ├── icon-pre3.png ├── icon-prediction.png ├── icon-qrcode.png ├── icon-rank1.jpg ├── icon-rank2.jpg ├── icon-rank3.jpg ├── icon-shop.png ├── icon-upload.png ├── images │ ├── auth │ │ ├── auth-bg.jpg │ │ ├── auth-fan.jpg │ │ ├── auth-zhen.jpg │ │ └── icon-zheng.png │ ├── earn │ │ └── icon-earn-banner.png │ ├── home │ │ ├── home-ex-icon.png │ │ ├── home-stacking-icon.png │ │ ├── icon-menu-exchange.png │ │ ├── icon-menu-finance.png │ │ ├── icon-menu-news.png │ │ ├── icon-menu-prediction.png │ │ ├── icon-menu-simpleearn.png │ │ └── icon-otc-r.png │ ├── invit │ │ ├── icon-invit-line.png │ │ ├── icon-invit-step1.png │ │ ├── icon-invit-step2.png │ │ ├── icon-invit-step3.png │ │ └── invit-bg.jpg │ ├── my │ │ ├── icon-addr.png │ │ ├── icon-auth.png │ │ ├── icon-help.png │ │ ├── icon-langule.png │ │ ├── icon-list.png │ │ ├── icon-lottery.png │ │ ├── icon-merchat.png │ │ ├── icon-notice.png │ │ ├── icon-payin.png │ │ ├── icon-recomment.png │ │ ├── icon-safe.png │ │ ├── icon-setting.png │ │ └── icon-sign.png │ ├── otc │ │ ├── advcash.png │ │ ├── alipay.png │ │ ├── bank.png │ │ ├── icon-plus.png │ │ ├── paypal.png │ │ ├── paysera.png │ │ └── wechat.png │ ├── public │ │ ├── bg.png │ │ ├── icon-invit.png │ │ ├── icon-mobile.png │ │ ├── icon-pwd.png │ │ ├── icon-valid.png │ │ └── logo.png │ ├── tabbar │ │ ├── tab-coin-active.png │ │ ├── tab-coin.png │ │ ├── tab-mining-active.png │ │ ├── tab-mining.png │ │ ├── tab-my-active.png │ │ ├── tab-my.png │ │ ├── tab-news-active.png │ │ ├── tab-news.png │ │ ├── tab-trade-active.png │ │ ├── tab-trade.png │ │ ├── tab-wallet-active.png │ │ └── tab-wallet.png │ └── wallet │ │ └── wallet-bg.png ├── invit-bg.jpg ├── js │ ├── umychart.chartpaint.wechat.js │ ├── umychart.charttitle.wechat.js │ ├── umychart.complier.wechat.js │ ├── umychart.console.wechat.js │ ├── umychart.coordinatedata.wechat.js │ ├── umychart.data.wechat.js │ ├── umychart.extendchart.wechat.js │ ├── umychart.framesplit.wechat.js │ ├── umychart.hqIndexformula.wechat.js │ ├── umychart.index.data.wechat.js │ ├── umychart.index.wechat.js │ ├── umychart.klineinfo.wechat.js │ ├── umychart.regressiontest.wechat.js │ ├── umychart.resource.wechat.js │ ├── umychart.style.wechat.js │ ├── umychart.uniapp.canvas.helper.js │ ├── umychart.uniapp.h5.js │ └── umychart.wechat.3.0.js ├── locales │ ├── en-US.js │ ├── zh-CN.js │ └── zh-HK.js ├── lottery_icon.png ├── miner.png ├── missing-face.png ├── otc-trading.png ├── pay-alipay.png ├── pay-paypal.png ├── pay-wechat.png ├── personal-bg.jpg ├── point-active.png ├── point.png ├── qrcode.png ├── select.png ├── selected.png ├── slider-active.png ├── slider.png ├── svg │ ├── .DS_Store │ └── icon-pre1.svg ├── tabbar │ ├── .DS_Store │ ├── tab-coin-active.png │ ├── tab-coin-active.svg │ ├── tab-coin.png │ ├── tab-coin.svg │ ├── tab-mining-active.png │ ├── tab-mining.png │ ├── tab-my-active.png │ ├── tab-my-active.svg │ ├── tab-my.png │ ├── tab-my.svg │ ├── tab-news-active.png │ ├── tab-news-active.svg │ ├── tab-news.png │ ├── tab-news.svg │ ├── tab-wallet-active.png │ ├── tab-wallet-active.svg │ ├── tab-wallet.png │ └── tab-wallet.svg ├── telephone.png ├── temp │ ├── share_moment.png │ ├── share_qq.png │ ├── share_qqzone.png │ └── share_wechat.png ├── tri.png └── yticon.ttf ├── store ├── index.js ├── modules │ ├── account.js │ ├── cms.js │ ├── common.js │ ├── exchange.js │ ├── finance.js │ ├── lottery.js │ ├── mining.js │ ├── option.js │ ├── otc.js │ ├── prediction.js │ ├── simpleearn.js │ ├── tio.js │ ├── user.js │ └── websocket.js └── mutations_type.js ├── uni.scss ├── uni_modules ├── hqchart2 │ ├── changelog.md │ ├── js_sdk │ │ ├── HQChartControl.vue │ │ ├── umychart.chartpaint.wechat.js │ │ ├── umychart.charttitle.wechat.js │ │ ├── umychart.complier.wechat.js │ │ ├── umychart.console.wechat.js │ │ ├── umychart.coordinatedata.wechat.js │ │ ├── umychart.data.wechat.js │ │ ├── umychart.explainer.wechat.js │ │ ├── umychart.extendchart.wechat.js │ │ ├── umychart.framesplit.wechat.js │ │ ├── umychart.hqIndexformula.wechat.js │ │ ├── umychart.index.data.wechat.js │ │ ├── umychart.index.wechat.js │ │ ├── umychart.klineinfo.wechat.js │ │ ├── umychart.regressiontest.wechat.js │ │ ├── umychart.resource.wechat.js │ │ ├── umychart.style.wechat.js │ │ ├── umychart.uniapp.canvas.helper.js │ │ ├── umychart.uniapp.h5.js │ │ ├── umychart.wechat.3.0.js │ │ └── 用户协议.txt │ ├── package.json │ └── readme.md ├── z-paging │ ├── changelog.md │ ├── components │ │ ├── z-paging-empty-view │ │ │ └── z-paging-empty-view.vue │ │ ├── z-paging-swiper-item │ │ │ └── z-paging-swiper-item.vue │ │ ├── z-paging-swiper │ │ │ └── z-paging-swiper.vue │ │ └── z-paging │ │ │ ├── components │ │ │ ├── z-paging-load-more.vue │ │ │ └── z-paging-refresh.vue │ │ │ ├── config │ │ │ └── index.js │ │ │ ├── css │ │ │ ├── z-paging-main.css │ │ │ └── z-paging-static.css │ │ │ ├── js │ │ │ ├── z-paging-config.js │ │ │ ├── z-paging-enum.js │ │ │ ├── z-paging-i18n.js │ │ │ ├── z-paging-main.js │ │ │ ├── z-paging-mixin.js │ │ │ ├── z-paging-static.js │ │ │ └── z-paging-utils.js │ │ │ ├── wxs │ │ │ ├── z-paging-renderjs.js │ │ │ └── z-paging-wxs.wxs │ │ │ └── z-paging.vue │ ├── package.json │ └── readme.md └── zhouWei-APPUpdate │ ├── changelog.md │ ├── js_sdk │ └── appUpdate.js │ ├── package.json │ ├── readme.md │ └── static │ └── ic_ar.png └── utils ├── config.js ├── global.js ├── lottery.js ├── number.js ├── pako.js ├── request.js ├── utils.js ├── validate.js └── ws.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | unpackage/ 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | .env.test 62 | 63 | # parcel-bundler cache (https://parceljs.org/) 64 | .cache 65 | 66 | # next.js build output 67 | .next 68 | 69 | # nuxt.js build output 70 | .nuxt 71 | 72 | # vuepress build output 73 | .vuepress/dist 74 | 75 | # Serverless directories 76 | .serverless/ 77 | 78 | # FuseBox cache 79 | .fusebox/ 80 | 81 | # DynamoDB Local files 82 | .dynamodb/ 83 | -------------------------------------------------------------------------------- /.hbuilderx/launch.json: -------------------------------------------------------------------------------- 1 | { // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ 2 | // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 3 | "version": "0.0", 4 | "configurations": [{ 5 | "app-plus" : 6 | { 7 | "launchtype" : "remote" 8 | }, 9 | "default" : 10 | { 11 | "launchtype" : "remote" 12 | }, 13 | "h5" : 14 | { 15 | "launchtype" : "remote" 16 | }, 17 | "type" : "uniCloud" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /README.en.md: -------------------------------------------------------------------------------- 1 | # fex-wallet-app 2 | 3 | #### Description 4 | {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} 5 | 6 | #### Software Architecture 7 | Software architecture description 8 | 9 | #### Installation 10 | 11 | 1. xxxx 12 | 2. xxxx 13 | 3. xxxx 14 | 15 | #### Instructions 16 | 17 | 1. xxxx 18 | 2. xxxx 19 | 3. xxxx 20 | 21 | #### Contribution 22 | 23 | 1. Fork the repository 24 | 2. Create Feat_xxx branch 25 | 3. Commit your code 26 | 4. Create Pull Request 27 | 28 | 29 | #### Gitee Feature 30 | 31 | 1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md 32 | 2. Gitee blog [blog.gitee.com](https://blog.gitee.com) 33 | 3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) 34 | 4. The most valuable open source project [GVP](https://gitee.com/gvp) 35 | 5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) 36 | 6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 37 | -------------------------------------------------------------------------------- /api/account.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 资产列表 4 | export function accountList() { 5 | return request({ 6 | url: '/v1/account/list', 7 | method: 'GET' 8 | }) 9 | } 10 | // 获取单个资产 11 | export function getAccount(coin) { 12 | return request({ 13 | url: `/v1/account/${coin}`, 14 | method: 'GET' 15 | }) 16 | } -------------------------------------------------------------------------------- /api/cms.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 资讯列表 4 | export function newsList(data) { 5 | return request({ 6 | url: '/v1/news/list', 7 | method: 'GET', 8 | data: data 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /api/exchange.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 兑换列表 4 | export function exchangeList(data) { 5 | return request({ 6 | url: '/v1/exchange/list', 7 | method: 'GET', 8 | data: data 9 | }) 10 | } 11 | // 添加兑换 12 | export function addExchange(data) { 13 | return request({ 14 | url: '/v1/exchange', 15 | method: 'POST', 16 | data: data 17 | }) 18 | } 19 | //兑换记录列表 20 | export function exchangeRecordList(data) { 21 | return request({ 22 | url: '/v1/exchange/records', 23 | method: 'GET', 24 | data: data 25 | }) 26 | } -------------------------------------------------------------------------------- /api/finance.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 产品列表 4 | export function productList() { 5 | return request({ 6 | url: '/v1/finance/deposit/product', 7 | method: 'GET' 8 | }) 9 | } 10 | // 产品详情 11 | export function productDetail(id) { 12 | return request({ 13 | url: '/v1/finance/deposit/product/' + id, 14 | method: 'GET' 15 | }) 16 | } 17 | // 产品认购 18 | export function productBuy(data) { 19 | return request({ 20 | url: '/v1/finance/deposit/buy', 21 | method: 'POST', 22 | data: data 23 | }) 24 | } 25 | 26 | // 领取收益 27 | export function productDraw() { 28 | return request({ 29 | url: '/v1/finance/deposit/draw', 30 | method: 'POST' 31 | }) 32 | } 33 | 34 | //理财订单列表 35 | export function orderList(data) { 36 | return request({ 37 | url: '/v1/finance/deposit/order', 38 | method: 'GET', 39 | data: data 40 | }) 41 | } 42 | // 获取理财收益 43 | export function getProfit() { 44 | return request({ 45 | url: '/v1/finance/deposit/profit', 46 | method: 'POST' 47 | }) 48 | } 49 | 50 | // 获取待领取数量 51 | export function getDrawCount() { 52 | return request({ 53 | url: '/v1/finance/deposit/count', 54 | method: 'GET' 55 | }) 56 | } -------------------------------------------------------------------------------- /api/lottery.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 配置列表 4 | export function lotteryConfig() { 5 | return request({ 6 | url: '/v1/lottery/config', 7 | method: 'GET' 8 | }) 9 | } 10 | // 抽奖 11 | export function lotteryDraw() { 12 | return request({ 13 | url: '/v1/lottery/draw', 14 | method: 'GET' 15 | }) 16 | } 17 | // 抽奖次数 18 | export function lotteryCount() { 19 | return request({ 20 | url: '/v1/lottery/count', 21 | method: 'GET' 22 | }) 23 | } 24 | 25 | // 购买抽奖次数 26 | export function lotteryBuyCount() { 27 | return request({ 28 | url: '/v1/lottery/buy', 29 | method: 'GET' 30 | }) 31 | } -------------------------------------------------------------------------------- /api/mining.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 矿机列表 4 | export function machineList(data) { 5 | return request({ 6 | url: '/v1/machine/list', 7 | method: 'GET', 8 | data: data 9 | }) 10 | } 11 | 12 | // 矿机详情 13 | export function machineDetail(data) { 14 | return request({ 15 | url: '/v1/machine/detail', 16 | method: 'GET', 17 | data: data 18 | }) 19 | } 20 | 21 | // 购买矿机 22 | export function machineBuy(data) { 23 | return request({ 24 | url: '/v1/machine/buy', 25 | method: 'POST', 26 | data: data 27 | }) 28 | } 29 | 30 | //我的矿机 31 | export function machineMy(data) { 32 | return request({ 33 | url: '/v1/machine/pool/list', 34 | method: 'GET', 35 | data: data 36 | }) 37 | } 38 | 39 | //矿机流水 40 | export function machineFlows(data) { 41 | return request({ 42 | url: '/v1/machine/flow/list', 43 | method: 'GET', 44 | data: data 45 | }) 46 | } 47 | 48 | // 矿机总收益 49 | export function machineProfit(data) { 50 | return request({ 51 | url: '/v1/machine/profit', 52 | method: 'GET', 53 | data: data 54 | }) 55 | } -------------------------------------------------------------------------------- /api/option.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 市场列表 4 | export function optionMarketList() { 5 | return request({ 6 | url: '/v1/option/market/list', 7 | method: 'GET' 8 | }) 9 | } 10 | 11 | // 置顶市场列表 12 | export function optionTopMarketList() { 13 | return request({ 14 | url: '/v1/option/top/list', 15 | method: 'GET' 16 | }) 17 | } 18 | 19 | // 创建订单 20 | export function createOptionOrder(data) { 21 | return request({ 22 | url: '/v1/option/order/create', 23 | method: 'POST', 24 | data: data 25 | }) 26 | } 27 | 28 | //订单详情 29 | export function optionOrderDetail(id) { 30 | return request({ 31 | url: '/v1/option/order/' + id, 32 | method: 'GET' 33 | }) 34 | } 35 | 36 | //查询订单列表 37 | export function optionOrderList(data) { 38 | return request({ 39 | url: '/v1/option/order/list', 40 | method: 'GET', 41 | data: data 42 | }) 43 | } -------------------------------------------------------------------------------- /api/prediction.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 预言详情 4 | export function predictionDetail(data) { 5 | return request({ 6 | url: '/v1/prediction/detail', 7 | method: 'GET', 8 | data: data 9 | }) 10 | } 11 | 12 | // 查询回合 13 | export function predictionRounds(data) { 14 | return request({ 15 | url: '/v1/prediction/rounds', 16 | method: 'GET', 17 | data: data 18 | }) 19 | } 20 | 21 | //下注 22 | export function predictionBet(data) { 23 | return request({ 24 | url: '/v1/prediction/bet', 25 | method: 'POST', 26 | data: data 27 | }) 28 | } 29 | 30 | //查询历史 31 | export function predictionHistory(data) { 32 | return request({ 33 | url: '/v1/prediction/history', 34 | method: 'GET', 35 | data: data 36 | }) 37 | } -------------------------------------------------------------------------------- /api/simpleearn.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 列表 4 | export function productList(data) { 5 | return request({ 6 | url: '/v1/simpleEarn/list', 7 | method: 'GET', 8 | data: data 9 | }) 10 | } 11 | 12 | // 产品详情 13 | export function productDetail(coin) { 14 | return request({ 15 | url: '/v1/simpleEarn/' + coin, 16 | method: 'GET' 17 | }) 18 | } 19 | 20 | // 产品认购 21 | export function productBuy(data) { 22 | return request({ 23 | url: '/v1/simpleEarn/buy', 24 | method: 'POST', 25 | data: data 26 | }) 27 | } 28 | 29 | //订单列表 30 | export function orderList(data) { 31 | return request({ 32 | url: '/v1/simpleEarn/order', 33 | method: 'GET', 34 | data: data 35 | }) 36 | } 37 | 38 | //订单赎回 39 | export function orderRedeem(id) { 40 | return request({ 41 | url: '/v1/simpleEarn/redeem/'+id, 42 | method: 'GET' 43 | }) 44 | } -------------------------------------------------------------------------------- /components/SJ-LotteryDraw/SJ-LotteryDraw.js: -------------------------------------------------------------------------------- 1 | 2 | function LotteryDraw(obj, callback) { 3 | this.timer = null; //计时器 4 | this.startIndex = obj.startIndex-1 || 0; //从第几个位置开始抽奖 [默认为零] 5 | this.count = 0; //计数,跑的圈数 6 | this.winingIndex = obj.winingIndex || 0;//获奖的位置 7 | this.totalCount = obj.totalCount || 6;//抽奖跑的圈数 8 | this.speed = obj.speed || 100; 9 | this.domData=obj.domData; 10 | this.rollFn(); 11 | this.callback = callback; 12 | } 13 | 14 | LotteryDraw.prototype = { 15 | rollFn: function() { 16 | var that = this; 17 | // 活动index值增加,即移动到下一个格子 18 | this.startIndex++; 19 | 20 | //startIndex是最后一个时一圈走完,重新开始 21 | if (this.startIndex >= this.domData.length) { 22 | this.startIndex = 0; 23 | this.count++; 24 | } 25 | 26 | // 当跑的圈数等于设置的圈数,且活动的index值是奖品的位置时停止 27 | if (this.count >= this.totalCount && this.startIndex === this.winingIndex) { 28 | if (typeof this.callback === 'function') { 29 | setTimeout(function() { 30 | that.callback(that.startIndex,that.count); //执行回调函数,抽奖完成的相关操作 31 | }, 400); 32 | } 33 | clearInterval(this.timer); 34 | }else { //重新开始一圈 35 | if (this.count >= this.totalCount) { 36 | this.speed += 30; 37 | } 38 | this.timer = setTimeout(function() { 39 | that.callback(that.startIndex,that.count); 40 | that.rollFn(); 41 | }, this.speed); 42 | } 43 | } 44 | } 45 | 46 | module.exports = LotteryDraw; -------------------------------------------------------------------------------- /components/coin-list.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 42 | 43 | 46 | -------------------------------------------------------------------------------- /components/empty.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 34 | 35 | 54 | -------------------------------------------------------------------------------- /components/mescroll-uni/components/mescroll-down.css: -------------------------------------------------------------------------------- 1 | /* 下拉刷新区域 */ 2 | .mescroll-downwarp { 3 | position: absolute; 4 | top: -100%; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | text-align: center; 9 | } 10 | 11 | /* 下拉刷新--内容区,定位于区域底部 */ 12 | .mescroll-downwarp .downwarp-content { 13 | position: absolute; 14 | left: 0; 15 | bottom: 0; 16 | width: 100%; 17 | min-height: 60rpx; 18 | padding: 20rpx 0; 19 | text-align: center; 20 | } 21 | 22 | /* 下拉刷新--提示文本 */ 23 | .mescroll-downwarp .downwarp-tip { 24 | display: inline-block; 25 | font-size: 28rpx; 26 | vertical-align: middle; 27 | margin-left: 16rpx; 28 | /* color: gray; 已在style设置color,此处删去*/ 29 | } 30 | 31 | /* 下拉刷新--旋转进度条 */ 32 | .mescroll-downwarp .downwarp-progress { 33 | display: inline-block; 34 | width: 32rpx; 35 | height: 32rpx; 36 | border-radius: 50%; 37 | border: 2rpx solid gray; 38 | border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ 39 | vertical-align: middle; 40 | } 41 | 42 | /* 旋转动画 */ 43 | .mescroll-downwarp .mescroll-rotate { 44 | animation: mescrollDownRotate 0.6s linear infinite; 45 | } 46 | 47 | @keyframes mescrollDownRotate { 48 | 0% { 49 | transform: rotate(0deg); 50 | } 51 | 52 | 100% { 53 | transform: rotate(360deg); 54 | } 55 | } -------------------------------------------------------------------------------- /components/mescroll-uni/components/mescroll-down.vue: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 44 | 45 | 48 | -------------------------------------------------------------------------------- /components/mescroll-uni/components/mescroll-up.css: -------------------------------------------------------------------------------- 1 | /* 上拉加载区域 */ 2 | .mescroll-upwarp { 3 | min-height: 60rpx; 4 | padding: 30rpx 0; 5 | text-align: center; 6 | clear: both; 7 | } 8 | 9 | /*提示文本 */ 10 | .mescroll-upwarp .upwarp-tip, 11 | .mescroll-upwarp .upwarp-nodata { 12 | display: inline-block; 13 | font-size: 28rpx; 14 | vertical-align: middle; 15 | /* color: gray; 已在style设置color,此处删去*/ 16 | } 17 | 18 | .mescroll-upwarp .upwarp-tip { 19 | margin-left: 16rpx; 20 | } 21 | 22 | /*旋转进度条 */ 23 | .mescroll-upwarp .upwarp-progress { 24 | display: inline-block; 25 | width: 32rpx; 26 | height: 32rpx; 27 | border-radius: 50%; 28 | border: 2rpx solid gray; 29 | border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ 30 | vertical-align: middle; 31 | } 32 | 33 | /* 旋转动画 */ 34 | .mescroll-upwarp .mescroll-rotate { 35 | animation: mescrollUpRotate 0.6s linear infinite; 36 | } 37 | 38 | @keyframes mescrollUpRotate { 39 | 0% { 40 | transform: rotate(0deg); 41 | } 42 | 43 | 100% { 44 | transform: rotate(360deg); 45 | } 46 | } -------------------------------------------------------------------------------- /components/mescroll-uni/components/mescroll-up.vue: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 36 | 37 | 40 | -------------------------------------------------------------------------------- /components/mescroll-uni/mescroll-body.css: -------------------------------------------------------------------------------- 1 | page { 2 | -webkit-overflow-scrolling: touch; /* 使iOS滚动流畅 */ 3 | } 4 | 5 | .mescroll-body { 6 | position: relative; /* 下拉刷新区域相对自身定位 */ 7 | height: auto; /* 不可固定高度,否则overflow: hidden, 可通过设置最小高度使列表不满屏仍可下拉*/ 8 | overflow: hidden; /* 遮住顶部下拉刷新区域 */ 9 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 10 | } -------------------------------------------------------------------------------- /components/mescroll-uni/mescroll-mixins.js: -------------------------------------------------------------------------------- 1 | // mescroll-body 和 mescroll-uni 通用 2 | 3 | // import MescrollUni from "./mescroll-uni.vue"; 4 | // import MescrollBody from "./mescroll-body.vue"; 5 | 6 | const MescrollMixin = { 7 | // components: { // 非H5端无法通过mixin注册组件, 只能在main.js中注册全局组件或具体界面中注册 8 | // MescrollUni, 9 | // MescrollBody 10 | // }, 11 | data() { 12 | return { 13 | mescroll: null //mescroll实例对象 14 | } 15 | }, 16 | // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) 17 | onPullDownRefresh(){ 18 | this.mescroll && this.mescroll.onPullDownRefresh(); 19 | }, 20 | // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) 21 | onPageScroll(e) { 22 | this.mescroll && this.mescroll.onPageScroll(e); 23 | }, 24 | // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) 25 | onReachBottom() { 26 | this.mescroll && this.mescroll.onReachBottom(); 27 | }, 28 | methods: { 29 | // mescroll组件初始化的回调,可获取到mescroll对象 30 | mescrollInit(mescroll) { 31 | this.mescroll = mescroll; 32 | this.mescrollInitByRef(); // 兼容字节跳动小程序 33 | }, 34 | // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序: http://www.mescroll.com/qa.html?v=20200107#q26) 35 | mescrollInitByRef() { 36 | if(!this.mescroll || !this.mescroll.resetUpScroll){ 37 | let mescrollRef = this.$refs.mescrollRef; 38 | if(mescrollRef) this.mescroll = mescrollRef.mescroll 39 | } 40 | }, 41 | // 下拉刷新的回调 42 | downCallback() { 43 | // mixin默认resetUpScroll 44 | this.mescroll.resetUpScroll() 45 | }, 46 | // 上拉加载的回调 47 | upCallback() { 48 | // mixin默认延时500自动结束加载 49 | setTimeout(()=>{ 50 | this.mescroll.endErr(); 51 | }, 500) 52 | } 53 | }, 54 | mounted() { 55 | this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 56 | } 57 | 58 | } 59 | 60 | export default MescrollMixin; 61 | -------------------------------------------------------------------------------- /components/mescroll-uni/mescroll-uni-option.js: -------------------------------------------------------------------------------- 1 | // 全局配置 2 | // mescroll-body 和 mescroll-uni 通用 3 | const GlobalOption = { 4 | down: { 5 | // 其他down的配置参数也可以写,这里只展示了常用的配置: 6 | textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 7 | textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 8 | textLoading: '加载中 ...', // 加载中的提示文本 9 | offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 10 | native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) 11 | }, 12 | up: { 13 | // 其他up的配置参数也可以写,这里只展示了常用的配置: 14 | textLoading: '加载中 ...', // 加载中的提示文本 15 | textNoMore: '---- 我是有底线的 ----', // 没有更多数据的提示文本 16 | offset: 80, // 距底部多远时,触发upCallback 17 | isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25 18 | toTop: { 19 | // 回到顶部按钮,需配置src才显示 20 | src: "http://www.mescroll.com/img/mescroll-totop.png?v=1", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) 21 | offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px 22 | right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 23 | bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 24 | width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 25 | }, 26 | empty: { 27 | use: true, // 是否显示空布局 28 | icon: "http://www.mescroll.com/img/mescroll-empty.png?v=1", // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) 29 | tip: '~ 暂无相关数据 ~' // 提示 30 | } 31 | } 32 | } 33 | 34 | export default GlobalOption 35 | -------------------------------------------------------------------------------- /components/mescroll-uni/mescroll-uni.css: -------------------------------------------------------------------------------- 1 | page { 2 | height: 100%; 3 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 4 | } 5 | 6 | .mescroll-uni-warp{ 7 | height: 100%; 8 | } 9 | 10 | .mescroll-uni { 11 | position: relative; 12 | width: 100%; 13 | height: 100%; 14 | min-height: 200rpx; 15 | overflow-y: auto; 16 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 17 | } 18 | 19 | /* 定位的方式固定高度 */ 20 | .mescroll-uni-fixed{ 21 | z-index: 1; 22 | position: fixed; 23 | top: 0; 24 | left: 0; 25 | right: 0; 26 | bottom: 0; 27 | width: auto; /* 使right生效 */ 28 | height: auto; /* 使bottom生效 */ 29 | } 30 | -------------------------------------------------------------------------------- /components/mescroll-uni/mixins/mescroll-comp.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: 3 | * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) 4 | * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) 5 | */ 6 | const MescrollCompMixin = { 7 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 8 | onPageScroll(e) { 9 | let item = this.$refs["mescrollItem"]; 10 | if(item && item.mescroll) item.mescroll.onPageScroll(e); 11 | }, 12 | onReachBottom() { 13 | let item = this.$refs["mescrollItem"]; 14 | if(item && item.mescroll) item.mescroll.onReachBottom(); 15 | }, 16 | // 当down的native: true时, 还需传递此方法进到子组件 17 | onPullDownRefresh(){ 18 | let item = this.$refs["mescrollItem"]; 19 | if(item && item.mescroll) item.mescroll.onPullDownRefresh(); 20 | } 21 | } 22 | 23 | export default MescrollCompMixin; 24 | -------------------------------------------------------------------------------- /components/mescroll-uni/mixins/mescroll-more-item.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例) 3 | */ 4 | const MescrollMoreItemMixin = { 5 | props:{ 6 | i: Number, // 每个tab页的专属下标 7 | index: { // 当前tab的下标 8 | type: Number, 9 | default(){ 10 | return 0 11 | } 12 | } 13 | }, 14 | data() { 15 | return { 16 | downOption:{ 17 | auto:false // 不自动加载 18 | }, 19 | upOption:{ 20 | auto:false // 不自动加载 21 | }, 22 | isInit: false // 当前tab是否已初始化 23 | } 24 | }, 25 | watch:{ 26 | // 监听下标的变化 27 | index(val){ 28 | if (this.i === val && !this.isInit) { 29 | this.isInit = true; // 标记为true 30 | this.mescroll && this.mescroll.triggerDownScroll(); 31 | } 32 | } 33 | }, 34 | methods: { 35 | // mescroll组件初始化的回调,可获取到mescroll对象 36 | mescrollInit(mescroll) { 37 | this.mescroll = mescroll; 38 | this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序 (mescroll-mixins.js) 39 | // 自动加载当前tab的数据 40 | if(this.i === this.index){ 41 | this.isInit = true; // 标记为true 42 | this.mescroll.triggerDownScroll(); 43 | } 44 | }, 45 | } 46 | } 47 | 48 | export default MescrollMoreItemMixin; 49 | -------------------------------------------------------------------------------- /components/mescroll-uni/mixins/mescroll-more.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: 3 | * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) 4 | * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) 5 | */ 6 | const MescrollMoreMixin = { 7 | data() { 8 | return { 9 | tabIndex: 0 // 当前tab下标 10 | } 11 | }, 12 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 13 | onPageScroll(e) { 14 | let mescroll = this.getMescroll(this.tabIndex); 15 | mescroll && mescroll.onPageScroll(e); 16 | }, 17 | onReachBottom() { 18 | let mescroll = this.getMescroll(this.tabIndex); 19 | mescroll && mescroll.onReachBottom(); 20 | }, 21 | // 当down的native: true时, 还需传递此方法进到子组件 22 | onPullDownRefresh(){ 23 | let mescroll = this.getMescroll(this.tabIndex); 24 | mescroll && mescroll.onPullDownRefresh(); 25 | }, 26 | methods:{ 27 | // 根据下标获取对应子组件的mescroll 28 | getMescroll(i){ 29 | if(!this.mescrollItems) this.mescrollItems = []; 30 | if(!this.mescrollItems[i]) { 31 | // v-for中的refs 32 | let vForItem = this.$refs["mescrollItem"]; 33 | if(vForItem){ 34 | this.mescrollItems[i] = vForItem[i] 35 | }else{ 36 | // 普通的refs,不可重复 37 | this.mescrollItems[i] = this.$refs["mescrollItem"+i]; 38 | } 39 | } 40 | let item = this.mescrollItems[i] 41 | return item ? item.mescroll : null 42 | }, 43 | // 切换tab,恢复滚动条位置 44 | tabChange(i){ 45 | let mescroll = this.getMescroll(i); 46 | if(mescroll){ 47 | // 延时(比$nextTick靠谱一些),确保元素已渲染 48 | setTimeout(()=>{ 49 | mescroll.scrollTo(mescroll.getScrollTop(),0) 50 | },30) 51 | } 52 | } 53 | } 54 | } 55 | 56 | export default MescrollMoreMixin; 57 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/components/mescroll-down.css: -------------------------------------------------------------------------------- 1 | /* 下拉刷新区域 */ 2 | .mescroll-downwarp { 3 | position: absolute; 4 | top: -100%; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | text-align: center; 9 | } 10 | 11 | /* 下拉刷新--内容区,定位于区域底部 */ 12 | .mescroll-downwarp .downwarp-content { 13 | position: absolute; 14 | left: 0; 15 | bottom: 0; 16 | width: 100%; 17 | min-height: 60rpx; 18 | padding: 20rpx 0; 19 | text-align: center; 20 | } 21 | 22 | /* 下拉刷新--提示文本 */ 23 | .mescroll-downwarp .downwarp-tip { 24 | display: inline-block; 25 | font-size: 28rpx; 26 | color: gray; 27 | vertical-align: middle; 28 | margin-left: 16rpx; 29 | } 30 | 31 | /* 下拉刷新--旋转进度条 */ 32 | .mescroll-downwarp .downwarp-progress { 33 | display: inline-block; 34 | width: 32rpx; 35 | height: 32rpx; 36 | border-radius: 50%; 37 | border: 2rpx solid gray; 38 | border-bottom-color: transparent; 39 | vertical-align: middle; 40 | } 41 | 42 | /* 旋转动画 */ 43 | .mescroll-downwarp .mescroll-rotate { 44 | animation: mescrollDownRotate 0.6s linear infinite; 45 | } 46 | 47 | @keyframes mescrollDownRotate { 48 | 0% { 49 | transform: rotate(0deg); 50 | } 51 | 52 | 100% { 53 | transform: rotate(360deg); 54 | } 55 | } -------------------------------------------------------------------------------- /components/mescroll-uni_bak/components/mescroll-down.vue: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 44 | 45 | 48 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/components/mescroll-up.css: -------------------------------------------------------------------------------- 1 | /* 上拉加载区域 */ 2 | .mescroll-upwarp { 3 | min-height: 60rpx; 4 | padding: 30rpx 0; 5 | text-align: center; 6 | clear: both; 7 | } 8 | 9 | /*提示文本 */ 10 | .mescroll-upwarp .upwarp-tip, 11 | .mescroll-upwarp .upwarp-nodata { 12 | display: inline-block; 13 | font-size: 28rpx; 14 | color: gray; 15 | vertical-align: middle; 16 | } 17 | 18 | .mescroll-upwarp .upwarp-tip { 19 | margin-left: 16rpx; 20 | } 21 | 22 | /*旋转进度条 */ 23 | .mescroll-upwarp .upwarp-progress { 24 | display: inline-block; 25 | width: 32rpx; 26 | height: 32rpx; 27 | border-radius: 50%; 28 | border: 2rpx solid gray; 29 | border-bottom-color: transparent; 30 | vertical-align: middle; 31 | } 32 | 33 | /* 旋转动画 */ 34 | .mescroll-upwarp .mescroll-rotate { 35 | animation: mescrollUpRotate 0.6s linear infinite; 36 | } 37 | 38 | @keyframes mescrollUpRotate { 39 | 0% { 40 | transform: rotate(0deg); 41 | } 42 | 43 | 100% { 44 | transform: rotate(360deg); 45 | } 46 | } -------------------------------------------------------------------------------- /components/mescroll-uni_bak/components/mescroll-up.vue: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 36 | 37 | 40 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mescroll-body.css: -------------------------------------------------------------------------------- 1 | page { 2 | -webkit-overflow-scrolling: touch; /* 使iOS滚动流畅 */ 3 | } 4 | 5 | .mescroll-body { 6 | position: relative; /* 下拉刷新区域相对自身定位 */ 7 | height: auto; /* 不可固定高度,否则overflow: hidden, 可通过设置最小高度使列表不满屏仍可下拉*/ 8 | overflow: hidden; /* 遮住顶部下拉刷新区域 */ 9 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 10 | } -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mescroll-mixins.js: -------------------------------------------------------------------------------- 1 | // mescroll-body 和 mescroll-uni 通用 2 | 3 | // import MescrollUni from "./mescroll-uni.vue"; 4 | // import MescrollBody from "./mescroll-body.vue"; 5 | 6 | const MescrollMixin = { 7 | // components: { // 非H5端无法通过mixin注册组件, 只能在main.js中注册全局组件或具体界面中注册 8 | // MescrollUni, 9 | // MescrollBody 10 | // }, 11 | data() { 12 | return { 13 | mescroll: null //mescroll实例对象 14 | } 15 | }, 16 | // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) 17 | onPullDownRefresh(){ 18 | this.mescroll && this.mescroll.onPullDownRefresh(); 19 | }, 20 | // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) 21 | onPageScroll(e) { 22 | this.mescroll && this.mescroll.onPageScroll(e); 23 | }, 24 | // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) 25 | onReachBottom() { 26 | this.mescroll && this.mescroll.onReachBottom(); 27 | }, 28 | methods: { 29 | // mescroll组件初始化的回调,可获取到mescroll对象 30 | mescrollInit(mescroll) { 31 | this.mescroll = mescroll; 32 | this.mescrollInitByRef(); // 兼容字节跳动小程序 33 | }, 34 | // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序: http://www.mescroll.com/qa.html?v=20200107#q26) 35 | mescrollInitByRef() { 36 | if(!this.mescroll || !this.mescroll.resetUpScroll){ 37 | let mescrollRef = this.$refs.mescrollRef; 38 | if(mescrollRef) this.mescroll = mescrollRef.mescroll 39 | } 40 | }, 41 | // 下拉刷新的回调 42 | downCallback() { 43 | // mixin默认resetUpScroll 44 | this.mescroll.resetUpScroll() 45 | }, 46 | // 上拉加载的回调 47 | upCallback() { 48 | // mixin默认延时500自动结束加载 49 | setTimeout(()=>{ 50 | this.mescroll.endErr(); 51 | }, 500) 52 | } 53 | }, 54 | mounted() { 55 | this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 56 | } 57 | 58 | } 59 | 60 | export default MescrollMixin; 61 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mescroll-uni-option.js: -------------------------------------------------------------------------------- 1 | // 全局配置 2 | // mescroll-body 和 mescroll-uni 通用 3 | const GlobalOption = { 4 | down: { 5 | // 其他down的配置参数也可以写,这里只展示了常用的配置: 6 | textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 7 | textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 8 | textLoading: '加载中 ...', // 加载中的提示文本 9 | offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 10 | native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) 11 | }, 12 | up: { 13 | // 其他up的配置参数也可以写,这里只展示了常用的配置: 14 | textLoading: '加载中 ...', // 加载中的提示文本 15 | textNoMore: '-- END --', // 没有更多数据的提示文本 16 | offset: 80, // 距底部多远时,触发upCallback 17 | isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25 18 | toTop: { 19 | // 回到顶部按钮,需配置src才显示 20 | src: "http://www.mescroll.com/img/mescroll-totop.png?v=1", // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) 21 | offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px 22 | right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 23 | bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 24 | width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) 25 | }, 26 | empty: { 27 | use: true, // 是否显示空布局 28 | icon: "http://www.mescroll.com/img/mescroll-empty.png?v=1", // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) 29 | tip: '~ 暂无相关数据 ~' // 提示 30 | } 31 | } 32 | } 33 | 34 | export default GlobalOption 35 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mescroll-uni.css: -------------------------------------------------------------------------------- 1 | page { 2 | height: 100%; 3 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 4 | } 5 | 6 | .mescroll-uni-warp{ 7 | height: 100%; 8 | } 9 | 10 | .mescroll-uni { 11 | position: relative; 12 | width: 100%; 13 | height: 100%; 14 | min-height: 200rpx; 15 | overflow-y: auto; 16 | box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ 17 | } 18 | 19 | /* 定位的方式固定高度 */ 20 | .mescroll-uni-fixed{ 21 | z-index: 1; 22 | position: fixed; 23 | top: 0; 24 | left: 0; 25 | right: 0; 26 | bottom: 0; 27 | width: auto; /* 使right生效 */ 28 | height: auto; /* 使bottom生效 */ 29 | } 30 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mixins/mescroll-comp.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: 3 | * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) 4 | * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) 5 | */ 6 | const MescrollCompMixin = { 7 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 8 | onPageScroll(e) { 9 | let item = this.$refs["mescrollItem"]; 10 | if(item && item.mescroll) item.mescroll.onPageScroll(e); 11 | }, 12 | onReachBottom() { 13 | let item = this.$refs["mescrollItem"]; 14 | if(item && item.mescroll) item.mescroll.onReachBottom(); 15 | }, 16 | // 当down的native: true时, 还需传递此方法进到子组件 17 | onPullDownRefresh(){ 18 | let item = this.$refs["mescrollItem"]; 19 | if(item && item.mescroll) item.mescroll.onPullDownRefresh(); 20 | } 21 | } 22 | 23 | export default MescrollCompMixin; 24 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mixins/mescroll-more-item.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例) 3 | */ 4 | const MescrollMoreItemMixin = { 5 | props:{ 6 | i: Number, // 每个tab页的专属下标 7 | index: { // 当前tab的下标 8 | type: Number, 9 | default(){ 10 | return 0 11 | } 12 | } 13 | }, 14 | data() { 15 | return { 16 | downOption:{ 17 | auto:false // 不自动加载 18 | }, 19 | upOption:{ 20 | auto:false // 不自动加载 21 | }, 22 | isInit: false // 当前tab是否已初始化 23 | } 24 | }, 25 | watch:{ 26 | // 监听下标的变化 27 | index(val){ 28 | if (this.i === val && !this.isInit) { 29 | this.isInit = true; // 标记为true 30 | this.mescroll && this.mescroll.triggerDownScroll(); 31 | } 32 | } 33 | }, 34 | methods: { 35 | // mescroll组件初始化的回调,可获取到mescroll对象 36 | mescrollInit(mescroll) { 37 | this.mescroll = mescroll; 38 | this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序 (mescroll-mixins.js) 39 | // 自动加载当前tab的数据 40 | if(this.i === this.index){ 41 | this.isInit = true; // 标记为true 42 | this.mescroll.triggerDownScroll(); 43 | } 44 | }, 45 | } 46 | } 47 | 48 | export default MescrollMoreItemMixin; 49 | -------------------------------------------------------------------------------- /components/mescroll-uni_bak/mixins/mescroll-more.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: 3 | * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) 4 | * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) 5 | */ 6 | const MescrollMoreMixin = { 7 | data() { 8 | return { 9 | tabIndex: 0 // 当前tab下标 10 | } 11 | }, 12 | // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 13 | onPageScroll(e) { 14 | let mescroll = this.getMescroll(this.tabIndex); 15 | mescroll && mescroll.onPageScroll(e); 16 | }, 17 | onReachBottom() { 18 | let mescroll = this.getMescroll(this.tabIndex); 19 | mescroll && mescroll.onReachBottom(); 20 | }, 21 | // 当down的native: true时, 还需传递此方法进到子组件 22 | onPullDownRefresh(){ 23 | let mescroll = this.getMescroll(this.tabIndex); 24 | mescroll && mescroll.onPullDownRefresh(); 25 | }, 26 | methods:{ 27 | // 根据下标获取对应子组件的mescroll 28 | getMescroll(i){ 29 | if(!this.mescrollItems) this.mescrollItems = []; 30 | if(!this.mescrollItems[i]) { 31 | // v-for中的refs 32 | let vForItem = this.$refs["mescrollItem"]; 33 | if(vForItem){ 34 | this.mescrollItems[i] = vForItem[i] 35 | }else{ 36 | // 普通的refs,不可重复 37 | this.mescrollItems[i] = this.$refs["mescrollItem"+i]; 38 | } 39 | } 40 | let item = this.mescrollItems[i] 41 | return item ? item.mescroll : null 42 | }, 43 | // 切换tab,恢复滚动条位置 44 | tabChange(i){ 45 | let mescroll = this.getMescroll(i); 46 | if(mescroll){ 47 | // 延时(比$nextTick靠谱一些),确保元素已渲染 48 | setTimeout(()=>{ 49 | mescroll.scrollTo(mescroll.getScrollTop(),0) 50 | },30) 51 | } 52 | } 53 | } 54 | } 55 | 56 | export default MescrollMoreMixin; 57 | -------------------------------------------------------------------------------- /components/noticeSwiper.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 46 | 47 | 81 | -------------------------------------------------------------------------------- /components/uni-cell.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 20 | -------------------------------------------------------------------------------- /components/uni-refresh.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 59 | 60 | 66 | -------------------------------------------------------------------------------- /components/verifition/verify/utils/ase.js: -------------------------------------------------------------------------------- 1 | import CryptoJS from 'crypto-js' 2 | /** 3 | * @word 要加密的内容 4 | * @keyWord String 服务器随机返回的关键字 5 | * */ 6 | export function aesEncrypt(word,keyWord="XwKsGlMcdPMEhR1B"){ 7 | var key = CryptoJS.enc.Utf8.parse(keyWord); 8 | var srcs = CryptoJS.enc.Utf8.parse(word); 9 | var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); 10 | return encrypted.toString(); 11 | } 12 | -------------------------------------------------------------------------------- /components/verifition/verify/utils/request.js: -------------------------------------------------------------------------------- 1 | import G from '../../../../utils/global.js' 2 | // let baseUrl = "https://captcha.anji-plus.com/captcha-api" 3 | let baseUrl = G.REQUEST_URL 4 | 5 | export const myRequest = (option={})=>{ 6 | return new Promise((reslove,reject)=>{ 7 | uni.request({ 8 | url: baseUrl + option.url, 9 | data :option.data, 10 | method:option.method || "GET", 11 | success: (result) => { 12 | reslove(result) 13 | }, 14 | fail:(error)=>{ 15 | reject(error) 16 | } 17 | }) 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /config/componentConfig.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | export default { 3 | /****************以下是zhouWei-APPUpdate插件配置*******************/ 4 | // 发起ajax请求获取服务端版本号 5 | getServerNo: (version, isPrompt = false, callback) => { 6 | /* 接口入参说明 7 | * version: 应用当前版本号(已自动获取) 8 | * versionName: 应用当前版本名称(已自动获取) 9 | * type:平台(1101是安卓,1102是IOS) 10 | */ 11 | /****************以下是示例*******************/ 12 | // 可以用自己项目的请求方法 13 | request({ 14 | url: '/v1/version/app', 15 | method: 'GET' 16 | }).then(res => { 17 | /* res的数据说明 18 | * | 参数名称 | 一定返回 | 类型 | 描述 19 | * | -------------|--------- | --------- | ------------- | 20 | * | versionCode | y | int | 版本号 | 21 | * | versionName | y | String | 版本名称 | 22 | * | versionInfo | y | String | 版本信息 | 23 | * | updateType | y | String | forcibly = 强制更新, solicit = 弹窗确认更新, silent = 静默更新 | 24 | * | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) | 25 | */ 26 | if(!res.data){ 27 | return; 28 | } 29 | const platform = uni.getSystemInfoSync().platform; 30 | let data = res.data 31 | data.downloadUrl = platform == "android" ? data.androidUrl : data.iosUrl 32 | data.updateType = data.forceUpdate == 1 ? 'forcibly' : 'solicit' 33 | if(version.versionCode == data.versionCode){ 34 | return; 35 | } 36 | 37 | if (data && data.downloadUrl) { 38 | // 兼容之前的版本(updateType是新版才有的参数) 39 | if(data.updateType){ 40 | callback && callback(data); 41 | } else { 42 | if(data.forceUpdate == 1){ 43 | data.updateType = "forcibly"; 44 | } else { 45 | data.updateType = "solicit"; 46 | } 47 | callback && callback(data); 48 | } 49 | } else if (isPrompt) { 50 | uni.showToast({ 51 | title: "暂无新版本", 52 | icon: "none" 53 | }); 54 | } 55 | }); 56 | /****************以上是示例*******************/ 57 | } 58 | } -------------------------------------------------------------------------------- /doc/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/10.jpg -------------------------------------------------------------------------------- /doc/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/11.jpg -------------------------------------------------------------------------------- /doc/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/12.jpg -------------------------------------------------------------------------------- /doc/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/13.jpg -------------------------------------------------------------------------------- /doc/14.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/14.jpeg -------------------------------------------------------------------------------- /doc/15.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/15.jpeg -------------------------------------------------------------------------------- /doc/16.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/16.jpeg -------------------------------------------------------------------------------- /doc/17.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/17.jpeg -------------------------------------------------------------------------------- /doc/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/18.jpg -------------------------------------------------------------------------------- /doc/19.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/19.jpeg -------------------------------------------------------------------------------- /doc/appbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/appbox.jpg -------------------------------------------------------------------------------- /doc/fexcoin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/fexcoin.jpg -------------------------------------------------------------------------------- /doc/qq_qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/qq_qrcode.jpg -------------------------------------------------------------------------------- /doc/wechat_qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/doc/wechat_qrcode.jpg -------------------------------------------------------------------------------- /hybrid/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/.DS_Store -------------------------------------------------------------------------------- /hybrid/html/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/.DS_Store -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/1.ea828ac684caa2b94a1b.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/10.0501e55a3ef6aa50aec6.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[10],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/11.dd520838f92e45cd91e3.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[11],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/12.18e3c4b9c329e737cb80.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/12.87f9777d9fe2086ce090.css: -------------------------------------------------------------------------------- 1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:left;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/12.87f9777d9fe2086ce090.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-2APwxL3O-{display:flex;min-width:280px;text-align:right;box-sizing:border-box;background-color:#fff;flex-direction:column}html.theme-dark .dialog-2APwxL3O-{background-color:#1e222d}.dialog-2APwxL3O-.rounded-tXI9mwGE-{border-radius:4px}.dialog-2APwxL3O-.shadowed-2M13-xZa-{box-shadow:0 1px 2px 1px rgba(0,0,0,.275)}.dialog-2APwxL3O-.fullscreen-2RqU2pqU-{position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;min-height:100%} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/16.e0d00f8a564954896734.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/18.e4c458360dbad4de5cf6.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[18],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/19.aba848e28ec755548668.css: -------------------------------------------------------------------------------- 1 | .loader-3Pj8ExOX-{position:absolute;top:0;left:0;right:0;bottom:0;height:100%;margin:0 auto;text-align:center;font-size:0;opacity:1;transition:opacity .35s ease}.loader-3Pj8ExOX-:after{content:" ";display:inline-block;height:100%;vertical-align:middle}.loader-3Pj8ExOX- .item-2n55_7om-{margin-right:2px;margin-left:2px;display:inline-block;vertical-align:middle;width:10px;height:10px;opacity:1;border-radius:100%;transform:translateY(0) scale(.6);transition:transform .35s cubic-bezier(.68,-.55,.265,1.55);animation:tv-button-loader-SKpJjjYw- .96s infinite ease-in-out both}.loader-3Pj8ExOX- .item-2n55_7om-:nth-child(2){transition-delay:.11666667s;animation-delay:.151s}.loader-3Pj8ExOX- .item-2n55_7om-:nth-child(3){transition-delay:.23333333s;animation-delay:.32s}.loader-3Pj8ExOX- .item-2n55_7om-.black-eFIQWyf4-{background-color:#757575}.loader-3Pj8ExOX- .item-2n55_7om-.white-2Ma0ajvT-{background-color:#fff}.loader-3Pj8ExOX- .item-2n55_7om-.gray-24fvVR0S-{background-color:#8797a5}.loader-3Pj8ExOX-.loader-initial{opacity:.1}.loader-3Pj8ExOX-.loader-initial .item-2n55_7om-{animation:none;transform:translateY(12px) scale(.6)}.loader-3Pj8ExOX-.loader-appear{opacity:1;transition:opacity .7s ease}.loader-3Pj8ExOX-.loader-appear .item-2n55_7om-{animation:none;transform:translateY(0) scale(.6)}@keyframes tv-button-loader-SKpJjjYw-{0%,to{transform:scale(.6)}50%{transform:scale(.9)}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/19.aba848e28ec755548668.rtl.css: -------------------------------------------------------------------------------- 1 | .loader-3Pj8ExOX-{position:absolute;top:0;right:0;left:0;bottom:0;height:100%;margin:0 auto;text-align:center;font-size:0;opacity:1;transition:opacity .35s ease}.loader-3Pj8ExOX-:after{content:" ";display:inline-block;height:100%;vertical-align:middle}.loader-3Pj8ExOX- .item-2n55_7om-{margin-left:2px;margin-right:2px;display:inline-block;vertical-align:middle;width:10px;height:10px;opacity:1;border-radius:100%;transform:translateY(0) scale(.6);transition:transform .35s cubic-bezier(.68,-.55,.265,1.55);animation:tv-button-loader-SKpJjjYw- .96s infinite ease-in-out both}.loader-3Pj8ExOX- .item-2n55_7om-:nth-child(2){transition-delay:.11666667s;animation-delay:.151s}.loader-3Pj8ExOX- .item-2n55_7om-:nth-child(3){transition-delay:.23333333s;animation-delay:.32s}.loader-3Pj8ExOX- .item-2n55_7om-.black-eFIQWyf4-{background-color:#757575}.loader-3Pj8ExOX- .item-2n55_7om-.white-2Ma0ajvT-{background-color:#fff}.loader-3Pj8ExOX- .item-2n55_7om-.gray-24fvVR0S-{background-color:#8797a5}.loader-3Pj8ExOX-.loader-initial{opacity:.1}.loader-3Pj8ExOX-.loader-initial .item-2n55_7om-{animation:none;transform:translateY(12px) scale(.6)}.loader-3Pj8ExOX-.loader-appear{opacity:1;transition:opacity .7s ease}.loader-3Pj8ExOX-.loader-appear .item-2n55_7om-{animation:none;transform:translateY(0) scale(.6)}@keyframes tv-button-loader-SKpJjjYw-{0%,to{transform:scale(.6)}50%{transform:scale(.9)}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/19.c5542d290eefbb001433.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[19],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/2.195070ea59b3395625da.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/20.2416da4fc4c075b56691.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[20],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/20.f75162343321d7d9178c.css: -------------------------------------------------------------------------------- 1 | .tv-caret{content:"";display:inline-block;width:0;height:0;border-style:solid;border-width:4px 4px 0;border-color:currentColor transparent transparent;margin-left:5px;vertical-align:middle;transition:transform .35s ease}.active .tv-caret,.i-dropped .tv-caret:not(.tv-caret--strict),.tv-caret--strict.i-dropped{transform:rotate(-180deg);will-change:transform;transition-duration:.33}.tv-caret--small{margin-left:3px;margin-right:-1px;border-top-width:3px;border-right-width:3px;border-left-width:3px}.tv-caret--colored{transition:transform .35s ease,color .35s ease}.tv-caret--no-margin{margin-left:0} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/20.f75162343321d7d9178c.rtl.css: -------------------------------------------------------------------------------- 1 | .tv-caret{content:"";display:inline-block;width:0;height:0;border-style:solid;border-width:4px 4px 0;border-color:currentColor transparent transparent;margin-right:5px;vertical-align:middle;transition:transform .35s ease}.active .tv-caret,.i-dropped .tv-caret:not(.tv-caret--strict),.tv-caret--strict.i-dropped{transform:rotate(180deg);will-change:transform;transition-duration:.33}.tv-caret--small{margin-right:3px;margin-left:-1px;border-top-width:3px;border-left-width:3px;border-right-width:3px}.tv-caret--colored{transition:transform .35s ease,color .35s ease}.tv-caret--no-margin{margin-right:0} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/21.fc856808959a5b8734f7.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/22.c118eafc7686081984c8.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/23.7c4be219df640cb3880c.css: -------------------------------------------------------------------------------- 1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/23.7c4be219df640cb3880c.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-34XTwGTT-{position:fixed;min-width:280px;width:100%;max-width:380px}.dialog-34XTwGTT- [data-dragg-area]{cursor:url(grab.bc156522a6b55a60be9fae15c14b66c5.cur),move;cursor:grab}.dialog-34XTwGTT- [data-dragg-area].dragging-33JfMDO6-{cursor:url(grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur),move;cursor:grabbing} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/23.e89d09694523563b8f86.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[23],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/31.d081df3316799b489847.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[31],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/32.48df7a8cdc38d60b308b.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[32],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/33.4a74c62095be3045c87e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[33],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/34.17e0ce399a577f17ba55.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[34],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/35.47b9d16b3fa10b495a11.css: -------------------------------------------------------------------------------- 1 | .tv-tabbed-dialog{background-color:#fff;color:#4a4a4a}html.theme-dark .tv-tabbed-dialog{color:#c5cbce;background-color:#1e222d}.tv-tabbed-dialog__header{display:flex;position:relative;padding-top:0;padding-left:0;padding-bottom:0;border-bottom:none!important;margin-bottom:-1px;z-index:6}.tv-tabbed-dialog__bottom-border{position:absolute;left:0;right:0;bottom:0;height:1px;background-color:#dadde0;z-index:-1}html.theme-dark .tv-tabbed-dialog__bottom-border{background-color:#363c4e}.tv-tabbed-dialog__tab-page{height:100%;display:none}.tv-tabbed-dialog__tab-page.active{overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;display:block}.tv-tabbed-dialog__close{z-index:6;top:5px}.tv-tabbed-dialog__tabs{width:100%;flex-shrink:1;height:53px}.tv-tabbed-dialog__custom-controls{margin-left:10px;flex-shrink:0}.tv-tabbed-dialog__tabs-arrow-left:before,.tv-tabbed-dialog__tabs-arrow-right:before{content:"";position:absolute;bottom:1px;left:0;right:0;height:1px}.tv-tabbed-dialog__tabs-arrow-left:before{background:linear-gradient(90deg,#dadde0 0,#dadde0 85%,hsla(0,0%,100%,0))}.tv-tabbed-dialog__tabs-arrow-right:before{background:linear-gradient(270deg,#dadde0 0,#dadde0 85%,hsla(0,0%,100%,0))} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/35.47b9d16b3fa10b495a11.rtl.css: -------------------------------------------------------------------------------- 1 | .tv-tabbed-dialog{background-color:#fff;color:#4a4a4a}html.theme-dark .tv-tabbed-dialog{color:#c5cbce;background-color:#1e222d}.tv-tabbed-dialog__header{display:flex;position:relative;padding-top:0;padding-right:0;padding-bottom:0;border-bottom:none!important;margin-bottom:-1px;z-index:6}.tv-tabbed-dialog__bottom-border{position:absolute;right:0;left:0;bottom:0;height:1px;background-color:#dadde0;z-index:-1}html.theme-dark .tv-tabbed-dialog__bottom-border{background-color:#363c4e}.tv-tabbed-dialog__tab-page{height:100%;display:none}.tv-tabbed-dialog__tab-page.active{overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;display:block}.tv-tabbed-dialog__close{z-index:6;top:5px}.tv-tabbed-dialog__tabs{width:100%;flex-shrink:1;height:53px}.tv-tabbed-dialog__custom-controls{margin-right:10px;flex-shrink:0}.tv-tabbed-dialog__tabs-arrow-left:before,.tv-tabbed-dialog__tabs-arrow-right:before{content:"";position:absolute;bottom:1px;right:0;left:0;height:1px}.tv-tabbed-dialog__tabs-arrow-left:before{background:linear-gradient(270deg,#dadde0 0,#dadde0 85%,hsla(0,0%,100%,0))}.tv-tabbed-dialog__tabs-arrow-right:before{background:linear-gradient(90deg,#dadde0 0,#dadde0 85%,hsla(0,0%,100%,0))} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/35.58433cec10095e3c1b7e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/36.2ee80b40751fcc88a65c.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/36.e9a6bec06ee11d2c2d4a.css: -------------------------------------------------------------------------------- 1 | .tv-text-input{color:#4a4a4a;margin:0;border:1px solid;border-color:#dadde0;display:inline-block;overflow:hidden;width:100px;height:26px;vertical-align:top;padding:0 5px}html.theme-dark .tv-text-input{border-color:#363c4e;color:#c5cbce}.tv-text-input:focus{border-color:#2196f3}html.theme-dark .tv-text-input:focus{border-color:#1976d2}.tv-text-input.inset{background:#fff}html.theme-dark .tv-text-input.inset{background:#131722}.tv-text-input.ticker{height:25px;width:60px}.tv-text-input.ticker--longer-sign_8{width:72px}.tv-text-input.ticker--evenlonger{width:90px} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/36.e9a6bec06ee11d2c2d4a.rtl.css: -------------------------------------------------------------------------------- 1 | .tv-text-input{color:#4a4a4a;margin:0;border:1px solid;border-color:#dadde0;display:inline-block;overflow:hidden;width:100px;height:26px;vertical-align:top;padding:0 5px;direction:ltr;text-align:right}html.theme-dark .tv-text-input{border-color:#363c4e;color:#c5cbce}.tv-text-input:focus{border-color:#2196f3}html.theme-dark .tv-text-input:focus{border-color:#1976d2}.tv-text-input.inset{background:#fff}html.theme-dark .tv-text-input.inset{background:#131722}.tv-text-input.ticker{height:25px;width:60px}.tv-text-input.ticker--longer-sign_8{width:72px}.tv-text-input.ticker--evenlonger{width:90px} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/37.065a5f2249aafcfe50ec.css: -------------------------------------------------------------------------------- 1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/37.065a5f2249aafcfe50ec.rtl.css: -------------------------------------------------------------------------------- 1 | .star-uhAI7sV4-{display:block;opacity:.7;box-sizing:border-box;transition:opacity .35s ease;padding:4px;margin:-4px}.star-uhAI7sV4- svg{display:block;fill:currentColor;pointer-events:none}.star-uhAI7sV4-.checked-2bhy04CF- svg{fill:#ffca3b}.star-uhAI7sV4-:active{opacity:1;transition-duration:60ms}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.star-uhAI7sV4-:hover{opacity:1;transition-duration:60ms}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/37.1735365b01406a8d696d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[37],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/38.9ae2eea9402c30aa3046.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[38],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/39.5f64b4bc2e263edfbf6e.css: -------------------------------------------------------------------------------- 1 | .tabs-1LGqoVz6-{display:flex;position:relative;width:100%}.tab-1Yr0rq0J-{flex:1 1;padding:13px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;border-bottom:1px solid;border-color:#e1ecf2;transition:color .35s ease;color:#131722}html.theme-dark .tab-1Yr0rq0J-{color:#b2b5be;border-color:#363c4e}.tab-1Yr0rq0J-.noBorder-oc3HwerO-{border-bottom:0}.tab-1Yr0rq0J-.disabled-s8cEYElA-{color:#eceff2}.tab-1Yr0rq0J-.active-37sipdzm-{color:#2196f3}html.theme-dark .tab-1Yr0rq0J-.active-37sipdzm-{color:#1976d2}.defaultCursor-Np9BHjTg-{cursor:default}.slider-1-X4lOmE-{position:absolute;bottom:0;left:0;height:3px;background-color:#2196f3;transition-timing-function:cubic-bezier(.215,.61,.355,1)}html.theme-dark .slider-1-X4lOmE-{background-color:#1976d2}.content-2asssfGq-{width:100%} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/39.5f64b4bc2e263edfbf6e.rtl.css: -------------------------------------------------------------------------------- 1 | .tabs-1LGqoVz6-{display:flex;position:relative;width:100%}.tab-1Yr0rq0J-{flex:1 1;padding:13px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;border-bottom:1px solid;border-color:#e1ecf2;transition:color .35s ease;color:#131722}html.theme-dark .tab-1Yr0rq0J-{color:#b2b5be;border-color:#363c4e}.tab-1Yr0rq0J-.noBorder-oc3HwerO-{border-bottom:0}.tab-1Yr0rq0J-.disabled-s8cEYElA-{color:#eceff2}.tab-1Yr0rq0J-.active-37sipdzm-{color:#2196f3}html.theme-dark .tab-1Yr0rq0J-.active-37sipdzm-{color:#1976d2}.defaultCursor-Np9BHjTg-{cursor:default}.slider-1-X4lOmE-{position:absolute;bottom:0;left:0;height:3px;background-color:#2196f3;transition-timing-function:cubic-bezier(.215,.61,.355,1)}html.theme-dark .slider-1-X4lOmE-{background-color:#1976d2}.content-2asssfGq-{width:100%} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/39.7e524b82ef9947f0f19f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/40.42bd9598272e9dd24457.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[40],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/41.11c024e8e0504741fd66.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/42.0491acaaf55887f7fcb3.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/43.4ae432f1b8259dbfd0e5.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/44.7aabc64d3dfb54c85d60.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[44],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/45.6c1fc3ac2f6063249f97.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/46.75a0e6fecbc3c92a6bc7.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[46],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/47.773635a99e184d6dc131.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[47],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/48.9d08141ee2d55bcad3e7.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[48],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/49.929acbc67c2613c57f58.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[49],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/50.2c50aad369bf63f77061.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/51.30c5804303a9f1c455e3.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[51],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/51.a35e4c0d0b08a018e307.css: -------------------------------------------------------------------------------- 1 | .modal-GUK9cvUQ-{display:flex;position:fixed;align-items:center;justify-content:center}.backdrop-1qZHPwi_-,.modal-GUK9cvUQ-{top:0;bottom:0;right:0;left:0;transform:translateZ(0)}.backdrop-1qZHPwi_-{position:absolute;background-color:#2a2c39;opacity:.5;z-index:-1}.modal-C2LSTwhC-{min-width:320px}.content-tr28wPlV-,.form-2GifjSKe- .copyForm-1HuPoKA0-,.modal-C2LSTwhC-{position:relative}.form-2GifjSKe- .copyForm-1HuPoKA0- .copyBtn-1oB8tEqo-{position:absolute;top:0;right:0;font-weight:700;background:#fff;border-radius:2px}html.theme-dark .form-2GifjSKe- .copyForm-1HuPoKA0- .copyBtn-1oB8tEqo-{background:#1e222d}.form-2GifjSKe- .copyForm-1HuPoKA0- .shadow-2JTdO0Fb-{box-shadow:0 0 0 0 #fff,-8px 0 10px -3px #fff}html.theme-dark .form-2GifjSKe- .copyForm-1HuPoKA0- .shadow-2JTdO0Fb-{box-shadow:0 0 0 0 #1e222d,-8px 0 10px -3px #1e222d}.form-2GifjSKe- .actions-3fKk-h7d-{display:block;padding-top:25px}.form-2GifjSKe- .link-1alPBTTQ-{display:block;float:left;font-weight:700;font-size:14px;cursor:pointer;color:#757575;fill:#757575}html.theme-dark .form-2GifjSKe- .link-1alPBTTQ-{fill:#758696;color:#758696}.form-2GifjSKe- .link-1alPBTTQ- svg{width:22px;height:14px;position:relative;top:2px;padding-right:8px}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.form-2GifjSKe- .link-1alPBTTQ-:hover{color:#1e88e5;fill:#1e88e5}}.form-2GifjSKe- .socials-rht5Uvp--{display:block;float:right;font-weight:700;font-size:14px;cursor:pointer;color:#2196f3;fill:#2196f3}.form-2GifjSKe- .socials-rht5Uvp-- svg{width:18px;height:14px;position:relative;top:2px;padding-right:8px}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.form-2GifjSKe- .socials-rht5Uvp--:hover{color:#1e88e5;fill:#1e88e5}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/51.a35e4c0d0b08a018e307.rtl.css: -------------------------------------------------------------------------------- 1 | .modal-GUK9cvUQ-{display:flex;position:fixed;align-items:center;justify-content:center}.backdrop-1qZHPwi_-,.modal-GUK9cvUQ-{top:0;bottom:0;left:0;right:0;transform:translateZ(0)}.backdrop-1qZHPwi_-{position:absolute;background-color:#2a2c39;opacity:.5;z-index:-1}.modal-C2LSTwhC-{min-width:320px}.content-tr28wPlV-,.form-2GifjSKe- .copyForm-1HuPoKA0-,.modal-C2LSTwhC-{position:relative}.form-2GifjSKe- .copyForm-1HuPoKA0- .copyBtn-1oB8tEqo-{position:absolute;top:0;left:0;font-weight:700;background:#fff;border-radius:2px}html.theme-dark .form-2GifjSKe- .copyForm-1HuPoKA0- .copyBtn-1oB8tEqo-{background:#1e222d}.form-2GifjSKe- .copyForm-1HuPoKA0- .shadow-2JTdO0Fb-{box-shadow:0 0 0 0 #fff,8px 0 10px -3px #fff}html.theme-dark .form-2GifjSKe- .copyForm-1HuPoKA0- .shadow-2JTdO0Fb-{box-shadow:0 0 0 0 #1e222d,8px 0 10px -3px #1e222d}.form-2GifjSKe- .actions-3fKk-h7d-{display:block;padding-top:25px}.form-2GifjSKe- .link-1alPBTTQ-{display:block;float:right;font-weight:700;font-size:14px;cursor:pointer;color:#757575;fill:#757575}html.theme-dark .form-2GifjSKe- .link-1alPBTTQ-{fill:#758696;color:#758696}.form-2GifjSKe- .link-1alPBTTQ- svg{width:22px;height:14px;position:relative;top:2px;padding-left:8px}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.form-2GifjSKe- .link-1alPBTTQ-:hover{color:#1e88e5;fill:#1e88e5}}.form-2GifjSKe- .socials-rht5Uvp--{display:block;float:left;font-weight:700;font-size:14px;cursor:pointer;color:#2196f3;fill:#2196f3}.form-2GifjSKe- .socials-rht5Uvp-- svg{width:18px;height:14px;position:relative;top:2px;padding-left:8px}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.form-2GifjSKe- .socials-rht5Uvp--:hover{color:#1e88e5;fill:#1e88e5}} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/52.c212ca3684de16c6f115.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[52],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/53.7217742e39b70fc9d431.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[53],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/54.9eb4ca2a30197d95fe82.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[54],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/55.7707e6ae9f2ec8cfb656.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[55],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/55.c11884ad80d526214fb6.css: -------------------------------------------------------------------------------- 1 | .popupDialog-2VK9ttEi-{max-width:450px}.content-BtJ6qB4V- .row-3iYHykfo-{display:flex;padding-bottom:12px}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi-{font-size:13px}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .title-22tx3Djt-{color:#888989}html.theme-dark .content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .title-22tx3Djt-{color:#758696}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .value-2xvVEs1a-{font-weight:700;color:#4a4a4a}html.theme-dark .content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .value-2xvVEs1a-{color:#c5cbce}.content-BtJ6qB4V- .row-3iYHykfo- .columnTitle-3ypCTDKd-{text-align:left}.content-BtJ6qB4V- .row-3iYHykfo- .columnValue-Xr4j0qyI-{margin-left:auto;text-align:right} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/55.c11884ad80d526214fb6.rtl.css: -------------------------------------------------------------------------------- 1 | .popupDialog-2VK9ttEi-{max-width:450px}.content-BtJ6qB4V- .row-3iYHykfo-{display:flex;padding-bottom:12px}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi-{font-size:13px}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .title-22tx3Djt-{color:#888989}html.theme-dark .content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .title-22tx3Djt-{color:#758696}.content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .value-2xvVEs1a-{font-weight:700;color:#4a4a4a}html.theme-dark .content-BtJ6qB4V- .row-3iYHykfo- .column-2FlX4ngi- .value-2xvVEs1a-{color:#c5cbce}.content-BtJ6qB4V- .row-3iYHykfo- .columnTitle-3ypCTDKd-{text-align:right}.content-BtJ6qB4V- .row-3iYHykfo- .columnValue-Xr4j0qyI-{margin-right:auto;text-align:left} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/56.83cd8456e872f49059c3.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[56],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/57.6384b62456dc4fed6ffb.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[57],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/58.8077d6b199609737b3d5.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[58],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/58.82b7bef062a290e587d4.css: -------------------------------------------------------------------------------- 1 | .control-bar-wrapper{position:absolute;pointer-events:none;bottom:33px;height:28px;z-index:1;direction:ltr}.control-bar{display:flex;visibility:visible;transition:opacity .3s,visibility .3s}.control-bar--hidden,.control-bar--hidden .control-bar__btn{visibility:hidden;opacity:0}.control-bar__group{display:flex;align-items:center;margin:0 7px}.control-bar__btn{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;margin:0 4px;width:28px;height:28px;background-color:hsla(0,0%,100%,.7);color:#758696;box-shadow:0 1px 4px 0 rgba(117,134,150,.38);pointer-events:auto;transition:background-color .3s,color .3s,visibility .4s,opacity .4s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1;visibility:visible;opacity:1}.control-bar__btn--turn-button{margin:0 11px}.control-bar__btn--turn-button svg{margin-bottom:1px}.control-bar__btn--btn-hidden{visibility:hidden;opacity:0}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.control-bar__btn:hover{background-color:#fff;color:#262b3e}}.control-bar__btn:active{background-color:#f7f8fa;transition:none}.control-bar__btn--dark{background-color:rgba(38,43,62,.6);color:#9db2bd;box-shadow:0 1px 4px 0 #000}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.control-bar__btn--dark:hover{background-color:#262b3e;color:#c5cbce}}.control-bar__btn--dark:active{background-color:#1c2030}.control-bar__btn--back-present{position:absolute;right:2px;bottom:33px}.control-bar__btn svg{pointer-events:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/58.82b7bef062a290e587d4.rtl.css: -------------------------------------------------------------------------------- 1 | .control-bar-wrapper{position:absolute;pointer-events:none;bottom:33px;height:28px;z-index:1;direction:ltr}.control-bar{display:flex;visibility:visible;transition:opacity .3s,visibility .3s}.control-bar--hidden,.control-bar--hidden .control-bar__btn{visibility:hidden;opacity:0}.control-bar__group{display:flex;align-items:center;margin:0 7px}.control-bar__btn{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;margin:0 4px;width:28px;height:28px;background-color:hsla(0,0%,100%,.7);color:#758696;box-shadow:0 1px 4px 0 rgba(117,134,150,.38);pointer-events:auto;transition:background-color .3s,color .3s,visibility .4s,opacity .4s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1;visibility:visible;opacity:1}.control-bar__btn--turn-button{margin:0 11px}.control-bar__btn--turn-button svg{margin-bottom:1px}.control-bar__btn--btn-hidden{visibility:hidden;opacity:0}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.control-bar__btn:hover{background-color:#fff;color:#262b3e}}.control-bar__btn:active{background-color:#f7f8fa;transition:none}.control-bar__btn--dark{background-color:rgba(38,43,62,.6);color:#9db2bd;box-shadow:0 1px 4px 0 #000}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.control-bar__btn--dark:hover{background-color:#262b3e;color:#c5cbce}}.control-bar__btn--dark:active{background-color:#1c2030}.control-bar__btn--back-present{position:absolute;right:2px;bottom:33px}.control-bar__btn svg{pointer-events:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/6.35dee0cfeb8a4d70732c.css: -------------------------------------------------------------------------------- 1 | .tv-ticker{display:inline;position:absolute;width:13px;height:27px;margin:0 0 0 -13px}.tv-ticker__btn{width:7px;height:8px;padding:2px;border:1px solid;border-color:#dadde0;background:#fff;fill:#9db2bd}html.theme-dark .tv-ticker__btn{background:#131722;border-color:#363c4e}.tv-ticker__btn>svg{display:block;width:7px;height:8px}.tv-ticker__btn--up>svg{transform:scaleY(-1)}.tv-ticker__btn--down{border-top-width:0}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.tv-ticker__btn:hover{background-color:#f2f2f2}}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){html.theme-dark .tv-ticker__btn:hover{background-color:#1c2030}}.tv-ticker__btn.i-active,.tv-ticker__btn:active{background-color:#ececec}html.theme-dark .tv-ticker__btn.i-active,html.theme-dark .tv-ticker__btn:active{background-color:#262b3e}input:focus+.tv-ticker .tv-ticker__btn{border-color:#2196f3;fill:#2196f3}html.theme-dark input:focus+.tv-ticker .tv-ticker__btn{fill:#1976d2;border-color:#1976d2}input:disabled+.tv-ticker{display:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/6.35dee0cfeb8a4d70732c.rtl.css: -------------------------------------------------------------------------------- 1 | .tv-ticker{display:inline;position:absolute;width:13px;height:27px;margin:0 -13px 0 0}.tv-ticker__btn{width:7px;height:8px;padding:2px;border:1px solid;border-color:#dadde0;background:#fff;fill:#9db2bd}html.theme-dark .tv-ticker__btn{background:#131722;border-color:#363c4e}.tv-ticker__btn>svg{display:block;width:7px;height:8px}.tv-ticker__btn--up>svg{transform:scaleY(-1)}.tv-ticker__btn--down{border-top-width:0}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){.tv-ticker__btn:hover{background-color:#f2f2f2}}@media (any-hover:hover),(min--moz-device-pixel-ratio:0),(min-width:0\0){html.theme-dark .tv-ticker__btn:hover{background-color:#1c2030}}.tv-ticker__btn.i-active,.tv-ticker__btn:active{background-color:#ececec}html.theme-dark .tv-ticker__btn.i-active,html.theme-dark .tv-ticker__btn:active{background-color:#262b3e}input:focus+.tv-ticker .tv-ticker__btn{border-color:#2196f3;fill:#2196f3}html.theme-dark input:focus+.tv-ticker .tv-ticker__btn{fill:#1976d2;border-color:#1976d2}input:disabled+.tv-ticker{display:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/6.902d5f3923d45b49b876.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/7.fc0941206f7b7d32812d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/8.180c6bdc716e5045b645.css: -------------------------------------------------------------------------------- 1 | .menuWrap-1gEtmoET-{text-align:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;z-index:100;border-radius:3px;background-color:#fff;box-shadow:0 2px 4px 0 rgba(107,121,136,.4)}html.theme-dark .menuWrap-1gEtmoET-{background-color:#1e222d;box-shadow:0 2px 4px 0 #000}.menuWrap-1gEtmoET-.isMeasuring-FZ0EJCM2-{position:fixed;visibility:hidden;opacity:0;pointer-events:none}.scrollWrap-1B5MfTJt-{height:100%;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:scrollbar}.scrollWrap-1B5MfTJt-.momentumBased-1Jq4gQt2-{-webkit-overflow-scrolling:touch}.scrollWrap-1B5MfTJt-::-webkit-scrollbar{width:5px;height:5px}.scrollWrap-1B5MfTJt-::-webkit-scrollbar-thumb{border:1px solid;border-color:#f1f3f6;border-radius:3px;background-color:#9db2bd}html.theme-dark .scrollWrap-1B5MfTJt-::-webkit-scrollbar-thumb{background-color:#363c4e;border-color:#1c2030}.scrollWrap-1B5MfTJt-::-webkit-scrollbar-track{background-color:transparent;border-radius:3px}.menuBox-20sJGjtG-{padding:6px 0}.isHidden-2vLQpR1t-{display:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/8.180c6bdc716e5045b645.rtl.css: -------------------------------------------------------------------------------- 1 | .menuWrap-1gEtmoET-{text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;z-index:100;border-radius:3px;background-color:#fff;box-shadow:0 2px 4px 0 rgba(107,121,136,.4)}html.theme-dark .menuWrap-1gEtmoET-{background-color:#1e222d;box-shadow:0 2px 4px 0 #000}.menuWrap-1gEtmoET-.isMeasuring-FZ0EJCM2-{position:fixed;visibility:hidden;opacity:0;pointer-events:none}.scrollWrap-1B5MfTJt-{height:100%;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:scrollbar}.scrollWrap-1B5MfTJt-.momentumBased-1Jq4gQt2-{-webkit-overflow-scrolling:touch}.scrollWrap-1B5MfTJt-::-webkit-scrollbar{width:5px;height:5px}.scrollWrap-1B5MfTJt-::-webkit-scrollbar-thumb{border:1px solid;border-color:#f1f3f6;border-radius:3px;background-color:#9db2bd}html.theme-dark .scrollWrap-1B5MfTJt-::-webkit-scrollbar-thumb{background-color:#363c4e;border-color:#1c2030}.scrollWrap-1B5MfTJt-::-webkit-scrollbar-track{background-color:transparent;border-radius:3px}.menuBox-20sJGjtG-{padding:6px 0}.isHidden-2vLQpR1t-{display:none} -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/8.62bd4ee21281906a7019.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],[]]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/confirm-symbol-input-dialog.c72289c830292c73812f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([["confirm-symbol-input-dialog"],{kzGG:function(n,o,t){"use strict";function e(n,o,t){var e,i,p,a=$('');a.css({float:"none","box-sizing":"border-box",width:"100%"}),e=null,i=Object(c.createDialog)({title:o||window.t("Add Symbol"),width:400,actions:[{name:"apply",text:window.t("Apply"),type:"primary"}],content:a,isClickOutFn:function(n){if(e&&(n.target===e[0]||e[0].contains(n.target)))return!1}}),p=Object(l.symbolSearchUIService)().bindToInput(a,{callback:function(o){n(o),i.close()},onPopupOpen:function(n){n.css("z-index",i.zIndex),e=n},onPopupClose:function(){e=null}}),i.on("action:apply",function(){p.then(function(n){n.acceptTypeIn()})}),t&&i.on("beforeClose",function(){t()}),i.open()}var i,c,l;t.r(o),t.d(o,"showConfirmSymbolInputDialog",function(){return e}),i=t("P5fv"),t("YFKU"),c=t("YDhE"),l=t("pZll")}}]); -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/fontawesome-webfont.3293616ec0c605c7c2db25829a0a509e.woff -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/fontawesome-webfont.40f9a03d174178efb12303caa9bc7cd8.woff2 -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/opacity-pattern.a6506134daec7169f68f563f084a9d41.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js: -------------------------------------------------------------------------------- 1 | self.__precacheManifest = [ 2 | ]; -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Welcome to your Workbox-powered service worker! 3 | * 4 | * You'll need to register this file in your web app and you should 5 | * disable HTTP caching for this file too. 6 | * See https://goo.gl/nhQhGp 7 | * 8 | * The rest of the code is auto-generated. Please don't update this file 9 | * directly; instead, make changes to your Workbox build configuration 10 | * and re-run your build process. 11 | * See https://goo.gl/2aRDsh 12 | */ 13 | 14 | importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); 15 | 16 | importScripts( 17 | "bundles/precache-manifest.60144109bbe17651b1eb050c29e4f6f4.js" 18 | ); 19 | 20 | /** 21 | * The workboxSW.precacheAndRoute() method efficiently caches and responds to 22 | * requests for URLs in the manifest. 23 | * See https://goo.gl/S9QRab 24 | */ 25 | self.__precacheManifest = [].concat(self.__precacheManifest || []); 26 | workbox.precaching.suppressWarnings(); 27 | workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); 28 | 29 | workbox.routing.registerRoute(/chart\/.*/, workbox.strategies.networkFirst({ "cacheName":"network-first", plugins: [] }), 'GET'); 30 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/bundles/study-pane-views.ee901b6c4a31f84ba03d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([["study-pane-views"],{psYU:function(e,t,i){"use strict";var n,r,s,o,a,d,l,h;i.r(t),i.d(t,"VertLinePaneView",function(){return h}),n=i("Eyy1"),r=i("aO4+"),s=i("k9/m"),o=i("VdBB"),a=i("Zy3/"),d=i("a7Ha"),l=i("pJOz"),h=function(){function e(e,t,i){this._data=[],this._invalidated=!0,this._provider=e,this._model=t,this._hitTestResult=void 0!==i?new o.HitTestResult(o.HitTestResult.CUSTOM,i):new o.HitTestResult(o.HitTestResult.REGULAR)}return e.prototype.update=function(){this._invalidated=!0},e.prototype.renderer=function(){var e,t,i,n,r;for(this._invalidated&&(this._updateViewInternal(),this._invalidated=!1),e=new a.CompositeRenderer,t=0,i=this._data;t -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/svg/chart/font.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/svg/chart/large-slider-handle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/svg/chart/pencil2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/svg/question-mark-rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/tvcolorpicker-bg-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/images/tvcolorpicker-bg-gradient.png -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/tvcolorpicker-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/images/tvcolorpicker-bg.png -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/tvcolorpicker-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/images/tvcolorpicker-check.png -------------------------------------------------------------------------------- /hybrid/html/charting_library/static/images/tvcolorpicker-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library/static/images/tvcolorpicker-sprite.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/10.001220e38ce0a39f882e.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([10],{1193:function(t,e,i){"use strict";function r(){return n.enabled("saveload_requires_authentication")&&!window.is_authenticated?Promise.resolve([]):new Promise(function(t){c.getCharts(function(e){t(e)})})}var n,o,a,c,s,u,h,l;Object.defineProperty(e,"__esModule",{value:!0}),n=i(5),o=i(1320),a=i(397),c=i(92),s=i(398),u=i(93),h=i(24),l=function(){function t(t){var e=this;this._favoriteChartsService=new o.FavoriteChartsService(u.TVXWindowEvents,h),this._dialog=new a,this._getChartEntry=function(t){return{id:t.id,url:t.url,title:t.name,symbol:t.short_symbol,interval:t.interval,toolsCount:0,modified:t.modified_iso,active:function(){return e._isActiveChart(t.id)},openAction:function(){return c.loadChart(t)},deleteAction:function(i,r){s.deleteChart(r,t.image_url,function(){e._deleteChart(t.id),i.resolve()},i.reject.bind(i))},favoriteAction:e._updateFavorites}},this._updateFavorites=function(t){return e._favoriteChartsService.set(t)},this._isActiveChart=function(t){return t===e._chartWidgetCollection.metaInfo.id.value()},this._deleteChart=function(t){e._isActiveChart(t)&&(n.enabled("saveload_storage_customization")?e._chartWidgetCollection.clearChartMetaInfo():location.href="/chart/")},this._chartWidgetCollection=t}return t.prototype.showLoadDialog=function(){var t=this;r().then(function(e){return e.map(t._getChartEntry)}).then(function(e){t._dialog.show(e,t._favoriteChartsService.get())})},t}(),e.LoadChartService=l},1320:function(t,e,i){"use strict";var r,n,o;Object.defineProperty(e,"__esModule",{value:!0}),r=i(0),n=i(174),o=function(t){function e(e,i){return t.call(this,e,i,"FAVORITE_CHARTS_CHANGED","loadChartDialog.favorites",{})||this}return r.__extends(e,t),e}(n.CommonJsonStoreService),e.FavoriteChartsService=o}}); -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/crosshair.6c091f7d5427d0c5e6d9dc3a90eb2b20.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/dot.ed68e83c16f77203e73dbc4c3a7c7fa1.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/eraser.0579d40b812fa2c3ffe72e5803a6e14c.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/grab.bc156522a6b55a60be9fae15c14b66c5.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/grabbing.1c0862a8a8c0fb02885557bc97fdafe7.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/propertypagesfactory.37bd38e8744b0cc04a07.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([12],{1077:function(e,r,t){"use strict";r.createInputsPropertyPage=function(e,r){var t=e.getInputsPropertyPage();return null==t?null:new t(e.properties(),r,e)},r.createStudyStrategyPropertyPage=function(e,r){var t=e.getStrategyPropertyPage();return null==t?null:new t(e.properties(),r,e)},r.createStylesPropertyPage=function(e,r){var t=e.getStylesPropertyPage();return null==t?null:new t(e.properties(),r,e)},r.createDisplayPropertyPage=function(e,r){var t=e.getDisplayPropertyPage();return null==t?null:new t(e.properties(),r,e)},r.createVisibilitiesPropertyPage=function(e,r){var t=e.getVisibilitiesPropertyPage();return null==t?null:new t(e.properties(),r,e)},r.hasInputsPropertyPage=function(e){return null!==e.getInputsPropertyPage()},r.hasStylesPropertyPage=function(e){return null!==e.getStylesPropertyPage()}}}); -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/vendors.a94ef44ed5c201cefcf6ad7460788c1a.css: -------------------------------------------------------------------------------- 1 | @keyframes highlight-animation{0%{background:transparent}to{background:#fff2cf}}@keyframes highlight-animation-theme-dark{0%{background:transparent}to{background:#194453}} -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/bundles/zoom.e21f24dd632c7069139bc47ae89c54b5.cur -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/balloon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/balloon.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/bar-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/bar-loader.gif -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/button-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/button-bg.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/charting_library/logo-widget-copyright-faded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/charting_library/logo-widget-copyright-faded.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/charting_library/logo-widget-copyright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/charting_library/logo-widget-copyright.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/controlll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/controlll.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/delayed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/delayed.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/dialogs/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/dialogs/checkbox.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/dialogs/close-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/dialogs/close-flat.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/dialogs/large-slider-handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/dialogs/large-slider-handle.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/dialogs/linewidth-slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/dialogs/linewidth-slider.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/dialogs/opacity-slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/dialogs/opacity-slider.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/icons.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/prediction-clock-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/prediction-clock-black.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/prediction-clock-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/prediction-clock-white.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/prediction-failure-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/prediction-failure-white.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/prediction-success-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/prediction-success-white.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/select-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/select-bg.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/sidetoolbar/instruments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/sidetoolbar/instruments.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/sidetoolbar/toolgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/sidetoolbar/toolgroup.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/svg/chart/bucket2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/svg/chart/font.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/svg/chart/large-slider-handle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/svg/chart/pencil2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/svg/question-mark-rounded.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/tvcolorpicker-bg-gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/tvcolorpicker-bg-gradient.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/tvcolorpicker-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/tvcolorpicker-bg.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/tvcolorpicker-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/tvcolorpicker-check.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/tvcolorpicker-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/tvcolorpicker-sprite.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/images/warning-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/hybrid/html/charting_library_bak/static/images/warning-icon.png -------------------------------------------------------------------------------- /hybrid/html/charting_library_bak/static/setting.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hybrid/html/event.js: -------------------------------------------------------------------------------- 1 | var Event = { 2 | EVENT: {}, 3 | emit (eventName, resp) { 4 | if (this.EVENT[eventName] && Object.prototype.toString.call(this.EVENT[eventName]) === "[object Array]") { 5 | for (let i = 0, fn; fn = this.EVENT[eventName][i++];) { 6 | fn(resp) 7 | } 8 | } 9 | }, 10 | on (name, fn) { 11 | if (this.EVENT[name] && Object.prototype.toString.call(this.EVENT[name]) === "[object Array]") { 12 | this.EVENT[name].push(fn) 13 | } else { 14 | this.EVENT[name] = [fn] 15 | } 16 | }, 17 | off (name) { 18 | this.EVENT[name] = null 19 | } 20 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fex-wallet", 3 | "version": "1.0.0", 4 | "description": "blockchain", 5 | "scripts": {}, 6 | "author": "flex", 7 | "license": "ISC", 8 | "dependencies": { 9 | "@dcloudio/uni-ui": "^1.3.2", 10 | "crypto-js": "^4.1.1", 11 | "pako": "^1.0.11", 12 | "tki-qrcode": "^0.1.6", 13 | "uni-luck-draw": "^1.3.8", 14 | "uview-ui": "^1.8.4", 15 | "vue-moment": "^4.1.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /pages/index/guide.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 60 | 61 | 67 | -------------------------------------------------------------------------------- /pages/market/intro.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 36 | 37 | 42 | -------------------------------------------------------------------------------- /pages/otc/components/otc-list.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 55 | 56 | 71 | -------------------------------------------------------------------------------- /pages/public/h5kline.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 31 | 32 | 34 | -------------------------------------------------------------------------------- /pages/public/web.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 32 | 33 | 36 | -------------------------------------------------------------------------------- /pages/set/aboutDetail.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 38 | 39 | 45 | -------------------------------------------------------------------------------- /static/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/.DS_Store -------------------------------------------------------------------------------- /static/Alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/Alipay.png -------------------------------------------------------------------------------- /static/UnionPay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/UnionPay.png -------------------------------------------------------------------------------- /static/Wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/Wechat.png -------------------------------------------------------------------------------- /static/about_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/about_logo.png -------------------------------------------------------------------------------- /static/arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/arc.png -------------------------------------------------------------------------------- /static/bank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/bank.png -------------------------------------------------------------------------------- /static/bank1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/bank1.png -------------------------------------------------------------------------------- /static/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/default.jpg -------------------------------------------------------------------------------- /static/empty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/empty.jpg -------------------------------------------------------------------------------- /static/emptyCart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/emptyCart.jpg -------------------------------------------------------------------------------- /static/errorImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/errorImage.jpg -------------------------------------------------------------------------------- /static/exc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/exc.png -------------------------------------------------------------------------------- /static/exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/exchange.png -------------------------------------------------------------------------------- /static/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/filter.png -------------------------------------------------------------------------------- /static/font/fexfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/font/fexfont.ttf -------------------------------------------------------------------------------- /static/font/font_1078604_w4kpxh0rafi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/font/font_1078604_w4kpxh0rafi.ttf -------------------------------------------------------------------------------- /static/font/otc-detail.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/font/otc-detail.ttf -------------------------------------------------------------------------------- /static/guarantee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/guarantee.png -------------------------------------------------------------------------------- /static/help_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/help_bg.jpg -------------------------------------------------------------------------------- /static/icon-addr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-addr.png -------------------------------------------------------------------------------- /static/icon-deposit-draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-deposit-draw.png -------------------------------------------------------------------------------- /static/icon-deposit-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-deposit-history.png -------------------------------------------------------------------------------- /static/icon-deposit-ing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-deposit-ing.png -------------------------------------------------------------------------------- /static/icon-fiat-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-fiat-r.png -------------------------------------------------------------------------------- /static/icon-fiat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-fiat.png -------------------------------------------------------------------------------- /static/icon-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-filter.png -------------------------------------------------------------------------------- /static/icon-help-ex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-help-ex.png -------------------------------------------------------------------------------- /static/icon-help-fiat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-help-fiat.png -------------------------------------------------------------------------------- /static/icon-help-safe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-help-safe.png -------------------------------------------------------------------------------- /static/icon-help-wc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-help-wc.png -------------------------------------------------------------------------------- /static/icon-invit1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-invit1.jpg -------------------------------------------------------------------------------- /static/icon-invit2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-invit2.jpg -------------------------------------------------------------------------------- /static/icon-invit3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-invit3.jpg -------------------------------------------------------------------------------- /static/icon-invit4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-invit4.jpg -------------------------------------------------------------------------------- /static/icon-order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-order.png -------------------------------------------------------------------------------- /static/icon-pre1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-pre1.png -------------------------------------------------------------------------------- /static/icon-pre2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-pre2.png -------------------------------------------------------------------------------- /static/icon-pre3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-pre3.png -------------------------------------------------------------------------------- /static/icon-prediction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-prediction.png -------------------------------------------------------------------------------- /static/icon-qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-qrcode.png -------------------------------------------------------------------------------- /static/icon-rank1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-rank1.jpg -------------------------------------------------------------------------------- /static/icon-rank2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-rank2.jpg -------------------------------------------------------------------------------- /static/icon-rank3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-rank3.jpg -------------------------------------------------------------------------------- /static/icon-shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-shop.png -------------------------------------------------------------------------------- /static/icon-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/icon-upload.png -------------------------------------------------------------------------------- /static/images/auth/auth-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/auth/auth-bg.jpg -------------------------------------------------------------------------------- /static/images/auth/auth-fan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/auth/auth-fan.jpg -------------------------------------------------------------------------------- /static/images/auth/auth-zhen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/auth/auth-zhen.jpg -------------------------------------------------------------------------------- /static/images/auth/icon-zheng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/auth/icon-zheng.png -------------------------------------------------------------------------------- /static/images/earn/icon-earn-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/earn/icon-earn-banner.png -------------------------------------------------------------------------------- /static/images/home/home-ex-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/home-ex-icon.png -------------------------------------------------------------------------------- /static/images/home/home-stacking-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/home-stacking-icon.png -------------------------------------------------------------------------------- /static/images/home/icon-menu-exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-menu-exchange.png -------------------------------------------------------------------------------- /static/images/home/icon-menu-finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-menu-finance.png -------------------------------------------------------------------------------- /static/images/home/icon-menu-news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-menu-news.png -------------------------------------------------------------------------------- /static/images/home/icon-menu-prediction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-menu-prediction.png -------------------------------------------------------------------------------- /static/images/home/icon-menu-simpleearn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-menu-simpleearn.png -------------------------------------------------------------------------------- /static/images/home/icon-otc-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/home/icon-otc-r.png -------------------------------------------------------------------------------- /static/images/invit/icon-invit-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/invit/icon-invit-line.png -------------------------------------------------------------------------------- /static/images/invit/icon-invit-step1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/invit/icon-invit-step1.png -------------------------------------------------------------------------------- /static/images/invit/icon-invit-step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/invit/icon-invit-step2.png -------------------------------------------------------------------------------- /static/images/invit/icon-invit-step3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/invit/icon-invit-step3.png -------------------------------------------------------------------------------- /static/images/invit/invit-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/invit/invit-bg.jpg -------------------------------------------------------------------------------- /static/images/my/icon-addr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-addr.png -------------------------------------------------------------------------------- /static/images/my/icon-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-auth.png -------------------------------------------------------------------------------- /static/images/my/icon-help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-help.png -------------------------------------------------------------------------------- /static/images/my/icon-langule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-langule.png -------------------------------------------------------------------------------- /static/images/my/icon-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-list.png -------------------------------------------------------------------------------- /static/images/my/icon-lottery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-lottery.png -------------------------------------------------------------------------------- /static/images/my/icon-merchat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-merchat.png -------------------------------------------------------------------------------- /static/images/my/icon-notice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-notice.png -------------------------------------------------------------------------------- /static/images/my/icon-payin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-payin.png -------------------------------------------------------------------------------- /static/images/my/icon-recomment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-recomment.png -------------------------------------------------------------------------------- /static/images/my/icon-safe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-safe.png -------------------------------------------------------------------------------- /static/images/my/icon-setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-setting.png -------------------------------------------------------------------------------- /static/images/my/icon-sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/my/icon-sign.png -------------------------------------------------------------------------------- /static/images/otc/advcash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/advcash.png -------------------------------------------------------------------------------- /static/images/otc/alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/alipay.png -------------------------------------------------------------------------------- /static/images/otc/bank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/bank.png -------------------------------------------------------------------------------- /static/images/otc/icon-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/icon-plus.png -------------------------------------------------------------------------------- /static/images/otc/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/paypal.png -------------------------------------------------------------------------------- /static/images/otc/paysera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/paysera.png -------------------------------------------------------------------------------- /static/images/otc/wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/otc/wechat.png -------------------------------------------------------------------------------- /static/images/public/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/bg.png -------------------------------------------------------------------------------- /static/images/public/icon-invit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/icon-invit.png -------------------------------------------------------------------------------- /static/images/public/icon-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/icon-mobile.png -------------------------------------------------------------------------------- /static/images/public/icon-pwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/icon-pwd.png -------------------------------------------------------------------------------- /static/images/public/icon-valid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/icon-valid.png -------------------------------------------------------------------------------- /static/images/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/public/logo.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-coin-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-coin-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-coin.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-mining-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-mining-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-mining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-mining.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-my-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-my-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-my.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-news-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-news-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-news.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-trade-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-trade-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-trade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-trade.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-wallet-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-wallet-active.png -------------------------------------------------------------------------------- /static/images/tabbar/tab-wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/tabbar/tab-wallet.png -------------------------------------------------------------------------------- /static/images/wallet/wallet-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/images/wallet/wallet-bg.png -------------------------------------------------------------------------------- /static/invit-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/invit-bg.jpg -------------------------------------------------------------------------------- /static/js/umychart.console.wechat.js: -------------------------------------------------------------------------------- 1 | //日志输出类 2 | var JSConsole= 3 | { 4 | Chart:{ Log:console.log, Warn:console.warn }, //图形日志 5 | Complier:{ Log:console.log, Warn:console.warn }, //编译器日志 6 | }; 7 | 8 | module.exports = 9 | { 10 | JSConsole: 11 | { 12 | Chart: JSConsole.Chart, 13 | Complier:JSConsole.Complier 14 | } 15 | }; -------------------------------------------------------------------------------- /static/js/umychart.uniapp.canvas.helper.js: -------------------------------------------------------------------------------- 1 | /* 2 | copyright (c) 2018 jones 3 | 4 | http://www.apache.org/licenses/LICENSE-2.0 5 | 6 | 开源项目 https://github.com/jones2000/HQChart 7 | 8 | jones_2000@163.com 9 | 10 | uniapp canvas 兼容方法 11 | */ 12 | 13 | function JSUniAppCanvasHelper() { } 14 | 15 | JSUniAppCanvasHelper.MeasureText=function(text, canvas) 16 | { 17 | var font = canvas.font; 18 | var fontSize = 12; 19 | var pos=font.search('px'); 20 | if (pos>0) 21 | { 22 | var strSize = font.substring(0,pos); 23 | fontSize = parseInt(strSize); 24 | } 25 | text = String(text); 26 | var text = text.split(''); 27 | var width = 0; 28 | for (let i = 0; i < text.length; i++) 29 | { 30 | let item = text[i]; 31 | if (/[a-zA-Z]/.test(item)) 32 | { 33 | width += 7; 34 | } else if (/[0-9]/.test(item)) 35 | { 36 | width += 5.5; 37 | } else if (/\./.test(item)) 38 | { 39 | width += 2.7; 40 | } else if (/-/.test(item)) 41 | { 42 | width += 3.25; 43 | } else if (/[\u4e00-\u9fa5]/.test(item)) 44 | { 45 | width += 10; 46 | } else if (/\(|\)/.test(item)) 47 | { 48 | width += 3.73; 49 | } else if (/\s/.test(item)) 50 | { 51 | width += 2.5; 52 | } else if (/%/.test(item)) 53 | { 54 | width += 8; 55 | } else 56 | { 57 | width += 10; 58 | } 59 | } 60 | return width * fontSize / 10; 61 | } 62 | 63 | //导出统一使用JSCommon命名空间名 64 | module.exports = 65 | { 66 | JSCommonUniApp: 67 | { 68 | JSUniAppCanvasHelper: JSUniAppCanvasHelper, 69 | } 70 | }; 71 | 72 | -------------------------------------------------------------------------------- /static/lottery_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/lottery_icon.png -------------------------------------------------------------------------------- /static/miner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/miner.png -------------------------------------------------------------------------------- /static/missing-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/missing-face.png -------------------------------------------------------------------------------- /static/otc-trading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/otc-trading.png -------------------------------------------------------------------------------- /static/pay-alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/pay-alipay.png -------------------------------------------------------------------------------- /static/pay-paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/pay-paypal.png -------------------------------------------------------------------------------- /static/pay-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/pay-wechat.png -------------------------------------------------------------------------------- /static/personal-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/personal-bg.jpg -------------------------------------------------------------------------------- /static/point-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/point-active.png -------------------------------------------------------------------------------- /static/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/point.png -------------------------------------------------------------------------------- /static/qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/qrcode.png -------------------------------------------------------------------------------- /static/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/select.png -------------------------------------------------------------------------------- /static/selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/selected.png -------------------------------------------------------------------------------- /static/slider-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/slider-active.png -------------------------------------------------------------------------------- /static/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/slider.png -------------------------------------------------------------------------------- /static/svg/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/svg/.DS_Store -------------------------------------------------------------------------------- /static/svg/icon-pre1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/tabbar/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/.DS_Store -------------------------------------------------------------------------------- /static/tabbar/tab-coin-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-coin-active.png -------------------------------------------------------------------------------- /static/tabbar/tab-coin-active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/tabbar/tab-coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-coin.png -------------------------------------------------------------------------------- /static/tabbar/tab-coin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/tabbar/tab-mining-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-mining-active.png -------------------------------------------------------------------------------- /static/tabbar/tab-mining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-mining.png -------------------------------------------------------------------------------- /static/tabbar/tab-my-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-my-active.png -------------------------------------------------------------------------------- /static/tabbar/tab-my-active.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/tabbar/tab-my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-my.png -------------------------------------------------------------------------------- /static/tabbar/tab-my.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /static/tabbar/tab-news-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-news-active.png -------------------------------------------------------------------------------- /static/tabbar/tab-news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-news.png -------------------------------------------------------------------------------- /static/tabbar/tab-wallet-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-wallet-active.png -------------------------------------------------------------------------------- /static/tabbar/tab-wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tabbar/tab-wallet.png -------------------------------------------------------------------------------- /static/telephone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/telephone.png -------------------------------------------------------------------------------- /static/temp/share_moment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/temp/share_moment.png -------------------------------------------------------------------------------- /static/temp/share_qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/temp/share_qq.png -------------------------------------------------------------------------------- /static/temp/share_qqzone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/temp/share_qqzone.png -------------------------------------------------------------------------------- /static/temp/share_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/temp/share_wechat.png -------------------------------------------------------------------------------- /static/tri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/tri.png -------------------------------------------------------------------------------- /static/yticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/static/yticon.ttf -------------------------------------------------------------------------------- /store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | 5 | import user from './modules/user' 6 | import otc from './modules/otc' 7 | import common from './modules/common' 8 | import exchange from './modules/exchange' 9 | import account from './modules/account' 10 | import cms from './modules/cms' 11 | import websocket from './modules/websocket' 12 | import finance from './modules/finance' 13 | import lottery from './modules/lottery' 14 | import prediction from './modules/prediction' 15 | import mining from './modules/mining' 16 | import option from './modules/option' 17 | import tio from './modules/tio' 18 | 19 | const context = require.context('./modules', false, /\.js$/); 20 | const moduleStores = {}; 21 | 22 | context.keys().forEach(key => { 23 | // 获取读取到的文件名字并且截取 24 | const fileName = key.slice(2, -3); 25 | if(fileName == 'websocket' || fileName == 'tio'){ 26 | return; 27 | } 28 | //通过 context(key)导出文件内容 29 | const fileModule = context(key).default; 30 | moduleStores[fileName] = { 31 | namespaced: true, 32 | ...fileModule, 33 | }; 34 | }); 35 | 36 | Vue.use(Vuex) 37 | 38 | const store = new Vuex.Store({ 39 | modules: { 40 | websocket: websocket, 41 | tio: tio, 42 | ...moduleStores 43 | } 44 | }) 45 | 46 | export default store 47 | -------------------------------------------------------------------------------- /store/modules/account.js: -------------------------------------------------------------------------------- 1 | import { 2 | accountList, 3 | getAccount 4 | } from '@/api/account' 5 | import {} from './../mutations_type' 6 | 7 | 8 | const account = { 9 | state: { 10 | 11 | }, 12 | 13 | mutations: { 14 | 15 | }, 16 | 17 | actions: { 18 | accountList({ 19 | commit 20 | }) { 21 | return new Promise((resolve, reject) => { 22 | accountList().then(res => { 23 | resolve(res) 24 | }).catch(error => { 25 | reject(error) 26 | }) 27 | }) 28 | }, 29 | getAccount({ 30 | commit 31 | }, coin) { 32 | return new Promise((resolve, reject) => { 33 | getAccount(coin).then(res => { 34 | resolve(res) 35 | }).catch(error => { 36 | reject(error) 37 | }) 38 | }) 39 | } 40 | } 41 | } 42 | 43 | export default account 44 | -------------------------------------------------------------------------------- /store/modules/cms.js: -------------------------------------------------------------------------------- 1 | import { 2 | newsList 3 | } from '@/api/cms' 4 | 5 | 6 | const cms = { 7 | state: { 8 | }, 9 | 10 | mutations: { 11 | 12 | }, 13 | 14 | actions: { 15 | newsList({ 16 | commit 17 | }, data) { 18 | return new Promise((resolve, reject) => { 19 | newsList(data).then(res => { 20 | resolve(res) 21 | }).catch(error => { 22 | reject(error) 23 | }) 24 | }) 25 | } 26 | } 27 | } 28 | 29 | export default cms 30 | -------------------------------------------------------------------------------- /store/modules/exchange.js: -------------------------------------------------------------------------------- 1 | import { 2 | exchangeList, 3 | addExchange, 4 | exchangeRecordList 5 | } from '@/api/exchange' 6 | import {} from './../mutations_type' 7 | 8 | 9 | const exchange = { 10 | state: { 11 | 12 | }, 13 | 14 | mutations: { 15 | 16 | }, 17 | 18 | actions: { 19 | exchangeList({ 20 | commit 21 | }, data) { 22 | return new Promise((resolve, reject) => { 23 | exchangeList(data).then(res => { 24 | resolve(res) 25 | }).catch(error => { 26 | reject(error) 27 | }) 28 | }) 29 | }, 30 | exchangeRecordList({ 31 | commit 32 | }, data) { 33 | return new Promise((resolve, reject) => { 34 | exchangeRecordList(data).then(res => { 35 | resolve(res) 36 | }).catch(error => { 37 | reject(error) 38 | }) 39 | }) 40 | }, 41 | addExchange({ 42 | commit 43 | }, data) { 44 | return new Promise((resolve, reject) => { 45 | addExchange(data).then(res => { 46 | resolve(res) 47 | }).catch(error => { 48 | reject(error) 49 | }) 50 | }) 51 | } 52 | } 53 | } 54 | 55 | export default exchange 56 | -------------------------------------------------------------------------------- /store/modules/lottery.js: -------------------------------------------------------------------------------- 1 | import { 2 | lotteryConfig, 3 | lotteryDraw, 4 | lotteryCount, 5 | lotteryBuyCount 6 | } from '@/api/lottery' 7 | import {} from './../mutations_type' 8 | 9 | 10 | const lottery = { 11 | state: { 12 | 13 | }, 14 | 15 | mutations: { 16 | 17 | }, 18 | 19 | actions: { 20 | lotteryConfig({ 21 | commit 22 | }) { 23 | return new Promise((resolve, reject) => { 24 | lotteryConfig().then(res => { 25 | resolve(res) 26 | }).catch(error => { 27 | reject(error) 28 | }) 29 | }) 30 | }, 31 | lotteryDraw({ 32 | commit 33 | }) { 34 | return new Promise((resolve, reject) => { 35 | lotteryDraw().then(res => { 36 | resolve(res) 37 | }).catch(error => { 38 | reject(error) 39 | }) 40 | }) 41 | }, 42 | lotteryCount({ 43 | commit 44 | }) { 45 | return new Promise((resolve, reject) => { 46 | lotteryCount().then(res => { 47 | resolve(res) 48 | }).catch(error => { 49 | reject(error) 50 | }) 51 | }) 52 | }, 53 | lotteryBuyCount({ 54 | commit 55 | }) { 56 | return new Promise((resolve, reject) => { 57 | lotteryBuyCount().then(res => { 58 | resolve(res) 59 | }).catch(error => { 60 | reject(error) 61 | }) 62 | }) 63 | } 64 | } 65 | } 66 | 67 | export default lottery 68 | -------------------------------------------------------------------------------- /store/modules/mining.js: -------------------------------------------------------------------------------- 1 | import { 2 | machineList, 3 | machineDetail, 4 | machineBuy, 5 | machineMy, 6 | machineFlows, 7 | machineProfit 8 | } from '@/api/mining' 9 | import {} from './../mutations_type' 10 | 11 | 12 | const exchange = { 13 | state: { 14 | 15 | }, 16 | 17 | mutations: { 18 | 19 | }, 20 | 21 | actions: { 22 | machineList({ 23 | commit 24 | }, data) { 25 | return new Promise((resolve, reject) => { 26 | machineList(data).then(res => { 27 | resolve(res) 28 | }).catch(error => { 29 | reject(error) 30 | }) 31 | }) 32 | }, 33 | machineDetail({ 34 | commit 35 | }, data) { 36 | return new Promise((resolve, reject) => { 37 | machineDetail(data).then(res => { 38 | resolve(res) 39 | }).catch(error => { 40 | reject(error) 41 | }) 42 | }) 43 | }, 44 | machineBuy({ 45 | commit 46 | }, data) { 47 | return new Promise((resolve, reject) => { 48 | machineBuy(data).then(res => { 49 | resolve(res) 50 | }).catch(error => { 51 | reject(error) 52 | }) 53 | }) 54 | }, 55 | machineMy({ 56 | commit 57 | }, data) { 58 | return new Promise((resolve, reject) => { 59 | machineMy(data).then(res => { 60 | resolve(res) 61 | }).catch(error => { 62 | reject(error) 63 | }) 64 | }) 65 | }, 66 | machineFlows({ 67 | commit 68 | }, data) { 69 | return new Promise((resolve, reject) => { 70 | machineFlows(data).then(res => { 71 | resolve(res) 72 | }).catch(error => { 73 | reject(error) 74 | }) 75 | }) 76 | }, 77 | machineProfit({ 78 | commit 79 | }, data) { 80 | return new Promise((resolve, reject) => { 81 | machineProfit(data).then(res => { 82 | resolve(res) 83 | }).catch(error => { 84 | reject(error) 85 | }) 86 | }) 87 | } 88 | } 89 | } 90 | 91 | export default exchange 92 | -------------------------------------------------------------------------------- /store/modules/option.js: -------------------------------------------------------------------------------- 1 | import { 2 | optionTopMarketList, 3 | optionMarketList, 4 | createOptionOrder, 5 | optionOrderDetail, 6 | optionOrderList 7 | } from '@/api/option' 8 | import {} from './../mutations_type' 9 | 10 | 11 | const exchange = { 12 | state: { 13 | 14 | }, 15 | 16 | mutations: { 17 | 18 | }, 19 | 20 | actions: { 21 | optionTopMarketList({ 22 | commit 23 | }, data) { 24 | return new Promise((resolve, reject) => { 25 | optionTopMarketList(data).then(res => { 26 | resolve(res) 27 | }).catch(error => { 28 | reject(error) 29 | }) 30 | }) 31 | }, 32 | optionMarketList({ 33 | commit 34 | }, data) { 35 | return new Promise((resolve, reject) => { 36 | optionMarketList(data).then(res => { 37 | resolve(res) 38 | }).catch(error => { 39 | reject(error) 40 | }) 41 | }) 42 | }, 43 | createOptionOrder({ 44 | commit 45 | }, data) { 46 | return new Promise((resolve, reject) => { 47 | createOptionOrder(data).then(res => { 48 | resolve(res) 49 | }).catch(error => { 50 | reject(error) 51 | }) 52 | }) 53 | }, 54 | optionOrderDetail({ 55 | commit 56 | }, data) { 57 | return new Promise((resolve, reject) => { 58 | optionOrderDetail(data).then(res => { 59 | resolve(res) 60 | }).catch(error => { 61 | reject(error) 62 | }) 63 | }) 64 | }, 65 | optionOrderList({ 66 | commit 67 | }, data) { 68 | return new Promise((resolve, reject) => { 69 | optionOrderList(data).then(res => { 70 | resolve(res) 71 | }).catch(error => { 72 | reject(error) 73 | }) 74 | }) 75 | } 76 | } 77 | } 78 | 79 | export default exchange 80 | -------------------------------------------------------------------------------- /store/modules/prediction.js: -------------------------------------------------------------------------------- 1 | import { 2 | predictionDetail, 3 | predictionRounds, 4 | predictionBet, 5 | predictionHistory 6 | } from '@/api/prediction' 7 | import {} from './../mutations_type' 8 | 9 | 10 | const exchange = { 11 | state: { 12 | 13 | }, 14 | 15 | mutations: { 16 | 17 | }, 18 | 19 | actions: { 20 | predictionDetail({ 21 | commit 22 | }, data) { 23 | return new Promise((resolve, reject) => { 24 | predictionDetail(data).then(res => { 25 | resolve(res) 26 | }).catch(error => { 27 | reject(error) 28 | }) 29 | }) 30 | }, 31 | predictionRounds({ 32 | commit 33 | }, data) { 34 | return new Promise((resolve, reject) => { 35 | predictionRounds(data).then(res => { 36 | resolve(res) 37 | }).catch(error => { 38 | reject(error) 39 | }) 40 | }) 41 | }, 42 | predictionBet({ 43 | commit 44 | }, data) { 45 | return new Promise((resolve, reject) => { 46 | predictionBet(data).then(res => { 47 | resolve(res) 48 | }).catch(error => { 49 | reject(error) 50 | }) 51 | }) 52 | }, 53 | predictionHistory({ 54 | commit 55 | }, data) { 56 | return new Promise((resolve, reject) => { 57 | predictionHistory(data).then(res => { 58 | resolve(res) 59 | }).catch(error => { 60 | reject(error) 61 | }) 62 | }) 63 | } 64 | } 65 | } 66 | 67 | export default exchange 68 | -------------------------------------------------------------------------------- /store/modules/simpleearn.js: -------------------------------------------------------------------------------- 1 | import { 2 | productList, 3 | productDetail, 4 | productBuy, 5 | orderList, 6 | orderRedeem 7 | } from '@/api/simpleearn' 8 | 9 | 10 | const cms = { 11 | state: { 12 | }, 13 | 14 | mutations: { 15 | 16 | }, 17 | 18 | actions: { 19 | productList({ 20 | commit 21 | }, data) { 22 | return new Promise((resolve, reject) => { 23 | productList(data).then(res => { 24 | resolve(res) 25 | }).catch(error => { 26 | reject(error) 27 | }) 28 | }) 29 | }, 30 | productDetail({ 31 | commit 32 | }, data) { 33 | return new Promise((resolve, reject) => { 34 | productDetail(data).then(res => { 35 | resolve(res) 36 | }).catch(error => { 37 | reject(error) 38 | }) 39 | }) 40 | }, 41 | productBuy({ 42 | commit 43 | }, data) { 44 | return new Promise((resolve, reject) => { 45 | productBuy(data).then(res => { 46 | resolve(res) 47 | }).catch(error => { 48 | reject(error) 49 | }) 50 | }) 51 | }, 52 | orderList({ 53 | commit 54 | }, data) { 55 | return new Promise((resolve, reject) => { 56 | orderList(data).then(res => { 57 | resolve(res) 58 | }).catch(error => { 59 | reject(error) 60 | }) 61 | }) 62 | }, 63 | orderRedeem({ 64 | commit 65 | }, data) { 66 | return new Promise((resolve, reject) => { 67 | orderRedeem(data).then(res => { 68 | resolve(res) 69 | }).catch(error => { 70 | reject(error) 71 | }) 72 | }) 73 | } 74 | } 75 | } 76 | 77 | export default cms 78 | -------------------------------------------------------------------------------- /store/mutations_type.js: -------------------------------------------------------------------------------- 1 | export const USER_LOGIN = 'USER_LOGIN' 2 | export const INIT_LOGIN = 'INIT_LOGIN' 3 | export const USER_LOGOUT = 'USER_LOGOUT' 4 | export const USER_REGISTER = 'USER_REGISTER' 5 | export const USER_INFO = 'USER_INFO' 6 | export const USER_UPDATE_PAY_PWD = 'USER_UPDATE_PAY_PWD' 7 | export const USER_ENABLE_GOOGLE = 'USER_ENABLE_GOOGLE' 8 | export const USER_DISABLE_GOOGLE = 'USER_DISABLE_GOOGLE' 9 | 10 | 11 | export const COMMON_COIN_LIST = 'COMMON_COIN_LIST' 12 | export const COMMON_CONFIG_LIST = 'COMMON_CONFIG_LIST' 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /uni.scss: -------------------------------------------------------------------------------- 1 | @import 'uview-ui/theme.scss'; 2 | /* 页面左右间距 */ 3 | $page-row-spacing: 30upx; 4 | $page-color-base: #f8f8f8; 5 | $page-color-light: #f8f6fc; 6 | $base-color: #fa436a; 7 | 8 | /* 文字尺寸 */ 9 | $font-base: 28upx; 10 | $font-xsm: 22upx; 11 | $font-sm: 24upx; 12 | $font-md: 30upx; 13 | $font-lg: 34upx; 14 | $font-xl: 40upx; 15 | $font-xxl: 50upx; 16 | /*文字颜色*/ 17 | $font-color-dark: #14191F; 18 | $font-color-base: #606266; 19 | $font-color-light: #8B9FAA; 20 | $font-color-disabled: #C0C4CC; 21 | $font-color-spec: #4399fc; 22 | $font-color-blue: #0952C3; 23 | $font-color-red: red; 24 | /* 边框颜色 */ 25 | $border-color-dark: #DCDFE6; 26 | $border-color-base: #E4E7ED; 27 | $border-color-light: #EBEEF5; 28 | /* 图片加载中颜色 */ 29 | $image-bg-color: #eee; 30 | /* 行为相关颜色 */ 31 | $uni-color-primary:#fa436a; 32 | $uni-color-success: #4cd964; 33 | $uni-color-warning: #f0ad4e; 34 | $uni-color-error: #dd524d; 35 | $uni-color-upper: #00b45a; 36 | $uni-color-lower: #ff6059; 37 | $uni-color-gap: #EEF2F5; 38 | $uni-color-subbg: #F7F6FB; 39 | $uni-color-blue: #0952C3; 40 | $uni-color-tip: #E8F2FC; 41 | $uni-color-royal: #E8F2FC; 42 | 43 | -------------------------------------------------------------------------------- /uni_modules/hqchart2/js_sdk/umychart.console.wechat.js: -------------------------------------------------------------------------------- 1 | //日志输出类 2 | var JSConsole= 3 | { 4 | Chart:{ Log:console.log, Warn:console.warn }, //图形日志 5 | Complier:{ Log:console.log, Warn:console.warn }, //编译器日志 6 | }; 7 | 8 | module.exports = 9 | { 10 | JSConsole: 11 | { 12 | Chart: JSConsole.Chart, 13 | Complier:JSConsole.Complier 14 | } 15 | }; -------------------------------------------------------------------------------- /uni_modules/hqchart2/js_sdk/umychart.uniapp.canvas.helper.js: -------------------------------------------------------------------------------- 1 | /* 2 | copyright (c) 2018 jones 3 | 4 | http://www.apache.org/licenses/LICENSE-2.0 5 | 6 | 开源项目 https://github.com/jones2000/HQChart 7 | 8 | jones_2000@163.com 9 | 10 | uniapp canvas 兼容方法 11 | */ 12 | 13 | function JSUniAppCanvasHelper() { } 14 | 15 | JSUniAppCanvasHelper.MeasureText=function(text, canvas) 16 | { 17 | var font = canvas.font; 18 | var fontSize = 12; 19 | var pos=font.search('px'); 20 | if (pos>0) 21 | { 22 | var strSize = font.substring(0,pos); 23 | fontSize = parseInt(strSize); 24 | } 25 | text = String(text); 26 | var text = text.split(''); 27 | var width = 0; 28 | for (let i = 0; i < text.length; i++) 29 | { 30 | let item = text[i]; 31 | if (/[a-zA-Z]/.test(item)) 32 | { 33 | width += 7; 34 | } 35 | else if (/[0-9]/.test(item)) 36 | { 37 | width += 5.5; 38 | } 39 | else if (/\./.test(item)) 40 | { 41 | width += 2.7; 42 | } 43 | else if (/-/.test(item)) 44 | { 45 | width += 3.25; 46 | } 47 | else if (/[\u4e00-\u9fa5]/.test(item)) 48 | { 49 | width += 10; 50 | } 51 | else if (/\(|\)/.test(item)) 52 | { 53 | width += 3.73; 54 | } 55 | else if (/\s/.test(item)) 56 | { 57 | width += 2.5; 58 | } 59 | else if (/%/.test(item)) 60 | { 61 | width += 8; 62 | } 63 | else if (/:/.test(item)) 64 | { 65 | width += 3.25; 66 | } 67 | else 68 | { 69 | width += 10; 70 | } 71 | } 72 | return width * fontSize / 10; 73 | } 74 | 75 | //导出统一使用JSCommon命名空间名 76 | module.exports = 77 | { 78 | JSCommonUniApp: 79 | { 80 | JSUniAppCanvasHelper: JSUniAppCanvasHelper, 81 | } 82 | }; 83 | 84 | -------------------------------------------------------------------------------- /uni_modules/hqchart2/js_sdk/用户协议.txt: -------------------------------------------------------------------------------- 1 | HQChart用户协议 2 | 3 | 用户应当充分阅读本协议,用户使用HQChart插件亦视为接受本协议。 4 | 一、定义 5 | HQChart:由本人开发的专业的K线图展示及数据计算引擎插件。 6 | 用户: 以任何形式使用HQChart插件的自然人、法人或其他组织。 7 | 二、用户保证 8 | 1. 用户同意并保证,合法并如约使用HQChart插件。用户对其行为产生的任何法律责任自行独立承担,与HQChart插件作者无关。 9 | 三、用户的权利与义务 10 | 1. 用户有权通过修改HQChart源码进行2次开发,无需经得HQChart插件作者授权. 11 | 2. 用户在使用HQChart插件期间,承诺并保证: 12 | (1) 遵守所有中华人民共和国法律法规和国际上有关互联网和短信的协议、规定、程序和惯例. 13 | (2) 不利用HQChart插件进行金融诈骗. 14 | (3) 不行使其他可能给HQChart插件带来任何不利影响的行为或者法律及政策禁止的行为。 15 | 3. 用户不得利用HQChart插件发送以下内容的短信: 16 | (1)接受方事先没有提出要求或者同意接受的广告等宣传性或营销性内容; 17 | (2)含有病毒、恶意代码、色情、反动等不良信息或有害信息 18 | (3)地产、医疗、教育、留学、移民等相关内容 19 | (4)冒充任何人或机构,或以虚伪不实的方式谎称或使人误认为与任何人或任何机构有关。 20 | (5)侵犯他人著作权或其他知识产权,或违反保密、雇佣或不披露协议披露他人商业秘密或保密信息。 21 | 4. 用户应当按照本协议,妥善使用HQChart插件并为其行为负责。因用户行为导致HQChart插件作者遭受诉讼、索赔及/或处罚的,用户应赔偿HQChart插件作者因此造成的全部损失。 22 | 四、HQChart作者的权利与义务 23 | 1. HQChart作者对用户行为无审核监督义务。因用户行为给HQChart作者造成的一切损失,HQChart作者有权向用户追偿。 24 | 2. HQChart插件对其提供给用户的质量做出如下承诺 25 | 1). 源码全部开源 26 | 2). 在作者技术能力范围以内,提供免费或有偿的技术支持服务 27 | 3.HQChart作者有权对HQChart插件进行定期或不定期的升级或完善,用户可以选择升级新版本或不升级使用原有版本。如用户因此受到影响,HQChart作者无需为此承担任何责任。 28 | 4. HQChart插件作者有权根据自己的判断对用户是否违反本协议约定。用户若有违反的,HQChart插件作者有权随时中止或终止本协议。HQChart作者无需就此征得用户同意或提前通知用户 29 | 5. 鉴于互联网服务的特殊性,对因不可抗力、第三方服务、黑客攻击、政策影响及其他任何非. HQChart插件作者原因引起的技术支持中断等,HQChart插件作者均无需承担任何责任。 30 | 31 | 五、 免责声明 32 | 1. 用户明确同意其使用HQChart插件所存在的风险及其后果将完全由其自己承担,HQChart插件作者对用户不承担任何责任。如因用户违反有关法律、法规或本协议项下的任何条款而给HQChart插件作者或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。 33 | 34 | 六、其他 35 | 1. 本协议的版权归HQChart插件作者,HQChart插件作者保留对本协议的一切解释和修改权利。 36 | 2. 本协议的订立、执行和争议的解决均应适用中华人民共和国法律。如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向HQChart插件作者所在地有管辖权的人民法院提起诉讼。 37 | 3. HQChart插件作者行使本协议的任何权利或规定,不构成对前述权利之放弃。 38 | 4. 如本协议中的任何条款完全或部分无效,本协议的其余条款仍有效并且有约束力 39 | 40 | 41 | -------------------------------------------------------------------------------- /uni_modules/hqchart2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "jones-hqchart2", 3 | "displayName": "jones-hqchart2", 4 | "version": "1.1.10637", 5 | "description": "HQChart - H5, 微信小程序 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据替换接口", 6 | "keywords": [ 7 | "jones-hqchart2" 8 | ], 9 | "repository": "https://github.com/jones2000/HQChart", 10 | "engines": { 11 | "HBuilderX": "^3.1.0" 12 | }, 13 | "dcloudext": { 14 | "category": [ 15 | "JS SDK", 16 | "通用 SDK" 17 | ], 18 | "sale": { 19 | "regular": { 20 | "price": "0.00" 21 | }, 22 | "sourcecode": { 23 | "price": "0.00" 24 | } 25 | }, 26 | "contact": { 27 | "qq": "" 28 | }, 29 | "declaration": { 30 | "ads": "无", 31 | "data": "无", 32 | "permissions": "无" 33 | }, 34 | "npmurl": "https://www.npmjs.com/package/hqchart" 35 | }, 36 | "uni_modules": { 37 | "dependencies": [], 38 | "encrypt": [], 39 | "platforms": { 40 | "cloud": { 41 | "tcb": "y", 42 | "aliyun": "y" 43 | }, 44 | "client": { 45 | "App": { 46 | "app-vue": "y", 47 | "app-nvue": "n" 48 | }, 49 | "H5-mobile": { 50 | "Safari": "y", 51 | "Android Browser": "y", 52 | "微信浏览器(Android)": "y", 53 | "QQ浏览器(Android)": "y" 54 | }, 55 | "H5-pc": { 56 | "Chrome": "y", 57 | "IE": "y", 58 | "Edge": "y", 59 | "Firefox": "y", 60 | "Safari": "y" 61 | }, 62 | "小程序": { 63 | "微信": "y", 64 | "阿里": "u", 65 | "百度": "u", 66 | "字节跳动": "u", 67 | "QQ": "u" 68 | }, 69 | "快应用": { 70 | "华为": "u", 71 | "联盟": "u" 72 | }, 73 | "Vue": { 74 | "vue2": "y", 75 | "vue3": "y" 76 | } 77 | } 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /uni_modules/z-paging/changelog.md: -------------------------------------------------------------------------------- 1 | ## 2.0.5(2021-08-29) 2 | 1.修复使用页面滚动时,若延时渲染数据,页面无法滚动的问题。 3 | 2.新增滑动切换选项卡+吸顶的nvue演示demo,并进行相关兼容处理。 4 | 3.新增全局配置方案,支持在文件 `z-paging/config/index.js`中进行配置。 5 | 4.新增`refresh`方法,刷新列表数据,pageNo和pageSize不会重置,列表数据会重新从服务端获取。 6 | 5.精简`z-paging-refresj`和`z-paging-load-more`代码。 7 | ## 2.0.4(2021-08-28) 8 | 1.修复使用页面滚动时,若延时渲染数据,页面无法滚动的问题。 9 | 2.新增滑动切换选项卡+吸顶的nvue演示demo,并进行相关兼容处理。 10 | 3.新增全局配置方案,支持在文件 `z-paging/config/index.js`中进行配置。 11 | 4.新增`refresh`方法,刷新列表数据,pageNo和pageSize不会重置,列表数据会重新从服务端获取。 12 | ## 2.0.3(2021-08-24) 13 | 1.优化全屏Loading显示逻辑,默认在点击请求失败重新加载按钮时也会展示loading。 14 | 2.新增`empty-view-fixed`属性,用于控制空数据图是否使用fixed布局并铺满z-paging。 15 | 3.在nvue中fixed生效,由此版本起,在nvue中使用z-paging无需设置根节点铺满屏幕。 16 | 4.修复在nvue中使用页面滚动时,空数据图未居中的问题。在nvue中自定义全屏Loading和空数据图,可以使用`flex:1`来铺满屏幕。 17 | ## 2.0.2(2021-08-19) 18 | 1.修复在nvue中设置use-page-scroll后,滚动到底部加载更多view不显示的BUG。 19 | 2.新增`refresher-img-style`、`refresher-title-style`和`refresher-update-time-style`,支持自定义自定义下拉刷新左侧图标、下拉刷新右侧状态描述文字和下拉刷新右侧最后更新时间的样式。 20 | 3.新增end、endByTotalCount、endByNoMore和endByKey,与complete、completeByTotalCount、completeByNoMore和completeByKey完全等效,用于简化相关写法。 21 | ## 2.0.1(2021-08-16) 22 | 1.自定义下拉刷新view无需设置`refresher-threshold`,将根据view自动计算高度。 23 | 2.修复在iOS 13中下拉刷新抖动的问题。 24 | 3.新增`inside-more`,支持在分页未满一屏时自动加载下一页。 25 | 4.修复z-paging prop代码自动补全无效的问题,完善代码自动补全文档注释。 26 | 5.修复在微信小程序中提示:uni is not defined的bug。 27 | 6.修复在某些情况下,下拉刷新页面会跟着下拉的bug。 28 | 7.其他细节优化。 29 | ## 2.0.0(2021-08-16) 30 | 1.自定义下拉刷新view无需设置`refresher-threshold`,将根据view自动计算高度。 31 | 2.修复在iOS 13中下拉刷新抖动的问题。 32 | 3.新增`inside-more`,支持在分页未满一屏时自动加载下一页。 33 | 4.修复z-paging prop代码自动补全无效的问题,完善代码自动补全文档注释。 34 | 5.其他细节优化。 35 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/config/index.js: -------------------------------------------------------------------------------- 1 | // z-paging全局配置文件,注意避免更新时此文件被覆盖,若被覆盖,可在此文件中右键->点击本地历史记录,找回覆盖前的配置 -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/css/z-paging-static.css: -------------------------------------------------------------------------------- 1 | /* z-paging 2 | github地址:https://github.com/SmileZXLee/uni-z-paging 3 | dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 4 | 反馈QQ群:790460711 5 | 6 | 公用的静态css资源 */ 7 | 8 | .zp-line-loading-image { 9 | margin-right: 8rpx; 10 | width: 28rpx; 11 | height: 28rpx; 12 | /* #ifndef APP-NVUE */ 13 | animation: loading-flower 1s steps(12) infinite; 14 | /* #endif */ 15 | color: #666666; 16 | } 17 | 18 | .zp-loading-image-ios{ 19 | width: 20px; 20 | height: 20px; 21 | } 22 | 23 | .zp-loading-image-android{ 24 | width: 32rpx; 25 | height: 32rpx; 26 | } 27 | 28 | @keyframes loading-flower { 29 | 0% { 30 | -webkit-transform: rotate(0deg); 31 | transform: rotate(0deg); 32 | } 33 | 34 | to { 35 | -webkit-transform: rotate(1turn); 36 | transform: rotate(1turn); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-config.js: -------------------------------------------------------------------------------- 1 | // z-paging 2 | // github地址:https://github.com/SmileZXLee/uni-z-paging 3 | // dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 4 | // 反馈QQ群:790460711 5 | // z-paging处理main.js中的配置信息工具 6 | 7 | let config = null; 8 | let getedStorage = false; 9 | const storageKey = 'Z-PAGING-CONFIG-STORAGE-KEY' 10 | 11 | function setConfig(value) { 12 | try { 13 | uni.setStorageSync(storageKey, value); 14 | } catch {} 15 | } 16 | 17 | function getConfig() { 18 | try { 19 | if (getedStorage) { 20 | return config; 21 | } 22 | config = uni.getStorageSync(storageKey); 23 | getedStorage = true; 24 | } catch { 25 | return null; 26 | } 27 | } 28 | 29 | module.exports = { 30 | setConfig, 31 | getConfig 32 | }; 33 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-enum.js: -------------------------------------------------------------------------------- 1 | // z-paging 2 | // github地址:https://github.com/SmileZXLee/uni-z-paging 3 | // dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 4 | // 反馈QQ群:790460711 5 | // z-paging枚举 6 | 7 | const Enum = { 8 | //当前加载类型 0-下拉刷新 1-上拉加载更多 9 | LoadingType: { 10 | Refresher: 0, 11 | LoadingMore: 1 12 | }, 13 | //下拉刷新状态 0-默认状态 1.松手立即刷新 2.刷新中 14 | RefresherStatus: { 15 | Default: 0, 16 | PullToRefresh: 1, 17 | Loading: 2 18 | }, 19 | //底部加载更多状态 0-默认状态 1.加载中 2.没有更多数据 3.加载失败 20 | LoadingMoreStatus: { 21 | Default: 0, 22 | Loading: 1, 23 | NoMore: 2, 24 | Fail: 3 25 | } 26 | } 27 | 28 | module.exports = Enum; 29 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-mixin.js: -------------------------------------------------------------------------------- 1 | // z-paging 2 | // github地址:https://github.com/SmileZXLee/uni-z-paging 3 | // dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 4 | // 反馈QQ群:790460711 5 | // 使用页面滚动时引入此mixin,用于监听和处理onPullDownRefresh等页面生命周期方法 6 | 7 | const ZPagingMixin = { 8 | onPullDownRefresh() { 9 | if (this.isPagingRefNotFound()) { 10 | return; 11 | } 12 | this.$refs.paging.reload(); 13 | }, 14 | onPageScroll(e) { 15 | if (this.isPagingRefNotFound()) { 16 | return; 17 | } 18 | this.$refs.paging.updatePageScrollTop(e.scrollTop); 19 | if (e.scrollTop < 10) { 20 | this.$refs.paging.doChatRecordLoadMore(); 21 | } 22 | }, 23 | onReachBottom() { 24 | if (this.isPagingRefNotFound()) { 25 | return; 26 | } 27 | this.$refs.paging.doLoadMore(); 28 | }, 29 | methods: { 30 | isPagingRefNotFound() { 31 | return !this.$refs.paging || this.$refs.paging === undefined; 32 | } 33 | } 34 | } 35 | 36 | export default ZPagingMixin; 37 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js: -------------------------------------------------------------------------------- 1 | // z-paging 2 | // github地址:https://github.com/SmileZXLee/uni-z-paging 3 | // dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 4 | // 反馈QQ群:790460711 5 | // 使用renderjs在app-vue和h5中对touchmove事件冒泡进行处理 6 | 7 | import zUtils from '../js/z-paging-utils' 8 | var data = { 9 | renderScrollTop: 0, 10 | renderUsePageScroll: false, 11 | renderIsIos: uni.getSystemInfoSync().platform === 'ios', 12 | startY: 0, 13 | isTouchFromZPaging: false 14 | } 15 | 16 | export default { 17 | mounted() { 18 | this._handleTouch(); 19 | }, 20 | methods: { 21 | //接收逻辑层发送的数据 22 | renderPropScrollTopChange(newVal, oldVal, ownerVm, vm) { 23 | data.renderScrollTop = newVal; 24 | }, 25 | renderPropUsePageScrollChange(newVal, oldVal, ownerVm, vm) { 26 | if(newVal !== -1){ 27 | data.renderUsePageScroll = newVal; 28 | } 29 | }, 30 | //拦截处理touch事件 31 | _handleTouch() { 32 | if (window && !window.$zPagingRenderJsInited) { 33 | window.$zPagingRenderJsInited = true; 34 | window.addEventListener('touchstart', this._handleTouchstart, { 35 | passive: true 36 | }) 37 | window.addEventListener('touchmove', this._handleTouchmove, { 38 | passive: false 39 | }) 40 | } 41 | }, 42 | _handleTouchstart(e) { 43 | const touch = zUtils.getCommonTouch(e); 44 | data.startY = touch.touchY; 45 | data.isTouchFromZPaging = zUtils.getTouchFromZPaging(e.target); 46 | }, 47 | _handleTouchmove(e) { 48 | const touch = zUtils.getCommonTouch(e); 49 | var moveY = touch.touchY - data.startY; 50 | if ((data.isTouchFromZPaging && data.renderScrollTop < 1 && moveY > 0) || (data.isTouchFromZPaging && data.renderIsIos && !data.renderUsePageScroll && moveY < 0)) { 51 | if (e.cancelable && !e.defaultPrevented) { 52 | e.preventDefault(); 53 | } 54 | } 55 | }, 56 | 57 | } 58 | }; 59 | -------------------------------------------------------------------------------- /uni_modules/zhouWei-APPUpdate/changelog.md: -------------------------------------------------------------------------------- 1 | ## 3.0.0(2021-05-12) 2 | 1. 支持uni_modules 3 | -------------------------------------------------------------------------------- /uni_modules/zhouWei-APPUpdate/static/ic_ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liaoqifeng/fex-wallet-app/330e04d3557403364ce0c40d8e50a059a9ab0155/uni_modules/zhouWei-APPUpdate/static/ic_ar.png -------------------------------------------------------------------------------- /utils/config.js: -------------------------------------------------------------------------------- 1 | import G from './global.js' 2 | // http 请求配置项 3 | export default { 4 | // 填自己的开发者服务器接口地址 5 | //url: "http://47.107.100.112", 6 | url: G.REQUEST_URL, 7 | // 请求的参数 8 | data: {}, 9 | // 设置请求的 header,header 中不能设置 Referer。 10 | header: {}, 11 | // (需大写)有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT 12 | method: "POST", 13 | // json 如果设为json,会尝试对返回的数据做一次 JSON.parse 14 | dataType: "json", 15 | // text 设置响应的数据类型。合法值:text、arraybuffer 1.7.0 16 | responseType: "text", 17 | // 收到开发者服务成功返回的回调函数 18 | success() {}, 19 | // 接口调用失败的回调函数 20 | fail() {}, 21 | // 接口调用结束的回调函数(调用成功、失败都会执行) 22 | complete() {}, 23 | } -------------------------------------------------------------------------------- /utils/global.js: -------------------------------------------------------------------------------- 1 | export default { 2 | SITE_NAME: 'FexCoin', 3 | CAPTCHA_TYPE : { 4 | COMMON: 'common' 5 | }, 6 | //REQUEST_URL: 'http://8.214.55.8' 7 | REQUEST_URL: 'http://39.108.116.68:8009', 8 | WS_URL: 'ws://39.108.116.68:8009/ws', 9 | //REQUEST_URL: 'http://192.168.0.15:8083', 10 | //WS_URL: 'ws://192.168.0.15:9326/ws' 11 | } -------------------------------------------------------------------------------- /utils/lottery.js: -------------------------------------------------------------------------------- 1 | (function (){ 2 | var u = navigator.userAgent, 3 | w = window.innerWidth; 4 | if (!u.match(/AppleWebKit.*Mobile.*/) || u.indexOf('iPad') > -1) { 5 | var sw = w*576/1920; 6 | window.innerWidth = sw<375?375:sw; 7 | window.onload = function() { 8 | window.innerWidth = w; 9 | } 10 | } 11 | })(); -------------------------------------------------------------------------------- /utils/number.js: -------------------------------------------------------------------------------- 1 | export function formatUnit(value, symbol) { //两个参数,一个是值,一个是货币类型(¥,$) 2 | var obj = { 3 | symbol: symbol || "", //货币类型 4 | int: undefined, //整数位 5 | dec: undefined, //小数位 6 | targ: "", //正负 7 | times: ['', 'M', 'B', 'MB', 'BB'] 8 | } 9 | if(value == 0){ 10 | return parseFloat(value).toFixed(2); 11 | } 12 | value = String(value); 13 | var reg = /^-?\d+\.?\d+$/; 14 | if (!reg.test(value)) { 15 | return false; 16 | } 17 | 18 | if (value[0] == "-") { 19 | obj.targ = "-"; 20 | value = value.substring(1, value.length) 21 | } 22 | 23 | var times = 0; 24 | value = Number(value); 25 | while (value > 10000) { 26 | value = value / 10000; 27 | times++; 28 | } 29 | 30 | value = value.toFixed(2) 31 | 32 | var arr = String(value).split(".") 33 | obj.dec = arr[1]; 34 | obj.int = arr[0]; 35 | if (obj.int.length > 3) { 36 | obj.int = obj.int.replace(/(.{1})/, '$1,') 37 | } 38 | 39 | return obj.symbol + obj.targ + obj.int + "." + obj.dec + obj.times[times]; 40 | } 41 | -------------------------------------------------------------------------------- /utils/request.js: -------------------------------------------------------------------------------- 1 | import _config from './config'; // 导入私有配置 2 | export default function $http(options) { 3 | // 进行url字符串拼接,_config.url是再config中配置要请求的域名或者id+端口号这样方便管理, 4 | // options.url是index中请求配置的,完美拼接 5 | options.url = _config.url + options.url; 6 | return new Promise((resolve, reject) => { 7 | if(options.data && options.data.authCode){ 8 | _config.header['Fex-auth'] = options.data.authCode 9 | } 10 | // 拦截请求 11 | let token = uni.getStorageSync('token') 12 | if(token){ 13 | _config.header.Authorization = token; 14 | } 15 | 16 | const lang = uni.getStorageSync('language'); 17 | _config.header['Accept-Language'] = lang ? lang.replace("_", "-") : 'zh-CN'; 18 | 19 | _config.complete = (response) => { 20 | // 登录失效这边后台是返回403看情况 21 | if(response.data.code === 403 || response.data.code === 1002){ 22 | uni.setStorageSync('token', ''); 23 | uni.setStorageSync('loginInfo', ''); 24 | //返回登录界面 25 | uni.reLaunch({ 26 | url:'/pages/public/login' 27 | }) 28 | uni.showToast({ 29 | icon: 'none', 30 | title: '登录已失效' 31 | }); 32 | } else if(response.data.code === 200){ 33 | resolve(response.data); 34 | } else if(response.data.code === -100){ 35 | reject(response.data); 36 | } else { 37 | uni.showToast({ 38 | icon: 'none', 39 | title: response.data.msg 40 | }); 41 | reject(response.data); 42 | } 43 | } 44 | _config.fail = (response) => { 45 | uni.showToast({ 46 | icon: 'none', 47 | title: '系统异常,请稍后再试' 48 | }); 49 | } 50 | // 开始请求 51 | uni.request(Object.assign({},_config, options)); 52 | }) 53 | } 54 | 55 | 56 | 57 | --------------------------------------------------------------------------------