瀏覽代碼

1.1.5版本知虫

zkl 5 年之前
父節點
當前提交
7999bd211d
共有 35 個文件被更改,包括 2153 次插入1512 次删除
  1. 1 1
      discern/build/utils.js
  2. 1 1
      discern/config/index.js
  3. 1 0
      discern/index.html
  4. 5 1
      discern/src/App.vue
  5. 二進制
      discern/src/assets/image/558.png
  6. 二進制
      discern/src/assets/image/code.jpg
  7. 二進制
      discern/src/assets/image/code.png
  8. 二進制
      discern/src/assets/image/code1.png
  9. 二進制
      discern/src/assets/image/guanw.png
  10. 二進制
      discern/src/assets/image/log.png
  11. 8 0
      discern/src/assets/scss/enroll.scss
  12. 202 188
      discern/src/assets/scss/forget.scss
  13. 32 5
      discern/src/assets/scss/help.scss
  14. 32 10
      discern/src/assets/scss/home.scss
  15. 21 4
      discern/src/assets/scss/login.scss
  16. 2 1
      discern/src/assets/scss/person.scss
  17. 1 0
      discern/src/assets/scss/share.scss
  18. 3 0
      discern/src/components/enroll/enroll.vue
  19. 3 3
      discern/src/components/field_details/field_details.vue
  20. 1 0
      discern/src/components/fieldsShow/fieldsShow.vue
  21. 3 0
      discern/src/components/forget/forget.vue
  22. 142 16
      discern/src/components/help/help.vue
  23. 192 0
      discern/src/components/helpTxt/helpTxt.vue
  24. 167 0
      discern/src/components/helpWangzhi/helpWangzhi.vue
  25. 425 371
      discern/src/components/home/home.vue
  26. 332 0
      discern/src/components/lianxi/lainxiA.html
  27. 25 373
      discern/src/components/lianxi/lianxi.vue
  28. 156 291
      discern/src/components/lianxi/lianxiA.vue
  29. 176 110
      discern/src/components/login/login.vue
  30. 28 14
      discern/src/components/mine/mine.vue
  31. 164 113
      discern/src/components/person/person.vue
  32. 3 3
      discern/src/components/questions_details/questions_details.vue
  33. 5 5
      discern/src/components/share/share.vue
  34. 2 2
      discern/src/main.js
  35. 20 0
      discern/src/router/index.js

+ 1 - 1
discern/build/utils.js

@@ -47,7 +47,7 @@ exports.cssLoaders = function (options) {
     if (options.extract) {
       return ExtractTextPlugin.extract({
         use: loaders,
-        // publicPath: '../../',
+        // publicPath: '../../',     
         fallback: 'vue-style-loader'
       })
     } else {

+ 1 - 1
discern/config/index.js

@@ -64,7 +64,7 @@ module.exports = {
     // Paths
     assetsRoot: path.resolve(__dirname, '../dist'),
     assetsSubDirectory: 'static',
-    assetsPublicPath: './',
+    assetsPublicPath: '/',
 
     /** 
      * Source Maps

+ 1 - 0
discern/index.html

@@ -11,6 +11,7 @@
   <div id="app"></div>
   <!-- built files will be auto injected -->
   <script src="https://unpkg.com/vue-baidu-map"></script>
+  <!-- <script src="http://api.map.baidu.com/api?v=2.0&ak=fdc489725992ba738397be65dc657d9e"></script> -->
   <script src="./static/clipper.js"></script>
   <script>
     ; /(iPhone|iPad|iPhone OS|Phone|iPod|iOS|Android)/i.test(navigator.userAgent) &&

+ 5 - 1
discern/src/App.vue

@@ -43,6 +43,8 @@ import mapShow from "./components/mapShow/mapShow";
 import share from "./components/share/share";
 import help from "./components/help/help";
 import tourist from "./components/tourist/tourist";
+import helpTxt from "./components/helpTxt/helpTxt";
+import helpWangzhi from "./components/helpWangzhi/helpWangzhi";
 
 export default {
   name: "app",
@@ -100,7 +102,9 @@ export default {
     mapShow,
     share,
     help,
-    tourist
+    tourist,
+    helpTxt,
+    helpWangzhi
   }
 };
 </script>

二進制
discern/src/assets/image/558.png


二進制
discern/src/assets/image/code.jpg


二進制
discern/src/assets/image/code.png


二進制
discern/src/assets/image/code1.png


二進制
discern/src/assets/image/guanw.png


二進制
discern/src/assets/image/log.png


+ 8 - 0
discern/src/assets/scss/enroll.scss

@@ -26,6 +26,14 @@ span {
     margin: -1rem 0 0 .5rem;
     color: #fff;
   }
+
+  .enroll_box .forgetA {
+    color: #d3d4d8;
+    // margin: 13rem 0 0 0;
+    position: fixed;
+    bottom: .5rem;
+    left: 3.6rem;
+  }
     
 
 

+ 202 - 188
discern/src/assets/scss/forget.scss

@@ -1,36 +1,39 @@
 .forget_box {
-    background-color: #fafafa;
-  }
-  span {
-    margin: 0 0 0 -8px;
-  }
-  .forget_box_baijingimg {
-    width: 100%;
-    height: 8rem;
-  }
-
-  //返回箭头
+  background-color: #fafafa;
+}
+
+span {
+  margin: 0 0 0 -8px;
+}
+
+.forget_box_baijingimg {
+  width: 100%;
+  height: 8rem;
+}
+
+//返回箭头
 .forget_box .returnR {
   margin: -7.5rem 0 0 .5rem;
 }
+
 .forget_box .returnR_img {
   width: .8rem;
   height: .8rem;
 }
-  
-  
-  // 登录框
-  .forget_box_card {
-    position: absolute;
-    left: 0;
-    top: -1rem;
-    margin: 5rem 0 0 .45rem;
-    width: 90%;
-    border-radius: 25px;
-    background-color: #fff;
-  }
-
-  // 忘记密码text
+
+
+// 登录框
+.forget_box_card {
+  position: absolute;
+  left: 0;
+  top: -1rem;
+  margin: 5rem 0 0 .45rem;
+  width: 90%;
+  border-radius: 25px;
+  background-color: #fff;
+}
+
+// 忘记密码text
 .forget_box_text {
   border: 1px solid #000;
   font-size: 30px;
@@ -38,167 +41,178 @@
   margin: -1rem 0 0 .5rem;
   color: #fff;
 }
-  
-  //   账号样式
-  .forget_box .el-input__icon {
-    color: #65d1a3;
-    font-size: 22px;
-    margin: 0 0 0 .52rem;
-  }
-  
-  .forget_box .el-icon-circle-close:before {
-    margin: 0 0 0 .45rem;
-  }
-  
-  .username_ipt {
-    margin: .5rem 0 .5rem -2.2rem;
-  }
-  
-  .forget_box .el-input--prefix .el-input__inner {
-    width: 7.4rem;
-    padding-left: 1.5rem;
-  }
-  
-  .forget_box .el-input__inner {
-    border: 0;
-    border-radius: 0;
-    border-bottom: 1px solid #dcdfe6;
-  }
-  
-  // 第一次密码样式
-  .forget_box .paswd_box {
-      position: relative;
-      margin: 0 0 22px 0;
-    }
-    
-    .forget_box .paswd_box_imgA,
-    .forget_box .paswd_box_imgB {
-      width: .55rem;
-      height: .55rem;
-    }
-    
-    .forget_box .paswd_box_imgA {
-      border: 1px soldi #000;
-      position: absolute;
-      left: .6rem;
-      top: .08rem;
-    }
-    
-    .forget_box .paswd_box_imgB {
-      border: 1px soldi #000;
-      position: absolute;
-      right: .6rem;
-      top: .08rem;
-    }
-  
-  //   第二次密码样式
-  .forget_box .paswd_boxA {
-    position: relative;
+
+// 忘记密码
+.forget_box .forgetA {
+  color: #d3d4d8;
+  // margin: 13rem 0 0 0;
+  position: fixed;
+  bottom: .5rem;
+  left: 3.6rem;
+}
+
+//   账号样式
+.forget_box .el-input__icon {
+  color: #65d1a3;
+  font-size: 22px;
+  margin: 0 0 0 .52rem;
+}
+
+.forget_box .el-icon-circle-close:before {
+  margin: 0 0 0 .45rem;
+}
+
+.username_ipt {
+  margin: .5rem 0 .5rem -2.2rem;
+}
+
+.forget_box .el-input--prefix .el-input__inner {
+  width: 7.4rem;
+  padding-left: 1.5rem;
+}
+
+.forget_box .el-input__inner {
+  border: 0;
+  border-radius: 0;
+  border-bottom: 1px solid #dcdfe6;
+}
+
+// 第一次密码样式
+.forget_box .paswd_box {
+  position: relative;
+  margin: 0 0 22px 0;
+}
+
+.forget_box .paswd_box_imgA,
+.forget_box .paswd_box_imgB {
+  width: .55rem;
+  height: .55rem;
+}
+
+.forget_box .paswd_box_imgA {
+  border: 1px soldi #000;
+  position: absolute;
+  left: .6rem;
+  top: .08rem;
+}
+
+.forget_box .paswd_box_imgB {
+  border: 1px soldi #000;
+  position: absolute;
+  right: .6rem;
+  top: .08rem;
+}
+
+//   第二次密码样式
+.forget_box .paswd_boxA {
+  position: relative;
   //   margin: 0 0 22px 0;
-  }
-  
-  .forget_box .paswd_boxA_imgA,
-  .forget_box .paswd_boxA_imgB {
-    width: .55rem;
-    height: .55rem;
-  }
-  
-  .forget_box .paswd_boxA_imgA {
-    border: 1px soldi #000;
-    position: absolute;
-    left: .6rem;
-    top: .08rem;
-  }
-  
-  .forget_box .paswd_boxA_imgB {
-    border: 1px soldi #000;
-    position: absolute;
-    right: .6rem;
-    top: .08rem;
-  }
-  
-  .forget_box .paswd_ipt {
-    height: .7rem;
-    width: 6rem;
-    border: 0;
-    border-bottom: 1px solid #dcdfe6;
-    padding: 0 0 .2rem 1.5rem;
-    outline: none;
-  }
-  
-  input::-webkit-input-placeholder {
-    /* WebKit browsers 适配谷歌 */
-    color: #c0c4cc;
-  }
-  
-  //   验证码样式
-  .auth_code_ipt {
-    margin: .5rem 0 .5rem -4.5rem;
-  }
-  
-  .forget_box_auth_code .el-input--prefix .el-input__inner {
-    width: 4.6rem;
-    padding-left: 1.6rem;
-  }
-  
-  .forget_box_auth_code .el-input__icon {
-    color: #65d1a3;
-    font-size: 20px;
-    margin: 0 0 0 1.7rem;
-  }
-  
-  .forget_box_auth_code .el-icon-circle-close:before {
-    margin: 0 0 0 -2.5rem;
-  }
-  
-  
-  
-  // 登录按钮
-  .forget_box .el-button--primary {
-    background-color: #65d1a3;
-    border-color: #65d1a3;
-    width: 7rem;
-    margin: 2rem 0 0 -1rem;
-    border-radius: 25px;
-    font-size: 20px;
-    letter-spacing: 8px;
-  }
-  
-  // 注册按钮
-  .forget_box .register {
-    background-color: #65d1a3;
-    color: #fff;
-    border-color: #e0e2e7;
-    margin: .8rem 0 1rem -1rem;
-  }
-  .forget_box .register span {
-    margin: 0;
-  }
-  
-  // 验证码按钮
-  .auth_code_btn {
-      position: absolute;
-      right: .8rem;
-      top: 5.8rem;
-  }
-  .auth_code_btn .el-button--primary{
-      width: 3rem;
-      font-size: 13px;
-      letter-spacing: 1px;
-      margin: 0;
-      font-variant: no-historical-ligatures;
-  }
-  
-  .forget_box .el-form-item {
-      margin-bottom: 14px;
-  }
-  
-  
-  // 已注册过弹框
-  .loginText {
-    color: #65d1a3;
-  }
-  
-  .btn {
-    margin: 8rem 0 0 0;
-  }
+}
+
+.forget_box .paswd_boxA_imgA,
+.forget_box .paswd_boxA_imgB {
+  width: .55rem;
+  height: .55rem;
+}
+
+.forget_box .paswd_boxA_imgA {
+  border: 1px soldi #000;
+  position: absolute;
+  left: .6rem;
+  top: .08rem;
+}
+
+.forget_box .paswd_boxA_imgB {
+  border: 1px soldi #000;
+  position: absolute;
+  right: .6rem;
+  top: .08rem;
+}
+
+.forget_box .paswd_ipt {
+  height: .7rem;
+  width: 6rem;
+  border: 0;
+  border-bottom: 1px solid #dcdfe6;
+  padding: 0 0 .2rem 1.5rem;
+  outline: none;
+}
+
+input::-webkit-input-placeholder {
+  /* WebKit browsers 适配谷歌 */
+  color: #c0c4cc;
+}
+
+//   验证码样式
+.auth_code_ipt {
+  margin: .5rem 0 .5rem -4.5rem;
+}
+
+.forget_box_auth_code .el-input--prefix .el-input__inner {
+  width: 4.6rem;
+  padding-left: 1.6rem;
+}
+
+.forget_box_auth_code .el-input__icon {
+  color: #65d1a3;
+  font-size: 20px;
+  margin: 0 0 0 1.7rem;
+}
+
+.forget_box_auth_code .el-icon-circle-close:before {
+  margin: 0 0 0 -2.5rem;
+}
+
+
+
+// 登录按钮
+.forget_box .el-button--primary {
+  background-color: #65d1a3;
+  border-color: #65d1a3;
+  width: 7rem;
+  margin: 2rem 0 0 -1rem;
+  border-radius: 25px;
+  font-size: 20px;
+  letter-spacing: 8px;
+}
+
+// 注册按钮
+.forget_box .register {
+  background-color: #65d1a3;
+  color: #fff;
+  border-color: #e0e2e7;
+  margin: .8rem 0 1rem -1rem;
+}
+
+.forget_box .register span {
+  margin: 0;
+}
+
+// 验证码按钮
+.auth_code_btn {
+  position: absolute;
+  right: .8rem;
+  top: 5.8rem;
+}
+
+.auth_code_btn .el-button--primary {
+  width: 3rem;
+  font-size: 13px;
+  letter-spacing: 1px;
+  margin: 0;
+  font-variant: no-historical-ligatures;
+}
+
+.forget_box .el-form-item {
+  margin-bottom: 14px;
+}
+
+
+// 已注册过弹框
+.loginText {
+  color: #65d1a3;
+}
+
+.btn {
+  margin: 8rem 0 0 0;
+}

+ 32 - 5
discern/src/assets/scss/help.scss

@@ -1,5 +1,6 @@
 .help_box {
-    background: #fafafa;
+    // background: #fafafa;
+    background: #f5f5f5;
   }
   
   // 头部
@@ -45,8 +46,9 @@
 // 版本号
 .help_mainVersions {
     // border: 1px solid #000;
-    margin-top: .8rem;
+    // margin-top: .8rem;
     background: #fff;
+    padding: .35rem 0 .5rem 0;
 }
 .help_mainVersions_img {
     padding: .5rem 0 0 0;
@@ -58,6 +60,7 @@
     font-size: 15px;
     font-weight: 550;
     line-height: 3;
+    color: #8d8d8d;
 }
 
 //公司介绍
@@ -65,8 +68,9 @@
     background: #fff;
     font-size: 15px;
     // border: 1px solid #000;
-    padding: 5% 5% 5% 5%;
-    width: 90%;
+    padding: 5% 5% 5% 0;
+    // width: 90%;
+    width: 95%;
     margin: .5rem auto;
     text-align: left;
     text-indent:2em;
@@ -98,4 +102,27 @@
     font-size: 13px;
     line-height: 2;
     margin: 1.5rem 0 0 0;
-}
+}
+
+// 技术支持
+.company_box-list {
+  margin-top: .5rem;
+  display: flex;
+  justify-content: space-between;
+}
+.company_box-list-txt {
+  text-align: left;
+  color: #7a7a7a;
+}
+.company_box-list-txt2Box {
+  display: flex;
+  justify-content: space-between;
+}
+.company_box-list-txt2-txt {
+  color: #7a7a7a;
+}
+.company_box-list-txt2-img {
+  width: .5rem;
+  height: .5rem;
+  margin: .05rem 0 0 0;
+}

+ 32 - 10
discern/src/assets/scss/home.scss

@@ -1,6 +1,6 @@
 // elementui系统设置
 .el-dialog__footer {
-  margin: 0 .3rem 0 0;
+  margin: 0 .45rem 0 0;
 }
 
 .scroll {
@@ -314,8 +314,8 @@
 .loading_box_del {
   font-size: 30px;
   color: #fff;
-  float: right;
-  margin: .5rem .5rem 0 0;
+  float: left;
+  margin: .5rem 0 0 .5rem;
 }
 
 .loading_box_div {
@@ -602,10 +602,9 @@
 .container-water-fall {
   width: 100vw;
   box-sizing: border-box;
-
-  // margin: 0 0 2.3rem 0;
-  margin: 0 0 2.3rem .2rem;
-
+  display: flex;
+  flex-wrap: wrap;
+  margin: 0 0 0 .45rem;
   h4 {
     padding-top: 56px;
     padding-bottom: 28px;
@@ -639,17 +638,25 @@
   }
 
   .cell-item {
-    width: 100%;
+    // width: 100%;
+    width: 45%;
+    height: 7rem;
     background: #ffffff;
     border: 2px solid #f0f0f0;
     border-radius: 12px 12px 12px 12px;
     overflow: hidden;
     box-sizing: border-box;
-    margin: 0.2rem 0 0 0;
+    // margin: 0.2rem 0 0 0;
+    margin: 0.2rem .15rem 0 0;
 
+    .fieldShow_image_box {
+      width: 100%;
+      height: 50%;
+    }
+    
     .fieldShow_image {
       width: 100%;
-      height: auto;
+      height: 100%;
       display: block;
     }
 
@@ -1082,3 +1089,18 @@
 .mescroll-totop {
   bottom: 53px;
 }
+
+
+// 识别弹框样式
+.home_box-discern-imageTxtBox .el-dialog .el-dialog__body {
+  margin: 2rem 0 -1rem 0;
+}
+.home_box-discern-image {
+  width: 100%;
+  position: absolute;
+  top: -2.8rem;
+  left: 0;
+}
+.home_box-discern-imageTxt {
+
+}

+ 21 - 4
discern/src/assets/scss/login.scss

@@ -20,11 +20,13 @@
   justify-content: space-around;
   margin: -6rem 0 0 0;
 }
+
 .login_box_text {
   font-size: 30px;
   // color: rgb(255, 231, 126);
   color: #fff;
 }
+
 .active {
   color: rgb(255, 231, 126);
   font-size: 35px;
@@ -122,6 +124,7 @@ input::-webkit-input-placeholder {
   font-size: 20px;
   letter-spacing: 8px;
 }
+
 .login_box .el-button--primary span {
   margin: 0;
 }
@@ -140,17 +143,27 @@ input::-webkit-input-placeholder {
   // margin: 13rem 0 0 0;
 }
 
+.login_box .forgetA {
+  color: #d3d4d8;
+  // margin: 13rem 0 0 0;
+  position: fixed;
+  bottom: .5rem;
+  left: 3.6rem;
+}
+
 //是否更新弹框
 .home_box_div {
   display: inline-block;
 }
+
 //昆虫按钮
 .kunchongBtn span {
-margin: 0;
+  margin: 0;
 }
+
 //病害按钮
 .binghaiBtn span {
- margin: 0;
+  margin: 0;
 }
 
 
@@ -160,20 +173,24 @@ margin: 0;
   left: 0;
   bottom: 0;
   width: 100%;
-  background-color: rgba(0,0,0,.8);
+  background-color: rgba(0, 0, 0, .8);
 }
+
 .schedule_box_div {
   margin: 65% 0 0 5%;
 }
+
 .schedule_box_title {
   font-size: 15px;
   line-height: 1rem;
   color: #fff;
 }
+
 .login_box .el-progress {
   line-height: 5;
   width: 90%;
 }
+
 .login_box .el-progress__text {
   color: #fff;
-}
+}

+ 2 - 1
discern/src/assets/scss/person.scss

@@ -114,6 +114,7 @@
     width: .45rem;
     height: .45rem;
     position: absolute;
-    top: 11rem;
+    // top: 11rem;
+    top: 9.2rem;
     right: 1.8rem;
 }

+ 1 - 0
discern/src/assets/scss/share.scss

@@ -48,6 +48,7 @@
 
 .code_box_img {
   margin: 0 auto;
+  width: 65%;
 }
 
 

+ 3 - 0
discern/src/components/enroll/enroll.vue

@@ -123,6 +123,9 @@
       </el-form>
     </el-card>
 
+    <!-- 忘记密码 -->
+    <div class="forgetA">云飞科技技术支持</div>
+
     <!-- 已注册提示弹框 -->
     <!-- 点击相机图标弹出选择昆虫或病害窗口 -->
     <el-dialog title="提示" :visible.sync="dialogVisible" width="65%">

+ 3 - 3
discern/src/components/field_details/field_details.vue

@@ -11,7 +11,7 @@
       <div class="field_details_NameBox_boxA">
         <div class="field_details_NameBox_box">
           <img
-            :src=" 'bigservers/' + this.redata.photo"
+            :src=" 'bigservers/' + this.redata.photo + '?' + Math.random() * 10"
             alt
             class="field_details_NameBox_image"
           />
@@ -77,7 +77,7 @@
               <div class="criticOne_profile">
                 <!-- 头像和名称 -->
                 <div class="profile_box">
-                  <img :src=" 'bigservers/' + item.photo" alt class="profile_img" />
+                  <img :src=" 'bigservers/' + item.photo + '?' + Math.random() * 10" alt class="profile_img" />
                   <div
                     class="profile_name"
                   >{{ item.user_remark === '' || item.user_remark === null ? item.username : item.user_remark }}</div>
@@ -125,7 +125,7 @@
                 <!-- 头像和名称 -->
                 <div class="criticTwo_profile">
                   <img
-                    :src=" 'bigservers/' + itemA.photo"
+                    :src=" 'bigservers/' + itemA.photo + '?' + Math.random() * 10"
                     alt
                     class="profileTwo_img"
                   />

+ 1 - 0
discern/src/components/fieldsShow/fieldsShow.vue

@@ -293,6 +293,7 @@ export default {
       _this.loadingA = true;
       let form = new FormData();
       form.append("file", file.file);
+      console.log(file.file)
       form.append("req", "farm");
       _this
         .$axios({

+ 3 - 0
discern/src/components/forget/forget.vue

@@ -123,6 +123,9 @@
       </el-form>
     </el-card>
 
+    <!-- 忘记密码 -->
+    <div class="forgetA">云飞科技技术支持</div>
+
     <!-- 未注册提示弹框 -->
     <el-dialog title="提示" :visible.sync="dialogVisible" width="65%">
       <span>该手机号还未注册过!</span>

文件差異過大導致無法顯示
+ 142 - 16
discern/src/components/help/help.vue


文件差異過大導致無法顯示
+ 192 - 0
discern/src/components/helpTxt/helpTxt.vue


+ 167 - 0
discern/src/components/helpWangzhi/helpWangzhi.vue

@@ -0,0 +1,167 @@
+<!--  -->
+<template>
+  <div class="helpWangzhi_box" :style="'height:' + fullHeight + 'px'">
+    <!-- 头部 -->
+    <div class="share_head">
+      <div class="share_head_returnA" @click="FanHui()">
+        <img
+          src="../../assets/image/left.png"
+          alt
+          class="share_head_returnA_img"
+        />
+      </div>
+
+      <!-- 标题 -->
+      <div class="head_title">
+        <span class="head_title_text">关于我们</span>
+      </div>
+    </div>
+    <!-- 线 -->
+    <div class="share_segment"></div>
+    <!-- 线 -->
+
+    <!-- 文字 -->
+    <div class="share_txt_box">
+      <span class="share_txt">扫码进入云飞科技官网</span>
+    </div>
+    <!-- 文字 -->
+
+    <!-- 二维码 -->
+    <div class="code_box">
+      <img src="../../assets/image/guanw.png" alt="" class="code_box_img" />
+    </div>
+    <!-- 二维码 -->
+  </div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      fullHeight: document.documentElement.clientHeight,
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    fullHeight(val) {
+      //监控浏览器高度变化
+      if (!this.timer) {
+        this.fullHeight = val;
+        this.timer = true;
+        let that = this;
+        setTimeout(function () {
+          //防止过度调用监测事件,导致卡顿
+          that.timer = false;
+        }, 400);
+      }
+    },
+  },
+  //方法集合
+  methods: {
+    //动态获取浏览器高度
+    get_boderHeight() {
+      const that = this;
+      window.onresize = () => {
+        return (() => {
+          window.fullHeight = document.documentElement.clientHeight;
+          that.fullHeight = window.fullHeight;
+        })();
+      };
+    },
+
+    // 返回home页面
+    FanHui() {
+      let _this = this;
+      // _this.$router.push("/person");
+      _this.$router.replace("/help");
+      //   location.reload();
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+};
+</script>
+<style lang='scss'>
+@import "../../assets/scss/bus.scss";
+@import "../../assets/scss/share.scss";
+//@import url(); 引入公共css类
+</style>
+
+<style lang="scss">
+.helpWangzhi_box {
+  // background: #d5d8d1;
+  background: #474747;
+}
+
+// 头部
+.helpWangzhi_box .share_head {
+  display: flex;
+  justify-content: space-between;
+  height: 1.5rem;
+  background: #fff;
+  // margin-bottom: .6rem;
+}
+
+// 返回图标
+.helpWangzhi_box .share_head_returnA {
+  margin: 0.3rem 0 0 0.5rem;
+}
+
+.share_head_returnA_img {
+  width: 0.5rem;
+  height: 0.5rem;
+  margin: 0.1rem 0 0 0;
+}
+
+// 标题
+.helpWangzhi_box .head_title {
+  margin: 0 6.2rem 0 0;
+  padding: 0.2rem 0 0 0;
+}
+
+.helpWangzhi_box .head_title_text {
+  font-size: 25px;
+  font-weight: 500;
+  margin: 0 auto;
+}
+
+//线
+.share_segment {
+  width: 100%;
+  border-bottom: 1px solid rgb(190, 187, 187);
+}
+
+//二维码
+.code_box {
+  margin-top: 2rem;
+}
+
+.code_box_img {
+  margin: 0 auto;
+  width: 65%;
+}
+
+//文字
+.share_txt_box {
+  width: 100%;
+  height: 1.5rem;
+  margin: 2rem 0 0 0;
+  background: #474747;
+}
+.share_txt {
+  line-height: 1.5rem;
+  font: bold 25px Brush Script MT;
+  color: #222;
+  text-shadow: 0px 2px 3px #666;
+}
+</style>

文件差異過大導致無法顯示
+ 425 - 371
discern/src/components/home/home.vue


+ 332 - 0
discern/src/components/lianxi/lainxiA.html

@@ -0,0 +1,332 @@
+ 
+<!DOCTYPE html>
+<html>
+<head>
+ 
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
+    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nroAiX0Lf6ppNEGt2dBLtDkOldGCPFwF"></script>
+    <script type="text/javascript" src="http://api.map.baidu.com/library/Heatmap/2.0/src/Heatmap_min.js"></script>
+ 
+ 
+    <title>热力图 功能示例</title>
+ 
+    <style type="text/css">
+    ul,li{list-style: none;margin:0;padding: 0}
+ 
+    html{height:100%}
+    body{height:100%;margin:0px;padding:0px}
+    #container{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
+    #r-result{height:100%;width:20%;float:left;}
+    .btn-container{margin:20px;}
+    fieldset{border: 1px solid;border-radius: 3px;}
+    fieldset label{font-size: 14px; line-height: 30px;}
+    .btn{
+    	color: #333;background-color: #fff;display: inline-block;padding: 6px 12px;font-size: 14px;
+		font-weight: normal;line-height: 1.428571429;border: 1px solid #ccc;border-radius: 4px;
+		margin-top: 5px;margin-bottom: 5px;}	
+	.btn:hover{color: #333;background-color: #ebebeb;border-color: #adadad;}
+	.text-primary{
+		font-weight: bold;
+	}
+	textarea{border: 1px solid #ccc;border-radius: 4px;}
+	textarea:focus{border-color: #66afe9;outline: 0;box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);}
+	.color-list li{font-size: 14px; line-height: 30px;}
+    </style>	
+</head>
+<body>
+<div id="container">
+</div>
+<div id="r-result">
+    <div class="btn-container">
+    	<fieldset>
+    		 <legend>热力图设置区域</legend>
+    	<label>设置热力图半径0-100</label>
+    	<input type="range" max="100" style = "width:150px" min="1" value="20" onchange="setRadius(this.value)">
+    	<span id="radius-result" class="text-primary">20</span>
+    	<br/>
+    	<label>设置热力图透明度0-100</label>
+    	<input type="range" max="100" style = "width:150px" min="1" value="80" onchange="setOpacity(this.value)">
+    	<span id="opacity-result" class="text-primary">80</span>
+		<br/>
+		<label>设置热力图渐变区间</label>
+ 
+		<ul class="color-list">
+			<li>起始颜色: <input data-key="0.1" type="color" value="#66FF00" onchange="setGradient()"/></li>
+			<li>中间颜色: <input  data-key="0.5" type="color" value="#FFAA00" onchange="setGradient()"/></li>
+			<li>结束颜色: <input data-key="1.0" type="color" value="#FF0000" onchange="setGradient()"/></li>
+		</ul>
+ 
+        <span style="font-size:14px;">显示热力图:</span><input type="checkbox"  onclick="toggle();" checked="checked" /></br>
+        </fieldset>
+    </div>
+ 
+</div>
+<script type="text/javascript">
+    var map = new BMap.Map("container");          // 创建地图实例
+ 
+    var point = new BMap.Point(116.418261, 39.921984);
+    map.centerAndZoom(point, 5);             // 初始化地图,设置中心点坐标和地图级别
+    map.enableScrollWheelZoom(); // 允许滚轮缩放
+  
+ 
+ 
+ 
+    var points =[
+{"count": 712, "lat": 22.5385001957843, "lng":113.936539169252},
+{"count": 87, "lat": 45.8088258279521, "lng":126.541615090316},
+{"count": 35, "lat": 45.7658661637579, "lng":126.675638499523},
+{"count": 40, "lat": 43.8524275671504, "lng":125.296653763226},
+{"count": 297, "lat": 43.8406414749619, "lng":125.295401255854},
+{"count": 50, "lat": 43.8219535010431, "lng":125.330602075906},
+{"count": 66, "lat": 41.8022741388046, "lng":123.465461035375},
+{"count": 342, "lat": 41.6838300691906, "lng":123.471096644822},
+{"count": 43, "lat": 41.125475259583, "lng":122.975490266148},
+{"count": 38, "lat": 40.2264133715942, "lng":116.23761791731},
+{"count": 40, "lat": 39.9990465606024, "lng":117.418506894953},
+{"count": 114, "lat": 39.9654898411007, "lng":116.305434054497},
+{"count": 86, "lat": 39.9348272723959, "lng":116.422400977662},
+{"count": 912, "lat": 39.9109245472995, "lng":116.413383697123},
+{"count": 51, "lat": 39.8649371975573, "lng":116.292401887311},
+{"count": 40, "lat": 39.8162945478362, "lng":116.448872873244},
+{"count": 0, "lat": 39.7999408646228, "lng":116.513153100283},
+{"count": 93, "lat": 39.7325552365544, "lng":116.348625212231},
+{"count": 186, "lat": 39.0936678434039, "lng":117.20952321467},
+{"count": 182, "lat": 38.9189536667856, "lng":121.621631484592},
+{"count": 54, "lat": 38.0483119268727, "lng":114.521531901574},
+{"count": 0, "lat": 37.8534334207121, "lng":113.606568214219},
+{"count": 39, "lat": 36.6721629500427, "lng":117.082567313895},
+{"count": 157, "lat": 36.6565542017872, "lng":117.12639941261},
+{"count": 54, "lat": 36.0934495948601, "lng":120.381404487335},
+{"count": 286, "lat": 36.0722274966632, "lng":120.389455191146},
+{"count": 60, "lat": 36.0722274966632, "lng":120.389455191146},
+{"count": 110, "lat": 34.8060704456617, "lng":113.666447732395},
+{"count": 378, "lat": 34.7534388504544, "lng":113.631419207339},
+{"count": 571, "lat": 34.3472688166239, "lng":108.946465550632},
+{"count": 81, "lat": 34.2991481065889, "lng":108.953401187814},
+{"count": 38, "lat": 34.2364739404118, "lng":108.940497747807},
+{"count": 142, "lat": 34.2206352399858, "lng":108.951440456377},
+{"count": 62, "lat": 34.212666550113, "lng":117.290575434394},
+{"count": 64, "lat": 32.4006769360903, "lng":119.419418908229},
+{"count": 45, "lat": 32.1026002078297, "lng":118.915422984906},
+{"count": 39, "lat": 32.0703557396758, "lng":121.081425494976},
+{"count": 77, "lat": 32.064679277923, "lng":118.634604058754},
+{"count": 929, "lat": 32.0646528856184, "lng":118.802421721245},
+{"count": 76, "lat": 32.0547566829488, "lng":118.804412635747},
+{"count": 97, "lat": 32.0451386064049, "lng":118.80040736097},
+{"count": 74, "lat": 32.0093696954464, "lng":118.738569446952},
+{"count": 100, "lat": 31.9978588054656, "lng":118.785445364057},
+{"count": 118, "lat": 31.9865494312008, "lng":120.901591738661},
+{"count": 143, "lat": 31.9585268691769, "lng":118.846567059092},
+{"count": 50, "lat": 31.8848866955543, "lng":117.271459133819},
+{"count": 40, "lat": 31.8637869416569, "lng":117.315587044539},
+{"count": 113, "lat": 31.8573782171042, "lng":117.266460782301},
+{"count": 55, "lat": 31.8363239476236, "lng":119.977514292755},
+{"count": 553, "lat": 31.8265778336868, "lng":117.233442664976},
+{"count": 251, "lat": 31.8157956533278, "lng":119.981484713278},
+{"count": 57, "lat": 31.7992934677822, "lng":117.316576258567},
+{"count": 66, "lat": 31.7064466117421, "lng":119.948611672294},
+{"count": 41, "lat": 31.659538276741, "lng":120.759495886651},
+{"count": 42, "lat": 31.5947616328144, "lng":120.363425711028},
+{"count": 73, "lat": 31.5716450241348, "lng":120.309599514361},
+{"count": 50, "lat": 31.5346396999741, "lng":120.291547526155},
+{"count": 48, "lat": 31.5346396999741, "lng":120.291547526155},
+{"count": 382, "lat": 31.4988097326857, "lng":120.318583288106},
+{"count": 182, "lat": 31.4102794734761, "lng":121.496563013524},
+{"count": 194, "lat": 31.3908634250818, "lng":120.987452497949},
+{"count": 202, "lat": 31.3801553396772, "lng":121.272595058352},
+{"count": 68, "lat": 31.3746899214927, "lng":120.648565935835},
+{"count": 86, "lat": 31.3418313009926, "lng":120.623454973101},
+{"count": 0, "lat": 31.3304431437088, "lng":120.729889713315},
+{"count": 833, "lat": 31.3035640744417, "lng":120.592412229593},
+{"count": 166, "lat": 31.2697466989313, "lng":121.511586454534},
+{"count": 101, "lat": 31.2682614458462, "lng":120.63850751921},
+{"count": 207, "lat": 31.265524144657, "lng":121.532519937325},
+{"count": 271, "lat": 31.2549733682795, "lng":121.403569349165},
+{"count": 234, "lat": 31.2372471520636, "lng":121.491585592524},
+{"count": 4926, "lat": 31.235929042252, "lng":121.480538860176},
+{"count": 391, "lat": 31.2338449304016, "lng":121.453431772768},
+{"count": 682, "lat": 31.2273482924363, "lng":121.550454606831},
+{"count": 245, "lat": 31.2268479682254, "lng":121.43045437545},
+{"count": 438, "lat": 31.1945567728227, "lng":121.443396352763},
+{"count": 127, "lat": 31.1554543179807, "lng":121.130553104672},
+{"count": 47, "lat": 31.1446441904726, "lng":120.651567174544},
+{"count": 639, "lat": 31.1188425800874, "lng":121.38861193361},
+{"count": 281, "lat": 31.0371351764644, "lng":121.234479596241},
+{"count": 71, "lat": 30.9237201102853, "lng":121.480503736431},
+{"count": 48, "lat": 30.8875337678345, "lng":114.382453996755},
+{"count": 95, "lat": 30.7509748309201, "lng":120.76355182586},
+{"count": 0, "lat": 30.7461261103737, "lng":103.935413788713},
+{"count": 86, "lat": 30.6973560428741, "lng":104.057403587137},
+{"count": 105, "lat": 30.6800378070068, "lng":104.067445474942},
+{"count": 66, "lat": 30.665589283983, "lng":104.108591550351},
+{"count": 83, "lat": 30.6619044903172, "lng":104.089561756597},
+{"count": 1135, "lat": 30.6558218784164, "lng":104.081533510424},
+{"count": 161, "lat": 30.648712685321, "lng":104.049424478275},
+{"count": 85, "lat": 30.6259198181092, "lng":114.143458737859},
+{"count": 141, "lat": 30.6072822768268, "lng":114.277506131822},
+{"count": 94, "lat": 30.6054027975623, "lng":114.316579187606},
+{"count": 1805, "lat": 30.5984667364009, "lng":114.311581554732},
+{"count": 104, "lat": 30.5875843407755, "lng":114.221460312071},
+{"count": 37, "lat": 30.5803993528211, "lng":103.930391542268},
+{"count": 37, "lat": 30.5626978409996, "lng":104.281396964356},
+{"count": 85, "lat": 30.5600520274434, "lng":114.225445554635},
+{"count": 199, "lat": 30.5595669835224, "lng":114.32254851755},
+{"count": 68, "lat": 30.544256638254, "lng":104.196547966564},
+{"count": 536, "lat": 30.506333956808, "lng":114.350455546015},
+{"count": 314, "lat": 30.4247392687451, "lng":120.306592167175},
+{"count": 99, "lat": 30.381564218182, "lng":114.32855126446},
+{"count": 88, "lat": 30.3246425666297, "lng":120.148447009263},
+{"count": 319, "lat": 30.2633105670119, "lng":120.211538778112},
+{"count": 1771, "lat": 30.2530829816934, "lng":120.215511803721},
+{"count": 304, "lat": 30.214332950144, "lng":120.218471181393},
+{"count": 137, "lat": 30.187511222214, "lng":120.270470583974},
+{"count": 40, "lat": 30.0363693113069, "lng":120.585478478853},
+{"count": 62, "lat": 29.9548849633495, "lng":121.722518991324},
+{"count": 35, "lat": 29.9046593599394, "lng":121.850576214612},
+{"count": 163, "lat": 29.8929483794761, "lng":121.560421289221},
+{"count": 887, "lat": 29.866033045866, "lng":121.628572494341},
+{"count": 113, "lat": 29.8657207083655, "lng":121.557403072539},
+{"count": 274, "lat": 29.8242063499959, "lng":121.55542706991},
+{"count": 123, "lat": 29.7239273430066, "lng":106.637559060602},
+{"count": 473, "lat": 29.5689962453389, "lng":106.558434155376},
+{"count": 59, "lat": 29.5590901829938, "lng":106.57544006681},
+{"count": 55, "lat": 29.5079277155528, "lng":106.51755873943},
+{"count": 38, "lat": 29.5026830988349, "lng":106.668429778595},
+{"count": 59, "lat": 29.31114987541, "lng":120.081580993059},
+{"count": 54, "lat": 29.0846393855136, "lng":119.653436190529},
+{"count": 40, "lat": 28.7254704805065, "lng":115.884636656884},
+{"count": 103, "lat": 28.6912591797752, "lng":115.905466026059},
+{"count": 236, "lat": 28.6894552950607, "lng":115.864589442316},
+{"count": 52, "lat": 28.6875960061734, "lng":115.968552405054},
+{"count": 252, "lat": 28.6619767099006, "lng":115.883535693651},
+{"count": 55, "lat": 28.2613786876841, "lng":112.992584917638},
+{"count": 170, "lat": 28.2414888364726, "lng":112.937447644098},
+{"count": 635, "lat": 28.2348893999436, "lng":112.945473195352},
+{"count": 72, "lat": 28.1919132473047, "lng":113.039407744872},
+{"count": 111, "lat": 28.1422327116541, "lng":113.042421559857},
+{"count": 63, "lat": 28.1182112174406, "lng":112.996592258517},
+{"count": 101, "lat": 28.0010854044722, "lng":120.706476890355},
+{"count": 0, "lat": 27.7518618549563, "lng":106.719346094206},
+{"count": 1338, "lat": 26.6835884991238, "lng":106.629596839886},
+{"count": 47, "lat": 26.6533248223097, "lng":106.636576763527},
+{"count": 126, "lat": 26.0881140375554, "lng":119.310491623217},
+{"count": 291, "lat": 26.080429420698, "lng":119.30346983854},
+{"count": 38, "lat": 26.0585281506447, "lng":119.320528211016},
+{"count": 78, "lat": 26.0528416919268, "lng":119.28043216493},
+{"count": 64, "lat": 25.1223722798295, "lng":102.758526212101},
+{"count": 40, "lat": 25.0629568507656, "lng":121.567929274569},
+{"count": 45, "lat": 25.0498349619814, "lng":102.713423280596},
+{"count": 50, "lat": 25.0431987609468, "lng":102.671557123503},
+{"count": 80, "lat": 25.0211964238592, "lng":102.7504817066},
+{"count": 81, "lat": 24.8799523304983, "lng":118.682446266804},
+{"count": 367, "lat": 24.873998150044, "lng":102.852448365004},
+{"count": 211, "lat": 24.4854066051763, "lng":118.096435499766},
+{"count": 77, "lat": 24.2795568866606, "lng":121.150732031455},
+{"count": 37, "lat": 23.688230292088, "lng":113.062468325272},
+{"count": 176, "lat": 23.4111615048757, "lng":113.226575806292},
+{"count": 41, "lat": 23.3590917177251, "lng":116.688528640548},
+{"count": 90, "lat": 23.2665924006313, "lng":113.817545668895},
+{"count": 6147, "lat": 23.135336306695, "lng":113.271431344459},
+{"count": 271, "lat": 23.135336306695, "lng":113.271431344459},
+{"count": 472, "lat": 23.1352601201484, "lng":113.273426480996},
+{"count": 303, "lat": 23.1317911349748, "lng":113.250502263373},
+{"count": 1356, "lat": 23.1303578351046, "lng":113.368509424279},
+{"count": 147, "lat": 23.1163588547255, "lng":114.423558016581},
+{"count": 549, "lat": 23.0889812966478, "lng":113.323539980973},
+{"count": 36, "lat": 23.0528887711256, "lng":112.47148894063},
+{"count": 243, "lat": 23.035011446003, "lng":113.14944567828},
+{"count": 713, "lat": 23.0277587507889, "lng":113.128512195497},
+{"count": 697, "lat": 23.0273084116433, "lng":113.758420457876},
+{"count": 97, "lat": 23.0153743688163, "lng":113.129505182407},
+{"count": 883, "lat": 22.9438307315175, "lng":113.39046958043},
+{"count": 59, "lat": 22.8320110042885, "lng":113.72808396217},
+{"count": 90, "lat": 22.8226066011871, "lng":108.373450825818},
+{"count": 145, "lat": 22.8104534267953, "lng":113.300453439544},
+{"count": 53, "lat": 22.8079292965282, "lng":113.531435543723},
+{"count": 977, "lat": 22.757596649222, "lng":114.048528761211},
+{"count": 83, "lat": 22.7544658836353, "lng":113.942560061931},
+{"count": 1170, "lat": 22.726016550781, "lng":114.254454878961},
+{"count": 66, "lat": 22.584603880965, "lng":113.08855619524},
+{"count": 924, "lat": 22.5600329089245, "lng":113.89042744066},
+{"count": 277, "lat": 22.5544848758557, "lng":114.137431901571},
+{"count": 5687, "lat": 22.5484566379841, "lng":114.064551836587},
+{"count": 582, "lat": 22.5284659120719, "lng":114.061547004657},
+{"count": 179, "lat": 22.5223146707905, "lng":113.399422362631},
+{"count": 244, "lat": 22.2765646542492, "lng":113.582554786549},
+{"count": 97, "lat": 22.2730038617986, "lng":113.550472434084},
+{"count": 38, "lat": 21.276723439012, "lng":110.365554413928},
+{"count": 49, "lat": 20.0440494392567, "lng":110.325525471264}];
+    
+ 
+    if(!isSupportCanvas()){
+    	alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')
+    }
+ 
+    	
+	//详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md
+ 
+	//参数说明如下:
+	/* visible 热力图是否显示,默认为true
+     * opacity 热力的透明度,1-100
+     * radius 势力图的每个点的半径大小   
+     * gradient  {JSON} 热力图的渐变区间 . gradient如下所示
+     *	{
+			.2:'rgb(0, 255, 255)',
+			.5:'rgb(0, 110, 255)',
+			.8:'rgb(100, 0, 255)'
+		}
+		其中 key 表示插值的位置, 0~1. 
+		    value 为颜色值. 
+     */
+	heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":20});
+	map.addOverlay(heatmapOverlay);
+	heatmapOverlay.setDataSet({data:points,max:1000});
+   
+ 
+    function setRadius(radius){
+    	document.getElementById("radius-result").innerHTML = radius;
+        heatmapOverlay.setOptions({"radius":radius})
+    }
+ 
+    function setOpacity(opacity){
+    	document.getElementById("opacity-result").innerHTML = opacity;
+        heatmapOverlay.setOptions({"opacity":opacity})
+    }
+ 
+    function toggle(){
+        heatmapOverlay.toggle()
+    }
+ 
+     function setGradient(){
+ 
+     	/*
+		格式如下所示:
+		{
+	  		0:'rgb(102, 255, 0)',
+	 	 	.5:'rgb(255, 170, 0)',
+		  	1:'rgb(255, 0, 0)'
+		}
+     	*/
+     	var gradient = {};
+     	var colors = document.querySelectorAll("input[type='color']");
+     	colors = [].slice.call(colors,0);
+     	colors.forEach(function(ele){
+			gradient[ele.getAttribute("data-key")] = ele.value; 
+     	});
+        heatmapOverlay.setOptions({"gradient":gradient});
+    }
+ 
+ 
+    function isSupportCanvas(){
+        var elem = document.createElement('canvas');
+        return !!(elem.getContext && elem.getContext('2d'));
+    }
+ 
+ 
+ 
+ 
+ 
+</script>
+</body>
+</html>

+ 25 - 373
discern/src/components/lianxi/lianxi.vue

@@ -1,387 +1,39 @@
-<!--  -->
 <template>
-  <div class="mapShow_box" :style="'height:' + fullHeight + 'px'">
-    <!-- 地图加载动画 -->
-    <div v-if="loadinAShow" class="loading_boxA" :style="'height:' + fullHeight + 'px'">
-      <div class="loading_boxA_div">
-        <img src="../../../static/dongh.gif" alt class="loading_gif" />
-        <div class="loadingA_text">地图加载中,请稍后...</div>
-      </div>
-    </div>
-
-    <!-- 百度地图 -->
-    <div class="mapbox">
-      <baidu-map
-        :style="'height:' + fullHeight + 'px'"
-        locationIcon
-        class="map"
-        :double-click-zoom="true"
-        @ready="handler"
-        :center="center"
-        :zoom="150"
-        :map-click="false"
-        :mapStyle="mapStyle"
-        @touchmove="move()"
-        @touchend="end()"
-      >
-        <bm-geolocation
-          @locationSuccess="getLoctionSuccess"
-          @locationError="getLoctionError"
-          anchor="BMAP_ANCHOR_BOTTOM_RIGHT"
-          :showAddressBar="false"
-          :autoLocation="true"
-        ></bm-geolocation>
-        <bml-marker-clusterer :averageCenter="true">
-          <div v-for="(marker, i) of markers" :key="i">
-            <bm-marker
-              class="dian"
-              :dragging="true"
-              animation="BMAP_ANIMATION_BOUNCE"
-              :position="{lng: marker.lng, lat: marker.lat}"
-              @click="infoWindowOpen(marker)"
-            >
-              <bm-label
-                @click="details(marker.id, marker.ret)"
-                v-if="nameShow"
-                :content="marker.name"
-                :labelStyle="{color: 'DarkSeaGreen', fontSize : '22px', border: 0}"
-                :offset="{width: -35, height: 30}"
-              />
-            </bm-marker>
-          </div>
-        </bml-marker-clusterer>
-      </baidu-map>
-    </div>
-
-    <!-- 底部导航 -->
-    <bottomNav v-show="botNav"></bottomNav>
-    <!-- 底部导航 -->
+  <div class>
+    <el-checkbox
+      :indeterminate="isIndeterminate"
+      v-model="checkAll"
+      @change="handleCheckAllChange"
+    >全选</el-checkbox>
+    <div style="margin: 15px 0;"></div>
+    <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
+      <el-checkbox v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox>
+    </el-checkbox-group>
   </div>
 </template>
-
 <script>
-// 按需引入点聚合
-import { BmlMarkerClusterer } from "vue-baidu-map";
-// 引入marker
-import BmMarker from "vue-baidu-map/components/overlays/Marker";
-import { BmGeolocation, BmNavigation } from "vue-baidu-map";
-import bottomNav from "../bottomNav/bottomNav"; //底部导航栏
-
-const markers = [];
-const carList = [{}];
+const cityOptions = ["上海", "北京", "广州", "深圳"];
 export default {
-  // name: "mapShow",
-  name: "Bmaptrace",
-  //import引入的组件需要注入到对象中才能使用
-  components: {
-    BmlMarkerClusterer,
-    BmMarker,
-    // 手动定位控件
-    BmGeolocation,
-    // 地图放大缩小控件
-    BmNavigation,
-    // marker控件
-    BmMarker,
-    bottomNav
-  },
   data() {
-    //这里存放数据
-    const self = this;
     return {
-      botNav: true, //底部导航
-      isShow: true, // 判断账号详情是否有数据或是账号类型是否为游客登录
-      loadinAShow: true, //地图加载动画
-      fullHeight: document.documentElement.clientHeight,
-      drawer: false, //抽屉弹出显示
-      direction: "ltr", //抽屉弹框方向
-      dialogVisible: false, //选择昆虫还是病害识别
-      result: "", //用户点击选中的图片
-      loadingShow: false, //请求等待动画
-      sHow: false, //预览对象
-      redata: [], //用户详情数据
-      dengLV: true, //判断账号类型是游客还是用户;如果是游客那就将更多和搜索框隐藏
-      numData: "", //游客账号的识别体验次数
-      aaa: "1111",
-      //百度地图
-      // 初始化地图中心点
-      center: null,
-      BMap: "",
-      map: "",
-      markers,
-      carList,
-      show: false,
-      redata: [], //后端传来的数据
-      active: false,
-      latA: "",
-      lngA: "",
-      nameShow: false,
-      mapStyle: {
-        styleJson: [
-          {
-            featureType: "all",
-            elementType: "geometry",
-            stylers: {
-              // hue: "#007fff",
-              hue: "#eb8f16",
-              saturation: 89
-            }
-          },
-          {
-            featureType: "water",
-            elementType: "all",
-            stylers: {
-              color: "#ffffff"
-            }
-          }
-        ]
-      },
-      //设置地图详细信息
-      address: "", //位置详细信息
-      jgNameDialog: false,
-      show: false,
-      postionMap: {
-        //地图坐标
-        lng: 120.211486,
-        lat: 30.256576
-      },
-      location: "",
-      keyword: "", //搜索框关键词
-      // zoom: 12.8, //放大比例
-      address: "", //位置详细信息
-      add: {
-        siteName: "",
-        site: "",
-        jd: "",
-        wd: "",
-        desce: "",
-        type: "",
-        jgName: "",
-        jgNum: ""
-      },
-      organizationData: [],
-      jgName: "",
-      jgNum: ""
+      checkAll: false,
+      checkedCities: ["上海", "北京"],
+      cities: cityOptions,
+      isIndeterminate: true,
     };
   },
-  //监听属性 类似于data概念
-  computed: {},
-  //监控data中的数据变化
-  watch: {
-    fullHeight(val) {
-      //监控浏览器高度变化
-      if (!this.timer) {
-        this.fullHeight = val;
-        this.timer = true;
-        let that = this;
-        setTimeout(function() {
-          //防止过度调用监测事件,导致卡顿
-          that.timer = false;
-        }, 400);
-      }
-    }
-  },
-  //方法集合
   methods: {
-    //动态获取浏览器高度
-    get_boderHeight() {
-      const that = this;
-      window.onresize = () => {
-        return (() => {
-          window.fullHeight = document.documentElement.clientHeight;
-          that.fullHeight = window.fullHeight;
-        })();
-      };
-    },
-
-    //百度地图事件
-    //地图初始化
-    handler({ BMap, map }) {
-      const _this = this;
-      // 获取自动定位方法
-      var geolocation = new BMap.Geolocation();
-      // 获取逆解析方法实例
-      this.myGeo = new BMap.Geocoder();
-      // 获取自动定位获取的坐标信息
-      geolocation.getCurrentPosition(
-        function(r) {
-          _this.center = {
-            lng: r.point.lng,
-            lat: r.point.lat
-          };
-          _this.point = {
-            lng: r.point.lng,
-            lat: r.point.lat
-          };
-          localStorage.setItem("jingdu", _this.point.lng); //存经纬度
-          localStorage.setItem("weidu", _this.point.lat);
-          _this.ceshi(r);
-        },
-
-        { enableHighAccuracy: true }
-      );
-      map.enableScrollWheelZoom(true);
-      _this.BMap = BMap;
-      _this.map = map;
-    },
-
-    //点聚合
-    addr() {
-      let bb = this.redata;
-      for (let i = 0; i < bb.length; i++) {
-        const position = {
-          lng: this.redata[i].lng,
-          lat: this.redata[i].lat,
-          url: this.redata[i].img,
-          name: this.redata[i].name,
-          id: this.redata[i].id,
-          ret: this.redata[i].ret,
-          showFlag: false
-        };
-        const position1 = {
-          lng: this.redata[i].lng,
-          lat: this.redata[i].lat,
-          url: this.redata[i].img,
-          name: this.redata[i].name,
-          id: this.redata[i].id,
-          ret: this.redata[i].ret,
-          showFlag: false
-        };
-        if (i % 2 === 0) {
-          markers.push(position);
-        } else {
-          markers.push(position1);
-        }
-      }
-      const carList = [{}];
-    },
-
-    //手动定位成功回调
-    getLoctionSuccess(e) {
-      this.lngA = e.point.lng;
-      this.latA = e.point.lat;
-      localStorage.setItem("jingdu", this.lngA); //存经纬度
-      localStorage.setItem("weidu", this.latA);
-
-      this.show = true;
-      this.postionMap.lng = e.point.lng; //通过  e.point.lng获取经度
-      this.postionMap.lat = e.point.lat; //通过  e.point.lat获取纬度
-      this.add.jd = e.point.lng;
-      this.add.wd = e.point.lat;
-
-      let geocoder = new BMap.Geocoder(); //创建地址解析器的实例
-      geocoder.getLocation(e.point, rs => {
-        this.add.site = rs.address;
-        //地址描述(string)=
-        // console.log(rs.address);    //这里打印可以看到里面的详细地址信息,可以根据需求选择想要的
-        // console.log(rs.addressComponents);//结构化的地址描述(object)
-        // console.log(rs.addressComponents.province); //省
-        // console.log(rs.addressComponents.city); //城市
-        // console.log(rs.addressComponents.district); //区县
-        // console.log(rs.addressComponents.street); //街道
-        // console.log(rs.addressComponents.streetNumber); //门牌号
-        // console.log(rs.surroundingPois); //附近的POI点(array)
-        // console.log(rs.business); //商圈字段,代表此点所属的商圈(string)
-
-        let a = rs.addressComponents.province;
-        let b = rs.addressComponents.city;
-        let c = rs.addressComponents.district;
-        let d = rs.addressComponents.street;
-        let e = rs.addressComponents.streetNumber;
-        localStorage.setItem("dizhi", a + b + c + d + e); //存地址
-      });
-      this.loadinAShow = false; //关闭地图加载动画
-    },
-    //手动定位失败回调
-    getLoctionError() {
-      alert("定位失败");
+    handleCheckAllChange(val) {
+      console.log(val)
+      this.checkedCities = val ? cityOptions : [];
+      this.isIndeterminate = false;
     },
-
-    // 关闭信息窗口 @close 自带的方法
-    infoWindowClose(marker) {
-      marker.showFlag = false;
+    handleCheckedCitiesChange(value) {
+      let checkedCount = value.length;
+      this.checkAll = checkedCount === this.cities.length;
+      this.isIndeterminate =
+        checkedCount > 0 && checkedCount < this.cities.length;
     },
-
-    infoWindowOpen(marker, e, id) {
-      this.nameShow = true;
-    },
-
-    details(id, r) {
-      localStorage.setItem("memoryID", id); //存id
-      localStorage.setItem("memoryDistinction", r); //存ret
-      localStorage.setItem("Point", "2"); //存标识,是从mapShow页面的点聚合效果中进入的详情
-      this.$router.push("/record");
-    },
-
-    //自动定位
-    ceshi(r) {
-      let geocoder = new BMap.Geocoder(); //创建地址解析器的实例
-      geocoder.getLocation(r.point, rs => {
-        this.add.site = rs.address;
-        let a = rs.addressComponents.province;
-        let b = rs.addressComponents.city;
-        let c = rs.addressComponents.district;
-        let d = rs.addressComponents.street;
-        let e = rs.addressComponents.streetNumber;
-        localStorage.setItem("dizhi", a + b + c + d + e); //存地址
-      });
-      this.loadinAShow = false; //关闭地图加载动画
-    },
-
-    //触摸移动时触发的事件
-    move() {
-      this.nameShow = false;
-      this.botNav = false;
-    },
-
-    end() {
-      this.botNav = true;
-    }
-  },
-  //生命周期 - 创建完成(可以访问当前this实例)
-  created() {
-    this.$axios({
-      method: "get",
-      url: "bigservers/insect_map?page=1"
-    })
-      .then(res => {
-        this.redata = res.data;
-        this.addr();
-      })
-      .catch(error => {
-        console.log(error);
-      });
   },
-  //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {
-    this.get_boderHeight();
-    let _this = this;
-    //判断登录账号类型是用户还是游客
-    if (localStorage.getItem("ret") === "tourist") {
-      _this.dengLV = false;
-      _this.isShow = false;
-    } else if (localStorage.getItem("ret") === "user") {
-      _this.dengLV = true;
-      _this.ret = true;
-    }
-    _this
-      .$axios({
-        method: "get",
-        url: "bigservers/see_user"
-      })
-      .then(res => {
-        _this.redata = res.data[0];
-      })
-      .catch(error => {
-        this.$message({
-          message: "获取用户信息失败",
-          type: "error",
-          duration: 1000
-        });
-      });
-  }
 };
-</script>
-<style lang="scss">
-@import "../../assets/scss/bus.scss";
-@import "../../assets/scss/mapShow.scss";
-</style>
+</script>

+ 156 - 291
discern/src/components/lianxi/lianxiA.vue

@@ -1,311 +1,176 @@
-<template>
-  <div id="merchantInformation">
-    <div class="upData">
-      <label class="btn btn-orange" for="uploads">上传LOGO</label>
-      <input
-        type="file"
-        id="uploads"
-        :value="imgFile"
-        style="position:absolute; clip:rect(0 0 0 0);"
-        accept="image/png, image/jpeg, image/gif, image/jpg"
-        @change="uploadImgg($event, 1)"
-      />
-      <div class="line">
-        <div class="cropper-content">
-          <div class="cropper">
-            <vueCropper
-              ref="cropper"
-              :img="option.img"
-              :outputSize="option.size"
-              :outputType="option.outputType"
-              :info="true"
-              :full="option.full"
-              :canMove="option.canMove"
-              :canMoveBox="option.canMoveBox"
-              :original="option.original"
-              :autoCrop="option.autoCrop"
-              :autoCropWidth="option.autoCropWidth"
-              :autoCropHeight="option.autoCropHeight"
-              :fixedBox="option.fixedBox"
-              @realTime="realTime"
-              @imgLoad="imgLoad"
-            ></vueCropper>
-          </div>
-           <button @click="AddImg">确定</button>
-          <div style="margin-left:20px;">
-            <div
-              class="show-preview"
-              :style="{'width': '150px', 'height':'155px',  'overflow': 'hidden', 'margin': '5px'}"
-            >
-              <div :style="previews.div" class="preview">
-                <img :src="previews.url" :style="previews.img" />
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
+<template lang="html">
+    <div id="load">
+        <!--存放百度地图容器-->
+        <div id="container"></div>
     </div>
-  </div>
 </template>
 
 <script>
-import { VueCropper } from "vue-cropper";
 export default {
   data() {
     return {
-      crap: false,
-      previews: {},
-      option: {
-        img: "",
-        outputSize: 1, //剪切后的图片质量(0.1-1)
-        full: false, //输出原图比例截图 props名full
-        outputType: "png",
-        canMove: true,
-        original: false,
-        canMoveBox: true,
-        autoCrop: true,
-        autoCropWidth: 132,
-        autoCropHeight: 132,
-        fixedBox: true,
-        fixedNumber: [1, 1]
-      },
-      fileName: "", //本机文件地址
-      imgFile: "",
-      imgurl: ""
+      // 热力图的点数据,lng:点的经度 点的lat纬度 count:点的热力程度
+      points: [
+        { lng: 123.418261, lat: 41.921984, count: 50 },
+        { lng: 123.423332, lat: 41.916532, count: 51 },
+        { lng: 123.419787, lat: 41.930658, count: 15 },
+        { lng: 123.418455, lat: 41.920921, count: 40 },
+        { lng: 123.418843, lat: 41.915516, count: 100 },
+        { lng: 123.42546, lat: 41.918503, count: 6 },
+        { lng: 123.423289, lat: 41.919989, count: 18 },
+        { lng: 123.418162, lat: 41.915051, count: 80 },
+        { lng: 123.422039, lat: 41.91782, count: 11 },
+        { lng: 123.41387, lat: 41.917253, count: 7 },
+        { lng: 123.41773, lat: 41.919426, count: 42 },
+        { lng: 123.421107, lat: 41.916445, count: 4 },
+        { lng: 123.417521, lat: 41.917943, count: 27 },
+        { lng: 123.419812, lat: 41.920836, count: 23 },
+        { lng: 123.420682, lat: 41.91463, count: 60 },
+        { lng: 123.415424, lat: 41.924675, count: 8 },
+        { lng: 123.419242, lat: 41.914509, count: 15 },
+        { lng: 123.422766, lat: 41.921408, count: 25 },
+        { lng: 123.421674, lat: 41.924396, count: 21 },
+        { lng: 123.427268, lat: 41.92267, count: 1 },
+        { lng: 123.417721, lat: 41.920034, count: 51 },
+        { lng: 123.412456, lat: 41.92667, count: 7 },
+        { lng: 123.420432, lat: 41.919114, count: 11 },
+        { lng: 123.425013, lat: 41.921611, count: 35 },
+        { lng: 123.418733, lat: 41.931037, count: 22 },
+        { lng: 123.419336, lat: 41.931134, count: 4 },
+        { lng: 123.413557, lat: 41.923254, count: 5 },
+        { lng: 123.418367, lat: 41.92943, count: 3 },
+        { lng: 123.424312, lat: 41.919621, count: 100 },
+        { lng: 123.423874, lat: 41.919447, count: 87 },
+        { lng: 123.424225, lat: 41.923091, count: 32 },
+        { lng: 123.417801, lat: 41.921854, count: 44 },
+        { lng: 123.417129, lat: 41.928227, count: 21 },
+        { lng: 123.426426, lat: 41.922286, count: 80 },
+        { lng: 123.421597, lat: 41.91948, count: 32 },
+        { lng: 123.423895, lat: 41.920787, count: 26 },
+        { lng: 123.423563, lat: 41.921197, count: 17 },
+        { lng: 123.417982, lat: 41.922547, count: 17 },
+        { lng: 123.426126, lat: 41.921938, count: 25 },
+        { lng: 123.42326, lat: 41.915782, count: 100 },
+        { lng: 123.419239, lat: 41.916759, count: 41 },
+        { lng: 123.417185, lat: 41.929123, count: 11 },
+        { lng: 123.417237, lat: 41.927518, count: 9 },
+        { lng: 123.417784, lat: 41.915754, count: 47 },
+        { lng: 123.420193, lat: 41.917061, count: 52 },
+        { lng: 123.422735, lat: 41.915619, count: 100 },
+        { lng: 123.418495, lat: 41.915958, count: 46 },
+        { lng: 123.416292, lat: 41.931166, count: 9 },
+        { lng: 123.419916, lat: 41.924055, count: 8 },
+        { lng: 123.42189, lat: 41.921308, count: 11 },
+        { lng: 123.413765, lat: 41.929376, count: 3 },
+        { lng: 123.418232, lat: 41.920348, count: 50 },
+        { lng: 123.417554, lat: 41.930511, count: 15 },
+        { lng: 123.418568, lat: 41.918161, count: 23 },
+        { lng: 123.413461, lat: 41.926306, count: 3 },
+        { lng: 123.42232, lat: 41.92161, count: 13 },
+        { lng: 123.4174, lat: 41.928616, count: 6 },
+        { lng: 123.424679, lat: 41.915499, count: 21 },
+        { lng: 123.42171, lat: 41.915738, count: 29 },
+        { lng: 123.417836, lat: 41.916998, count: 99 },
+        { lng: 123.420755, lat: 41.928001, count: 10 },
+        { lng: 123.414077, lat: 41.930655, count: 14 },
+        { lng: 123.426092, lat: 41.922995, count: 16 },
+        { lng: 123.41535, lat: 41.931054, count: 15 },
+        { lng: 123.413022, lat: 41.921895, count: 13 },
+        { lng: 123.415551, lat: 41.913373, count: 17 },
+        { lng: 123.421191, lat: 41.926572, count: 1 },
+        { lng: 123.419612, lat: 41.917119, count: 9 },
+        { lng: 123.418237, lat: 41.921337, count: 54 },
+        { lng: 123.423776, lat: 41.921919, count: 26 },
+        { lng: 123.417694, lat: 41.92536, count: 17 },
+        { lng: 123.415377, lat: 41.914137, count: 19 },
+        { lng: 123.417434, lat: 41.914394, count: 43 },
+        { lng: 123.42588, lat: 41.922622, count: 27 },
+        { lng: 123.418345, lat: 41.919467, count: 8 },
+        { lng: 123.426883, lat: 41.917171, count: 3 },
+        { lng: 123.423877, lat: 41.916659, count: 34 },
+        { lng: 123.415712, lat: 41.915613, count: 14 },
+        { lng: 123.419869, lat: 41.931416, count: 12 },
+        { lng: 123.416956, lat: 41.925377, count: 11 },
+        { lng: 123.42066, lat: 41.925017, count: 38 },
+        { lng: 123.416244, lat: 41.920215, count: 91 },
+        { lng: 123.41929, lat: 41.915908, count: 54 },
+        { lng: 123.422116, lat: 41.919658, count: 21 },
+        { lng: 123.4183, lat: 41.925015, count: 15 },
+        { lng: 123.421969, lat: 41.913527, count: 3 },
+        { lng: 123.422936, lat: 41.921854, count: 24 },
+        { lng: 123.41905, lat: 41.929217, count: 12 },
+        { lng: 123.424579, lat: 41.914987, count: 57 },
+        { lng: 123.42076, lat: 41.915251, count: 70 },
+        { lng: 123.425867, lat: 41.918989, count: 8 },
+      ],
+      map: "", // 保存地图实例
+      centerLng: "123.418261", // 经度
+      centerLat: "41.921984", // 纬度
+      heatmapOverlay: {}, // 热力图覆盖物
     };
   },
-  components: {
-    VueCropper
-  },
   methods: {
-    AddImg() {
-      this.$refs.cropper.getCropBlob(data => {
-        //把裁剪后的数据上传给后台
-        console.log(data);
-      });
+    // 创建和初始化地图函数
+    initMap() {
+      this.createMap(); // 创建地图
+      this.initHeatMap(); // 添加热力图覆盖物
     },
-    // 实时预览函数
-    realTime(data) {
-      this.previews = data;
-      // console.log(this.previews);
+    // 方法 - 创建地图
+    createMap() {
+      // 在百度地图容器中创建地图实例
+      let map = new BMap.Map("container");
+      // 将map变量存储在全局
+      this.map = map;
+      // 设定地图的中心点和坐标
+      let point = new BMap.Point(this.centerLng, this.centerLat);
+      // 设置中心点坐标和地图级别
+      this.map.centerAndZoom(point, 15);
+      // 允许滚轮缩放
+      this.map.enableScrollWheelZoom(point, 15);
+      // 添加左上角缩放比例尺(offset: new BMap.Size(0, 0)为比例尺的坐标位置)
+      var opts = { offset: new BMap.Size(10, 10) };
+      this.map.addControl(new BMap.NavigationControl(opts));
+      // 设置地图默认缩放比例
+      this.map.setZoom(15);
     },
-    //选择本地图片
-    uploadImgg(e, num) {
-      console.log("uploadImg");
-      var _this = this;
-      //上传图片
-      var file = e.target.files[0];
-      console.log(file)
-      _this.fileName = file.name;
-      if (!/\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/.test(e.target.value)) {
-        this.$message({
-          message: "图片类型必须是.gif,jpeg,jpg,png,bmp中的一种",
-          type: "warning"
-        });
-        return false;
-      }
-      var reader = new FileReader();
-      reader.onload = e => {
-        let data;
-        if (typeof e.target.result === "object") {
-          // 把Array Buffer转化为blob 如果是base64不需要
-          data = window.URL.createObjectURL(new Blob([e.target.result]));
-          console.log(data)
-        } else {
-          data = e.target.result;
-        }
-        if (num === 1) {
-          _this.option.img = data;
-        } else if (num === 2) {
-          _this.example2.img = data;
-        }
-      };
-      // 转化为base64
-      // reader.readAsDataURL(file)
-      // 转化为blob
-      reader.readAsArrayBuffer(file);
+    // 方法 - 添加热力图覆盖物
+    initHeatMap() {
+      this.heatmapOverlay = new BMapLib.HeatmapOverlay({
+        // 热力图的每个点的半径大小
+        radius: BMAP_POINT_SIZE_SMALL * 4,
+        // 热力的透明度0~1
+        opacity: 0.8,
+        // 其中 key 表示插值的位置0~1,value 为颜色值
+        gradient: {
+          0: "rgb(102, 255, 0)",
+          0.5: "rgb(255, 170, 0)",
+          1: "rgb(255, 0, 0)",
+        },
+      });
+      // 清除图层(每次重新调用需要清除上一个覆盖物图层)
+      this.map.clearOverlays();
+      // 添加热力覆盖物
+      this.map.addOverlay(this.heatmapOverlay);
+      this.heatmapOverlay.setDataSet({ data: this.points, max: 100 });
+      // 显示热力图,隐藏为this.heatmapOverlay.hide();
+      this.heatmapOverlay.show();
     },
-    imgLoad(msg) {
-      console.log("imgLoad");
-      console.log(msg);
-    }
-  }
+  },
+  mounted() {
+    // 创建和初始化地图函数
+    this.initMap();
+  },
 };
 </script>
 
 <style lang="less">
-.input_text .el-cascader .el-input .el-input__inner {
-  width: 477px;
-  height: 40px;
-  border: 1px solid #f1f1f1;
-}
-.input_text .el-select .el-input .el-input__inner {
-  width: 477px;
-  height: 40px;
-  border: 1px solid #f1f1f1;
-}
-#merchantInformation .upload-demo {
-  display: flex;
-}
-#merchantInformation .upload-demo li {
-  width: 100px;
-  height: 113px;
-  margin-top: 0px;
-  display: inline-block;
+#load {
+  width: 100%;
+  height: 100%;
 }
-#merchantInformation .el-date-editor.el-input,
-.el-date-editor .el-input__inner {
-  width: 477px;
-  height: 40px;
-}
-#merchantInformation .upload-demo .el-upload-list {
-  display: none;
+#container {
+  width: 100%;
+  height: 100%;
+  border: #ccc solid 1px;
 }
 </style>
-
-<style lang="less" scoped>
-#merchantInformation {
-  height: 925px;
-  width: 890px;
-  box-shadow: 0px 0px 1px #dfdddd;
-  background: #fff;
-  overflow: hidden;
-}
-.uploadingLogo {
-  margin-right: 80px;
-}
-// .uploadingLogoa{margin-right: 70px;}
-.logoUrl {
-  max-width: 300px;
-  border-radius: 10px;
-}
-.propagandaUrl {
-  width: 265px;
-  height: 177px;
-}
-.amendd {
-  position: absolute;
-  right: 90px;
-  top: 12px;
-  cursor: pointer;
-  display: flex;
-  align-items: center;
-  color: #1c8cfa;
-}
-.uploadImga {
-  width: 100px;
-  height: 90px;
-  margin-top: 10px;
-}
-
-.perfect {
-  color: #1c8cfa;
-  font-size: 14px;
-  display: flex;
-  justify-content: center;
-  flex-wrap: wrap;
-  p {
-    cursor: pointer;
-    width: 100%;
-    text-align: center;
-    margin-top: 10px;
-  }
-}
-.logo_I {
-  width: 100px;
-  height: 100px;
-}
-.UploadPictures_IMG {
-  width: 120px;
-  height: 100px;
-  margin-left: 20px;
-}
-.hintsize {
-  font-size: 12px;
-  color: #343435;
-}
-.info {
-  width: 720px;
-  margin: 0 auto;
-  .oper-dv {
-    height: 20px;
-    text-align: right;
-    margin-right: 100px;
-    a {
-      font-weight: 500;
-      &:last-child {
-        margin-left: 30px;
-      }
-    }
-  }
-  .info-item {
-    margin-top: 15px;
-    label {
-      display: inline-block;
-      width: 100px;
-      text-align: right;
-    }
-    .sel-img-dv {
-      position: relative;
-      .sel-file {
-        position: absolute;
-        width: 90px;
-        height: 30px;
-        opacity: 0;
-        cursor: pointer;
-        z-index: 2;
-      }
-      .sel-btn {
-        position: absolute;
-        cursor: pointer;
-        z-index: 1;
-      }
-    }
-  }
-}
-
-.cropper-content {
-  display: flex;
-  .cropper {
-    width: 200px;
-    height: 200px;
-  }
-  .show-preview {
-    width: 132px !important;
-    height: 135px !important;
-    flex: 1;
-    -webkit-flex: 1;
-    display: flex;
-
-    .preview {
-      overflow: hidden;
-      border-radius: 20px;
-      border: 1px solid #cccccc;
-      background: #cccccc;
-      margin-left: 40px;
-    }
-  }
-}
-.cropper-content .show-preview .preview {
-  margin-left: 0;
-}
-.btn-orange {
-  width: 100px;
-  height: 40px;
-  display: block;
-  line-height: 40px;
-  background: #1c8cfa;
-  color: #fff;
-  text-align: center;
-  border-radius: 10px;
-  margin-right: 30px;
-}
-.upData {
-  display: flex;
-  align-items: center;
-  margin-top: 20px;
-}
-.line {
-  margin-left: 21px;
-}
-</style>

+ 176 - 110
discern/src/components/login/login.vue

@@ -1,6 +1,10 @@
 <!--  -->
 <template>
-  <div class="login_box" :style="'height:' + fullHeight + 'px'" v-loading="loading">
+  <div
+    class="login_box"
+    :style="'height:' + fullHeight + 'px'"
+    v-loading="loading"
+  >
     <!-- 背景图 -->
     <img src="../../assets/image/bajing.png" alt class="login_box_baijingimg" />
 
@@ -8,11 +12,13 @@
     <ul class="login_box_text_box">
       <li
         class="login_box_text"
-        v-for="(item,index) in items"
+        v-for="(item, index) in items"
         :key="index"
-        :class="{active:istrue==index}"
-        @click="istrue=index, deng(index)"
-      >{{ item.name }}</li>
+        :class="{ active: istrue == index }"
+        @click="(istrue = index), deng(index)"
+      >
+        {{ item.name }}
+      </li>
     </ul>
 
     <!-- 登录框 -->
@@ -20,7 +26,12 @@
     <transition name="el-fade-in-linear">
       <div v-if="show3">
         <el-card class="login_box_card">
-          <el-form :model="ruleForm" ref="ruleForm" label-width="50px" class="demo-ruleForm">
+          <el-form
+            :model="ruleForm"
+            ref="ruleForm"
+            label-width="50px"
+            class="demo-ruleForm"
+          >
             <el-form-item prop="username">
               <el-input
                 v-model.trim="ruleForm.username"
@@ -40,7 +51,9 @@
                 <input
                   class="paswd_ipt"
                   type="password"
-                  :onkeyup="ruleForm.password = ruleForm.password.replace(/\s+/g,'')"
+                  :onkeyup="
+                    (ruleForm.password = ruleForm.password.replace(/\s+/g, ''))
+                  "
                   v-model="ruleForm.password"
                   placeholder="请输入不能小于6位的密码"
                   ref="input2"
@@ -51,20 +64,26 @@
                 <input
                   class="paswd_ipt"
                   type="text"
-                  :onkeyup="ruleForm.password = ruleForm.password.replace(/\s+/g,'')"
+                  :onkeyup="
+                    (ruleForm.password = ruleForm.password.replace(/\s+/g, ''))
+                  "
                   v-model="ruleForm.password"
                   placeholder="请输入不能小于6位的密码"
                   ref="input2"
                   maxlength="8"
                 />
               </div>
-              <img :src="seen ? seenImg : unseenImg" @click="changeType()" class="paswd_box_imgB" />
+              <img
+                :src="seen ? seenImg : unseenImg"
+                @click="changeType()"
+                class="paswd_box_imgB"
+              />
             </div>
 
             <!-- 记住密码 -->
             <div class="box clearfix">
               <div class="automate">
-                <el-checkbox v-model="checked" style="color:#f00303;">
+                <el-checkbox v-model="checked" style="color: #f00303">
                   <span class="automate_text">记住密码</span>
                 </el-checkbox>
               </div>
@@ -76,7 +95,9 @@
                 登录
               </el-button>
 
-              <el-button class="register" type="primary" @click="enroll()">注册</el-button>
+              <el-button class="register" type="primary" @click="enroll()"
+                >注册</el-button
+              >
             </el-form-item>
           </el-form>
 
@@ -90,7 +111,12 @@
       <!-- 卡片 -->
       <div v-else>
         <el-card class="login_box_card">
-          <el-form :model="ruleForm" ref="ruleForm" label-width="50px" class="demo-ruleForm">
+          <el-form
+            :model="ruleForm"
+            ref="ruleForm"
+            label-width="50px"
+            class="demo-ruleForm"
+          >
             <el-form-item prop="username">
               <el-input
                 v-model="ruleForm.username"
@@ -117,31 +143,51 @@
     </transition>
 
     <!-- 忘记密码 -->
-    <!-- <div class="forget" @click="forget()">忘记密码</div> -->
+    <div  class="forgetA">云飞科技技术支持</div>
 
     <!-- 点击相机图标弹出选择昆虫或病害窗口 -->
-    <el-dialog :before-close="handleClose" title="提示" :visible.sync="dialogVisible" width="60%">
+    <el-dialog
+      :before-close="handleClose"
+      title="提示"
+      :visible.sync="dialogVisible"
+      width="60%"
+    >
       <span>是否更新到最新版本</span>
       <span slot="footer" class="dialog-footer">
         <!-- 选择昆虫 -->
         <div class="home_box_div">
           <!-- 测试 -->
-          <el-button @click="dialogVisible = false, showBtn()" class="kunchongBtn">取 消</el-button>
+          <el-button
+            @click="(dialogVisible = false), showBtn()"
+            class="kunchongBtn"
+            >取 消</el-button
+          >
         </div>
 
         <!-- 选择病害 -->
         <div class="home_box_div">
           <!-- 测试 -->
-          <el-button @click="dialogVisible = false, newApp()" class="binghaiBtn">确 定</el-button>
+          <el-button
+            @click="(dialogVisible = false), newApp()"
+            class="binghaiBtn"
+            >确 定</el-button
+          >
         </div>
       </span>
     </el-dialog>
 
     <!-- 进度条 -->
-    <div class="schedule_box" v-if="scheduleShow" :style="'height:' + fullHeight + 'px'">
+    <div
+      class="schedule_box"
+      v-if="scheduleShow"
+      :style="'height:' + fullHeight + 'px'"
+    >
       <div class="schedule_box_div">
         <div class="schedule_box_title">正在下载...</div>
-        <el-progress :percentage="percentage" :color="customColorMethod"></el-progress>
+        <el-progress
+          :percentage="percentage"
+          :color="customColorMethod"
+        ></el-progress>
       </div>
     </div>
 
@@ -185,11 +231,12 @@ export default {
     // 手动定位控件
     BmGeolocation,
     // marker控件
-    BmMarker
+    BmMarker,
   },
   data() {
     //这里存放数据
     return {
+      isClick: true, //点赞开关
       loading: true, //加载动画
       //自动定位
       mapShow: false, //地图
@@ -212,17 +259,17 @@ export default {
             stylers: {
               // hue: "#007fff",
               hue: "#eb8f16",
-              saturation: 89
-            }
+              saturation: 89,
+            },
           },
           {
             featureType: "water",
             elementType: "all",
             stylers: {
-              color: "#ffffff"
-            }
-          }
-        ]
+              color: "#ffffff",
+            },
+          },
+        ],
       },
       //设置地图详细信息
       address: "", //位置详细信息
@@ -231,7 +278,7 @@ export default {
       postionMap: {
         //地图坐标
         lng: 120.211486,
-        lat: 30.256576
+        lat: 30.256576,
       },
       location: "",
       keyword: "", //搜索框关键词
@@ -245,7 +292,7 @@ export default {
         desce: "",
         type: "",
         jgName: "",
-        jgNum: ""
+        jgNum: "",
       },
       organizationData: [],
       jgName: "",
@@ -255,7 +302,7 @@ export default {
       fullHeight: document.documentElement.clientHeight,
       ruleForm: {
         username: "",
-        password: ""
+        password: "",
       },
       seen: "",
       pwdType: true, //此时文本框隐藏,显示密码框
@@ -274,14 +321,14 @@ export default {
         { color: "#e6a23c", percentage: 40 },
         { color: "#5cb87a", percentage: 60 },
         { color: "#1989fa", percentage: 80 },
-        { color: "#6f7ad3", percentage: 100 }
+        { color: "#6f7ad3", percentage: 100 },
       ],
       scheduleShow: false,
       show3: true, //判断当前设备是否注册账号
       redata: "", //游客账号
       items: [{ name: "账号登录" }, { name: "游客登录" }],
       istrue: localStorage.getItem("loginIstrue"),
-      showBtnA: true //用户取消更新软件,隐藏登录按钮
+      showBtnA: true, //用户取消更新软件,隐藏登录按钮
     };
   },
   //监听属性 类似于data概念
@@ -294,7 +341,7 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function() {
+        setTimeout(function () {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
@@ -308,10 +355,10 @@ export default {
         this.$message({
           message: "已经下载成功,可以安装",
           type: "success",
-          duration: 1000
+          duration: 1000,
         });
       }
-    }
+    },
   },
   //方法集合
   methods: {
@@ -338,34 +385,34 @@ export default {
         _this.ruleForm.username = "";
         _this.ruleForm.password = "";
         let postData = _this.$qs.parse({
-          imei: localStorage.getItem("uuID")
+          imei: localStorage.getItem("uuID"),
         });
         _this
           .$axios({
             method: "post",
             // url: "/check_tourist",
             url: "bigservers/check_tourist",
-            data: postData
+            data: postData,
           })
-          .then(res => {
+          .then((res) => {
             if (res.data === 0) {
               this.$notify({
                 title: "提示",
                 message: "您的十次体验已经结束,如果想继续使用,请先注册账号",
                 type: "warning",
-                duration: 1500
+                duration: 1500,
               });
             } else if (res.data === 1) {
               console.log("没有获取到设备信息,请退出软件重新测试");
             } else if (res.data === 2) {
               this.$axios({
                 method: "get",
-                url: "bigservers/tourist_in"
+                url: "bigservers/tourist_in",
               })
-                .then(res => {
+                .then((res) => {
                   this.redata = res.data;
                 })
-                .catch(error => {
+                .catch((error) => {
                   console.log(error);
                 });
             }
@@ -378,12 +425,12 @@ export default {
                   title: "提示",
                   message: "您已经注册了账号,请用账号登录",
                   type: "warning",
-                  duration: 1500
+                  duration: 1500,
                 });
               }
             }
           })
-          .catch(error => {
+          .catch((error) => {
             // console.log("失败");
           });
         localStorage.setItem("loginIstrue", "1");
@@ -416,7 +463,7 @@ export default {
       if (_this.ruleForm.username !== "" && _this.ruleForm.password !== "") {
         let postData = _this.$qs.parse({
           mobile: _this.ruleForm.username,
-          password: _this.ruleForm.password
+          password: _this.ruleForm.password,
         });
         _this
           .$axios({
@@ -424,21 +471,21 @@ export default {
             url: "bigservers/land_in",
             data: postData,
             headers: {
-              "Content-Type": "multipart/form-data"
-            }
+              "Content-Type": "multipart/form-data",
+            },
           })
-          .then(res => {
+          .then((res) => {
             if (res.data === 1) {
               this.$message({
                 message: "密码不正确",
                 type: "error",
-                duration: 1000
+                duration: 1000,
               });
             } else if (res.data === 2) {
               this.$message({
                 message: "用户不存在",
                 type: "error",
-                duration: 1000
+                duration: 1000,
               });
             } else if (
               res.data.username !== "" &&
@@ -448,7 +495,7 @@ export default {
               this.$message({
                 message: "登录成功",
                 type: "success",
-                duration: 1000
+                duration: 1000,
               });
               localStorage.setItem("ret", res.data[0].ret);
               localStorage.setItem("accountName", res.data[0].username); //用户名称
@@ -479,18 +526,18 @@ export default {
               _this.iShow = false;
             }, 2500);
           })
-          .catch(error => {
+          .catch((error) => {
             this.$message({
               message: "失败",
               type: "error",
-              duration: 1000
+              duration: 1000,
             });
           });
       } else {
         this.$message({
           message: "账号或密码不能为空!",
           type: "error",
-          duration: 1000
+          duration: 1000,
         });
       }
     },
@@ -505,19 +552,40 @@ export default {
     newApp() {
       //判断本地是否有值
       if (this.redataName == null) {
-        var data = this.redataNameA
+        var data = this.redataNameA;
       } else if (this.redataName !== null) {
-        var data = this.redataName
+        var data = this.redataName;
       }
-      window.location.href =
-        "bigservers/down_app/" + data;
-      this.scheduleShow = true;
-      const timer = setInterval(() => {
-        this.percentage += 10;
-        if (this.percentage > 100) {
-          this.percentage = 100;
+
+      var wait = plus.nativeUI.showWaiting("下载更新中,请勿关闭");
+      //创建一个下载任务
+      var dtask = plus.downloader.createDownload(
+        "bigservers/down_app/" + data,
+        {
+          method: "GET",
+        },
+        function (d, status) {
+          if (status == 200) {
+            console.log("Download success: " + d.filename);
+            plus.runtime.install(d.filename); // 安装下载的apk文件
+          } else {
+            alert("更新失败");
+            //						plus.runtime.install('../H5B2852C7_0925104810.apk'); // 安装下载的apk文件
+          }
+          wait.close();
         }
-      }, 1000);
+      );
+      //开始下载
+      dtask.start();
+
+      // window.location.href = "bigservers/down_app/" + data;
+      // this.scheduleShow = true;
+      // const timer = setInterval(() => {
+      //   this.percentage += 10;
+      //   if (this.percentage > 100) {
+      //     this.percentage = 100;
+      //   }
+      // }, 1000);
     },
 
     //点击最新版本弹框的取消按钮
@@ -567,15 +635,15 @@ export default {
       let _this = this;
       let postData = _this.$qs.parse({
         num: _this.redata,
-        imei: localStorage.getItem("uuID")
+        imei: localStorage.getItem("uuID"),
       });
       _this
         .$axios({
           method: "post",
           url: "bigservers/tourist_in",
-          data: postData
+          data: postData,
         })
-        .then(res => {
+        .then((res) => {
           if (
             res.data !== 2 &&
             res.data !== 3 &&
@@ -587,7 +655,7 @@ export default {
               title: "成功",
               message: "登录成功",
               type: "success",
-              duration: 1000
+              duration: 1000,
             });
             localStorage.setItem("ret", res.data[0].ret);
             sessionStorage.setItem("login", this.redata); //登录状态标识
@@ -604,23 +672,23 @@ export default {
             this.$notify.error({
               title: "失败",
               message: "该手机已经注册过账号,请直接用账号登录",
-              duration: 1000
+              duration: 1000,
             });
           } else if (res.data === 3) {
             this.$notify.error({
               title: "失败",
               message: "游客账号已经注册",
-              duration: 1000
+              duration: 1000,
             });
           } else if (res.data === 0) {
             this.$notify.error({
               title: "登录失败,请重试",
               message: "",
-              duration: 1000
+              duration: 1000,
             });
           }
         })
-        .catch(error => {
+        .catch((error) => {
           // this.$notify.error({
           //   title: "失败",
           //   message: "登录失败",
@@ -631,12 +699,20 @@ export default {
     },
 
     handleClose() {
-      this.$notify({
-        title: "警告",
-        message: "请点击取消或是确定按钮",
-        type: "warning",
-        duration: 2000
-      });
+      let _this = this;
+      var isClick = _this.isClick;
+      if (isClick === true) {
+        _this.isClick = false;
+        this.$notify({
+          title: "警告",
+          message: "请点击取消或是确定按钮",
+          type: "warning",
+          duration: 2000,
+        });
+        setTimeout(function () {
+          _this.isClick = true;
+        }, 2000);
+      }
     },
 
     //记住密码
@@ -674,14 +750,14 @@ export default {
       this.myGeo = new BMap.Geocoder();
       // 获取自动定位获取的坐标信息
       geolocation.getCurrentPosition(
-        function(r) {
+        function (r) {
           _this.center = {
             lng: r.point.lng,
-            lat: r.point.lat
+            lat: r.point.lat,
           };
           _this.point = {
             lng: r.point.lng,
-            lat: r.point.lat
+            lat: r.point.lat,
           };
           localStorage.setItem("jingdu", _this.point.lng); //存经纬度
           localStorage.setItem("weidu", _this.point.lat);
@@ -708,19 +784,8 @@ export default {
       this.add.wd = e.point.lat;
 
       let geocoder = new BMap.Geocoder(); //创建地址解析器的实例
-      geocoder.getLocation(e.point, rs => {
+      geocoder.getLocation(e.point, (rs) => {
         this.add.site = rs.address;
-        //地址描述(string)=
-        // console.log(rs.address);    //这里打印可以看到里面的详细地址信息,可以根据需求选择想要的
-        // console.log(rs.addressComponents);//结构化的地址描述(object)
-        // console.log(rs.addressComponents.province); //省
-        // console.log(rs.addressComponents.city); //城市
-        // console.log(rs.addressComponents.district); //区县
-        // console.log(rs.addressComponents.street); //街道
-        // console.log(rs.addressComponents.streetNumber); //门牌号
-        // console.log(rs.surroundingPois); //附近的POI点(array)
-        // console.log(rs.business); //商圈字段,代表此点所属的商圈(string)
-
         let a = rs.addressComponents.province;
         let b = rs.addressComponents.city;
         let c = rs.addressComponents.district;
@@ -738,7 +803,7 @@ export default {
     ceshi(r) {
       let _this = this;
       let geocoder = new BMap.Geocoder(); //创建地址解析器的实例
-      geocoder.getLocation(r.point, rs => {
+      geocoder.getLocation(r.point, (rs) => {
         this.add.site = rs.address;
         let a = rs.addressComponents.province;
         let b = rs.addressComponents.city;
@@ -787,7 +852,7 @@ export default {
     btnA() {
       var _this = this;
       _this.$router.push("/lianxiB");
-    }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {
@@ -799,6 +864,7 @@ export default {
     //判断tab切换下标是否为空
     if (localStorage.getItem("loginIstrue") === null) {
       localStorage.setItem("loginIstrue", "0");
+      this.istrue = '0'
     }
 
     let _this = this;
@@ -814,13 +880,13 @@ export default {
         var a = data.replace(/\./g, "");
         if (num === a) {
         } else if (num < a) {
-          // this.$message({
-          //   message: "检测到有新版本",
-          //   type: "success"
-          // });
-          // _this.dialogVisible = true;
-          // localStorage.setItem("redataName", res.data.edition_name);
-          // _this.redataNameA = res.data.edition_name
+          this.$message({
+            message: "检测到有新版本",
+            type: "success"
+          });
+          _this.dialogVisible = true;
+          localStorage.setItem("redataName", res.data.edition_name);
+          _this.redataNameA = res.data.edition_name;
         }
       })
       .catch(error => {
@@ -831,34 +897,34 @@ export default {
       });
 
     let postData = _this.$qs.parse({
-      imei: localStorage.getItem("uuID")
+      imei: localStorage.getItem("uuID"),
     });
     _this
       .$axios({
         method: "post",
         url: "bigservers/check_tourist",
-        data: postData
+        data: postData,
       })
-      .then(res => {
+      .then((res) => {
         _this.loading = false;
         if (res.data === 0) {
           this.$notify({
             title: "提示",
             message: "您的十次体验已经结束,如果想继续使用,请先注册账号",
             type: "warning",
-            duration: 1500
+            duration: 1500,
           });
         } else if (res.data === 1) {
           console.log("没有获取到设备信息,请退出软件重新测试");
         } else if (res.data === 2) {
           this.$axios({
             method: "get",
-            url: "bigservers/tourist_in"
+            url: "bigservers/tourist_in",
           })
-            .then(res => {
+            .then((res) => {
               this.redata = res.data;
             })
-            .catch(error => {
+            .catch((error) => {
               console.log(error);
             });
         }
@@ -871,12 +937,12 @@ export default {
               title: "提示",
               message: "您已经注册了账号,请用账号登录",
               type: "warning",
-              duration: 1500
+              duration: 1500,
             });
           }
         }
       })
-      .catch(error => {});
+      .catch((error) => {});
 
     //判断当前是用户还是游客
     if (localStorage.getItem("loginIstrue") === "0") {
@@ -887,7 +953,7 @@ export default {
       localStorage.setItem("loginIstrue", "1");
       this.show3 = false;
     }
-  }
+  },
 };
 </script>
 <style lang='scss'>

+ 28 - 14
discern/src/components/mine/mine.vue

@@ -23,26 +23,21 @@
     <!-- list列表 -->
     <ul class="mine_box_ul">
       <!-- 头像 -->
-      <!-- <li class="mine_box_li" @click="dialogVisibleA = true"> -->
       <li class="mine_box_li" @click="tankuang($event)">
-        <!-- <li class="mine_box_li"> -->
         <div class="mine_box_li_portrait">
           <div class="li_portrait_box">
             <span class="li_portrait_text">头像</span>
           </div>
           <div class="portrait_img_box">
-            <!-- <img
-              preview="1"
-              :src=" 'bigservers/' + this.redata.user_photo"
-              alt
-              class="portrait_img"
-            />-->
+            <!-- :src="imgSrc.qr_code_show+'?'+Math.random() * 10" -->
             <img
+              v-if="imgShow"
               preview="1"
-              :src=" 'bigservers/' + this.redata.user_photo"
+              :src=" 'bigservers/' + this.redata.user_photo  + '?' + Math.random() * 10"
               alt
               class="portrait_img"
             />
+            <img v-else preview="1" :src="this.imgChange" alt class="portrait_img" />
           </div>
         </div>
       </li>
@@ -130,7 +125,9 @@ export default {
       redata: [],
       loading: true,
       name: "", //昵称
-      dialogImageUrl: "" //头像地址
+      dialogImageUrl: "", //头像地址
+      imgChange: "", //测试头像地址
+      imgShow: true
     };
   },
   //监听属性 类似于data概念
@@ -202,6 +199,14 @@ export default {
       let _this = this;
       let form = new FormData();
       form.append("file", a.file);
+      var url = "";
+      var reader = new FileReader();
+      reader.readAsDataURL(a.file);
+      reader.onload = function(e) {
+        url = this.result.substring(this.result.indexOf(",") + 1);
+        _this.imgChange = "data:image/png;base64," + url;
+      };
+      _this.imgShow = false;
       _this
         .$axios({
           method: "post",
@@ -219,7 +224,16 @@ export default {
               type: "success",
               duration: 1000
             });
-            _this.dialogImageUrl = a.flie + "?" + new Date().getTime(); //new Data.getTime()使用时间戳更换每次的修改的图片
+            var url = "";
+            var reader = new FileReader();
+            reader.readAsDataURL(a.file);
+            reader.onload = function(e) {
+              url = this.result.substring(this.result.indexOf(",") + 1);
+              _this.imgChange = "data:image/png;base64," + url;
+            };
+            _this.imgShow = false;
+            // _this.dialogImageUrl = a.flie + "?" + new Date().getTime(); //new Data.getTime()使用时间戳更换每次的修改的图片
+            _this.dialogImageUrl = a.flie //new Data.getTime()使用时间戳更换每次的修改的图片
           } else if (res.data === 1) {
             this.$message({
               message: "头像修改失败",
@@ -227,9 +241,9 @@ export default {
               duration: 1000
             });
           }
-          const timer = setInterval(() => {
-            location.reload();
-          }, 1000);
+          // const timer = setInterval(() => {
+          //   location.reload();
+          // }, 1000);
         })
         .catch(error => {
           this.$message({

+ 164 - 113
discern/src/components/person/person.vue

@@ -14,9 +14,13 @@
       <!-- 用户名称、手机号、编辑 -->
       <div class="person_head_naphbj">
         <!-- 名称 -->
-        <div
-          class="person_head_name"
-        >{{ this.redata.user_remark !== null || this.redata.user_remark !== '' ? this.redata.user_remark : this.redata.username }}</div>
+        <div class="person_head_name">
+          {{
+            this.redata.user_remark !== null || this.redata.user_remark !== ""
+              ? this.redata.user_remark
+              : this.redata.username
+          }}
+        </div>
 
         <!-- 手机号 -->
         <div class="person_head_phone">{{ this.str }}</div>
@@ -30,7 +34,9 @@
       <div class="person_head_imageBox">
         <img
           preview="1"
-          :src=" 'bigservers/' + this.redata.user_photo"
+          :src="
+            'bigservers/' + this.redata.user_photo + '?' + Math.random() * 10
+          "
           alt
           class="person_head_imageBox_img"
         />
@@ -42,7 +48,11 @@
     <!-- 采集病虫害-手动录入新建 -->
     <div class="gatherInsect_box" @click="addData()">
       <!-- 虫图标 -->
-      <img src="../../assets/image/insectaaa.png" alt class="gatherInsect_box_insect" />
+      <img
+        src="../../assets/image/insectaaa.png"
+        alt
+        class="gatherInsect_box_insect"
+      />
 
       <!-- 标题 -->
       <div class="gatherInsect_box_title">手动录入病虫害</div>
@@ -55,45 +65,55 @@
     <!-- 内容列表 -->
     <ul class="person_box_ul">
       <!-- 分享 -->
-      <li class="person_box_list" @click="share()">
+      <!-- <li class="person_box_list" @click="share()">
         <div class="person_box_list_text">扫码下载</div>
         <img src="../../assets/image/right.png" alt class="person_box_list_image" />
-      </li>
+      </li> -->
 
       <!-- 帮助说明 -->
       <li class="person_box_list" @click="help()">
         <div class="person_box_list_text">关于我们</div>
-        <img src="../../assets/image/right.png" alt class="person_box_list_image" />
+        <img
+          src="../../assets/image/right.png"
+          alt
+          class="person_box_list_image"
+        />
       </li>
 
       <!-- 意见反馈 -->
       <!-- <li class="person_box_list" @click="message()">
         <div class="person_box_list_text">意见反馈</div>
         <img src="../../assets/image/right.png" alt class="person_box_list_image" />
-      </li>-->
+      </li> -->
 
       <!-- 版本更新 -->
       <li class="person_box_list" @click="versions_update()">
+        <div class="person_box_list_text">版本更新</div>
         <img
-          v-show="this.new == '1'"
-          src="../../assets/image/yuandian.png"
+          src="../../assets/image/right.png"
           alt
-          class="person_box_list_imageA"
+          class="person_box_list_image"
         />
-        <div class="person_box_list_text">版本更新</div>
-        <img src="../../assets/image/right.png" alt class="person_box_list_image" />
       </li>
 
       <!-- 版本更新记录 -->
       <li class="person_box_list" @click="versions_updateHistory()">
         <div class="person_box_list_text">版本更新记录</div>
-        <img src="../../assets/image/right.png" alt class="person_box_list_image" />
+        <img
+          src="../../assets/image/right.png"
+          alt
+          class="person_box_list_image"
+        />
       </li>
 
       <!-- 退出登录 -->
       <li class="person_box_list" @click="log_out()">
         <div class="person_box_list_text">退出登录</div>
-        <img src="../../assets/image/right.png" alt class="person_box_list_image" />
+        <img
+          src="../../assets/image/right.png"
+          alt
+          class="person_box_list_image"
+        />
       </li>
     </ul>
     <!-- 内容列表 -->
@@ -109,7 +129,7 @@ import bottomNav from "../bottomNav/bottomNav"; //底部导航栏
 
 export default {
   components: {
-    bottomNav
+    bottomNav,
   },
   data() {
     //这里存放数据
@@ -119,7 +139,7 @@ export default {
       redata: [], //数据
       str: "", //加密手机号
       loading: true, //加载动画
-      new: "" //判断当前是否为最新版本
+      new: localStorage.getItem("new"), //判断当前是否为最新版本
     };
   },
   //监听属性 类似于data概念
@@ -132,12 +152,12 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function() {
+        setTimeout(function () {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
       }
-    }
+    },
   },
   //方法集合
   methods: {
@@ -158,14 +178,14 @@ export default {
       _this
         .$axios({
           method: "get",
-          url: "bigservers/see_user "
+          url: "bigservers/see_user ",
         })
-        .then(res => {
+        .then((res) => {
           _this.loading = false;
           _this.redata = res.data[0];
           _this.phonePad(res.data[0].user_phone);
         })
-        .catch(err => {
+        .catch((err) => {
           console.log(err);
         });
     },
@@ -221,105 +241,135 @@ export default {
         _this
           .$axios({
             method: "get",
-            url: "bigservers/edition"
+            url: "bigservers/edition",
           })
-          .then(res => {
+          .then((res) => {
             let num = "115";
             var data = res.data.edition_num;
             var a = data.replace(/\./g, "");
             if (num === a) {
-              console.log("当前已经是最新版本");
               this.$message({
                 showClose: true,
                 message: "当前已经是最新版本",
-                duration: 1500
+                duration: 1500,
               });
             } else if (num < a) {
-              // _this.new = "1"; //添加标识
-              // this.$confirm("检测到有最新版本, 是否更新?", "提示", {
-              //   confirmButtonText: "确定",
-              //   cancelButtonText: "取消",
-              //   type: "warning"
-              // })
-              //   .then(() => {
-              //     _this.new = "0"; //取消标识
-              //     window.location.href =
-              //       "bigservers/down_app/deity.apk";
-              //     // this.$message({
-              //     //   type: "success",
-              //     //   message: "更新成功!"
-              //     // });
-              //   })
-              //   .catch(() => {
-              //     _this.new = "1"; //如果用户进行取消就给列表添加个醒目的标识
-              //     this.$message({
-              //       type: "info",
-              //       message: "取消更新",
-              //       duration: 1500
-              //     });
-              //   });
+              this.$notify({
+                title: "成功",
+                message: "检测到有新版本,需要更新",
+                type: "success",
+                duration: 1500,
+              });
+              const timerA = setInterval(() => {
+                var wait = plus.nativeUI.showWaiting("下载更新中,请勿关闭");
+                //创建一个下载任务
+                var dtask = plus.downloader.createDownload(
+                  "bigservers/down_app/deity.apk",
+                  {
+                    method: "GET",
+                  },
+                  function (d, status) {
+                    if (status == 200) {
+                      console.log("Download success: " + d.filename);
+                      plus.runtime.install(d.filename); // 安装下载的apk文件
+                    } else {
+                      this.$message({
+                        type: "info",
+                        message: "更新失败",
+                      });
+                      //						plus.runtime.install('../H5B2852C7_0925104810.apk'); // 安装下载的apk文件
+                    }
+                    wait.close();
+                  }
+                );
+                //开始下载
+                dtask.start();
+                clearInterval(timerA);
+              }, 1500);
             }
-
-
-
           })
-          .catch(err => {
+          .catch((err) => {
             console.log(err);
           });
-        setTimeout(function() {
+        setTimeout(function () {
           _this.isClick = true;
         }, 2000);
       }
     },
 
     //点击版本查看是否有新版
-    versions_updateA() {
-      let _this = this;
-      _this
-        .$axios({
-          method: "get",
-          url: "bigservers/edition"
-        })
-        .then(res => {
-          let num = "115";
-          var data = res.data.edition_num;
-          var a = data.replace(/\./g, "");
-          if (num == a) {
-            console.log("当前已经是最新版本");
-            // this.$message({
-            //   showClose: true,
-            //   message: "当前已经是最新版本"
-            // });
-          } else if (num < a) {
-            _this.new = "1"; //添加标识
-            this.$confirm("检测到有最新版本, 是否更新?", "提示", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning"
-            })
-              .then(() => {
-                _this.new = "0"; //取消标识
-                window.location.href =
-                  "bigservers/down_app/deity.apk";
-                // this.$message({
-                //   type: "success",
-                //   message: "更新成功!"
-                // });
-              })
-              .catch(() => {
-                _this.new = "1"; //如果用户进行取消就给列表添加个醒目的标识
-                this.$message({
-                  type: "info",
-                  message: "取消更新"
-                });
-              });
-          }
-          // console.log(res.data);
-        })
-        .catch(err => {
-          console.log(err);
-        });
-    },
+    // versions_updateA() {
+    //   let _this = this;
+    //   _this
+    //     .$axios({
+    //       method: "get",
+    //       url: "bigservers/edition"
+    //     })
+    //     .then(res => {
+    //       let num = "115";
+    //       var data = res.data.edition_num;
+    //       var a = data.replace(/\./g, "");
+    //       if (num == a) {
+    //         this.$message({
+    //           showClose: true,
+    //           message: "当前已经是最新版本",
+    //           duration: 1500
+    //         });
+    //       } else if (num < a) {
+    //         this.$notify({
+    //           title: "成功",
+    //           message: "检测到有新版本,需要更新",
+    //           type: "success",
+    //           duration: 1500
+    //         });
+    //         const timerA = setInterval(() => {
+    //           var wait = plus.nativeUI.showWaiting("下载更新中,请勿关闭");
+    //           //创建一个下载任务
+    //           var dtask = plus.downloader.createDownload(
+    //             "bigservers/down_app/deity.apk",
+    //             {
+    //               method: "GET"
+    //             },
+    //             function(d, status) {
+    //               if (status == 200) {
+    //                 console.log("Download success: " + d.filename);
+    //                 plus.runtime.install(d.filename); // 安装下载的apk文件
+    //               } else {
+    //                 this.$message({
+    //                   type: "info",
+    //                   message: "更新失败"
+    //                 });
+    //                 //						plus.runtime.install('../H5B2852C7_0925104810.apk'); // 安装下载的apk文件
+    //               }
+    //               wait.close();
+    //             }
+    //           );
+    //           //开始下载
+    //           dtask.start();
+    //           clearInterval(timerA);
+    //         }, 1500);
+
+    //         // this.$confirm("检测到有最新版本, 是否更新?", "提示", {
+    //         //   confirmButtonText: "确定",
+    //         //   cancelButtonText: "取消",
+    //         //   type: "warning"
+    //         // })
+    //         //   .then(() => {
+    //         //     window.location.href = "bigservers/down_app/deity.apk";
+    //         //   })
+    //         //   .catch(() => {
+    //         //     this.$message({
+    //         //       type: "info",
+    //         //       message: "取消更新"
+    //         //     });
+    //         //   });
+    //       }
+    //       // console.log(res.data);
+    //     })
+    //     .catch(err => {
+    //       console.log(err);
+    //     });
+    // },
 
     //点击版本更新历史进行跳转
     versions_updateHistory() {
@@ -331,34 +381,35 @@ export default {
       this.$confirm("即将退出登录, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           this.$axios({
             method: "get",
-            url: "bigservers/out_land"
+            url: "bigservers/out_land",
           })
-            .then(res => {
+            .then((res) => {
               if (res.data === 0) {
                 this.$message({
                   type: "success",
-                  message: "退出成功!"
+                  message: "退出成功!",
                 });
                 sessionStorage.removeItem("login");
+                localStorage.removeItem("homeIndex");
                 this.$router.replace("/");
               } else if (res.data === 1) {
                 this.$message({
                   type: "info",
                   message: "退出失败,请重试",
-                  duration: 1500
+                  duration: 1500,
                 });
               }
             })
-            .catch(err => {
+            .catch((err) => {
               this.$message({
                 type: "info",
                 message: "退出失败,请重试",
-                duration: 1500
+                duration: 1500,
               });
             });
         })
@@ -366,18 +417,18 @@ export default {
           this.$message({
             type: "info",
             message: "取消退出",
-            duration: 1500
+            duration: 1500,
           });
         });
-    }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     this.userAjax(); //用户信息数据
-    this.versions_updateA(); //查看当前是否为最新版本
-  }
+    // this.versions_updateA(); //查看当前是否为最新版本
+  },
 };
 </script>
 <style lang='scss'>

+ 3 - 3
discern/src/components/questions_details/questions_details.vue

@@ -37,7 +37,7 @@
         <div class="questions_details_NameBox">
           <div class="questions_details_NameBox_box">
             <img
-              :src=" 'bigservers/' + this.redata.photo"
+              :src=" 'bigservers/' + this.redata.photo + '?' + Math.random() * 10"
               alt
               class="questions_details_NameBox_image"
             />
@@ -93,7 +93,7 @@
               <div class="criticOne_profile">
                 <!-- 头像和名称 -->
                 <div class="profile_box">
-                  <img :src=" 'bigservers/' + item.photo" alt class="profile_img" />
+                  <img :src=" 'bigservers/' + item.photo + '?' + Math.random() * 10" alt class="profile_img" />
                   <!-- <div class="profile_name">{{ item.username }}</div> -->
                   <div
                     class="profile_name"
@@ -142,7 +142,7 @@
                 <!-- 头像和名称 -->
                 <div class="criticTwo_profile">
                   <img
-                    :src=" 'bigservers/' + itemA.photo"
+                    :src=" 'bigservers/' + itemA.photo + '?' + Math.random() * 10"
                     alt
                     class="profileTwo_img"
                   />

+ 5 - 5
discern/src/components/share/share.vue

@@ -9,7 +9,7 @@
 
       <!-- 标题 -->
       <div class="head_title">
-        <span class="head_title_text">扫码下载</span>
+        <span class="head_title_text">关于我们</span>
       </div>
     </div>
     <!-- 线 -->
@@ -18,14 +18,14 @@
 
     <!-- 文字 -->
     <div class="share_txt_box">
-      <!-- <span class="share_txt">欢迎扫码下载使用云飞知虫app</span> -->
-      <span class="share_txt">欢迎扫码下载使用病虫调查统计器app</span>
+      <!-- <span class="share_txt">欢迎扫码下载使用云飞病虫调查统计器app</span> -->
+      <span class="share_txt">关注公众号了解更多信息</span>
     </div>
     <!-- 文字 -->
 
     <!-- 二维码 -->
     <div class="code_box">
-        <img src="../../assets/image/app.png" alt="" class="code_box_img">
+        <img src="../../assets/image/code.jpg" alt="" class="code_box_img">
     </div>
     <!-- 二维码 -->
 
@@ -79,7 +79,7 @@ export default {
     FanHui() {
       let _this = this;
       // _this.$router.push("/person");
-      _this.$router.replace("/person");
+      _this.$router.replace("/help");
     //   location.reload();
     },
   },

+ 2 - 2
discern/src/main.js

@@ -18,7 +18,7 @@ import clipper from '../static/clipper'
 // import Back from './appback.js'
 import MeScroll from 'mescroll.js'
 import 'mescroll.js/mescroll.min.css'
-import waterfall from 'vue-waterfall2'//瀑布流插件
+// import waterfall from 'vue-waterfall2'//瀑布流插件
 
 //瀑布流加上拉加载
 
@@ -54,7 +54,7 @@ Vue.use(VueLazyLoad, {
 
 
 Vue.config.productionTip = false
-Vue.use(waterfall)//瀑布流插件
+// Vue.use(waterfall)//瀑布流插件
 Vue.use(VueAMap);
 VueAMap.initAMapApiLoader({
   key: "fdc489725992ba738397be65dc657d9e",

+ 20 - 0
discern/src/router/index.js

@@ -34,6 +34,8 @@ import mapShow from '@/components/mapShow/mapShow'
 import share from '@/components/share/share'
 import help from '@/components/help/help'
 import tourist from '@/components/tourist/tourist'
+import helpTxt from '@/components/helpTxt/helpTxt'
+import helpWangzhi from '@/components/helpWangzhi/helpWangzhi'
 
 Vue.use(Router)
 
@@ -324,5 +326,23 @@ export default new Router({
       },
       component: tourist
     },
+    {
+      path: '/helpTxt',
+      name: 'helpTxt',
+      meta: {
+        title: '关于我们',
+        type: 'login',
+      },
+      component: helpTxt
+    },
+    {
+      path: '/helpWangzhi',
+      name: 'helpWangzhi',
+      meta: {
+        title: '关于我们',
+        type: 'login',
+      },
+      component: helpWangzhi
+    },
   ],
 })