Houjie
2025-06-03 2fda34643bc22e25f6c569415da5f955c81536bf
pages/device/device.vue
@@ -1,13 +1,12 @@
<template>
   <view class="container">
      <cu-custom :bgColor="NavBarColor" :isBack="true" backRouterName="productionTask">
         <block slot="backText">返回</block>
      <cu-custom :bgColor="NavBarColor">
         <block slot="content">设备</block>
      </cu-custom>
      <view class="container">
         <uni-search-bar @confirm="search" :focus="true" v-model="searchValue" @blur="blur" @focus="focus"
            @input="input" @cancel="cancel" @clear="clear">
         <uni-search-bar @confirm="search" :focus="true" v-model="searchValue"  placeholder="请通过名称检索"
             @input="input" @cancel="cancel()"  cancelButton="always">
         </uni-search-bar>
         <mescroll-uni ref="mescrollRef" @init="mescrollInit" :top="top" @down="downCallback" @up="upCallback">
            <!-- 列表信息开始 -->
@@ -15,59 +14,22 @@
               <uni-card margin="10px" spacing="1px" v-for="(item,index) in msgList" :key="index"
                  @click="onClickProductionTask(item)">
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">设备编号:</view>
                     <view
                        class="flex-sub bg-white padding-xs margin-xs   text-bold   text-blue radius text-right">
                        {{item.equipmentCode}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">设备名称:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-bold  radius text-right">
                        {{item.partName}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">设备类型:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs     radius text-right">
                        {{item.partType}}
                        {{item.equipmentName}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">位置::</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-blue   radius text-right">
                        {{item.location}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">制造商::</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-blue   radius text-right">
                        {{item.manufacturer}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">型号:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs     radius text-right">
                        {{item.model}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">负责人:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs     radius text-right">
                        {{item.assignee}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">备注:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs     radius text-right">
                        {{item.remark}}
                     </view>
                  </view>
                  <view class="flex">
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">状态:</view>
                     <view
                        class="flex-sub bg-white padding-xs margin-xs  text-bold text-green   radius text-right"
                        v-if="item.status == '1'">
                        待处理
                     </view>
                     <view
                        class="flex-sub bg-white padding-xs margin-xs  text-bold text-green   radius text-right"
                        v-if="item.status == '3'">
                        已完成
                     <view class="flex-sub text-light bg-white padding-xs margin-xs radius">维修状态:</view>
                     <view class="flex-sub bg-white padding-xs margin-xs   text-orange   radius text-right">
                        {{item.assetStatus_dictText}}
                     </view>
                  </view>
               </uni-card>
@@ -84,6 +46,7 @@
      mixins: [MescrollMixin], // 使用mixin
      data() {
         return {
            scrollLeft: 0,
            searchValue: '',
            formData: {
@@ -93,7 +56,7 @@
            NavBarColor: this.NavBarColor,
            url: {
               stallList: "/mom/partTakeRollingDetail/list"
               stallList: "/eam/equipment/list"
            },
            upOption: {
@@ -114,25 +77,17 @@
               color: '#2979FF',
               borderColor: '#2979FF'
            },
            msgList: [{
               partName: "设备A",
               partType: "服务器",
               location: "机房",
               manufacturer: "灵秀",
               model: "ModelX",
               assignee: "张三",
               remark: "演示",
               status: 1
            }], //列表数据
            msgList: [], //列表数据
            announcement1: [],
            msg1Count: 0,
            msg2Count: 0,
            msg1Title: ""
            msg1Title: "",
            name: ''
         }
      },
      computed: {
         top() {
            return this.CustomBar * 2 + 160
            return this.CustomBar * 2 + 100
         },
         style() {
            var StatusBar = this.StatusBar;
@@ -155,227 +110,99 @@
      },
      created() {},
      methods: {
         cancel() {
            this.mescroll.resetUpScroll()
         },
         search(res) {
            console.log(res)
            this.getSera(res)
            this.name = res
            this.getSera()
         },
         /**
          * @param {Object} item
          * 详情页面
          */
         // onClickProductionTask(item) {
         //    let keyword = this.TabCur
         //    uni.navigateTo({
         //    url: '/pages/mes/om/workSheetOpToolingBorrowDeils/workSheetOpToolingBorrowDeils?keyword=' + keyword
         //    })
         // },
         onClickProductionTask(item) {
            uni.navigateTo({
               url: '/pages/device/deviceDeils/deviceDeils?item=' + encodeURIComponent(JSON.stringify(item))
            })
         },
         upCallback(page) {
            this.$http.get(this.url.stallList, {
               params: {
                  pageNo: page.num,
                  pageSize: page.size,
                  order: 'asc',
                  column: 'createTime',
               },
            }).then(res => {
               this.announcement1 = res.data.result.records
               this.mescroll.endSuccess(this.announcement1.length);
               console.log("url", res)
               //设置列表数据
               if (res.data.success) {
                  console.log("res", res.data)
                  this.msg1Count = res.data.result.total
                  this.msg1Title = "通知(" + res.data.result.total + ")";
                  for (let annItem of this.announcement1) {
                     this.msgList.push(annItem)
                  }
               }
               if (page.num == 1) {
                  this.msgList = []; //如果是第一页需手动制空列表
                  this.msgList = this.msgList.concat(this.announcement1); //追加新数据
               }
         // upCallback(page) {
         //    let keyword = this.TabCur
         //    if (keyword == 0) {
         //       this.$http.get(this.url.stallList, {
         //          params: {
         //             pageNo: page.num,
         //             pageSize: page.size,
         //             order: 'asc',
         //             column: 'createTime',
         //             status: 1
         //          },
         //       }).then(res => {
         //          this.announcement1 = res.data.result.records
         //          this.mescroll.endSuccess(this.announcement1.length);
         //          console.log("url", res)
         //          //设置列表数据
         //          if (res.data.success) {
         //             console.log("res", res.data)
         //             this.msg1Count = res.data.result.total
         //             this.msg1Title = "通知(" + res.data.result.total + ")";
         //             for (let annItem of this.announcement1) {
         //                this.msgList.push(annItem)
         //             }
         //          }
         //          if (page.num == 1) {
         //             this.msgList = []; //如果是第一页需手动制空列表
         //             this.msgList = this.msgList.concat(this.announcement1); //追加新数据
         //          }
         //       }).catch(() => {
         //          //联网失败, 结束加载
         //          this.mescroll.endErr();
         //       })
         //    } else if (keyword == 1) {
         //       this.$http.get(this.url.stallList, {
         //          params: {
         //             pageNo: page.num,
         //             pageSize: page.size,
         //             order: 'desc',
         //             status: 3,
         //             column: 'createTime'
         //          },
         //       }).then(res => {
         //          this.announcement1 = res.data.result.records
         //          this.mescroll.endSuccess(this.announcement1.length);
         //          console.log("url", res)
         //          //设置列表数据
         //          if (res.data.success) {
         //             console.log("res", res.data)
         //             this.msg2Count = res.data.result.total
         //             this.msg1Title = "通知(" + res.data.result.total + ")";
         //             for (let annItem of this.announcement1) {
         //                this.msgList.push(annItem)
         //             }
         //          }
         //          if (page.num == 1) {
         //             this.msgList = []; //如果是第一页需手动制空列表
         //             this.msgList = this.msgList.concat(this.announcement1); //追加新数据
         //          }
         //       }).catch(() => {
         //          //联网失败, 结束加载
         //          this.mescroll.endErr();
         //       })
         //    }
         // },
            }).catch(() => {
               //联网失败, 结束加载
               this.mescroll.endErr();
            })
         },
         /* 检索 */
         getSera(res) {
            this.$refs.popup.close();
            let keyword = this.TabCur
            this.msgList = [];
            if (keyword == 0) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*',
                     status: 'published'
            this.$http.get(this.url.stallList, {
               params: {
                  pageNo: 1,
                  pageSize: 999,
                  order: "desc",
                  column: "createTime",
                  equipmentCode: this.name.value
               }
            }).then(res => {
               //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
               this.announcement1 = res.data.result.records
               this.mescroll.endSuccess(this.announcement1.length);
               console.log("url", res)
               //设置列表数据
               if (res.data.success) {
                  console.log("res", res.data)
                  this.msg1Count = res.data.result.total
                  this.msg1Title = "通知(" + res.data.result.total + ")";
                  for (let annItem of this.announcement1) {
                     this.msgList.push(annItem)
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
               }
               if (page.num == 1) {
                  this.msgList = []; //如果是第一页需手动制空列表
                  this.msgList = this.msgList.concat(this.announcement1); //追加新数据
               }
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg1Count = res.data.result.total
                     this.msg1Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            } else if (keyword == 1) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     status: 'training',
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*'
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg1Count = res.data.result.total
                     this.msg2Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            } else if (keyword == 2) {
               this.$http.get(this.url.stallList, {
                  params: {
                     pageNo: 1,
                     pageSize: 999,
                     order: "desc",
                     column: "createTime",
                     status: 'completed',
                     num: '*' + this.formData.num + '*',
                     partNumNameModel: '*' + this.formData.partNumNameModel + '*'
                  }
               }).then(res => {
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
                  this.announcement1 = res.data.result.records
                  this.mescroll.endSuccess(this.announcement1.length);
                  console.log("url", res)
                  //设置列表数据
                  if (res.data.success) {
                     console.log("res", res.data)
                     this.msg3Count = res.data.result.total
                     this.msg1Title = "通知(" + res.data.result.total + ")";
                     for (let annItem of this.announcement1) {
                        this.msgList.push(annItem)
                     }
                  }
                  if (page.num == 1) {
                     this.msgList = []; //如果是第一页需手动制空列表
                     this.msgList = this.msgList.concat(this.announcement1); //追加新数据
                  }
               }).catch(() => {
                  //联网失败, 结束加载
                  this.mescroll.endErr();
               })
            }
            }).catch(() => {
               //联网失败, 结束加载
               this.mescroll.endErr();
            })
         },
         mescrollInit(mescroll) {
            console.log('mescrollInit')