From e36ce8a4943cae5cd0cb46ea5373269e06eb9d56 Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Sat, 03 Sep 2022 17:46:03 +0800
Subject: [PATCH] 溯源码页面优化

---
 public/js/WebRtcPlayer.js   |   76 ++++
 public/newtrac.html         |  945 +++++++++++++++++++++++++++++++++++++++++++++++++
 public/traceablityInfo.html |  113 ++---
 3 files changed, 1,060 insertions(+), 74 deletions(-)

diff --git a/public/js/WebRtcPlayer.js b/public/js/WebRtcPlayer.js
new file mode 100644
index 0000000..5836516
--- /dev/null
+++ b/public/js/WebRtcPlayer.js
@@ -0,0 +1,76 @@
+class WebRtcPlayer {
+    /**
+     * WebRtc播放器
+     * @param {Element} ele 
+     */
+    constructor(ele) {
+        this.ele = ele;
+        // this.PeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
+        this.PeerConnection = window.RTCPeerConnection;
+
+    }
+    Open(url) {
+        if(this.localpc){
+            this.Close();
+        }
+        this.localpc = new this.PeerConnection(null);
+        const AudioTransceiverInit = {
+            direction: 'recvonly',
+            sendEncodings: []
+        };
+        const VideoTransceiverInit = {
+            direction: 'recvonly',
+            sendEncodings: []
+        };
+        this.localpc.addTransceiver('audio', AudioTransceiverInit);
+        this.localpc.addTransceiver('video', VideoTransceiverInit);
+        let that = this;
+        this.localpc.ontrack = function (e) {
+            if (!that.localpc.stream) {
+                that.localpc.streamId = e.track.id;
+                that.localpc.stream = new MediaStream();
+                that.ele.srcObject = that.localpc.stream;
+                that.ele.muted = true;
+                that.ele.autoplay = true;
+            }
+            that.localpc.stream.addTrack(e.track);
+        }
+
+        this.localpc.createOffer()
+            .then(offer => this.localpc.setLocalDescription(offer))
+            .then(() => {
+                that.getSdp(url, this.localpc.localDescription.sdp, function (data) {
+                    console.log("pullStreamRes:", data);
+                    data = JSON.parse(data);
+                    if (data.code != 0) return;
+                    let anwser = {};
+                    anwser.sdp = data.sdp;
+                    anwser.type = 'answer';
+                    that.localpc.setRemoteDescription(anwser).then(() => {
+                        console.log("播放成功");
+                    }).catch(e => {
+                        console.error("播放错误:" + e);
+                    });
+                });
+            })
+            .catch(e => "添加ICE候选人过程错误: " + e);
+    }
+    Close() {
+        if(this.localpc){
+            this.localpc.close();
+            this.localpc = null;
+        }
+    }
+    getSdp(url, body, success) {
+        let xhr = new XMLHttpRequest();
+        xhr.open('POST', url);
+        xhr.setRequestHeader('Content-Type', 'text/plain;charset=utf-8');
+        xhr.onreadystatechange = function () {
+            if (xhr.responseText.length < 1) return;
+            if (xhr.status === 200) {
+                success(xhr.responseText);
+            }
+        };
+        xhr.send(body);
+    }
+}
\ No newline at end of file
diff --git a/public/newtrac.html b/public/newtrac.html
new file mode 100644
index 0000000..0f3aa56
--- /dev/null
+++ b/public/newtrac.html
@@ -0,0 +1,945 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>查看溯源</title>
+  <style>
+    .top-log {
+      position: relative;
+      height: 520px;
+    }
+
+    .top-log .btn-grounp {
+      position: absolute;
+      left: 0;
+      bottom: -1px;
+      width: 100%;
+      height: 100px;
+      display: flex;
+      align-items: center;
+      justify-content: space-around;
+      background: transparent;
+    }
+
+    .main-content {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .main-content .logo {
+      position: relative;
+      margin-top: 3.5rem;
+      width: 18.75rem;
+      height: 18.75rem;
+      border-radius: 50%;
+      overflow: hidden;
+    }
+
+    .main-content .logo .btn {
+      position: absolute;
+      bottom: 0;
+      width: 100%;
+      height: 4rem;
+      line-height: 4rem;
+      text-align: center;
+      background: rgba(0, 0, 0, .4);
+      font-size: 1.5rem;
+      color: #fff;
+    }
+
+    .main-content .title {
+      margin-top: 1.875rem;
+      font-size: 48px;
+      font-weight: bold;
+      color: #333333;
+    }
+
+    .main-content .type {
+      display: flex;
+      margin-top: 10px;
+      width: 180px;
+      height: 36px;
+      font-size: 24px;
+      background: #7BDA8F;
+      color: #fff;
+      border-radius: 8px;
+      overflow: hidden;
+    }
+
+    .main-content .type .sub {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .main-content .type .icon {
+      width: 36px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      background: #6AC077;
+    }
+
+    .main-content .date {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin-top: 40px;
+      width: calc(100% - 60px);
+      height: 110px;
+      background: #E4F0F1;
+      border-radius: 34px;
+      font-size: 34px;
+      color: #5ABF78;
+    }
+
+    .model-box {
+      margin-top: 60px;
+      padding: 0 30px;
+    }
+
+    .model-box .model-title {
+      display: flex;
+      align-items: center;
+      height: 50px;
+    }
+
+    .model-box .model-title .l {
+      width: 5px;
+      height: 36px;
+      background: #5ABF78;
+    }
+
+    .model-box .model-title .title {
+      margin-left: 20px;
+      font-size: 36px;
+      font-weight: bold;
+      color: #333333;
+    }
+
+    .model-box .model-title .border {
+      flex: 1;
+      margin: 13px;
+      border-top: 1px dashed #D4DBE8;
+      border-bottom: 1px dashed #D4DBE8;
+    }
+
+    .model-box .model-title .status {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-size: 24px;
+      color: #5ABF78;
+    }
+
+    .model-box .model-title .statu.no {
+      color: #EC9144;
+    }
+
+    .model-box .model-title .status view {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .model-box.qw .model-content {
+      display: flex;
+      flex-direction: column;
+      margin-top: 30px;
+      background: #fff;
+      border-radius: 30px;
+    }
+
+    .model-box.qw .model-content .box:first-child {
+      border-bottom: 2px solid #EEEEEE;
+    }
+
+    .model-box.qw .model-content .box {
+      flex: 1;
+      display: flex;
+      padding: 30px;
+    }
+
+    .model-box.qw .model-content .box>.r {
+      margin-left: 26px;
+      flex: 1;
+      font-size: 24px;
+    }
+
+    .model-box.qw .model-content .box>.r .title {
+      font-size: 32px;
+      font-weight: bold;
+      color: #333333;
+    }
+
+    .model-box.qw .model-content .box>.r .line-box {
+      margin-top: 16px;
+      display: flex;
+    }
+
+    .model-box.qw .model-content .box>.r .line-box .sub {
+      width: 120px;
+      color: #333333;
+      line-height: 36px;
+    }
+
+    .model-box.qw .model-content .box>.r .line-box .content {
+      flex: 1;
+      color: #666666;
+      line-height: 36px;
+    }
+
+    /* 容器 */
+
+    .model-box.cd .model-content {
+      margin-top: 30px;
+      background: #fff;
+      border-radius: 30px;
+    }
+
+    /* 头部 */
+
+    .model-box.cd .model-content .content-header {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      height: 90px;
+      font-size: 30px;
+      color: #5ABF78;
+    }
+
+    .model-box.cd .model-content.jk .content-header {
+      color: #A255B5;
+      border-bottom: 2px solid #ECECEC;
+    }
+
+    /* 中间 */
+
+    .model-box.cd .model-content.dk .content-body {
+      height: 450px;
+      background: greenyellow;
+    }
+
+    .model-box.cd .model-content.jksp .content-body {
+      height: 385px;
+      /* background: #A255B5; */
+    }
+
+    .model-box.cd .model-content.jk .content-body {
+      border-bottom: 1px solid transparent;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box {
+      margin: 26px 22px;
+      border-radius: 28px;
+      border: 2px solid #E3E3E3;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-title {
+      padding: 0 22px;
+      /* margin-top: 10px; */
+      height: 100px;
+      line-height: 100px;
+      /* display: flex;
+      align-items: center;
+      justify-content: space-between; */
+      font-size: 28px;
+      font-weight: bold;
+      color: #333333;
+      width: 100%;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-date {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin: 13px 0;
+      height: 2px;
+      background: #ECECEC;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-date .site-date-text {
+      padding: 0 18px;
+      /* height: 36px; */
+      background: #F4F4F4;
+      border-radius: 18px;
+      font-size: 24px;
+      color: #929292;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content {
+      padding: 24px 22px;
+      display: flex;
+      flex-wrap: wrap;
+      justify-content: space-between;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div {
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      margin-top: 16px;
+      padding: 16px 12px;
+      width: calc((100% - 18px) / 2);
+      background: #E9F1FC;
+      border-radius: 8px;
+      box-sizing: border-box;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div:nth-child(1),
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div:nth-child(2) {
+      margin-top: 0;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div .type {
+      font-size: 28px;
+      color: #333333;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div .unit {
+      margin-top: 4px;
+      font-size: 24px;
+      color: #84898F;
+    }
+
+    .model-box.cd .model-content.jk .content-body .site-box .site-content>div .r {
+      font-size: 38px;
+      color: #5ABF78;
+    }
+
+    /* 底部 */
+
+    .model-box.cd .model-content .content-footer {
+      display: flex;
+      align-items: center;
+      height: 120px;
+      font-size: 24px;
+    }
+
+    .model-box.cd .model-content.dk .content-footer {
+      padding: 0 26px;
+    }
+
+    .model-box.cd .model-content.dk .content-footer .l {
+      width: 480px;
+      color: #666666;
+    }
+
+    .model-box.cd .model-content.dk .content-footer .r {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      color: #5ABF78;
+    }
+
+    .model-box.cd .model-content.jksp .content-footer {
+      padding: 0 30px;
+    }
+
+    .model-box.cd .model-content.jksp .content-footer .equi-btn {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin-left: 12px;
+      width: 196px;
+      height: 60px;
+      background: #F2F5F9;
+      border-radius: 9px;
+      border: 1px solid #DCDCDC;
+      font-size: 24px;
+      color: #697580;
+    }
+
+    .model-box.cd .model-content.jksp .content-footer .equi-btn:first-child {
+      margin-left: 0;
+    }
+
+    .model-box.cd .model-content.jksp .content-footer .equi-btn.on {
+      background: linear-gradient(90deg, #5ABB82 0%, #7BDA8F 100%);
+      border: none;
+      color: #fff;
+    }
+
+    /* 种植环节 */
+
+    .model-box.zz .model-content {
+      margin-top: 30px;
+    }
+
+    .model-box.zz .model-content .msg {
+      display: flex;
+      align-items: center;
+      height: 126px;
+    }
+
+    .model-box.zz .model-content .msg .r {
+      margin-left: 30px;
+      padding: 10px 26px;
+      position: relative;
+      flex: 1;
+      background: #fff;
+      font-size: 24px;
+      color: #999999;
+      border-radius: 16px;
+    }
+
+    .model-box.zz .model-content .msg .r text {
+      font-weight: bold;
+      color: #EC9144;
+    }
+
+    .model-box.zz .model-content .msg .r .r-b-msg {
+      margin-top: 10px;
+      color: #333333;
+    }
+
+    .model-box.zz .model-content .msg .r .point-to {
+      position: absolute;
+      top: 0;
+      left: -18px;
+      right: auto;
+      bottom: 0;
+      margin: auto;
+      width: 0;
+      height: 0;
+      border-top: 14px solid transparent;
+      border-right: 30px solid #fff;
+      border-bottom: 14px solid transparent;
+      z-index: -1;
+    }
+
+    .model-box.zz .model-content .record-box {
+      display: flex;
+      align-items: center;
+    }
+
+    .model-box.zz .model-content .record-box .l {
+      margin-left: 40px;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .model-box.zz .model-content .record-box .l .point {
+      width: 20px;
+      height: 20px;
+      background: #5ABF78;
+      border-radius: 50%;
+    }
+
+    .model-box.zz .model-content .record-box .l .line {
+      width: 2px;
+      height: 150px;
+      background: #DEE3E7;
+    }
+
+    .model-box.zz .model-content .record-box .l .line.one {
+      width: 2px;
+      height: 100px;
+      background: #DEE3E7;
+    }
+
+    .model-box.zz .model-content .record-box .l .line.two {
+      width: 2px;
+      height: 100px;
+      background: #DEE3E7;
+    }
+
+    .model-box.zz .model-content .record-box .r {
+      margin-left: 64px;
+      flex: 1;
+    }
+
+    .model-box.zz .model-content .record-box .r .record-item {
+      margin-top: 30px;
+      padding: 32px 30px 42px;
+      background: #FFFFFF;
+      border-radius: 30px;
+    }
+
+    .model-box.zz .model-content .record-box .r .record-item .type {
+      font-size: 32px;
+      font-weight: bold;
+      color: #333333;
+    }
+
+    .model-box.zz .model-content .record-box .r .record-item .date-pel {
+      margin-top: 10px;
+      display: flex;
+      justify-content: space-between;
+    }
+
+    .model-box.zz .model-content .record-box .r .record-item .date-pel .date {
+      padding: 2px 20px;
+      font-size: 24px;
+      color: #fff;
+      background: linear-gradient(89deg, #60BA84 0%, #73DB90 100%);
+      border-radius: 10px;
+    }
+
+    .model-box.zz .model-content .record-box .r .record-item .date-pel .pel {
+      font-size: 28px;
+      color: #666666;
+    }
+
+    /* 生产企业 */
+
+    .model-box.sc .model-content {
+      margin-top: 30px;
+      /* padding-bottom: 30px; */
+      background: #fff;
+      border-radius: 30px;
+    }
+
+    .model-box.sc .model-content .content-header {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      height: 124px;
+      font-size: 36px;
+      font-weight: bold;
+      color: #000000;
+    }
+
+    .model-box.sc .model-content .content-body {
+      height: 390px;
+    }
+
+    .model-box.sc .model-content .content-body .swiper {
+      height: 100%;
+      width: 100%;
+    }
+
+    .model-box.sc .model-content .content-body .swiper-image {
+      height: 100%;
+      width: 100%;
+    }
+
+    .model-box.sc .model-content .content-body .slide-image {
+      height: 100%;
+      width: 100%;
+    }
+
+    .model-box.sc .model-content .text-intro {
+      margin: 0 25px;
+      padding: 20px 0 34px;
+      line-height: 42px;
+      font-size: 24px;
+      color: #818592;
+      border-bottom: 2px solid #EAEEF4;
+    }
+
+    .model-box.sc .model-content .content-footer {
+      margin-top: 24px;
+      display: flex;
+      align-items: flex-start;
+      justify-content: space-around;
+    }
+
+    .model-box.sc .model-content .content-footer>view {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+    }
+
+    .model-box.sc .model-content .content-footer>view .type {
+      margin-top: 6px;
+      font-size: 24px;
+      color: #697580;
+    }
+
+    .model-box.sc .model-content .content-footer>view .msg {
+      margin-top: 2px;
+      padding: 2px 6px;
+      background: #E4EBEE;
+      border-radius: 13px 13px 13px 13px;
+      font-size: 20px;
+      color: #697580;
+    }
+
+    .btn-grounp {
+      margin-top: 84px;
+      display: flex;
+      height: 148px;
+      background: #FFFFFF;
+    }
+
+    .btn-grounp .l {
+      margin-right: 76px;
+      width: 194px;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .btn-grounp .l .plan {
+      font-size: 34px;
+      font-weight: bold;
+      color: #D55B26;
+    }
+
+    .btn-grounp .l .text {
+      margin-top: 2px;
+      font-size: 20px;
+      color: #A5AEB5;
+    }
+
+    .btn-grounp .r {
+      flex: 1;
+      display: flex;
+      align-items: center;
+    }
+
+    /* #video-body {
+      display: inline-block;
+      height: 100%;
+      position: relative;
+      overflow: hidden;
+    } */
+
+    #video-footer {
+      width: 100%;
+      height: 60px;
+      background: rgba(0, 0, 0, 0.5);
+      margin-top: -63px;
+      position: relative;
+    }
+
+    #oper-btn {
+      position: absolute;
+      top: 10px;
+      left: 20px;
+      cursor: pointer;
+    }
+
+    #full-btn {
+      position: absolute;
+      top: 12px;
+      right: 20px;
+      cursor: pointer;
+    }
+
+  </style>
+  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+  <script src="js/flv.min.js" type="text/javascript" charset="utf-8"></script>
+</head>
+
+<body>
+  <div class="page-main-container" style="background: #F1F9F8;width:100%;height: 100%;">
+    <!-- str0 -->
+    <!-- 顶部图片 -->
+    <div class="top-log">
+      <img width="100%" height="520px" src="http://182.106.212.58:8014/assets/images/sym/2.png" />
+      <div class="btn-grounp">
+        <img bindtap="scrollTo" data-class=".qw" width="200px" height="100px"
+          src="http://182.106.212.58:8014/assets/images/sy/1418.png" />
+        <img bindtap="scrollTo" data-class=".cd" width="200px" height="100px"
+          src="http://182.106.212.58:8014/assets/images/sy/1416.png" />
+        <img bindtap="scrollTo" data-class=".zz" width="200px" height="100px"
+          src="http://182.106.212.58:8014/assets/images/sy/1415.png" />
+        <img bindtap="scrollTo" data-class=".sc" width="200px" height="100px"
+          src="http://182.106.212.58:8014/assets/images/sy/1414.png" />
+      </div>
+    </div>
+
+    <!-- 农产品信息 -->
+    <div class="main-content">
+      <div class="logo">
+        <img width="100%" height="100%" id="logoImg" />
+      </div>
+      <div class="title" id="titleName"></div>
+      <div class="type">
+        <div class="sub" id="sub1">${recovery.lx}</div>
+      </div>
+      <div class="date" id="date1"></div>
+    </div>
+
+    <!-- 权威检测 -->
+    <div class="qw model-box">
+      <div class="model-title">
+        <div class="l"></div>
+        <div class="title">权威检测</div>
+        <div class="border"></div>
+        <div class="status">
+          <div>
+            <van-icon style="margin-right: 10px;" name="http://182.106.212.58:8014/assets/images/sym/1265.png" />
+          </div>
+          可追溯
+        </div>
+      </div>
+      <div class="model-content" id="str1Dom">
+        <!-- str1 -->
+        <!-- str2 -->
+      </div>
+    </div>
+
+    <!-- 产地信息 -->
+    <div class="cd model-box">
+      <div class="model-title">
+        <div class="l"></div>
+        <div class="title">产地信息</div>
+        <div class="border"></div>
+        <div class="status">
+          <div>
+            <van-icon style="margin-right: 10px;" name="http://182.106.212.58:8014/assets/images/sym/1265.png" />
+          </div>
+          可追溯
+        </div>
+      </div>
+
+      <div class="dk model-content">
+        <div class="content-header">
+          <van-icon style="margin-right: 12px;" name="http://182.106.212.58:8014/assets/images/sy/1267.png" /> 种植地块
+        </div>
+        <div class="content-body">
+          <img id="contentImg1" />
+        </div>
+        <div class="content-footer">
+          <div class="l" id="farmAddress"></div>
+        </div>
+      </div>
+
+      <div class="jksp model-content">
+        <div class="content-header">
+          <van-icon style="margin-right: 12px;" name="http://182.106.212.58:8014/assets/images/sy/1272.png" />
+          良心生产,不怕监督,24小时视频监控
+        </div>
+        <!-- str10 -->
+      </div>
+    </div>
+
+    <!-- 监控监测数据展示 -->
+    <div class="jk model-content">
+      <div class="content-header">
+        物联网监控保证产地养分充足,且不被污染
+      </div>
+      <div class="content-body">
+        <div class="site-box">
+          <!-- strdetection -->
+          <div class="site-title">
+            <div class="l">
+              <select id="select" style="font-weight: bold;color: #333333;border: none;font-size: 28px;width:96%">
+                <option>${item.name}</option>
+              </select>
+            </div>
+          </div>
+          <div class="site-date">
+            <div class="site-date-text" id="sitedatetext">更新时间</div>
+          </div>
+          <div class="site-content" id="detectionlist">
+            <div class="list">
+              <div class="l">
+                <div class="type">${item.name}</div>
+                <div class="unit">
+                  单位:${item.unit}
+                </div>
+              </div>
+              <div class="r">
+                ${item.value}
+              </div>
+            </div>
+            <!-- <div class="site-content">
+              <div class="list">
+                <div class="l">
+                  <div class="type">${item.name}</div>
+                  <div class="unit">
+                    单位:${item.unit}
+                  </div>
+                </div>
+                <div class="r">
+                  ${item.value}
+                </div>
+              </div> -->
+            <!-- str11 -->
+            <!-- </div> -->
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 种植环节 -->
+    <div class="zz model-box">
+      <div class="model-title">
+        <div class="l"></div>
+        <div class="title">种植环节</div>
+        <div class="border"></div>
+        <div class="status no"></div>
+      </div>
+      <div class="model-content">
+        <div class="msg">
+          <div class="l">
+            <img width="126px" height="126px" src="http://182.106.212.58:8014/assets/images/sy/zz-log.png" />
+          </div>
+          <div class="r">
+            <div>
+              我是基地管理员:
+            </div>
+            <div class="r-b-msg">
+              以下农事操作,是在我的监督下完成
+            </div>
+
+            <div class="point-to"></div>
+          </div>
+        </div>
+        <!-- str3 -->
+        <div id="recordBox"></div>
+        <!-- str4 -->
+      </div>
+    </div>
+
+    <!-- 生产企业 -->
+    <div class="sc model-box">
+      <div class="model-title">
+        <div class="l"></div>
+        <div class="title">生产企业</div>
+        <div class="border"></div>
+        <div class="status no">
+        </div>
+      </div>
+      <div class="model-content">
+        <div class="content-header" id="contentHeader"></div>
+        <div class="content-body">
+          <swiper class="swiper" indicator-dots="true" autoplay="true" interval="3000" duration="1000">
+            <block class="swiper-image" id="swImg">
+              <!-- str5 -->
+              <!-- str6 -->
+            </block>
+          </swiper>
+
+        </div>
+        <div class="text-intro" id="textIntro"></div>
+        <div class="content-footer">
+        </div>
+      </div>
+    </div>
+  </div>
+</body>
+<script>
+  $(function () {
+    var getData = function (name) {
+      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+      var r = window.location.search.substr(1).match(reg);
+      if (r != null) return decodeURI(r[2]);
+      return null;
+    };
+    var code = getData("code");
+    axios.get('https://dev.jxpskj.com:8023/api/traceability/getTraceabilityDetailInfos?code=' + code).then(
+      function (res) {
+        // 初始化数据begin
+        var data = res.data.data;
+        var farm = data.farm;
+        var land = data.landVO;
+        var num = data.num;
+        var paperList = data.paperVOList;
+        var recordVOList = data.recordVOList;
+        var recovery = data.recoveryVO;
+        // 初始化数据end
+
+        // 页面数据渲染begin
+        $('#titleName').text(recovery.strainName)
+        $('#logoImg').attr('src', recovery.url)
+        $('#sub1').text(recovery.lx)
+        $('#date1').text('采收时间:' + recovery.time.replaceAll("-", "."))
+        $('#contentHeader').text(farm.farmName)
+        $('#textIntro').text(farm.introduce)
+        // $('#slideImg').attr(item)
+        // 页面数据渲染end
+
+        // 权威检测页面遍历begin
+        var str1 = '';
+        if (paperList.length > 0) {
+          paperList.forEach(item => {
+            var url = item.pictures.split(",")[0];
+            str1 = str1 + `<div class="box">
+                        <div class="l">
+                            <img width="204px" height="204px" src="${url}" />
+                        </div>
+                        <div class="r">
+                            <div class="title">
+                                ${item.name}
+                            </div>
+                            <div class="org line-box">
+                                <div class="sub">检测机构:</div>
+                                <div class="content">${item.organName}</div>
+                            </div>
+                            <div class="ser line-box">
+                                <div class="sub">证书编号:</div>
+                                <div class="content">${item.code}</div>
+                            </div>
+                            <div class="date line-box">
+                                <div class="sub">颁发日期:</div>
+                                <div class="content">${item.time.replaceAll("-", ".")}</div>
+                            </div>
+                        </div>
+                    </div>`
+          });
+        } else {
+          str1 = str1 + `<div class="box"></div>`
+        }
+        $('#str1Dom').append(str1)
+        $('#contentImg1').attr('src', land.url)
+        $('#farmAddress').text(farm.farmAddress)
+        // 权威检测页面遍历end       
+
+        // 种植环节遍历begin
+        var str3 = '';
+        recordVOList.forEach((item, index) => {
+          str3 = str3 + `<div class="record-box">
+                    <div class="l">
+
+                        <div class="one  line" style="${index == 0 ? 'background: transparent !important;' : ''}">
+                        </div>
+
+                        <div class="point">
+                        </div>
+
+                        <div class="two line" style="${index == recordVOList.length - 1 ? 'background: transparent !important;' : ''}">
+                        </div>
+
+                    </div>
+                    <div class="r">
+                        <div class="record-item">
+                            <div class="type">${item.typeName}</div>
+                            <div class="date-pel">
+                                <div class="date">${item.time}</div>
+                                <div class="pel">操作人:${item.realName}</div>
+                            </div>
+                        </div>
+                    </div>
+                </div>`
+        });
+        console.log(str3);
+        $('#recordBox').append(str3)
+        // 种植环节遍历end
+
+        // 监测数据更新begin
+        // 监测数据更新end
+
+        //生产企业begin
+        var str5 = ''
+        var urls = farm.picture.split(",");
+        if (urls.length > 0) {
+          urls.forEach(item => {
+            str5 = str5 + `<swiper-item>
+                                <image src="${item}" class="slide-image" />
+                            </swiper-item>`
+          })
+        }
+        $('#swImg').append(str5)
+        //生产企业end
+      })
+  })
+
+</script>
+
+</html>
diff --git a/public/traceablityInfo.html b/public/traceablityInfo.html
index 3c5bcd8..2c45870 100644
--- a/public/traceablityInfo.html
+++ b/public/traceablityInfo.html
@@ -345,7 +345,7 @@
     .model-box.cd .model-content.jksp .content-footer .equi-btn {
       display: flex;
       align-items: center;
-      justify-content: center;
+      /* justify-content: center; */
       margin-left: 12px;
       width: 196px;
       height: 60px;
@@ -354,6 +354,9 @@
       border: 1px solid #DCDCDC;
       font-size: 24px;
       color: #697580;
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
     }
 
     .model-box.cd .model-content.jksp .content-footer .equi-btn:first-child {
@@ -631,49 +634,6 @@
   <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
   <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
   <script src="js/flv.min.js" type="text/javascript" charset="utf-8"></script>
-
-  <script>
-    (function (win, doc) {
-      'use strict';
-      var options = {
-        width: 750,
-        dpr: win.devicePixelRatio
-      };
-      var html = doc.documentElement,
-        width = html.getAttribute('data-width') || options.width,
-        dpr = html.getAttribute('data-dpr') || options.dpr,
-        viewPort = doc.querySelector('meta[name="viewport"]'),
-        rotate = win.onorientationchange ? 'orientationchange' : 'resize';
-
-      // 设置html fontSize
-      function setSize() {
-        var winWidth = win.innerWidth || html.clientWidth;
-        html.style.fontSize = 16 * winWidth / width + 'px';
-      };
-
-      // 设置 initial-scale
-      function setScale() {
-        setSize();
-        var viewContent = viewPort.getAttribute('content');
-        var reg = /initial-scale=(\d(.\d+)?)/i;
-        var matchRes = viewContent.match(reg);
-        var scale = 1 / parseInt(dpr);
-        if (matchRes && matchRes[1] == scale) {
-          return;
-        }
-        var newContent = viewContent.replace(reg, function (a, b) {
-          return a.replace(/\d(.\d+)?/i, scale);
-        });
-        viewPort.setAttribute('content', newContent);
-      };
-
-      win.addEventListener(rotate, setSize);
-      window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame;
-      requestAnimationFrame(setScale);
-    }(window, document));
-
-  </script>
-
 </head>
 
 
@@ -708,20 +668,7 @@
       var paperList = data.paperVOList;
       var recordVOList = data.recordVOList;
       var recovery = data.recoveryVO;
-
-      //请求检测数据
-      axios.get(
-        'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoInfoData?type=All&landId=' +
-        recovery.landId).then(function (res) {
-        var staList = res.data.data.staList;
-        var vidList = res.data.data.vidList;
-
-        window.detectionList = staList;
-        window.videoList = vidList;
-
-
-
-        var str0 = `<div class="top-log">
+      var str0 = `<div class="top-log">
             <img width="100%" height="520px" src="http://182.106.212.58:8014/assets/images/sym/2.png" />
             <div class="btn-grounp">
                 <img bindtap="scrollTo" data-class=".qw" width="200px" height="100px" src="http://182.106.212.58:8014/assets/images/sy/1418.png" />
@@ -767,11 +714,11 @@
         </div>
 
         <div class="model-content">`
-        var str1 = '';
-        if (paperList.length > 0) {
-          paperList.forEach(item => {
-            var url = item.pictures.split(",")[0];
-            str1 = str1 + `<div class="box">
+      var str1 = '';
+      if (paperList.length > 0) {
+        paperList.forEach(item => {
+          var url = item.pictures.split(",")[0];
+          str1 = str1 + `<div class="box">
                         <div class="l">
                             <img width="204px" height="204px" src="${url}" />
                         </div>
@@ -793,13 +740,13 @@
                             </div>
                         </div>
                     </div>`
-          });
-        } else {
-          str1 = str1 + `<div class="box"></div>`
-        }
+        });
+      } else {
+        str1 = str1 + `<div class="box"></div>`
+      }
 
 
-        var str2 = `
+      var str2 = `
             </div>
         </div>
 
@@ -821,7 +768,7 @@
                     <van-icon style="margin-right: 12px;" name="http://182.106.212.58:8014/assets/images/sy/1267.png" /> 种植地块
                 </div>
                 <div class="content-body">
-                    <image style="width: 100%;height: 100%;" src="${land.url}" />
+                    <image style="width: 100%;height:100%" src="${land.url}" />
                 </div>
                 <div class="content-footer">
                     <div class="l">
@@ -838,6 +785,24 @@
                 <div class="content-header">
                     <van-icon style="margin-right: 12px;" name="http://182.106.212.58:8014/assets/images/sy/1272.png" /> 良心生产,不怕监督,24小时视频监控
                 </div>`
+
+      var dom = $('.page-main-container');
+      dom.empty();
+      dom.append(str0 + str1 + str2);
+
+      //请求检测数据
+      axios.get(
+        'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoInfoData?type=All&landId=' +
+        recovery.landId).then(function (res) {
+        var staList = res.data.data.staList;
+        var vidList = res.data.data.vidList;
+
+        window.detectionList = staList;
+        window.videoList = vidList;
+
+
+
+
 
 
         //监控
@@ -1081,7 +1046,7 @@
         //     </div>
         // </div>
 
-        var dom = $('.page-main-container');
+        // var dom = $('.page-main-container');
         dom.empty();
         dom.append(str0 + str1 + str2 + strvedio + str10 + strdetection + str11 + str3 + str4 + str5 + str6);
 
@@ -1090,10 +1055,10 @@
 
         var slide = false,
           soundWidth = 0;
-
+        var flvPlayer = null;
         //初始化视频配置
         if (flvjs.isSupported()) {
-          var flvPlayer = flvjs.createPlayer({
+          flvPlayer = flvjs.createPlayer({
             type: 'flv',
             url: window.videoList[0].wssFlv,
             hasAudio: false
@@ -1108,11 +1073,11 @@
         videoElement.style.height = "385px";
         videoElement.style.objectFit = "fill";
 
-
         //切换视频
         $('.jksp .content-footer .equi-btn').click(function () {
           var ind = $(this).index()
           window.videoList.some((item, index) => {
+            console.log('1112', item, index);
             if (ind == index) {
               //暂停播放数据流
               flvPlayer.pause();
@@ -1123,7 +1088,7 @@
               //销毁播放实例
               flvPlayer.destroy();
               //重新创建流实例
-              var flvPlayer = flvjs.createPlayer({
+              flvPlayer = flvjs.createPlayer({
                 type: 'flv',
                 url: window.videoList[index].wssFlv,
                 hasAudio: false

--
Gitblit v1.9.3