Blame view

pages-sub/daily/maintain-manage/road-detail-list.vue 7.72 KB
834a3df1   刘淇   养护计划列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  <template>
    <view class="page-container">
      <!-- 顶部吸顶区域 -->
      <up-sticky>
        <view class="sticky-header">
          <!-- 状态Tabs -->
          <up-tabs
              v-model="activeStatus"
              :list="statusTabs"
              line-width="40rpx"
              active-color="#1989fa"
              inactive-color="#666"
              :scrollable="true"
              class="status-tabs"
              @click="handleStatusChange"
          ></up-tabs>
  
          <!-- 搜索框 -->
          <up-search
              v-model="searchValue"
              :placeholder="searchPlaceholder"
              bg-color="#f5f5f5"
              shape="round"
              :show-action="true"
              actionText="搜索"
              :animation="true"
              @search="handleSearch"
              @custom="handleSearch"
              :clearabled="false"
              maxlength="50"
              class="search-input"
          ></up-search>
        </view>
      </up-sticky>
  
      <!-- 分页列表区域 -->
      <z-paging
          ref="pagingRef"
          v-model="planList"
          @query="queryList"
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
41
          :auto-show-system-loading="true"
834a3df1   刘淇   养护计划列表
42
43
44
      >
        <!-- 空数据插槽 -->
        <template #empty>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
45
          <empty-view/>
834a3df1   刘淇   养护计划列表
46
        </template>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
47
48
49
50
51
52
        <view class="common-card-list" style=" padding-top: 170rpx;">
          <up-card
              :border="false"
              :foot-border-top="false"
              v-for="(item,index) in planList"
              :key="`${item.planNo}_${index}`"
834a3df1   刘淇   养护计划列表
53
          >
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
54
55
            <!-- 自定义标题区域 -->
            <template #head>
54955fb5   刘淇   巡查和养护 。 失效状态的判断
56
57
58
59
60
61
                <view class="card-header">
                  <view class="common-card-title common-name">{{ item.planName || '无计划名称' }}{{ item.planName || '无计划名称' }}</view>
                  <!-- 已失效标识 -->
                  <view v-show="item.finishState == 3 "  class="common-invalid-tag">已失效</view>
                  <view v-show="item.finishState == 2 "  class="common-finish-tag">已完成</view>
                </view>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
            </template>
  
            <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.planNo || '-' }}</view>
                </view>
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">养护周期:</view>
                  <view class="u-line-1 u-body-value">{{ item.rate || '-' }}
                    {{ uni.$dict.getDictLabel('cycle_id_type', item.cycleId) }}
                  </view>
                </view>
  
                <view class="u-body-item u-flex common-item-center common-justify-between">
                  <view class="u-body-item-title">计划完成次数: {{ item.planNum || 0 }}</view>
                  <view class="u-line-1">
                    <up-button
                        type="primary"
                        size="mini"
                        @click="submitRecord(item)"
                        class="submit-record-btn"
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
85
  
54955fb5   刘淇   巡查和养护 。 失效状态的判断
86
87
                        :disabled="item.finishState == 3"
  
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
88
                    >
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
89
  
54955fb5   刘淇   巡查和养护 。 失效状态的判断
90
                      {{ item.finishState ==3 ? '补交记录' : '提交记录' }}
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
91
                    </up-button>
54955fb5   刘淇   巡查和养护 。 失效状态的判断
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
  
  <!--                  :class="{ 'disabled-btn': item.finishState ==3 }"-->
  <!--                  <up-button-->
  <!--                      v-if="item.finishState ==3"-->
  <!--                      type="primary"-->
  <!--                      size="mini"-->
  <!--                      @click=""-->
  <!--                      class="submit-record-btn"-->
  <!--                      :disabled="true"-->
  <!--                  >-->
  <!--                    补交记录-->
  <!--                  </up-button>-->
  
  <!--                  <up-button-->
  <!--                      v-if="item.finishState !== '3' && item.planFinishNum>0"-->
  <!--                      type="primary"-->
  <!--                      size="mini"-->
  <!--                      @click="gotoFinishPlanDetail(item)"-->
  <!--                      class="submit-record-btn"-->
  <!--                  >-->
  <!--                    提交记录-->
  <!--                  </up-button>-->
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
114
115
116
                  </view>
                </view>
  
fa775c6b   刘淇   养护计划调整
117
118
119
120
                <view class="u-body-item u-flex">
                  <view class="u-body-item-title">完成次数:</view>
                  <view class="u-line-1 u-body-value">{{ item.planFinishNum || 0 }}</view>
                </view>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
121
122
123
124
125
126
127
  
                <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   刘淇   养护计划列表
128
              </view>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
129
130
            </template>
          </up-card>
834a3df1   刘淇   养护计划列表
131
132
133
134
135
136
        </view>
      </z-paging>
    </view>
  </template>
  
  <script setup>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
137
  import { ref } from 'vue'
834a3df1   刘淇   养护计划列表
138
139
140
  import { onLoad, onShow } from '@dcloudio/uni-app'
  import { timeFormat } from '@/uni_modules/uview-plus'
  import { getRoadDetails } from "@/api/maintain-manage/maintain-manage";
834a3df1   刘淇   养护计划列表
141
  // ========== 基础数据定义 ==========
834a3df1   刘淇   养护计划列表
142
  const statusTabs = ref([
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
143
144
    {name: '待完成', id: '1'},
    {name: '已失效', id: '3'},
fa775c6b   刘淇   养护计划调整
145
146
    {name: '已完成', id: '2'},
    { name: '已终止', id: '4' }
834a3df1   刘淇   养护计划列表
147
  ])
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
148
149
150
151
  const activeStatus = ref('1')
  const searchValue = ref('')
  const planList = ref([])
  const pagingRef = ref(null)
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
152
153
  const roadId = ref('')
  const finishState = ref('')
834a3df1   刘淇   养护计划列表
154
  // 搜索占位符
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
155
  const searchPlaceholder = ref('请输入计划名称')
834a3df1   刘淇   养护计划列表
156
  // ========== 方法定义 ==========
834a3df1   刘淇   养护计划列表
157
  const getUrlParams = (options) => {
834a3df1   刘淇   养护计划列表
158
159
    if (options?.roadId) {
      roadId.value = options.roadId
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
160
      console.log('从URL获取的roadId:', roadId.value)
834a3df1   刘淇   养护计划列表
161
    }
834a3df1   刘淇   养护计划列表
162
163
    if (options?.finish_state) {
      finishState.value = options.finish_state
54955fb5   刘淇   巡查和养护 。 失效状态的判断
164
      // activeStatus.value = options.finish_state
834a3df1   刘淇   养护计划列表
165
166
167
      console.log('从URL获取的finish_state:', finishState.value)
    }
  }
834a3df1   刘淇   养护计划列表
168
169
170
  const handleStatusChange = (item) => {
    console.log('切换状态:', item)
    activeStatus.value = item.id
834a3df1   刘淇   养护计划列表
171
    finishState.value = item.id
834a3df1   刘淇   养护计划列表
172
173
    pagingRef.value?.reload()
  }
834a3df1   刘淇   养护计划列表
174
175
  const handleSearch = () => {
    console.log('搜索关键词:', searchValue.value)
834a3df1   刘淇   养护计划列表
176
177
    pagingRef.value?.reload()
  }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
178
  const submitRecord = (item) => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
179
180
181
182
    // 已失效状态下直接返回,不执行跳转
    if (item.finishState === '3') {
      return
    }
fa775c6b   刘淇   养护计划调整
183
184
    console.log('提交记录:', item.planFinishNum)
    if (item.planFinishNum == 0) {
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
185
      uni.navigateTo({
fa775c6b   刘淇   养护计划调整
186
        url: `/pages-sub/daily/maintain-manage/add-record?finishState=${item.finishState}&planNo=${item.planNo}`
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
187
188
189
      })
    } else {
      uni.navigateTo({
fa775c6b   刘淇   养护计划调整
190
        url: `/pages-sub/daily/maintain-manage/pending-plan-detail?finishState=${item.finishState}&planNo=${item.planNo}&planTypeId=${item.planTypeId}`
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
191
      })
834a3df1   刘淇   养护计划列表
192
    }
834a3df1   刘淇   养护计划列表
193
  }
834a3df1   刘淇   养护计划列表
194
195
  const queryList = async (pageNo, pageSize) => {
    try {
834a3df1   刘淇   养护计划列表
196
197
198
      const paramsData = {
        pageNo: pageNo,
        pageSize: pageSize,
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
199
        roadId: roadId.value,
54955fb5   刘淇   巡查和养护 。 失效状态的判断
200
        finishState: activeStatus.value,
834a3df1   刘淇   养护计划列表
201
202
        planName: searchValue.value.trim()
      }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
203
      console.log('请求参数:', paramsData)
834a3df1   刘淇   养护计划列表
204
205
      const res = await getRoadDetails(paramsData)
      console.log(res)
834a3df1   刘淇   养护计划列表
206
      const listData = res?.list || res || []
834a3df1   刘淇   养护计划列表
207
      pagingRef.value?.complete(listData)
834a3df1   刘淇   养护计划列表
208
209
    } catch (error) {
      console.error('请求失败:', error)
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
210
      uni.showToast({title: '加载失败,请重试', icon: 'none'})
834a3df1   刘淇   养护计划列表
211
      pagingRef.value?.complete(false)
834a3df1   刘淇   养护计划列表
212
213
    }
  }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
214
  // ========== 生命周期 ==========
834a3df1   刘淇   养护计划列表
215
  onLoad((options) => {
834a3df1   刘淇   养护计划列表
216
    getUrlParams(options)
834a3df1   刘淇   养护计划列表
217
  })
834a3df1   刘淇   养护计划列表
218
  onShow(() => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
219
220
221
222
    // if (roadId.value) {
    //   pagingRef.value?.reload()
    // }
    pagingRef.value?.reload()
834a3df1   刘淇   养护计划列表
223
224
  })
  
834a3df1   刘淇   养护计划列表
225
226
227
228
  </script>
  
  <style scoped lang="scss">
  .page-container {
834a3df1   刘淇   养护计划列表
229
  }
834a3df1   刘淇   养护计划列表
230
231
  // 顶部吸顶区域样式
  .sticky-header {
54955fb5   刘淇   巡查和养护 。 失效状态的判断
232
    margin-top: -10rpx;
834a3df1   刘淇   养护计划列表
233
234
235
236
    background-color: #ffffff;
    padding-bottom: 10rpx;
    border-bottom: 1px solid #eee;
  
834a3df1   刘淇   养护计划列表
237
238
239
240
241
    .search-input {
      margin: 20rpx 20rpx 10rpx !important;
    }
  }
  
834a3df1   刘淇   养护计划列表
242
  
834a3df1   刘淇   养护计划列表
243
  
834a3df1   刘淇   养护计划列表
244
  </style>