Browse Source

出库单列表

wuhb 3 months ago
parent
commit
7248a14cb6
2 changed files with 68 additions and 2 deletions
  1. 5 1
      api/out/index.uts
  2. 63 1
      pages/out/index.uvue

+ 5 - 1
api/out/index.uts

@@ -9,13 +9,17 @@ import { request } from '../../utils/request'
  * @param pageSize 每页数量
  * @param keyword 关键字
  * @param receiverUserId 领用人ID
+ * @param signStatus 签收状态 PENDING-待签收
  * @returns 
  */
-export const getProductSalseList = (pageNum: number, pageSize: number, keyword: string, receiverUserId: string): Promise<any> => {
+export const getProductSalseList = (pageNum: number, pageSize: number, keyword: string, receiverUserId: string, signStatus: string): Promise<any> => {
 	let url = `/mes/wm/productsalse/myList?pageNum=${pageNum}&pageSize=${pageSize}&receiverUserId=${receiverUserId}`
 	if (keyword != null && keyword.length > 0) {
 		url += `&salseCode=${encodeURIComponent(keyword)}`
 	}
+	if (signStatus != null && signStatus.length > 0) {
+		url += `&signStatus=${signStatus}`
+	}
 	return request({
 		url: url,
 		method: 'GET'

+ 63 - 1
pages/out/index.uvue

@@ -15,6 +15,23 @@
 					</view>
 				</view>
 			</view>
+			<!-- 状态标签 -->
+			<view class="status-tabs">
+				<view 
+					class="status-tab" 
+					:class="{ 'active': currentStatus === '' }" 
+					@tap="handleStatusChange('')"
+				>
+					<text class="status-tab-text" :class="{ 'active-text': currentStatus === '' }">全部</text>
+				</view>
+				<view 
+					class="status-tab" 
+					:class="{ 'active': currentStatus === 'PENDING' }" 
+					@tap="handleStatusChange('PENDING')"
+				>
+					<text class="status-tab-text" :class="{ 'active-text': currentStatus === 'PENDING' }">待签收</text>
+				</view>
+			</view>
 		</view>
 
 		<!-- 列表内容 -->
@@ -87,6 +104,7 @@
     // 列表数据
     const dataList = ref<any[]>([])
     const keyword = ref<string>("")
+    const currentStatus = ref<string>("")
     const page = ref<number>(1)
     const pageSize: number = 10
     const hasMore = ref<boolean>(true)
@@ -185,7 +203,8 @@
 	            page.value = 1
 	        }
 	
-	        const result = await getProductSalseList(page.value, pageSize, keyword.value, currentUserId)
+	        const signStatus = currentStatus.value === 'PENDING' ? 'PENDING' : ''
+	        const result = await getProductSalseList(page.value, pageSize, keyword.value, currentUserId, signStatus)
 	        const resultObj = result as UTSJSONObject
 	        const rows = resultObj['rows']
 	        const total = resultObj['total'] as number
@@ -229,6 +248,13 @@
         keyword.value = ''
         loadData(true)
     }
+
+    // 切换状态标签
+    const handleStatusChange = (status: string): void => {
+        currentStatus.value = status
+        page.value = 1
+        loadData(true)
+    }
 	
     // 下拉刷新
     const handleRefresh = (): void => {
@@ -367,6 +393,42 @@
         }
     }
 
+    .status-tabs {
+        display: flex;
+        flex-direction: row;
+        padding: 0rpx 30rpx 20rpx;
+        background-color: #ffffff;
+    }
+
+    .status-tab {
+        flex: 1;
+        padding: 16rpx 0;
+        text-align: center;
+        margin-right: 16rpx;
+        border-radius: 8rpx;
+        background-color: #f5f5f5;
+        justify-content: center;
+        align-items: center;
+
+        &:last-child {
+            margin-right: 0;
+        }
+
+        &.active {
+            background-color: #007aff;
+        }
+
+        .status-tab-text {
+            font-size: 26rpx;
+            color: #666666;
+
+            &.active-text {
+                color: #ffffff;
+                font-weight: bold;
+            }
+        }
+    }
+
     .list-item {
         margin: 8rpx 10rpx;
         background-color: #ffffff;