DESKTOP-O04BTUJ\muzen 3 år sedan
förälder
incheckning
3652c4a589
64 ändrade filer med 21902 tillägg och 9523 borttagningar
  1. 1 1
      README.md
  2. 14 1
      babel.config.js
  3. 0 0
      jsconfig.json
  4. 21765 2578
      package-lock.json
  5. 36 34
      package.json
  6. 0 3
      public/index.html
  7. 11 0
      sfc.d.ts
  8. 13 10
      src/App.vue
  9. 0 9
      src/api/guide.js
  10. 0 73
      src/api/share.js
  11. 0 19
      src/common/empty.css
  12. 0 38
      src/common/main.css
  13. 0 53
      src/common/picker.css
  14. 0 952
      src/common/quill.bubble.css
  15. 0 397
      src/common/quill.core.css
  16. 0 945
      src/common/quill.snow.css
  17. 0 16
      src/components/noData/noData.vue
  18. 0 81
      src/components/open-app/open-app.vue
  19. 0 317
      src/components/uni-col/uni-col.vue
  20. 0 1169
      src/components/uni-icons/icons.js
  21. 0 96
      src/components/uni-icons/uni-icons.vue
  22. 0 663
      src/components/uni-icons/uniicons.css
  23. BIN
      src/components/uni-icons/uniicons.ttf
  24. 0 190
      src/components/uni-row/uni-row.vue
  25. 0 148
      src/components/uni-segmented-control/uni-segmented-control.vue
  26. 1 40
      src/main.js
  27. 1 6
      src/manifest.json
  28. 11 92
      src/pages.json
  29. 0 22
      src/pages/about/index.vue
  30. 0 54
      src/pages/guide/index.vue
  31. 0 22
      src/pages/help/index.vue
  32. 49 0
      src/pages/index/index.vue
  33. 0 18
      src/pages/ohplay/museum.vue
  34. 0 187
      src/pages/operation/index.vue
  35. 0 22
      src/pages/privacy/agreement.vue
  36. 0 22
      src/pages/product/manual.vue
  37. 0 125
      src/pages/share/channels.vue
  38. 0 175
      src/pages/share/controls.vue
  39. 0 272
      src/pages/share/detail.vue
  40. 0 235
      src/pages/share/list.vue
  41. 0 22
      src/pages/user/agreement.vue
  42. 0 385
      src/pages/vip/index.vue
  43. BIN
      src/static/coupon-empty.png
  44. BIN
      src/static/date.png
  45. BIN
      src/static/logo.png
  46. BIN
      src/static/operation/answer.png
  47. BIN
      src/static/operation/bluetooth.png
  48. BIN
      src/static/operation/box.png
  49. BIN
      src/static/operation/handup.png
  50. BIN
      src/static/operation/headset.png
  51. BIN
      src/static/operation/last.png
  52. BIN
      src/static/operation/left.png
  53. BIN
      src/static/operation/next.png
  54. BIN
      src/static/operation/play.png
  55. BIN
      src/static/operation/reject.png
  56. BIN
      src/static/operation/right.png
  57. BIN
      src/static/operation/scene.png
  58. BIN
      src/static/operation/stop.png
  59. BIN
      src/static/play.png
  60. BIN
      src/static/playbtn.png
  61. BIN
      src/static/playnumber.png
  62. BIN
      src/static/recharge-empty.png
  63. BIN
      src/static/time.png
  64. 0 31
      src/utils/request.js

+ 1 - 1
README.md

@@ -1,4 +1,4 @@
-# ohplay_h5
+# h5
 
 ## Project setup
 ```

+ 14 - 1
babel.config.js

@@ -49,7 +49,8 @@ process.UNI_LIBRARIES.forEach(libraryName => {
     }
   ])
 })
-module.exports = {
+
+const config = {
   presets: [
     [
       '@vue/app',
@@ -61,3 +62,15 @@ module.exports = {
   ],
   plugins
 }
+
+const UNI_H5_TEST = '**/@dcloudio/uni-h5/dist/index.umd.min.js'
+if (process.env.NODE_ENV === 'production') {
+  config.overrides = [{
+    test: UNI_H5_TEST,
+    compact: true,
+  }]
+} else {
+  config.ignore = [UNI_H5_TEST]
+}
+
+module.exports = config

tsconfig.json → jsconfig.json


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 21765 - 2578
package-lock.json


+ 36 - 34
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "ohplay_h5",
+  "name": "h5",
   "version": "0.1.0",
   "private": true,
   "scripts": {
@@ -17,6 +17,7 @@
     "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build",
     "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build",
     "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build",
+    "build:mp-xhs": "cross-env NODE_ENV=production UNI_PLATFORM=mp-xhs vue-cli-service uni-build",
     "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build",
     "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build",
     "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build",
@@ -33,6 +34,7 @@
     "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch",
     "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch",
     "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
+    "dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch",
     "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch",
     "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch",
     "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch",
@@ -46,46 +48,44 @@
     "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i"
   },
   "dependencies": {
-    "@dcloudio/uni-app-plus": "^2.0.1-33920220208001",
-    "@dcloudio/uni-h5": "^2.0.1-33920220208001",
-    "@dcloudio/uni-helper-json": "^1.0.13",
-    "@dcloudio/uni-i18n": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-360": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-alipay": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-baidu": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-jd": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-kuaishou": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-lark": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-qq": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-toutiao": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-vue": "^2.0.1-33920220208001",
-    "@dcloudio/uni-mp-weixin": "^2.0.1-33920220208001",
-    "@dcloudio/uni-quickapp-native": "^2.0.1-33920220208001",
-    "@dcloudio/uni-quickapp-webview": "^2.0.1-33920220208001",
-    "@dcloudio/uni-stat": "^2.0.1-33920220208001",
-    "@dcloudio/uni-ui": "^1.4.12",
+    "@dcloudio/uni-app-plus": "^2.0.1-34920220630001",
+    "@dcloudio/uni-h5": "^2.0.1-34920220630001",
+    "@dcloudio/uni-helper-json": "*",
+    "@dcloudio/uni-i18n": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-360": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-alipay": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-baidu": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-jd": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-kuaishou": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-lark": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-qq": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-toutiao": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-vue": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-weixin": "^2.0.1-34920220630001",
+    "@dcloudio/uni-mp-xhs": "^2.0.1-34920220630001",
+    "@dcloudio/uni-quickapp-native": "^2.0.1-34920220630001",
+    "@dcloudio/uni-quickapp-webview": "^2.0.1-34920220630001",
+    "@dcloudio/uni-stat": "^2.0.1-34920220630001",
     "@vue/shared": "^3.0.0",
     "core-js": "^3.6.5",
     "flyio": "^0.6.2",
-    "node-sass": "^4.13.0",
     "regenerator-runtime": "^0.12.1",
-    "sass-loader": "^7.3.1",
     "vue": "^2.6.11",
     "vuex": "^3.2.0"
   },
   "devDependencies": {
-    "@babel/runtime": "~7.12.0",
-    "@dcloudio/types": "*",
-    "@dcloudio/uni-automator": "^2.0.1-33920220208001",
-    "@dcloudio/uni-cli-i18n": "^2.0.1-33920220208001",
-    "@dcloudio/uni-cli-shared": "^2.0.1-33920220208001",
-    "@dcloudio/uni-migration": "^2.0.1-33920220208001",
-    "@dcloudio/uni-template-compiler": "^2.0.1-33920220208001",
-    "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.1-33920220208001",
-    "@dcloudio/vue-cli-plugin-uni": "^2.0.1-33920220208001",
-    "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.1-33920220208001",
-    "@dcloudio/webpack-uni-mp-loader": "^2.0.1-33920220208001",
-    "@dcloudio/webpack-uni-pages-loader": "^2.0.1-33920220208001",
+    "@babel/runtime": "~7.17.9",
+    "@dcloudio/types": "^3.0.4",
+    "@dcloudio/uni-automator": "^2.0.1-34920220630001",
+    "@dcloudio/uni-cli-i18n": "^2.0.1-34920220630001",
+    "@dcloudio/uni-cli-shared": "^2.0.1-34920220630001",
+    "@dcloudio/uni-migration": "^2.0.1-34920220630001",
+    "@dcloudio/uni-template-compiler": "^2.0.1-34920220630001",
+    "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.1-34920220630001",
+    "@dcloudio/vue-cli-plugin-uni": "^2.0.1-34920220630001",
+    "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.1-34920220630001",
+    "@dcloudio/webpack-uni-mp-loader": "^2.0.1-34920220630001",
+    "@dcloudio/webpack-uni-pages-loader": "^2.0.1-34920220630001",
     "@vue/cli-plugin-babel": "~4.5.15",
     "@vue/cli-service": "~4.5.15",
     "babel-plugin-import": "^1.11.0",
@@ -93,7 +93,6 @@
     "jest": "^25.4.0",
     "mini-types": "*",
     "miniprogram-api-typings": "*",
-    "node-sass": "^4.12.0",
     "postcss-comment": "^2.0.0",
     "vue-template-compiler": "^2.6.11"
   },
@@ -101,6 +100,9 @@
     "Android >= 4.4",
     "ios >= 9"
   ],
+  "resolutions": {
+    "@babel/runtime": "~7.17.9"
+  },
   "uni-app": {
     "scripts": {}
   }

+ 0 - 3
public/index.html

@@ -8,9 +8,6 @@
             <%= htmlWebpackPlugin.options.title %>
         </title>
         <script>
-            document.addEventListener('DOMContentLoaded', function() {
-                document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
-            })
             var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
             document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
         </script>

+ 11 - 0
sfc.d.ts

@@ -0,0 +1,11 @@
+import Vue from 'vue'
+
+declare module "vue/types/options" {
+  type Hooks = App.AppInstance & Page.PageInstance;
+  interface ComponentOptions<V extends Vue> extends Hooks {
+      /**
+       * 组件类型
+       */
+      mpType?: string;
+  }
+}

+ 13 - 10
src/App.vue

@@ -1,14 +1,17 @@
 <script>
-export default {
-
-};
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
 </script>
 
-<style lang="scss">
-@import url('@/common/main.css');
-@import url('@/common/picker.css');
-@import url('@/common/empty.css');
-@import url('@/common/quill.snow.css');
-@import url('@/common/quill.bubble.css');
-@import url('@/common/quill.core.css');
+<style>
+	/*每个页面公共css */
 </style>

+ 0 - 9
src/api/guide.js

@@ -1,9 +0,0 @@
-import request from "../utils/request";
-
-export function getGuidePageContent(data) {
-  return request({
-    url: `/device/getGuidePageContent`,
-    method: 'get',
-    data: data
-  })
-}

+ 0 - 73
src/api/share.js

@@ -1,73 +0,0 @@
-import request from "../utils/request";
-
-// 12频道
-export function channelsList(data){
-  return request({
-    url: `/share/getAllChannelList`,
-    method: 'get',
-    data
-  })
-}
-
-// 频道分页
-export function channelAudioPage(data){
-  return request({
-    url: `/share/getChannelAudioPage`,
-    method: 'get',
-    data
-  })
-}
-
-// 频道详情
-export function channelDetail(data){
-  return request({
-    url: `/share/getChannelDetail`,
-    method: 'get',
-    data
-  })
-}
-
-// 直播播控
-export function boradcastDetail(data){
-  return request({
-    url: `/share/getBroadcastDetail`,
-    method: 'get',
-    data
-  })
-}
-
-// 直播播控更多列表
-export function boradcastList(data){
-  return request ({
-    url: `/share/getBroadcastProgramList`,
-    method: 'get',
-    data
-  })
-}
-
-// 专辑列表
-export function podCastProgramList(data){
-  return request({
-    url: `/share/getPodCastProgramList`,
-    method: 'get',
-    data
-  })
-}
-
-// 专辑详情
-export function podCastDetail(data){
-  return request({
-    url: `/share/getPodCastDetail`,
-    method: 'get',
-    data
-  })
-}
-
-// 节目、专辑播控
-export function podCastProgramDetail(data) {
-  return request({
-    url: `/share/getPodCastProgramDetail`,
-    method: 'get',
-    data
-  })
-}

+ 0 - 19
src/common/empty.css

@@ -1,19 +0,0 @@
-.empty {
-    position: absolute;
-    top: 224rpx;
-    left: 50%;
-    transform: translate(-50%);
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-}
-
-.empty image {
-    width: 240rpx;
-    height: 240rpx;
-}
-
-.empty text {
-    font-size: 32rpx;
-    color: rgba(255, 255, 255, 0.5);
-}

+ 0 - 38
src/common/main.css

@@ -1,38 +0,0 @@
-/* 每个页面公共css */
-body {
-    height: 100%;
-    background-color: #181818;
-    color: #FFF;
-}
-
-page{
-    height: 100%;
-}
-
-view {
-    box-sizing: border-box;
-}
-
-.app-container {
-    padding: 32rpx;
-}
-
-button {
-    height: 92rpx;
-    line-height: 92rpx;
-    font-size: 32rpx;
-}
-
-uni-button[type=submit] {
-    background-image: linear-gradient(#A4D099, #78B06A);
-    color: #FFF;
-}
-
-uni-button[circle] {
-    border-radius: 50rpx;
-}
-
-uni-slider{
-    margin: 0;
-    width: 100%;
-}

+ 0 - 53
src/common/picker.css

@@ -1,53 +0,0 @@
-.uni-picker-container .uni-picker-header,
-.uni-picker-container .uni-picker-content{
-    background: #232323;
-}
-
-.uni-mask,
-.uni-picker-container .uni-picker-custom{
-    background: rgb(24 24 24 / 50%)
-}
-
-.uni-picker-container .uni-picker-header {
-    border-radius: 32rpx 32rpx 0 0;
-}
-
-.uni-picker-view-mask {
-    background: linear-gradient(180deg,
-            hsla(0, 0%, 14%, 1),
-            hsla(0, 0%, 14%, 0.4)),
-        linear-gradient(0deg, hsla(0, 0%, 14%, 1), hsla(0, 0%, 14%, 0.4));
-    background-position: top, bottom;
-    background-repeat: no-repeat;
-}
-
-.uni-picker-header::after,
-.uni-picker-view-indicator::before,
-.uni-picker-view-indicator::after {
-    display: none;
-}
-
-.uni-picker-container .uni-picker-action.uni-picker-action-confirm {
-    color: #FFF;
-}
-
-.uni-picker-view-wrapper {
-    padding: 0 32rpx;
-}
-
-uni-picker-view-column:first-child .uni-picker-view-indicator {
-    border-radius: 16rpx 0 0 16rpx;
-}
-
-uni-picker-view-column:last-child .uni-picker-view-indicator {
-    border-radius: 0 16rpx 16rpx 0;
-}
-
-.uni-picker-view-indicator {
-    background: rgba(255, 255, 255, 0.05);
-}
-
-
-.uni-picker-container .uni-picker-item {
-    color: #fff;
-}

+ 0 - 952
src/common/quill.bubble.css

@@ -1,952 +0,0 @@
-/*!
- * Quill Editor v1.3.7
- * https://quilljs.com/
- * Copyright (c) 2014, Jason Chen
- * Copyright (c) 2013, salesforce.com
- */
-.ql-container {
-  box-sizing: border-box;
-  font-family: Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  height: 100%;
-  margin: 0px;
-  position: relative;
-}
-.ql-container.ql-disabled .ql-tooltip {
-  visibility: hidden;
-}
-.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
-  pointer-events: none;
-}
-.ql-clipboard {
-  left: -100000px;
-  height: 1px;
-  overflow-y: hidden;
-  position: absolute;
-  top: 50%;
-}
-.ql-clipboard p {
-  margin: 0;
-  padding: 0;
-}
-.ql-editor {
-  box-sizing: border-box;
-  line-height: 1.42;
-  height: 100%;
-  outline: none;
-  overflow-y: auto;
-  padding: 12px 15px;
-  tab-size: 4;
-  -moz-tab-size: 4;
-  text-align: left;
-  white-space: pre-wrap;
-  word-wrap: break-word;
-}
-.ql-editor > * {
-  cursor: text;
-}
-.ql-editor p,
-.ql-editor ol,
-.ql-editor ul,
-.ql-editor pre,
-.ql-editor blockquote,
-.ql-editor h1,
-.ql-editor h2,
-.ql-editor h3,
-.ql-editor h4,
-.ql-editor h5,
-.ql-editor h6 {
-  margin: 0;
-  padding: 0;
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol,
-.ql-editor ul {
-  padding-left: 1.5em;
-}
-.ql-editor ol > li,
-.ql-editor ul > li {
-  list-style-type: none;
-}
-.ql-editor ul > li::before {
-  content: '\2022';
-}
-.ql-editor ul[data-checked=true],
-.ql-editor ul[data-checked=false] {
-  pointer-events: none;
-}
-.ql-editor ul[data-checked=true] > li *,
-.ql-editor ul[data-checked=false] > li * {
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before,
-.ql-editor ul[data-checked=false] > li::before {
-  color: #777;
-  cursor: pointer;
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before {
-  content: '\2611';
-}
-.ql-editor ul[data-checked=false] > li::before {
-  content: '\2610';
-}
-.ql-editor li::before {
-  display: inline-block;
-  white-space: nowrap;
-  width: 1.2em;
-}
-.ql-editor li:not(.ql-direction-rtl)::before {
-  margin-left: -1.5em;
-  margin-right: 0.3em;
-  text-align: right;
-}
-.ql-editor li.ql-direction-rtl::before {
-  margin-left: 0.3em;
-  margin-right: -1.5em;
-}
-.ql-editor ol li:not(.ql-direction-rtl),
-.ql-editor ul li:not(.ql-direction-rtl) {
-  padding-left: 1.5em;
-}
-.ql-editor ol li.ql-direction-rtl,
-.ql-editor ul li.ql-direction-rtl {
-  padding-right: 1.5em;
-}
-.ql-editor ol li {
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-  counter-increment: list-0;
-}
-.ql-editor ol li:before {
-  content: counter(list-0, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-increment: list-1;
-}
-.ql-editor ol li.ql-indent-1:before {
-  content: counter(list-1, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-increment: list-2;
-}
-.ql-editor ol li.ql-indent-2:before {
-  content: counter(list-2, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-increment: list-3;
-}
-.ql-editor ol li.ql-indent-3:before {
-  content: counter(list-3, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-increment: list-4;
-}
-.ql-editor ol li.ql-indent-4:before {
-  content: counter(list-4, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-reset: list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-increment: list-5;
-}
-.ql-editor ol li.ql-indent-5:before {
-  content: counter(list-5, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-reset: list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-increment: list-6;
-}
-.ql-editor ol li.ql-indent-6:before {
-  content: counter(list-6, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-reset: list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-increment: list-7;
-}
-.ql-editor ol li.ql-indent-7:before {
-  content: counter(list-7, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-reset: list-8 list-9;
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-increment: list-8;
-}
-.ql-editor ol li.ql-indent-8:before {
-  content: counter(list-8, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-reset: list-9;
-}
-.ql-editor ol li.ql-indent-9 {
-  counter-increment: list-9;
-}
-.ql-editor ol li.ql-indent-9:before {
-  content: counter(list-9, decimal) '. ';
-}
-.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 3em;
-}
-.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 4.5em;
-}
-.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 3em;
-}
-.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 4.5em;
-}
-.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 6em;
-}
-.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 7.5em;
-}
-.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 6em;
-}
-.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 7.5em;
-}
-.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 9em;
-}
-.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 10.5em;
-}
-.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 9em;
-}
-.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 10.5em;
-}
-.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 12em;
-}
-.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 13.5em;
-}
-.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 12em;
-}
-.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 13.5em;
-}
-.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 15em;
-}
-.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 16.5em;
-}
-.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 15em;
-}
-.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 16.5em;
-}
-.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 18em;
-}
-.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 19.5em;
-}
-.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 18em;
-}
-.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 19.5em;
-}
-.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 21em;
-}
-.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 22.5em;
-}
-.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 21em;
-}
-.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 22.5em;
-}
-.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 24em;
-}
-.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 25.5em;
-}
-.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 24em;
-}
-.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 25.5em;
-}
-.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 27em;
-}
-.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 28.5em;
-}
-.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 27em;
-}
-.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 28.5em;
-}
-.ql-editor .ql-video {
-  display: block;
-  max-width: 100%;
-}
-.ql-editor .ql-video.ql-align-center {
-  margin: 0 auto;
-}
-.ql-editor .ql-video.ql-align-right {
-  margin: 0 0 0 auto;
-}
-.ql-editor .ql-bg-black {
-  background-color: #000;
-}
-.ql-editor .ql-bg-red {
-  background-color: #e60000;
-}
-.ql-editor .ql-bg-orange {
-  background-color: #f90;
-}
-.ql-editor .ql-bg-yellow {
-  background-color: #ff0;
-}
-.ql-editor .ql-bg-green {
-  background-color: #008a00;
-}
-.ql-editor .ql-bg-blue {
-  background-color: #06c;
-}
-.ql-editor .ql-bg-purple {
-  background-color: #93f;
-}
-.ql-editor .ql-color-white {
-  color: #fff;
-}
-.ql-editor .ql-color-red {
-  color: #e60000;
-}
-.ql-editor .ql-color-orange {
-  color: #f90;
-}
-.ql-editor .ql-color-yellow {
-  color: #ff0;
-}
-.ql-editor .ql-color-green {
-  color: #008a00;
-}
-.ql-editor .ql-color-blue {
-  color: #06c;
-}
-.ql-editor .ql-color-purple {
-  color: #93f;
-}
-.ql-editor .ql-font-serif {
-  font-family: Georgia, Times New Roman, serif;
-}
-.ql-editor .ql-font-monospace {
-  font-family: Monaco, Courier New, monospace;
-}
-.ql-editor .ql-size-small {
-  font-size: 0.75em;
-}
-.ql-editor .ql-size-large {
-  font-size: 1.5em;
-}
-.ql-editor .ql-size-huge {
-  font-size: 2.5em;
-}
-.ql-editor .ql-direction-rtl {
-  direction: rtl;
-  text-align: inherit;
-}
-.ql-editor .ql-align-center {
-  text-align: center;
-}
-.ql-editor .ql-align-justify {
-  text-align: justify;
-}
-.ql-editor .ql-align-right {
-  text-align: right;
-}
-.ql-editor.ql-blank::before {
-  color: rgba(0,0,0,0.6);
-  content: attr(data-placeholder);
-  font-style: italic;
-  left: 15px;
-  pointer-events: none;
-  position: absolute;
-  right: 15px;
-}
-.ql-bubble.ql-toolbar:after,
-.ql-bubble .ql-toolbar:after {
-  clear: both;
-  content: '';
-  display: table;
-}
-.ql-bubble.ql-toolbar button,
-.ql-bubble .ql-toolbar button {
-  background: none;
-  border: none;
-  cursor: pointer;
-  display: inline-block;
-  float: left;
-  height: 24px;
-  padding: 3px 5px;
-  width: 28px;
-}
-.ql-bubble.ql-toolbar button svg,
-.ql-bubble .ql-toolbar button svg {
-  float: left;
-  height: 100%;
-}
-.ql-bubble.ql-toolbar button:active:hover,
-.ql-bubble .ql-toolbar button:active:hover {
-  outline: none;
-}
-.ql-bubble.ql-toolbar input.ql-image[type=file],
-.ql-bubble .ql-toolbar input.ql-image[type=file] {
-  display: none;
-}
-.ql-bubble.ql-toolbar button:hover,
-.ql-bubble .ql-toolbar button:hover,
-.ql-bubble.ql-toolbar button:focus,
-.ql-bubble .ql-toolbar button:focus,
-.ql-bubble.ql-toolbar button.ql-active,
-.ql-bubble .ql-toolbar button.ql-active,
-.ql-bubble.ql-toolbar .ql-picker-label:hover,
-.ql-bubble .ql-toolbar .ql-picker-label:hover,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active,
-.ql-bubble.ql-toolbar .ql-picker-item:hover,
-.ql-bubble .ql-toolbar .ql-picker-item:hover,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected {
-  color: #fff;
-}
-.ql-bubble.ql-toolbar button:hover .ql-fill,
-.ql-bubble .ql-toolbar button:hover .ql-fill,
-.ql-bubble.ql-toolbar button:focus .ql-fill,
-.ql-bubble .ql-toolbar button:focus .ql-fill,
-.ql-bubble.ql-toolbar button.ql-active .ql-fill,
-.ql-bubble .ql-toolbar button.ql-active .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
-  fill: #fff;
-}
-.ql-bubble.ql-toolbar button:hover .ql-stroke,
-.ql-bubble .ql-toolbar button:hover .ql-stroke,
-.ql-bubble.ql-toolbar button:focus .ql-stroke,
-.ql-bubble .ql-toolbar button:focus .ql-stroke,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar button:hover .ql-stroke-miter,
-.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,
-.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
-  stroke: #fff;
-}
-@media (pointer: coarse) {
-  .ql-bubble.ql-toolbar button:hover:not(.ql-active),
-  .ql-bubble .ql-toolbar button:hover:not(.ql-active) {
-    color: #ccc;
-  }
-  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,
-  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,
-  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
-  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
-    fill: #ccc;
-  }
-  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-  .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
-  .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
-    stroke: #ccc;
-  }
-}
-.ql-bubble {
-  box-sizing: border-box;
-}
-.ql-bubble * {
-  box-sizing: border-box;
-}
-.ql-bubble .ql-hidden {
-  display: none;
-}
-.ql-bubble .ql-out-bottom,
-.ql-bubble .ql-out-top {
-  visibility: hidden;
-}
-.ql-bubble .ql-tooltip {
-  position: absolute;
-  transform: translateY(10px);
-}
-.ql-bubble .ql-tooltip a {
-  cursor: pointer;
-  text-decoration: none;
-}
-.ql-bubble .ql-tooltip.ql-flip {
-  transform: translateY(-10px);
-}
-.ql-bubble .ql-formats {
-  display: inline-block;
-  vertical-align: middle;
-}
-.ql-bubble .ql-formats:after {
-  clear: both;
-  content: '';
-  display: table;
-}
-.ql-bubble .ql-stroke {
-  fill: none;
-  stroke: #ccc;
-  stroke-linecap: round;
-  stroke-linejoin: round;
-  stroke-width: 2;
-}
-.ql-bubble .ql-stroke-miter {
-  fill: none;
-  stroke: #ccc;
-  stroke-miterlimit: 10;
-  stroke-width: 2;
-}
-.ql-bubble .ql-fill,
-.ql-bubble .ql-stroke.ql-fill {
-  fill: #ccc;
-}
-.ql-bubble .ql-empty {
-  fill: none;
-}
-.ql-bubble .ql-even {
-  fill-rule: evenodd;
-}
-.ql-bubble .ql-thin,
-.ql-bubble .ql-stroke.ql-thin {
-  stroke-width: 1;
-}
-.ql-bubble .ql-transparent {
-  opacity: 0.4;
-}
-.ql-bubble .ql-direction svg:last-child {
-  display: none;
-}
-.ql-bubble .ql-direction.ql-active svg:last-child {
-  display: inline;
-}
-.ql-bubble .ql-direction.ql-active svg:first-child {
-  display: none;
-}
-.ql-bubble .ql-editor h1 {
-  font-size: 2em;
-}
-.ql-bubble .ql-editor h2 {
-  font-size: 1.5em;
-}
-.ql-bubble .ql-editor h3 {
-  font-size: 1.17em;
-}
-.ql-bubble .ql-editor h4 {
-  font-size: 1em;
-}
-.ql-bubble .ql-editor h5 {
-  font-size: 0.83em;
-}
-.ql-bubble .ql-editor h6 {
-  font-size: 0.67em;
-}
-.ql-bubble .ql-editor a {
-  text-decoration: underline;
-}
-.ql-bubble .ql-editor blockquote {
-  border-left: 4px solid #ccc;
-  margin-bottom: 5px;
-  margin-top: 5px;
-  padding-left: 16px;
-}
-.ql-bubble .ql-editor code,
-.ql-bubble .ql-editor pre {
-  background-color: #f0f0f0;
-  border-radius: 3px;
-}
-.ql-bubble .ql-editor pre {
-  white-space: pre-wrap;
-  margin-bottom: 5px;
-  margin-top: 5px;
-  padding: 5px 10px;
-}
-.ql-bubble .ql-editor code {
-  font-size: 85%;
-  padding: 2px 4px;
-}
-.ql-bubble .ql-editor pre.ql-syntax {
-  background-color: #23241f;
-  color: #f8f8f2;
-  overflow: visible;
-}
-.ql-bubble .ql-editor img {
-  max-width: 100%;
-}
-.ql-bubble .ql-picker {
-  color: #ccc;
-  display: inline-block;
-  float: left;
-  font-size: 14px;
-  font-weight: 500;
-  height: 24px;
-  position: relative;
-  vertical-align: middle;
-}
-.ql-bubble .ql-picker-label {
-  cursor: pointer;
-  display: inline-block;
-  height: 100%;
-  padding-left: 8px;
-  padding-right: 2px;
-  position: relative;
-  width: 100%;
-}
-.ql-bubble .ql-picker-label::before {
-  display: inline-block;
-  line-height: 22px;
-}
-.ql-bubble .ql-picker-options {
-  background-color: #444;
-  display: none;
-  min-width: 100%;
-  padding: 4px 8px;
-  position: absolute;
-  white-space: nowrap;
-}
-.ql-bubble .ql-picker-options .ql-picker-item {
-  cursor: pointer;
-  display: block;
-  padding-bottom: 5px;
-  padding-top: 5px;
-}
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label {
-  color: #777;
-  z-index: 2;
-}
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill {
-  fill: #777;
-}
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
-  stroke: #777;
-}
-.ql-bubble .ql-picker.ql-expanded .ql-picker-options {
-  display: block;
-  margin-top: -1px;
-  top: 100%;
-  z-index: 1;
-}
-.ql-bubble .ql-color-picker,
-.ql-bubble .ql-icon-picker {
-  width: 28px;
-}
-.ql-bubble .ql-color-picker .ql-picker-label,
-.ql-bubble .ql-icon-picker .ql-picker-label {
-  padding: 2px 4px;
-}
-.ql-bubble .ql-color-picker .ql-picker-label svg,
-.ql-bubble .ql-icon-picker .ql-picker-label svg {
-  right: 4px;
-}
-.ql-bubble .ql-icon-picker .ql-picker-options {
-  padding: 4px 0px;
-}
-.ql-bubble .ql-icon-picker .ql-picker-item {
-  height: 24px;
-  width: 24px;
-  padding: 2px 4px;
-}
-.ql-bubble .ql-color-picker .ql-picker-options {
-  padding: 3px 5px;
-  width: 152px;
-}
-.ql-bubble .ql-color-picker .ql-picker-item {
-  border: 1px solid transparent;
-  float: left;
-  height: 16px;
-  margin: 2px;
-  padding: 0px;
-  width: 16px;
-}
-.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
-  position: absolute;
-  margin-top: -9px;
-  right: 0;
-  top: 50%;
-  width: 18px;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
-  content: attr(data-label);
-}
-.ql-bubble .ql-picker.ql-header {
-  width: 98px;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item::before {
-  content: 'Normal';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  content: 'Heading 1';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  content: 'Heading 2';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  content: 'Heading 3';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  content: 'Heading 4';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  content: 'Heading 5';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  content: 'Heading 6';
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  font-size: 2em;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  font-size: 1.5em;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  font-size: 1.17em;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  font-size: 1em;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  font-size: 0.83em;
-}
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  font-size: 0.67em;
-}
-.ql-bubble .ql-picker.ql-font {
-  width: 108px;
-}
-.ql-bubble .ql-picker.ql-font .ql-picker-label::before,
-.ql-bubble .ql-picker.ql-font .ql-picker-item::before {
-  content: 'Sans Serif';
-}
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
-  content: 'Serif';
-}
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
-  content: 'Monospace';
-}
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
-  font-family: Georgia, Times New Roman, serif;
-}
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
-  font-family: Monaco, Courier New, monospace;
-}
-.ql-bubble .ql-picker.ql-size {
-  width: 98px;
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-label::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item::before {
-  content: 'Normal';
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
-  content: 'Small';
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
-  content: 'Large';
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
-  content: 'Huge';
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
-  font-size: 10px;
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
-  font-size: 18px;
-}
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
-  font-size: 32px;
-}
-.ql-bubble .ql-color-picker.ql-background .ql-picker-item {
-  background-color: #fff;
-}
-.ql-bubble .ql-color-picker.ql-color .ql-picker-item {
-  background-color: #000;
-}
-.ql-bubble .ql-toolbar .ql-formats {
-  margin: 8px 12px 8px 0px;
-}
-.ql-bubble .ql-toolbar .ql-formats:first-child {
-  margin-left: 12px;
-}
-.ql-bubble .ql-color-picker svg {
-  margin: 1px;
-}
-.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,
-.ql-bubble .ql-color-picker .ql-picker-item:hover {
-  border-color: #fff;
-}
-.ql-bubble .ql-tooltip {
-  background-color: #444;
-  border-radius: 25px;
-  color: #fff;
-}
-.ql-bubble .ql-tooltip-arrow {
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  content: " ";
-  display: block;
-  left: 50%;
-  margin-left: -6px;
-  position: absolute;
-}
-.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow {
-  border-bottom: 6px solid #444;
-  top: -6px;
-}
-.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow {
-  border-top: 6px solid #444;
-  bottom: -6px;
-}
-.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor {
-  display: block;
-}
-.ql-bubble .ql-tooltip.ql-editing .ql-formats {
-  visibility: hidden;
-}
-.ql-bubble .ql-tooltip-editor {
-  display: none;
-}
-.ql-bubble .ql-tooltip-editor input[type=text] {
-  background: transparent;
-  border: none;
-  color: #fff;
-  font-size: 13px;
-  height: 100%;
-  outline: none;
-  padding: 10px 20px;
-  position: absolute;
-  width: 100%;
-}
-.ql-bubble .ql-tooltip-editor a {
-  top: 10px;
-  position: absolute;
-  right: 20px;
-}
-.ql-bubble .ql-tooltip-editor a:before {
-  color: #ccc;
-  content: "\D7";
-  font-size: 16px;
-  font-weight: bold;
-}
-.ql-container.ql-bubble:not(.ql-disabled) a {
-  position: relative;
-  white-space: nowrap;
-}
-.ql-container.ql-bubble:not(.ql-disabled) a::before {
-  background-color: #444;
-  border-radius: 15px;
-  top: -5px;
-  font-size: 12px;
-  color: #fff;
-  content: attr(href);
-  font-weight: normal;
-  overflow: hidden;
-  padding: 5px 15px;
-  text-decoration: none;
-  z-index: 1;
-}
-.ql-container.ql-bubble:not(.ql-disabled) a::after {
-  border-top: 6px solid #444;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  top: 0;
-  content: " ";
-  height: 0;
-  width: 0;
-}
-.ql-container.ql-bubble:not(.ql-disabled) a::before,
-.ql-container.ql-bubble:not(.ql-disabled) a::after {
-  left: 0;
-  margin-left: 50%;
-  position: absolute;
-  transform: translate(-50%, -100%);
-  transition: visibility 0s ease 200ms;
-  visibility: hidden;
-}
-.ql-container.ql-bubble:not(.ql-disabled) a:hover::before,
-.ql-container.ql-bubble:not(.ql-disabled) a:hover::after {
-  visibility: visible;
-}

+ 0 - 397
src/common/quill.core.css

@@ -1,397 +0,0 @@
-/*!
- * Quill Editor v1.3.7
- * https://quilljs.com/
- * Copyright (c) 2014, Jason Chen
- * Copyright (c) 2013, salesforce.com
- */
-.ql-container {
-  box-sizing: border-box;
-  font-family: Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  height: 100%;
-  margin: 0px;
-  position: relative;
-}
-.ql-container.ql-disabled .ql-tooltip {
-  visibility: hidden;
-}
-.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
-  pointer-events: none;
-}
-.ql-clipboard {
-  left: -100000px;
-  height: 1px;
-  overflow-y: hidden;
-  position: absolute;
-  top: 50%;
-}
-.ql-clipboard p {
-  margin: 0;
-  padding: 0;
-}
-.ql-editor {
-  box-sizing: border-box;
-  line-height: 1.42;
-  height: 100%;
-  outline: none;
-  overflow-y: auto;
-  padding: 12px 15px;
-  tab-size: 4;
-  -moz-tab-size: 4;
-  text-align: left;
-  white-space: pre-wrap;
-  word-wrap: break-word;
-}
-.ql-editor > * {
-  cursor: text;
-}
-.ql-editor p,
-.ql-editor ol,
-.ql-editor ul,
-.ql-editor pre,
-.ql-editor blockquote,
-.ql-editor h1,
-.ql-editor h2,
-.ql-editor h3,
-.ql-editor h4,
-.ql-editor h5,
-.ql-editor h6 {
-  margin: 0;
-  padding: 0;
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol,
-.ql-editor ul {
-  padding-left: 1.5em;
-}
-.ql-editor ol > li,
-.ql-editor ul > li {
-  list-style-type: none;
-}
-.ql-editor ul > li::before {
-  content: '\2022';
-}
-.ql-editor ul[data-checked=true],
-.ql-editor ul[data-checked=false] {
-  pointer-events: none;
-}
-.ql-editor ul[data-checked=true] > li *,
-.ql-editor ul[data-checked=false] > li * {
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before,
-.ql-editor ul[data-checked=false] > li::before {
-  color: #777;
-  cursor: pointer;
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before {
-  content: '\2611';
-}
-.ql-editor ul[data-checked=false] > li::before {
-  content: '\2610';
-}
-.ql-editor li::before {
-  display: inline-block;
-  white-space: nowrap;
-  width: 1.2em;
-}
-.ql-editor li:not(.ql-direction-rtl)::before {
-  margin-left: -1.5em;
-  margin-right: 0.3em;
-  text-align: right;
-}
-.ql-editor li.ql-direction-rtl::before {
-  margin-left: 0.3em;
-  margin-right: -1.5em;
-}
-.ql-editor ol li:not(.ql-direction-rtl),
-.ql-editor ul li:not(.ql-direction-rtl) {
-  padding-left: 1.5em;
-}
-.ql-editor ol li.ql-direction-rtl,
-.ql-editor ul li.ql-direction-rtl {
-  padding-right: 1.5em;
-}
-.ql-editor ol li {
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-  counter-increment: list-0;
-}
-.ql-editor ol li:before {
-  content: counter(list-0, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-increment: list-1;
-}
-.ql-editor ol li.ql-indent-1:before {
-  content: counter(list-1, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-increment: list-2;
-}
-.ql-editor ol li.ql-indent-2:before {
-  content: counter(list-2, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-increment: list-3;
-}
-.ql-editor ol li.ql-indent-3:before {
-  content: counter(list-3, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-increment: list-4;
-}
-.ql-editor ol li.ql-indent-4:before {
-  content: counter(list-4, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-reset: list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-increment: list-5;
-}
-.ql-editor ol li.ql-indent-5:before {
-  content: counter(list-5, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-reset: list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-increment: list-6;
-}
-.ql-editor ol li.ql-indent-6:before {
-  content: counter(list-6, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-reset: list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-increment: list-7;
-}
-.ql-editor ol li.ql-indent-7:before {
-  content: counter(list-7, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-reset: list-8 list-9;
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-increment: list-8;
-}
-.ql-editor ol li.ql-indent-8:before {
-  content: counter(list-8, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-reset: list-9;
-}
-.ql-editor ol li.ql-indent-9 {
-  counter-increment: list-9;
-}
-.ql-editor ol li.ql-indent-9:before {
-  content: counter(list-9, decimal) '. ';
-}
-.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 3em;
-}
-.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 4.5em;
-}
-.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 3em;
-}
-.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 4.5em;
-}
-.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 6em;
-}
-.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 7.5em;
-}
-.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 6em;
-}
-.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 7.5em;
-}
-.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 9em;
-}
-.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 10.5em;
-}
-.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 9em;
-}
-.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 10.5em;
-}
-.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 12em;
-}
-.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 13.5em;
-}
-.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 12em;
-}
-.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 13.5em;
-}
-.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 15em;
-}
-.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 16.5em;
-}
-.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 15em;
-}
-.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 16.5em;
-}
-.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 18em;
-}
-.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 19.5em;
-}
-.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 18em;
-}
-.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 19.5em;
-}
-.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 21em;
-}
-.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 22.5em;
-}
-.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 21em;
-}
-.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 22.5em;
-}
-.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 24em;
-}
-.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 25.5em;
-}
-.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 24em;
-}
-.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 25.5em;
-}
-.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 27em;
-}
-.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 28.5em;
-}
-.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 27em;
-}
-.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 28.5em;
-}
-.ql-editor .ql-video {
-  display: block;
-  max-width: 100%;
-}
-.ql-editor .ql-video.ql-align-center {
-  margin: 0 auto;
-}
-.ql-editor .ql-video.ql-align-right {
-  margin: 0 0 0 auto;
-}
-.ql-editor .ql-bg-black {
-  background-color: #000;
-}
-.ql-editor .ql-bg-red {
-  background-color: #e60000;
-}
-.ql-editor .ql-bg-orange {
-  background-color: #f90;
-}
-.ql-editor .ql-bg-yellow {
-  background-color: #ff0;
-}
-.ql-editor .ql-bg-green {
-  background-color: #008a00;
-}
-.ql-editor .ql-bg-blue {
-  background-color: #06c;
-}
-.ql-editor .ql-bg-purple {
-  background-color: #93f;
-}
-.ql-editor .ql-color-white {
-  color: #fff;
-}
-.ql-editor .ql-color-red {
-  color: #e60000;
-}
-.ql-editor .ql-color-orange {
-  color: #f90;
-}
-.ql-editor .ql-color-yellow {
-  color: #ff0;
-}
-.ql-editor .ql-color-green {
-  color: #008a00;
-}
-.ql-editor .ql-color-blue {
-  color: #06c;
-}
-.ql-editor .ql-color-purple {
-  color: #93f;
-}
-.ql-editor .ql-font-serif {
-  font-family: Georgia, Times New Roman, serif;
-}
-.ql-editor .ql-font-monospace {
-  font-family: Monaco, Courier New, monospace;
-}
-.ql-editor .ql-size-small {
-  font-size: 0.75em;
-}
-.ql-editor .ql-size-large {
-  font-size: 1.5em;
-}
-.ql-editor .ql-size-huge {
-  font-size: 2.5em;
-}
-.ql-editor .ql-direction-rtl {
-  direction: rtl;
-  text-align: inherit;
-}
-.ql-editor .ql-align-center {
-  text-align: center;
-}
-.ql-editor .ql-align-justify {
-  text-align: justify;
-}
-.ql-editor .ql-align-right {
-  text-align: right;
-}
-.ql-editor.ql-blank::before {
-  color: rgba(0,0,0,0.6);
-  content: attr(data-placeholder);
-  font-style: italic;
-  left: 15px;
-  pointer-events: none;
-  position: absolute;
-  right: 15px;
-}

+ 0 - 945
src/common/quill.snow.css

@@ -1,945 +0,0 @@
-/*!
- * Quill Editor v1.3.7
- * https://quilljs.com/
- * Copyright (c) 2014, Jason Chen
- * Copyright (c) 2013, salesforce.com
- */
-.ql-container {
-  box-sizing: border-box;
-  font-family: Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  height: 100%;
-  margin: 0px;
-  position: relative;
-}
-.ql-container.ql-disabled .ql-tooltip {
-  visibility: hidden;
-}
-.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
-  pointer-events: none;
-}
-.ql-clipboard {
-  left: -100000px;
-  height: 1px;
-  overflow-y: hidden;
-  position: absolute;
-  top: 50%;
-}
-.ql-clipboard p {
-  margin: 0;
-  padding: 0;
-}
-.ql-editor {
-  box-sizing: border-box;
-  line-height: 1.42;
-  height: 100%;
-  outline: none;
-  overflow-y: auto;
-  padding: 12px 15px;
-  tab-size: 4;
-  -moz-tab-size: 4;
-  text-align: left;
-  white-space: pre-wrap;
-  word-wrap: break-word;
-}
-.ql-editor > * {
-  cursor: text;
-}
-.ql-editor p,
-.ql-editor ol,
-.ql-editor ul,
-.ql-editor pre,
-.ql-editor blockquote,
-.ql-editor h1,
-.ql-editor h2,
-.ql-editor h3,
-.ql-editor h4,
-.ql-editor h5,
-.ql-editor h6 {
-  margin: 0;
-  padding: 0;
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol,
-.ql-editor ul {
-  padding-left: 1.5em;
-}
-.ql-editor ol > li,
-.ql-editor ul > li {
-  list-style-type: none;
-}
-.ql-editor ul > li::before {
-  content: '\2022';
-}
-.ql-editor ul[data-checked=true],
-.ql-editor ul[data-checked=false] {
-  pointer-events: none;
-}
-.ql-editor ul[data-checked=true] > li *,
-.ql-editor ul[data-checked=false] > li * {
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before,
-.ql-editor ul[data-checked=false] > li::before {
-  color: #777;
-  cursor: pointer;
-  pointer-events: all;
-}
-.ql-editor ul[data-checked=true] > li::before {
-  content: '\2611';
-}
-.ql-editor ul[data-checked=false] > li::before {
-  content: '\2610';
-}
-.ql-editor li::before {
-  display: inline-block;
-  white-space: nowrap;
-  width: 1.2em;
-}
-.ql-editor li:not(.ql-direction-rtl)::before {
-  margin-left: -1.5em;
-  margin-right: 0.3em;
-  text-align: right;
-}
-.ql-editor li.ql-direction-rtl::before {
-  margin-left: 0.3em;
-  margin-right: -1.5em;
-}
-.ql-editor ol li:not(.ql-direction-rtl),
-.ql-editor ul li:not(.ql-direction-rtl) {
-  padding-left: 1.5em;
-}
-.ql-editor ol li.ql-direction-rtl,
-.ql-editor ul li.ql-direction-rtl {
-  padding-right: 1.5em;
-}
-.ql-editor ol li {
-  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-  counter-increment: list-0;
-}
-.ql-editor ol li:before {
-  content: counter(list-0, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-increment: list-1;
-}
-.ql-editor ol li.ql-indent-1:before {
-  content: counter(list-1, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-1 {
-  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-increment: list-2;
-}
-.ql-editor ol li.ql-indent-2:before {
-  content: counter(list-2, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-2 {
-  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-increment: list-3;
-}
-.ql-editor ol li.ql-indent-3:before {
-  content: counter(list-3, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-3 {
-  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-increment: list-4;
-}
-.ql-editor ol li.ql-indent-4:before {
-  content: counter(list-4, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-4 {
-  counter-reset: list-5 list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-increment: list-5;
-}
-.ql-editor ol li.ql-indent-5:before {
-  content: counter(list-5, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-5 {
-  counter-reset: list-6 list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-increment: list-6;
-}
-.ql-editor ol li.ql-indent-6:before {
-  content: counter(list-6, decimal) '. ';
-}
-.ql-editor ol li.ql-indent-6 {
-  counter-reset: list-7 list-8 list-9;
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-increment: list-7;
-}
-.ql-editor ol li.ql-indent-7:before {
-  content: counter(list-7, lower-alpha) '. ';
-}
-.ql-editor ol li.ql-indent-7 {
-  counter-reset: list-8 list-9;
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-increment: list-8;
-}
-.ql-editor ol li.ql-indent-8:before {
-  content: counter(list-8, lower-roman) '. ';
-}
-.ql-editor ol li.ql-indent-8 {
-  counter-reset: list-9;
-}
-.ql-editor ol li.ql-indent-9 {
-  counter-increment: list-9;
-}
-.ql-editor ol li.ql-indent-9:before {
-  content: counter(list-9, decimal) '. ';
-}
-.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 3em;
-}
-.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
-  padding-left: 4.5em;
-}
-.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 3em;
-}
-.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
-  padding-right: 4.5em;
-}
-.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 6em;
-}
-.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
-  padding-left: 7.5em;
-}
-.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 6em;
-}
-.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
-  padding-right: 7.5em;
-}
-.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 9em;
-}
-.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
-  padding-left: 10.5em;
-}
-.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 9em;
-}
-.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
-  padding-right: 10.5em;
-}
-.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 12em;
-}
-.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
-  padding-left: 13.5em;
-}
-.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 12em;
-}
-.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
-  padding-right: 13.5em;
-}
-.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 15em;
-}
-.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
-  padding-left: 16.5em;
-}
-.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 15em;
-}
-.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
-  padding-right: 16.5em;
-}
-.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 18em;
-}
-.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
-  padding-left: 19.5em;
-}
-.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 18em;
-}
-.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
-  padding-right: 19.5em;
-}
-.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 21em;
-}
-.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
-  padding-left: 22.5em;
-}
-.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 21em;
-}
-.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
-  padding-right: 22.5em;
-}
-.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 24em;
-}
-.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
-  padding-left: 25.5em;
-}
-.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 24em;
-}
-.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
-  padding-right: 25.5em;
-}
-.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 27em;
-}
-.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
-  padding-left: 28.5em;
-}
-.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 27em;
-}
-.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
-  padding-right: 28.5em;
-}
-.ql-editor .ql-video {
-  display: block;
-  max-width: 100%;
-}
-.ql-editor .ql-video.ql-align-center {
-  margin: 0 auto;
-}
-.ql-editor .ql-video.ql-align-right {
-  margin: 0 0 0 auto;
-}
-.ql-editor .ql-bg-black {
-  background-color: #000;
-}
-.ql-editor .ql-bg-red {
-  background-color: #e60000;
-}
-.ql-editor .ql-bg-orange {
-  background-color: #f90;
-}
-.ql-editor .ql-bg-yellow {
-  background-color: #ff0;
-}
-.ql-editor .ql-bg-green {
-  background-color: #008a00;
-}
-.ql-editor .ql-bg-blue {
-  background-color: #06c;
-}
-.ql-editor .ql-bg-purple {
-  background-color: #93f;
-}
-.ql-editor .ql-color-white {
-  color: #fff;
-}
-.ql-editor .ql-color-red {
-  color: #e60000;
-}
-.ql-editor .ql-color-orange {
-  color: #f90;
-}
-.ql-editor .ql-color-yellow {
-  color: #ff0;
-}
-.ql-editor .ql-color-green {
-  color: #008a00;
-}
-.ql-editor .ql-color-blue {
-  color: #06c;
-}
-.ql-editor .ql-color-purple {
-  color: #93f;
-}
-.ql-editor .ql-font-serif {
-  font-family: Georgia, Times New Roman, serif;
-}
-.ql-editor .ql-font-monospace {
-  font-family: Monaco, Courier New, monospace;
-}
-.ql-editor .ql-size-small {
-  font-size: 0.75em;
-}
-.ql-editor .ql-size-large {
-  font-size: 1.5em;
-}
-.ql-editor .ql-size-huge {
-  font-size: 2.5em;
-}
-.ql-editor .ql-direction-rtl {
-  direction: rtl;
-  text-align: inherit;
-}
-.ql-editor .ql-align-center {
-  text-align: center;
-}
-.ql-editor .ql-align-justify {
-  text-align: justify;
-}
-.ql-editor .ql-align-right {
-  text-align: right;
-}
-.ql-editor.ql-blank::before {
-  color: rgba(0,0,0,0.6);
-  content: attr(data-placeholder);
-  font-style: italic;
-  left: 15px;
-  pointer-events: none;
-  position: absolute;
-  right: 15px;
-}
-.ql-snow.ql-toolbar:after,
-.ql-snow .ql-toolbar:after {
-  clear: both;
-  content: '';
-  display: table;
-}
-.ql-snow.ql-toolbar button,
-.ql-snow .ql-toolbar button {
-  background: none;
-  border: none;
-  cursor: pointer;
-  display: inline-block;
-  float: left;
-  height: 24px;
-  padding: 3px 5px;
-  width: 28px;
-}
-.ql-snow.ql-toolbar button svg,
-.ql-snow .ql-toolbar button svg {
-  float: left;
-  height: 100%;
-}
-.ql-snow.ql-toolbar button:active:hover,
-.ql-snow .ql-toolbar button:active:hover {
-  outline: none;
-}
-.ql-snow.ql-toolbar input.ql-image[type=file],
-.ql-snow .ql-toolbar input.ql-image[type=file] {
-  display: none;
-}
-.ql-snow.ql-toolbar button:hover,
-.ql-snow .ql-toolbar button:hover,
-.ql-snow.ql-toolbar button:focus,
-.ql-snow .ql-toolbar button:focus,
-.ql-snow.ql-toolbar button.ql-active,
-.ql-snow .ql-toolbar button.ql-active,
-.ql-snow.ql-toolbar .ql-picker-label:hover,
-.ql-snow .ql-toolbar .ql-picker-label:hover,
-.ql-snow.ql-toolbar .ql-picker-label.ql-active,
-.ql-snow .ql-toolbar .ql-picker-label.ql-active,
-.ql-snow.ql-toolbar .ql-picker-item:hover,
-.ql-snow .ql-toolbar .ql-picker-item:hover,
-.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
-.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
-  color: #06c;
-}
-.ql-snow.ql-toolbar button:hover .ql-fill,
-.ql-snow .ql-toolbar button:hover .ql-fill,
-.ql-snow.ql-toolbar button:focus .ql-fill,
-.ql-snow .ql-toolbar button:focus .ql-fill,
-.ql-snow.ql-toolbar button.ql-active .ql-fill,
-.ql-snow .ql-toolbar button.ql-active .ql-fill,
-.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
-.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
-  fill: #06c;
-}
-.ql-snow.ql-toolbar button:hover .ql-stroke,
-.ql-snow .ql-toolbar button:hover .ql-stroke,
-.ql-snow.ql-toolbar button:focus .ql-stroke,
-.ql-snow .ql-toolbar button:focus .ql-stroke,
-.ql-snow.ql-toolbar button.ql-active .ql-stroke,
-.ql-snow .ql-toolbar button.ql-active .ql-stroke,
-.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
-.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
-.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
-.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
-.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
-.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
-  stroke: #06c;
-}
-@media (pointer: coarse) {
-  .ql-snow.ql-toolbar button:hover:not(.ql-active),
-  .ql-snow .ql-toolbar button:hover:not(.ql-active) {
-    color: #444;
-  }
-  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
-  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
-  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
-  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
-    fill: #444;
-  }
-  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
-  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
-    stroke: #444;
-  }
-}
-.ql-snow {
-  box-sizing: border-box;
-}
-.ql-snow * {
-  box-sizing: border-box;
-}
-.ql-snow .ql-hidden {
-  display: none;
-}
-.ql-snow .ql-out-bottom,
-.ql-snow .ql-out-top {
-  visibility: hidden;
-}
-.ql-snow .ql-tooltip {
-  position: absolute;
-  transform: translateY(10px);
-}
-.ql-snow .ql-tooltip a {
-  cursor: pointer;
-  text-decoration: none;
-}
-.ql-snow .ql-tooltip.ql-flip {
-  transform: translateY(-10px);
-}
-.ql-snow .ql-formats {
-  display: inline-block;
-  vertical-align: middle;
-}
-.ql-snow .ql-formats:after {
-  clear: both;
-  content: '';
-  display: table;
-}
-.ql-snow .ql-stroke {
-  fill: none;
-  stroke: #444;
-  stroke-linecap: round;
-  stroke-linejoin: round;
-  stroke-width: 2;
-}
-.ql-snow .ql-stroke-miter {
-  fill: none;
-  stroke: #444;
-  stroke-miterlimit: 10;
-  stroke-width: 2;
-}
-.ql-snow .ql-fill,
-.ql-snow .ql-stroke.ql-fill {
-  fill: #444;
-}
-.ql-snow .ql-empty {
-  fill: none;
-}
-.ql-snow .ql-even {
-  fill-rule: evenodd;
-}
-.ql-snow .ql-thin,
-.ql-snow .ql-stroke.ql-thin {
-  stroke-width: 1;
-}
-.ql-snow .ql-transparent {
-  opacity: 0.4;
-}
-.ql-snow .ql-direction svg:last-child {
-  display: none;
-}
-.ql-snow .ql-direction.ql-active svg:last-child {
-  display: inline;
-}
-.ql-snow .ql-direction.ql-active svg:first-child {
-  display: none;
-}
-.ql-snow .ql-editor h1 {
-  font-size: 2em;
-}
-.ql-snow .ql-editor h2 {
-  font-size: 1.5em;
-}
-.ql-snow .ql-editor h3 {
-  font-size: 1.17em;
-}
-.ql-snow .ql-editor h4 {
-  font-size: 1em;
-}
-.ql-snow .ql-editor h5 {
-  font-size: 0.83em;
-}
-.ql-snow .ql-editor h6 {
-  font-size: 0.67em;
-}
-.ql-snow .ql-editor a {
-  text-decoration: underline;
-}
-.ql-snow .ql-editor blockquote {
-  border-left: 4px solid #ccc;
-  margin-bottom: 5px;
-  margin-top: 5px;
-  padding-left: 16px;
-}
-.ql-snow .ql-editor code,
-.ql-snow .ql-editor pre {
-  background-color: #f0f0f0;
-  border-radius: 3px;
-}
-.ql-snow .ql-editor pre {
-  white-space: pre-wrap;
-  margin-bottom: 5px;
-  margin-top: 5px;
-  padding: 5px 10px;
-}
-.ql-snow .ql-editor code {
-  font-size: 85%;
-  padding: 2px 4px;
-}
-.ql-snow .ql-editor pre.ql-syntax {
-  background-color: #23241f;
-  color: #f8f8f2;
-  overflow: visible;
-}
-.ql-snow .ql-editor img {
-  max-width: 100%;
-}
-.ql-snow .ql-picker {
-  color: #444;
-  display: inline-block;
-  float: left;
-  font-size: 14px;
-  font-weight: 500;
-  height: 24px;
-  position: relative;
-  vertical-align: middle;
-}
-.ql-snow .ql-picker-label {
-  cursor: pointer;
-  display: inline-block;
-  height: 100%;
-  padding-left: 8px;
-  padding-right: 2px;
-  position: relative;
-  width: 100%;
-}
-.ql-snow .ql-picker-label::before {
-  display: inline-block;
-  line-height: 22px;
-}
-.ql-snow .ql-picker-options {
-  background-color: #fff;
-  display: none;
-  min-width: 100%;
-  padding: 4px 8px;
-  position: absolute;
-  white-space: nowrap;
-}
-.ql-snow .ql-picker-options .ql-picker-item {
-  cursor: pointer;
-  display: block;
-  padding-bottom: 5px;
-  padding-top: 5px;
-}
-.ql-snow .ql-picker.ql-expanded .ql-picker-label {
-  color: #ccc;
-  z-index: 2;
-}
-.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
-  fill: #ccc;
-}
-.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
-  stroke: #ccc;
-}
-.ql-snow .ql-picker.ql-expanded .ql-picker-options {
-  display: block;
-  margin-top: -1px;
-  top: 100%;
-  z-index: 1;
-}
-.ql-snow .ql-color-picker,
-.ql-snow .ql-icon-picker {
-  width: 28px;
-}
-.ql-snow .ql-color-picker .ql-picker-label,
-.ql-snow .ql-icon-picker .ql-picker-label {
-  padding: 2px 4px;
-}
-.ql-snow .ql-color-picker .ql-picker-label svg,
-.ql-snow .ql-icon-picker .ql-picker-label svg {
-  right: 4px;
-}
-.ql-snow .ql-icon-picker .ql-picker-options {
-  padding: 4px 0px;
-}
-.ql-snow .ql-icon-picker .ql-picker-item {
-  height: 24px;
-  width: 24px;
-  padding: 2px 4px;
-}
-.ql-snow .ql-color-picker .ql-picker-options {
-  padding: 3px 5px;
-  width: 152px;
-}
-.ql-snow .ql-color-picker .ql-picker-item {
-  border: 1px solid transparent;
-  float: left;
-  height: 16px;
-  margin: 2px;
-  padding: 0px;
-  width: 16px;
-}
-.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
-  position: absolute;
-  margin-top: -9px;
-  right: 0;
-  top: 50%;
-  width: 18px;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
-  content: attr(data-label);
-}
-.ql-snow .ql-picker.ql-header {
-  width: 98px;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item::before {
-  content: 'Normal';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  content: 'Heading 1';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  content: 'Heading 2';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  content: 'Heading 3';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  content: 'Heading 4';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  content: 'Heading 5';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  content: 'Heading 6';
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
-  font-size: 2em;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
-  font-size: 1.5em;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
-  font-size: 1.17em;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
-  font-size: 1em;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
-  font-size: 0.83em;
-}
-.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
-  font-size: 0.67em;
-}
-.ql-snow .ql-picker.ql-font {
-  width: 108px;
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item::before {
-  content: 'Sans Serif';
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
-  content: 'Serif';
-}
-.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
-  content: 'Monospace';
-}
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
-  font-family: Georgia, Times New Roman, serif;
-}
-.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
-  font-family: Monaco, Courier New, monospace;
-}
-.ql-snow .ql-picker.ql-size {
-  width: 98px;
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item::before {
-  content: 'Normal';
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
-  content: 'Small';
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
-  content: 'Large';
-}
-.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
-  content: 'Huge';
-}
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
-  font-size: 10px;
-}
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
-  font-size: 18px;
-}
-.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
-  font-size: 32px;
-}
-.ql-snow .ql-color-picker.ql-background .ql-picker-item {
-  background-color: #fff;
-}
-.ql-snow .ql-color-picker.ql-color .ql-picker-item {
-  background-color: #000;
-}
-.ql-toolbar.ql-snow {
-  border: 1px solid #ccc;
-  box-sizing: border-box;
-  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
-  padding: 8px;
-}
-.ql-toolbar.ql-snow .ql-formats {
-  margin-right: 15px;
-}
-.ql-toolbar.ql-snow .ql-picker-label {
-  border: 1px solid transparent;
-}
-.ql-toolbar.ql-snow .ql-picker-options {
-  border: 1px solid transparent;
-  box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
-}
-.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
-  border-color: #ccc;
-}
-.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
-  border-color: #ccc;
-}
-.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
-.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
-  border-color: #000;
-}
-.ql-toolbar.ql-snow + .ql-container.ql-snow {
-  border-top: 0px;
-}
-.ql-snow .ql-tooltip {
-  background-color: #fff;
-  border: 1px solid #ccc;
-  box-shadow: 0px 0px 5px #ddd;
-  color: #444;
-  padding: 5px 12px;
-  white-space: nowrap;
-}
-.ql-snow .ql-tooltip::before {
-  content: "Visit URL:";
-  line-height: 26px;
-  margin-right: 8px;
-}
-.ql-snow .ql-tooltip input[type=text] {
-  display: none;
-  border: 1px solid #ccc;
-  font-size: 13px;
-  height: 26px;
-  margin: 0px;
-  padding: 3px 5px;
-  width: 170px;
-}
-.ql-snow .ql-tooltip a.ql-preview {
-  display: inline-block;
-  max-width: 200px;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-  vertical-align: top;
-}
-.ql-snow .ql-tooltip a.ql-action::after {
-  border-right: 1px solid #ccc;
-  content: 'Edit';
-  margin-left: 16px;
-  padding-right: 8px;
-}
-.ql-snow .ql-tooltip a.ql-remove::before {
-  content: 'Remove';
-  margin-left: 8px;
-}
-.ql-snow .ql-tooltip a {
-  line-height: 26px;
-}
-.ql-snow .ql-tooltip.ql-editing a.ql-preview,
-.ql-snow .ql-tooltip.ql-editing a.ql-remove {
-  display: none;
-}
-.ql-snow .ql-tooltip.ql-editing input[type=text] {
-  display: inline-block;
-}
-.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
-  border-right: 0px;
-  content: 'Save';
-  padding-right: 0px;
-}
-.ql-snow .ql-tooltip[data-mode=link]::before {
-  content: "Enter link:";
-}
-.ql-snow .ql-tooltip[data-mode=formula]::before {
-  content: "Enter formula:";
-}
-.ql-snow .ql-tooltip[data-mode=video]::before {
-  content: "Enter video:";
-}
-.ql-snow a {
-  color: #06c;
-}
-.ql-container.ql-snow {
-  border: 1px solid #ccc;
-}

+ 0 - 16
src/components/noData/noData.vue

@@ -1,16 +0,0 @@
-<template>
-  <view class="no-data">
-    <slot />
-  </view>
-</template>
-
-<style lang="scss" scoped>
-.no-data {
-  height: calc(100% - 92rpx);
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  font-size: 32rpx;
-  color: #bbb;
-}
-</style>

+ 0 - 81
src/components/open-app/open-app.vue

@@ -1,81 +0,0 @@
-<template>
-  <view>
-    <view class="open_App">
-      <view style="display: flex; align-items: center;">
-        <img src="@/static/logo.png" />
-        <text style="font-weight: 600;">OhPlay猫王妙播</text>
-      </view>
-      <uni-button type="submit" @click="open">打开App</uni-button>
-    </view>
-    <view style="height: 88rpx" />
-  </view>
-</template>
-
-<script>
-export default {
-  props:{
-    // 界面类型
-    page: Number,
-    // 频道类型
-    channel: Number,
-    // 音频类型
-    audioType: Number,
-    // 音频Id
-    audioId: Number
-  },
-  watch:{
-    channel(val) {
-      return val
-    },
-    audioType(val) {
-      return val
-    },
-    audioId(val) {
-      return val
-    }
-  },
-  methods: {
-    // 打开app
-    open(){
-      this.openApp(this.page, this.channel, this.audioType, this.audioId)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.open_App {
-  position: fixed;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 120rpx;
-  background: rgba(255, 255, 255, 0.15);
-  backdrop-filter: blur(16px);
-  padding: 0 32rpx;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  z-index: 99;
-
-  img {
-    width: 64rpx;
-    height: 64rpx;
-    border-radius: 10rpx;
-  }
-
-  text {
-    font-size: 32rpx;
-    margin-left: 20rpx;
-  }
-
-  uni-button {
-    width: 160rpx;
-    height: 56rpx;
-    line-height: 56rpx;
-    font-size: 26rpx;
-    border-radius: 50rpx;
-    margin: 0;
-  }
-}
-</style>

+ 0 - 317
src/components/uni-col/uni-col.vue

@@ -1,317 +0,0 @@
-<template>
-	<!-- #ifndef APP-NVUE -->
-	<view :class="['uni-col', sizeClass, pointClassList]" :style="{
-		paddingLeft:`${Number(gutter)}rpx`,
-		paddingRight:`${Number(gutter)}rpx`,
-	}">
-		<slot></slot>
-	</view>
-	<!-- #endif -->
-	<!-- #ifdef APP-NVUE -->
-	<!-- 在nvue上,类名样式不生效,换为style -->
-	<!-- 设置right正值失效,设置 left 负值 -->
-	<view :class="['uni-col']" :style="{
-		paddingLeft:`${Number(gutter)}rpx`,
-		paddingRight:`${Number(gutter)}rpx`,
-		width:`${nvueWidth}rpx`,
-		position:'relative',
-		marginLeft:`${marginLeft}rpx`,
-		left:`${right === 0 ? left : -right}rpx`
-	}">
-		<slot></slot>
-	</view>
-	<!-- #endif -->
-</template>
-
-<script>
-	/**
-	 * Col	布局-列
-	 * @description	搭配uni-row使用,构建布局。
-	 * @tutorial	https://ext.dcloud.net.cn/plugin?id=3958
-	 *
-	 * @property	{span} type = Number 栅格占据的列数
-	 * 						默认 24
-	 * @property	{offset} type = Number 栅格左侧的间隔格数
-	 * @property	{push} type = Number 栅格向右移动格数
-	 * @property	{pull} type = Number 栅格向左移动格数
-	 * @property	{xs} type = [Number, Object] <768px 响应式栅格数或者栅格属性对象
-	 * 						@description	Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
-	 * @property	{sm} type = [Number, Object] ≥768px 响应式栅格数或者栅格属性对象
-	 * 						@description	Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
-	 * @property	{md} type = [Number, Object] ≥992px 响应式栅格数或者栅格属性对象
-	 * 						@description	Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
-	 * @property	{lg} type = [Number, Object] ≥1200px 响应式栅格数或者栅格属性对象
-	 * 						@description	Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
-	 * @property	{xl} type = [Number, Object] ≥1920px 响应式栅格数或者栅格属性对象
-	 * 						@description	Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
-	 */
-	const ComponentClass = 'uni-col';
-
-	// -1 默认值,因为在微信小程序端只给Number会有默认值0
-	export default {
-		name: 'uniCol',
-		// #ifdef MP-WEIXIN
-		options: {
-			virtualHost: true // 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现
-		},
-		// #endif
-		props: {
-			span: {
-				type: Number,
-				default: 24
-			},
-			offset: {
-				type: Number,
-				default: -1
-			},
-			pull: {
-				type: Number,
-				default: -1
-			},
-			push: {
-				type: Number,
-				default: -1
-			},
-			xs: [Number, Object],
-			sm: [Number, Object],
-			md: [Number, Object],
-			lg: [Number, Object],
-			xl: [Number, Object]
-		},
-		data() {
-			return {
-				gutter: 0,
-				sizeClass: '',
-				parentWidth: 0,
-				nvueWidth: 0,
-				marginLeft: 0,
-				right: 0,
-				left: 0
-			}
-		},
-		created() {
-			// 字节小程序中,在computed中读取$parent为undefined
-			let parent = this.$parent;
-
-			while (parent && parent.$options.componentName !== 'uniRow') {
-				parent = parent.$parent;
-			}
-
-			this.updateGutter(parent.gutter)
-			parent.$watch('gutter', (gutter) => {
-				this.updateGutter(gutter)
-			})
-
-			// #ifdef APP-NVUE
-			this.updateNvueWidth(parent.width)
-			parent.$watch('width', (width) => {
-				this.updateNvueWidth(width)
-			})
-			// #endif
-		},
-		computed: {
-			sizeList() {
-				let {
-					span,
-					offset,
-					pull,
-					push
-				} = this;
-
-				return {
-					span,
-					offset,
-					pull,
-					push
-				}
-			},
-			// #ifndef APP-NVUE
-			pointClassList() {
-				let classList = [];
-
-				['xs', 'sm', 'md', 'lg', 'xl'].forEach(point => {
-					const props = this[point];
-					if (typeof props === 'number') {
-						classList.push(`${ComponentClass}-${point}-${props}`)
-					} else if (typeof props === 'object' && props) {
-						Object.keys(props).forEach(pointProp => {
-							classList.push(
-								pointProp === 'span' ?
-								`${ComponentClass}-${point}-${props[pointProp]}` :
-								`${ComponentClass}-${point}-${pointProp}-${props[pointProp]}`
-							)
-						})
-					}
-				});
-
-				// 支付宝小程序使用 :class=[ ['a','b'] ],渲染错误
-				return classList.join(' ');
-			}
-			// #endif
-		},
-		methods: {
-			updateGutter(parentGutter) {
-				parentGutter = Number(parentGutter);
-				if (!isNaN(parentGutter)) {
-					this.gutter = parentGutter / 2
-				}
-			},
-			// #ifdef APP-NVUE
-			updateNvueWidth(width) {
-				// 用于在nvue端,span,offset,pull,push的计算
-				this.parentWidth = width;
-				['span', 'offset', 'pull', 'push'].forEach(size => {
-					const curSize = this[size];
-					if ((curSize || curSize === 0) && curSize !== -1) {
-						let RPX = 1 / 24 * curSize * width
-						RPX = Number(RPX);
-						switch (size) {
-							case 'span':
-								this.nvueWidth = RPX
-								break;
-							case 'offset':
-								this.marginLeft = RPX
-								break;
-							case 'pull':
-								this.right = RPX
-								break;
-							case 'push':
-								this.left = RPX
-								break;
-						}
-					}
-				});
-			}
-			// #endif
-		},
-		watch: {
-			sizeList: {
-				immediate: true,
-				handler(newVal) {
-					// #ifndef APP-NVUE
-					let classList = [];
-					for (let size in newVal) {
-						const curSize = newVal[size];
-						if ((curSize || curSize === 0) && curSize !== -1) {
-							classList.push(
-								size === 'span' ?
-								`${ComponentClass}-${curSize}` :
-								`${ComponentClass}-${size}-${curSize}`
-							)
-						}
-					}
-					// 支付宝小程序使用 :class=[ ['a','b'] ],渲染错误
-					this.sizeClass = classList.join(' ');
-					// #endif
-					// #ifdef APP-NVUE
-					this.updateNvueWidth(this.parentWidth);
-					// #endif
-				}
-			}
-		}
-	}
-</script>
-
-<style lang='scss' scoped>
-	/* breakpoints */
-	$--sm: 768px !default;
-	$--md: 992px !default;
-	$--lg: 1200px !default;
-	$--xl: 1920px !default;
-
-	$breakpoints: ('xs' : (max-width: $--sm - 1),
-	'sm' : (min-width: $--sm),
-	'md' : (min-width: $--md),
-	'lg' : (min-width: $--lg),
-	'xl' : (min-width: $--xl));
-
-	$layout-namespace: ".uni-";
-	$col: $layout-namespace+"col";
-
-	@function getSize($size) {
-		/* TODO 1/24 * $size * 100 * 1%; 使用计算后的值,为了解决 vue3 控制台报错 */
-		@return 0.04166666666 * $size * 100 * 1%;
-	}
-
-	@mixin res($key, $map:$breakpoints) {
-		@if map-has-key($map, $key) {
-			@media screen and #{inspect(map-get($map,$key))} {
-				@content;
-			}
-		}
-
-		@else {
-			@warn "Undeinfed point: `#{$key}`";
-		}
-	}
-
-	/* #ifndef APP-NVUE */
-	#{$col} {
-		float: left;
-		box-sizing: border-box;
-	}
-
-	#{$col}-0 {
-		/* #ifdef APP-NVUE */
-		width: 0;
-		height: 0;
-		margin-top: 0;
-		margin-right: 0;
-		margin-bottom: 0;
-		margin-left: 0;
-		/* #endif */
-		/* #ifndef APP-NVUE */
-		display: none;
-		/* #endif */
-	}
-
-	@for $i from 0 through 24 {
-		#{$col}-#{$i} {
-			width: getSize($i);
-		}
-
-		#{$col}-offset-#{$i} {
-			margin-left: getSize($i);
-		}
-
-		#{$col}-pull-#{$i} {
-			position: relative;
-			right: getSize($i);
-		}
-
-		#{$col}-push-#{$i} {
-			position: relative;
-			left: getSize($i);
-		}
-	}
-
-	@each $point in map-keys($breakpoints) {
-		@include res($point) {
-			#{$col}-#{$point}-0 {
-				display: none;
-			}
-
-			@for $i from 0 through 24 {
-				#{$col}-#{$point}-#{$i} {
-					width: getSize($i);
-				}
-
-				#{$col}-#{$point}-offset-#{$i} {
-					margin-left: getSize($i);
-				}
-
-				#{$col}-#{$point}-pull-#{$i} {
-					position: relative;
-					right: getSize($i);
-				}
-
-				#{$col}-#{$point}-push-#{$i} {
-					position: relative;
-					left: getSize($i);
-				}
-			}
-		}
-	}
-
-	/* #endif */
-</style>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1169
src/components/uni-icons/icons.js


+ 0 - 96
src/components/uni-icons/uni-icons.vue

@@ -1,96 +0,0 @@
-<template>
-	<!-- #ifdef APP-NVUE -->
-	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" @click="_onClick">{{unicode}}</text>
-	<!-- #endif -->
-	<!-- #ifndef APP-NVUE -->
-	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick"></text>
-	<!-- #endif -->
-</template>
-
-<script>
-	import icons from './icons.js';
-	const getVal = (val) => {
-		const reg = /^[0-9]*$/g
-		return (typeof val === 'number' || reg.test(val) )? val + 'px' : val;
-	} 
-	// #ifdef APP-NVUE
-	var domModule = weex.requireModule('dom');
-	import iconUrl from './uniicons.ttf'
-	domModule.addRule('fontFace', {
-		'fontFamily': "uniicons",
-		'src': "url('"+iconUrl+"')"
-	});
-	// #endif
-
-	/**
-	 * Icons 图标
-	 * @description 用于展示 icons 图标
-	 * @tutorial https://ext.dcloud.net.cn/plugin?id=28
-	 * @property {Number} size 图标大小
-	 * @property {String} type 图标图案,参考示例
-	 * @property {String} color 图标颜色
-	 * @property {String} customPrefix 自定义图标
-	 * @event {Function} click 点击 Icon 触发事件
-	 */
-	export default {
-		name: 'UniIcons',
-		emits:['click'],
-		props: {
-			type: {
-				type: String,
-				default: ''
-			},
-			color: {
-				type: String,
-				default: '#333333'
-			},
-			size: {
-				type: [Number, String],
-				default: 16
-			},
-			customPrefix:{
-				type: String,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				icons: icons.glyphs
-			}
-		},
-		computed:{
-			unicode(){
-				let code = this.icons.find(v=>v.font_class === this.type)
-				if(code){
-					return unescape(`%u${code.unicode}`)
-				}
-				return ''
-			},
-			iconSize(){
-				return getVal(this.size)
-			}
-		},
-		methods: {
-			_onClick() {
-				this.$emit('click')
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	/* #ifndef APP-NVUE */
-	@import './uniicons.css';
-	@font-face {
-		font-family: uniicons;
-		src: url('./uniicons.ttf') format('truetype');
-	}
-
-	/* #endif */
-	.uni-icons {
-		font-family: uniicons;
-		text-decoration: none;
-		text-align: center;
-	}
-
-</style>

+ 0 - 663
src/components/uni-icons/uniicons.css

@@ -1,663 +0,0 @@
-.uniui-color:before {
-  content: "\e6cf";
-}
-
-.uniui-wallet:before {
-  content: "\e6b1";
-}
-
-.uniui-settings-filled:before {
-  content: "\e6ce";
-}
-
-.uniui-auth-filled:before {
-  content: "\e6cc";
-}
-
-.uniui-shop-filled:before {
-  content: "\e6cd";
-}
-
-.uniui-staff-filled:before {
-  content: "\e6cb";
-}
-
-.uniui-vip-filled:before {
-  content: "\e6c6";
-}
-
-.uniui-plus-filled:before {
-  content: "\e6c7";
-}
-
-.uniui-folder-add-filled:before {
-  content: "\e6c8";
-}
-
-.uniui-color-filled:before {
-  content: "\e6c9";
-}
-
-.uniui-tune-filled:before {
-  content: "\e6ca";
-}
-
-.uniui-calendar-filled:before {
-  content: "\e6c0";
-}
-
-.uniui-notification-filled:before {
-  content: "\e6c1";
-}
-
-.uniui-wallet-filled:before {
-  content: "\e6c2";
-}
-
-.uniui-medal-filled:before {
-  content: "\e6c3";
-}
-
-.uniui-gift-filled:before {
-  content: "\e6c4";
-}
-
-.uniui-fire-filled:before {
-  content: "\e6c5";
-}
-
-.uniui-refreshempty:before {
-  content: "\e6bf";
-}
-
-.uniui-location-filled:before {
-  content: "\e6af";
-}
-
-.uniui-person-filled:before {
-  content: "\e69d";
-}
-
-.uniui-personadd-filled:before {
-  content: "\e698";
-}
-
-.uniui-back:before {
-  content: "\e6b9";
-}
-
-.uniui-forward:before {
-  content: "\e6ba";
-}
-
-.uniui-arrow-right:before {
-  content: "\e6bb";
-}
-
-.uniui-arrowthinright:before {
-  content: "\e6bb";
-}
-
-.uniui-arrow-left:before {
-  content: "\e6bc";
-}
-
-.uniui-arrowthinleft:before {
-  content: "\e6bc";
-}
-
-.uniui-arrow-up:before {
-  content: "\e6bd";
-}
-
-.uniui-arrowthinup:before {
-  content: "\e6bd";
-}
-
-.uniui-arrow-down:before {
-  content: "\e6be";
-}
-
-.uniui-arrowthindown:before {
-  content: "\e6be";
-}
-
-.uniui-bottom:before {
-  content: "\e6b8";
-}
-
-.uniui-arrowdown:before {
-  content: "\e6b8";
-}
-
-.uniui-right:before {
-  content: "\e6b5";
-}
-
-.uniui-arrowright:before {
-  content: "\e6b5";
-}
-
-.uniui-top:before {
-  content: "\e6b6";
-}
-
-.uniui-arrowup:before {
-  content: "\e6b6";
-}
-
-.uniui-left:before {
-  content: "\e6b7";
-}
-
-.uniui-arrowleft:before {
-  content: "\e6b7";
-}
-
-.uniui-eye:before {
-  content: "\e651";
-}
-
-.uniui-eye-filled:before {
-  content: "\e66a";
-}
-
-.uniui-eye-slash:before {
-  content: "\e6b3";
-}
-
-.uniui-eye-slash-filled:before {
-  content: "\e6b4";
-}
-
-.uniui-info-filled:before {
-  content: "\e649";
-}
-
-.uniui-reload:before {
-  content: "\e6b2";
-}
-
-.uniui-micoff-filled:before {
-  content: "\e6b0";
-}
-
-.uniui-map-pin-ellipse:before {
-  content: "\e6ac";
-}
-
-.uniui-map-pin:before {
-  content: "\e6ad";
-}
-
-.uniui-location:before {
-  content: "\e6ae";
-}
-
-.uniui-starhalf:before {
-  content: "\e683";
-}
-
-.uniui-star:before {
-  content: "\e688";
-}
-
-.uniui-star-filled:before {
-  content: "\e68f";
-}
-
-.uniui-calendar:before {
-  content: "\e6a0";
-}
-
-.uniui-fire:before {
-  content: "\e6a1";
-}
-
-.uniui-medal:before {
-  content: "\e6a2";
-}
-
-.uniui-font:before {
-  content: "\e6a3";
-}
-
-.uniui-gift:before {
-  content: "\e6a4";
-}
-
-.uniui-link:before {
-  content: "\e6a5";
-}
-
-.uniui-notification:before {
-  content: "\e6a6";
-}
-
-.uniui-staff:before {
-  content: "\e6a7";
-}
-
-.uniui-vip:before {
-  content: "\e6a8";
-}
-
-.uniui-folder-add:before {
-  content: "\e6a9";
-}
-
-.uniui-tune:before {
-  content: "\e6aa";
-}
-
-.uniui-auth:before {
-  content: "\e6ab";
-}
-
-.uniui-person:before {
-  content: "\e699";
-}
-
-.uniui-email-filled:before {
-  content: "\e69a";
-}
-
-.uniui-phone-filled:before {
-  content: "\e69b";
-}
-
-.uniui-phone:before {
-  content: "\e69c";
-}
-
-.uniui-email:before {
-  content: "\e69e";
-}
-
-.uniui-personadd:before {
-  content: "\e69f";
-}
-
-.uniui-chatboxes-filled:before {
-  content: "\e692";
-}
-
-.uniui-contact:before {
-  content: "\e693";
-}
-
-.uniui-chatbubble-filled:before {
-  content: "\e694";
-}
-
-.uniui-contact-filled:before {
-  content: "\e695";
-}
-
-.uniui-chatboxes:before {
-  content: "\e696";
-}
-
-.uniui-chatbubble:before {
-  content: "\e697";
-}
-
-.uniui-upload-filled:before {
-  content: "\e68e";
-}
-
-.uniui-upload:before {
-  content: "\e690";
-}
-
-.uniui-weixin:before {
-  content: "\e691";
-}
-
-.uniui-compose:before {
-  content: "\e67f";
-}
-
-.uniui-qq:before {
-  content: "\e680";
-}
-
-.uniui-download-filled:before {
-  content: "\e681";
-}
-
-.uniui-pyq:before {
-  content: "\e682";
-}
-
-.uniui-sound:before {
-  content: "\e684";
-}
-
-.uniui-trash-filled:before {
-  content: "\e685";
-}
-
-.uniui-sound-filled:before {
-  content: "\e686";
-}
-
-.uniui-trash:before {
-  content: "\e687";
-}
-
-.uniui-videocam-filled:before {
-  content: "\e689";
-}
-
-.uniui-spinner-cycle:before {
-  content: "\e68a";
-}
-
-.uniui-weibo:before {
-  content: "\e68b";
-}
-
-.uniui-videocam:before {
-  content: "\e68c";
-}
-
-.uniui-download:before {
-  content: "\e68d";
-}
-
-.uniui-help:before {
-  content: "\e679";
-}
-
-.uniui-navigate-filled:before {
-  content: "\e67a";
-}
-
-.uniui-plusempty:before {
-  content: "\e67b";
-}
-
-.uniui-smallcircle:before {
-  content: "\e67c";
-}
-
-.uniui-minus-filled:before {
-  content: "\e67d";
-}
-
-.uniui-micoff:before {
-  content: "\e67e";
-}
-
-.uniui-closeempty:before {
-  content: "\e66c";
-}
-
-.uniui-clear:before {
-  content: "\e66d";
-}
-
-.uniui-navigate:before {
-  content: "\e66e";
-}
-
-.uniui-minus:before {
-  content: "\e66f";
-}
-
-.uniui-image:before {
-  content: "\e670";
-}
-
-.uniui-mic:before {
-  content: "\e671";
-}
-
-.uniui-paperplane:before {
-  content: "\e672";
-}
-
-.uniui-close:before {
-  content: "\e673";
-}
-
-.uniui-help-filled:before {
-  content: "\e674";
-}
-
-.uniui-paperplane-filled:before {
-  content: "\e675";
-}
-
-.uniui-plus:before {
-  content: "\e676";
-}
-
-.uniui-mic-filled:before {
-  content: "\e677";
-}
-
-.uniui-image-filled:before {
-  content: "\e678";
-}
-
-.uniui-locked-filled:before {
-  content: "\e668";
-}
-
-.uniui-info:before {
-  content: "\e669";
-}
-
-.uniui-locked:before {
-  content: "\e66b";
-}
-
-.uniui-camera-filled:before {
-  content: "\e658";
-}
-
-.uniui-chat-filled:before {
-  content: "\e659";
-}
-
-.uniui-camera:before {
-  content: "\e65a";
-}
-
-.uniui-circle:before {
-  content: "\e65b";
-}
-
-.uniui-checkmarkempty:before {
-  content: "\e65c";
-}
-
-.uniui-chat:before {
-  content: "\e65d";
-}
-
-.uniui-circle-filled:before {
-  content: "\e65e";
-}
-
-.uniui-flag:before {
-  content: "\e65f";
-}
-
-.uniui-flag-filled:before {
-  content: "\e660";
-}
-
-.uniui-gear-filled:before {
-  content: "\e661";
-}
-
-.uniui-home:before {
-  content: "\e662";
-}
-
-.uniui-home-filled:before {
-  content: "\e663";
-}
-
-.uniui-gear:before {
-  content: "\e664";
-}
-
-.uniui-smallcircle-filled:before {
-  content: "\e665";
-}
-
-.uniui-map-filled:before {
-  content: "\e666";
-}
-
-.uniui-map:before {
-  content: "\e667";
-}
-
-.uniui-refresh-filled:before {
-  content: "\e656";
-}
-
-.uniui-refresh:before {
-  content: "\e657";
-}
-
-.uniui-cloud-upload:before {
-  content: "\e645";
-}
-
-.uniui-cloud-download-filled:before {
-  content: "\e646";
-}
-
-.uniui-cloud-download:before {
-  content: "\e647";
-}
-
-.uniui-cloud-upload-filled:before {
-  content: "\e648";
-}
-
-.uniui-redo:before {
-  content: "\e64a";
-}
-
-.uniui-images-filled:before {
-  content: "\e64b";
-}
-
-.uniui-undo-filled:before {
-  content: "\e64c";
-}
-
-.uniui-more:before {
-  content: "\e64d";
-}
-
-.uniui-more-filled:before {
-  content: "\e64e";
-}
-
-.uniui-undo:before {
-  content: "\e64f";
-}
-
-.uniui-images:before {
-  content: "\e650";
-}
-
-.uniui-paperclip:before {
-  content: "\e652";
-}
-
-.uniui-settings:before {
-  content: "\e653";
-}
-
-.uniui-search:before {
-  content: "\e654";
-}
-
-.uniui-redo-filled:before {
-  content: "\e655";
-}
-
-.uniui-list:before {
-  content: "\e644";
-}
-
-.uniui-mail-open-filled:before {
-  content: "\e63a";
-}
-
-.uniui-hand-down-filled:before {
-  content: "\e63c";
-}
-
-.uniui-hand-down:before {
-  content: "\e63d";
-}
-
-.uniui-hand-up-filled:before {
-  content: "\e63e";
-}
-
-.uniui-hand-up:before {
-  content: "\e63f";
-}
-
-.uniui-heart-filled:before {
-  content: "\e641";
-}
-
-.uniui-mail-open:before {
-  content: "\e643";
-}
-
-.uniui-heart:before {
-  content: "\e639";
-}
-
-.uniui-loop:before {
-  content: "\e633";
-}
-
-.uniui-pulldown:before {
-  content: "\e632";
-}
-
-.uniui-scan:before {
-  content: "\e62a";
-}
-
-.uniui-bars:before {
-  content: "\e627";
-}
-
-.uniui-cart-filled:before {
-  content: "\e629";
-}
-
-.uniui-checkbox:before {
-  content: "\e62b";
-}
-
-.uniui-checkbox-filled:before {
-  content: "\e62c";
-}
-
-.uniui-shop:before {
-  content: "\e62f";
-}
-
-.uniui-headphones:before {
-  content: "\e630";
-}
-
-.uniui-cart:before {
-  content: "\e631";
-}

BIN
src/components/uni-icons/uniicons.ttf


+ 0 - 190
src/components/uni-row/uni-row.vue

@@ -1,190 +0,0 @@
-<template>
-	<view :class="[ 'uni-row', typeClass , justifyClass, alignClass, ]" :style="{
-		marginLeft:`${Number(marginValue)}rpx`,
-		marginRight:`${Number(marginValue)}rpx`,
-	}">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	const ComponentClass = 'uni-row';
-	const modifierSeparator = '--';
-	/**
-	 * Row	布局-行
-	 * @description	流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。
-	 * @tutorial	https://ext.dcloud.net.cn/plugin?id=3958
-	 *
-	 * @property	{gutter} type = Number 栅格间隔
-	 * @property	{justify} type = String flex 布局下的水平排列方式
-	 * 						可选	start/end/center/space-around/space-between	start
-	 * 						默认值	start
-	 * @property	{align} type = String flex 布局下的垂直排列方式
-	 * 						可选	top/middle/bottom
-	 * 						默认值	top
-	 * @property	{width} type = String|Number nvue下需要自行配置宽度用于计算
-	 * 						默认值 750
-	 */
-
-
-	export default {
-		name: 'uniRow',
-		componentName: 'uniRow',
-		// #ifdef MP-WEIXIN
-		options: {
-			virtualHost: true // 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现,可使用flex布局
-		},
-		// #endif
-		props: {
-			type: String,
-			gutter: Number,
-			justify: {
-				type: String,
-				default: 'start'
-			},
-			align: {
-				type: String,
-				default: 'top'
-			},
-			// nvue如果使用span等属性,需要配置宽度
-			width: {
-				type: [String, Number],
-				default: 750
-			}
-		},
-		created() {
-			// #ifdef APP-NVUE
-			this.type = 'flex';
-			// #endif
-		},
-		computed: {
-			marginValue() {
-				// #ifndef APP-NVUE
-				if (this.gutter) {
-					return -(this.gutter / 2);
-				}
-				// #endif
-				return 0;
-			},
-			typeClass() {
-				return this.type === 'flex' ? `${ComponentClass + modifierSeparator}flex` : '';
-			},
-			justifyClass() {
-				return this.justify !== 'start' ? `${ComponentClass + modifierSeparator}flex-justify-${this.justify}` : ''
-			},
-			alignClass() {
-				return this.align !== 'top' ? `${ComponentClass + modifierSeparator}flex-align-${this.align}` : ''
-			}
-		}
-	};
-</script>
-
-<style lang="scss">
-	$layout-namespace: ".uni-";
-	$row:$layout-namespace+"row";
-	$modifier-separator: "--";
-
-	@mixin utils-clearfix {
-		$selector: &;
-
-		@at-root {
-
-			/* #ifndef APP-NVUE */
-			#{$selector}::before,
-			#{$selector}::after {
-				display: table;
-				content: "";
-			}
-
-			#{$selector}::after {
-				clear: both;
-			}
-
-			/* #endif */
-		}
-
-	}
-
-	@mixin utils-flex ($direction: row) {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: $direction;
-	}
-
-	@mixin set-flex($state) {
-		@at-root &-#{$state} {
-			@content
-		}
-	}
-
-	#{$row} {
-		position: relative;
-		flex-direction: row;
-
-		/* #ifdef APP-NVUE */
-		flex: 1;
-		/* #endif */
-
-		/* #ifndef APP-NVUE */
-		box-sizing: border-box;
-		/* #endif */
-
-		// 非nvue使用float布局
-		@include utils-clearfix;
-
-		// 在QQ、字节、百度小程序平台,编译后使用shadow dom,不可使用flex布局,使用float
-		@at-root {
-
-			/* #ifndef MP-QQ || MP-TOUTIAO || MP-BAIDU */
-			&#{$modifier-separator}flex {
-				@include utils-flex;
-				flex-wrap: wrap;
-				flex: 1;
-
-				&:before,
-				&:after {
-					/* #ifndef APP-NVUE */
-					display: none;
-					/* #endif */
-				}
-
-				@include set-flex(justify-center) {
-					justify-content: center;
-				}
-
-				@include set-flex(justify-end) {
-					justify-content: flex-end;
-				}
-
-				@include set-flex(justify-space-between) {
-					justify-content: space-between;
-				}
-
-				@include set-flex(justify-space-around) {
-					justify-content: space-around;
-				}
-
-				@include set-flex(align-middle) {
-					align-items: center;
-				}
-
-				@include set-flex(align-bottom) {
-					align-items: flex-end;
-				}
-			}
-
-			/* #endif */
-		}
-
-	}
-
-	// 字节、QQ配置后不生效
-	// 此处用法无法使用scoped
-	/* #ifdef MP-WEIXIN || MP-TOUTIAO || MP-QQ */
-	:host {
-		display: block;
-	}
-
-	/* #endif */
-</style>

+ 0 - 148
src/components/uni-segmented-control/uni-segmented-control.vue

@@ -1,148 +0,0 @@
-<template>
-  <view :class="[styleType === 'text'?'segmented-control--text' : 'segmented-control--button' ]"
-    :style="{ borderColor: styleType === 'text' ? '' : activeColor }" class="segmented-control">
-    <view v-for="(item, index) in values" :class="[ styleType === 'text' ? '': 'segmented-control__item--button',
-		index === currentIndex&&styleType === 'button' ? 'segmented-control__item--button--active': '',
-		index === 0&&styleType === 'button' ? 'segmented-control__item--button--first': '',
-			index === values.length - 1&&styleType === 'button' ? 'segmented-control__item--button--last': '' ]"
-      :key="index"
-      :style="{ backgroundColor: index === currentIndex && styleType === 'button' ? activeColor : '',borderColor: index === currentIndex&&styleType === 'text'||styleType === 'button'?activeColor:'transparent' }"
-      class="segmented-control__item" @click="_onClick(index)">
-      <view>
-        <text :style="{color:
-				    index === currentIndex
-				      ? styleType === 'text'
-				        ? activeColor
-				        : '#fff'
-				      : styleType === 'text'
-				        ? '#FFFFFFB3'
-				        : activeColor}" class="segmented-control__text"
-          :class="styleType === 'text' && index === currentIndex ? 'segmented-control__item--text': ''">{{ item }}</text>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-/**
- * SegmentedControl 分段器
- * @description 用作不同视图的显示
- * @tutorial https://ext.dcloud.net.cn/plugin?id=54
- * @property {Number} current 当前选中的tab索引值,从0计数
- * @property {String} styleType = [button|text] 分段器样式类型
- * 	@value button 按钮类型
- * 	@value text 文字类型
- * @property {String} activeColor 选中的标签背景色与边框颜色
- * @property {Array} values 选项数组
- * @event {Function} clickItem 组件触发点击事件时触发,e={currentIndex}
- */
-
-export default {
-  name: 'UniSegmentedControl',
-  emits: ['clickItem'],
-  props: {
-    current: {
-      type: Number,
-      default: 0
-    },
-    values: {
-      type: Array,
-      default() {
-        return []
-      }
-    },
-    activeColor: {
-      type: String,
-      default: '#2979FF'
-    },
-    styleType: {
-      type: String,
-      default: 'button'
-    }
-  },
-  data() {
-    return {
-      currentIndex: 0
-    }
-  },
-  watch: {
-    current(val) {
-      if (val !== this.currentIndex) {
-        this.currentIndex = val
-      }
-    }
-  },
-  created() {
-    this.currentIndex = this.current
-  },
-  methods: {
-    _onClick(index) {
-      if (this.currentIndex !== index) {
-        this.currentIndex = index
-        this.$emit('clickItem', {
-          currentIndex: index
-        })
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.segmented-control {
-  /* #ifndef APP-NVUE */
-  display: flex;
-  box-sizing: border-box;
-  /* #endif */
-  flex-direction: row;
-  height: 36px;
-  overflow: hidden;
-  /* #ifdef H5 */
-  cursor: pointer;
-  /* #endif */
-}
-
-.segmented-control__item {
-  /* #ifndef APP-NVUE */
-  display: inline-flex;
-  box-sizing: border-box;
-  /* #endif */
-  position: relative;
-  flex: 1;
-  justify-content: center;
-  align-items: center;
-}
-
-.segmented-control__item--button {
-  border-style: solid;
-  border-top-width: 1px;
-  border-bottom-width: 1px;
-  border-right-width: 1px;
-  border-left-width: 0;
-}
-
-.segmented-control__item--button--first {
-  border-left-width: 1px;
-  border-top-left-radius: 5px;
-  border-bottom-left-radius: 5px;
-}
-
-.segmented-control__item--button--last {
-  border-top-right-radius: 5px;
-  border-bottom-right-radius: 5px;
-}
-
-.segmented-control__item--text {
-  border-bottom-style: solid;
-  border-bottom-width: 2px;
-  font-size: 36rpx !important;
-  font-weight: bold;
-  padding: 6px 0;
-}
-
-.segmented-control__text {
-  font-size: 32rpx;
-  line-height: 20px;
-  text-align: center;
-}
-</style>

+ 1 - 40
src/main.js

@@ -3,48 +3,9 @@ import App from './App'
 
 Vue.config.productionTip = false
 
-// 打开App
-Vue.prototype.openApp = function (page, channel, audioType, audioId) {
-  const res = uni.getSystemInfoSync()
-  var ua = window.navigator.userAgent.toLowerCase();
-  if (ua.match(/MicroMessenger/i) == 'micromessenger' || ua.match(/WeiBo/i) == "weibo" || ua.match(/QQ/i) == "qq") {
-    uni.showToast({
-      icon: 'none',
-      title: '右上角在浏览器打开',
-      mask: true
-    })
-  } else {
-    if (res.platform === 'ios') {
-      window.location.href = 'airsmart://?page=${page}&channel=${channel}&audioType=${audioType}&audioId=${audioId}'
-    } else {
-      window.location.href = `airsmart://com.muzen.radioplayer:8888/main?page=${page}&channel=${channel}&audioType=${audioType}&audioId=${audioId}`
-    }
-
-    var timer = setTimeout(() => {
-      if (res.platform === 'ios') {
-        window.location.href = 'itms-appss://itunes.apple.com/cn/app/apple-store/id1621419943?mt=8'
-      } else {
-        window.location.href = 'https://music-play.oss-cn-shenzhen.aliyuncs.com/backOss/file/bacde3d529014ad08fcddb6baaffbc28.apk'
-      }
-    }, 3000);
-  }
-
-  document.addEventListener('visibilitychange', function () {
-    if (document.hidden) {
-      clearTimeout(timer)
-    }
-  })
-
-  window.onpagehide = event => {
-    if (event.persisted) {
-      clearTimeout(timer)
-    }
-  }
-}
-
 App.mpType = 'app'
 
 const app = new Vue({
   ...App
 })
-app.$mount()
+app.$mount()

+ 1 - 6
src/manifest.json

@@ -71,10 +71,5 @@
     },
     "mp-qq" : {
         "usingComponents" : true
-    },
-		"h5":{
-			"router":{
-				"mode": "history"
-			}
-		}
+    }
 }

+ 11 - 92
src/pages.json

@@ -1,97 +1,16 @@
 {
-	"pages": [
-		// 设备引导页
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/guide/index",
+			"path": "pages/index/index",
 			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 耳机操作手势
-		{
-			"path": "pages/operation/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 帮助与反馈
-		{
-			"path": "pages/help/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 产品手册
-		{
-			"path": "pages/product/manual",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 关于我们
-		{
-			"path": "pages/about/index",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 用户协议
-		{
-			"path": "pages/user/agreement",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 隐私协议
-		{
-			"path": "pages/privacy/agreement",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 猫王博物馆
-		{
-			"path": "pages/ohplay/museum",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 12频道分享
-		{
-			"path": "pages/share/channels",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// 频道详情
-		{
-			"path": "pages/share/list",
-			"style": {
-				"navigationStyle": "custom",
-				"onReachBottomDistance": 50
-			}
-		},
-		// 歌单
-		{
-			"path": "pages/share/detail",
-			"style": {
-				"navigationStyle": "custom",
-				"onReachBottomDistance": 50
-			}
-		},
-		// 播放控件
-		{
-			"path": "pages/share/controls",
-			"style": {
-				"navigationStyle": "custom"
-			}
-		},
-		// vip音乐服务
-		{
-			"path": "pages/vip/index",
-			"style": {
-				"navigationStyle": "custom"
+				"navigationBarTitleText": "uni-app"
 			}
 		}
-	]
-}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	}
+}

+ 0 - 22
src/pages/about/index.vue

@@ -1,22 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  created(){
-    window.location.href = "https://ohplay.radio1964.net/about"
-  }
-}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 54
src/pages/guide/index.vue

@@ -1,54 +0,0 @@
-<template>
-  <view class="app-container">
-    <view v-if="content" class="ql-container">
-      <rich-text class="ql-editor" :nodes="content" />
-    </view>
-    <noData v-else>
-      暂无引导内容
-    </noData>
-    <button type="submit" circle @click="close">知道了</button>
-  </view>
-</template>
-
-<script>
-import { getGuidePageContent } from '@/api/guide'
-export default {
-  data() {
-    return {
-      content: ''
-    }
-  },
-  onLoad(e) {
-    getGuidePageContent({
-      clientType: e.deviceModel
-    }).then(res => {
-      if (res.data.code === 0) {
-        this.content = res.data.data.guidePageContent
-      }
-    })
-  },
-  methods: {
-    close() {
-      closePage.postMessage('关闭页面')
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  height: 100%;
-}
-
-.ql-container {
-  height: calc(100% - 106rpx);
-  overflow-y: scroll;
-}
-
-button {
-  position: absolute;
-  bottom: 32rpx;
-  left: 32rpx;
-  width: calc(100% - 64rpx);
-}
-</style>

+ 0 - 22
src/pages/help/index.vue

@@ -1,22 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  created(){
-    window.location.href = 'https://ohplay.radio1964.net/help'
-  }
-}
-</script>
-
-<style lang="scss">
-
-</style>

+ 49 - 0
src/pages/index/index.vue

@@ -0,0 +1,49 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/logo.png"></image>
+		<view>
+			<text class="title">{{title}}</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: 'Hello'
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin: 200rpx auto 50rpx auto;
+	}
+
+	.text-area {
+		display: flex;
+		justify-content: center;
+	}
+
+	.title {
+		font-size: 36rpx;
+		color: #8f8f94;
+	}
+</style>

+ 0 - 18
src/pages/ohplay/museum.vue

@@ -1,18 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-</style>

+ 0 - 187
src/pages/operation/index.vue

@@ -1,187 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="list" style="height: 1116rpx; margin-bottom: 32rpx">
-      <view class="main_pic" style="height: 304rpx;">
-        <img src="../../static/operation/headset.png" style="width: 240rpx; height:240rpx" />
-      </view>
-      <uni-row class="click">
-        <uni-col :span="8" class="left">单击</uni-col>
-        <uni-col :span="16" class="right">
-          <view style="align-items: flex-end; margin-bottom: 20rpx">
-            <img src="../../static/operation/left.png" />
-          </view>
-          <view style="align-items: flex-end; margin-bottom: 20rpx">
-            <img src="../../static/operation/right.png" />
-          </view>
-          <view>
-            <img src="../../static/operation/last.png" />
-            <text>上一首</text>
-          </view>
-          <view>
-            <img src="../../static/operation/next.png" />
-            <text>下一首</text>
-          </view>
-        </uni-col>
-      </uni-row>
-      <uni-row class="double_click">
-        <uni-col :span="8" class="left">双击</uni-col>
-        <uni-col :span="16" class="right">
-          <view>
-            <img src="../../static/operation/play.png" />
-            <text>播放</text>
-          </view>
-          <view>
-            <img src="../../static/operation/stop.png" />
-            <text>暂停</text>
-          </view>
-          <view>
-            <img src="../../static/operation/answer.png" />
-            <text>接听</text>
-          </view>
-          <view>
-            <img src="../../static/operation/handup.png" />
-            <text>挂断</text>
-          </view>
-        </uni-col>
-      </uni-row>
-      <uni-row class="long_press_2s">
-        <uni-col :span="8" class="left">长按2s</uni-col>
-        <uni-col :span="16" class="right">
-          <img src="../../static/operation/reject.png" />
-          <text>拒接来电</text>
-        </uni-col>
-      </uni-row>
-      <uni-row class="long_press_3s">
-        <uni-col :span="8" class="left">长按3s</uni-col>
-        <uni-col :span="16" class="right">
-          <img src="../../static/operation/scene.png" />
-          <text>切换场景模式</text>
-        </uni-col>
-      </uni-row>
-    </view>
-    <view class="list" style="height: 528rpx">
-      <view class="main_pic" style="height: 322rpx;">
-        <img src="../../static/operation/box.png" style="width: 212rpx; height:260rpx" />
-      </view>
-      <uni-row class="long_press_5s">
-        <uni-col :span="8" class="left">长按5s</uni-col>
-        <uni-col :span="16" class="right">
-          <img src="../../static/operation/bluetooth.png" />
-          <text>重置蓝牙</text>
-          <text style="color: rgba(255, 255, 255, 0.4);">(耳机处于仓内)</text>
-        </uni-col>
-      </uni-row>
-    </view>
-  </view>
-</template>
-
-<style lang="scss" scope>
-.list {
-  border: 2rpx solid #2f2f2f;
-  border-radius: 16rpx;
-
-  .main_pic {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    border-bottom: 2rpx solid #2f2f2f;
-  }
-
-  .click {
-    height: 226rpx;
-    .left {
-      line-height: 226rpx;
-    }
-    .right {
-      display: flex;
-      flex-wrap: wrap;
-      justify-content: space-around;
-
-      view {
-        width: 50%;
-        display: flex;
-        justify-content: center;
-        align-content: center;
-
-        img {
-          width: 48rpx;
-          height: 48rpx;
-        }
-      }
-    }
-  }
-
-  .double_click {
-    height: 196rpx;
-    border-bottom: 2rpx solid #2f2f2f;
-    border-top: 2rpx solid #2f2f2f;
-
-    .left {
-      line-height: 196rpx;
-    }
-    .right {
-      display: flex;
-      justify-content: space-around;
-      align-items: center;
-      view {
-        display: flex;
-        flex-direction: column;
-        img {
-          width: 48rpx;
-          height: 48rpx;
-        }
-      }
-    }
-  }
-
-  .long_press_2s {
-    border-bottom: 2rpx solid #2f2f2f;
-  }
-
-  .long_press_2s,
-  .long_press_3s {
-    height: 196rpx;
-    .left {
-      line-height: 196rpx;
-    }
-  }
-
-  .long_press_2s,
-  .long_press_3s,
-  .long_press_5s {
-    .right {
-      display: flex;
-      flex-direction: column;
-      justify-content: center;
-      align-items: center;
-      img {
-        width: 48rpx;
-        height: 48rpx;
-      }
-    }
-  }
-
-  .long_press_5s {
-    height: 204rpx;
-    .left {
-      line-height: 204rpx;
-    }
-  }
-
-  .left {
-    font-size: 28rpx;
-    height: 100%;
-    text-align: center;
-    background: rgba(255, 255, 255, 0.02);
-    border-right: 2rpx solid #2f2f2f;
-  }
-  .right {
-    height: 100%;
-    text-align: center;
-    font-size: 24rpx;
-    text {
-      line-height: 48rpx;
-    }
-  }
-}
-</style>

+ 0 - 22
src/pages/privacy/agreement.vue

@@ -1,22 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  created(){
-    window.location.href = "https://ohplay.radio1964.net/privacy/protocol"
-  }
-}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 22
src/pages/product/manual.vue

@@ -1,22 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  created(){
-    window.location.href = "https://ohplay.radio1964.net/product/manual"
-  }
-}
-</script>
-
-<style lang="scss">
-
-</style>

+ 0 - 125
src/pages/share/channels.vue

@@ -1,125 +0,0 @@
-<template>
-  <view class="app-container">
-    <open-app :page="0" />
-    <!-- 12频道分享 -->
-    <view class="twelve_channels">
-      <view class="item" v-for="item in list" :key="item.channelId" @click="getDetail(item)">
-        <view class="logo">
-          <img :src="item.channelPic" />
-          <view class="mask">{{ item.channelId }}</view>
-        </view>
-        <view class="content">
-          <view style="display:flex">
-            <text class="name">{{ item.aliasName }}</text>
-            <text class="tips">{{ item.channelTypeText }}</text>
-          </view>
-          <view>{{ item.description }}</view>
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-import { channelsList } from '@/api/share'
-export default {
-  data() {
-    return {
-      userId: '',
-      list: []
-    }
-  },
-  onLoad(e) {
-    if (e.userId) {
-      this.userId = e.userId
-      channelsList({
-        userId: e.userId
-      }).then(res => {
-        if (res.data.code === 0) {
-          this.list = res.data.data
-        }
-      })
-    }
-  },
-  methods: {
-    getDetail(item) {
-      uni.navigateTo({
-        url: `/pages/share/list?channelId=${item.id}&userId=${this.userId}`,
-      })
-    },
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.twelve_channels {
-  margin-top: 48rpx;
-  .item:first-child,
-  .item:last-child {
-    margin: 0;
-  }
-
-  .item {
-    margin: 48rpx 0;
-    height: 136rpx;
-    display: flex;
-    align-items: center;
-
-    .logo {
-      width: 136rpx;
-      height: 136rpx;
-      position: relative;
-
-      img {
-        width: 100%;
-        height: 100%;
-        border-radius: 10rpx;
-      }
-
-      .mask {
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 136rpx;
-        height: 136rpx;
-        text-align: center;
-        line-height: 136rpx;
-        background: rgba(0, 0, 0, 0.3);
-      }
-    }
-
-    .content {
-      margin-left: 20rpx;
-      font-size: 28rpx;
-      line-height: 44rpx;
-
-      view:first-child {
-        .name {
-          width: 382rpx;
-          display: inline-block;
-          overflow: hidden;
-          white-space: nowrap;
-          text-overflow: ellipsis;
-        }
-
-        .tips {
-          border: 2rpx solid rgba(255, 255, 255, 0.15);
-          border-radius: 50rpx;
-          font-size: 22rpx;
-          color: rgba(255, 255, 255, 0.7);
-          padding: 0 16rpx;
-          margin-left: 16rpx;
-        }
-      }
-
-      view:last-child {
-        width: 478rpx;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        color: rgba(255, 255, 255, 0.4);
-      }
-    }
-  }
-}
-</style>

+ 0 - 175
src/pages/share/controls.vue

@@ -1,175 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 背景 -->
-    <view class="bg" :style="{'background': `url(${form.icon})no-repeat 100% / cover`}" />
-    <!-- 跳转App -->
-    <open-app :page="3" :audioId="form.audioId" />
-    <!-- 播控分享 -->
-    <view class="play_control">
-      <img v-if="channelType !== '1'" class="cover" :src="form.icon" />
-      <view v-if="channelType === '1'" class="FM">
-        <img :src="form.icon" />
-        <text>以上内容来自{{ form.platformId }}</text>
-      </view>
-      <view class="title">{{ form.title }}</view>
-      <view class="name" v-if="channelType === '1'">{{ form.title }}</view>
-      <view v-if="channelType !== '1'" class="platform">
-        以上内容来自{{ form.platformId }}
-      </view>
-      <slider min="0" max="100" block-color="#78B06A" block-size="12" activeColor="#78B06A"
-        backgroundColor="#727c82" disabled />
-      <view class="length">
-        <text>00:00:00</text>
-        <text>00:00:00</text>
-      </view>
-      <img class="play_btn" src="@/static/play.png" @click="open" />
-    </view>
-  </div>
-</template>
-
-<script>
-import { boradcastDetail, podCastProgramDetail } from '@/api/share'
-export default {
-  data() {
-    return {
-      channelType: '',
-      form: {},
-      platFormOptions: [{
-        value: 0,
-        label: '未知'
-      }, {
-        value: 1,
-        label: '蜻蜓'
-      }, {
-        value: 2,
-        label: '官方电台'
-      }, {
-        value: 3,
-        label: '猫王好听'
-      }, {
-        value: 4,
-        label: '海外电台'
-      }, {
-        value: 5,
-        label: '音乐随身听'
-      }, {
-        value: 6,
-        label: 'qq音乐'
-      }, {
-        value: 7,
-        label: 'HiFIVE音乐'
-      }, {
-        value: 8,
-        label: '看见音乐'
-      }]
-    }
-  },
-  onLoad(e) {
-    if (e.audioId) {
-      this.channelType = e.channelType
-      if (e.channelType === '1') {
-        boradcastDetail({
-          audioId: e.audioId
-        }).then(res => {
-          if (res.data.code === 0) {
-            this.form = res.data.data
-            this.form.platformId = this.platFormOptions.find(i => i.value === res.data.data.platformId).label
-          }
-        })
-      } else {
-        podCastProgramDetail({
-          audioId: e.audioId
-        }).then(res => {
-          if (res.data.code === 0) {
-            this.form = res.data.data
-            this.form.platformId = this.platFormOptions.find(i => i.value === res.data.data.platformId).label
-            this.form.icon = res.data.data.audioPic
-          }
-        })
-      }
-    }
-  },
-  methods: {
-    // 打开app
-    open() {
-      this.openApp(3, this.form.audioId)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.bg {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 450rpx;
-  filter: brightness(0.5) blur(16px);
-  z-index: -1;
-}
-
-.play_control {
-  text-align: center;
-  margin-top: 32rpx;
-
-  .cover {
-    width: 100%;
-    border-radius: 16rpx;
-    margin-bottom: 48rpx;
-  }
-
-  .title {
-    font-size: 48rpx;
-    font-weight: 600;
-  }
-
-  .name {
-    font-size: 28rpx;
-    color: #727c82;
-    margin: 20rpx 0;
-  }
-
-  .platform {
-    font-size: 22rpx;
-    color: #727c82;
-    line-height: 64rpx;
-  }
-
-  .length {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    font-size: 20rpx;
-    color: #727c82;
-  }
-
-  .FM {
-    width: 558rpx;
-    height: 606rpx;
-    border-radius: 16rpx;
-    padding: 32rpx 32rpx 0;
-    margin: 0 auto 32rpx auto;
-    background: rgba(255, 255, 255, 0.05);
-
-    img {
-      width: 494rpx;
-      height: 494rpx;
-      border-radius: 16rpx;
-    }
-
-    text {
-      font-size: 22rpx;
-      color: rgba(255, 255, 255, 0.4);
-      margin-top: 20rpx;
-      float: left;
-    }
-  }
-
-  .play_btn {
-    width: 112rpx;
-    height: 112rpx;
-    margin-top: 48rpx;
-  }
-}
-</style>

+ 0 - 272
src/pages/share/detail.vue

@@ -1,272 +0,0 @@
-<template>
-  <view class="app-container">
-    <!-- 背景 -->
-    <view class="bg" />
-    <!-- 跳转App -->
-    <open-app :page="2" :audioType="data.audioType" />
-    <!-- 详情 -->
-    <view class="detail">
-      <img class="logo" :src="data.thumb" />
-      <view class="content">
-        <text style="font-weight: 600;">{{ data.name }}</text>
-        <view class="tips" v-if="data.podcasters">
-          <img class="avatar" :src="data.podcasters[0].avatar" />
-          <text>{{ data.podcasters[0].nickname }}</text>
-        </view>
-        <view class="play_number">
-          <img src="@/static/playnumber.png" />
-          <text>{{ data.playcount }}</text>
-        </view>
-      </view>
-    </view>
-    <text class="info">
-      <text>{{ data.description }}</text>
-      <uni-icons />
-    </text>
-    <!-- 列表 -->
-    <uni-segmented-control :current="current" @clickItem="onClickItem" styleType="text" :values="items"
-      activeColor="#fff" />
-    <view v-show="current === 0" class="list_content">
-      <uni-row class="item" v-for="(item, index) in list" :key="item.id" @click.native="getNav(item)">
-        <uni-col :span="2" style="color:#FFFFFF66; fontSize: 28rpx; fontWeight:bold">
-          {{ index + 1}}
-        </uni-col>
-        <uni-col :span="20">
-          <view style="fontSize: 32rpx; margin-bottom: 10rpx;">{{ item.name }}</view>
-          <view style="display:flex; fontSize:22rpx; color:#FFFFFF66;">
-            <text class="time">{{ item.durationText }}</text>
-            <text class="play">{{ item.playcount }}</text>
-            <text class="date">{{ item.updateTimeText }}</text>
-          </view>
-        </uni-col>
-        <uni-col :span="2">
-          <img src="@/static/playbtn.png" style="width: 48rpx;height: 48rpx" @click.stop="open" />
-        </uni-col>
-      </uni-row>
-    </view>
-    <view v-show="current === 1" class="list_content">
-      <text class="no-data">暂时没有数据哦</text>
-    </view>
-  </view>
-</template>
-
-<script>
-import { podCastProgramList, podCastDetail } from '@/api/share'
-export default {
-  data() {
-    return {
-      current: 0,
-      items: ['节目', '推荐'],
-      form: {
-        audioId: '',
-        pageNum: 1,
-        pageSize: 10
-      },
-      list: [],
-      total: 0,
-      data: {}
-    }
-  },
-  onLoad(e) {
-    if (e.audioId) {
-      this.form.audioId = e.audioId
-      this.getDetail()
-      this.getList()
-    }
-  },
-  onReachBottom() {
-    if (this.list.length < this.total) {
-      this.form.pageSize += 10
-      this.getList()
-    }
-  },
-  methods: {
-    // 列表
-    getList() {
-      podCastProgramList(this.form).then(res => {
-        if (res.data.code === 0) {
-          this.list = res.data.data.records
-          this.total = res.data.data.total
-        }
-      })
-    },
-    // 详情
-    getDetail() {
-      podCastDetail({
-        audioId: this.form.audioId
-      }).then(res => {
-        if (res.data.code === 0) {
-          this.data = res.data.data
-        }
-      })
-    },
-    // 下一页
-    getNav(item) {
-      uni.navigateTo({
-        url: `/pages/share/controls?audioId=${item.audioId}`
-      })
-    },
-    // 打开app
-    open() {
-      this.openApp(2, this.data.audioType)
-    },
-    onClickItem(e) {
-      if (this.current != e.currentIndex) {
-        this.current = e.currentIndex
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.bg {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 450rpx;
-  filter: brightness(0.5) blur(16px);
-  z-index: -1;
-}
-
-.detail {
-  display: flex;
-  margin-top: 48rpx;
-
-  .logo {
-    width: 240rpx;
-    height: 240rpx;
-    border-radius: 16rpx;
-  }
-
-  .content {
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-    margin-left: 32rpx;
-
-    .tips {
-      color: rgba(255, 255, 255, 0.7);
-      font-size: 22rpx;
-      display: flex;
-      align-items: center;
-      margin-top: -32rpx;
-
-      .avatar {
-        width: 56rpx;
-        height: 56rpx;
-        border-radius: 50%;
-        margin-right: 20rpx;
-      }
-    }
-
-    .play_number {
-      display: flex;
-      align-content: center;
-      img {
-        width: 32rpx;
-        height: 32rpx;
-      }
-
-      text {
-        font-size: 24rpx;
-        color: rgba(255, 255, 255, 0.4);
-      }
-    }
-  }
-}
-
-.info {
-  width: 100%;
-  color: rgba(255, 255, 255, 0.7);
-  font-size: 24rpx;
-  position: relative;
-  display: block;
-  margin: 32rpx 0 40rpx 0;
-
-  text {
-    display: inline-block;
-    width: 96%;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-}
-
-.info::after {
-  content: '\e6b5';
-  font-family: uniicons;
-  position: absolute;
-  right: 0;
-  top: 5%;
-}
-
-::v-deep .segmented-control__item {
-  flex: none;
-  margin-right: 64rpx;
-}
-
-::v-deep .segmented-control__item--text::after {
-  content: '';
-  width: 32rpx;
-  height: 8rpx;
-  background: #a4d099;
-  position: absolute;
-  left: 50%;
-  bottom: 0;
-  transform: translate(-50%);
-  border-radius: 20rpx;
-}
-
-.list_content {
-  position: relative;
-  margin-top: 32rpx;
-  .item {
-    display: flex;
-    align-items: center;
-    margin-bottom: 50rpx;
-  }
-  .item:last-child {
-    margin: 0;
-  }
-}
-
-.time,
-.play,
-.date {
-  display: flex;
-  align-items: center;
-  margin-right: 16rpx;
-}
-
-.time::before,
-.play::before,
-.date::before {
-  content: '';
-  width: 28rpx;
-  height: 28rpx;
-  margin-right: 8rpx;
-}
-
-.time::before {
-  background: url('@/static/time.png') no-repeat 100% / cover;
-}
-
-.play::before {
-  background: url('@/static/playnumber.png') no-repeat 100% / cover;
-}
-
-.date::before {
-  background: url('@/static/date.png') no-repeat 100% / cover;
-}
-
-.no-data {
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  color: #ffffff66;
-  font-size: 24rpx;
-}
-</style>

+ 0 - 235
src/pages/share/list.vue

@@ -1,235 +0,0 @@
-<template>
-  <view class="app-container">
-    <!-- 背景 -->
-    <view class="bg" :style="{'background': `url(${data.channelPic})no-repeat 100% / cover`}" />
-    <!-- 跳转App -->
-    <open-app :page="1" :channel="data.channelId" />
-    <!-- 详情 -->
-    <view class="detail">
-      <img :src="data.channelPic" />
-      <view class="content">
-        <view class="title">{{ data.aliasName }}</view>
-        <view class="num">
-          <text class="tips">{{ data.channelTypeText }}</text>
-          <text>{{ data.count }}个{{ data.channelTypeText }}</text>
-        </view>
-        <view class="info">
-          <text v-if="data.description">{{ data.description }}</text>
-          <text v-else>暂无描述</text>
-          <uni-icons />
-        </view>
-      </view>
-    </view>
-    <!-- 列表 -->
-    <view class="list">
-      <view class="item" v-for="item in list" :key="item.audioId" @click="getNav(item)">
-        <img class="logo" :src="item.audioPic" />
-        <view class="title">
-          <text>{{ item.audioName }}</text>
-          <text>{{ item.audioInfo }}</text>
-        </view>
-        <img class="play" src="@/static/playbtn.png" @click.stop="open" />
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-import { channelAudioPage, channelDetail } from '@/api/share'
-export default {
-  data() {
-    return {
-      form: {
-        pageNum: 1,
-        pageSize: 10
-      },
-      list: [],
-      total: 0,
-      data: {}
-    }
-  },
-  onLoad(e) {
-    if (e.userId) {
-      this.form.userId = e.userId,
-      this.form.channelId = e.channelId
-      // 频道详情
-      channelDetail({
-        channelId: e.channelId,
-        userId: e.userId
-      }).then(res => {
-        if (res.data.code === 0) {
-          this.data = res.data.data
-        }
-      })
-      this.getList()
-    }
-  },
-  onReachBottom() {
-    if (this.list.length < this.total) {
-      this.form.pageSize += 10
-      this.getList()
-    }
-  },
-  methods: {
-    // 列表
-    getList() {
-      channelAudioPage(this.form).then(res => {
-        if (res.data.code === 0) {
-          this.list = res.data.data.records
-          this.total = res.data.data.total
-        }
-      })
-    },
-    // 下一页
-    getNav(item) {
-      let url = this.data.channelType === 1 || this.data.channelType === 3 ? `/pages/share/controls?channelType=${this.data.channelType}&audioId=${item.audioId}` : `/pages/share/detail?audioId=${item.audioId}`
-      uni.navigateTo({
-        url: url
-      })
-    },
-    // 打开app
-    open() {
-      this.openApp(1, this.data.channelId)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.bg {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 450rpx;
-  filter: brightness(0.5) blur(16px);
-  z-index: -1;
-}
-
-.detail {
-  display: flex;
-  margin-top: 48rpx;
-
-  img {
-    width: 240rpx;
-    height: 240rpx;
-    border-radius: 16rpx;
-  }
-
-  .content {
-    width: calc(100% - 272rpx);
-    margin-left: 32rpx;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-
-    .title {
-      font-weight: 600;
-      margin-bottom: 10rpx;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      white-space: nowrap;
-    }
-
-    .num {
-      display: flex;
-      flex-direction: column;
-      margin-top: -50rpx;
-      font-size: 24rpx;
-      color: rgba(255, 255, 255, 0.7);
-
-      .tips {
-        color: rgba(255, 255, 255, 0.7);
-        font-size: 22rpx;
-        border: 1px solid rgba(255, 255, 255, 0.15);
-        border-radius: 20rpx;
-        padding: 2rpx 16rpx;
-        width: fit-content;
-        margin-bottom: 10rpx;
-      }
-    }
-
-    .info {
-      width: 400rpx;
-      color: rgba(255, 255, 255, 0.7);
-      font-size: 24rpx;
-      position: relative;
-
-      text {
-        display: block;
-        width: 360rpx;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-      }
-    }
-
-    .info::after {
-      content: '\e6b5';
-      font-family: uniicons;
-      position: absolute;
-      right: 0rpx;
-      top: 5%;
-    }
-  }
-}
-
-.list {
-  margin-top: 80rpx;
-
-  .item:last-child {
-    margin: 0;
-  }
-
-  .item {
-    margin: 32rpx 0;
-    height: 160rpx;
-    position: relative;
-
-    .logo {
-      width: 160rpx;
-      height: 160rpx;
-      position: absolute;
-      top: 0;
-      left: 0;
-      border-radius: 16rpx;
-    }
-
-    .title {
-      position: absolute;
-      top: 50%;
-      left: 180rpx;
-      transform: translate(0, -50%);
-      display: flex;
-      flex-direction: column;
-
-      text:first-child {
-        font-size: 28rpx;
-        width: 360rpx;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
-      }
-
-      text:last-child {
-        font-size: 24rpx;
-        color: rgba(255, 255, 255, 0.4);
-        width: 360rpx;
-        overflow: hidden;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-        -webkit-line-clamp: 3;
-      }
-    }
-
-    .play {
-      width: 48rpx;
-      height: 48rpx;
-      position: absolute;
-      top: 50%;
-      right: 0;
-      transform: translate(0, -50%);
-    }
-  }
-}
-</style>

+ 0 - 22
src/pages/user/agreement.vue

@@ -1,22 +0,0 @@
-<template>
-  <view class="app-container">
-
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  created(){
-    window.location.href = "https://ohplay.radio1964.net/user/protocol"
-  }
-}
-</script>
-
-<style lang="scss">
-
-</style>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 385
src/pages/vip/index.vue


BIN
src/static/coupon-empty.png


BIN
src/static/date.png


BIN
src/static/logo.png


BIN
src/static/operation/answer.png


BIN
src/static/operation/bluetooth.png


BIN
src/static/operation/box.png


BIN
src/static/operation/handup.png


BIN
src/static/operation/headset.png


BIN
src/static/operation/last.png


BIN
src/static/operation/left.png


BIN
src/static/operation/next.png


BIN
src/static/operation/play.png


BIN
src/static/operation/reject.png


BIN
src/static/operation/right.png


BIN
src/static/operation/scene.png


BIN
src/static/operation/stop.png


BIN
src/static/play.png


BIN
src/static/playbtn.png


BIN
src/static/playnumber.png


BIN
src/static/recharge-empty.png


BIN
src/static/time.png


+ 0 - 31
src/utils/request.js

@@ -1,31 +0,0 @@
-const baseUrl = 'https://o3tapi.radio1964.com/web' // 测试
-// const baseUrl = 'http://192.168.0.217/web' // 付新保本地'
-
-function request(e) {
-  if(!e.data){
-    e.data = {}
-  }
-
-  uni.showLoading({
-    title: '加载中...'
-  })
-
-  const promise = new Promise((resolve, reject) => {
-    uni.request({
-      url: baseUrl + e.url,
-      method: e.method,
-      data: e.data,
-      success: (res) => {
-        resolve(res)
-        uni.hideLoading()
-      },
-      fail: (err) => {
-        reject(err)
-        uni.hideLoading()
-      }
-    })
-  })
-  return promise
-}
-
-export default request