智慧农业大数据平台
shuishen
2022-08-10 b9ffd276b4fa8ca1918f486e70d7e4d0d04d9d9f
Merge branch 'master' of http://192.168.0.105:10010/r/zhny-dsjdp
11 files modified
11 files added
1793 ■■■■ changed files
public/img/icon/close.png patch | view | raw | blame | history
public/img/icon/down_menu.png patch | view | raw | blame | history
public/img/icon/icon_3788.png patch | view | raw | blame | history
public/img/icon/up_menu.png patch | view | raw | blame | history
src/api/equipment/equipment.js 58 ●●●●● patch | view | raw | blame | history
src/api/farm/farmingrecord.js 20 ●●●●● patch | view | raw | blame | history
src/api/farm/source.js 10 ●●●●● patch | view | raw | blame | history
src/api/land/land.js 24 ●●●●● patch | view | raw | blame | history
src/main.js 2 ●●●●● patch | view | raw | blame | history
src/styles/index.css 137 ●●●●● patch | view | raw | blame | history
src/styles/index.min.css 2 ●●● patch | view | raw | blame | history
src/styles/index.scss 2 ●●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-station-details.css 108 ●●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-station-details.min.css 1 ●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-station-details.scss 101 ●●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-vid-details.css 46 ●●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-vid-details.min.css 1 ●●●● patch | view | raw | blame | history
src/styles/publicBox/equirment-vid-details.scss 49 ●●●●● patch | view | raw | blame | history
src/views/equipment/index.vue 24 ●●●● patch | view | raw | blame | history
src/views/farm/index.vue 512 ●●●●● patch | view | raw | blame | history
src/views/home/index.vue 52 ●●●● patch | view | raw | blame | history
src/views/manage/index.vue 644 ●●●● patch | view | raw | blame | history
public/img/icon/close.png
public/img/icon/down_menu.png
public/img/icon/icon_3788.png
public/img/icon/up_menu.png
src/api/equipment/equipment.js
New file
@@ -0,0 +1,58 @@
import request from '@/router/axios'
// 获取在线设备信息
export const getStationAndVideoCount = (params) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/count',
        method: 'get',
        params: {
            ...params
        }
    })
}
// 获取监控/监测设备列表
export const getStationAndVideoList = (params) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoInfo',
        method: 'get',
        params: {
            ...params
        }
    })
}
// 根据地块获取监测监控设备
export const getStationAndVideoByLandId = (landId, type) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoByLandId',
        method: 'get',
        params: {
            land_id: landId,
            type: type
        }
    })
}
// 根据设备号获取监测设备数据
export const getStationDateByStcd = (stcd, startTime, endTime) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/naturalFactors/findElementDataByTime',
        method: 'get',
        params: {
            stcd: stcd,
            startTime: startTime,
            endTime: endTime
        }
    })
}
// 根据农场id获取设备列表 监控和监测在同一个集合
export const queryEquipmentList = (params) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryEquipmentList',
        method: 'get',
        params: {
            ...params
        }
    })
}
src/api/farm/farmingrecord.js
@@ -299,24 +299,4 @@
        }
    })
}
// 获取在线设备信息
export const getStationAndVideoCount = (params) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/count',
        method: 'get',
        params: {
            ...params
        }
    })
}
// 获取监控/监测设备列表
export const getStationAndVideoList = (params) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoInfo',
        method: 'get',
        params: {
            ...params
        }
    })
}
src/api/farm/source.js
@@ -9,3 +9,13 @@
        }
    })
}
export const getSimpleInfo = (code) => {
    return request({
        url: '/traceability/getSimpleInfo',
        method: 'get',
        params: {
            code
        }
    })
}
src/api/land/land.js
@@ -68,27 +68,3 @@
        }
    })
}
// 根据地块获取监测监控设备
export const getStationAndVideoByLandId = (landId, type) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/stationAndVideo/queryStationAndVideoByLandId',
        method: 'get',
        params: {
            land_id: landId,
            type: type
        }
    })
}
// 根据设备号获取监测设备数据
export const getStationDateByStcd = (stcd, startTime, endTime) => {
    return request({
        url: 'http://dev.jxpskj.com:8030/pyh-station/naturalFactors/findElementDataByTime',
        method: 'get',
        params: {
            stcd: stcd,
            startTime: startTime,
            endTime: endTime
        }
    })
}
src/main.js
@@ -31,6 +31,8 @@
import '@dvgis/dc-sdk/dist/dc.core.min.css'
Vue.prototype.$echarts = echarts
global.DC = DC // 将DC提升到全局变量,方便在工程中直接使用
src/styles/index.css
@@ -27,6 +27,39 @@
  visibility: hidden;
}
.el-icon-my-nc-menu {
  background: url("/img/icon/nc-menu.png") center no-repeat;
  /* background-size: cover;*/
}
.el-icon-my-nc-menu:before {
  content: "替";
  font-size: 24px;
  visibility: hidden;
}
.el-icon-my-jksb-menu {
  background: url("/img/icon/jksb-menu.png") center no-repeat;
  /* background-size: cover;*/
}
.el-icon-my-jksb-menu:before {
  content: "替";
  font-size: 24px;
  visibility: hidden;
}
.el-icon-my-jcsb-menu {
  background: url("/img/icon/jcsb-menu.png") center no-repeat;
  /* background-size: cover;*/
}
.el-icon-my-jcsb-menu:before {
  content: "替";
  font-size: 24px;
  visibility: hidden;
}
.dialog-fixed {
  margin: 0 !important;
  position: fixed;
@@ -764,6 +797,110 @@
  width: 120px;
}
.public-equirment-station-details {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 648px;
  height: 401px;
  background-color: transparent;
  z-index: 99;
  font-size: 16px;
  box-shadow: inset 0px 3px 20px 1px #5BC3D1;
  opacity: 1;
  border: 1px solid #69E2ED;
  background: rgba(20, 66, 104, 0.8);
  border-radius: 10px;
  margin: 0;
  padding: 0;
}
.public-equirment-station-details .header {
  position: relative;
  width: 270px;
  height: 24px;
  font-size: 18px;
  font-family: Microsoft YaHei-Bold, Microsoft YaHei;
  font-weight: bold;
  color: #58BFCD;
  line-height: 20px;
  margin: 20px auto;
}
.public-equirment-station-details .header .close {
  position: absolute;
  top: -20px;
  right: -260px;
  cursor: pointer;
}
.public-equirment-station-details .content {
  overflow: scroll;
  height: 330px;
}
.public-equirment-station-details .content .itemTitle {
  box-sizing: border-box;
  width: 607px;
  height: 70px;
  background: #0D1E34;
  border-radius: 0px 0px 0px 0px;
  opacity: 1;
  margin-left: 17px;
  margin-bottom: 10px;
  padding: 15px 20px;
  border: 1px solid transparent;
}
.public-equirment-station-details .content .itemTitle img {
  float: left;
}
.public-equirment-station-details .content .itemTitle .type {
  float: left;
  margin-left: 20px;
}
.public-equirment-station-details .content .itemTitle .type h1 {
  font-size: 16px;
  color: #58BFCD;
  margin-bottom: 4px;
}
.public-equirment-station-details .content .itemTitle .type span {
  font-size: 13px;
  color: #FFFFFF;
  opacity: 0.5;
}
.public-equirment-station-details .content .itemTitle .data {
  float: left;
  margin-left: 208px;
  width: 80px;
  height: 34px;
  font-size: 34px;
  font-family: DS-Digital-Italic, DS-Digital;
  font-weight: normal;
  color: #58BFCD;
  line-height: 32px;
}
.public-equirment-station-details .content .itemTitle .openMenuIcon {
  margin-left: 95px;
  margin-top: 4px;
  cursor: pointer;
}
.public-equirment-station-details .content .EchartsBox_div {
  width: 607px;
  height: 210px;
  background: #0D1E34;
  margin-left: 17px;
  margin-top: -11px;
  margin-bottom: 10px;
}
.public-nape-plot-details {
  position: fixed;
  top: 50%;
src/styles/index.min.css
@@ -1 +1 @@
.emit-el-date-picker input{background:#003555;border-color:#849EAE;color:rgba(255,255,255,0.6)}.el-icon-my-sy{background:url("/img/icon/1016.png") center no-repeat}.el-icon-my-sy:before{content:"替";font-size:18px;visibility:hidden}.el-icon-my-sb{background:url("/img/icon/3666.png") center no-repeat}.el-icon-my-sb:before{content:"替";font-size:24px;visibility:hidden}.dialog-fixed{margin:0 !important;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:99}.equipment-plot-select .el-input{position:relative;display:flex;align-items:center;justify-content:center}.equipment-plot-select .el-input .el-input__suffix{display:flex;align-items:center;justify-content:center}.equipment-plot-select input{color:#fff;font-size:28px !important;font-weight:bold;background:transparent !important;border:none !important}.manage-select{background-color:#05243e !important}.manage-option{background-color:#05243e !important;color:#a5cacc}.public-org-nav-bar{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:14px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-org-nav-bar .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-org-nav-bar .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-org-nav-bar .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-org-nav-bar .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-org-nav-bar .content{clear:both;width:100%;height:500px;margin-top:0px;text-align:center;overflow-y:auto;border-radius:0 0 8px 8px}.public-org-nav-bar .content .farm-profiles{position:relative}.public-org-nav-bar .content .farm-profiles .btn-grounp{position:absolute;top:18px;right:20px}.public-org-nav-bar .content .farm-profiles .btn-grounp .details{text-align:right;font-size:18px;color:#08F4FF;cursor:pointer}.public-org-nav-bar .content .farm-profiles .btn-grounp .scene{margin-top:24px;display:flex;align-items:center;justify-content:center;width:100px;height:30px;background:rgba(102,221,233,0.16);border-radius:4px 4px 4px 4px;border:1px solid #66DDE9;box-sizing:border-box}.public-org-nav-bar .content .farm-profiles .btn-grounp .scene img{height:24px}.public-org-nav-bar .content .farm-profiles .farm-content{padding:30px 20px;font-size:16px;color:#fff}.public-org-nav-bar .content .farm-profiles .farm-content .row{margin-top:30px;display:flex;justify-content:space-between}.public-org-nav-bar .content .farm-profiles .farm-content .row .l{display:flex;align-items:flex-start;justify-content:flex-end;width:100px;height:24px;color:#A9D1D7}.public-org-nav-bar .content .farm-profiles .farm-content .row .r{display:flex;align-items:center;justify-content:flex-start;text-align:left;margin-left:24px;flex:1}.public-org-nav-bar .content .farm-profiles .farm-content .row .r img{margin-right:16px;width:102px;height:102px;border-radius:4px 4px 4px 4px}.public-org-nav-bar .content .farm-profiles .farm-content .row:first-child{margin-top:0}.public-org-market-bar{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:14px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-org-market-bar .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-org-market-bar .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-org-market-bar .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-org-market-bar .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-org-market-bar .content{clear:both;width:100%;height:650px;margin-top:0px;text-align:center;overflow-y:auto;border-radius:0 0 8px 8px}.public-org-market-bar .content .market-title{display:-webkit-box;padding-left:30px;padding-top:30px}.public-org-market-bar .content .market-title .date{padding-left:30px}.public-org-market-bar .content .market-title .query-button{width:47%;text-align:end}.public-org-market-bar .content .market-content{display:-webkit-box;padding-left:30px;padding-top:30px}.public-org-market-bar .content .market-content .market-chart{width:758px;height:520px}.public-org-market-bar .content .market-content .market-list{margin-left:30px;width:31%;height:520px}.public-org-market-bar .content .market-content .market-list .market-list-item{flex:1;display:flex;flex-direction:column}.public-org-market-bar .content .market-content .market-list .market-list-item>div{position:relative;flex:1;padding:15px 20px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(102,221,233,0.1);border-radius:8px;font-size:18px;color:#a9d1d7}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.t-item{display:flex;align-items:center;justify-content:space-between}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.t-item>div:first-child{font-weight:bold;color:#66dde9}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.b-item{display:flex;align-items:center;justify-content:space-between}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.b-item>div:first-child{color:#fff}.public-org-market-bar .content .market-content .market-list .market-list-item>div .t-border{top:0;bottom:auto}.public-org-market-bar .content .market-content .market-list .market-list-item>div .b-border{top:auto;bottom:0}.public-org-market-bar .content .market-content .market-list .market-list-item>div .t-border,.public-org-market-bar .content .market-content .market-list .market-list-item>div .b-border{position:absolute;left:0;right:0;margin:auto;width:80%;height:1px;background:linear-gradient(89deg, rgba(102,221,233,0) 0%, #66dde9 51%, rgba(102,221,233,0) 100%)}.public-org-market-bar .content .market-content .market-list .market-list-item>div:first-child{margin-bottom:15px}.public-trace-table{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-trace-table .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-trace-table .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-trace-table .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-trace-table .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-trace-table .content{display:flex;flex-direction:column;clear:both;width:100%;height:600px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-trace-table .content .action-bar{padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:74px}.public-trace-table .content .action-bar>.search .search-input input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-trace-table .content .action-bar .btn-grounp .search{color:#fff;background:#21BAC4;border-color:#21BAC4}.public-trace-table .content .action-bar .btn-grounp .reset{color:#fff;background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.2)}.public-trace-table .content .table-list{flex:1;display:flex;flex-direction:column}.public-trace-table .content .table-list .t-header{display:flex;align-items:center;justify-content:space-between;height:56px;font-size:18px;font-weight:bold;color:#fff;background:linear-gradient(90deg, rgba(49,137,153,0.5) 0%, rgba(49,161,168,0.5) 44%, rgba(49,137,153,0.5) 100%)}.public-trace-table .content .table-list .t-header .sym-style{text-align:left}.public-trace-table .content .table-list .t-body{flex:1;overflow-y:auto}.public-trace-table .content .table-list .table-list{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:94px;border-bottom:1px solid #E8ECEF;color:#fff}.public-trace-table .content .table-list .table-list .sym-style{display:flex;justify-content:space-between}.public-trace-table .content .table-list .table-list .sym-style .l{display:flex;align-items:center}.public-trace-table .content .table-list .table-list .sym-style .l img{width:94px;height:56px}.public-trace-table .content .table-list .table-list .sym-style .r{margin-left:20px;flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-around}.public-trace-table .content .table-list .table-list .sym-style .r .title{font-size:18px;font-weight:bold}.public-trace-table .content .table-list .table-list .sym-style .r .unit{font-size:14px}.public-trace-table .content .table-list .table-list:last-child{border:none}.public-trace-table .content .table-list .t-header>div:first-child,.public-trace-table .content .table-list .table-list>div:first-child{margin-left:30px;flex:1}.public-trace-table .content .table-list .t-header>div:nth-child(2),.public-trace-table .content .table-list .table-list>div:nth-child(2){width:200px}.public-trace-table .content .table-list .t-header>div:nth-child(3),.public-trace-table .content .table-list .table-list>div:nth-child(3){width:240px}.public-trace-table .content .table-list .t-header>div:nth-child(4),.public-trace-table .content .table-list .table-list>div:nth-child(4){width:260px}.public-trace-table .content .table-list .t-header>div:nth-child(5),.public-trace-table .content .table-list .table-list>div:nth-child(5){width:200px}.public-trace-table .content .table-list .t-header>div:nth-child(5) .look,.public-trace-table .content .table-list .table-list>div:nth-child(5) .look{color:#00F0FF;background:rgba(0,240,255,0.2);border-color:#00F0FF}.el-scrollbar{position:relative}.el-scrollbar .el-scrollbar__wrap{overflow-x:hidden}.public-farm-oper-table{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-farm-oper-table .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-farm-oper-table .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-farm-oper-table .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-farm-oper-table .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-farm-oper-table .content{display:flex;flex-direction:column;clear:both;width:100%;height:600px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-farm-oper-table .content .action-bar{padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:74px}.public-farm-oper-table .content .action-bar>.search .search-input input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar>.search .select-type input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar>.search .select-plot{margin-left:30px}.public-farm-oper-table .content .action-bar>.search .select-plot input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar .btn-grounp .search{color:#fff;background:#21BAC4;border-color:#21BAC4}.public-farm-oper-table .content .action-bar .btn-grounp .reset{color:#fff;background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.2)}.public-farm-oper-table .content .table-list{height:calc(100% - 74px);display:flex;flex-direction:column}.public-farm-oper-table .content .table-list .t-header{display:flex;align-items:center;justify-content:space-between;height:56px;font-size:18px;font-weight:bold;color:#fff;background:linear-gradient(90deg, rgba(49,137,153,0.5) 0%, rgba(49,161,168,0.5) 44%, rgba(49,137,153,0.5) 100%)}.public-farm-oper-table .content .table-list .t-body{height:calc(100% - 56px);overflow-y:auto}.public-farm-oper-table .content .table-list .table-list{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:65px;border-bottom:1px solid #E8ECEF;color:#fff}.public-farm-oper-table .content .table-list .table-list:last-child{border:none}.public-farm-oper-table .content .table-list .t-header>div:first-child,.public-farm-oper-table .content .table-list .table-list>div:first-child{width:132px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(2),.public-farm-oper-table .content .table-list .table-list>div:nth-child(2){width:124px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(3),.public-farm-oper-table .content .table-list .table-list>div:nth-child(3){width:172px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(4),.public-farm-oper-table .content .table-list .table-list>div:nth-child(4){width:144px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(5),.public-farm-oper-table .content .table-list .table-list>div:nth-child(5){width:132px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(6),.public-farm-oper-table .content .table-list .table-list>div:nth-child(6){flex:1}.public-farm-oper-table .content .table-list .t-header>div:nth-child(7),.public-farm-oper-table .content .table-list .table-list>div:nth-child(7){flex:1}.public-farm-oper-table .content .table-list .t-header>div:nth-child(8),.public-farm-oper-table .content .table-list .table-list>div:nth-child(8){width:120px}.public-nape-plot-details{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:700px;z-index:99;font-size:16px;box-shadow:inset 0px 3px 20px 1px #5BC3D1;border:1px solid #58BFCD;background:rgba(20,66,104,0.8);border-radius:16px}.public-nape-plot-details .header{display:flex;align-items:center;justify-content:space-around;position:relative;border-radius:8px 8px 0 0;width:100%;height:86px;box-sizing:border-box;border:1px solid #3F7D93}.public-nape-plot-details .header .nav{display:flex;align-items:center;justify-content:center;width:200px;height:50px;color:#fff;background:url(/img/icon/popup-nav-btn.png) no-repeat;background-size:100% 100%;cursor:pointer;font-size:18px}.public-nape-plot-details .header .nav.on{background:url(/img/icon/popup-nav-btn-sel.png) no-repeat;background-size:100% 100%}.public-nape-plot-details .header .close{position:absolute;top:0;right:-30px;transform:translate(100%, 0);cursor:pointer}.public-nape-plot-details .content{display:flex;flex-direction:column;clear:both;width:100%;height:484px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-nape-plot-details .content .box{margin:20px 25px;height:calc(100% - 40px);overflow-y:auto}.public-nape-plot-details .content .box>div{margin-top:20px;padding:0 20px}.public-nape-plot-details .content .box>div:first-child{margin:0}.public-nape-plot-details .content .zypz-box>div{display:flex;align-items:center;height:120px;color:#A9D1D7;background:#0D1E34}.public-nape-plot-details .content .zypz-box>div .logo{width:90px;height:90px;border-radius:50%}.public-nape-plot-details .content .zypz-box>div .titles-box{margin-left:30px;display:flex;align-items:flex-start;flex-direction:column}.public-nape-plot-details .content .zypz-box>div .titles-box .title{font-size:18px;font-weight:bold}.public-nape-plot-details .content .zypz-box>div .titles-box .time{margin-top:15px;font-size:14px}.public-nape-plot-details .content .nscz-box>div{position:relative;height:84px;margin-top:10px;padding:10px 20px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;background:rgba(102,221,233,0.1);border-radius:8px;font-size:18px;color:#a9d1d7}.public-nape-plot-details .content .nscz-box>div .t-border{position:absolute;top:0;left:0;right:0;bottom:auto;margin:auto;width:80%;height:1px;background:linear-gradient(89deg, rgba(102,221,233,0) 0%, #66dde9 51%, rgba(102,221,233,0) 100%)}.public-nape-plot-details .content .nscz-box>div .t-item{display:flex;align-items:center;justify-content:space-between}.public-nape-plot-details .content .nscz-box>div .t-item>div{flex:1}.public-nape-plot-details .content .nscz-box>div .t-item>div:first-child{text-align:left;font-size:18px;font-weight:bold;color:#66dde9}.public-nape-plot-details .content .nscz-box>div .t-item>div:last-child{text-align:right}.public-nape-plot-details .content .nscz-box>div .b-item{display:flex;align-items:center;justify-content:space-between}.public-nape-plot-details .content .nscz-box>div .b-item>div{flex:1}.public-nape-plot-details .content .nscz-box>div .b-item>div:first-child{text-align:left;color:#fff}.public-nape-plot-details .content .nscz-box>div .b-item>div:last-child{text-align:right}.public-nape-plot-details .content .base-box>div{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0D1E34}.public-nape-plot-details .content .base-box>div .current-val{margin-top:12px;font-size:32px}.public-nape-plot-details .content .base-box .plot-name{color:#62D4E0}.public-nape-plot-details .content .base-box .plot-area{color:#53B5F9}.public-nape-plot-details .content .base-box .plot-type{color:#9270DE}html,body{font-size:16px}html div,html ul,body div,body ul{scrollbar-width:thin}p{margin:0;padding:0}ul{margin:0;padding:0}ul li{margin:0;padding:0;list-style:none}.deblurring{image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,0.2);background:rgba(0,0,0,0.2)}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,0.2);border-radius:0;background:rgba(0,0,0,0.1)}.div-icon{background:transparent !important}.farm-map-icon{font-weight:bold;color:#fca607;text-align:center}.farm-map-icon img{width:24px}
.emit-el-date-picker input{background:#003555;border-color:#849EAE;color:rgba(255,255,255,0.6)}.el-icon-my-sy{background:url("/img/icon/1016.png") center no-repeat}.el-icon-my-sy:before{content:"替";font-size:18px;visibility:hidden}.el-icon-my-sb{background:url("/img/icon/3666.png") center no-repeat}.el-icon-my-sb:before{content:"替";font-size:24px;visibility:hidden}.el-icon-my-nc-menu{background:url("/img/icon/nc-menu.png") center no-repeat}.el-icon-my-nc-menu:before{content:"替";font-size:24px;visibility:hidden}.el-icon-my-jksb-menu{background:url("/img/icon/jksb-menu.png") center no-repeat}.el-icon-my-jksb-menu:before{content:"替";font-size:24px;visibility:hidden}.el-icon-my-jcsb-menu{background:url("/img/icon/jcsb-menu.png") center no-repeat}.el-icon-my-jcsb-menu:before{content:"替";font-size:24px;visibility:hidden}.dialog-fixed{margin:0 !important;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:99}.equipment-plot-select .el-input{position:relative;display:flex;align-items:center;justify-content:center}.equipment-plot-select .el-input .el-input__suffix{display:flex;align-items:center;justify-content:center}.equipment-plot-select input{color:#fff;font-size:28px !important;font-weight:bold;background:transparent !important;border:none !important}.manage-select{background-color:#05243e !important}.manage-option{background-color:#05243e !important;color:#a5cacc}.public-org-nav-bar{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:14px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-org-nav-bar .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-org-nav-bar .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-org-nav-bar .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-org-nav-bar .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-org-nav-bar .content{clear:both;width:100%;height:500px;margin-top:0px;text-align:center;overflow-y:auto;border-radius:0 0 8px 8px}.public-org-nav-bar .content .farm-profiles{position:relative}.public-org-nav-bar .content .farm-profiles .btn-grounp{position:absolute;top:18px;right:20px}.public-org-nav-bar .content .farm-profiles .btn-grounp .details{text-align:right;font-size:18px;color:#08F4FF;cursor:pointer}.public-org-nav-bar .content .farm-profiles .btn-grounp .scene{margin-top:24px;display:flex;align-items:center;justify-content:center;width:100px;height:30px;background:rgba(102,221,233,0.16);border-radius:4px 4px 4px 4px;border:1px solid #66DDE9;box-sizing:border-box}.public-org-nav-bar .content .farm-profiles .btn-grounp .scene img{height:24px}.public-org-nav-bar .content .farm-profiles .farm-content{padding:30px 20px;font-size:16px;color:#fff}.public-org-nav-bar .content .farm-profiles .farm-content .row{margin-top:30px;display:flex;justify-content:space-between}.public-org-nav-bar .content .farm-profiles .farm-content .row .l{display:flex;align-items:flex-start;justify-content:flex-end;width:100px;height:24px;color:#A9D1D7}.public-org-nav-bar .content .farm-profiles .farm-content .row .r{display:flex;align-items:center;justify-content:flex-start;text-align:left;margin-left:24px;flex:1}.public-org-nav-bar .content .farm-profiles .farm-content .row .r img{margin-right:16px;width:102px;height:102px;border-radius:4px 4px 4px 4px}.public-org-nav-bar .content .farm-profiles .farm-content .row:first-child{margin-top:0}.public-org-market-bar{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:14px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-org-market-bar .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-org-market-bar .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-org-market-bar .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-org-market-bar .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-org-market-bar .content{clear:both;width:100%;height:650px;margin-top:0px;text-align:center;overflow-y:auto;border-radius:0 0 8px 8px}.public-org-market-bar .content .market-title{display:-webkit-box;padding-left:30px;padding-top:30px}.public-org-market-bar .content .market-title .date{padding-left:30px}.public-org-market-bar .content .market-title .query-button{width:47%;text-align:end}.public-org-market-bar .content .market-content{display:-webkit-box;padding-left:30px;padding-top:30px}.public-org-market-bar .content .market-content .market-chart{width:758px;height:520px}.public-org-market-bar .content .market-content .market-list{margin-left:30px;width:31%;height:520px}.public-org-market-bar .content .market-content .market-list .market-list-item{flex:1;display:flex;flex-direction:column}.public-org-market-bar .content .market-content .market-list .market-list-item>div{position:relative;flex:1;padding:15px 20px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(102,221,233,0.1);border-radius:8px;font-size:18px;color:#a9d1d7}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.t-item{display:flex;align-items:center;justify-content:space-between}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.t-item>div:first-child{font-weight:bold;color:#66dde9}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.b-item{display:flex;align-items:center;justify-content:space-between}.public-org-market-bar .content .market-content .market-list .market-list-item>div>.b-item>div:first-child{color:#fff}.public-org-market-bar .content .market-content .market-list .market-list-item>div .t-border{top:0;bottom:auto}.public-org-market-bar .content .market-content .market-list .market-list-item>div .b-border{top:auto;bottom:0}.public-org-market-bar .content .market-content .market-list .market-list-item>div .t-border,.public-org-market-bar .content .market-content .market-list .market-list-item>div .b-border{position:absolute;left:0;right:0;margin:auto;width:80%;height:1px;background:linear-gradient(89deg, rgba(102,221,233,0) 0%, #66dde9 51%, rgba(102,221,233,0) 100%)}.public-org-market-bar .content .market-content .market-list .market-list-item>div:first-child{margin-bottom:15px}.public-trace-table{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-trace-table .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-trace-table .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-trace-table .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-trace-table .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-trace-table .content{display:flex;flex-direction:column;clear:both;width:100%;height:600px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-trace-table .content .action-bar{padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:74px}.public-trace-table .content .action-bar>.search .search-input input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-trace-table .content .action-bar .btn-grounp .search{color:#fff;background:#21BAC4;border-color:#21BAC4}.public-trace-table .content .action-bar .btn-grounp .reset{color:#fff;background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.2)}.public-trace-table .content .table-list{flex:1;display:flex;flex-direction:column}.public-trace-table .content .table-list .t-header{display:flex;align-items:center;justify-content:space-between;height:56px;font-size:18px;font-weight:bold;color:#fff;background:linear-gradient(90deg, rgba(49,137,153,0.5) 0%, rgba(49,161,168,0.5) 44%, rgba(49,137,153,0.5) 100%)}.public-trace-table .content .table-list .t-header .sym-style{text-align:left}.public-trace-table .content .table-list .t-body{flex:1;overflow-y:auto}.public-trace-table .content .table-list .table-list{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:94px;border-bottom:1px solid #E8ECEF;color:#fff}.public-trace-table .content .table-list .table-list .sym-style{display:flex;justify-content:space-between}.public-trace-table .content .table-list .table-list .sym-style .l{display:flex;align-items:center}.public-trace-table .content .table-list .table-list .sym-style .l img{width:94px;height:56px}.public-trace-table .content .table-list .table-list .sym-style .r{margin-left:20px;flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-around}.public-trace-table .content .table-list .table-list .sym-style .r .title{font-size:18px;font-weight:bold}.public-trace-table .content .table-list .table-list .sym-style .r .unit{font-size:14px}.public-trace-table .content .table-list .table-list:last-child{border:none}.public-trace-table .content .table-list .t-header>div:first-child,.public-trace-table .content .table-list .table-list>div:first-child{margin-left:30px;flex:1}.public-trace-table .content .table-list .t-header>div:nth-child(2),.public-trace-table .content .table-list .table-list>div:nth-child(2){width:200px}.public-trace-table .content .table-list .t-header>div:nth-child(3),.public-trace-table .content .table-list .table-list>div:nth-child(3){width:240px}.public-trace-table .content .table-list .t-header>div:nth-child(4),.public-trace-table .content .table-list .table-list>div:nth-child(4){width:260px}.public-trace-table .content .table-list .t-header>div:nth-child(5),.public-trace-table .content .table-list .table-list>div:nth-child(5){width:200px}.public-trace-table .content .table-list .t-header>div:nth-child(5) .look,.public-trace-table .content .table-list .table-list>div:nth-child(5) .look{color:#00F0FF;background:rgba(0,240,255,0.2);border-color:#00F0FF}.el-scrollbar{position:relative}.el-scrollbar .el-scrollbar__wrap{overflow-x:hidden}.public-farm-oper-table{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:1208px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 0px 30px 1px rgba(33,186,196,0.16);border:1px solid #69E2ED;background:rgba(20,66,104,0.8)}.public-farm-oper-table .header{position:relative;border-radius:8px 8px 0 0;width:100%;height:58px;line-height:58px;background:linear-gradient(96deg, #142B4B 0%, #0F1525 100%)}.public-farm-oper-table .header .logo{position:aboslute;top:0;left:0;width:8px;height:100%;background:#69E2ED}.public-farm-oper-table .header .title{position:absolute;top:0;left:25px;font-size:18px;font-weight:bold;color:#66DDE9}.public-farm-oper-table .header .close{position:absolute;right:20px;top:0;left:auto;bottom:0;margin:auto;width:28px;height:28px;cursor:pointer;opacity:0.6}.public-farm-oper-table .content{display:flex;flex-direction:column;clear:both;width:100%;height:600px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-farm-oper-table .content .action-bar{padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:74px}.public-farm-oper-table .content .action-bar>.search .search-input input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar>.search .select-type input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar>.search .select-plot{margin-left:30px}.public-farm-oper-table .content .action-bar>.search .select-plot input{color:#fff;background:rgba(33,186,196,0.2);border-color:#21BAC4}.public-farm-oper-table .content .action-bar .btn-grounp .search{color:#fff;background:#21BAC4;border-color:#21BAC4}.public-farm-oper-table .content .action-bar .btn-grounp .reset{color:#fff;background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.2)}.public-farm-oper-table .content .table-list{height:calc(100% - 74px);display:flex;flex-direction:column}.public-farm-oper-table .content .table-list .t-header{display:flex;align-items:center;justify-content:space-between;height:56px;font-size:18px;font-weight:bold;color:#fff;background:linear-gradient(90deg, rgba(49,137,153,0.5) 0%, rgba(49,161,168,0.5) 44%, rgba(49,137,153,0.5) 100%)}.public-farm-oper-table .content .table-list .t-body{height:calc(100% - 56px);overflow-y:auto}.public-farm-oper-table .content .table-list .table-list{display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:65px;border-bottom:1px solid #E8ECEF;color:#fff}.public-farm-oper-table .content .table-list .table-list:last-child{border:none}.public-farm-oper-table .content .table-list .t-header>div:first-child,.public-farm-oper-table .content .table-list .table-list>div:first-child{width:132px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(2),.public-farm-oper-table .content .table-list .table-list>div:nth-child(2){width:124px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(3),.public-farm-oper-table .content .table-list .table-list>div:nth-child(3){width:172px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(4),.public-farm-oper-table .content .table-list .table-list>div:nth-child(4){width:144px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(5),.public-farm-oper-table .content .table-list .table-list>div:nth-child(5){width:132px}.public-farm-oper-table .content .table-list .t-header>div:nth-child(6),.public-farm-oper-table .content .table-list .table-list>div:nth-child(6){flex:1}.public-farm-oper-table .content .table-list .t-header>div:nth-child(7),.public-farm-oper-table .content .table-list .table-list>div:nth-child(7){flex:1}.public-farm-oper-table .content .table-list .t-header>div:nth-child(8),.public-farm-oper-table .content .table-list .table-list>div:nth-child(8){width:120px}.public-equirment-station-details{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:648px;height:401px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 3px 20px 1px #5BC3D1;opacity:1;border:1px solid #69E2ED;background:rgba(20,66,104,0.8);border-radius:10px;margin:0;padding:0}.public-equirment-station-details .header{position:relative;width:270px;height:24px;font-size:18px;font-family:Microsoft YaHei-Bold, Microsoft YaHei;font-weight:bold;color:#58BFCD;line-height:20px;margin:20px auto}.public-equirment-station-details .header .close{position:absolute;top:-20px;right:-260px;cursor:pointer}.public-equirment-station-details .content{overflow:scroll;height:330px}.public-equirment-station-details .content .itemTitle{box-sizing:border-box;width:607px;height:70px;background:#0D1E34;border-radius:0px 0px 0px 0px;opacity:1;margin-left:17px;margin-bottom:10px;padding:15px 20px;border:1px solid transparent}.public-equirment-station-details .content .itemTitle img{float:left}.public-equirment-station-details .content .itemTitle .type{float:left;margin-left:20px}.public-equirment-station-details .content .itemTitle .type h1{font-size:16px;color:#58BFCD;margin-bottom:4px}.public-equirment-station-details .content .itemTitle .type span{font-size:13px;color:#FFFFFF;opacity:0.5}.public-equirment-station-details .content .itemTitle .data{float:left;margin-left:208px;width:80px;height:34px;font-size:34px;font-family:DS-Digital-Italic, DS-Digital;font-weight:normal;color:#58BFCD;line-height:32px}.public-equirment-station-details .content .itemTitle .openMenuIcon{margin-left:95px;margin-top:4px;cursor:pointer}.public-equirment-station-details .content .EchartsBox_div{width:607px;height:210px;background:#0D1E34;margin-left:17px;margin-top:-11px;margin-bottom:10px}.public-nape-plot-details{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:700px;z-index:99;font-size:16px;box-shadow:inset 0px 3px 20px 1px #5BC3D1;border:1px solid #58BFCD;background:rgba(20,66,104,0.8);border-radius:16px}.public-nape-plot-details .header{display:flex;align-items:center;justify-content:space-around;position:relative;border-radius:8px 8px 0 0;width:100%;height:86px;box-sizing:border-box;border:1px solid #3F7D93}.public-nape-plot-details .header .nav{display:flex;align-items:center;justify-content:center;width:200px;height:50px;color:#fff;background:url(/img/icon/popup-nav-btn.png) no-repeat;background-size:100% 100%;cursor:pointer;font-size:18px}.public-nape-plot-details .header .nav.on{background:url(/img/icon/popup-nav-btn-sel.png) no-repeat;background-size:100% 100%}.public-nape-plot-details .header .close{position:absolute;top:0;right:-30px;transform:translate(100%, 0);cursor:pointer}.public-nape-plot-details .content{display:flex;flex-direction:column;clear:both;width:100%;height:484px;margin-top:0px;text-align:center;overflow:hidden;border-radius:0 0 8px 8px}.public-nape-plot-details .content .box{margin:20px 25px;height:calc(100% - 40px);overflow-y:auto}.public-nape-plot-details .content .box>div{margin-top:20px;padding:0 20px}.public-nape-plot-details .content .box>div:first-child{margin:0}.public-nape-plot-details .content .zypz-box>div{display:flex;align-items:center;height:120px;color:#A9D1D7;background:#0D1E34}.public-nape-plot-details .content .zypz-box>div .logo{width:90px;height:90px;border-radius:50%}.public-nape-plot-details .content .zypz-box>div .titles-box{margin-left:30px;display:flex;align-items:flex-start;flex-direction:column}.public-nape-plot-details .content .zypz-box>div .titles-box .title{font-size:18px;font-weight:bold}.public-nape-plot-details .content .zypz-box>div .titles-box .time{margin-top:15px;font-size:14px}.public-nape-plot-details .content .nscz-box>div{position:relative;height:84px;margin-top:10px;padding:10px 20px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;background:rgba(102,221,233,0.1);border-radius:8px;font-size:18px;color:#a9d1d7}.public-nape-plot-details .content .nscz-box>div .t-border{position:absolute;top:0;left:0;right:0;bottom:auto;margin:auto;width:80%;height:1px;background:linear-gradient(89deg, rgba(102,221,233,0) 0%, #66dde9 51%, rgba(102,221,233,0) 100%)}.public-nape-plot-details .content .nscz-box>div .t-item{display:flex;align-items:center;justify-content:space-between}.public-nape-plot-details .content .nscz-box>div .t-item>div{flex:1}.public-nape-plot-details .content .nscz-box>div .t-item>div:first-child{text-align:left;font-size:18px;font-weight:bold;color:#66dde9}.public-nape-plot-details .content .nscz-box>div .t-item>div:last-child{text-align:right}.public-nape-plot-details .content .nscz-box>div .b-item{display:flex;align-items:center;justify-content:space-between}.public-nape-plot-details .content .nscz-box>div .b-item>div{flex:1}.public-nape-plot-details .content .nscz-box>div .b-item>div:first-child{text-align:left;color:#fff}.public-nape-plot-details .content .nscz-box>div .b-item>div:last-child{text-align:right}.public-nape-plot-details .content .base-box>div{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0D1E34}.public-nape-plot-details .content .base-box>div .current-val{margin-top:12px;font-size:32px}.public-nape-plot-details .content .base-box .plot-name{color:#62D4E0}.public-nape-plot-details .content .base-box .plot-area{color:#53B5F9}.public-nape-plot-details .content .base-box .plot-type{color:#9270DE}html,body{font-size:16px}html div,html ul,body div,body ul{scrollbar-width:thin}p{margin:0;padding:0}ul{margin:0;padding:0}ul li{margin:0;padding:0;list-style:none}.deblurring{image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,0.2);background:rgba(0,0,0,0.2)}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,0.2);border-radius:0;background:rgba(0,0,0,0.1)}.div-icon{background:transparent !important}.farm-map-icon{font-weight:bold;color:#fca607;text-align:center}.farm-map-icon img{width:24px}
src/styles/index.scss
@@ -3,6 +3,8 @@
@import "./publicBox/market-nav-bar.scss";
@import "./publicBox/trace-table.scss";
@import "./publicBox/farm-oper-table.scss";
@import "./publicBox/equirment-station-details.scss";
@import "./publicBox/equirment-vid-details.scss";
@import "./publicNapeBox/nape-plot-details.scss";
src/styles/publicBox/equirment-station-details.css
New file
@@ -0,0 +1,108 @@
.public-equirment-station-details {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 648px;
  height: 401px;
  background-color: transparent;
  z-index: 99;
  font-size: 16px;
  box-shadow: inset 0px 3px 20px 1px #5BC3D1;
  opacity: 1;
  border: 1px solid #69E2ED;
  background: rgba(20, 66, 104, 0.8);
  border-radius: 10px;
  margin: 0;
  padding: 0;
}
.public-equirment-station-details .header {
  position: relative;
  width: 270px;
  height: 24px;
  font-size: 18px;
  font-family: Microsoft YaHei-Bold, Microsoft YaHei;
  font-weight: bold;
  color: #58BFCD;
  line-height: 20px;
  margin: 20px auto;
}
.public-equirment-station-details .header div {
  text-align: center;
}
.public-equirment-station-details .header .close {
  position: absolute;
  top: -20px;
  right: -260px;
  cursor: pointer;
}
.public-equirment-station-details .content {
  overflow: scroll;
  height: 330px;
}
.public-equirment-station-details .content .itemTitle {
  box-sizing: border-box;
  width: 607px;
  height: 70px;
  background: #0D1E34;
  border-radius: 0px 0px 0px 0px;
  opacity: 1;
  margin-left: 17px;
  margin-bottom: 10px;
  padding: 15px 20px;
  border: 1px solid transparent;
}
.public-equirment-station-details .content .itemTitle img {
  float: left;
}
.public-equirment-station-details .content .itemTitle .type {
  float: left;
  margin-left: 20px;
  width: 150px;
}
.public-equirment-station-details .content .itemTitle .type h1 {
  font-size: 16px;
  color: #58BFCD;
  margin-bottom: 4px;
}
.public-equirment-station-details .content .itemTitle .type span {
  font-size: 13px;
  color: #FFFFFF;
  opacity: 0.5;
}
.public-equirment-station-details .content .itemTitle .data {
  float: left;
  margin-left: 158px;
  width: 80px;
  height: 34px;
  font-size: 34px;
  font-family: DS-Digital-Italic, DS-Digital;
  font-weight: normal;
  color: #58BFCD;
  line-height: 32px;
}
.public-equirment-station-details .content .itemTitle .openMenuIcon {
  margin-left: 90px;
  margin-top: 4px;
  cursor: pointer;
}
.public-equirment-station-details .content .EchartsBox_div {
  width: 607px;
  height: 210px;
  background: #0D1E34;
  margin-left: 17px;
  margin-top: -11px;
  margin-bottom: 10px;
}
src/styles/publicBox/equirment-station-details.min.css
New file
@@ -0,0 +1 @@
.public-equirment-station-details{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:648px;height:401px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 3px 20px 1px #5BC3D1;opacity:1;border:1px solid #69E2ED;background:rgba(20,66,104,0.8);border-radius:10px;margin:0;padding:0}.public-equirment-station-details .header{position:relative;width:270px;height:24px;font-size:18px;font-family:Microsoft YaHei-Bold, Microsoft YaHei;font-weight:bold;color:#58BFCD;line-height:20px;margin:20px auto}.public-equirment-station-details .header div{text-align:center}.public-equirment-station-details .header .close{position:absolute;top:-20px;right:-260px;cursor:pointer}.public-equirment-station-details .content{overflow:scroll;height:330px}.public-equirment-station-details .content .itemTitle{box-sizing:border-box;width:607px;height:70px;background:#0D1E34;border-radius:0px 0px 0px 0px;opacity:1;margin-left:17px;margin-bottom:10px;padding:15px 20px;border:1px solid transparent}.public-equirment-station-details .content .itemTitle img{float:left}.public-equirment-station-details .content .itemTitle .type{float:left;margin-left:20px;width:150px}.public-equirment-station-details .content .itemTitle .type h1{font-size:16px;color:#58BFCD;margin-bottom:4px}.public-equirment-station-details .content .itemTitle .type span{font-size:13px;color:#FFFFFF;opacity:0.5}.public-equirment-station-details .content .itemTitle .data{float:left;margin-left:158px;width:80px;height:34px;font-size:34px;font-family:DS-Digital-Italic, DS-Digital;font-weight:normal;color:#58BFCD;line-height:32px}.public-equirment-station-details .content .itemTitle .openMenuIcon{margin-left:90px;margin-top:4px;cursor:pointer}.public-equirment-station-details .content .EchartsBox_div{width:607px;height:210px;background:#0D1E34;margin-left:17px;margin-top:-11px;margin-bottom:10px}
src/styles/publicBox/equirment-station-details.scss
New file
@@ -0,0 +1,101 @@
.public-equirment-station-details  {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 648px;
    height: 401px;
    background-color: transparent;
    z-index: 99;
    font-size: 16px;
    box-shadow: inset 0px 3px 20px 1px #5BC3D1;
    opacity: 1;
    border: 1px solid #69E2ED;
    background: rgba(20, 66, 104, 0.8);
    border-radius: 10px;
    margin: 0;
    padding: 0;
    .header {
        position: relative;
        width: 270px;
        height: 24px;
        font-size: 18px;
        font-family: Microsoft YaHei-Bold, Microsoft YaHei;
        font-weight: bold;
        color: #58BFCD;
        line-height: 20px;
        margin: 20px auto;
        div {
            text-align: center;
        }
        .close {
            position: absolute;
            top:-20px;
            right:-260px;
            cursor: pointer;
        }
    }
    .content {
        overflow: scroll;
        height: 330px;
        .itemTitle {
            box-sizing: border-box;
            width: 607px;
            height: 70px;
            background: #0D1E34;
            border-radius: 0px 0px 0px 0px;
            opacity: 1;
            margin-left: 17px;
            margin-bottom: 10px;
            padding: 15px 20px;
            border: 1px solid transparent;
            img{
                float: left;
            }
            .type  {
                float: left;
                margin-left: 20px;
                width: 150px;
              h1{
                  font-size: 16px;
                  color: #58BFCD ;
                  margin-bottom: 4px;
              }
              span{
                  font-size: 13px;
                  color: #FFFFFF;
                  opacity: 0.5;
              }
            }
            .data {
                float: left;
                margin-left: 158px;
                width: 80px;
                height: 34px;
                font-size: 34px;
                font-family: DS-Digital-Italic, DS-Digital;
                font-weight: normal;
                color: #58BFCD;
                line-height: 32px;
            }
            .openMenuIcon {
                margin-left: 90px;
                margin-top: 4px;
                cursor: pointer;
            }
        }
        .EchartsBox_div {
            width: 607px;
            height: 210px;
            background: #0D1E34;
            margin-left: 17px;
            margin-top: -11px;
            margin-bottom: 10px;
        }
    }
}
src/styles/publicBox/equirment-vid-details.css
New file
@@ -0,0 +1,46 @@
.public-equirment-vid-details {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 648px;
  height: 401px;
  background-color: transparent;
  z-index: 99;
  font-size: 16px;
  box-shadow: inset 0px 3px 20px 1px #5BC3D1;
  opacity: 1;
  border: 1px solid #69E2ED;
  background: rgba(20, 66, 104, 0.8);
  border-radius: 10px;
  margin: 0;
  padding: 0;
}
.public-equirment-vid-details .header {
  position: relative;
  width: 270px;
  height: 24px;
  font-size: 18px;
  font-family: Microsoft YaHei-Bold, Microsoft YaHei;
  font-weight: bold;
  color: #58BFCD;
  line-height: 20px;
  margin: 20px auto;
}
.public-equirment-vid-details .header div {
  text-align: center;
}
.public-equirment-vid-details .header .close {
  position: absolute;
  top: -20px;
  right: -260px;
  cursor: pointer;
}
.public-equirment-vid-details .content .video {
  height: 310px;
  margin: 0 40px;
}
src/styles/publicBox/equirment-vid-details.min.css
New file
@@ -0,0 +1 @@
.public-equirment-vid-details{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);width:648px;height:401px;background-color:transparent;z-index:99;font-size:16px;box-shadow:inset 0px 3px 20px 1px #5BC3D1;opacity:1;border:1px solid #69E2ED;background:rgba(20,66,104,0.8);border-radius:10px;margin:0;padding:0}.public-equirment-vid-details .header{position:relative;width:270px;height:24px;font-size:18px;font-family:Microsoft YaHei-Bold, Microsoft YaHei;font-weight:bold;color:#58BFCD;line-height:20px;margin:20px auto}.public-equirment-vid-details .header div{text-align:center}.public-equirment-vid-details .header .close{position:absolute;top:-20px;right:-260px;cursor:pointer}.public-equirment-vid-details .content .video{height:310px;margin:0 40px}
src/styles/publicBox/equirment-vid-details.scss
New file
@@ -0,0 +1,49 @@
.public-equirment-vid-details  {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 648px;
        height: 401px;
        background-color: transparent;
        z-index: 99;
        font-size: 16px;
        box-shadow: inset 0px 3px 20px 1px #5BC3D1;
        opacity: 1;
        border: 1px solid #69E2ED;
        background: rgba(20, 66, 104, 0.8);
        border-radius: 10px;
        margin: 0;
        padding: 0;
        .header {
            position: relative;
            width: 270px;
            height: 24px;
            font-size: 18px;
            font-family: Microsoft YaHei-Bold, Microsoft YaHei;
            font-weight: bold;
            color: #58BFCD;
            line-height: 20px;
            margin: 20px auto;
            div {
                text-align: center;
            }
            .close {
                position: absolute;
                top:-20px;
                right:-260px;
                cursor: pointer;
            }
        }
        .content {
           .video {
            height: 310px;
            margin: 0 40px;
           }
        }
    }
src/views/equipment/index.vue
@@ -69,6 +69,7 @@
                            </ul>
                        </div>
                        <div class="nape-boxs">
                            <!-- 气象监测 -->
                            <div v-for="(item, index) in stationData.weatherList" :key="index">
                                <div class="top">
                                    <div class="l">
@@ -94,6 +95,7 @@
                                    >{{tmpTDiff(item.valueDataList[item.valueDataList.length-1].startTime)}}天前更新</div>
                                </div>
                            </div>
                            <!-- 土壤监测 -->
                            <div v-for="(item, index) in stationData.soliList" :key="index">
                                <div class="top">
                                    <div class="l">
@@ -114,9 +116,12 @@
                                        <span class="old-btn" @click="historyData(item)">历史数据</span>
                                    </div>
                                    <div class="r">{{tmpTDiff(item.valueDataList[item.valueDataList.length-1].startTime)}}天前更新</div>
                                    <div
                                        class="r"
                                    >{{tmpTDiff(item.valueDataList[item.valueDataList.length-1].startTime)}}天前更新</div>
                                </div>
                            </div>
                            <!-- 空气监测 -->
                            <div v-for="(item, index) in stationData.airList" :key="index">
                                <div class="top">
                                    <div class="l">
@@ -137,9 +142,12 @@
                                        <span class="old-btn" @click="historyData(item)">历史数据</span>
                                    </div>
                                    <div class="r">{{tmpTDiff(item.valueDataList[item.valueDataList.length-1].startTime)}}天前更新</div>
                                    <div
                                        class="r"
                                    >{{tmpTDiff(item.valueDataList[item.valueDataList.length-1].startTime)}}天前更新</div>
                                </div>
                            </div>
                            <!-- 水质监测 -->
                            <div v-for="(item, index) in stationData.waterList" :key="index">
                                <div class="top">
                                    <div class="l">
@@ -196,10 +204,12 @@
<script>
import {
    getLandList,
    getLandList
} from '@/api/land/land'
import {
    getStationAndVideoByLandId,
    getStationDateByStcd
} from '@/api/land/land'
} from '@/api/equipment/equipment'
import { nextTick } from 'vue'
import flvjs from 'flv.js'
import dateUtils from '@/utils/dateUtils' // 1.先引入
@@ -359,9 +369,9 @@
        },
        historyData (item) {
            var valueDataList = item.valueDataList
            var values = []
            var names = []
            const valueDataList = item.valueDataList
            const values = []
            const names = []
            valueDataList.forEach(item => {
                values.push(item.value)
                names.push(item.startTime.substring(5,10) + ' ' + item.startTime.substring(11) + ':00')
src/views/farm/index.vue
@@ -71,7 +71,7 @@
            </div>
            <div v-show="ncjscz == 'cz'" class="lists-box nscz">
                <div v-for="(item, index) in farmRecordList" :key="index">
                <div v-for="(item, index) in farmRecordList" :key="'item'+index">
                    <div class="t-border"></div>
                    <div class="t-item">
                        <div>{{item.typeName}}</div>
@@ -117,7 +117,7 @@
            </div>
            <div v-show="zydksb == 'zy'" class="lists-box dk">
                <div v-for="(item, index) in farmPlantList" :key="index">
                <div v-for="(item, index) in farmPlantList" :key="'farmPlantList'+index">
                    <div class="title">
                        <img :src="item.url" alt />
                        {{item.strainName}}
@@ -130,7 +130,7 @@
            </div>
            <div v-show="zydksb == 'dk'" class="lists-box dk">
                <div v-for="(item, index) in plotLists" :key="index" @click="setCenter(item)">
                <div v-for="(item, index) in plotLists" :key="'plotLists'+index" @click="setCenter(item)">
                    <div class="title">
                        <img :src="item.url" alt />
                        {{item.landName}}
@@ -143,12 +143,55 @@
            </div>
            <div v-show="zydksb =='sb'" class="lists-box sb">
                <div v-for="(item, index) in equipmentList" :key="index">
                <div
                        v-for="(item, index) in equipmentList"
                        :key="'equipmentList' + index"
                        class="lists-item"
                        @click="item.dictTypeNum == 0?goToJkDetail(item
                        ):goToDetail(item)"
                >
                    <div class="title">
                        <img src="/img/icon/jk.png" alt />{{item.name}}
                        <img v-if="item.dictTypeNum == 0" src="/img/icon/jk.png" alt />
                        <img v-else-if="item.dictTypeNum == 1" src="/img/icon/qx.png" alt />
                        <img v-else-if="item.dictTypeNum == 2" src="/img/icon/qx.png" alt />
                        <img v-else-if="item.dictTypeNum == 3" src="/img/icon/sz.png" alt />
                        <img v-else-if="item.dictTypeNum == 4" src="/img/icon/tr.png" alt />
                        <img v-else src="/img/icon/qx.png" alt />
                        {{item.name}}
                    </div>
                    <div class="type off">在线</div>
                    <div class="type on" v-if="item.status">在线</div>
                    <div class="type off" v-else>离线</div>
                </div>
                <!-- 视频监控数据 -->
<!--                <div v-for="(item, index) in equipmentList.vidList"-->
<!--                     :key="'vidList'+index"-->
<!--                     class="lists-item"-->
<!--                     @click="goToJkDetail(item)">-->
<!--                    <div class="title">-->
<!--                        <img src="/img/icon/jk.png" alt />-->
<!--                        {{item.name}}-->
<!--                    </div>-->
<!--                    <div class="type on" v-if="item.onLine == 0">在线</div>-->
<!--                    <div class="type off" v-else>离线</div>-->
<!--                </div>-->
                <!-- 监测设备数据 -->
<!--                <div-->
<!--                    v-for="(item, index) in equipmentList.staList"-->
<!--                    :key="'staList' + index"-->
<!--                    class="lists-item"-->
<!--                    @click="goToDetail(item)"-->
<!--                >-->
<!--                    <div class="title">-->
<!--                        <img v-if="item.dictTypeNum == 1" src="/img/icon/qx.png" alt />-->
<!--                        <img v-else-if="item.dictTypeNum == 2" src="/img/icon/qx.png" alt />-->
<!--                        <img v-else-if="item.dictTypeNum == 3" src="/img/icon/sz.png" alt />-->
<!--                        <img v-else-if="item.dictTypeNum == 4" src="/img/icon/tr.png" alt />-->
<!--                        <img v-else src="/img/icon/qx.png" alt />-->
<!--                        {{item.name}}-->
<!--                    </div>-->
<!--                    <div class="type on" v-if="item.onLine == 0">在线</div>-->
<!--                    <div class="type off" v-else>离线</div>-->
<!--                </div>-->
            </div>
        </div>
@@ -197,29 +240,31 @@
                </div>
                <div class="table-list">
                    <div class="t-header">
                        <div class="sym-style">溯源码样式</div>
<!--                        <div class="sym-style">溯源码样式</div>-->
                        <div>产品名称</div>
                        <div>溯源码编号</div>
                        <div>已绑定溯源/总数</div>
                        <div>创建时间</div>
                        <div>操作</div>
                    </div>
                    <div class="t-body">
                        <div class="table-list" v-for="(item, index) in sourceList" :key="index">
                            <div class="sym-style">
                                <div class="l">
                                    <img src="/img/icon/sym.png" alt />
                                </div>
                                <div class="r">
                                    <div class="title">常规-样式1</div>
                                    <div class="unit">5cm*3cm</div>
                                </div>
                            </div>
                        <div class="table-list" v-for="(item, index) in sourceList" :key="'sourceList'+index">
<!--                            <div class="sym-style">-->
<!--                                <div class="l">-->
<!--                                    <img src="/img/icon/sym.png" alt />-->
<!--                                </div>-->
<!--                                <div class="r">-->
<!--                                    <div class="title">常规-样式1</div>-->
<!--                                    <div class="unit">5cm*3cm</div>-->
<!--                                </div>-->
<!--                            </div>-->
                            <div>{{item.productName}}</div>
                            <div>{{item.code}}</div>
                            <div>{{item.bind == 0 ? 1 : 0}}/1</div>
                            <div>{{item.createTime}}</div>
                            <div>
                                <el-button
                                    @click="openPopup('/img/icon/sym.png')"
                                    @click="openPopup(item.code)"
                                    size="small"
                                    class="look"
                                    type="info"
@@ -255,7 +300,7 @@
            </template>
            <template slot="public-box-content">
                <div v-show="plotDetailsNape == 'zypz'" class="box zypz-box">
                    <div v-for="(item, index) in plotDetailsPlantList" :key="index">
                    <div v-for="(item, index) in plotDetailsPlantList" :key="'plotDetailsPlantList'+index">
                        <img class="logo" :src="item.url" alt />
                        <div class="titles-box">
                            <div class="title">{{item.strainName}}</div>
@@ -266,7 +311,7 @@
                    </div>
                </div>
                <div v-show="plotDetailsNape == 'nscz'" class="box nscz-box">
                    <div v-for="(item, index) in plotDetailsRecordList" :key="index">
                    <div v-for="(item, index) in plotDetailsRecordList" :key="'plotDetailsRecordList'+index">
                        <div class="t-border"></div>
                        <div class="t-item">
                            <div class="type">{{item.typeName}}</div>
@@ -299,26 +344,176 @@
            </template>
        </public-nape-box>
        <el-dialog
            title="溯源码"
            custom-class="dialog-fixed"
            :visible.sync="dialogVisible"
            :before-close="handleClose"
        >
        <el-dialog title="溯源码" custom-class="dialog-fixed" :visible.sync="dialogVisible">
            <img style="width: 500px;" :src="currentUrl" alt />
        </el-dialog>
        <public-box
            v-show="staionDetail"
            :closeFlag="'staionDetail'"
            :className="'public-equirment-station-details'"
        >
            <template slot="public-box-header">
                <div>{{staInfo.name}}</div>
                <img
                    @click="staionDetail = false"
                    src="../../../public/img/icon/close.png"
                    class="close"
                />
            </template>
            <template slot="public-box-content">
                <!-- 气象监测 -->
                <div class="item" v-for="(item, staListIndex) in stationData.weatherList"
                     :key="'weatherList' + staListIndex">
                    <div class="itemTitle">
                        <img src="../../../public/img/icon/icon_3788.png" alt />
                        <div class="type">
                            <h1>{{item.name}}</h1>
                            <span>单位:{{item.unit}}</span>
                        </div>
                        <div class="data">{{item.valueDataList[item.valueDataList.length-1].value}}</div>
                        <img
                            src="../../../public/img/icon/up_menu.png"
                            class="openMenuIcon"
                            @click="showEchart(staListIndex,null)"
                            v-if="echartIsShow && jcIndex == staListIndex"
                            alt
                        />
                        <img
                            src="../../../public/img/icon/down_menu.png"
                            class="openMenuIcon"
                            @click="showEchart(staListIndex,item)"
                            v-else
                            alt
                        />
                    </div>
                    <div class="echart" v-show="echartIsShow && jcIndex == staListIndex">
                        <div :id="'EchartsBox'+staListIndex" class="EchartsBox_div"></div>
                    </div>
                </div>
                <!-- 土壤监测 -->
                <div class="item" v-for="(item, staListIndex) in stationData.soliList"
                     :key="'soliList' + staListIndex">
                    <div class="itemTitle">
                        <img src="../../../public/img/icon/icon_3788.png" alt />
                        <div class="type">
                            <h1>{{item.name}}</h1>
                            <span>单位:{{item.unit}}</span>
                        </div>
                        <div class="data">{{item.valueDataList[item.valueDataList.length-1].value}}</div>
                        <img
                                src="../../../public/img/icon/up_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,null)"
                                v-if="echartIsShow && jcIndex == staListIndex"
                                alt
                        />
                        <img
                                src="../../../public/img/icon/down_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,item)"
                                v-else
                                alt
                        />
                    </div>
                    <div class="echart" v-show="echartIsShow && jcIndex == staListIndex">
                        <div :id="'EchartsBox'+staListIndex" class="EchartsBox_div"></div>
                    </div>
                </div>
                <!-- 空气监测 -->
                <div class="item" v-for="(item, staListIndex) in stationData.airList"
                     :key="'airList' + staListIndex">
                    <div class="itemTitle">
                        <img src="../../../public/img/icon/icon_3788.png" alt />
                        <div class="type">
                            <h1>{{item.name}}</h1>
                            <span>单位:{{item.unit}}</span>
                        </div>
                        <div class="data">{{item.valueDataList[item.valueDataList.length-1].value}}</div>
                        <img
                                src="../../../public/img/icon/up_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,null)"
                                v-if="echartIsShow && jcIndex == staListIndex"
                                alt
                        />
                        <img
                                src="../../../public/img/icon/down_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,item)"
                                v-else
                                alt
                        />
                    </div>
                    <div class="echart" v-show="echartIsShow && jcIndex == staListIndex">
                        <div :id="'EchartsBox'+staListIndex" class="EchartsBox_div"></div>
                    </div>
                </div>
                <!-- 水质监测 -->
                <div class="item" v-for="(item, staListIndex) in stationData.waterList"
                     :key="'waterList' + staListIndex">
                    <div class="itemTitle">
                        <img src="../../../public/img/icon/icon_3788.png" alt />
                        <div class="type">
                            <h1>{{item.name}}</h1>
                            <span>单位:{{item.unit}}</span>
                        </div>
                        <div class="data">{{item.valueDataList[item.valueDataList.length-1].value}}</div>
                        <img
                                src="../../../public/img/icon/up_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,null)"
                                v-if="echartIsShow && jcIndex == staListIndex"
                                alt
                        />
                        <img
                                src="../../../public/img/icon/down_menu.png"
                                class="openMenuIcon"
                                @click="showEchart(staListIndex,item)"
                                v-else
                                alt
                        />
                    </div>
                    <div class="echart" v-show="echartIsShow && jcIndex == staListIndex">
                        <div :id="'EchartsBox'+staListIndex" class="EchartsBox_div"></div>
                    </div>
                </div>
            </template>
        </public-box>
        <public-box
            v-show="JkDetail"
            :closeFlag="'JkDetail'"
            :className="'public-equirment-vid-details'"
        >
            <template slot="public-box-header">
                <div>{{vidInfo.name}}</div>
                <img
                    @click="JkDetail = false"
                    src="../../../public/img/icon/close.png"
                    class="close"
                />
            </template>
            <template slot="public-box-content">
                <div class="video">
                    <video id="videoElement" autoplay muted width="100%" height="100%"></video>
                </div>
            </template>
        </public-box>
    </div>
</template>
<script>
import { getSourceList } from '@/api/farm/source'
import { getSimpleInfo, getSourceList } from '@/api/farm/source'
import flvjs from 'flv.js'
import {
    getLandList,
    getFarmingRecordList,
    getFarmPlantList,
    getStationAndVideoList
    getFarmPlantList
} from '@/api/farm/farmingrecord'
import dateUtils from '@/utils/dateUtils'
import { getStationDateByStcd, queryEquipmentList } from '@/api/equipment/equipment'
export default {
    data () {
@@ -346,6 +541,18 @@
            currentClickPlot: {},
            // 物联网设备
            equipmentList: {},
            // 监测设备详情
            staionDetail: false,
            // 监控设备详情
            JkDetail: false,
            // 监测设备echart展示
            echartIsShow: false,
            // 监测列表index
            jcIndex: 0,
            flvPlayer: null,
            vidInfo: {}, // 视频数据
            staInfo: {}, // 监测数据
            stationData: {} // 监测详细数据
        }
    },
    created () {
@@ -413,8 +620,11 @@
            this.$router.go(-1)
        },
        openPopup (url) {
            this.currentUrl = url
        openPopup (code) {
            getSimpleInfo(code).then(res => {
                this.currentUrl = res.data.data.qrcode
            })
            this.dialogVisible = true
        },
@@ -480,10 +690,243 @@
        },
        getStationAndVideo () {
            var that = this
            getStationAndVideoList({ type: 'ALL',farmId: this.currentDetails.id }).then((res) => {
            queryEquipmentList({ type: 'ALL', farmId: this.currentDetails.id }).then((res) => {
                if (JSON.stringify(res.data) != '{}' && res.data.data) {
                    that.equipmentList = res.data.data.staList
                    that.equipmentList = res.data.data.equipmentList
                }
            })
        },
        // 跳转 监测 设备详情窗口
        goToDetail (item) {
            this.staInfo = item
            this.getStationDateByStcd(item.stcd)
            this.staionDetail = true
        },
        // 跳转 监控 设备详情窗口
        goToJkDetail (item) {
            this.vidInfo = item
            this.JkDetail = true
            this.$nextTick(() => {
                this.playFlvVideo('wss://www.ainfo.top:700/rtp/34020000001110000105_34020000001310000002.flv')
            })
        },
        // echart
        initLine (dom, yName, x, y) {
            const that = this
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            const option = {
                tooltip: {},
                grid: {
                    top: '30px',
                    left: '28px',
                    right: '28px',
                    bottom: '0px',
                    containLabel: true
                },
                xAxis: [
                    {
                        type: 'category',
                        boundaryGap: false,
                        axisLine: {
                            show: true,
                            lineStyle: {
                                color: '#697B89'
                            }
                        },
                        axisLabel: {
                            // 坐标轴刻度标签的相关设置
                            lineHeight: 18,
                            textStyle: {
                                color: '#A9D1D7',
                                margin: 8
                            },
                            formatter: function (value) {
                                var ret = ''// 拼接加\n返回的类目项
                                var maxLength = 5// 每项显示文字个数
                                value = value.replace(/\s*/g, '')
                                var valLength = value.length// X轴类目项的文字个数
                                var rowN = Math.ceil(valLength / maxLength) // 类目项需要换行的行数
                                // 如果类目项的文字大于5,
                                if (rowN > 1) {
                                    for (var i = 0; i < rowN; i++) {
                                        var temp = ''// 每次截取的字符串
                                        var start = i * maxLength// 开始截取的位置
                                        var end = start + maxLength// 结束截取的位置
                                        // 这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
                                        temp = value.substring(start, end) + '\n'
                                        ret += temp // 凭借最终的字符串
                                    }
                                    return ret
                                } else {
                                    return value
                                }
                            }
                        },
                        axisTick: { show: false },
                        data: x
                    }
                ],
                yAxis: [
                    {
                        name: yName,
                        nameTextStyle: {
                            color: '#A9D1D7'
                        },
                        type: 'value',
                        min: 0,
                        splitLine: {
                            show: false
                        },
                        axisLine: {
                            show: true,
                            lineStyle: {
                                color: '#697B89'
                            }
                        },
                        axisLabel: {
                            margin: 8,
                            textStyle: {
                                color: '#A9D1D7'
                            }
                        },
                        axisTick: { show: false }
                    }
                ],
                series: [
                    {
                        type: 'line',
                        smooth: true, // 是否平滑曲线显示
                        symbolSize: 0,
                        lineStyle: {
                            normal: {
                                color: '#5ABF78' // 线条颜色
                            }
                        },
                        areaStyle: {
                            // 区域填充样式
                            normal: {
                                // 线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
                                color: new that.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                    offset: 0,
                                    color: 'rgba(90, 191, 120, 0.5000)'
                                }, {
                                    offset: 1,
                                    color: 'rgba(90, 191, 120, 0)'
                                }]),
                                shadowColor: 'rgba(53,142,215, 0.9)', // 阴影颜色
                                shadowBlur: 20 // shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。
                            }
                        },
                        data: y
                    }
                ]
            }
            option && myChart.setOption(option)
        },
        // 点击展示监测设备echart图
        showEchart (index, item) {
            if (this.jcIndex == index) {
                this.echartIsShow = !this.echartIsShow
            } else {
                this.jcIndex = index
                this.echartIsShow = true
            }
            if (item) {
                const valueDataList = item.valueDataList
                const values = []
                const names = []
                valueDataList.forEach(item => {
                    values.push(item.value)
                    names.push(item.startTime.substring(5, 10) + ' ' + item.startTime.substring(11) + ':00')
                })
                this.initLine('EchartsBox' + index, '单位' + item.unit, names, values)
            }
        },
        // flv视频播放
        playFlvVideo (url) {
            // 先销毁
            if (this.flvPlayer) {
                this.flvPlayer.pause()
                this.flvPlayer.unload()
                this.flvPlayer.detachMediaElement()
                this.flvPlayer.destroy()
                this.flvPlayer = null
            }
            if (flvjs.isSupported()) {
                var videoElement = document.getElementById('videoElement')
                this.flvPlayer = flvjs.createPlayer({
                    type: 'flv',
                    isLive: true,
                    hasAudio: false,
                    stashInitialSize: 128,
                    url: url
                }, {
                    enableStashBuffer: false,
                    fixAudioTimestampGap: false
                })
                this.flvPlayer.attachMediaElement(videoElement)
                this.flvPlayer.load()
                this.flvPlayer.play()
            }
        },
        // 根据设备号获取监测数据
        getStationDateByStcd (stcd) {
            // const startTime = dateUtils.getSpecifyMonthDate(3)// 获取3个月前时间
            const startTime = dateUtils.getSpecifyDayDate(10)// 获取10天前时间
            const endTime = dateUtils.getDayLast()// 获取今天最后日期
            getStationDateByStcd(stcd, startTime, endTime).then((res) => {
                // 遍历气象大集合
                res.data.data.weatherList.forEach(function (item, index) {
                    // 把气象无效数据过滤掉
                    var list = item.valueDataList.filter(vaItem => {
                        return vaItem.value != '0.0'
                    })
                    // 如果没有找到就不做操作
                    if (list.length > 0) {
                        item.valueDataList = list
                    }
                })
                // 遍历水质
                res.data.data.waterList.forEach(function (item, index) {
                    // 把水质无效数据过滤掉
                    var list = item.valueDataList.filter(vaItem => {
                        return vaItem.value != '0.0'
                    })
                    // 如果没有找到就不做操作
                    if (list.length > 0) {
                        item.valueDataList = list
                    }
                })
                // 遍历土壤
                res.data.data.soilList.forEach(function (item, index) {
                    // 把水质无效数据过滤掉
                    var list = item.valueDataList.filter(vaItem => {
                        return vaItem.value != '0.0'
                    })
                    // 如果没有找到就不做操作
                    if (list.length > 0) {
                        item.valueDataList = list
                    }
                })
                // 遍历空气
                res.data.data.airList.forEach(function (item, index) {
                    // 把水质无效数据过滤掉
                    var list = item.valueDataList.filter(vaItem => {
                        return vaItem.value != '0.0'
                    })
                    // 如果没有找到就不做操作
                    if (list.length > 0) {
                        item.valueDataList = list
                    }
                })
                this.stationData = res.data.data
            })
        }
    }
@@ -788,6 +1231,9 @@
            & > div:last-child {
                border: none;
            }
            .lists-item {
                cursor: pointer;
            }
        }
        .dk.lists-box {
src/views/home/index.vue
@@ -334,19 +334,26 @@
            </template>
            <template slot="public-box-content">
                <div class="market-title">
                    <el-select placeholder="请选择农场"></el-select>
                    <el-select v-model="farm.id" placeholder="请选择农场" @change="scFarmChange">
                        <el-option
                                v-for="item in farmNumArray"
                                :key="item.id"
                                :label="item.farmName"
                                :value="item.id">
                        </el-option>
                    </el-select>
                    <div class="date">
                        <el-date-picker
                            v-model="value1"
                            type="daterange"
                            v-model="scSelectTime"
                            type="daterange" value-format="yyyy-MM-dd"
                            range-separator="至"
                            start-placeholder="开始时间"
                            end-placeholder="结束时间"
                        ></el-date-picker>
                    </div>
                    <div class="query-button">
                        <el-button type="primary" icon="el-icon-search">查询</el-button>
                        <el-button type="info" icon="el-icon-refresh-right">重置</el-button>
                        <el-button type="primary" icon="el-icon-search" @click="searchMarketDistrict">查询</el-button>
                        <el-button type="info" icon="el-icon-refresh-right" @click="scltReset">重置</el-button>
                    </div>
                </div>
@@ -522,6 +529,10 @@
<script>
// eslint-disable-next-line no-unused-vars
import {
    getStationAndVideoCount,
    getStationAndVideoList
} from '@/api/equipment/equipment'
import {
    getFarmingCount,
    getFarmingStatis,
    pagePalnt,
@@ -531,9 +542,7 @@
    selectMarketDistrict,
    getFarmList,
    getLandList,
    getFarmingRecordList,
    getStationAndVideoCount,
    getStationAndVideoList
    getFarmingRecordList
} from '@/api/farm/farmingrecord'
// eslint-disable-next-line no-unused-vars
import { selectXCount } from '@/api/land/land'
@@ -559,6 +568,10 @@
            salaNumY: [],
            // 市场流通
            marketDistrict: [],
            farm: {},
            scSelectTime: '',
            scStartTime: '',
            scEndTime: '',
            ncListShow: false,
            jkListShow: false,
            jcListShow: false,
@@ -1037,6 +1050,20 @@
                that.marketDistrict = res.data.data
            })
        },
        // 市场流通条件筛选
        searchMarketDistrict () {
            var that = this
            var params = {}
            params.farmId = this.farm.id
            if (that.scSelectTime) {
                params.startTime = that.scSelectTime[0]
                params.endTime = that.scSelectTime[1]
            }
            selectMarketDistrict(Object.assign(params)).then((res) => {
                that.marketDistrict = res.data.data
                this.setMarketChart('marketChartQx')
            })
        },
        // 统计今年和去年的销售总额
        selctSaletZ () {
            var that = this
@@ -1330,6 +1357,13 @@
                    })
                }
            })
        },
        scFarmChange (data) {
            this.farm.id = data
        },
        scltReset () {
            this.farm.id = ''
            this.scSelectTime = ''
        }
    }
}
@@ -1982,6 +2016,7 @@
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                cursor: pointer;
            }
            .box:hover {
@@ -2005,6 +2040,7 @@
        font-size: 14px;
        color: #6de9f3;
        box-sizing: border-box;
        cursor: pointer;
        .icon {
            width: 24px;
src/views/manage/index.vue
@@ -21,8 +21,7 @@
          :label="item.farmName"
          :value="item.id"
          class=".manage-option"
        >
        </el-option>
                ></el-option>
      </el-select>
    </div>
    <div class="main-content">
@@ -142,14 +141,8 @@
              </div>
            </div>
          </div>
          <date-select
            :type="'ncptrSelect'"
            v-if="nzOrNcp == 'ncp'"
          ></date-select>
          <date-select
            :type="'nztrSelect'"
            v-if="nzOrNcp == 'nz'"
          ></date-select>
                    <date-select :type="'ncptrSelect'" v-if="nzOrNcp == 'ncp'"></date-select>
                    <date-select :type="'nztrSelect'" v-if="nzOrNcp == 'nz'"></date-select>
          <div v-if="nzOrNcp == 'ncp'" class="lists-box">
            <div v-for="(item, index) in ncptr" :key="index">
              <div>{{ index + 1 }}</div>
@@ -179,17 +172,13 @@
          <div class="title-box">
            <div>
              <div class="item" :class="{ on: trpOrNcp == 'trp' }">
                <div @click="trpOrNcpChange('trp')" class="title">
                  投入品监管
                </div>
                                <div @click="trpOrNcpChange('trp')" class="title">投入品监管</div>
                <span></span>
              </div>
            </div>
            <div>
              <div class="item" :class="{ on: trpOrNcp == 'ncp' }">
                <div @click="trpOrNcpChange('ncp')" class="title">
                  农产品监管
                </div>
                                <div @click="trpOrNcpChange('ncp')" class="title">农产品监管</div>
                <span></span>
              </div>
            </div>
@@ -209,30 +198,20 @@
          <div class="title-box">
            <div>
              <div class="item" :class="{ on: cltjOrsym == 'cltj' }">
                <div @click="cltjOrSymChange('cltj')" class="title">
                  产量统计
                </div>
                                <div @click="cltjOrSymChange('cltj')" class="title">产量统计</div>
                <span></span>
              </div>
            </div>
            <div>
              <div class="item" :class="{ on: cltjOrsym == 'sym' }">
                <div @click="cltjOrSymChange('sym')" class="title">
                  溯源查询趋势图
                </div>
                                <div @click="cltjOrSymChange('sym')" class="title">溯源查询趋势图</div>
                <span></span>
              </div>
            </div>
            <div class="date">
              <date-select
                :type="'cltjSelect'"
                v-if="cltjOrsym == 'cltj'"
              ></date-select>
              <date-select
                :type="'symSelect'"
                v-if="cltjOrsym == 'sym'"
              ></date-select>
                            <date-select :type="'cltjSelect'" v-if="cltjOrsym == 'cltj'"></date-select>
                            <date-select :type="'symSelect'" v-if="cltjOrsym == 'sym'"></date-select>
            </div>
          </div>
@@ -248,17 +227,12 @@
            </div>
            <div>
              <div class="item" :class="{ on: nsjlOrnz == 'nzcr' }">
                <div @click="nsjlOrnz = 'nzcr'" class="title">
                  农资出入库记录
                </div>
                                <div @click="nsjlOrnz = 'nzcr'" class="title">农资出入库记录</div>
                <span></span>
              </div>
            </div>
            <div
              class="more"
              @click="popDetailedFarming({ type: '', landId: '' })"
            >
                        <div class="more" @click="popDetailedFarming({ type: '', landId: '' })">
              更多
              <img src="/img/icon/more.png" alt />
            </div>
@@ -331,16 +305,14 @@
              type="primary"
              icon="el-icon-search"
              @click="TRP_query"
              >查询</el-button
            >
                        >查询</el-button>
            <el-button
              size="small"
              class="reset"
              type="info"
              icon="el-icon-refresh-right"
              @click="TRP_refresh"
              >重置</el-button
            >
                        >重置</el-button>
          </div>
        </div>
        <div class="table-list">
@@ -353,11 +325,7 @@
            <div>厂家</div>
          </div>
          <div class="t-body">
            <div
              class="table-list"
              v-for="(item, index) in nztrAll"
              :key="index"
            >
                        <div class="table-list" v-for="(item, index) in nztrAll" :key="index">
              <div>{{ item.agrname }}</div>
              <div>{{ item.stype }}</div>
              <div>{{ item.spn }}</div>
@@ -403,16 +371,14 @@
              type="primary"
              icon="el-icon-search"
              @click="NZCR_query"
              >查询</el-button
            >
                        >查询</el-button>
            <el-button
              size="small"
              class="reset"
              type="info"
              icon="el-icon-refresh-right"
              @click="NZCR_refresh"
              >重置</el-button
            >
                        >重置</el-button>
          </div>
        </div>
        <div class="table-list">
@@ -466,7 +432,7 @@
              class="search-input"
              size="small"
              prefix-icon="el-icon-search"
              placeholder="请输入农资"
                            placeholder="请输入农产品"
              v-model="inputNCP_nzname"
            ></el-input>
          </div>
@@ -477,21 +443,19 @@
              type="primary"
              icon="el-icon-search"
              @click="NCP_query"
              >查询</el-button
            >
                        >查询</el-button>
            <el-button
              size="small"
              class="reset"
              type="info"
              icon="el-icon-refresh-right"
              @click="NCP_refresh"
              >重置</el-button
            >
                        >重置</el-button>
          </div>
        </div>
        <div class="table-list">
          <div class="t-header">
            <div>农资</div>
                        <div>农产品</div>
            <div>作业方式</div>
            <div>采收地块</div>
            <div>类型</div>
@@ -500,11 +464,7 @@
            <div>操作人</div>
          </div>
          <div class="t-body">
            <div
              class="table-list"
              v-for="(item, index) in ncpAll"
              :key="index"
            >
                        <div class="table-list" v-for="(item, index) in ncpAll" :key="index">
              <div>{{ item.strainName }}</div>
              <div>{{ item.jobWay == 0 ? "人工" : "机械" }}</div>
              <div>{{ item.landName }}</div>
@@ -571,16 +531,14 @@
              type="primary"
              icon="el-icon-search"
              @click="farmSelectList"
              >查询</el-button
            >
                        >查询</el-button>
            <el-button
              size="small"
              class="reset"
              type="info"
              icon="el-icon-refresh-right"
              @click="farmResetList"
              >重置</el-button
            >
                        >重置</el-button>
          </div>
        </div>
        <div class="table-list">
@@ -595,11 +553,7 @@
            <div>操作人</div>
          </div>
          <div class="t-body">
            <div
              class="table-list"
              v-for="(item, index) in farmOperList"
              :key="index"
            >
                        <div class="table-list" v-for="(item, index) in farmOperList" :key="index">
              <div>{{ item.typeName }}</div>
              <div>{{ item.landName }}</div>
              <div>{{ item.remarks == "" ? "--" : item.remarks }}</div>
@@ -617,7 +571,7 @@
</template>
<script>
import { selectXCount } from "@/api/land/land";
import { selectXCount } from "@/api/land/land"
// eslint-disable-next-line no-unused-vars
import {
  getStockCount,
@@ -637,7 +591,7 @@
  getLandList,
  productsSuperviseList,
  farmSelectQuery,
} from "@/api/farm/farmingrecord";
} from "@/api/farm/farmingrecord"
export default {
  data() {
@@ -716,217 +670,217 @@
      inputNZ_nzname: "",
      inputTRP_nzname: "",
      inputNCP_nzname: "",
    };
        }
  },
  created() {
    // 农场下拉列表
    this.farmSelectQuery();
        this.farmSelectQuery()
    // 默认查询第一个农场数据
    this.AllDataUpdate();
        this.AllDataUpdate()
  },
  mounted() {},
  methods: {
    // 农场下拉选中事件
    farmSelectChange(e) {
      this.AllDataUpdate();
            this.AllDataUpdate()
    },
    // 全局数据刷新事件
    AllDataUpdate() {
      // 获取当前时间
      var date = new Date();
      var y = date.getFullYear() + "-" + this.checkTime(date.getMonth() + 1);
      var n = date.getFullYear() + "";
      this.selectXCount();
      this.getStockCount();
            var date = new Date()
            var y = date.getFullYear() + "-" + this.checkTime(date.getMonth() + 1)
            var n = date.getFullYear() + ""
            this.selectXCount()
            this.getStockCount()
      // 年产量与库存数量
      this.statisticsStockAndYield(n);
            this.statisticsStockAndYield(n)
      // 按月统计产量
      this.statisticsStockMonth(y);
            this.statisticsStockMonth(y)
      // 农产品投入
      this.pageCount(y);
            this.pageCount(y)
      // 农资投入
      this.pageCountNz(y);
            this.pageCountNz(y)
      // 统计市场流通/去年流通量/本月流通量
      this.selectMarketCirculate(n);
            this.selectMarketCirculate(n)
      // 统计任务总数
      this.countTaskNum(y);
            this.countTaskNum(y)
      // 溯源趋势统计
      this.getSweepRecordStatisticsByDayOrMonthOrYear(y);
            this.getSweepRecordStatisticsByDayOrMonthOrYear(y)
      // 农事操作
      this.farmingRecords();
            this.farmingRecords()
      // 农产品监管
      this.productsSupervise(n);
            this.productsSupervise(n)
      // 农资出入库记录
      this.pageCountNzCrk();
            this.pageCountNzCrk()
      // 溯源次数统计
      this.getSweepRecordStatistics();
            this.getSweepRecordStatistics()
    },
    // 农场下拉列表
    farmSelectQuery() {
      var params = {};
      params.current = "1";
      params.size = "999";
            var params = {}
            params.current = "1"
            params.size = "999"
      farmSelectQuery(Object.assign(params)).then((res) => {
        this.farmSelect = res.data.data.records;
      });
                this.farmSelect = res.data.data.records
            })
    },
    // 投入品监管明细弹窗
    popDetailedSupervise() {
      if (this.trpOrNcp == "trp") {
        this.trpPopupFlag = true;
                this.trpPopupFlag = true
      } else {
        var params = {};
        params.codes = "000000";
        params.farmId = this.farmValue;
        params.current = "1";
        params.size = "999";
                var params = {}
                params.codes = "000000"
                params.farmId = this.farmValue
                params.current = "1"
                params.size = "999"
        productsSuperviseList(Object.assign(params)).then((res) => {
          this.ncpPopupFlag = true;
          this.ncpAll = res.data.data.records;
        });
                    this.ncpPopupFlag = true
                    this.ncpAll = res.data.data.records
                })
      }
    },
    // 农事记录明细弹窗
    popDetailedFarming(item) {
      if (this.nsjlOrnz == "nsjl") {
        this.getFarmingStatis();
        this.getLandList();
                this.getFarmingStatis()
                this.getLandList()
        getFarmingRecordList({ type: item.type, landId: item.landId }).then(
          (res) => {
            this.farmOperList = res.data.data;
            this.nsjlPopupFlag = true;
                        this.farmOperList = res.data.data
                        this.nsjlPopupFlag = true
          }
        );
                )
      } else {
        var params = {};
        params.codes = "000000";
        params.farmId = this.farmValue;
        params.current = "1";
        params.size = "999";
                var params = {}
                params.codes = "000000"
                params.farmId = this.farmValue
                params.current = "1"
                params.size = "999"
        pageCountNzCrk(Object.assign(params)).then((res) => {
          this.nzcrPopupFlag = true;
          this.stockrecordAll = res.data.data.records;
        });
                    this.nzcrPopupFlag = true
                    this.stockrecordAll = res.data.data.records
                })
      }
    },
    // 农事操作搜索
    farmSelectList() {
      this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId });
            this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId })
    },
    // 农事操作重置
    farmResetList() {
      this.farmOperType = "";
      this.farmPlotId = "";
      this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId });
            this.farmOperType = ""
            this.farmPlotId = ""
            this.farmOperClick({ type: this.farmOperType, landId: this.farmPlotId })
    },
    farmOperClick(item) {
      getFarmingRecordList({ type: item.type, landId: item.landId }).then(
        (res) => {
          this.farmOperList = res.data.data;
          this.farmOperPopup = true;
                    this.farmOperList = res.data.data
                    this.farmOperPopup = true
        }
      );
            )
    },
    // 任务总数时间查询
    getTaskTime(e) {
      this.countTaskNum(e);
            this.countTaskNum(e)
    },
    // 农产品投入时间查询
    getNcptrTime(e) {
      this.pageCount(e);
            this.pageCount(e)
    },
    // 农资投入时间查询
    getNztrTime(e) {
      this.pageCountNz(e);
            this.pageCountNz(e)
    },
    // 产量统计时间查询
    getCltjTime(e) {
      this.statisticsStockMonth(e);
            this.statisticsStockMonth(e)
    },
    // 溯源趋势时间查询
    getSymTime(e) {
      this.getSweepRecordStatisticsByDayOrMonthOrYear(e);
            this.getSweepRecordStatisticsByDayOrMonthOrYear(e)
    },
    // 农资出库记录查询按钮
    NZCR_query() {
      var params = {};
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.agrname = this.inputNZ_nzname;
      params.current = "1";
      params.size = "999";
            var params = {}
            params.codes = "000000"
            params.farmId = this.farmValue
            params.agrname = this.inputNZ_nzname
            params.current = "1"
            params.size = "999"
      pageCountNzCrk(Object.assign(params)).then((res) => {
        this.nzcrPopupFlag = true;
        this.stockrecordAll = res.data.data.records;
      });
                this.nzcrPopupFlag = true
                this.stockrecordAll = res.data.data.records
            })
    },
    // 农资出库记录重置按钮
    NZCR_refresh() {
      var params = {};
      this.inputNZ_nzname = "";
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.current = "1";
      params.size = "999";
            var params = {}
            this.inputNZ_nzname = ""
            params.codes = "000000"
            params.farmId = this.farmValue
            params.current = "1"
            params.size = "999"
      pageCountNzCrk(Object.assign(params)).then((res) => {
        this.nzcrPopupFlag = true;
        this.stockrecordAll = res.data.data.records;
      });
                this.nzcrPopupFlag = true
                this.stockrecordAll = res.data.data.records
            })
    },
    // 投入品监管查询按钮
    TRP_query() {
      var params = {};
      params.codes = "000000";
      params.agrname = this.inputTRP_nzname;
      params.farmId = this.farmValue;
            var params = {}
            params.codes = "000000"
            params.agrname = this.inputTRP_nzname
            params.farmId = this.farmValue
      pageCountNz(Object.assign(params)).then((res) => {
        this.nztrAll = res.data.data.records;
      });
                this.nztrAll = res.data.data.records
            })
    },
    // 投入品监管重置按钮
    TRP_refresh() {
      var params = {};
      params.codes = "000000";
      this.inputTRP_nzname = "";
      params.farmId = this.farmValue;
            var params = {}
            params.codes = "000000"
            this.inputTRP_nzname = ""
            params.farmId = this.farmValue
      pageCountNz(Object.assign(params)).then((res) => {
        this.nztrAll = res.data.data.records;
      });
                this.nztrAll = res.data.data.records
            })
    },
    // 农产品监管查询按钮
    NCP_query() {
      var params = {};
      params.codes = "000000";
      params.strainName = this.inputNCP_nzname;
      params.farmId = this.farmValue;
      params.current = "1";
      params.size = "999";
            var params = {}
            params.codes = "000000"
            params.strainName = this.inputNCP_nzname
            params.farmId = this.farmValue
            params.current = "1"
            params.size = "999"
      productsSuperviseList(Object.assign(params)).then((res) => {
        this.ncpPopupFlag = true;
        this.ncpAll = res.data.data.records;
      });
                this.ncpPopupFlag = true
                this.ncpAll = res.data.data.records
            })
    },
    // 农产品监管重置按钮
    NCP_refresh() {
      var params = {};
      params.codes = "000000";
      this.inputNCP_nzname = "";
      params.farmId = this.farmValue;
      params.current = "1";
      params.size = "999";
            var params = {}
            params.codes = "000000"
            this.inputNCP_nzname = ""
            params.farmId = this.farmValue
            params.current = "1"
            params.size = "999"
      productsSuperviseList(Object.assign(params)).then((res) => {
        this.ncpPopupFlag = true;
        this.ncpAll = res.data.data.records;
      });
                this.ncpPopupFlag = true
                this.ncpAll = res.data.data.records
            })
    },
    initBar(dom) {
      const that = this;
      const chartDom = document.getElementById(dom);
      const myChart = this.$echarts.init(chartDom);
      var y = [];
            const that = this
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            var y = []
      for (let i = 0; i < that.taskNum.length; i++) {
        y.push(that.taskNum[i].count);
                y.push(that.taskNum[i].count)
      }
      const option = {
@@ -996,10 +950,10 @@
                    ["#24A5DF", "#01E2D2"],
                    ["#E59438", "#FEF880 "],
                    ["#E34C4C", "#E6945E"],
                  ];
                  var index = params.dataIndex;
                                    ]
                                    var index = params.dataIndex
                  if (params.dataIndex >= colorList.length) {
                    index = params.dataIndex - colorList.length;
                                        index = params.dataIndex - colorList.length
                  }
                  return new that.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                    {
@@ -1014,28 +968,28 @@
                      offset: 1,
                      color: colorList[index][1],
                    },
                  ]);
                                    ])
                },
              },
            },
          },
        ],
      };
            }
      option && myChart.setOption(option);
            option && myChart.setOption(option)
    },
    initTrpBar(dom) {
      const that = this;
      const chartDom = document.getElementById(dom);
      const myChart = this.$echarts.init(chartDom);
      myChart.clear();
      var nztrData = this.nztr;
      var nztrX = [];
      var nztrY = [];
            const that = this
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            myChart.clear()
            var nztrData = this.nztr
            var nztrX = []
            var nztrY = []
      for (let i = 0; i < nztrData.length; i++) {
        nztrX.push(nztrData[i].agrname);
        nztrY.push(nztrData[i].cnum);
                nztrX.push(nztrData[i].agrname)
                nztrY.push(nztrData[i].cnum)
      }
      const option = {
        grid: {
@@ -1126,27 +1080,27 @@
            },
          },
        ],
      };
            }
      option && myChart.setOption(option);
            option && myChart.setOption(option)
    },
    initNcpBar(dom) {
      const that = this;
      const chartDom = document.getElementById(dom);
      const myChart = this.$echarts.init(chartDom);
      myChart.clear();
            const that = this
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            myChart.clear()
      var data = that.NcpJg;
      var dj = ["一等品", "二等品", "三等品", "四等品", "五等品"];
      var echartData = [];
      var sum = 0;
            var data = that.NcpJg
            var dj = ["一等品", "二等品", "三等品", "四等品", "五等品"]
            var echartData = []
            var sum = 0
      for (var i = 0; i < 5; i++) {
        sum += Number(data[i]);
                sum += Number(data[i])
        echartData.push({
          name: dj[i],
          value: data[i],
        });
                })
      }
      const option = {
        tooltip: {
@@ -1178,22 +1132,22 @@
            data: echartData,
          },
        ],
      };
            }
      option && myChart.setOption(option);
            option && myChart.setOption(option)
    },
    initClSyBar(dom) {
      const chartDom = document.getElementById(dom);
      const myChart = this.$echarts.init(chartDom);
      myChart.clear();
      var data = [];
      var data1 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
      var data2 = [];
      var ncp = this.yieldMonth;
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            myChart.clear()
            var data = []
            var data1 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]
            var data2 = []
            var ncp = this.yieldMonth
      for (let i = 0; i < ncp.length; i++) {
        data.push(ncp[i].time);
        data2.push(ncp[i].num);
                data.push(ncp[i].time)
                data2.push(ncp[i].num)
      }
      const option = {
@@ -1290,21 +1244,21 @@
            data: data2,
          },
        ],
      };
            }
      option && myChart.setOption(option);
            option && myChart.setOption(option)
    },
    initSymyBar(dom) {
      const chartDom = document.getElementById(dom);
      const myChart = this.$echarts.init(chartDom);
      myChart.clear();
            const chartDom = document.getElementById(dom)
            const myChart = this.$echarts.init(chartDom)
            myChart.clear()
      var data = this.sweepTrend;
      var x = [];
      var y = [];
            var data = this.sweepTrend
            var x = []
            var y = []
      for (var i = 0; i < data.length; i++) {
        y.push(data[i].num);
        x.push(data[i].time);
                y.push(data[i].num)
                x.push(data[i].time)
      }
      var option = {
@@ -1355,211 +1309,211 @@
            areaStyle: {},
          },
        ],
      };
      option && myChart.setOption(option);
            }
            option && myChart.setOption(option)
    },
    // 农场使用率
    selectXCount() {
      // eslint-disable-next-line no-unused-vars
      var that = this;
      var farmId = that.farmValue;
            var that = this
            var farmId = that.farmValue
      selectXCount(farmId).then((res) => {
        that.landsnum = res.data.data.snum.toFixed(0);
        that.landwnum = res.data.data.wnum.toFixed(0);
        that.znum = res.data.data.num.toFixed(0);
      });
                that.landsnum = res.data.data.snum.toFixed(0)
                that.landwnum = res.data.data.wnum.toFixed(0)
                that.znum = res.data.data.num.toFixed(0)
            })
    },
    // 农资使用概况
    getStockCount() {
      var that = this;
      var farmId = that.farmValue;
            var that = this
            var farmId = that.farmValue
      getStockCount(farmId).then((res) => {
        that.jnStock = res.data.data.jn.toFixed(0);
        that.qnStock = res.data.data.qn.toFixed(0);
        that.byStock = res.data.data.by.toFixed(0);
      });
                that.jnStock = res.data.data.jn.toFixed(0)
                that.qnStock = res.data.data.qn.toFixed(0)
                that.byStock = res.data.data.by.toFixed(0)
            })
    },
    // 大屏经营概况库存数量与年产量
    statisticsStockAndYield(year) {
      var params = {};
      params.tenantId = "000000";
      params.farmId = this.farmValue;
      params.year = year;
            var params = {}
            params.tenantId = "000000"
            params.farmId = this.farmValue
            params.year = year
      statisticsStockAndYield(Object.assign(params)).then((res) => {
        this.stockNCP = res.data.data.sum;
        this.stockJG = res.data.data.jgsum;
        this.stockTj = res.data.data.jgsum + res.data.data.sum;
                this.stockNCP = res.data.data.sum
                this.stockJG = res.data.data.jgsum
                this.stockTj = res.data.data.jgsum + res.data.data.sum
        this.yieldNCP = res.data.data.ncpNcl;
        this.yieldJG = res.data.data.jgNcl;
        this.yieldTj = res.data.data.ncpNcl + res.data.data.jgNcl;
      });
                this.yieldNCP = res.data.data.ncpNcl
                this.yieldJG = res.data.data.jgNcl
                this.yieldTj = res.data.data.ncpNcl + res.data.data.jgNcl
            })
    },
    // 按月统计产量
    statisticsStockMonth(e) {
      var params = {};
      params.tenantId = "000000";
      params.farmId = this.farmValue;
      params.year = e;
            var params = {}
            params.tenantId = "000000"
            params.farmId = this.farmValue
            params.year = e
      statisticsStockMonth(Object.assign(params)).then((res) => {
        this.yieldMonth = res.data.data;
        this.initClSyBar("ClSyEcharts");
      });
                this.yieldMonth = res.data.data
                this.initClSyBar("ClSyEcharts")
            })
    },
    // 农产品监管
    productsSupervise(year) {
      var params = {};
      params.tenantId = "000000";
      params.farmId = this.farmValue;
      params.year = year;
            var params = {}
            params.tenantId = "000000"
            params.farmId = this.farmValue
            params.year = year
      productsSupervise(Object.assign(params)).then((res) => {
        this.NcpJg = res.data.data;
      });
                this.NcpJg = res.data.data
            })
    },
    // 农产品投入
    pageCount(e) {
      var params = {};
      params.tenantId = "000000";
      params.farmId = this.farmValue;
      params.year = e;
      params.status = "1";
            var params = {}
            params.tenantId = "000000"
            params.farmId = this.farmValue
            params.year = e
            params.status = "1"
      pageCount(Object.assign(params)).then((res) => {
        this.ncptr = res.data.data;
      });
                this.ncptr = res.data.data
            })
    },
    // 农资投入
    pageCountNz(e) {
      var params = {};
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.year = e;
            var params = {}
            params.codes = "000000"
            params.farmId = this.farmValue
            params.year = e
      pageCountNz(Object.assign(params)).then((res) => {
        this.nztr = res.data.data.records;
        this.nztrAll = res.data.data.records;
                this.nztr = res.data.data.records
                this.nztrAll = res.data.data.records
        // 投入品监管图表
        this.initTrpBar("TrpEcharts");
      });
                this.initTrpBar("TrpEcharts")
            })
    },
    // 统计市场流通/去年流通量/本月流通量
    selectMarketCirculate(year) {
      var params = {};
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.year = year;
            var params = {}
            params.codes = "000000"
            params.farmId = this.farmValue
            params.year = year
      selectMarketCirculate(Object.assign(params)).then((res) => {
        this.salaNumBN = res.data.data[0].num;
        this.salaNumQN = res.data.data[1].num;
        this.salaNumBY = res.data.data[2].num;
      });
                this.salaNumBN = res.data.data[0].num
                this.salaNumQN = res.data.data[1].num
                this.salaNumBY = res.data.data[2].num
            })
    },
    // 统计任务总数
    countTaskNum(year) {
      var params = {};
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.year = year;
            var params = {}
            params.codes = "000000"
            params.farmId = this.farmValue
            params.year = year
      countTaskNum(Object.assign(params)).then((res) => {
        this.taskNum = res.data.data;
        this.initBar("TaskNumEcharts");
      });
                this.taskNum = res.data.data
                this.initBar("TaskNumEcharts")
            })
    },
    // 农事记录
    farmingRecords() {
      var params = {};
      params.tenantId = "000000";
      params.farmId = this.farmValue;
      params.current = "1";
      params.size = "3";
            var params = {}
            params.tenantId = "000000"
            params.farmId = this.farmValue
            params.current = "1"
            params.size = "3"
      farmingRecords(Object.assign(params)).then((res) => {
        var data = [];
                var data = []
        for (var i = 0; i < res.data.data.length; i++) {
          data.push(res.data.data[i]);
                    data.push(res.data.data[i])
          if (i == 3) {
            break;
                        break
          }
        }
        this.farminList = data;
      });
                this.farminList = data
            })
    },
    // 农资出入库记录
    pageCountNzCrk() {
      var params = {};
      params.codes = "000000";
      params.farmId = this.farmValue;
      params.current = "1";
      params.size = "3";
            var params = {}
            params.codes = "000000"
            params.farmId = this.farmValue
            params.current = "1"
            params.size = "3"
      pageCountNzCrk(Object.assign(params)).then((res) => {
        this.stockrecordList = res.data.data.records;
      });
                this.stockrecordList = res.data.data.records
            })
    },
    // 溯源次数统计
    getSweepRecordStatistics() {
      var params = {};
            var params = {}
      // 农场id
      params.farmId = this.farmValue;
            params.farmId = this.farmValue
      getSweepRecordStatistics(Object.assign(params)).then((res) => {
        this.sweepList = res.data.data;
      });
                this.sweepList = res.data.data
            })
    },
    // 溯源趋势统计
    getSweepRecordStatisticsByDayOrMonthOrYear(year) {
      var params = {};
            var params = {}
      // 农场id
      params.farmId = this.farmValue;
      params.time = year;
            params.farmId = this.farmValue
            params.time = year
      getSweepRecordStatisticsByDayOrMonthOrYear(Object.assign(params)).then(
        (res) => {
          this.sweepTrend = res.data.data;
                    this.sweepTrend = res.data.data
          if (this.cltjOrsym == "sym") {
            this.initSymyBar("ClSyEcharts");
                        this.initSymyBar("ClSyEcharts")
          }
        }
      );
            )
    },
    // 监管图表切换
    trpOrNcpChange(item) {
      var that = this;
      that.trpOrNcp = item;
            var that = this
            that.trpOrNcp = item
      if (item == "trp") {
        that.initTrpBar("TrpEcharts");
                that.initTrpBar("TrpEcharts")
      } else {
        // 农产品监管
        that.initNcpBar("TrpEcharts");
                that.initNcpBar("TrpEcharts")
      }
    },
    // 产量统计图表切换
    cltjOrSymChange(item) {
      var that = this;
      that.cltjOrsym = item;
            var that = this
            that.cltjOrsym = item
      if (item == "cltj") {
        this.initClSyBar("ClSyEcharts");
                this.initClSyBar("ClSyEcharts")
      } else {
        // 溯源码
        this.initSymyBar("ClSyEcharts");
                this.initSymyBar("ClSyEcharts")
      }
    },
    // 本年农事操作记录,分组统计
    getFarmingStatis() {
      var that = this;
      var farmId = that.farmValue;
            var that = this
            var farmId = that.farmValue
      getFarmingStatis(farmId).then((res) => {
        that.farmingList = res.data.data;
      });
                that.farmingList = res.data.data
            })
    },
    // 地块下拉
    getLandList() {
      var params = {};
            var params = {}
      // 农场id
      params.farmId = this.farmValue;
            params.farmId = this.farmValue
      getLandList(Object.assign(params)).then((res) => {
        this.plotNumArray = res.data.data;
      });
                this.plotNumArray = res.data.data
            })
    },
    checkTime(i) {
      if (i < 10) {
        i = "0" + i;
                i = "0" + i
      }
      return i;
            return i
    },
  },
};