Blame view

pages-sub/daily/maintain-manage/road-detail-list.vue 7.63 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
                <view class="card-header">
24c0bbe7   刘淇   登录账号密码 加密存储
57
                  <view class="common-card-title common-name">{{ item.planName || '无计划名称' }}</view>
54955fb5   刘淇   巡查和养护 。 失效状态的判断
58
59
60
61
                  <!-- 已失效标识 -->
                  <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
            </template>
  
            <template #body>
              <view class="card-body">
5b5a4862   刘淇   按钮放大
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  
  <!--              <view class="">-->
  <!--                <up-button-->
  <!--                    type="primary"-->
  <!--                    size="mini"-->
  <!--                    @click="submitRecord(item)"-->
  <!--                    class="submit-record-btn"-->
  <!--                    :disabled="item.finishState == 3"-->
  <!--                >-->
  <!--                  {{ item.finishState ==3 ? '补交记录' : '提交记录' }}-->
  <!--                </up-button>-->
  <!--              </view>-->
  
                <view class="common-custom-btn " v-if="item.finishState ==3" style="--btn-top: 100px;" >
                  补交记录
                </view>
                <view class="common-custom-btn " v-else style="--btn-top: 100px;"  @click="submitRecord(item)">
                  提交记录
                </view>
  
  
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
87
88
89
90
91
92
93
94
95
96
97
98
99
                <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>
5b5a4862   刘淇   按钮放大
100
  <!--                <view class="">-->
54955fb5   刘淇   巡查和养护 。 失效状态的判断
101
  <!--                  <up-button-->
54955fb5   刘淇   巡查和养护 。 失效状态的判断
102
103
  <!--                      type="primary"-->
  <!--                      size="mini"-->
5b5a4862   刘淇   按钮放大
104
  <!--                      @click="submitRecord(item)"-->
54955fb5   刘淇   巡查和养护 。 失效状态的判断
105
  <!--                      class="submit-record-btn"-->
5b5a4862   刘淇   按钮放大
106
  <!--                      :disabled="item.finishState == 3"-->
54955fb5   刘淇   巡查和养护 。 失效状态的判断
107
  <!--                  >-->
5b5a4862   刘淇   按钮放大
108
  <!--                    {{ item.finishState ==3 ? '补交记录' : '提交记录' }}-->
54955fb5   刘淇   巡查和养护 。 失效状态的判断
109
  <!--                  </up-button>-->
5b5a4862   刘淇   按钮放大
110
  <!--                </view>-->
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
111
112
                </view>
  
fa775c6b   刘淇   养护计划调整
113
114
115
116
                <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   刘淇   养护计划列表 样式 差去一个卡片的头部
117
118
119
120
121
122
123
  
                <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   刘淇   养护计划列表
124
              </view>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
125
126
            </template>
          </up-card>
834a3df1   刘淇   养护计划列表
127
128
129
130
131
132
        </view>
      </z-paging>
    </view>
  </template>
  
  <script setup>
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
133
  import { ref } from 'vue'
834a3df1   刘淇   养护计划列表
134
135
136
  import { onLoad, onShow } from '@dcloudio/uni-app'
  import { timeFormat } from '@/uni_modules/uview-plus'
  import { getRoadDetails } from "@/api/maintain-manage/maintain-manage";
834a3df1   刘淇   养护计划列表
137
  // ========== 基础数据定义 ==========
834a3df1   刘淇   养护计划列表
138
  const statusTabs = ref([
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
139
140
    {name: '待完成', id: '1'},
    {name: '已失效', id: '3'},
fa775c6b   刘淇   养护计划调整
141
142
    {name: '已完成', id: '2'},
    { name: '已终止', id: '4' }
834a3df1   刘淇   养护计划列表
143
  ])
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
144
145
146
147
  const activeStatus = ref('1')
  const searchValue = ref('')
  const planList = ref([])
  const pagingRef = ref(null)
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
148
149
  const roadId = ref('')
  const finishState = ref('')
834a3df1   刘淇   养护计划列表
150
  // 搜索占位符
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
151
  const searchPlaceholder = ref('请输入计划名称')
834a3df1   刘淇   养护计划列表
152
  // ========== 方法定义 ==========
834a3df1   刘淇   养护计划列表
153
  const getUrlParams = (options) => {
834a3df1   刘淇   养护计划列表
154
155
    if (options?.roadId) {
      roadId.value = options.roadId
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
156
      console.log('从URL获取的roadId:', roadId.value)
834a3df1   刘淇   养护计划列表
157
    }
834a3df1   刘淇   养护计划列表
158
159
    if (options?.finish_state) {
      finishState.value = options.finish_state
54955fb5   刘淇   巡查和养护 。 失效状态的判断
160
      // activeStatus.value = options.finish_state
834a3df1   刘淇   养护计划列表
161
162
163
      console.log('从URL获取的finish_state:', finishState.value)
    }
  }
834a3df1   刘淇   养护计划列表
164
165
166
  const handleStatusChange = (item) => {
    console.log('切换状态:', item)
    activeStatus.value = item.id
834a3df1   刘淇   养护计划列表
167
    finishState.value = item.id
834a3df1   刘淇   养护计划列表
168
169
    pagingRef.value?.reload()
  }
834a3df1   刘淇   养护计划列表
170
171
  const handleSearch = () => {
    console.log('搜索关键词:', searchValue.value)
834a3df1   刘淇   养护计划列表
172
173
    pagingRef.value?.reload()
  }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
174
  const submitRecord = (item) => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
175
176
177
178
    // 已失效状态下直接返回,不执行跳转
    if (item.finishState === '3') {
      return
    }
fa775c6b   刘淇   养护计划调整
179
180
    console.log('提交记录:', item.planFinishNum)
    if (item.planFinishNum == 0) {
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
181
      uni.navigateTo({
fa775c6b   刘淇   养护计划调整
182
        url: `/pages-sub/daily/maintain-manage/add-record?finishState=${item.finishState}&planNo=${item.planNo}`
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
183
184
185
      })
    } else {
      uni.navigateTo({
fa775c6b   刘淇   养护计划调整
186
        url: `/pages-sub/daily/maintain-manage/pending-plan-detail?finishState=${item.finishState}&planNo=${item.planNo}&planTypeId=${item.planTypeId}`
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
187
      })
834a3df1   刘淇   养护计划列表
188
    }
834a3df1   刘淇   养护计划列表
189
  }
834a3df1   刘淇   养护计划列表
190
191
  const queryList = async (pageNo, pageSize) => {
    try {
834a3df1   刘淇   养护计划列表
192
193
194
      const paramsData = {
        pageNo: pageNo,
        pageSize: pageSize,
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
195
        roadId: roadId.value,
54955fb5   刘淇   巡查和养护 。 失效状态的判断
196
        finishState: activeStatus.value,
834a3df1   刘淇   养护计划列表
197
198
        planName: searchValue.value.trim()
      }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
199
      console.log('请求参数:', paramsData)
834a3df1   刘淇   养护计划列表
200
201
      const res = await getRoadDetails(paramsData)
      console.log(res)
834a3df1   刘淇   养护计划列表
202
      const listData = res?.list || res || []
834a3df1   刘淇   养护计划列表
203
      pagingRef.value?.complete(listData)
834a3df1   刘淇   养护计划列表
204
205
    } catch (error) {
      console.error('请求失败:', error)
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
206
      uni.showToast({title: '加载失败,请重试', icon: 'none'})
834a3df1   刘淇   养护计划列表
207
      pagingRef.value?.complete(false)
834a3df1   刘淇   养护计划列表
208
209
    }
  }
fb13622a   刘淇   养护计划列表 样式 差去一个卡片的头部
210
  // ========== 生命周期 ==========
834a3df1   刘淇   养护计划列表
211
  onLoad((options) => {
834a3df1   刘淇   养护计划列表
212
    getUrlParams(options)
834a3df1   刘淇   养护计划列表
213
  })
834a3df1   刘淇   养护计划列表
214
  onShow(() => {
b0e2f1a9   刘淇   快速工单和巡查计划样式优化
215
216
217
218
    // if (roadId.value) {
    //   pagingRef.value?.reload()
    // }
    pagingRef.value?.reload()
834a3df1   刘淇   养护计划列表
219
220
  })
  
834a3df1   刘淇   养护计划列表
221
222
223
224
  </script>
  
  <style scoped lang="scss">
  .page-container {
834a3df1   刘淇   养护计划列表
225
  }
834a3df1   刘淇   养护计划列表
226
227
  // 顶部吸顶区域样式
  .sticky-header {
54955fb5   刘淇   巡查和养护 。 失效状态的判断
228
    margin-top: -10rpx;
834a3df1   刘淇   养护计划列表
229
230
231
232
    background-color: #ffffff;
    padding-bottom: 10rpx;
    border-bottom: 1px solid #eee;
  
834a3df1   刘淇   养护计划列表
233
234
235
236
237
    .search-input {
      margin: 20rpx 20rpx 10rpx !important;
    }
  }
  
834a3df1   刘淇   养护计划列表
238
  
834a3df1   刘淇   养护计划列表
239
  
834a3df1   刘淇   养护计划列表
240
  </style>