Blame view

pages-sub/daily/quick-order/index.vue 5.84 KB
9b30ab8c   刘淇   新增快速工单,原版
1
  <template>
420cb443   刘淇   快速工单列表
2
    <view class="u-page">
9b30ab8c   刘淇   新增快速工单,原版
3
4
5
      <!-- 顶部固定搜索栏 -->
      <up-sticky>
        <view class="search-header">
420cb443   刘淇   快速工单列表
6
7
8
9
10
11
12
13
14
15
          <!-- 左侧下拉框:替换为uView Plus的Select组件 -->
          <view class="select-wrap">
            <up-select
                v-model:current="selectedSortValue"
                :options="sortOptions"
                :showOptionsLabel="true"
                @select="handleSortChange"
                border="surround"
                :style="{ flex: 1 }"
            />
9b30ab8c   刘淇   新增快速工单,原版
16
          </view>
c293da23   刘淇   新园林init
17
  
9b30ab8c   刘淇   新增快速工单,原版
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
          <!-- 右侧搜索框 -->
          <view class="search-input-wrap">
            <up-search
                v-model="searchValue"
                placeholder="请输入关键字"
                @search="handleSearch"
                bg-color="#f5f5f5"
                :clearabled="false"
                :show-action="true"
                actionText="搜索"
                :animation="true"
                @custom="handleSearch"
            />
          </view>
        </view>
      </up-sticky>
c293da23   刘淇   新园林init
34
  
9b30ab8c   刘淇   新增快速工单,原版
35
36
37
38
39
40
      <!-- 列表容器 -->
      <z-paging
          ref="paging"
          v-model="orderList"
          @query="queryList"
          :top="100"
420cb443   刘淇   快速工单列表
41
          :bottom="120"
9b30ab8c   刘淇   新增快速工单,原版
42
      >
420cb443   刘淇   快速工单列表
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
        <template #empty>
          <empty-view/>
        </template>
  
        <!-- 修复:新增列表容器,配置顶部内边距 -->
        <view class="order-list">
          <view class="order-card" v-for="item in orderList" :key="item.orderNo">
            <view class="order-item up-line-1">工单编号:{{ item.orderNo }}</view>
            <view class="order-item up-line-1">工单位置:{{ item.roadName || '未填写' }}</view>
            <view class="order-item up-line-1">工单名称:{{ item.orderName || '未填写' }}</view>
            <view class="order-item up-line-1">情况描述:{{ item.remark || '无' }}</view>
            <view class="order-footer">
              <view class="submit-time up-line-1">提交时间:{{ timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') }}</view>
              <up-button
                  type="primary"
                  size="mini"
                  @click="handleDetail(item)"
                  :style="{ width: '80px', height: '28px', fontSize: '14px', borderRadius: 4 }"
              >
                工单详情
              </up-button>
            </view>
9b30ab8c   刘淇   新增快速工单,原版
65
66
          </view>
        </view>
9b30ab8c   刘淇   新增快速工单,原版
67
      </z-paging>
c293da23   刘淇   新园林init
68
  
9b30ab8c   刘淇   新增快速工单,原版
69
70
71
72
73
74
75
      <!-- 修复:补充底部按钮样式层级 -->
      <view class="fixed-bottom-btn-wrap">
        <up-button type="primary" size="large" @click="handleAddOrder">
          新增工单
        </up-button>
      </view>
    </view>
c293da23   刘淇   新园林init
76
77
  </template>
  
9b30ab8c   刘淇   新增快速工单,原版
78
  <script setup>
420cb443   刘淇   快速工单列表
79
  import { ref, computed } from 'vue';
9b30ab8c   刘淇   新增快速工单,原版
80
81
82
83
  import { workorderPage } from "@/api/quick-order/quick-order";
  import { timeFormat } from '@/uni_modules/uview-plus';
  // ========== 修复1:声明所有核心响应式变量 ==========
  // 顶部/底部高度(rpx)
420cb443   刘淇   快速工单列表
84
  // 排序相关:适配up-select的格式
9b30ab8c   刘淇   新增快速工单,原版
85
  const selectedSortValue = ref(1);
420cb443   刘淇   快速工单列表
86
  // 1 位置 2 工单名称 3 情况描述 4 工单编号
9b30ab8c   刘淇   新增快速工单,原版
87
  const sortOptions = ref([
420cb443   刘淇   快速工单列表
88
89
90
91
    {name: '位置', id: 1},
    {name: '名称', id: 2},
    {name: '描述', id: 3},
    {name: '编号', id: 4},
9b30ab8c   刘淇   新增快速工单,原版
92
93
94
95
96
97
98
99
  ]);
  // 分页相关(核心:声明orderList)
  const pageNo = ref(1);
  const pageSize = ref(10);
  const paging = ref(null);
  const orderList = ref([]); // 修复:新增列表变量
  // 搜索相关
  const searchValue = ref('');
9b30ab8c   刘淇   新增快速工单,原版
100
  // ========== 修复3:适配z-paging回调参数 ==========
420cb443   刘淇   快速工单列表
101
  const queryList = async (pageNo, pageSize) => {
9b30ab8c   刘淇   新增快速工单,原版
102
103
104
105
106
107
    try {
      // 修复:z-paging的query回调参数是对象 {pageNo, pageSize}
      const apiParams = {
        searchContent: searchValue.value.trim() || '',
        pageNo: pageNo,
        pageSize: pageSize,
420cb443   刘淇   快速工单列表
108
        type: selectedSortValue.value //  1 位置 2 工单名称 3 情况描述 4 工单编号
9b30ab8c   刘淇   新增快速工单,原版
109
110
111
112
      };
      console.log('请求参数:', apiParams);
      const res = await workorderPage(apiParams);
      console.log('接口返回:', res);
9b30ab8c   刘淇   新增快速工单,原版
113
114
115
116
      paging.value.complete(res.list);
    } catch (error) {
      console.error('加载失败:', error);
      paging.value?.complete(false);
420cb443   刘淇   快速工单列表
117
      uni.showToast({title: '加载失败,请重试', icon: 'none'});
9b30ab8c   刘淇   新增快速工单,原版
118
119
    }
  };
9b30ab8c   刘淇   新增快速工单,原版
120
121
122
  // ========== 其他方法补充 ==========
  const handleSortChange = (val) => {
    console.log('排序变更:', val);
420cb443   刘淇   快速工单列表
123
124
    searchValue.value = ''
    selectedSortValue.value = val.id; // 更新选中值
9b30ab8c   刘淇   新增快速工单,原版
125
126
    paging.value?.reload(); // 排序后刷新列表
  };
9b30ab8c   刘淇   新增快速工单,原版
127
128
129
130
131
  const handleSearch = (val) => {
    console.log('搜索内容:', val);
    searchValue.value = val;
    paging.value?.reload(); // 搜索后刷新列表
  };
9b30ab8c   刘淇   新增快速工单,原版
132
133
134
135
136
137
  const handleDetail = (item) => {
    console.log('工单详情:', item);
    uni.navigateTo({
      url: `/pages-sub/daily/quick-order/order-detail?id=${item.id}`
    });
  };
9b30ab8c   刘淇   新增快速工单,原版
138
139
140
141
142
  const handleAddOrder = () => {
    uni.navigateTo({
      url: '/pages-sub/daily/quick-order/add-order'
    });
  };
9b30ab8c   刘淇   新增快速工单,原版
143
144
145
  </script>
  
  <style scoped lang="scss">
420cb443   刘淇   快速工单列表
146
  
9b30ab8c   刘淇   新增快速工单,原版
147
148
149
150
151
152
153
  
  // 顶部搜索栏
  .search-header {
    display: flex;
    align-items: center;
    padding: 20rpx;
    background-color: #fff;
9b30ab8c   刘淇   新增快速工单,原版
154
155
    box-sizing: border-box;
  
420cb443   刘淇   快速工单列表
156
157
158
159
    // 下拉选择框容器
    .select-wrap {
      width: 80px;
      color: #333;
9b30ab8c   刘淇   新增快速工单,原版
160
      margin-right: 20rpx;
420cb443   刘淇   快速工单列表
161
162
163
164
165
166
167
168
169
      // 适配up-select样式
      :deep(.u-select) {
        width: 100%;
        font-size: 28rpx;
      }
  
      :deep(.u-input__placeholder) {
        font-size: 28rpx;
      }
9b30ab8c   刘淇   新增快速工单,原版
170
171
172
    }
  
    .search-input-wrap {
420cb443   刘淇   快速工单列表
173
      flex: 3;
9b30ab8c   刘淇   新增快速工单,原版
174
175
176
177
178
179
180
181
182
    }
  }
  
  // 修复:列表容器样式(核心)
  .order-list {
    padding: 120rpx 20rpx 20rpx; // 顶部内边距避开搜索栏
    box-sizing: border-box;
  }
  
9b30ab8c   刘淇   新增快速工单,原版
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
  // 工单卡片样式
  .order-card {
    background-color: #fff;
    border-radius: 12rpx;
    padding: 24rpx;
    margin-bottom: 20rpx;
    box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
  
    .order-item {
      font-size: 28rpx;
      color: #333;
      line-height: 48rpx;
      margin-bottom: 8rpx;
    }
  
    .order-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
9b30ab8c   刘淇   新增快速工单,原版
202
203
  
      .submit-time {
420cb443   刘淇   快速工单列表
204
205
206
207
        flex: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
9b30ab8c   刘淇   新增快速工单,原版
208
209
        font-size: 26rpx;
        color: #666;
9b30ab8c   刘淇   新增快速工单,原版
210
      }
420cb443   刘淇   快速工单列表
211
  
9b30ab8c   刘淇   新增快速工单,原版
212
213
    }
  }
c293da23   刘淇   新园林init
214
215
  
  </style>