ll
liukangdong
2024-12-03 b2e8e233d59d107615a8336dce9da36f1f8bcde0
h5/pages/workOrder/list.vue
@@ -1,50 +1,58 @@
<template>
   <view class="main_app">
      <view class="head_wrap">
         <view class="search_wrap">
            <image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
            <input v-model="param.roomName" @confirm="handleQuery" type="text" placeholder="搜索楼宇/房间名称"
               placeholder-class="placeholder9" />
         </view>
      </view>
      <!--  -->
      <view class="tabs">
         <view class="tab" :class="{active: activeTab == -1}" @click="tabsClick(-1)">
            <text>待处理</text>
            <text class="border"></text>
         </view>
         <view class="tab" :class="{active: activeTab == 2}" @click="tabsClick(2)">
            <text>已处理</text>
            <text class="border"></text>
         </view>
         <view class="tab" @click="allClick">
            <view class="name">
               <image v-if="selectAll" class="icon" src="@/static/checked.png" mode=""></image>
               <image v-else class="icon" src="@/static/check.png" mode=""></image>
               <text>查看全部</text>
      <div class="main_head">
         <view class="head_wrap">
            <view class="search_wrap">
               <image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
               <input v-model="param.roomName" @confirm="handleQuery" type="text" placeholder="搜索楼宇/房间名称"
                  placeholder-class="placeholder9" />
            </view>
            <text class="border"></text>
         </view>
      </view>
      <!--  -->
      <view class="list">
         <view class="item" v-for="item in list" @click="itemClick(item)">
            <image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
            <image v-else src="@/static/side/workorder.png" class="icon"></image>
            <view class="content">
               <view class="name_wrap line">
                  <view class="name">{{item.buildingName}}/{{item.roomNum || item.floorName}}</view>
                  <view class="status gray" v-if="item.dealStatus == 2">已处理</view>
                  <view class="status" v-if="item.dealStatus == 0">待处理</view>
                  <view class="status" v-if="item.dealStatus == 1">待处理</view>
         <!--  -->
         <view class="tabs">
            <view class="tab" :class="{active: activeTab == '0,1'}" @click="tabsClick('0,1')">
               <text>待处理</text>
               <text class="border"></text>
            </view>
            <view class="tab" :class="{active: activeTab == 2}" @click="tabsClick(2)">
               <text>已处理</text>
               <text class="border"></text>
            </view>
            <view class="tab" @click="allClick">
               <view class="name">
                  <image v-if="selectAll" class="icon" src="@/static/checked.png" mode=""></image>
                  <image v-else class="icon" src="@/static/check.png" mode=""></image>
                  <text>查看全部</text>
               </view>
               <view class="line">位置类型:{{item.areaType == '0' ? '室内装修' : '公共区域'}}</view>
               <view class="line">工单分类:{{item.categoryName}}</view>
               <view class="line">上报时间:{{item.createDate}}</view>
               <view class="line">上门时间:{{item.getDate}}</view>
               <text class="border"></text>
            </view>
         </view>
      </view>
      </div>
      <!--  -->
      <scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
         <view class="list">
            <view class="item" v-for="item in list" @click="itemClick(item)">
               <image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
               <image v-else src="@/static/side/workorder.png" class="icon"></image>
               <view class="content">
                  <view class="name_wrap line">
                     <view class="name">{{item.buildingName}}/{{item.roomNum || item.floorName}}</view>
                     <view class="status gray" v-if="item.dealStatus == 2">已处理</view>
                     <view class="status" v-if="item.dealStatus == 0">待处理</view>
                     <view class="status" v-if="item.dealStatus == 1">待处理</view>
                  </view>
                  <view class="line">位置类型:{{item.areaType == '0' ? '室内装修' : '公共区域'}}</view>
                  <view class="line">工单分类:{{item.categoryName}}</view>
                  <view class="line">上报时间:{{item.createDate}}</view>
                  <view class="line">上门时间:{{item.getDate}}</view>
               </view>
            </view>
            <view v-if="list.length == 0" class="empty_wrap">
               <image src="@/static/empty.png" mode=""></image>
               <view class="">暂无数据</view>
            </view>
         </view>
      </scroll-view>
      <!--  -->
   </view>
</template>
@@ -57,7 +65,7 @@
      data() {
         return {
            param: {},
            activeTab: -1,
            activeTab: '0,1',
            selectAll: false,
            list: [],
@@ -68,21 +76,24 @@
      onShow() {
         this.getList()
      },
      onReachBottom() {
         const {total,list} = this
         if (list.length < total) {
            this.page = this.page + 1
            this.getList()
         } else {
            this.showToast('暂无更多数据')
         }
      },
      methods: {
      methods: {
         scrolltolower() {
            const {
               total,
               list
            } = this
            if (list.length < total) {
               this.page = this.page + 1
               this.getList()
            } else {
               this.showToast('暂无更多数据')
            }
         },
         tabsClick(val) {
            this.activeTab = val
            this.list = []
            this.page = 1
            this, getList()
            this.getList()
         },
         allClick() {
            this.selectAll = !this.selectAll
@@ -94,11 +105,11 @@
            uni.navigateTo({
               url: `/pages/workOrder/detail?id=${item.id}`
            })
         },
         handleQuery() {
            this.list = []
            this.page = 1
            this.getList()
         },
         handleQuery() {
            this.list = []
            this.page = 1
            this.getList()
         },
         getList() {
            const {
@@ -106,14 +117,15 @@
               total,
               list,
               activeTab,
               param,
               param,
               selectAll
            } = this
            ywWorkorder({
               page,
               capacity: 10,
               model: {
                  ...param,
                  ...param,
                  queryStatus: activeTab,
                  dispatchUserId: selectAll ? '' : uni.getStorageSync('userInfo').id,
               }
            }).then(res => {
@@ -203,7 +215,9 @@
      }
   }
   .scroll_Y{
      height: calc(100vh - 320rpx);
   }
   .list {
      .item {
         display: flex;