Explorar el Código

refactor: 整理设备管理页面路由与功能逻辑

1. 迁移设备修改页面路由到equipList2
2. 优化环境监测设备跳转逻辑
3. 修复设备数据展示与接口调用问题
4. 删除冗余的旧版设备页面文件
5. 调整设备控制页面UI与接口参数
allen hace 1 semana
padre
commit
2fc72bfd4e

+ 1 - 1
pages/bzy/detail.vue

@@ -201,7 +201,7 @@ export default {
 		modification() {
       uni.navigateTo({
         url:
-          '/pages/equipList/seabox/modification?data=' +
+          '/pages/equipList2/seabox/modification?data=' +
           JSON.stringify(this.deviceInfo) +
           '&id=' +
           this.deviceInfo.type,

+ 21 - 35
pages/deviceDetails/weatherStation1/devControl.vue

@@ -8,27 +8,13 @@
     <view class="control-board">
       <view class="title">操作</view>
       <div style="margin-bottom: 48rpx;">
-        <u-button type="success" class="reload-btn" @click="handleControl('RESET')">重启</u-button>
+        <u-button type="success" class="reload-btn" @click="handleControl('RC_LOC')">定位</u-button>
       </div>
-      <u-button type="success" class="reload-btn" @click="handleControl('FWUPDATE')">升级</u-button>
-      <view class="title date-title">本地存储间隔(min)</view>
-      <view class="date-slider">
-        <slider
-          v-model="storageVal"
-          show-value="true"
-          :min="1"
-          :max="240"
-          @change="changeStorageVal"
-          block-color="#57C878"
-          activeColor="#57C878"
-          step="1"
-        />
-      </view>
-       <u-button type="success" class="sub-btn" @click="handleControl('STORAGE_INR')">确定</u-button>
+      <u-button type="success" class="reload-btn" @click="handleControl('RC_IN')">长在线</u-button>
       <view class="title date-title">数据传输间隔(min)</view>
       <view class="date-slider">
         <slider
-          v-model="dataInterval"
+          v-model="interval"
           show-value="true"
           :min="1"
           :max="240"
@@ -38,7 +24,7 @@
           step="1"
         />
       </view>
-       <u-button type="success" class="sub-btn" @click="handleControl('INTERVAL')">确定</u-button>
+       <u-button type="success" class="sub-btn" @click="handleControl('interval')">确定</u-button>
     </view>
     <!-- <view class="footer-board">
       <u-button type="success" class="sub-btn" @click="handleSubmit()">确定</u-button>
@@ -57,40 +43,40 @@ export default {
   data() {
     return {
       deviceInfo: {},
-      storageVal: "",
-      dataInterval: "",
+      interval: "",
     };
   },
   methods: {
     changeDataInterval(v){
-      this.dataInterval = v.detail.value
-    },
-    changeStorageVal(v){
-      this.storageVal = v.detail.value
+      this.interval = v.detail.value
     },
     // 获取设备控制参数信息
     async getDevControlParams() {
       await this.$myRequest({
-        url: '/api/api_gateway?method=qxz.device.control_args',
+        url: '/api/api_gateway?method=greenhouse.env_first.control_device',
         data: {
           device_id: this.deviceInfo.devBid,
         }
       }).then(res => {
         console.log('设备控制参数信息', res)
-        this.storageVal = res.storage_inr
-        this.dataInterval = res.interval
+        this.interval = res.interval
       })
     },
     async handleControl(cmd) {
-      const params = {
-        device_id: this.deviceInfo.devBid,
-        cmd,
-        interval: cmd === 'INTERVAL' ? this.dataInterval : undefined,
-        storage_inr: cmd === 'STORAGE_INR' ? this.storageVal : undefined,
-        stnid: cmd === 'STNID' ? this.stnidVal : undefined
-      };
+      let params = {};
+      if(cmd == 'interval'){
+        params = {
+          device_id: this.deviceInfo.devBid,
+          interval: this.interval,
+        };
+      }else{
+        params = {
+          device_id: this.deviceInfo.devBid,
+          order: cmd,
+        };
+      }
       await this.$myRequest({
-        url: '/api/api_gateway?method=qxz.device.control',
+        url: '/api/api_gateway?method=greenhouse.env_first.send_control',
         data: params
       }).then(res => {
         console.log('设备控制参数信息', res)

+ 7 - 7
pages/deviceDetails/weatherStation1/eleDetail.vue

@@ -220,7 +220,7 @@ export default {
       const currentEle = this.eleTabs[this.eleActive];
       console.log(currentEle, "currentEle");
       currentEle.data.forEach((item) => {
-        if (item.value === "/") {
+        if (item.value === "/" || item.value === "NA") {
           item.value = "0";
         }
       });
@@ -407,7 +407,7 @@ export default {
     // 折线图数据
     getChartData() {
       this.$myRequest({
-        url: "/api/api_gateway?method=qxz.data.qxz_ob_data_map",
+        url: "/api/api_gateway?method=greenhouse.env_first.monitor_data",
         data: {
           device_id: this.deviceInfo.devBid,
           start: String(
@@ -417,7 +417,7 @@ export default {
             Math.floor(new Date(this.endDate + " 23:59:59").getTime() / 1000),
           ),
           page: 1,
-          page_size: 999,
+          size: 999,
         },
       }).then((res) => {
         console.log("getChartData:", res);
@@ -425,7 +425,7 @@ export default {
           this.eleTabs = res;
           this.hasData = true;
           this.activeChartInfo =
-            this.eleTabs.find((item) => item.title === this.eleKey) ||
+            this.eleTabs.find((item) => item.name === this.eleKey) ||
             this.eleTabs[0];
           this.eleActive = this.eleTabs.indexOf(this.activeChartInfo);
           console.log(this.activeChartInfo, "activeChartInfo");
@@ -441,7 +441,7 @@ export default {
     // 历史数据
     getObData() {
       this.$myRequest({
-        url: "/api/api_gateway?method=qxz.data.qxz_ob_data",
+        url: "/api/api_gateway?method=greenhouse.env_first.history_data",
         data: {
           device_id: this.deviceInfo.devBid,
           start: String(
@@ -456,7 +456,7 @@ export default {
       }).then((res) => {
         console.log("getObData:", res);
         const columns = res.title;
-        const data = res.data;
+        const data = res.table;
         const newData = data.map((item) => {
           return this.processData(item);
         });
@@ -465,7 +465,7 @@ export default {
         );
         this.columns = resCol;
         this.tableList = newData;
-        this.total = res.count;
+        this.total = res.total;
         console.log("tableList:", this.columns);
         console.log("tableList", this.tableList);
       });

+ 9 - 1
pages/deviceDetails/weatherStation1/index.vue

@@ -344,7 +344,7 @@ export default {
       let url = '';
       console.log(type,eleItem,'deviceInfodeviceInfo')
       if (eleItem && eleItem.key) {
-        url = `/pages/deviceDetails/weatherStation1/${type}?deviceInfo=${encodeURIComponent(JSON.stringify(this.deviceInfo))}&eleKey=${eleItem.key}`;
+        url = `/pages/deviceDetails/weatherStation1/${type}?deviceInfo=${encodeURIComponent(JSON.stringify(this.deviceInfo))}&eleKey=${eleItem.name}`;
       } else {
         url = `/pages/deviceDetails/weatherStation1/${type}?deviceInfo=${encodeURIComponent(JSON.stringify(this.deviceInfo))}`;
       }
@@ -398,6 +398,14 @@ export default {
       // })
       this.monitorList = this.formatChartData(res.recent);
     },
+    async getMonitorData(){
+      const res = await this.$myRequest({
+        url: '/api/api_gateway?method=greenhouse.env_first.monitor_data',
+        data: {
+          device_id: this.deviceInfo.devBid,
+        },
+      });
+    },
     formatChartData(data) {
       data.forEach(item => {
         if(item.name == '空气温度'){

+ 0 - 942
pages/equipList/index.vue

@@ -1,942 +0,0 @@
-<template>
-  <view>
-    <!-- <view class="status_bar"></view>
-		<view style="position: fixed;top:44px;z-index: 100;width: 100%;">
-			<uni-nav-bar right-icon="search" title="设备列表" @clickRight="clickRight"></uni-nav-bar>
-			
-		</view> -->
-    <view class="textbox">
-      <view class="inputs">
-        <!-- <u-input v-model="imports" type="text" :border="true" /> -->
-        <u-search
-          placeholder="请输入设备ID"
-          v-model="imports"
-          placeholder-color="#909696"
-          :show-action="false"
-          search-icon-color="#909696"
-          @input="searchinput"
-        >
-        </u-search>
-        <!-- <input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinput"
-					class="inputbox" :clearable="false" />
-				<u-icon name="search" size="40" class="icon" @click="search"></u-icon> -->
-      </view>
-      <view class="listbox">
-        <view class="listbox_left">
-          <view
-            :class="
-              currents == index
-                ? 'listbox_left_item_act listbox_left_item'
-                : 'listbox_left_item'
-            "
-            v-for="(item, index) in list"
-            :key="index"
-            @click="change(index)"
-          >
-            {{ item.name }}
-          </view>
-        </view>
-        <!-- <view class="list" @scroll='showOut' ref="sollo" id="list"> -->
-        <scroll-view
-          :scroll-top="0"
-          :scroll-y="true"
-          class="list scroll-Y"
-          @scrolltoupper="upper"
-          @scrolltolower="lower"
-          @scroll="scroll"
-        >
-          <view
-            class="list_item"
-            v-for="(item, index) in eqlistdata"
-            :key="index"
-            @click="historys(item)"
-          >
-            <view class="list_item_top">
-              <p class="p1">
-                <image
-                  :src="
-                    $imageURL +
-                    '/bigdata_app/image/fourMoodBase/' +
-                    type_id +
-                    '.png'
-                  "
-                  mode=""
-                ></image>
-                <view>{{
-                  item.device_name == '' ? '--' : item.device_name
-                }}</view>
-              </p>
-              <p
-                v-if="![11, 19, 20].includes(type_id)"
-                :class="[item.is_online ? 'p2' : 'p_out']"
-              >
-                {{ item.is_online ? '在线' : '离线' }}
-              </p>
-            </view>
-            <view class="list_item_text">
-              <p>设备ID:{{ item.only_for_show || item.device_id }}</p>
-              <p>
-                适配用户:{{ item.real_name == '' ? '无' : item.real_name }}
-              </p>
-
-              <p v-if="type_id == 40 || type_id == 42">
-                最新上报时间:{{ item.uptime }}
-              </p>
-              <p v-else>最新上报时间:{{ item.uptime | timeFormat() }}</p>
-              <p v-if="type_id == 40 || type_id == 42">
-                添加设备时间:{{ item.addtime }}
-              </p>
-              <span v-else>
-                <p v-if="item.addtime === 0">添加设备时间:- -</p>
-                <p v-else>添加设备时间:{{ item.addtime | timeFormat() }}</p>
-              </span>
-              <p>设备已运行:{{ item.days }}天</p>
-            </view>
-            <view
-              class="list_item_btn"
-              v-if="
-                $QueryPermission(108) &&
-                ![13, 17, 18, 11, 19, 20, 14, 22, 25].includes(type_id)
-              "
-              @click.stop="modification(item)"
-            >
-              信息修改
-            </view>
-          </view>
-        </scroll-view>
-
-        <!-- </view> -->
-      </view>
-    </view>
-
-    <!-- <view class="utabs_box">
-			<view class="utabs">
-				<u-tabs :list="list" :is-scroll="true" :current="currents" @change="change" item-width="140"
-					font-size="24" gutter="20" bar-width="60" active-color="#42b983" v-if="list.length"></u-tabs>
-			</view>
-		</view> -->
-    <view class="loading" v-if="loadingtf">
-      <image
-        src="../../static/images/ajax-loader.gif"
-        mode=""
-        class="img"
-      ></image>
-    </view>
-    <view class="top" v-if="isTop" @click="top">
-      <image
-        :src="
-          $imageURL +
-          '/bigdata_app' +
-          '/image/6209a98f0cb3b5086f2ca36152c9269.png'
-        "
-        mode=""
-      ></image>
-    </view>
-  </view>
-</template>
-
-<script>
-import { Debounce, Throttle } from '../../util/anitthro.js';
-export default {
-  data() {
-    return {
-      list: [],
-      current: 0,
-      currents: 0,
-      page: 1,
-      size: 10,
-      eqlistdata: [],
-      isTop: false,
-      device_model: 0,
-      infoalter: false, // 权限设置,
-      type_id: 0, //设备类型,
-      imgpath: [],
-      loadingtf: false,
-      width: 0, //顶部搜索栏宽度
-      imports: '', //搜索设备ID
-    };
-  },
-  methods: {
-    // 大棚
-    async getDpDeviceList(tf) {
-      const res = await this.$myRequest({
-        url: '/api/v2/iot/mobile/device/dpkzg/yf/list/',
-        method: 'post',
-        data: {
-          pageSize: this.size,
-          pageNum: this.page,
-        },
-      });
-      this.loadingtf = false;
-      const eqlistdata = res || [];
-      eqlistdata.forEach((item) => {
-        const newtime = +new Date() / 1000;
-        const days = (newtime - item.addtime) / 60 / 60 / 24;
-        item.days = Math.round(days);
-        item.device_id = item.devCode;
-        item.uptime = item.devUpdateddate;
-        item.addtime = item.devCreateddate;
-        item.device_name = item.devName;
-        item.real_name = item.realName;
-        item.is_online = item.devStatus == 1 ? true : false;
-      });
-      this.eqlistdata = eqlistdata;
-    },
-    // 水肥
-    async getDeviceList(tf) {
-      const res = await this.$myRequest({
-        url: '/api/v2/iot/mobile/device/sf/zsrf/list/',
-        method: 'post',
-        data: {
-          pageSize: this.size,
-          pageNum: this.page,
-        },
-      });
-      this.loadingtf = false;
-      const eqlistdata = res || [];
-      eqlistdata.forEach((item) => {
-        const newtime = +new Date() / 1000;
-        const days = (newtime - item.addtime) / 60 / 60 / 24;
-        item.days = Math.round(days);
-        item.device_id = item.devCode;
-        item.uptime = item.devUpdateddate;
-        item.addtime = item.devCreateddate;
-        item.device_name = item.devName;
-        item.real_name = item.realName;
-        item.is_online = item.devStatus == 1 ? true : false;
-      });
-      this.eqlistdata = eqlistdata;
-    },
-    async eqlist(tf) {
-      //设备列表
-      this.loadingtf = true;
-      console.log(this.type_id, 'type_idtype_id');
-      if (this.type_id == 42) {
-        this.getDpDeviceList(tf);
-        return;
-      }
-      if (this.type_id == 40) {
-        this.getDeviceList(tf);
-        return;
-      }
-      const res = await this.$myRequest({
-        url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-        data: {
-          device_type_id: this.type_id,
-          page: this.page,
-          page_size: this.size,
-          device_id: this.imports,
-          device_model: this.device_model,
-        },
-      });
-      this.loadingtf = false;
-      if ([11, 19, 20].includes(Number(this.type_id))) {
-        var newtime = +new Date() / 1000;
-      } else {
-        var newtime = +new Date() / 1000;
-      }
-      res.data.forEach((item) => {
-        let { uptime, addtime } = item;
-        item.uptime = addtime;
-        item.addtime = uptime;
-        var days = (newtime - item.addtime) / 60 / 60 / 24;
-        item.days = Math.round(days);
-      });
-      if (tf) {
-        this.eqlistdata = this.eqlistdata.concat(res.data);
-      } else {
-        this.eqlistdata = res.data;
-      }
-      console.log(this.eqlistdata);
-      // for (var i = 0; i < this.eqlistdata.length; i++) {
-      //   var days = (newtime - this.eqlistdata[i].addtime) / 60 / 60 / 24;
-      //   this.eqlistdata[i].days = Math.round(days);
-      // }
-    },
-    async xyeqlist(tf) {
-      //设备列表
-      this.loadingtf = true;
-      const res = await this.$myRequest({
-        url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
-        data: {
-          device_type_id: this.type_id,
-          page: this.page,
-          page_size: this.size,
-          device_id: this.imports,
-        },
-      });
-      this.loadingtf = false;
-      var newtime = +new Date() / 1000;
-      if (tf) {
-        this.eqlistdata = this.eqlistdata.concat(res.data);
-      } else {
-        this.eqlistdata = res.data;
-      }
-      for (var i = 0; i < this.eqlistdata.length; i++) {
-        var days = (newtime - this.eqlistdata[i].addtime) / 60 / 60 / 24;
-        this.eqlistdata[i].days = Math.round(days);
-      }
-      console.log(res);
-    },
-    //camera.camera_manage.list_camera
-    async camera() {
-      //监控
-      const res = await this.$myRequest({
-        url: '/api/api_gateway?method=camera.camera_manage.list_camera',
-        data: {
-          page_size: 1,
-        },
-      });
-      this.accessToken = res.accessToken;
-    },
-    // homes.user_device_type
-    async usertype() {
-      //设备列表
-      const res = await this.$myRequest({
-        url: '/api/api_gateway?method=home.homes.user_device_type',
-      });
-      console.log(res);
-      for (var i = 0; i < res.length; i++) {
-        if (res[i].type_name == '温室大棚') {
-          continue;
-        }
-        var obj = {
-          name: res[i].type_name,
-          id: res[i].id,
-          device_model: res[i].device_model,
-          pur_id: res[i].pur_id,
-        };
-        this.list.push(obj);
-      }
-      console.log('设备列表11111111111111', this.list);
-      if (res.length) {
-        this.type_id = this.list[0].id;
-        this.device_model = this.list[0].device_model;
-        if (this.list[0].id == 10) {
-          this.xyeqlist();
-        } else {
-          this.eqlist();
-        }
-      }
-    },
-    change(index) {
-      console.log(index);
-      //头部导航栏的点击
-      this.imports = '';
-      this.current = index;
-      this.currents = index;
-      this.page = 1;
-      this.eqlistdata = [];
-      this.type_id = this.list[index].id;
-      this.device_model = this.list[index].device_model;
-      console.log(this.type_id);
-      if (this.list[index].id == 10) {
-        this.xyeqlist();
-      } else {
-        this.eqlist();
-      }
-    },
-    clickRight() {
-      //搜索
-      this.width = '90%';
-    },
-    modification(item) {
-      console.log(item, 'itemitmeimteimtei');
-      uni.navigateTo({
-        url:
-          './seabox/modification?data=' +
-          JSON.stringify(item) +
-          '&id=' +
-          this.type_id,
-      });
-    },
-    top() {
-      uni.pageScrollTo({
-        scrollTop: 0,
-        duration: 500,
-      });
-    },
-    historys(itemOld) {
-      let item = JSON.parse(JSON.stringify(itemOld));
-      console.log('item', item, this.type_id);
-      item.pur_id = this.list[this.current].pur_id;
-      switch (this.type_id) {
-        // 水肥新设备
-        case 22:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          uni.navigateTo({
-            url: '../waterandfernew/details?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        // 病虫害可视监测
-        case 14:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: '../cb/sy/detail?detail=' + JSON.stringify(item),
-          });
-          break;
-        case 2:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url:
-              '../prevention/equipmentdetails?shebei=' + JSON.stringify(item),
-          });
-          break;
-        case 38:
-          // console.log(item);
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.equip_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          uni.navigateTo({
-            url: '../environment/equipment-new?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 5:
-          console.log(item);
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.equip_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          uni.navigateTo({
-            url: '../environment/equipment?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 6:
-          uni.navigateTo({
-            url:
-              '/pages/webview/webview?device_id=' +
-              item.imei +
-              '&accessToken=' +
-              this.accessToken,
-          });
-          break;
-        case 44:
-          uni.navigateTo({
-            url:
-              '/pages/webview?device_id=' +
-              item.device_id +
-              '&accessToken=' +
-              uni.getStorageSync('session_key') +
-              '&type=dgp',
-          });
-          break;
-        case 3:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/equip-detail/equip-detail?info=' + JSON.stringify(item),
-          });
-          break;
-        case 28:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/smallPest/smallPest?info=' + JSON.stringify(item),
-          });
-          break;
-        case 4:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/equip-detail/equip-detail?info=' + JSON.stringify(item),
-          });
-          break;
-        case 32:
-        case 33:
-        case 34:
-        case 35:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url:
-              '../cb/equip-detail/equip-detail-new?info=' +
-              JSON.stringify(item),
-          });
-          break;
-        case 7:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/equip-detail/equip-detail?info=' + JSON.stringify(item),
-          });
-          break;
-        case 8:
-          // item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/thxydetail/thxydetail?imei=' + item.imei,
-          });
-          break;
-        case 29:
-          // item.type = this.type_id;
-          uni.navigateTo({
-            url: `../cb/nlNewXy/nlNewXy?imei=${item.imei}&showId=${item.only_for_show}`,
-          });
-          break;
-        case 24:
-          // item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/zjxydetail/thxydetail?imei=' + item.imei,
-          });
-          break;
-        case 12:
-          console.log(item);
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: '../cb/xctdetail/xctdetail?info=' + JSON.stringify(item),
-          });
-          break;
-        case 13:
-          console.log(item);
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          uni.navigateTo({
-            url: '../waterandfer/datails?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 15:
-          console.log(item);
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          uni.navigateTo({
-            url: '../environment/gsequipment?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 17:
-          break;
-        case 18:
-          var obj = {};
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          uni.navigateTo({
-            url: '../cb/shuifeiL/shuifeiL?detail=' + JSON.stringify(obj),
-          });
-          break;
-        case 11:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 11;
-          uni.navigateTo({
-            url: '../disease/cmb?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 19:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 19;
-          uni.navigateTo({
-            url: '../disease/cmb?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 20:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 20;
-          uni.navigateTo({
-            url: '../disease/cmb?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 21:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 21;
-          uni.navigateTo({
-            url: '../disease/cmb?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 26:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 26;
-          uni.navigateTo({
-            url: '../disease/cmb?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 27:
-          var obj = {};
-          obj.d_id = item.d_id;
-          obj.device_id = item.imei;
-          obj.is_online = item.is_online;
-          obj.lat = item.lat;
-          obj.lng = item.lng;
-          obj.equip_name = item.device_name;
-          obj.uptime = item.uptime;
-          obj.location = item.address;
-          obj.type = 26;
-          uni.navigateTo({
-            url: '../disease/mls/mls?shebei=' + JSON.stringify(obj),
-          });
-          break;
-        case 25:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: '../cb/xylps/detail?detail=' + JSON.stringify(item),
-          });
-          break;
-        case 40:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: `../cb/shuifeizs/shuifeizs?devBid=${item.devBid}&devName=${item.devName}&devStatus=${item.devStatus}`,
-          });
-          break;
-        case 42:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: `../cb/wenshizs/wenshizs?devBid=${item.devBid}&devName=${item.device_name}&devStatus=${item.devStatus}`,
-          });
-          break;
-        case 45:
-          item.addtime = item.uptime;
-          uni.navigateTo({
-            url: `../cb/shuifeizsFirst/shuifeizs?devBid=${item.d_id}&devName=${item.device_name}&devStatus=${item.is_online}`,
-          });
-          break;
-        case 46:
-          uni.navigateTo({
-            url: `../deviceDetails/weatherStation/index?devBid=${item.imei}&devName=${item.device_name}&devStatus=${item.is_online}&address=${item.address}&uptime=${item.uptime}&d_id=${item.d_id}&deviceType=46`,
-          });
-          break;
-        case 47:
-          uni.navigateTo({
-            url: `../cb/zhamenFirst/zhamenzs?devBid=${item.d_id}&devName=${item.device_name}&devStatus=${item.is_online}`,
-          });
-          break;
-        default:
-          item.addtime = item.uptime;
-          item.type = this.type_id;
-          uni.navigateTo({
-            url: '../cb/xy2.0/particulars?info=' + JSON.stringify(item),
-          });
-          break;
-      }
-    },
-    search() {
-      //搜索
-      this.eqlistdata = [];
-      this.page = 1;
-      if (this.list[this.currents].id == 10) {
-        this.xyeqlist();
-      } else {
-        this.eqlist();
-      }
-    },
-    searchinput() {
-      Debounce(() => {
-        this.eqlistdata = [];
-        this.page = 1;
-        if (this.list[this.currents].id == 10) {
-          this.xyeqlist();
-        } else {
-          this.eqlist();
-        }
-      }, 1000)();
-    },
-    scrollTop(e) {
-      console.log(e);
-    },
-    upper() {},
-    lower() {
-      this.page++;
-      if (this.type_id == 10) {
-        this.xyeqlist(true);
-      } else {
-        this.eqlist(true);
-      }
-    },
-    scroll() {},
-  },
-  onLoad() {
-    // this.list = [];
-    // this.camera();
-    // this.current = 0;
-    // this.currents = 0;
-    // this.page = 1;
-    // this.usertype();
-    // this.width = 0;
-  },
-  onTabItemTap(e) {
-    // console.log(e);
-    this.eqlistdata = [];
-    this.list = [];
-    this.camera();
-    this.current = 0;
-    this.currents = 0;
-    this.page = 1;
-    this.usertype();
-    this.width = 0;
-  },
-  onReachBottom() {
-    this.page++;
-    if (this.type_id == 10) {
-      this.xyeqlist(true);
-    } else {
-      this.eqlist(true);
-    }
-  },
-  onPageScroll(e) {
-    //nvue暂不支持滚动监听,可用bindingx代替
-    if (e.scrollTop > 200) {
-      //距离大于200时显示
-      this.isTop = true;
-    } else {
-      //距离小于200时隐藏
-      this.isTop = false;
-    }
-  },
-};
-</script>
-<style lang="scss">
-page {
-  background-color: #00b075;
-}
-
-/deep/.uni-icons {
-  font-size: 40rpx !important;
-}
-
-.textbox {
-  width: 100%;
-  height: calc(100vh - 30rpx);
-  padding: 20rpx 6rpx;
-  box-sizing: border-box;
-  border-top-left-radius: 80rpx;
-  border-top-right-radius: 80rpx;
-  margin-top: 30rpx;
-  background-color: #f9f9f9;
-  box-sizing: border-box;
-}
-
-.inputs {
-  width: 95%;
-  margin: 0 auto;
-  /deep/.u-content {
-    background-color: #fff !important;
-  }
-
-  /deep/.uni-input-wrapper {
-    background-color: #fff !important;
-  }
-}
-
-.utabs_box {
-  width: 100%;
-  position: fixed;
-  top: 88px;
-  background-color: #ffffff;
-  z-index: 100;
-
-  .utabs {
-    width: 95%;
-    margin: 0 auto;
-  }
-}
-
-.loading {
-  position: fixed;
-  top: 440px;
-  width: 95%;
-  left: 2.5%;
-  text-align: center;
-
-  .img {
-    width: 300rpx;
-    height: 40rpx;
-  }
-}
-
-.listbox {
-  display: flex;
-  justify-content: space-around;
-  height: calc(100vh - 150rpx);
-  margin-top: 20rpx;
-
-  .listbox_left {
-    background-color: #fff;
-    padding: 20rpx 10rpx 20rpx 0;
-    width: 240rpx;
-    overflow: auto;
-
-    .listbox_left_item {
-      height: 50rpx;
-      width: 100%;
-      margin-bottom: 20rpx;
-      text-align: center;
-      border-radius: 10rpx;
-      line-height: 50rpx;
-      overflow: hidden; //溢出隐藏
-      white-space: nowrap; //禁止换行
-      text-overflow: ellipsis; //...
-    }
-
-    .listbox_left_item_act {
-      background-color: rgba(0, 176, 117, 0.2);
-      color: #00b075;
-    }
-  }
-}
-
-.list {
-  width: calc(100vw - 300rpx);
-  background-color: #fdfdfd;
-  // margin-bottom: 100rpx;
-  overflow-y: auto;
-
-  .list_item {
-    width: 100%;
-    margin: 0 auto 20rpx;
-    padding: 20rpx 20rpx;
-    box-sizing: border-box;
-    position: relative;
-    background-color: #ffffff;
-    box-shadow: 0 0 10rpx #bcb9ca;
-
-    .list_item_top {
-      display: flex;
-      justify-content: space-between;
-
-      .p1 {
-        width: 86%;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        height: 60rpx;
-        line-height: 60rpx;
-        font-size: 28rpx;
-        overflow: hidden;
-
-        image {
-          width: 40rpx;
-          height: 40rpx;
-          vertical-align: text-top;
-          margin-right: 20rpx;
-        }
-
-        view {
-          width: calc(100% - 40rpx);
-          overflow: hidden;
-          text-overflow: ellipsis;
-          white-space: nowrap;
-        }
-      }
-
-      .p2 {
-        height: 60rpx;
-        line-height: 60rpx;
-        font-size: 28rpx;
-        color: #42b983;
-      }
-
-      .p_out {
-        height: 60rpx;
-        line-height: 60rpx;
-        font-size: 28rpx;
-        color: red;
-      }
-    }
-
-    .list_item_text {
-      margin-top: 20rpx;
-
-      p {
-        font-size: 24rpx;
-        color: #636363;
-        margin-top: 10rpx;
-        word-break: break-all;
-      }
-
-      p:first-child {
-        font-size: 28rpx;
-        font-weight: 700;
-      }
-    }
-
-    .list_item_btn {
-      width: 126rpx;
-      color: #42b983;
-      height: 40rpx;
-      text-align: center;
-      border: 1rpx solid #42b983;
-      border-radius: 25rpx;
-      font-size: 24rpx;
-      line-height: 35rpx;
-      position: absolute;
-      bottom: 15rpx;
-      right: 20rpx;
-    }
-  }
-}
-
-.top {
-  position: fixed;
-  right: 30px;
-  bottom: 100px;
-  z-index: 100;
-
-  image {
-    width: 100rpx;
-    height: 100rpx;
-  }
-}
-</style>

+ 0 - 241
pages/equipList/modification.vue

@@ -1,241 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view class="" style="position: relative;top: 64px;">
-			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" title="修改名称"></uni-nav-bar>
-			</view>
-			<view class="mod">
-				<view class="mod_name">
-					<p><span style="color: #ff0000;" v-if="quanxian.namealter">*</span>设备名称</p>
-					<input type="text" v-model="moddata.device_name" :class="quanxian.namealter?'namebg':''" :disabled="!quanxian.namealter"/>
-				</view>
-				<view class="mod_id">
-					<p>设备ID</p>
-					<input type="text" :value="moddata.imei||moddata.device_id" disabled />
-				</view>
-				<view class="mod_user">
-					<p>适配用户</p>
-					<input type="text" :value="moddata.real_name==''?'无':moddata.real_name" disabled />
-				</view>
-				<view class="mod_city" @click="amendcity" v-if="$QueryPermission(109)">
-					<p><span style="color: #ff0000;" v-if="quanxian.cityalter">*</span>设备位置</p>
-					<view style="display: flex;">
-						<input type="text" :value="city" disabled style="width: 400rpx;" />
-						<u-icon name="arrow-right"></u-icon>
-					</view>
-				</view>
-				<view class="mod_time">
-					<p>设备添加时间</p>
-					<input type="text" :value="moddata.addtime|timeFormat()" disabled />
-				</view>
-				<p style="width: 90%;margin: 0 auto;text-align: right;color: #06B535;"><span style="color: #ff0000;">*</span>为可修改</p>
-				<view class="sub" v-if="quanxian.infoalter" @click="btn">
-					提 交
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				moddata: [],
-				city: "",
-				selectcityTF: false,
-				quanxian:{
-					namealter:false,
-					cityalter:false,
-					infoalter:false
-				}
-			}
-		},
-		methods: {
-			async eqlistcity(lat, lng) { //修改设备定位
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.revise_device_lnglat',
-					data: {
-						device_id: this.moddata.imei,
-						lat: lat,
-						lng: lng
-					}
-				})
-				console.log(res)
-				if (res==false) {
-					uni.showModal({
-						title: "修改地址失败",
-						icon: "none"
-					})
-				}
-			},
-			async eqlistname() { //修改设备名称
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.revise_device',
-					data: {
-						device_id: this.moddata.imei,
-						device_name: this.moddata.device_name,
-					}
-				})
-				console.log(res)
-				if (res==false) {
-					uni.showModal({
-						title: "修改名称失败",
-						icon: "none"
-					})
-				}
-			},
-			async eqlistuser(id, imei) { //获取设备信息
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: id,
-						device_id: imei,
-					}
-				})
-				this.moddata = res.data[0]
-				console.log(res)
-				this.selectaddress(this.moddata.lng, this.moddata.lat)
-			},
-			async xyeqlistuser(imei) { //获取设备信息
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
-					data: {
-						device_id: imei,
-					}
-				})
-				console.log(res)
-				this.moddata = res.data[0]
-				this.selectaddress(this.moddata.lng, this.moddata.lat)
-			},
-			btn() {
-				this.eqlistcity(this.moddata.lat, this.moddata.lng)
-				this.eqlistname()
-				uni.removeStorage({
-					key: "location"
-				})
-				this.clickLeft()
-			},
-			clickLeft() {
-				uni.navigateBack({
-					delta:1
-				})
-			},
-			amendcity() { //修改设备地址
-				if(this.quanxian.cityalter){
-					this.selectcityTF = true
-					uni.navigateTo({
-						url: "../fourBase/city"
-					})
-				}else{
-					uni.showToast({
-						title: "您暂无权限进行此操作,如有需要,请联系管理员",
-						icon: "none"
-					})
-				}
-			},
-			selectaddress(lng, lat) { //获取分布位置
-				uni.request({
-					type: "GET",
-					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," + lat +
-						"&key=27273b81090f78759e4057f94474516f&radius=1000&extensions=all",
-					dataType: "json",
-					complete: ress => {
-						// console.log(ress)
-						if (ress.data.regeocode.formatted_address.length == 0) {
-							this.city = "--"
-						} else {
-							this.city = ress.data.regeocode.formatted_address
-						}
-					}
-				});
-			},
-		},
-		onLoad(option) {
-			console.log(option)
-			if(option.id==10){
-				this.xyeqlistuser(JSON.parse(option.data).device_id)
-			}else{
-				this.eqlistuser(option.id, JSON.parse(option.data).imei)
-			}
-			uni.getStorage({
-				key:"jurisdiction",
-				success:(res)=>{
-					console.log(JSON.parse(res.data))
-					let items = JSON.parse(res.data).filter((item)=>{
-						return item.purview_name == "设备管理"
-					})
-					let items2 = items[0].children.filter((item)=>{
-						return item.purview_name == "设备列表"
-					})
-					this.quanxian.namealter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称"
-					})
-					this.quanxian.cityalter = items2[0].children.some((item)=>{
-						return item.purview_name == "添加位置"
-					})
-					this.quanxian.infoalter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
-					})
-				},
-			})
-		},
-		onShow(){
-			uni.getStorage({
-				key: "location",
-				success: (res) => {
-					// console.log(res);
-					this.moddata.lat = res.data[1]
-					this.moddata.lng = res.data[0]
-					this.selectaddress(this.moddata.lng, this.moddata.lat)
-				}
-			})
-			
-		}
-	}
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #FAFAFA;
-	}
-	.mod {
-		width: 100%;
-		position: absolute;
-		top: 44px;
-		.mod_name,
-		.mod_id,
-		.mod_user,
-		.mod_time,
-		.mod_city {
-			width: 90%;
-			margin: 30rpx auto;
-			display: flex;
-			justify-content: space-between;
-			background-color: #FFFFFF;
-			padding: 20rpx 10rpx;
-			color: #57C77A;
-			line-height: 50rpx;
-			.namebg{
-				background-color: #FAFAFA;
-			}
-			input {
-				text-align: right;
-				font-size: 28rpx;
-				padding: 10rpx;
-			}
-		}
-	}
-
-	.sub {
-		width: 90%;
-		margin: 30rpx auto;
-		text-align: center;
-		height: 70rpx;
-		line-height: 70rpx;
-		background-color: #57C77A;
-		border-radius: 35rpx;
-		color: #FFFFFF;
-	}
-</style>

+ 0 - 270
pages/equipList/seabox/modification.vue

@@ -1,270 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view class="" style="position: relative;top: 40px;">
-			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" title="修改名称"></uni-nav-bar>
-			</view>
-			<view class="mod">
-				<view class="mod_name">
-					<p><span style="color: #ff0000;" v-if="quanxian.namealter">*</span>设备名称</p>
-					<input type="text" v-model="moddata.device_name" :class="quanxian.namealter?'namebg':''" :disabled="!quanxian.namealter"/>
-				</view>
-				<view class="mod_id">
-					<p>设备ID</p>
-					<input type="text" :value="moddata.imei || moddata.device_id" disabled />
-				</view>
-				<view class="mod_user">
-					<p>适配用户</p>
-					<input type="text" :value="moddata.real_name==''?'无':moddata.real_name" disabled />
-				</view>
-				<view class="mod_city" @click="amendcity">
-					<view style="width: 90%;">
-						<p><span style="color: #ff0000;" v-if="quanxian.cityalter">*</span>设备位置</p>
-						<input type="text" :value="city" disabled />
-					</view>
-					<u-icon name="arrow-right"></u-icon>
-				</view>
-				<view class="mod_time">
-					<p>设备添加时间</p>
-					<input type="text" :value="moddata.addtime|timeFormat()" disabled />
-				</view>
-				<p style="width: 90%;margin: 0 auto;text-align: right;color: #06B535;"><span style="color: #ff0000;">*</span>为可修改</p>
-				<view class="sub" v-if="quanxian.infoalter" @click="btn">
-					提 交
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				moddata: {},
-				city: "",
-				selectcityTF: false,
-				quanxian:{
-					namealter:false,
-					cityalter:false,
-					infoalter:false
-				}
-			}
-		},
-		methods: {
-			async eqlistcity(lat, lng) { //修改设备定位
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.revise_device',
-					data: {
-						device_id: this.moddata.imei,
-						lat: lat,
-						lng: lng
-					}
-				})
-				console.log(res)
-				if (res==false) {
-					uni.showToast({
-						title: '修改地址失败!',
-						icon: "none"
-					});
-				}else{
-					uni.showToast({
-						title: '修改地址成功!',
-						icon: "none"
-					});
-				}
-			},
-			async eqlistname(lat, lng) { //修改设备名称
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.revise_device',
-					data: {
-						lat: lat,
-						lng: lng,
-						device_id: this.moddata.imei,
-						device_name: this.moddata.device_name,
-					}
-				})
-				console.log(res)
-				if (res==false) {
-					uni.showToast({
-						title: '修改名称失败!',
-						icon: "none"
-					});
-				}else{
-					uni.showToast({
-						title: '修改名称成功!',
-						icon: "none"
-					});
-					uni.removeStorage({
-						key: "location"
-					})
-					this.clickLeft()
-				}
-			},
-			async eqlistuser(id, imei) { //获取设备信息
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: id,
-						device_id: imei,
-					}
-				})
-				this.moddata = res.data[0] || {};
-				console.log(res,'moddatamoddata')
-				this.selectaddress(this.moddata.lng, this.moddata.lat)
-			},
-			async xyeqlistuser(imei) { //获取设备信息
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
-					data: {
-						device_id: imei,
-					}
-				})
-				console.log(res)
-				this.moddata = res.data[0] || {};
-				this.selectaddress(this.moddata.lng, this.moddata.lat)
-			},
-			btn() {
-				// this.eqlistcity(this.moddata.lat, this.moddata.lng)
-				this.eqlistname(this.moddata.lat, this.moddata.lng)
-			},
-			clickLeft() {
-				uni.navigateBack({
-					delta:1
-				})
-			},
-			amendcity() { //修改设备地址
-				if(this.quanxian.cityalter){
-					this.selectcityTF = true
-					uni.navigateTo({
-						url: "../../fourBase/city?lat=" + this.moddata.lat + "&lng=" + this.moddata.lng + "&city=" + this.moddata.city
-					})
-				}else{
-					uni.showToast({
-						title: "您暂无权限进行此操作,如有需要,请联系管理员",
-						icon: "none"
-					})
-				}
-			},
-			selectaddress(lng, lat) { //获取分布位置
-				uni.request({
-					type: "GET",
-					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," + lat +
-						"&key=27273b81090f78759e4057f94474516f&radius=1000&extensions=all",
-					dataType: "json",
-					complete: ress => {
-						// console.log(ress)
-						if (ress.data.regeocode.formatted_address.length == 0) {
-							this.city = "--"
-						} else {
-							this.city = ress.data.regeocode.formatted_address
-						}
-					}
-				});
-			},
-		},
-		onLoad(option) {
-			console.log(option)
-			if(option.id==10){
-				this.xyeqlistuser(JSON.parse(option.data).device_id)
-			}else{
-				this.eqlistuser(option.id, JSON.parse(option.data).imei)
-			}
-			uni.getStorage({
-				key:"jurisdiction",
-				success:(res)=>{
-					console.log(JSON.parse(res.data))
-					let items = JSON.parse(res.data).filter((item)=>{
-						return item.purview_name == "设备管理"
-					})
-					let items2 = items[0].children.filter((item)=>{
-						return item.purview_name == "设备列表"
-					})
-					this.quanxian.namealter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称"
-					})
-					this.quanxian.cityalter = items2[0].children.some((item)=>{
-						return item.purview_name == "添加位置"
-					})
-					this.quanxian.infoalter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
-					})
-				},
-			})
-		},
-		onShow(){
-			uni.getStorage({
-				key: "location",
-				success: (res) => {
-					// console.log(res);
-					this.moddata.lat = res.data[1]
-					this.moddata.lng = res.data[0]
-					this.selectaddress(this.moddata.lng, this.moddata.lat)
-				}
-			})
-			
-		}
-	}
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #FAFAFA;
-	}
-	.mod {
-		width: 100%;
-		position: absolute;
-		top: 44px;
-		.mod_name,
-		.mod_id,
-		.mod_user,
-		.mod_time {
-			width: 90%;
-			margin: 30rpx auto;
-			display: flex;
-			justify-content: space-between;
-			background-color: #FFFFFF;
-			padding: 20rpx 10rpx;
-			color: #57C77A;
-			line-height: 50rpx;
-			.namebg{
-				background-color: #FAFAFA;
-			}
-			input {
-				text-align: right;
-				font-size: 28rpx;
-				padding: 10rpx;
-			}
-		}
-		.mod_city{
-			width: 90%;
-			margin: 30rpx auto;
-			background-color: #FFFFFF;
-			padding: 20rpx 10rpx;
-			color: #57C77A;
-			line-height: 50rpx;
-			display: flex;
-			justify-content: space-between;
-			.namebg{
-				background-color: #FAFAFA;
-			}
-			input {
-				width: 90%;
-				font-size: 28rpx;
-				padding: 10rpx;
-			}
-		}
-	}
-
-	.sub {
-		width: 90%;
-		margin: 30rpx auto;
-		text-align: center;
-		height: 70rpx;
-		line-height: 70rpx;
-		background-color: #57C77A;
-		border-radius: 35rpx;
-		color: #FFFFFF;
-	}
-</style>

+ 0 - 350
pages/equipList/seabox/search.vue

@@ -1,350 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view style="position: fixed;z-index: 100;background-color: #FFFFFF;height: 80px;top: 40px;">
-			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="设备搜索"></uni-nav-bar>
-			<view class="search_top_input">
-				<input type="text" value="" placeholder="请输入设备ID" v-model="imports" />
-				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-			</view>
-		</view>
-		<view class="list">
-			<view class="list_item" v-for="(item,index) in eqlistdata" :key="index" @click="historys(item)">
-				<view class="list_item_top">
-					<p class="p1">
-						<image :src="$imageURL+'/bigdata_app'+ imgpath[0].path" mode=""></image>
-						{{item.device_name==''?"--":item.device_name}}
-					</p>
-					<p :class="[item.is_online?'p2':'p_out']">{{item.is_online?"在线":"离线"}}</p>
-				</view>
-				<view class="list_item_text">
-					<p>设备ID:{{item.imei}}</p>
-					<p>适配用户:{{item.device_user==''?"无":item.device_user}}</p>
-					<p>添加设备时间:{{item.addtime|timeFormat()}}</p>
-					<p>添加设备时间:{{item.uptime|timeFormat()}}</p>
-					<p>设备已运行:{{item.days}}天</p>
-				</view>
-				<view class="list_item_btn" v-if="infoalter" @click.stop="modification(item)">
-					修改名称
-				</view>
-			</view>
-			<view class="none" v-if="eqlistdatatf">
-				暂无数据
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports: '',
-				eqlistdata: [],
-				images: [{
-						name: "杀虫灯",
-						path: "/image/fourMoodBase/3.png", //
-						id: 2
-					},
-					{
-						name: "测报灯",
-						path: "/image/fourMoodBase/1.png",
-						id: 3
-					}, {
-						name: "性诱测报",
-						path: "/image/fourMoodBase/6.png",
-						id: 4
-					}, {
-						name: "环境监测",
-						path: "/image/fourMoodBase/5.png",
-						id: 5
-					}, {
-						name: "监控设备",
-						path: "/image/fourMoodBase/2.png",
-						id: 6
-					}, {
-						name: "孢子仪",
-						path: "/image/fourMoodBase/4.png",
-						id: 7
-					},
-					{
-						name: "性诱2.0",
-						path: "/image/fourMoodBase/10.png",
-						id: 10
-					}
-				],
-				eqlistdatatf: false, //暂无数据
-				indexs: 2, //设备id
-				page: 1,
-				size: 10,
-				infoalter:false,
-				imgpath:[]
-			}
-		},
-		methods: {
-			async eqlist() { //设备列表
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: this.indexs,
-						device_id: this.imports,
-						page: this.page,
-						page_size: this.size,
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				var newtime = +new Date()/1000
-				for(var i=0;i<this.eqlistdata.length;i++){
-					var days = (newtime-this.eqlistdata[i].uptime)/60/60/24
-					this.eqlistdata[i].days = Math.round(days)
-				} 
-				console.log(this.eqlistdata)
-				if (this.eqlistdata.length == 0) {
-					this.eqlistdatatf = true
-				} else {
-					this.eqlistdatatf = false
-				}
-			},
-			clickLeft() { //返回
-				uni.switchTab({
-					url: "./index"
-				})
-			},
-			search() { //搜索
-				// this.eqlistdata = []
-				// this.page = 1
-				// this.eqlist()
-				// console.log(1)
-				this.system(this.imports)
-			},
-			system(str){
-				var arr = str.split(",")
-				console.log(arr)
-			},
-			searchinput() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.page = 1
-					this.eqlist()
-				}, 1000)()
-			},
-			modification(item) {
-				uni.navigateTo({
-					url: "./modification?data=" + JSON.stringify(item) + "&id=" + (this.indexs)
-				})
-			},
-			historys(item) {
-				switch (Number(this.indexs)) {
-					case 2:
-						uni.navigateTo({
-							url: "../prevention/equipmentdetails?shebei=" + JSON.stringify(item)
-						})
-						break;
-					case 5:
-						console.log(item)
-						var obj = {}
-						obj.d_id = item.d_id
-						obj.equip_id = item.imei
-						obj.is_online = item.is_online
-						obj.lat = item.lat
-						obj.lng = item.lng
-						obj.equip_name = item.device_name
-						obj.uptime = item.addtime
-						uni.navigateTo({
-							url: "../environment/equipment?shebei=" + JSON.stringify(obj)
-						})
-						break;
-					case 6:
-						uni.navigateTo({
-							url: "/pages/webview/webview?device_id=" + item.imei + "&accessToken=" + this.accessToken
-						})
-						break;
-          case 44:
-            uni.navigateTo({
-              url: "/pages/webview?device_id=" + item.device_id + "&accessToken=" + uni
-                .getStorageSync('session_key') +
-                '&type=dgp'
-            })
-          break;
-					default:
-						item.type = this.indexs
-						uni.navigateTo({
-							url: "../cb/equip-detail/equip-detail?info=" + JSON.stringify(item)
-						})
-						break;
-				}
-			}
-		},
-		onLoad(option) {
-			this.indexs = option.id
-			this.imgpath = this.images.filter((item)=>{
-				return item.id == option.id
-			})
-			console.log(this.imgpath)
-			uni.getStorage({
-				key:"jurisdiction",
-				success:(res)=>{
-					console.log(JSON.parse(res.data))
-					let items = JSON.parse(res.data).filter((item)=>{
-						return item.purview_name == "设备管理"
-					})
-					let items2 = items[0].children.filter((item)=>{
-						return item.purview_name == "设备列表"
-					})
-					this.infoalter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
-					})
-				},
-			})
-		},
-		onReachBottom() {
-			this.page++
-			this.eqlist()
-		},
-		onBackPress(options) {
-			if (options.from === 'navigateBack') {
-				return false;
-			}
-			this.clickLeft();
-			return true;
-		},
-	}
-</script>
-<style lang="scss">
-	.search_top_input {
-		width: 90%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 100rpx;
-		right: 5%;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-		input {
-			width: 80%;
-			// text-indent: 1rem;
-			font-size: 26rpx;
-			padding-left: 20px;
-		}
-		.icon{
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.search_bot_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18px;
-		right: 18rpx;
-		box-sizing: border-box;
-		padding-top: 8rpx;
-
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.list {
-		width: 100%;
-		background-color: #FDFDFD;
-		position: absolute;
-		top: 120px;
-
-		.list_item {
-			width: 90%;
-			margin: 20rpx auto;
-			padding: 10rpx 20rpx;
-			position: relative;
-			background-color: #FFFFFF;
-			box-sizing: border-box;
-			box-shadow: 0 0 10rpx #bcb9ca;
-
-			.list_item_top {
-				display: flex;
-				justify-content: space-between;
-
-				.p1 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-
-					image {
-						width: 40rpx;
-						height: 40rpx;
-						vertical-align: text-top;
-						margin-right: 20rpx;
-					}
-				}
-
-				.p2 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: #42b983;
-				}
-
-				.p_out {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: red;
-				}
-			}
-
-			.list_item_text {
-				margin-top: 20rpx;
-
-				p {
-					font-size: 24rpx;
-					color: #636363;
-					margin-top: 10rpx;
-				}
-
-				p:first-child {
-					font-size: 28rpx;
-					font-weight: 700;
-				}
-			}
-
-			.list_item_btn {
-				width: 126rpx;
-				color: #42b983;
-				height: 40rpx;
-				text-align: center;
-				border: 1rpx solid #42b983;
-				border-radius: 25rpx;
-				font-size: 24rpx;
-				line-height: 35rpx;
-				position: absolute;
-				top: 136rpx;
-				right: 20rpx;
-			}
-		}
-
-		.none {
-			width: 100%;
-			height: 100rpx;
-			line-height: 100rpx;
-			font-size: 32rpx;
-			text-align: center;
-		}
-	}
-</style>

+ 0 - 514
pages/equipList/search.vue

@@ -1,514 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view
-			style="position: fixed;top: 44px; z-index: 100;height: 80rpx;background-color: #FFFFFF;padding-top: 10px;">
-			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-			<view class="search_bot_input">
-				<input type="text" value="" placeholder="请输入设备ID" v-model="imports" @input="searchinput" />
-				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-			</view>
-		</view>
-		<view class="list">
-			<view class="list_item" v-for="(item,index) in eqlistdata" :key="index" @click="historys(item)">
-				<view class="list_item_top">
-					<p class="p1">
-						<image :src=" 'http://static.yfpyx.com/bigdata_app'+images[indexs-2].path" mode=""></image>
-						{{item.device_name==''?"--":item.device_name}}
-					</p>
-					<p :class="[item.is_online?'p2':'p_out']">{{item.is_online?"在线":"离线"}}</p>
-				</view>
-				<view class="list_item_text">
-					<p>设备ID:{{item.imei}}</p>
-					<p>适配用户:{{item.device_user==''?"无":item.device_user}}</p>
-					<p>添加设备时间:{{item.addtime|timeFormat()}}</p>
-					<p>添加设备时间:{{item.uptime|timeFormat()}}</p>
-					<p>设备已运行:{{item.days}}天</p>
-				</view>
-				<view class="list_item_btn" v-if="infoalter" @click.stop="modification(item)">
-					修改名称
-				</view>
-			</view>
-			<view class="none" v-if="eqlistdatatf">
-				暂无数据
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports: '',
-				eqlistdata: [],
-				images: [{
-						path: "/image/fourMoodBase/scd.png",
-						id: 2
-					},
-					{
-						path: "/image/fourMoodBase/cbd.png",
-						id: 3
-					}, {
-						path: "/image/fourMoodBase/xycb.png",
-						id: 4
-					}, {
-						path: "/image/fourMoodBase/qxz.png",
-						id: 5
-					}, {
-						path: "/image/fourMoodBase/jk.png",
-						id: 6
-					}, {
-						path: "/image/fourMoodBase/bzy.png",
-						id: 7
-					}
-				],
-				eqlistdatatf: false, //暂无数据
-				indexs: 2, //设备id
-				page: 1,
-				size: 10,
-				infoalter: false
-			}
-		},
-		methods: {
-			async eqlist() { //设备列表
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: this.indexs,
-						device_id: this.imports,
-						page: this.page,
-						page_size: this.size,
-					}
-				})
-				var newtime = +new Date() / 1000
-				res.data.forEach(item => {
-					let {
-						uptime,
-						addtime
-					} = item;
-					item.uptime = addtime;
-					item.addtime = uptime;
-					var days = (newtime - item.addtime) / 60 / 60 / 24;
-					item.days = Math.round(days);
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				// for(var i=0;i<this.eqlistdata.length;i++){
-				// 	var days = (newtime-this.eqlistdata[i].uptime)/60/60/24
-				// 	this.eqlistdata[i].days = Math.round(days)
-				// } 
-				console.log(this.eqlistdata)
-				if (this.eqlistdata.length == 0) {
-					this.eqlistdatatf = true
-				} else {
-					this.eqlistdatatf = false
-				}
-			},
-			clickLeft() { //返回
-				uni.switchTab({
-					url: "./index"
-				})
-			},
-			search() { //搜索
-				this.eqlistdata = []
-				this.page = 1
-				this.eqlist()
-			},
-			searchinput() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.page = 1
-					this.eqlist()
-				}, 1000)()
-			},
-			modification(item) {
-				uni.navigateTo({
-					url: "./modification?data=" + JSON.stringify(item) + "&id=" + (this.indexs)
-				})
-			},
-			historys(itemOld) {
-				let item = JSON.parse(JSON.stringify(itemOld))
-				console.log("item", item);
-				switch (this.type_id) {
-					// 水肥新设备
-					case 22:
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						uni.navigateTo({
-							url: "../waterandfernew/details?shebei=" + JSON.stringify(obj),
-						});
-						break
-						// 病虫害可视监测
-					case 14:
-						item.addtime = item.uptime;
-						uni.navigateTo({
-							url: "../cb/sy/detail?detail=" + JSON.stringify(item),
-						});
-						break
-					case 2:
-						item.addtime = item.uptime;
-						uni.navigateTo({
-							url: "../prevention/equipmentdetails?shebei=" + JSON.stringify(item),
-						});
-						break;
-					case 5:
-						console.log(item);
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.equip_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						uni.navigateTo({
-							url: "../environment/equipment?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 6:
-						uni.navigateTo({
-							url: "/pages/webview/webview?device_id=" +
-								item.imei +
-								"&accessToken=" +
-								this.accessToken,
-						});
-						break;
-          case 44:
-            uni.navigateTo({
-              url: "/pages/webview?device_id=" + item.device_id + "&accessToken=" + uni
-                .getStorageSync('session_key') +
-                '&type=dgp'
-            })
-            break;
-					case 3:
-						item.addtime = item.uptime;
-						item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/equip-detail/equip-detail?info=" + JSON.stringify(item),
-						});
-						break;
-					case 4:
-						item.addtime = item.uptime;
-						item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/equip-detail/equip-detail?info=" + JSON.stringify(item),
-						});
-						break;
-					case 7:
-						item.addtime = item.uptime;
-						item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/equip-detail/equip-detail?info=" + JSON.stringify(item),
-						});
-						break;
-					case 8:
-						// item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/thxydetail/thxydetail?imei=" + item.imei
-						});
-						break;
-					case 24:
-						// item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/zjxydetail/thxydetail?imei=" + item.imei
-						});
-						break;
-					case 12:
-						console.log(item);
-						item.addtime = item.uptime;
-						uni.navigateTo({
-							url: "../cb/xctdetail/xctdetail?info=" + JSON.stringify(item),
-						});
-						break;
-					case 13:
-						console.log(item);
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						uni.navigateTo({
-							url: "../waterandfer/datails?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 15:
-						console.log(item);
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						uni.navigateTo({
-							url: "../environment/gsequipment?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 17:
-						break;
-					case 18:
-						var obj = {};
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						uni.navigateTo({
-							url: "../cb/shuifeiL/shuifeiL?detail=" + JSON.stringify(obj),
-						});
-						break;
-					case 11:
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						obj.location = item.address;
-						obj.type = 11;
-						uni.navigateTo({
-							url: "../disease/cmb?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 19:
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						obj.location = item.address;
-						obj.type = 19;
-						uni.navigateTo({
-							url: "../disease/cmb?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 20:
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						obj.location = item.address;
-						obj.type = 20;
-						uni.navigateTo({
-							url: "../disease/cmb?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 21:
-						var obj = {};
-						obj.d_id = item.d_id;
-						obj.device_id = item.imei;
-						obj.is_online = item.is_online;
-						obj.lat = item.lat;
-						obj.lng = item.lng;
-						obj.equip_name = item.device_name;
-						obj.uptime = item.uptime;
-						obj.location = item.address;
-						obj.type = 20;
-						uni.navigateTo({
-							url: "../disease/cmb?shebei=" + JSON.stringify(obj),
-						});
-						break;
-					case 25:
-						item.addtime = item.uptime;
-						uni.navigateTo({
-							url: "../cb/xylps/detail/detail?detail=" + JSON.stringify(item),
-						});
-						break;
-					default:
-						item.addtime = item.uptime;
-						item.type = this.type_id;
-						uni.navigateTo({
-							url: "../cb/xy2.0/particulars?info=" + JSON.stringify(item),
-						});
-						break;
-				}
-			},
-		},
-		onLoad(option) {
-			this.indexs = option.id
-			console.log(this.indexs)
-			uni.getStorage({
-				key: "jurisdiction",
-				success: (res) => {
-					console.log(JSON.parse(res.data))
-					let items = JSON.parse(res.data).filter((item) => {
-						return item.purview_name == "设备管理"
-					})
-					let items2 = items[0].children.filter((item) => {
-						return item.purview_name == "分配设备"
-					})
-					this.infoalter = items2[0].children.some((item) => {
-						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
-					})
-				},
-			})
-		},
-		onReachBottom() {
-			this.page++
-			this.eqlist()
-		},
-		onBackPress(options) {
-			if (options.from === 'navigateBack') {
-				return false;
-			}
-			this.clickLeft();
-			return true;
-		},
-	}
-</script>
-<style lang="scss">
-	.search_top_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 18rpx;
-			right: 32rpx;
-		}
-	}
-
-	.search_bot_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18px;
-		right: 18rpx;
-		box-sizing: border-box;
-		padding-top: 8rpx;
-
-		input {
-			width: 85%;
-			// text-indent: 1rem;
-			font-size: 26rpx;
-			padding-left: 20px;
-		}
-
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.list {
-		width: 100%;
-		background-color: #FDFDFD;
-		position: absolute;
-		top: 100px;
-
-		.list_item {
-			width: 95%;
-			margin: 20rpx auto;
-			padding: 10rpx 20rpx;
-			position: relative;
-			background-color: #FFFFFF;
-			box-sizing: border-box;
-			box-shadow: 0 0 10rpx #bcb9ca;
-
-			.list_item_top {
-				display: flex;
-				justify-content: space-between;
-
-				.p1 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-
-					image {
-						width: 40rpx;
-						height: 40rpx;
-						vertical-align: text-top;
-						margin-right: 20rpx;
-					}
-				}
-
-				.p2 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: #42b983;
-				}
-
-				.p_out {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: red;
-				}
-			}
-
-			.list_item_text {
-				margin-top: 20rpx;
-
-				p {
-					font-size: 24rpx;
-					color: #636363;
-					margin-top: 10rpx;
-				}
-
-				p:first-child {
-					font-size: 28rpx;
-					font-weight: 700;
-				}
-			}
-
-			.list_item_btn {
-				width: 126rpx;
-				color: #42b983;
-				height: 40rpx;
-				text-align: center;
-				border: 1rpx solid #42b983;
-				border-radius: 25rpx;
-				font-size: 24rpx;
-				line-height: 35rpx;
-				position: absolute;
-				top: 136rpx;
-				right: 20rpx;
-			}
-		}
-
-		.none {
-			width: 100%;
-			height: 100rpx;
-			line-height: 100rpx;
-			font-size: 32rpx;
-			text-align: center;
-		}
-	}
-</style>

+ 21 - 2
pages/equipList2/index.vue

@@ -359,8 +359,21 @@
 						}
 						break;
 					case 38:
+						// uni.navigateTo({
+						// 	url: `../deviceDetails/weatherStation1/index?devBid=${item.id}&devName=${item.name}&devStatus=${item.status}&address=${item.address}&uptime=${item.uptime}&d_id=${item.d_id}&deviceType=46`,
+						// });
+						// break;
+						
+						var obj = {};
+						obj.d_id = item.d_id;
+						obj.equip_id = item.id;
+						obj.is_online = item.status;
+						obj.lat = item.lat;
+						obj.lng = item.lng;
+						obj.equip_name = item.name;
+						obj.uptime = item.uptime;
 						uni.navigateTo({
-							url: `../deviceDetails/weatherStation1/index?devBid=${item.id}&devName=${item.name}&devStatus=${item.status}&address=${item.address}&uptime=${item.uptime}&d_id=${item.d_id}&deviceType=46`,
+							url: '../environment/equipment-new?shebei=' + JSON.stringify(obj),
 						});
 						break;
 					case 5:
@@ -421,9 +434,15 @@
 					case 35:
 						item.addtime = item.uptime;
 						item.type = item.type_id;
+						let cmd = ''
+						if(type_id == 34){
+							cmd = 'sy1'
+						}else if(type_id == 33){
+							cmd = 'sy2'
+						}
 						uni.navigateTo({
 							url: '../sy/detail?info=' +
-								JSON.stringify(item),
+								JSON.stringify(item) + '&cmd=' + cmd,
 						});
 						break;
 					case 7:

+ 1 - 1
pages/scd/detail.vue

@@ -209,7 +209,7 @@ export default {
 		modification() {
       uni.navigateTo({
         url:
-          '/pages/equipList/seabox/modification?data=' +
+          '/pages/equipList2/seabox/modification?data=' +
           JSON.stringify(this.deviceInfo) +
           '&id=' +
           this.deviceInfo.type,

+ 1 - 1
pages/sy/components/deviceData.vue

@@ -85,7 +85,7 @@
             <text class="data-label">控制模式</text>
           </view>
           <view class="data-item">
-            <text class="data-value">{{ deviceStatic.photo_fre }}/天</text>
+            <text class="data-value">{{ deviceStatic.photo_fre }}min/天</text>
             <text class="data-label">拍照上传频率</text>
           </view>
           <view class="data-item">

+ 5 - 1
pages/sy/components/photoImage.vue

@@ -63,6 +63,10 @@ export default {
       type: String | Number,
       default: ''
     },
+    cmd:{
+      type: String,
+      default: ''
+    },
   },
   data() {
     return {
@@ -96,7 +100,7 @@ export default {
     },
     handleClick(item) {
       uni.navigateTo({
-        url: '/pages/sy/devicePhoto?device_id=' + item?.device_id + '&addtime=' + item?.addtime + '&img_id=' + item?.ids + '&id=' + this.deviceInfo.id + '&currentYear=' + this.currentYear+'&device_type_id='+this.device_type_id+'&cmd=sy1'
+        url: '/pages/sy/devicePhoto?device_id=' + item?.device_id + '&addtime=' + item?.addtime + '&img_id=' + item?.ids + '&id=' + this.deviceInfo.id + '&currentYear=' + this.currentYear+'&device_type_id='+this.device_type_id+'&cmd='+this.cmd
       })
     }
   },

+ 3 - 0
pages/sy/detail.vue

@@ -96,6 +96,7 @@
             :images="imageList"
             :pestList="pestList"
             :device_type_id="deviceInfo.type_id"
+            :cmd="cmd"
             :disableShow="disableShow"
             @changeTab="changeTab"
             :currentYear="currentYear"
@@ -183,11 +184,13 @@ export default {
       polylineList:[],
       isShowPhoto:false,
       deviceHistoryList:[],
+      cmd:'',
       deviceStatic:{}
     }
   },
   onLoad(options){
     this.deviceInfo = JSON.parse(options.info);
+    this.cmd = options.cmd;
     const newVal = this.deviceInfo;
     if (newVal.device_model == '11'){
       this.isShowPhoto = true

+ 130 - 37
pages/sy/devicePhoto.vue

@@ -39,40 +39,28 @@
           scale="true"
           scale-min="1"
           scale-max="5"
+          :style="{ height: containerHeight }"
         >
           <view class="image-container">
-            <!-- 原图 -->
             <image
-              :src="currentImg.addr"
+              :src="canvasImagePath || currentImg.addr"
               class="main-photo-image"
               mode="widthFix"
               @load="onImageLoad"
             />
-            <!-- 虫子标记层 -->
-            <view class="bug-markers" v-if="bugMarkers.length > 0">
-              <view
-                v-for="(marker, index) in bugMarkers"
-                :key="index"
-                class="bug-marker"
-                :style="{
-                  left: marker.x + '%',
-                  top: marker.y + '%',
-                  width: marker.width + '%',
-                  height: marker.height + '%',
-                  borderColor: marker.color
-                }"
-              >
-                <view class="bug-label" :style="{ color: marker.color }">
-                  {{ getPestName(marker.id) }}
-                </view>
-              </view>
-            </view>
           </view>
         </movable-view>
       </movable-area>
       <view class="photo-timestamp">{{ formatDate(currentImg.addtime) }}</view>
     </view>
 
+    <!-- 隐藏画布,用于绘制标注图 -->
+    <canvas
+      canvas-id="annotatedCanvas"
+      :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }"
+      style="position: fixed; left: -9999px; top: -9999px;"
+    ></canvas>
+
     <!-- 缩略图预览 -->
     <view class="thumbnail-preview">
       <view  class="thumbnail-scroll">
@@ -179,6 +167,9 @@ export default {
       imageWidth: 0,
       imageHeight: 0,
       imgOld_id:'',
+      canvasImagePath: '',
+      canvasWidth: 375,
+      canvasHeight: 300,
       containerHeight: '300px',
       device_type_id:'',
       cmd:'sy',
@@ -194,7 +185,6 @@ export default {
     this.addtime = addtime;
     this.device_type_id = device_type_id;
     this.time_begin = this.addtime;
-    console.log(this.time_begin,'thistime_begin')
     this.defaultDate = this.addtime;
     this.time_end = this.addtime;
     this.selectorRange = [];
@@ -371,8 +361,37 @@ export default {
         },
       });
       this.currentImg = res;
+      this.canvasImagePath = '';
+
+      // 获取图片信息和本地路径
+      let localImagePath = '';
+      try {
+        const imageInfo = await new Promise((resolve, reject) => {
+          uni.getImageInfo({
+            src: res.addr,
+            success: resolve,
+            fail: reject
+          });
+        });
+        this.imageWidth = imageInfo.width;
+        this.imageHeight = imageInfo.height;
+        localImagePath = imageInfo.path;
+
+        // 计算容器高度
+        const systemInfo = uni.getSystemInfoSync();
+        const screenWidth = systemInfo.windowWidth;
+        const containerWidth = screenWidth - 24;
+        const displayHeight = (containerWidth / this.imageWidth) * this.imageHeight;
+        this.containerHeight = displayHeight + 'px';
+      } catch(e) {
+        console.error('获取图片信息失败:', e);
+        this.imageWidth = 1000;
+        this.imageHeight = 1000;
+      }
+
       // 处理label参数生成bugMarkers
       this.processBugMarkers();
+
       const pest_list = res.pest_list
       const pestArr = new Map()
       const pesAlltList = []
@@ -407,23 +426,23 @@ export default {
       if (this.currentImg.is_mark != 0) {
         this.processBugMarkers();
       }
+
+      // 绘制标注图片(异步,不阻塞)
+      if (localImagePath) {
+        this.drawAnnotatedImage(localImagePath);
+      }
+
       this.pestList = pestList
     },
     onImageLoad(e) {
-      this.imageWidth = e.detail.width;
-      this.imageHeight = e.detail.height;
-
-      // 计算容器显示高度(根据屏幕宽度和图片宽高比)
-      const systemInfo = uni.getSystemInfoSync();
-      const screenWidth = systemInfo.windowWidth;
-      const containerWidth = screenWidth - 24; // 减去左右margin (24rpx ≈ 12px)
-      const displayHeight = (containerWidth / this.imageWidth) * this.imageHeight;
-
-      this.containerHeight = displayHeight + 'px';
-      console.log('图片尺寸:', this.imageWidth, this.imageHeight, '容器高度:', this.containerHeight);
-
-      // 图片加载完成后处理bugMarkers
-      this.processBugMarkers();
+      // 仅在容器高度未计算时更新
+      if (!this.containerHeight || this.containerHeight === '300px') {
+        const systemInfo = uni.getSystemInfoSync();
+        const screenWidth = systemInfo.windowWidth;
+        const containerWidth = screenWidth - 24;
+        const displayHeight = (containerWidth / e.detail.width) * e.detail.height;
+        this.containerHeight = displayHeight + 'px';
+      }
     },
     
     processBugMarkers() {
@@ -492,7 +511,7 @@ export default {
         // this.pestList = [];
         const markers = [];
         // 根据原图宽度计算缩放比例
-        let scaleRatio = 3.1;
+        let scaleRatio = 3.07;
         // if (this.imageWidth >= 5000) {
         //   scaleRatio = 4;
         // } else if (this.imageWidth >= 4000) {
@@ -542,6 +561,80 @@ export default {
         this.bugMarkers = markers;
       }
     },
+    async drawAnnotatedImage(localImagePath) {
+      if (!localImagePath || !this.bugMarkers.length) {
+        return;
+      }
+
+      try {
+        // 计算画布尺寸(匹配显示区域)
+        const sysInfo = uni.getSystemInfoSync();
+        const displayWidth = sysInfo.windowWidth - 24;
+        const displayHeight = (displayWidth / this.imageWidth) * this.imageHeight;
+
+        this.canvasWidth = Math.round(displayWidth);
+        this.canvasHeight = Math.round(displayHeight);
+
+        // 等待画布尺寸更新
+        await this.$nextTick();
+
+        const ctx = uni.createCanvasContext('annotatedCanvas', this);
+
+        // 绘制原始图片
+        ctx.drawImage(localImagePath, 0, 0, this.canvasWidth, this.canvasHeight);
+
+        // 绘制虫子标记
+        this.bugMarkers.forEach(marker => {
+          const x = (marker.x / 100) * this.canvasWidth;
+          const y = (marker.y / 100) * this.canvasHeight;
+          const w = (marker.width / 100) * this.canvasWidth;
+          const h = (marker.height / 100) * this.canvasHeight;
+
+          // 绘制矩形框
+          ctx.setStrokeStyle(marker.color);
+          ctx.setLineWidth(1);
+          ctx.strokeRect(x, y, w, h);
+
+          // 绘制标签(上方优先,超出画布上边界时放到框下方)
+          const pestName = this.getPestName(marker.id);
+          const fontSize = 12;
+          ctx.setFontSize(fontSize);
+          ctx.setFillStyle(marker.color);
+          if (y - fontSize - 4 < 0) {
+            ctx.fillText(pestName, x + 4, y + h + fontSize + 4);
+          } else {
+            ctx.fillText(pestName, x + 4, y - 4);
+          }
+        });
+
+        // 提交绘制
+        await new Promise((resolve) => {
+          ctx.draw(false, () => {
+            setTimeout(resolve, 300);
+          });
+        });
+
+        // 转为临时图片
+        const tempFile = await new Promise((resolve, reject) => {
+          uni.canvasToTempFilePath({
+            canvasId: 'annotatedCanvas',
+            x: 0,
+            y: 0,
+            width: this.canvasWidth,
+            height: this.canvasHeight,
+            destWidth: this.canvasWidth * 2,
+            destHeight: this.canvasHeight * 2,
+            success: resolve,
+            fail: reject
+          }, this);
+        });
+
+        this.canvasImagePath = tempFile.tempFilePath;
+      } catch (error) {
+        console.error('绘制标注图片失败:', error);
+        this.canvasImagePath = '';
+      }
+    },
     handleBack() {
       uni.navigateBack({
         delta: 1