cyy
2025-09-28 fb026e6052b4d843d327312db398cf791ac57ab9
pages/index/index.vue
@@ -20,63 +20,63 @@
      <swiper v-if="pageList.length > 0" circular indicator-dots class="swiper" :current="currentPage"
         @change="changeSwiper">
         <swiper-item v-for="(page,index) in pageList" class="swiper-item">
            <view class="vehicle-header">
               <view class="link-view">
                  <view v-if="page.link_status">
                     <!-- <image class="img-battery-charging" src="/images/bx_battery3.svg" alt="SVG 图片" /> -->
                     <image class="img-battery-charging" src="/images/bx_battery2.svg" alt="SVG 图片" />
                     <image class="img-battery-soc" :style="{width:(page.soc*0.4)+'rpx'}"
                        src="/images/bx_battery4.svg" alt="SVG 图片" />
               <view class="vehicle-header">
                  <view class="link-view">
                     <view v-if="page.link_status">
                        <!-- <image class="img-battery-charging" src="/images/bx_battery3.svg" alt="SVG 图片" /> -->
                        <image class="img-battery-charging" src="/images/bx_battery2.svg" alt="SVG 图片" />
                        <image class="img-battery-soc" :style="{width:(page.soc*0.4)+'rpx'}"
                           src="/images/bx_battery4.svg" alt="SVG 图片" />
                     </view>
                     <view v-else>
                        <image class="img-battery" src="/images/bx_battery1.svg" alt="SVG 图片" />
                     </view>
                     <template v-if="page.link_status">
                        <view class="soc-text">{{page.soc}}%</view>
                        <view class="status-text">{{getAgvStateText(page)}}</view>
                     </template>
                     <view v-else class="gray-text">已离线</view>
                  </view>
               </view>
               <image class="vehicle-img " :class="page.link_status ?'':'gray-image'" mode="aspectFit"
                  src="/images/che.png" alt="图片" />
               <view v-if="page.link_status" class="img-button-group">
                  <view type="primary" plain="true" class="img-text-button" @click="clickToMap(index,page)">
                     <a-button class="img-button" color='primary'>
                        <text class="ico map" />
                     </a-button>
                     <text>场景构建</text>
                  </view>
                  <view v-else>
                     <image class="img-battery" src="/images/bx_battery1.svg" alt="SVG 图片" />
                  <view type="primary" class="img-text-button" @click="clickToTask(page)">
                     <a-button class="img-button" color='primary'>
                        <text class="ico task-list" />
                     </a-button>
                     <text>任务记录</text>
                  </view>
                  <template v-if="page.link_status">
                     <view class="soc-text">{{page.soc}}%</view>
                     <view class="status-text">{{getAgvStateText(page)}}</view>
                  </template>
                  <view v-else class="gray-text">已离线</view>
               </view>
            </view>
            <image class="vehicle-img " :class="page.link_status ?'':'gray-image'" mode="aspectFit"
               src="/images/che.png" alt="图片" />
            <view v-if="page.link_status" class="img-button-group">
               <view type="primary" plain="true" class="img-text-button" @click="clickToMap(index,page)">
                  <a-button class="img-button" color='primary'>
                     <text class="ico map" />
                  </a-button>
                  <text>场景构建</text>
               <view v-else class="unlink-content">
                  <view class="content2" v-if="page.conntecting">
                     <view class="auto-circle"></view>
                     <view class="text">连接中...</view>
                  </view>
                  <view class="content2" v-else>
                     <view class="text"> 车辆已离线,请重新连接</view>
                     <a-button type="primary" class="button" @click="clickRelink">重新连接
                     </a-button>
                  </view>
               </view>
               <view type="primary" class="img-text-button" @click="clickToTask(page)">
                  <a-button class="img-button" color='primary'>
                     <text class="ico task-list" />
                  </a-button>
                  <text>任务记录</text>
               </view>
            </view>
            <view v-else class="unlink-content">
               <view class="content2" v-if="page.conntecting">
                  <view class="auto-circle"></view>
                  <view class="text">连接中...</view>
               </view>
               <view class="content2" v-else>
                  <view class="text"> 车辆已离线,请重新连接</view>
                  <a-button type="primary" class="button" @click="clickRelink">重新连接
                  </a-button>
               </view>
            </view>
         </swiper-item>
         <swiper-item class="swiper-item">
            <swiper-item class="swiper-item">
            <image class="title-img gray-image" src="/images/image 15.png" alt="图片" />
            <image class="title-img gray-image" src="/images/image_15.png" alt="图片" />
            <view class="button-group">
               <a-button type="primary" class="button" @click="clickScanCode">扫描添加设备</a-button>
               <a-button type="ghost" class="button" @click="clickManualAdd">手动添加设备</a-button>
@@ -85,7 +85,7 @@
      </swiper>
      <view v-else class="no-page items-center">
         <view class="content ">
            <image class="title-img gray-image" src="/images/image 15.png" alt="图片" />
            <image class="title-img gray-image" src="/images/image_15.png" alt="图片" />
            <view class="button-group">
               <a-button type="primary" class="button" @click="clickScanCode">扫描添加设备</a-button>
               <a-button type="ghost" class="button" @click="clickManualAdd">手动添加设备</a-button>
@@ -204,8 +204,13 @@
         console.log("hide")
      },
      computed: {
         tabList() {
            return [...this.pageList, {
               ip: ""
            }]
         }
      },
      methods: {
         setData(obj) {
            let that = this;
@@ -261,8 +266,10 @@
                        break
                     }
                  }
                  this.pageList = [...list]
                  this.setData({
                     pageList: list
                  })
                  //this.pageList = [...list]
               } else {
                  this.setData({
                     currentPage: curIndex
@@ -302,11 +309,14 @@
                     page.soc = 0
                     page.link_status = false
                  }
                  this.pageList = [...list]
               }
               this.pageList = [...list]
               // this.pageList = [...list]
            } catch (ex) {
               showError(ex)
               // showError(ex)
               showToast(ex)
            }
         },
@@ -378,6 +388,7 @@
               this.navigationBarTitle = "添加设备"
            else
               this.navigationBarTitle = this.pageList[this.currentPage].name
            this.loadVehicleBattery()
         },
         async clickRelink() {
            try {
@@ -484,10 +495,13 @@
                        pageList: list
                     })
                     session.setValue("vehicles", list)
                     if (list.length > 0)
                        that.navigationBarTitle = that.pageList[that.currentPage].name
                     else
                        that.navigationBarTitle = "添加设备"
                     // if (list.length > 0)
                     //    that.navigationBarTitle = that.pageList[that.currentPage].name
                     // else
                     //    that.navigationBarTitle = "添加设备"
                     uni.reLaunch({
                        url:"/pages/indde/index"
                     })
                  },
                  update_vehicle: function(data) {
                     console.log("update_vehicle", data)
@@ -504,23 +518,26 @@
         },
         async clickToMap(index, page) {
            try {
console.log("clicktomap")
               const _this = this
               // const res = await getAllScene(page.ip) || []
               // const list = res?.sceneList || []
               // if (list.length === 0) {
               //    uni.navigateTo({
               //       url: `/pages/scene/index?ip=${page.ip}`,
               //       events: {
               //          // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
               //          finish: function() {
               //             _this.clickToMap(index, page)
               //          },
               //       }
               //    })
               //    return
               // }
               // getApp().globalData.sceneList = list
               const res = await getAllScene(page.ip) || []
               const list = res?.sceneList || []
               if (list.length === 0) {
                  uni.navigateTo({
                     url: `/pages/map/scene?ip=${page.ip}`,
                     events: {
                        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                        create_finish: function() {
                           setTimeout(() => {
                              _this.clickToMap(index, page)
                           }, 500);
                        },
                     }
                  })
                  return
               }
               //   getApp().globalData.sceneList = list
               uni.navigateTo({
                  url: `/pages/map/index?ip=${page.ip}`,
@@ -538,7 +555,7 @@
            }
         },
          clickToTask( page) {
         clickToTask(page) {
            uni.navigateTo({
               url: `/pages/task/log-list?ip=${page.ip}`
@@ -599,24 +616,29 @@
               showModal(`确定要删除设备“${ page.name}”吗`, "警告", true, "确定", "取消").then((res) => {
                  if (res) {
                     const list = this.pageList
                     const curPage = this.currentPage
                     let curPage = this.currentPage
                     list.splice(this.currentPage, 1)
                     this.setData({
                        currentPage: curPage,
                        pageList: list
                     })
                     // this.setData({
                     //    currentPage: 0,
                     //    pageList: list
                     // })
                     console.log(curPage, this.currentPage, this.pageList)
                     session.setValue("vehicles", list)
                     if (list.length > 0)
                        this.navigationBarTitle = this.pageList[this.currentPage].name
                     else
                        this.navigationBarTitle = "添加设备"
                     // if (list.length > 0)
                     //    this.navigationBarTitle = this.pageList[this.currentPage].name
                     // else
                     //    this.navigationBarTitle = "添加设备"
                     uni.reLaunch({
                        url: "/pages/index/index"
                     })
                  }
               })
            } else if (item.text == "备份") {
               const page = this.pageList[this.currentPage]
               uni.navigateTo({
                  url: `/pages/index/backup?ip=${page.ip}`
               })
            }