Przeglądaj źródła

feat:宁录更新

yf_elsa.cui 1 miesiąc temu
rodzic
commit
973e7c0f85
68 zmienionych plików z 7962 dodań i 426 usunięć
  1. 3 3
      dist/index.html
  2. 0 23
      dist/static/css/app.69c40d9470b29842fb60bc949563239d.css
  3. BIN
      dist/static/css/app.69c40d9470b29842fb60bc949563239d.css.gz
  4. 23 0
      dist/static/css/app.6b3287186dabbc9b9d9389d294ddffa0.css
  5. BIN
      dist/static/css/app.6b3287186dabbc9b9d9389d294ddffa0.css.gz
  6. BIN
      dist/static/images/map/45.png
  7. BIN
      dist/static/images/nongye.ico
  8. BIN
      dist/static/images/nongye1.ico
  9. BIN
      dist/static/images/qrCode/5.png
  10. BIN
      dist/static/images/weather/icon_155.png
  11. BIN
      dist/static/images/weather/icon_156.png
  12. BIN
      dist/static/images/weather/icon_157.png
  13. BIN
      dist/static/img/3.73ba084.png
  14. BIN
      dist/static/img/5.ca0f423.png
  15. BIN
      dist/static/img/5.e8b1638.png
  16. BIN
      dist/static/img/header-bg.26a5ce8.png
  17. 1 0
      dist/static/js/0.6e432219845c47eee790.js
  18. BIN
      dist/static/js/0.6e432219845c47eee790.js.gz
  19. 0 1
      dist/static/js/0.ad1b833d76e544ff51a4.js
  20. BIN
      dist/static/js/0.ad1b833d76e544ff51a4.js.gz
  21. 8 0
      dist/static/js/1.963581408e40031209ab.js
  22. BIN
      dist/static/js/1.963581408e40031209ab.js.gz
  23. 0 8
      dist/static/js/1.cb778c0788da909951af.js
  24. BIN
      dist/static/js/1.cb778c0788da909951af.js.gz
  25. 0 1
      dist/static/js/25.b395f7a823af63b9b2b4.js
  26. BIN
      dist/static/js/25.b395f7a823af63b9b2b4.js.gz
  27. 1 0
      dist/static/js/25.eaacd17fb076631f9c98.js
  28. BIN
      dist/static/js/25.eaacd17fb076631f9c98.js.gz
  29. 0 1
      dist/static/js/27.7500ea3018cfbb83ffb9.js
  30. BIN
      dist/static/js/27.7500ea3018cfbb83ffb9.js.gz
  31. 1 0
      dist/static/js/27.7c267c3ec55d2d87eb8e.js
  32. BIN
      dist/static/js/27.7c267c3ec55d2d87eb8e.js.gz
  33. 0 1
      dist/static/js/33.4bd62960a7e9ce647af5.js
  34. BIN
      dist/static/js/33.4bd62960a7e9ce647af5.js.gz
  35. 1 0
      dist/static/js/33.5077431176d72f970d80.js
  36. BIN
      dist/static/js/33.5077431176d72f970d80.js.gz
  37. 0 1
      dist/static/js/37.44e3daa3c5c441664de3.js
  38. BIN
      dist/static/js/37.44e3daa3c5c441664de3.js.gz
  39. 1 0
      dist/static/js/37.8987cb8699401c771c14.js
  40. BIN
      dist/static/js/37.8987cb8699401c771c14.js.gz
  41. 1 1
      dist/static/js/5.7d6e2c2aae44c53c3ae9.js
  42. BIN
      dist/static/js/5.7d6e2c2aae44c53c3ae9.js.gz
  43. 0 1
      dist/static/js/6.87698acb47062dbd169e.js
  44. BIN
      dist/static/js/6.87698acb47062dbd169e.js.gz
  45. 1 0
      dist/static/js/6.e5966aeeb5a882d16ae8.js
  46. BIN
      dist/static/js/6.e5966aeeb5a882d16ae8.js.gz
  47. 0 1
      dist/static/js/7.af7b9bec64ed0339626d.js
  48. BIN
      dist/static/js/7.af7b9bec64ed0339626d.js.gz
  49. 1 0
      dist/static/js/7.be547022e27cc9883ed1.js
  50. BIN
      dist/static/js/7.be547022e27cc9883ed1.js.gz
  51. 1 1
      dist/static/js/app.3caccd97088a424551b5.js
  52. BIN
      dist/static/js/app.3caccd97088a424551b5.js.gz
  53. BIN
      dist/static/js/manifest.20da8c6eb6e4b8f0f257.js.gz
  54. 1 1
      dist/static/js/manifest.20da8c6eb6e4b8f0f257.js
  55. BIN
      dist/static/js/manifest.ab19486ae1b5532de529.js.gz
  56. 1 2
      src/components/Index.vue
  57. 157 35
      src/components/home/Home03.vue
  58. 9 1
      src/pages/bigdata/combine/MyMap/index.vue
  59. 28 1
      src/pages/bigdata/combine/comp/ProductIntro.vue
  60. 145 5
      src/pages/bigdata/combine/comp/SoilIntro.vue
  61. 1 1
      src/pages/bigdata/combine/comp/Weather.vue
  62. 2 2
      src/pages/fourMoodBase/baseShow.vue
  63. 2060 0
      src/pages/hjjc/shangqingMonitor/Data24.vue
  64. 3850 0
      src/pages/hjjc/shangqingMonitor/EnvironmentMonitor.vue
  65. 1193 0
      src/pages/hjjc/shangqingMonitor/HistoryData.vue
  66. 448 333
      src/pages/hjjc/soilmoisture/soilmoisturelist.vue
  67. 24 2
      src/router/index.js
  68. BIN
      static/images/map/45.png

Plik diff jest za duży
+ 3 - 3
dist/index.html


Plik diff jest za duży
+ 0 - 23
dist/static/css/app.69c40d9470b29842fb60bc949563239d.css


BIN
dist/static/css/app.69c40d9470b29842fb60bc949563239d.css.gz


Plik diff jest za duży
+ 23 - 0
dist/static/css/app.6b3287186dabbc9b9d9389d294ddffa0.css


BIN
dist/static/css/app.6b3287186dabbc9b9d9389d294ddffa0.css.gz


BIN
dist/static/images/map/45.png


BIN
dist/static/images/nongye.ico


BIN
dist/static/images/nongye1.ico


BIN
dist/static/images/qrCode/5.png


BIN
dist/static/images/weather/icon_155.png


BIN
dist/static/images/weather/icon_156.png


BIN
dist/static/images/weather/icon_157.png


BIN
dist/static/img/3.73ba084.png


BIN
dist/static/img/5.ca0f423.png


BIN
dist/static/img/5.e8b1638.png


BIN
dist/static/img/header-bg.26a5ce8.png


Plik diff jest za duży
+ 1 - 0
dist/static/js/0.6e432219845c47eee790.js


BIN
dist/static/js/0.6e432219845c47eee790.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/0.ad1b833d76e544ff51a4.js


BIN
dist/static/js/0.ad1b833d76e544ff51a4.js.gz


Plik diff jest za duży
+ 8 - 0
dist/static/js/1.963581408e40031209ab.js


BIN
dist/static/js/1.963581408e40031209ab.js.gz


Plik diff jest za duży
+ 0 - 8
dist/static/js/1.cb778c0788da909951af.js


BIN
dist/static/js/1.cb778c0788da909951af.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/25.b395f7a823af63b9b2b4.js


BIN
dist/static/js/25.b395f7a823af63b9b2b4.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/25.eaacd17fb076631f9c98.js


BIN
dist/static/js/25.eaacd17fb076631f9c98.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/27.7500ea3018cfbb83ffb9.js


BIN
dist/static/js/27.7500ea3018cfbb83ffb9.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/27.7c267c3ec55d2d87eb8e.js


BIN
dist/static/js/27.7c267c3ec55d2d87eb8e.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/33.4bd62960a7e9ce647af5.js


BIN
dist/static/js/33.4bd62960a7e9ce647af5.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/33.5077431176d72f970d80.js


BIN
dist/static/js/33.5077431176d72f970d80.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/37.44e3daa3c5c441664de3.js


BIN
dist/static/js/37.44e3daa3c5c441664de3.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/37.8987cb8699401c771c14.js


BIN
dist/static/js/37.8987cb8699401c771c14.js.gz


Plik diff jest za duży
+ 1 - 1
dist/static/js/5.7d6e2c2aae44c53c3ae9.js


BIN
dist/static/js/5.7d6e2c2aae44c53c3ae9.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/6.87698acb47062dbd169e.js


BIN
dist/static/js/6.87698acb47062dbd169e.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/6.e5966aeeb5a882d16ae8.js


BIN
dist/static/js/6.e5966aeeb5a882d16ae8.js.gz


Plik diff jest za duży
+ 0 - 1
dist/static/js/7.af7b9bec64ed0339626d.js


BIN
dist/static/js/7.af7b9bec64ed0339626d.js.gz


Plik diff jest za duży
+ 1 - 0
dist/static/js/7.be547022e27cc9883ed1.js


BIN
dist/static/js/7.be547022e27cc9883ed1.js.gz


Plik diff jest za duży
+ 1 - 1
dist/static/js/app.3caccd97088a424551b5.js


BIN
dist/static/js/app.3caccd97088a424551b5.js.gz


BIN
dist/static/js/manifest.20da8c6eb6e4b8f0f257.js.gz


Plik diff jest za duży
+ 1 - 1
dist/static/js/manifest.20da8c6eb6e4b8f0f257.js


BIN
dist/static/js/manifest.ab19486ae1b5532de529.js.gz


+ 1 - 2
src/components/Index.vue

@@ -844,8 +844,7 @@ export default {
           overflow: 'hidden',
           wordBreak: 'break-all',
           '-webkitLineClamp': '3',
-          width: '800px',
-          display: '-webkit-box'
+          width: '800px'
         }
       }
     },

+ 157 - 35
src/components/home/Home03.vue

@@ -420,6 +420,32 @@
           </el-dialog>
           <div class="hint">只能上传jpg/png/jpeg,且不超过2M,最多3张图片</div>
         </el-form-item>
+        <el-form-item label="添加资质证书:" prop="imageArr2" class="editProject">
+          <div style="display: flex; flex-wrap: wrap">
+            <div
+              style="position: relative"
+              v-for="(item, index) in projectForm.imageArr2"
+              :key="index"
+            >
+              <img class="editImg el-upload-list__item-thumbnail" :src="item" alt="" />
+              <i class="deleteImg el-icon-delete" @click="deleteImg2(index)"></i>
+            </div>
+            <el-upload
+              v-if="projectForm.imageArr2.length < 3"
+              accept=".jpg,.png,.jpeg"
+              :limit="3"
+              list-type="picture-card"
+              :on-change="changeUpload2"
+              :auto-upload="false"
+            >
+              <i slot="default" class="el-icon-plus"></i>
+            </el-upload>
+          </div>
+          <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="projectForm.image2" alt="" />
+          </el-dialog>
+          <div class="hint">只能上传jpg/png/jpeg,且不超过2M,最多3张图片</div>
+        </el-form-item>
         <el-form-item label="项目区域:">
           <el-button type="text" @click="editProjectArea"> 编辑项目区域 </el-button>
           <div v-if="polygons">
@@ -481,12 +507,20 @@
             show-word-limit
           ></el-input>
         </el-form-item>
-
-        <!-- <el-form-item label="添加图片:" prop="image" required>
-          <div>
+        <el-form-item label="添加图片:" prop="image" class="editProject" required="">
+          <div style="display: flex; flex-wrap: wrap">
+            <div
+              style="position: relative"
+              v-for="(item, index) in projectForm.imageArr"
+              :key="index"
+            >
+              <img class="editImg el-upload-list__item-thumbnail" :src="item" alt="" />
+              <i class="deleteImg el-icon-delete" @click="deleteImg(index)"></i>
+            </div>
             <el-upload
               ref="upload"
-              accept=".jpg,.png"
+              v-if="projectForm.imageArr.length < 3"
+              accept=".jpg,.png,.jpeg"
               :limit="3"
               list-type="picture-card"
               :on-change="changeUpload"
@@ -494,39 +528,37 @@
             >
               <i slot="default" class="el-icon-plus"></i>
             </el-upload>
-
           </div>
           <el-dialog :visible.sync="dialogVisible">
             <img width="100%" :src="projectForm.image" alt="" />
           </el-dialog>
-          <div class="hint">只能上传jpg/png,不超过1M,最多3张图片</div>
-        </el-form-item> -->
-        <el-form-item label="添加图片:" prop="image" class="editProject" required="">
+          <div class="hint">只能上传jpg/png,不超过1M,最多3张图片</div>
+        </el-form-item>
+        <el-form-item label="添加资质证书:" prop="imageArr2" class="editProject">
           <div style="display: flex; flex-wrap: wrap">
             <div
               style="position: relative"
-              v-for="(item, index) in projectForm.imageArr"
+              v-for="(item, index) in projectForm.imageArr2"
               :key="index"
             >
               <img class="editImg el-upload-list__item-thumbnail" :src="item" alt="" />
-              <i class="deleteImg el-icon-delete" @click="deleteImg(index)"></i>
+              <i class="deleteImg el-icon-delete" @click="deleteImg2(index)"></i>
             </div>
             <el-upload
-              ref="upload"
-              v-if="projectForm.imageArr.length < 3"
+              v-if="projectForm.imageArr2.length < 3"
               accept=".jpg,.png,.jpeg"
               :limit="3"
               list-type="picture-card"
-              :on-change="changeUpload"
+              :on-change="changeUpload2"
               :auto-upload="false"
             >
               <i slot="default" class="el-icon-plus"></i>
             </el-upload>
           </div>
           <el-dialog :visible.sync="dialogVisible">
-            <img width="100%" :src="projectForm.image" alt="" />
+            <img width="100%" :src="projectForm.image2" alt="" />
           </el-dialog>
-          <div class="hint">只能上传jpg/png,且不超过1M,最多3张图片</div>
+          <div class="hint">只能上传jpg/png/jpeg,且不超过2M,最多3张图片</div>
         </el-form-item>
         <el-form-item label="项目范围:">
           <el-button type="text" @click="addProjectArea"> 新增项目区域 </el-button>
@@ -541,7 +573,32 @@
         <el-button type="primary" @click="addProject()">确 定</el-button>
       </div>
     </el-dialog>
-
+    <!-- vueCropper 剪裁图片实现-->
+    <el-dialog
+      title="图片剪裁"
+      :close-on-click-modal="false"
+      :visible.sync="cropperVisible2"
+      append-to-body
+    >
+      <div class="cropper-content">
+        <div style="width: 100%; height: 500px">
+          <vueCropper
+            ref="cropper"
+            :img="photo2.img"
+            autoCrop
+            centerBox
+            fixed
+            :fixedNumber="photo2.fixedNumber"
+            :outputSize="photo2.size"
+            :outputType="photo2.outputType"
+          ></vueCropper>
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cropperVisible2 = false">取 消</el-button>
+        <el-button type="primary" @click="finish2">确认</el-button>
+      </div>
+    </el-dialog>
     <!-- vueCropper 剪裁图片实现-->
     <el-dialog
       title="图片剪裁"
@@ -625,7 +682,9 @@ export default {
         // },
         address: [],
         image: '',
-        imageArr: []
+        imageArr: [],
+        image2: '',
+        imageArr2: []
       },
       cityValue: [],
       options: cityArr,
@@ -689,10 +748,32 @@ export default {
         centerBox: false, // 截图框是否被限制在图片里面
         infoTrue: true // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
       },
+      photo2: {
+        img: '', // 裁剪图片的地址
+        info: true, // 裁剪框的大小信息
+        outputSize: 0.8, // 裁剪生成图片的质量
+        outputType: 'jpeg', // 裁剪生成图片的格式
+        // canScale: false, // 图片是否允许滚轮缩放
+        // autoCrop: true, // 是否默认生成截图框
+        // autoCropWidth: 300, // 默认生成截图框宽度
+        // autoCropHeight: 200, // 默认生成截图框高度
+        // fixedBox: true, // 固定截图框大小 不允许改变
+        fixed: true, // 是否开启截图框宽高固定比例
+        fixedNumber: [1.5, 1], // 截图框的宽高比例
+        full: true, // 是否输出原图比例的截图
+        canMoveBox: false, // 截图框能否拖动
+        original: false, // 上传图片按照原始比例渲染
+        centerBox: false, // 截图框是否被限制在图片里面
+        infoTrue: true // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
+      },
+      cropperVisible2: false, // 剪裁图片的弹窗
       file: '', // 上传的图片
+      file2: '', // 上传的图片
       projectId: '', // 项目id
       url: '', // 当前链接
       fileList: [], // 上传的图片列表
+      fileList2: [], // 上传的图片列表
+
       myDevicetitindex: 1,
       offnone: false,
       offtype: '',
@@ -768,13 +849,16 @@ export default {
       this.projectForm.imageArr.splice(index, 1)
       // console.log(this.projectForm.imageArr);
     },
+    deleteImg2(index) {
+      this.fileList2.splice(index, 1)
+      this.projectForm.imageArr2.splice(index, 1)
+      // console.log(this.projectForm.imageArr);
+    },
     // 上传按钮   限制图片大小
     changeUpload(file, fileList) {
-      // console.log(file);
-      // console.log(fileList);
       this.file = file
       this.fileList = fileList
-      // //console.log(fileList);
+
       const isLt4M = file.size / 1024 / 1024 < 2
       if (!isLt4M) {
         this.$message.error('上传文件大小不能超过 2MB!')
@@ -786,7 +870,55 @@ export default {
         this.cropperVisible = true
       })
     },
+    changeUpload2(file, fileList) {
+      this.file2 = file
+      this.fileList2 = fileList
+      // //console.log(fileList);
+      const isLt4M = file.size / 1024 / 1024 < 2
+      if (!isLt4M) {
+        this.$message.error('上传文件大小不能超过 2MB!')
+        return false
+      }
+      // 上传成功后将图片地址赋值给裁剪框显示图片
+      this.$nextTick(() => {
+        this.photo2.img = URL.createObjectURL(file.raw)
+        this.cropperVisible2 = true
+      })
+    },
+    finish2() {
+      // 获取截图的base64 数据
+      this.$refs.cropper.getCropBlob((data) => {
+        var form = new FormData()
+        let resFile = this.blobToFile(data, 'filename.jpg')
+        // console.log(resFile);
+
+        form.append('file', resFile)
+
+        form.append('img_type', '/index/home03')
+        form.append('token', localStorage.getItem('session'))
+
+        this.cropperVisible2 = false
+        this.$axios({
+          method: 'POST',
+          url: '/api/v2/util/upload/img/',
+          data: form
+        }).then((res) => {
+          // console.log(res);
+
+          if (res.data.data.items.img_url != 0 && res.data.msg == '成功') {
+            this.projectForm.image2 = res.data.data.items.img_url
 
+            this.projectForm.imageArr2.push(this.projectForm.image2)
+            // console.log(this.projectForm.imageArr);
+          } else {
+            this.$message({
+              message: '上传失败',
+              type: 'error'
+            })
+          }
+        })
+      })
+    },
     finish() {
       // 获取截图的base64 数据
       this.$refs.cropper.getCropBlob((data) => {
@@ -808,21 +940,6 @@ export default {
           // console.log(res);
 
           if (res.data.data.items.img_url != 0 && res.data.msg == '成功') {
-            // //根据url上传到哪个服务器
-            // if (this.url.includes("114.115.147.140")) {
-            //   this.projectForm.image =
-            //     "http://114.115.147.140:8002" + res.data.data.items.img_url;
-            // } else if (this.url.includes("8.136.98.49")) {
-            //   this.projectForm.image =
-            //     "http://8.136.98.49:8002" + res.data.data.items.img_url;
-            // } else if (this.url.includes("hnyfwlw.com")) {
-            //   this.projectForm.image =
-            //     "http://hnyfwlw.com:8002" + res.data.data.items.img_url;
-            // }else {
-            //   this.projectForm.image =
-            //     "http://114.115.147.140:8002" + res.data.data.items.img_url;
-            // }
-
             this.projectForm.image = res.data.data.items.img_url
 
             this.projectForm.imageArr.push(this.projectForm.image)
@@ -994,6 +1111,7 @@ export default {
                   ? this.projectForm.address[0]
                   : this.projectForm.address[2],
               img_list: this.projectForm.imageArr,
+              mark: this.projectForm.imageArr2,
               area: this.polygons
             })
           }).then((res) => {
@@ -1035,6 +1153,7 @@ export default {
                   ? this.projectForm.address[0]
                   : this.projectForm.address[2],
               img_list: this.projectForm.imageArr,
+              mark: this.projectForm.imageArr2,
               area: this.polygons
             })
           }).then((res) => {
@@ -1064,6 +1183,7 @@ export default {
         introduce: '',
         image: '',
         imageArr: [],
+        imageArr2: [],
         province: '',
         city: '',
         district: '',
@@ -1123,6 +1243,8 @@ export default {
       }
       this.projectForm.introduce = this.list.find((v) => v.project_id == this.projectId).project_msg
       this.projectForm.imageArr = this.list.find((v) => v.project_id == this.projectId).img_list
+
+      this.projectForm.imageArr2 = this.list.find((v) => v.project_id == this.projectId).mark
       // console.log(this.projectForm.imageArr);
 
       //  this.$axios({

+ 9 - 1
src/pages/bigdata/combine/MyMap/index.vue

@@ -424,6 +424,14 @@ export default {
               id: id
             }
           })
+        } else if (info.device_type_id == '45') {
+          // 墒情监测
+          this.$router.push({
+            path: `/index/shangQing`,
+            query: {
+              id: id
+            }
+          })
         } else if (info.device_type_id == '6') {
           // 监控设备
 
@@ -583,7 +591,7 @@ export default {
       }).then((res) => {
         const data = res.data.data.items
         if (data.length > 0) {
-          const polygons = data[0].area ? JSON.parse(data[0].area) : '[]'
+          const polygons = data[0].area ? JSON.parse(data[0].area) : []
           polygons.forEach((item) => {
             let paths = item.path
             let polygon = new AMap.Polygon({

+ 28 - 1
src/pages/bigdata/combine/comp/ProductIntro.vue

@@ -35,6 +35,14 @@
           {{ baseInfo.base_describe }}
         </div>
       </div>
+      <p class="pro-title">项目资质</p>
+
+      <viewer :images="mark" class="status-box">
+        <div v-for="item in mark" :key="item" class="status-item">
+          <img class="xmzz" :src="item" alt="" />
+        </div>
+      </viewer>
+
       <p class="pro-title">利用新技术</p>
       <div class="status-box">
         <div v-for="item in status3" :key="item.text" class="status-item">
@@ -103,6 +111,7 @@ export default {
   data() {
     return {
       baseList: [],
+      mark: [],
       selBaseId: '',
       proName: '项目名称',
       proMsg: '项目介绍',
@@ -116,6 +125,7 @@ export default {
   mounted() {
     // this.swiperInit()
     this.getBaseList()
+    this.getItemsList()
   },
   methods: {
     baseChange() {
@@ -173,6 +183,19 @@ export default {
       } catch (err) {
         console.log(err)
       }
+    },
+    getItemsList() {
+      this.$axios({
+        method: 'POST',
+        url: '/api/v2/home/project/list/?page_size=1000&page_num=1'
+      }).then((res) => {
+        // console.log("项目列表");
+        // console.log(res);
+        this.list = res.data.data.items
+        if (this.list != '') {
+          this.mark = this.list[0].mark
+        }
+      })
     }
   },
   beforeDestroy() {}
@@ -249,7 +272,7 @@ export default {
   font-size: 14px;
   text-align: justify;
   width: 100%;
-  height: 312px;
+  height: 200px;
   line-height: 24px;
   overflow: hidden;
   /* 2.用省略号来代替超出文本 */
@@ -272,6 +295,10 @@ export default {
   margin-top: 16px;
   box-sizing: border-box;
   padding: 0 20px;
+  .xmzz {
+    width: 82px;
+    height: 82px;
+  }
   .status-item {
     // width: 48%;
     position: relative;

+ 145 - 5
src/pages/bigdata/combine/comp/SoilIntro.vue

@@ -25,7 +25,7 @@
       </el-select>
     </p>
 
-    <div class="soil-info">
+    <div class="soil-info" v-if="deviceType == 15">
       <vue-seamless-scroll
         v-if="dataList.length > 0"
         :data="dataList"
@@ -48,6 +48,29 @@
         <p class="text-title">暂无信息</p>
       </my-empty>
     </div>
+    <div class="soil-info" v-if="deviceType == 45">
+      <vue-seamless-scroll
+        v-if="equipStatus.length > 0"
+        :data="equipStatus"
+        class="scrollwarp"
+        :class-option="optionHover"
+      >
+        <div class="soil-info-item" v-for="(item, index) in equipStatus" :key="index">
+          <div class="content" v-for="(base, j) in item" :key="j">
+            <p class="text">
+              {{ base.name }}
+            </p>
+            <p class="num">
+              {{ base.value }}
+              <span class="unit">{{ base.unit }}</span>
+            </p>
+          </div>
+        </div>
+      </vue-seamless-scroll>
+      <my-empty v-else class="empty" :style="{ height: 180 }">
+        <p class="text-title">暂无信息</p>
+      </my-empty>
+    </div>
   </div>
 </template>
 
@@ -65,12 +88,14 @@ export default {
       selId: '',
       equipList: [],
       dataList: [],
+      equipStatus: [],
       loading: false,
       soilInfo: {
         depth: '10,20,30',
         temp: '22,24,26',
         swc: '40,45,50'
-      }
+      },
+      deviceType: 15
     }
   },
   computed: {
@@ -117,13 +142,25 @@ export default {
   watch: {
     device_id(val) {
       if (val) {
-        this.getInfo(val)
+        const resData = this.equipList.filter((item) => item.device_id === val)
+        this.deviceType = resData[0]?.device_type_id || 15
+        if (resData[0].device_type_id === 15) {
+          this.getInfo()
+        } else {
+          this.getInfo2()
+        }
       }
     }
   },
   methods: {
     baseChange() {
-      this.getInfo()
+      const resData = this.equipList.filter((item) => item.device_id === this.selId)
+      this.deviceType = resData[0]?.device_type_id || 15
+      if (resData[0].device_type_id === 15) {
+        this.getInfo()
+      } else {
+        this.getInfo2()
+      }
     },
     getRulerStyle(i) {
       return {
@@ -140,6 +177,7 @@ export default {
         method: 'POST',
         url: '/api/api_gateway?method=weather.weather.nd_qxz_page',
         data: this.qs.stringify({
+          is_map: '1', // 该参数为1时表示一张图显示,,做设备类型区分,会返回除了管式墒情之外的墒情监测设备
           page: 1
         })
       })
@@ -149,7 +187,12 @@ export default {
           this.equipList = resData
           if (resData.length > 0) {
             this.selId = resData[0].device_id
-            this.getInfo()
+            this.deviceType = resData[0]?.device_type_id || 15
+            if (resData[0].device_type_id === 15) {
+              this.getInfo()
+            } else {
+              this.getInfo2()
+            }
           }
         })
         .catch(() => {
@@ -244,6 +287,45 @@ export default {
 
           this.$message.error('获取数据失败!')
         })
+    },
+    getInfo2() {
+      this.loading2 = true
+      this.$axios({
+        method: 'POST',
+        url: '/api/api_gateway?method=weather.weather.qxz_status',
+        data: this.qs.stringify({
+          device_id: this.selId
+        })
+      })
+        .then((res) => {
+          this.loading2 = false
+          if (res.data.message === '') {
+            const { dat, conf } = res.data.data
+            // console.log(dat, conf, 'resent, compare')
+            let recent = []
+            Object.keys(conf).forEach((key) => {
+              if (conf[key]) {
+                let item = conf[key].split('#')
+                let val = dat[key].split('#')
+
+                recent.push({
+                  num: val[1],
+                  value: val[0] || '--',
+                  unit: item[1],
+                  name: item[0]
+                })
+              }
+            })
+
+            this.equipStatus = this.formateArray(Math.ceil(recent.length / 2), 3, recent)
+          } else {
+            this.$message.error(res.data.message)
+          }
+        })
+        .catch((err) => {
+          this.loading = false
+          console.log(err)
+        })
     }
   },
   components: { MyEmpty }
@@ -324,4 +406,62 @@ export default {
     }
   }
 }
+.status-box {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+  // padding: 0 16px;
+  flex-wrap: wrap;
+  // animation: vertical-scroll 8s linear infinite;
+  .status-item {
+    width: 50%;
+    height: 35px;
+
+    // background-image: url('../assets/qx-bg.png');
+    background-size: auto 100%;
+    background-repeat: no-repeat;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    margin-bottom: 14px;
+    p {
+      flex: 1;
+      padding: 0 4px;
+      height: 35px;
+      line-height: 35px;
+      border-radius: 1.81px;
+      border: 0.45px solid #1671f8;
+    }
+    img {
+      width: 56px;
+      height: 41px;
+      vertical-align: middle;
+      // margin: 0 8px 0 8px;
+    }
+    span {
+      color: #fff;
+      font-size: 14px;
+      vertical-align: middle;
+    }
+    .unit {
+      font-size: 12px;
+      color: #d0deee;
+    }
+    .text {
+      font-size: 14px;
+      color: rgba(255, 255, 255);
+    }
+    .num {
+      font-size: 16px;
+      color: #d0deee;
+      font-weight: bold;
+      // line-height: 23px;
+    }
+  }
+  &:hover {
+    animation-play-state: paused;
+  }
+}
 </style>

+ 1 - 1
src/pages/bigdata/combine/comp/Weather.vue

@@ -165,7 +165,7 @@ export default {
   },
   data() {
     return {
-      curveType: 'quadratic',
+      curveType: 'cubic',
       currentWeather: {
         tem: '20',
         weather: '晴',

+ 2 - 2
src/pages/fourMoodBase/baseShow.vue

@@ -1435,7 +1435,7 @@ export default {
           url: '/api/api_gateway?method=forecast.worm_lamp.device_history_data',
           data: this.qs.stringify({
             device_type_id: 4,
-            device_id: '86626204545021997',
+            device_id: item.device_id,
             page_size: 1
           })
         }).then((res) => {
@@ -1448,7 +1448,7 @@ export default {
           method: 'POST',
           url: '/api/api_gateway?method=weather.weather.qxz_display',
           data: this.qs.stringify({
-            device_id: 16066009
+            device_id: item.device_id
           })
         }).then((res) => {
           let arr = new Array()

Plik diff jest za duży
+ 2060 - 0
src/pages/hjjc/shangqingMonitor/Data24.vue


Plik diff jest za duży
+ 3850 - 0
src/pages/hjjc/shangqingMonitor/EnvironmentMonitor.vue


Plik diff jest za duży
+ 1193 - 0
src/pages/hjjc/shangqingMonitor/HistoryData.vue


Plik diff jest za duży
+ 448 - 333
src/pages/hjjc/soilmoisture/soilmoisturelist.vue


+ 24 - 2
src/router/index.js

@@ -206,6 +206,12 @@ const EnvironmentMonitor = () =>
 const HistoryData = () =>
   import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/environmentMonitor/HistoryData')
 const Data24 = () => import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/environmentMonitor/Data24')
+
+const ShangqingMonitor = () =>
+  import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/shangqingMonitor/EnvironmentMonitor')
+const ShangqingHistoryData = () =>
+  import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/shangqingMonitor/HistoryData')
+const ShangqingData24 = () => import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/shangqingMonitor/Data24')
 const cmb = () => import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/cmb/cmb')
 const bfb = () => import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/bfb/bfb') // 小麦白粉病
 const dbb = () => import(/* webpackChunkName: "qxz" */ '@/pages/hjjc/dbb/dbb')
@@ -953,8 +959,7 @@ export default new Router({
             keepAlive: true, // 留存数据
             title: '环境监测'
           }
-        },
-        {
+        }, {
           path: 'historyData/:id/:d_id',
           component: HistoryData
         },
@@ -963,6 +968,23 @@ export default new Router({
           component: Data24
         },
         {
+          path: 'shangQing',
+          component: ShangqingMonitor,
+          name: 'shangQing',
+          meta: {
+            keepAlive: true, // 留存数据
+            title: '墒情监测'
+          }
+        },
+        {
+          path: 'sqhistoryData/:id/:d_id',
+          component: ShangqingHistoryData
+        },
+        {
+          path: 'sqdata24/:id',
+          component: ShangqingData24
+        },
+        {
           path: 'smartPole',
           component: () => import('@/pages/hjjc/smartPole/index.vue'),
           name: 'smartPole',

BIN
static/images/map/45.png