Browse Source

增加tabbar

lilei 4 years ago
parent
commit
55a9ac6068
97 changed files with 1549 additions and 42 deletions
  1. 1 0
      hybrid/html/aliplayer/aliplayer-h5-min.js
  2. 0 0
      hybrid/html/aliplayer/aliplayer-min.css
  3. 1 0
      hybrid/html/aliplayer/aliplayer-min.js
  4. BIN
      hybrid/html/aliplayer/img/bigplay.png
  5. BIN
      hybrid/html/aliplayer/img/cc.png
  6. BIN
      hybrid/html/aliplayer/img/dragcursor.png
  7. BIN
      hybrid/html/aliplayer/img/dragcursorhover.png
  8. BIN
      hybrid/html/aliplayer/img/fullscreen.png
  9. BIN
      hybrid/html/aliplayer/img/pauseanimation.png
  10. BIN
      hybrid/html/aliplayer/img/playanimation.png
  11. BIN
      hybrid/html/aliplayer/img/setting.png
  12. BIN
      hybrid/html/aliplayer/img/smallpause.png
  13. BIN
      hybrid/html/aliplayer/img/smallplay.png
  14. BIN
      hybrid/html/aliplayer/img/smallscreen.png
  15. BIN
      hybrid/html/aliplayer/img/snapshot.png
  16. BIN
      hybrid/html/aliplayer/img/volume.png
  17. 7 0
      hybrid/html/antd/antd.min.css
  18. 1 0
      hybrid/html/antd/antd.min.js
  19. 148 0
      hybrid/html/css/styles.less
  20. 12 0
      hybrid/html/js/less.min.js
  21. 0 0
      hybrid/html/js/moment-with-locales.min.js
  22. 0 0
      hybrid/html/js/moment.min.js
  23. 0 0
      hybrid/html/js/uni.webview.1.5.2.js
  24. 5 0
      hybrid/html/js/vue@2.6.11
  25. BIN
      hybrid/html/static/icons/close.png
  26. BIN
      hybrid/html/static/icons/down.png
  27. BIN
      hybrid/html/static/icons/kz-mini.png
  28. BIN
      hybrid/html/static/icons/left.png
  29. BIN
      hybrid/html/static/icons/right.png
  30. BIN
      hybrid/html/static/icons/up.png
  31. 320 0
      hybrid/html/video.html
  32. 56 2
      pages.json
  33. 32 40
      pages/index/index.vue
  34. 29 0
      pages/shopTour/shopTour.vue
  35. 22 0
      pages/userCenter/userCenter.vue
  36. 22 0
      pages/work/work.vue
  37. BIN
      static/tabbar/home-active.png
  38. BIN
      static/tabbar/home.png
  39. BIN
      static/tabbar/user-active.png
  40. BIN
      static/tabbar/user.png
  41. BIN
      static/tabbar/work-active.png
  42. BIN
      static/tabbar/work.png
  43. 0 0
      unpackage/dist/dev/.automator/app-plus/.automator.json
  44. 0 0
      unpackage/dist/dev/app-plus/__uniappchooselocation.js
  45. 0 0
      unpackage/dist/dev/app-plus/__uniappes6.js
  46. 0 0
      unpackage/dist/dev/app-plus/__uniappopenlocation.js
  47. 0 0
      unpackage/dist/dev/app-plus/__uniapppicker.js
  48. 6 0
      unpackage/dist/dev/app-plus/__uniappquill.js
  49. 0 0
      unpackage/dist/dev/app-plus/__uniappquillimageresize.js
  50. 0 0
      unpackage/dist/dev/app-plus/__uniappscan.js
  51. BIN
      unpackage/dist/dev/app-plus/__uniappsuccess.png
  52. 28 0
      unpackage/dist/dev/app-plus/__uniappview.html
  53. 8 0
      unpackage/dist/dev/app-plus/app-config-service.js
  54. 154 0
      unpackage/dist/dev/app-plus/app-config.js
  55. 9 0
      unpackage/dist/dev/app-plus/app-service.js
  56. 193 0
      unpackage/dist/dev/app-plus/app-view.js
  57. 1 0
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-h5-min.js
  58. 0 0
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-min.css
  59. 1 0
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-min.js
  60. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/bigplay.png
  61. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/cc.png
  62. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/dragcursor.png
  63. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/dragcursorhover.png
  64. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/fullscreen.png
  65. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/pauseanimation.png
  66. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/playanimation.png
  67. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/setting.png
  68. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallpause.png
  69. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallplay.png
  70. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallscreen.png
  71. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/snapshot.png
  72. BIN
      unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/volume.png
  73. 7 0
      unpackage/dist/dev/app-plus/hybrid/html/antd/antd.min.css
  74. 1 0
      unpackage/dist/dev/app-plus/hybrid/html/antd/antd.min.js
  75. 148 0
      unpackage/dist/dev/app-plus/hybrid/html/css/styles.less
  76. 12 0
      unpackage/dist/dev/app-plus/hybrid/html/js/less.min.js
  77. 0 0
      unpackage/dist/dev/app-plus/hybrid/html/js/moment-with-locales.min.js
  78. 0 0
      unpackage/dist/dev/app-plus/hybrid/html/js/moment.min.js
  79. 0 0
      unpackage/dist/dev/app-plus/hybrid/html/js/uni.webview.1.5.2.js
  80. 5 0
      unpackage/dist/dev/app-plus/hybrid/html/js/vue@2.6.11
  81. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/close.png
  82. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/down.png
  83. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/kz-mini.png
  84. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/left.png
  85. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/right.png
  86. BIN
      unpackage/dist/dev/app-plus/hybrid/html/static/icons/up.png
  87. 320 0
      unpackage/dist/dev/app-plus/hybrid/html/video.html
  88. 0 0
      unpackage/dist/dev/app-plus/manifest.json
  89. BIN
      unpackage/dist/dev/app-plus/static/logo.png
  90. BIN
      unpackage/dist/dev/app-plus/static/tabbar/home-active.png
  91. BIN
      unpackage/dist/dev/app-plus/static/tabbar/home.png
  92. BIN
      unpackage/dist/dev/app-plus/static/tabbar/user-active.png
  93. BIN
      unpackage/dist/dev/app-plus/static/tabbar/user.png
  94. BIN
      unpackage/dist/dev/app-plus/static/tabbar/work-active.png
  95. BIN
      unpackage/dist/dev/app-plus/static/tabbar/work.png
  96. 0 0
      unpackage/dist/dev/app-plus/view.css
  97. 0 0
      unpackage/dist/dev/app-plus/view.umd.min.js

File diff suppressed because it is too large
+ 1 - 0
hybrid/html/aliplayer/aliplayer-h5-min.js


File diff suppressed because it is too large
+ 0 - 0
hybrid/html/aliplayer/aliplayer-min.css


File diff suppressed because it is too large
+ 1 - 0
hybrid/html/aliplayer/aliplayer-min.js


BIN
hybrid/html/aliplayer/img/bigplay.png


BIN
hybrid/html/aliplayer/img/cc.png


BIN
hybrid/html/aliplayer/img/dragcursor.png


BIN
hybrid/html/aliplayer/img/dragcursorhover.png


BIN
hybrid/html/aliplayer/img/fullscreen.png


BIN
hybrid/html/aliplayer/img/pauseanimation.png


BIN
hybrid/html/aliplayer/img/playanimation.png


BIN
hybrid/html/aliplayer/img/setting.png


BIN
hybrid/html/aliplayer/img/smallpause.png


BIN
hybrid/html/aliplayer/img/smallplay.png


BIN
hybrid/html/aliplayer/img/smallscreen.png


BIN
hybrid/html/aliplayer/img/snapshot.png


BIN
hybrid/html/aliplayer/img/volume.png


File diff suppressed because it is too large
+ 7 - 0
hybrid/html/antd/antd.min.css


File diff suppressed because it is too large
+ 1 - 0
hybrid/html/antd/antd.min.js


+ 148 - 0
hybrid/html/css/styles.less

@@ -0,0 +1,148 @@
+*{
+	padding: 0;
+	margin: 0;
+}
+body{
+	height: 100%;
+	overflow: hidden;
+}
+.storeCheck{
+    height: calc(100vh);
+    display: flex;
+    flex-direction: column;
+    // 工作区域
+    .checkWork{
+      flex-grow: 1;
+      display: flex;
+      flex-direction: column;
+      overflow: auto;
+      // 摄像头切,换预置位及打分统计
+      .checkWork-head{
+        position: relative;
+        .checkWork-head-row{
+          display: flex;
+          align-items: center;
+          border-bottom: 1px solid #eee;
+          &:first-child{
+            > div{
+              display: flex;
+              align-items: center;
+              > div{
+                &:last-child{
+                  flex-grow: 1;
+                }
+              }
+            }
+          }
+          > div{
+            width: 50%;
+            padding: 5px 10px;
+            &:first-child{
+              border-right: 1px solid #eee;
+            }
+            > div{
+              padding: 3px 0;
+            }
+          }
+        }
+      }
+      .checkWork-body{
+        flex-grow: 1;
+        display: flex;
+        background: #f8f8f8;
+        overflow: auto;
+        .checkWork-body-tabs{
+          width: 26%;
+          padding: 1px 0;
+          overflow-y: scroll;
+          background: #fff;
+          box-shadow: 1px 1px 3px #eee;
+          .tabs-items{
+            text-align: center;
+            padding:8px 5px;
+            border-bottom: 1px solid #f8f8f8;
+          }
+          .tabs-items.active{
+            background: #91D5FF;
+          }
+        }
+        .checkWork-body-tabCons{
+          width: 74%;
+          padding: 5px;
+          overflow-y: scroll;
+          .tabCons-items{
+            background: #fff;
+            padding: 5px;
+            margin-bottom: 10px;
+            border-radius: 5px;
+            box-shadow: 1px 1px 3px #eee;
+            > div{
+              display: flex;
+              align-items: center;
+              > div{
+                padding: 5px;
+                &:first-child{
+                  flex-grow: 1;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  // 播放器
+  .videoPlay{
+    position: relative;
+    height: 240px;
+    .control-yt,.control-yt-close{
+      position: absolute;
+      right: 15px;
+      top: 15px;
+      z-index: 100000;
+      width: 32px;
+      height: 32px;
+      background: url(../static/icons/kz-mini.png) no-repeat center center;
+      background-size: contain;
+    }
+    .control-yt-close{
+      background: url(../static/icons/close.png) no-repeat center center;
+      background-size: contain;
+    }
+    .ytBtns{
+      position: absolute;
+      width: 40px;
+      height: 40px;
+      z-index: 10000;
+      opacity: 50%;
+    }
+    .yt-left{
+      left: 20%;
+      top: 100px;
+      background: url(../static/icons/left.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-right{
+      right: 20%;
+      top: 100px;
+      background: url(../static/icons/right.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-top{
+      left: 50%;
+      top: 20px;
+      margin-left: -20px;
+      background: url(../static/icons/up.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-bottom{
+      left: 50%;
+      bottom: 20px;
+      margin-left: -20px;
+      background: url(../static/icons/down.png) no-repeat center center;
+      background-size: contain;
+    }
+    .prism-player .prism-controlbar{
+      background: rgba(0, 0, 0, 0.5);
+    }
+  }

File diff suppressed because it is too large
+ 12 - 0
hybrid/html/js/less.min.js


File diff suppressed because it is too large
+ 0 - 0
hybrid/html/js/moment-with-locales.min.js


File diff suppressed because it is too large
+ 0 - 0
hybrid/html/js/moment.min.js


File diff suppressed because it is too large
+ 0 - 0
hybrid/html/js/uni.webview.1.5.2.js


File diff suppressed because it is too large
+ 5 - 0
hybrid/html/js/vue@2.6.11


BIN
hybrid/html/static/icons/close.png


BIN
hybrid/html/static/icons/down.png


BIN
hybrid/html/static/icons/kz-mini.png


BIN
hybrid/html/static/icons/left.png


BIN
hybrid/html/static/icons/right.png


BIN
hybrid/html/static/icons/up.png


+ 320 - 0
hybrid/html/video.html

@@ -0,0 +1,320 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
+<title>远程巡店</title>
+<script src="js/vue@2.6.11"></script>
+<script src="js/uni.webview.1.5.2.js"></script>
+<!-- antd ui -->
+<script type="text/javascript" charset="utf-8" src="js/moment.min.js"></script>
+<script type="text/javascript" charset="utf-8" src="js/moment-with-locales.min.js"></script>
+<link rel="stylesheet" href="antd/antd.min.css" />
+<script type="text/javascript" charset="utf-8" src="antd/antd.min.js"></script>
+<!-- 播放器 -->
+<link rel="stylesheet" href="aliplayer/aliplayer-min.css" />
+<script type="text/javascript" charset="utf-8" src="aliplayer/aliplayer-h5-min.js"></script>
+<!-- 页面样式 -->
+<link rel="stylesheet/less" type="text/css" href="css/styles.less" />
+<script src="js/less.min.js"></script>
+</head>
+<body>
+<div class="storeCheck" id="app">
+    <!-- 播放器 -->
+    <div class="videoPlay">
+      <!-- 云台控制 -->
+      <div class="control-yt" v-show="showYt&&!showYtbtns" @click="openYt"></div>
+      <div class="control-yt-close" v-show="showYtbtns" @click="openYt"></div>
+      <div v-show="showYtbtns" @click="kzYt(1)" class="ytBtns yt-left"></div>
+      <div v-show="showYtbtns" @click="kzYt(2)" class="ytBtns yt-right"></div>
+      <div v-show="showYtbtns" @click="kzYt(3)" class="ytBtns yt-top"></div>
+      <div v-show="showYtbtns" @click="kzYt(4)" class="ytBtns yt-bottom"></div>
+      <!-- 播放器 -->
+      <div class="prism-player" id="player-con"></div>
+    </div>
+    <!-- 工作区 -->
+    <div class="checkWork">
+      <!-- 统计及摄像头切换 -->
+      <div class="checkWork-head">
+        <div class="checkWork-head-row">
+          <!-- 机位 -->
+          <div>
+            <div>机位:</div>
+            <div>
+              <a-dropdown>
+                <a-menu slot="overlay">
+                  <a-menu-item key="1"> 收银台 </a-menu-item>
+                  <a-menu-item key="2"> 接车区 </a-menu-item>
+                  <a-menu-item key="3"> 洗车工位 </a-menu-item>
+                  <a-menu-item key="4"> 维修工位 </a-menu-item>
+                  <a-menu-item key="5"> 客户休息区 </a-menu-item>
+                </a-menu>
+                <a-button block> 收银台 <a-icon type="down" /> </a-button>
+              </a-dropdown>
+            </div>
+          </div>
+          <!-- 预置位 -->
+          <div>
+            <div>预置位:</div>
+            <div>
+              <a-dropdown>
+                <a-menu slot="overlay">
+                  <a-menu-item key="1"> 预置位1 </a-menu-item>
+                  <a-menu-item key="2"> 预置位2 </a-menu-item>
+                  <a-menu-item key="3"> 预置位3 </a-menu-item>
+                </a-menu>
+                <a-button block> 请选择 <a-icon type="down" /> </a-button>
+              </a-dropdown>
+            </div>
+          </div>
+        </div>
+        <div class="checkWork-head-row">
+          <div>
+            <div>进度:2/13</div>
+            <div>耗时:3时5分钟</div>
+            <div>得分:10.2/22.3</div>
+          </div>
+          <div>
+            <div>不适用:0</div>
+            <div>不合格:3</div>
+            <div>合格:5</div>
+          </div>
+        </div>
+      </div>
+      <!-- 打分 -->
+      <div class="checkWork-body">
+        <div class="checkWork-body-tabs">
+          <div class="tabs-items active">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+        </div>
+        <div class="checkWork-body-tabCons">
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+			  <div>
+				  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+			  </div>
+			  <div>
+				  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+			  </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+<script>
+	var vm = new Vue({
+	  el: '#app',
+	  data: {
+		  player: null,
+		  showYt: false,
+		  showYtbtns: false
+		},
+		mounted () {
+		  this.videoInit()
+		},
+		methods: {
+		  // 初始化播放器
+		  videoInit(){
+			  const _this = this
+			  // 设置标题
+			  document.title = '远程巡店'
+			  // 初始化播放器
+			  _this.player = new Aliplayer({
+			    'id': 'player-con',
+			    'source': 'https://play.zyucgj.com/live/34020000001320000001.m3u8?auth_key=1599027535-0-0-621dab70e039a552649ccd535d1cc3f9',
+			    'width': '100%',
+			    'height': '240px',
+			    'autoplay': false,
+			    'isLive': true,
+			    'rePlay': true,
+			    'playsinline': true,
+			    'preload': true,
+			    'language': 'zh-cn',
+			    'useH5Prism': true,
+			    'extraInfo': {
+			      'crossOrigin': 'anonymous'
+			    },
+			    'skinLayout': [
+			      {
+			        'name': 'bigPlayButton',
+			        'align': 'cc'
+			      },
+			      {
+			        'name': 'errorDisplay',
+			        'align': 'tlabs',
+			        'x': 0,
+			        'y': 0
+			      },
+			      {
+			        'name': 'infoDisplay'
+			      },
+			      {
+			        'name': 'controlBar',
+			        'align': 'blabs',
+			        'x': 0,
+			        'y': 0,
+			        'children': [
+			          {
+			            'name': 'fullScreenButton',
+			            'align': 'tr',
+			            'x': 15,
+			            'y': 10
+			          },
+			          {
+			            'name': 'volume',
+			            'align': 'tr',
+			            'x': 15,
+			            'y': 8
+			          },
+			          {
+			            'name': 'snapshot',
+			            'align': 'tl',
+			            'x': 15,
+			            'y': 8
+			          }
+			        ]
+			      }
+			    ]
+			  }, function (player) {
+			    _this.sendMsg('The player is created')
+			  }
+			  )
+			  /* h5截图按钮, 截图成功回调 */
+			  _this.player.on('snapshoted', function (data) {
+			    const pictureData = data.paramData.base64
+			    _this.sendMsg('截图成功回调')
+			  })
+			  // 控制栏
+			  _this.player.on('playing', function () {
+			    _this.showYt = true
+			  })
+			  _this.player.on('error',function(e){
+				  console.log(JSON.stringify(e),'error')
+			  })
+		  },
+		  // 发送消息给app
+		  sendMsg (msg) {
+		    uni.postMessage({
+		      data: {
+		        action: 'message',
+		        msg: msg
+		      }
+		    })
+		  },
+		  // 显示云台控制按钮
+		  openYt () {
+		    this.showYtbtns = !this.showYtbtns
+		  },
+		  // 控制云台
+		  kzYt (index) {
+		    const cmd = ['left', 'right', 'up', 'down']
+		    this.sendMsg('控制云台' + cmd[index - 1])
+		  },
+		  // 修改分数
+		  openEditFs(){
+			   this.$confirm({
+				  title: 'Confirm',
+				  content: 'Bla bla ...',
+				  okText: '确认',
+				  cancelText: '取消',
+				});
+		  }
+		}
+	})
+ 
+</script>
+</body>
+</html>

+ 56 - 2
pages.json

@@ -3,14 +3,68 @@
 		{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "uni-app"
+				"navigationBarTitleText": "智能巡店"
+			}
+		},
+		{
+		    "path" : "pages/shopTour/shopTour",
+		    "style" : {
+				"navigationBarTitleText": "远程巡店",
+				 "app-plus": {
+						"bounce": "none", //关闭窗口回弹效果
+						"titleNView": {
+							"buttons": [ //原生标题栏按钮配置,
+								{
+									"text": "+考评项" ,//原生标题栏增加分享按钮,点击事件可通过页面的 onNavigationBarButtonTap 函数进行监听
+									"fontSize": 16,
+									"color": "#007AFF",
+									"width":"100px"
+								}
+							]
+						}
+					}
 			}
 		}
-	],
+	    ,{
+            "path" : "pages/work/work",
+            "style": {
+            	"navigationBarTitleText": "工作台"
+            }
+        }
+        ,{
+            "path" : "pages/userCenter/userCenter",
+            "style" : {
+				"navigationBarTitleText": "个人中心"
+			}
+        }
+    ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",
 		"navigationBarBackgroundColor": "#F8F8F8",
 		"backgroundColor": "#F8F8F8"
+	},
+	"tabBar": {
+	    "color": "#7A7E83",
+	    "selectedColor": "#0b6ce0",
+	    "borderStyle": "#eee",
+	    "backgroundColor": "#ffffff",
+		"fontSize": "14px",
+	    "list": [{
+	        "pagePath": "pages/index/index",
+	        "iconPath": "static/tabbar/home.png",
+	        "selectedIconPath": "static/tabbar/home-active.png",
+	        "text": "首页"
+	    }, {
+	        "pagePath": "pages/work/work",
+	        "iconPath": "static/tabbar/work.png",
+	        "selectedIconPath": "static/tabbar/work-active.png",
+	        "text": "工作台"
+	    }, {
+	        "pagePath": "pages/userCenter/userCenter",
+	        "iconPath": "static/tabbar/user.png",
+	        "selectedIconPath": "static/tabbar/user-active.png",
+	        "text": "我的"
+	    }]
 	}
 }

+ 32 - 40
pages/index/index.vue

@@ -1,52 +1,44 @@
 <template>
 	<view class="content">
-		<image class="logo" src="/static/logo.png"></image>
-		<view class="text-area">
-			<text class="title">{{title}}</text>
-		</view>
+		<video src="rtmp://play.zyucgj.com/live/34020000001320000001?ali_rtmp_retain=0&auth_key=1599027535-0-0-36cefc09a0b30c33de60389831e5506a"></video>
+		<button @click="openVideo">
+			开始巡店
+		</button>
 	</view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				title: 'Hello'
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-
+export default {
+	data() {
+		return {
+			wv: null
+		};
+	},
+	onLoad() {},
+	methods: {
+		openVideo() {
+			 uni.navigateTo({
+			 	url:"/pages/shopTour/shopTour"
+			 })
 		}
 	}
+};
 </script>
 
 <style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.logo {
-		height: 200rpx;
-		width: 200rpx;
-		margin-top: 200rpx;
-		margin-left: auto;
-		margin-right: auto;
-		margin-bottom: 50rpx;
-	}
-
-	.text-area {
-		display: flex;
-		justify-content: center;
-	}
-
-	.title {
-		font-size: 36rpx;
-		color: #8f8f94;
-	}
+.content {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	justify-content: center;
+}
+.controls-yt {
+	position: absolute;
+	top: 20rpx;
+	right: 20rpx;
+	width: 80rpx;
+	height: 80rpx;
+	border-radius: 100%;
+	background: rgba(0, 0, 0, 0.6);
+}
 </style>

+ 29 - 0
pages/shopTour/shopTour.vue

@@ -0,0 +1,29 @@
+<template>
+	<view>
+		<web-view @message="onmessage" src="/hybrid/html/video.html"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				wv: null
+			};
+		},
+		methods: {
+			onmessage(event) {
+				console.log(event.detail.data, 'event');
+			}
+		},
+		onNavigationBarButtonTap(e) {
+			if(e.index==0){
+				console.log(e.text)
+			}
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/userCenter/userCenter.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pages/work/work.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

BIN
static/tabbar/home-active.png


BIN
static/tabbar/home.png


BIN
static/tabbar/user-active.png


BIN
static/tabbar/user.png


BIN
static/tabbar/work-active.png


BIN
static/tabbar/work.png


+ 0 - 0
unpackage/dist/dev/.automator/app-plus/.automator.json


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniappchooselocation.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniappes6.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniappopenlocation.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniapppicker.js


File diff suppressed because it is too large
+ 6 - 0
unpackage/dist/dev/app-plus/__uniappquill.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniappquillimageresize.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/__uniappscan.js


BIN
unpackage/dist/dev/app-plus/__uniappsuccess.png


+ 28 - 0
unpackage/dist/dev/app-plus/__uniappview.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      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>
+    <title>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

+ 8 - 0
unpackage/dist/dev/app-plus/app-config-service.js

@@ -0,0 +1,8 @@
+
+var isReady=false;var onReadyCallbacks=[];
+var isServiceReady=false;var onServiceReadyCallbacks=[];
+var __uniConfig = {"pages":["pages/index/index","pages/shopTour/shopTour","pages/work/work","pages/userCenter/userCenter"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#7A7E83","selectedColor":"#0b6ce0","borderStyle":"#eee","backgroundColor":"#ffffff","fontSize":"14px","list":[{"pagePath":"pages/index/index","iconPath":"static/tabbar/home.png","selectedIconPath":"static/tabbar/home-active.png","text":"首页"},{"pagePath":"pages/work/work","iconPath":"static/tabbar/work.png","selectedIconPath":"static/tabbar/work-active.png","text":"工作台"},{"pagePath":"pages/userCenter/userCenter","iconPath":"static/tabbar/user.png","selectedIconPath":"static/tabbar/user-active.png","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"storeCheck-app","compilerVersion":"2.8.9","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
+var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"智能巡店"}},{"path":"/pages/shopTour/shopTour","meta":{},"window":{"navigationBarTitleText":"远程巡店","bounce":"none","titleNView":{"buttons":[{"text":"+考评项","fontSize":16,"color":"#007AFF","width":"100px"}]}}},{"path":"/pages/work/work","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"工作台"}},{"path":"/pages/userCenter/userCenter","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"个人中心"}}];
+__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

+ 154 - 0
unpackage/dist/dev/app-plus/app-config.js

@@ -0,0 +1,154 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// install a JSONP callback for chunk loading
+/******/ 	function webpackJsonpCallback(data) {
+/******/ 		var chunkIds = data[0];
+/******/ 		var moreModules = data[1];
+/******/ 		var executeModules = data[2];
+/******/
+/******/ 		// add "moreModules" to the modules object,
+/******/ 		// then flag all "chunkIds" as loaded and fire callback
+/******/ 		var moduleId, chunkId, i = 0, resolves = [];
+/******/ 		for(;i < chunkIds.length; i++) {
+/******/ 			chunkId = chunkIds[i];
+/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
+/******/ 				resolves.push(installedChunks[chunkId][0]);
+/******/ 			}
+/******/ 			installedChunks[chunkId] = 0;
+/******/ 		}
+/******/ 		for(moduleId in moreModules) {
+/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ 				modules[moduleId] = moreModules[moduleId];
+/******/ 			}
+/******/ 		}
+/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
+/******/
+/******/ 		while(resolves.length) {
+/******/ 			resolves.shift()();
+/******/ 		}
+/******/
+/******/ 		// add entry modules from loaded chunk to deferred list
+/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
+/******/
+/******/ 		// run deferred modules when all chunks ready
+/******/ 		return checkDeferredModules();
+/******/ 	};
+/******/ 	function checkDeferredModules() {
+/******/ 		var result;
+/******/ 		for(var i = 0; i < deferredModules.length; i++) {
+/******/ 			var deferredModule = deferredModules[i];
+/******/ 			var fulfilled = true;
+/******/ 			for(var j = 1; j < deferredModule.length; j++) {
+/******/ 				var depId = deferredModule[j];
+/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
+/******/ 			}
+/******/ 			if(fulfilled) {
+/******/ 				deferredModules.splice(i--, 1);
+/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
+/******/ 			}
+/******/ 		}
+/******/
+/******/ 		return result;
+/******/ 	}
+/******/
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// object to store loaded and loading chunks
+/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
+/******/ 	// Promise = chunk loading, 0 = chunk loaded
+/******/ 	var installedChunks = {
+/******/ 		"app-config": 0
+/******/ 	};
+/******/
+/******/ 	var deferredModules = [];
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "/";
+/******/
+/******/ 	var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
+/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ 	jsonpArray.push = webpackJsonpCallback;
+/******/ 	jsonpArray = jsonpArray.slice();
+/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ 	var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ 	// run deferred modules from other chunks
+/******/ 	checkDeferredModules();
+/******/ })
+/************************************************************************/
+/******/ ([]);

File diff suppressed because it is too large
+ 9 - 0
unpackage/dist/dev/app-plus/app-service.js


File diff suppressed because it is too large
+ 193 - 0
unpackage/dist/dev/app-plus/app-view.js


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-h5-min.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-min.css


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/aliplayer-min.js


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/bigplay.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/cc.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/dragcursor.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/dragcursorhover.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/fullscreen.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/pauseanimation.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/playanimation.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/setting.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallpause.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallplay.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/smallscreen.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/snapshot.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/aliplayer/img/volume.png


File diff suppressed because it is too large
+ 7 - 0
unpackage/dist/dev/app-plus/hybrid/html/antd/antd.min.css


File diff suppressed because it is too large
+ 1 - 0
unpackage/dist/dev/app-plus/hybrid/html/antd/antd.min.js


+ 148 - 0
unpackage/dist/dev/app-plus/hybrid/html/css/styles.less

@@ -0,0 +1,148 @@
+*{
+	padding: 0;
+	margin: 0;
+}
+body{
+	height: 100%;
+	overflow: hidden;
+}
+.storeCheck{
+    height: calc(100vh);
+    display: flex;
+    flex-direction: column;
+    // 工作区域
+    .checkWork{
+      flex-grow: 1;
+      display: flex;
+      flex-direction: column;
+      overflow: auto;
+      // 摄像头切,换预置位及打分统计
+      .checkWork-head{
+        position: relative;
+        .checkWork-head-row{
+          display: flex;
+          align-items: center;
+          border-bottom: 1px solid #eee;
+          &:first-child{
+            > div{
+              display: flex;
+              align-items: center;
+              > div{
+                &:last-child{
+                  flex-grow: 1;
+                }
+              }
+            }
+          }
+          > div{
+            width: 50%;
+            padding: 5px 10px;
+            &:first-child{
+              border-right: 1px solid #eee;
+            }
+            > div{
+              padding: 3px 0;
+            }
+          }
+        }
+      }
+      .checkWork-body{
+        flex-grow: 1;
+        display: flex;
+        background: #f8f8f8;
+        overflow: auto;
+        .checkWork-body-tabs{
+          width: 26%;
+          padding: 1px 0;
+          overflow-y: scroll;
+          background: #fff;
+          box-shadow: 1px 1px 3px #eee;
+          .tabs-items{
+            text-align: center;
+            padding:8px 5px;
+            border-bottom: 1px solid #f8f8f8;
+          }
+          .tabs-items.active{
+            background: #91D5FF;
+          }
+        }
+        .checkWork-body-tabCons{
+          width: 74%;
+          padding: 5px;
+          overflow-y: scroll;
+          .tabCons-items{
+            background: #fff;
+            padding: 5px;
+            margin-bottom: 10px;
+            border-radius: 5px;
+            box-shadow: 1px 1px 3px #eee;
+            > div{
+              display: flex;
+              align-items: center;
+              > div{
+                padding: 5px;
+                &:first-child{
+                  flex-grow: 1;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  // 播放器
+  .videoPlay{
+    position: relative;
+    height: 240px;
+    .control-yt,.control-yt-close{
+      position: absolute;
+      right: 15px;
+      top: 15px;
+      z-index: 100000;
+      width: 32px;
+      height: 32px;
+      background: url(../static/icons/kz-mini.png) no-repeat center center;
+      background-size: contain;
+    }
+    .control-yt-close{
+      background: url(../static/icons/close.png) no-repeat center center;
+      background-size: contain;
+    }
+    .ytBtns{
+      position: absolute;
+      width: 40px;
+      height: 40px;
+      z-index: 10000;
+      opacity: 50%;
+    }
+    .yt-left{
+      left: 20%;
+      top: 100px;
+      background: url(../static/icons/left.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-right{
+      right: 20%;
+      top: 100px;
+      background: url(../static/icons/right.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-top{
+      left: 50%;
+      top: 20px;
+      margin-left: -20px;
+      background: url(../static/icons/up.png) no-repeat center center;
+      background-size: contain;
+    }
+    .yt-bottom{
+      left: 50%;
+      bottom: 20px;
+      margin-left: -20px;
+      background: url(../static/icons/down.png) no-repeat center center;
+      background-size: contain;
+    }
+    .prism-player .prism-controlbar{
+      background: rgba(0, 0, 0, 0.5);
+    }
+  }

File diff suppressed because it is too large
+ 12 - 0
unpackage/dist/dev/app-plus/hybrid/html/js/less.min.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/hybrid/html/js/moment-with-locales.min.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/hybrid/html/js/moment.min.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/hybrid/html/js/uni.webview.1.5.2.js


File diff suppressed because it is too large
+ 5 - 0
unpackage/dist/dev/app-plus/hybrid/html/js/vue@2.6.11


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/close.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/down.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/kz-mini.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/left.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/right.png


BIN
unpackage/dist/dev/app-plus/hybrid/html/static/icons/up.png


+ 320 - 0
unpackage/dist/dev/app-plus/hybrid/html/video.html

@@ -0,0 +1,320 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
+<title>远程巡店</title>
+<script src="js/vue@2.6.11"></script>
+<script src="js/uni.webview.1.5.2.js"></script>
+<!-- antd ui -->
+<script type="text/javascript" charset="utf-8" src="js/moment.min.js"></script>
+<script type="text/javascript" charset="utf-8" src="js/moment-with-locales.min.js"></script>
+<link rel="stylesheet" href="antd/antd.min.css" />
+<script type="text/javascript" charset="utf-8" src="antd/antd.min.js"></script>
+<!-- 播放器 -->
+<link rel="stylesheet" href="aliplayer/aliplayer-min.css" />
+<script type="text/javascript" charset="utf-8" src="aliplayer/aliplayer-h5-min.js"></script>
+<!-- 页面样式 -->
+<link rel="stylesheet/less" type="text/css" href="css/styles.less" />
+<script src="js/less.min.js"></script>
+</head>
+<body>
+<div class="storeCheck" id="app">
+    <!-- 播放器 -->
+    <div class="videoPlay">
+      <!-- 云台控制 -->
+      <div class="control-yt" v-show="showYt&&!showYtbtns" @click="openYt"></div>
+      <div class="control-yt-close" v-show="showYtbtns" @click="openYt"></div>
+      <div v-show="showYtbtns" @click="kzYt(1)" class="ytBtns yt-left"></div>
+      <div v-show="showYtbtns" @click="kzYt(2)" class="ytBtns yt-right"></div>
+      <div v-show="showYtbtns" @click="kzYt(3)" class="ytBtns yt-top"></div>
+      <div v-show="showYtbtns" @click="kzYt(4)" class="ytBtns yt-bottom"></div>
+      <!-- 播放器 -->
+      <div class="prism-player" id="player-con"></div>
+    </div>
+    <!-- 工作区 -->
+    <div class="checkWork">
+      <!-- 统计及摄像头切换 -->
+      <div class="checkWork-head">
+        <div class="checkWork-head-row">
+          <!-- 机位 -->
+          <div>
+            <div>机位:</div>
+            <div>
+              <a-dropdown>
+                <a-menu slot="overlay">
+                  <a-menu-item key="1"> 收银台 </a-menu-item>
+                  <a-menu-item key="2"> 接车区 </a-menu-item>
+                  <a-menu-item key="3"> 洗车工位 </a-menu-item>
+                  <a-menu-item key="4"> 维修工位 </a-menu-item>
+                  <a-menu-item key="5"> 客户休息区 </a-menu-item>
+                </a-menu>
+                <a-button block> 收银台 <a-icon type="down" /> </a-button>
+              </a-dropdown>
+            </div>
+          </div>
+          <!-- 预置位 -->
+          <div>
+            <div>预置位:</div>
+            <div>
+              <a-dropdown>
+                <a-menu slot="overlay">
+                  <a-menu-item key="1"> 预置位1 </a-menu-item>
+                  <a-menu-item key="2"> 预置位2 </a-menu-item>
+                  <a-menu-item key="3"> 预置位3 </a-menu-item>
+                </a-menu>
+                <a-button block> 请选择 <a-icon type="down" /> </a-button>
+              </a-dropdown>
+            </div>
+          </div>
+        </div>
+        <div class="checkWork-head-row">
+          <div>
+            <div>进度:2/13</div>
+            <div>耗时:3时5分钟</div>
+            <div>得分:10.2/22.3</div>
+          </div>
+          <div>
+            <div>不适用:0</div>
+            <div>不合格:3</div>
+            <div>合格:5</div>
+          </div>
+        </div>
+      </div>
+      <!-- 打分 -->
+      <div class="checkWork-body">
+        <div class="checkWork-body-tabs">
+          <div class="tabs-items active">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+          <div class="tabs-items">
+            <div>正常营业</div>
+            <div>0/4</div>
+          </div>
+        </div>
+        <div class="checkWork-body-tabCons">
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+			  <div>
+				  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+			  </div>
+			  <div>
+				  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+			  </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+          <div class="tabCons-items">
+            <div>
+              <div><b>正常营业</b></div>
+              <div><a-icon type="camera" style="font-size: 30px;" /></div>
+            </div>
+            <div>
+              <div>分值:10 <a-icon type="edit" style="font-size: 20px;margin-left: 10px;"/></div>
+              <div>
+                <a-icon type="minus-circle" style="font-size: 30px;color: #13C2C2;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="close-circle" style="font-size: 30px;color: #ff0000;margin-right: 15px;"/>
+              </div>
+              <div>
+            	  <a-icon type="check-circle" style="font-size: 30px;color: #00be00;"/>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+<script>
+	var vm = new Vue({
+	  el: '#app',
+	  data: {
+		  player: null,
+		  showYt: false,
+		  showYtbtns: false
+		},
+		mounted () {
+		  this.videoInit()
+		},
+		methods: {
+		  // 初始化播放器
+		  videoInit(){
+			  const _this = this
+			  // 设置标题
+			  document.title = '远程巡店'
+			  // 初始化播放器
+			  _this.player = new Aliplayer({
+			    'id': 'player-con',
+			    'source': 'https://play.zyucgj.com/live/34020000001320000001.m3u8?auth_key=1599027535-0-0-621dab70e039a552649ccd535d1cc3f9',
+			    'width': '100%',
+			    'height': '240px',
+			    'autoplay': false,
+			    'isLive': true,
+			    'rePlay': true,
+			    'playsinline': true,
+			    'preload': true,
+			    'language': 'zh-cn',
+			    'useH5Prism': true,
+			    'extraInfo': {
+			      'crossOrigin': 'anonymous'
+			    },
+			    'skinLayout': [
+			      {
+			        'name': 'bigPlayButton',
+			        'align': 'cc'
+			      },
+			      {
+			        'name': 'errorDisplay',
+			        'align': 'tlabs',
+			        'x': 0,
+			        'y': 0
+			      },
+			      {
+			        'name': 'infoDisplay'
+			      },
+			      {
+			        'name': 'controlBar',
+			        'align': 'blabs',
+			        'x': 0,
+			        'y': 0,
+			        'children': [
+			          {
+			            'name': 'fullScreenButton',
+			            'align': 'tr',
+			            'x': 15,
+			            'y': 10
+			          },
+			          {
+			            'name': 'volume',
+			            'align': 'tr',
+			            'x': 15,
+			            'y': 8
+			          },
+			          {
+			            'name': 'snapshot',
+			            'align': 'tl',
+			            'x': 15,
+			            'y': 8
+			          }
+			        ]
+			      }
+			    ]
+			  }, function (player) {
+			    _this.sendMsg('The player is created')
+			  }
+			  )
+			  /* h5截图按钮, 截图成功回调 */
+			  _this.player.on('snapshoted', function (data) {
+			    const pictureData = data.paramData.base64
+			    _this.sendMsg('截图成功回调')
+			  })
+			  // 控制栏
+			  _this.player.on('playing', function () {
+			    _this.showYt = true
+			  })
+			  _this.player.on('error',function(e){
+				  console.log(JSON.stringify(e),'error')
+			  })
+		  },
+		  // 发送消息给app
+		  sendMsg (msg) {
+		    uni.postMessage({
+		      data: {
+		        action: 'message',
+		        msg: msg
+		      }
+		    })
+		  },
+		  // 显示云台控制按钮
+		  openYt () {
+		    this.showYtbtns = !this.showYtbtns
+		  },
+		  // 控制云台
+		  kzYt (index) {
+		    const cmd = ['left', 'right', 'up', 'down']
+		    this.sendMsg('控制云台' + cmd[index - 1])
+		  },
+		  // 修改分数
+		  openEditFs(){
+			   this.$confirm({
+				  title: 'Confirm',
+				  content: 'Bla bla ...',
+				  okText: '确认',
+				  cancelText: '取消',
+				});
+		  }
+		}
+	})
+ 
+</script>
+</body>
+</html>

File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/manifest.json


BIN
unpackage/dist/dev/app-plus/static/logo.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/home-active.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/home.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/user-active.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/user.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/work-active.png


BIN
unpackage/dist/dev/app-plus/static/tabbar/work.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/view.css


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/dev/app-plus/view.umd.min.js


Some files were not shown because too many files changed in this diff