Blame view

pages-sub/daily/patrol-manage/index.vue 5.61 KB
834a3df1   刘淇   养护计划列表
1
2
3
  <template>
    <view class="page-container">
      <!-- 顶部固定区域:Tabs + 搜索框 -->
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
4
5
      <up-sticky>
        <view class="sticky-header">
834a3df1   刘淇   养护计划列表
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        <u-tabs
            :list="tabList"
            :is-scroll="false"
            :activeStyle="{
            color: '#3c9cff',
            fontWeight: 'bold',
            transform: 'scale(1.05)'
          }"
            :inactiveStyle="{
            color: '#606266',
            transform: 'scale(1)'
          }"
            font-size="28rpx"
            @change="handleTabChange"
        ></u-tabs>
9b30ab8c   刘淇   新增快速工单,原版
21
  
834a3df1   刘淇   养护计划列表
22
23
24
25
26
27
28
29
30
31
32
33
34
        <up-search
            v-model="searchValue"
            placeholder="请输入道路名称"
            bg-color="#f5f5f5"
            shape="round"
            :show-action="true" actionText="搜索" :animation="true"
            @search="handleSearch"
            @custom="handleSearch"
            :clearabled="false"
            maxlength="50"
            style="margin: 20rpx 20rpx 0"
        ></up-search>
      </view>
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
35
      </up-sticky>
c293da23   刘淇   新园林init
36
  
834a3df1   刘淇   养护计划列表
37
      <z-paging
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
38
          ref="pagingRef"
834a3df1   刘淇   养护计划列表
39
40
          v-model="planList"
          @query="queryList"
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
41
          :auto-show-system-loading="true"
834a3df1   刘淇   养护计划列表
42
43
44
45
46
      >
        <template #empty>
          <empty-view/>
        </template>
        <!-- 计划卡片列表 -->
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
        <view  class="common-card-list" style="padding-top: 94px;">
  
          <up-card
              :border="false"
              :foot-border-top="false"
              :head-border-bottom="false"
              v-for="(item,index) in planList"
              :key="`${item.batchNo}_${index}`"
              :show-head="false"
          >
            <template #body>
              <view class="card-body">
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">道路名称:</view>
                  <view class="u-line-1 u-body-value">{{ item.roadName || '-' }}</view>
                </view>
834a3df1   刘淇   养护计划列表
63
  
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
64
65
66
67
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">所属街道:</view>
                  <view class="u-line-1 u-body-value">{{ item.streetName }}
                  </view>
834a3df1   刘淇   养护计划列表
68
                </view>
834a3df1   刘淇   养护计划列表
69
  
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
70
71
72
73
74
75
76
77
78
79
80
81
82
                <view class="u-body-item u-flex common-item-center common-justify-between">
                  <view class="u-body-item-title">养护级别: {{uni.$dict.getDictLabel('conserve_level', item.levelId) || '-'}}</view>
                  <view class="u-line-1">
                    <up-button
                        type="primary"
                        size="mini"
                        @click="gotoDetail(item)"
                        class="submit-record-btn"
                    >
                      计划明细
                    </up-button>
                  </view>
                </view>
834a3df1   刘淇   养护计划列表
83
  
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
84
85
86
87
88
89
90
91
92
93
94
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">计划类型:</view>
                  <view class="u-line-1 u-body-value">{{uni.$dict.getDictLabel('inspection_maintain_type', item.planTypeId)}}</view>
                </view>
  
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">计划时间:</view>
                  <view class="u-line-1 u-body-value">{{ timeFormat(item.beginTime, 'yyyy-mm-dd') || '-' }} 至
                    {{ timeFormat(item.endTime, 'yyyy-mm-dd') || '-' }}
                  </view>
                </view>
834a3df1   刘淇   养护计划列表
95
              </view>
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
96
97
            </template>
          </up-card>
834a3df1   刘淇   养护计划列表
98
99
100
101
        </view>
  
      </z-paging>
    </view>
5cb33b90   刘淇   完成巡查计划 详情
102
  </template>
c293da23   刘淇   新园林init
103
  
834a3df1   刘淇   养护计划列表
104
105
106
107
108
109
110
111
112
113
114
  <script setup>
  import { timeFormat } from '@/uni_modules/uview-plus';
  import { ref } from 'vue';
  import { onLoad, onShow } from '@dcloudio/uni-app';
  import { inspectionPlanPage } from "@/api/patrol-manage/patrol-plan";
  // Tabs 配置
  const tabList = ref([
    {name: '待完成', id: '1'},
    {name: '已失效', id: '3'},
    {name: '已完成', id: '2'}
  ]);
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
115
  const pagingRef = ref(null)
834a3df1   刘淇   养护计划列表
116
117
118
119
  const activeTab = ref('1');
  // 搜索相关
  const searchValue = ref('');
  // 分页相关
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
120
121
  // const pageNo = ref(1);
  // const pageSize = ref(10);
834a3df1   刘淇   养护计划列表
122
123
  
  const planList = ref([]);
834a3df1   刘淇   养护计划列表
124
125
126
127
128
129
130
131
  
  
  // Tab切换
  const handleTabChange = (val) => {
    console.log(val)
    console.log(activeTab.value)
    activeTab.value = val.id
    searchValue.value = ''
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
132
    pagingRef.value.reload()
834a3df1   刘淇   养护计划列表
133
134
135
136
137
  };
  // 搜索/清空搜索
  const handleSearch = () => {
    // searchValue.value = '';
    console.log(searchValue.value)
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
138
    pagingRef.value.reload()
834a3df1   刘淇   养护计划列表
139
140
141
  };
  const handleSearchClear = () => {
    // searchValue.value = ''
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
142
    pagingRef.value.reload()
834a3df1   刘淇   养护计划列表
143
144
145
146
147
148
149
150
151
152
153
154
155
  };
  // 加载数据
  const queryList = async (pageNo, pageSize) => {
    try {
      const params = {
        roadName: searchValue.value.trim() || '',
        pageNo: pageNo,
        pageSize: pageSize,
        finishState: activeTab.value
      };
      console.log('请求参数:', params);
      const res = await inspectionPlanPage(params);
      console.log('接口返回:', res);
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
156
      pagingRef.value.complete(res.list);
834a3df1   刘淇   养护计划列表
157
158
159
    } catch (error) {
      console.error('加载失败:', error);
      // 修复点4:加载失败调用complete(false)
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
160
      pagingRef.value?.complete(false);
834a3df1   刘淇   养护计划列表
161
162
163
164
165
166
      uni.showToast({title: '加载失败,请重试', icon: 'none'});
    }
  };
  // 跳转明细
  const gotoDetail = (item) => {
    uni.navigateTo({
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
167
      url: `/pages-sub/daily/patrol-manage/pending-plan-detail?batchNo=${item.batchNo}&status=${activeTab.value}`
834a3df1   刘淇   养护计划列表
168
169
170
171
    });
  };
  // 修复点5:优化页面生命周期逻辑
  onLoad(() => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
172
173
    // auto=true时,z-pagingRef会自动触发query,此处可省略手动调用;若需强制初始化,可加:
    // pagingRef.value?.triggerQuery();
834a3df1   刘淇   养护计划列表
174
175
176
  });
  // 仅在页面从明细页返回时,若有数据则刷新当前tab数据(避免干扰上拉加载)
  onShow(() => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
177
    pagingRef.value?.reload()
834a3df1   刘淇   养护计划列表
178
179
180
181
  });
  </script>
  
  <style scoped lang="scss">
834a3df1   刘淇   养护计划列表
182
  .page-container {
834a3df1   刘淇   养护计划列表
183
  
834a3df1   刘淇   养护计划列表
184
  }
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
185
186
187
  .sticky-header {
    background-color: #ffffff;
    padding-bottom: 10rpx;
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
188
189
190
    .search-input {
      margin: 20rpx 20rpx 10rpx !important;
    }
834a3df1   刘淇   养护计划列表
191
  }
c293da23   刘淇   新园林init
192
  </style>