From d1229bd4fe82c5303a07cd96476c27f61b1c48b2 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期二, 08 十月 2024 16:23:54 +0800
Subject: [PATCH] updatge 扣款详情

---
 pages/order/order-delivery.vue |  265 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 223 insertions(+), 42 deletions(-)

diff --git a/pages/order/order-delivery.vue b/pages/order/order-delivery.vue
index e739447..4440ffd 100644
--- a/pages/order/order-delivery.vue
+++ b/pages/order/order-delivery.vue
@@ -1,77 +1,116 @@
 <template>
 	<view class="list-container order-sale supplier">
-		<view class="component-tab-container m-t-12">
+		<view class="component-tab-container m-t-12" v-if="!range||range=='today'">
 			<view class="tab-item" :class="[query.status==''?'cur':'']" @click="changeIndex('')">全部订单</view>
 			<view class="tab-item" :class="[query.status=='PENDING'?'cur':'']" @click="changeIndex('PENDING')">待入位
 			</view>
 			<view class="tab-item" :class="[query.status=='ARRIVED'?'cur':'']" @click="changeIndex('ARRIVED')">已入位
 			</view>
-
 		</view>
-		<view class="p15" style="min-height: calc(100vh - 160rpx);">
+		<view class="m-t-12 flex" v-if="!range||range=='today'">
+			<view class="m-l-a m-r-a text-center" :class="[query.date?'':'desc-gray']"
+				@click="show_time_picker_time=true">
+				订单日期:{{query.date || '请选择日期'}}
+			</view>
+
+			<view class="m-l-a m-r-20 w-fit flex">
+				<radio :checked="selecttoday" @click="changeSelecrRange"></radio>
+				<view>只查看今日</view>
+			</view>
+		</view>
+		<view class="search-container m-t-12 flex" v-if="list&&list.length>0">
+			<view class="component-filter-container p10  m-l-10 flex flex1" style="text-align: right;">
+				<view class="flex1 m-l-a m-r-10" @click="selectAllOrder" style="text-align: right;">
+					点击打印全部(已选{{ids.length}}个)
+				</view>
+			</view>
+		</view>
+		<view class="p15" style="min-height: calc(100vh - 400rpx);">
 			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
-			<view v-for="(item,index) in list" :key="index" class="m-b-24 order-sale-list list-container">
+			<view v-for="(dto,index) in list" :key="index" class="m-b-24 order-sale-list list-container">
 				<view class="order-sale-item list-item">
 					<view class="title flex">
-						<view>订单单号:{{item.orderNo}}</view>
-						<view class="m-l-a m-r-0 status">{{item.statusStr}}</view>
+						<view>订单单号:{{dto.orderNo}}</view>
+						<view class="m-l-a m-r-15 status">{{dto.statusStr}}</view>
+						<radio class="m-l-15 m-r-0" :checked="ids.indexOf(dto.orderNo)>=0" @click="changeItem(dto)">
+						</radio>
 					</view>
-					<view class="line" v-if="false"></view>
-					<view class="flower flex" v-if="false">
-						<image class="image img100 m-r-6" :src="item.flowerCover" @click="previewImg(item.flowerCover)">
-						</image>
-						<view class="flex1">
-							<view class=" flex">
-								<view class="title">{{item.flowerName }}
-								</view>
-							</view>
-							<view class="each-list flex">
-								<view class="each-item">
-									<view class="label">颜色</view>
-									<view class="value">{{ item.flowerColor || '-' }}</view>
+					<view v-if="dto.items">
+						<view v-for="(item,k) of dto.items" :key="k">
+							<view class="line" v-if="true"></view>
+							<!-- 				<view class="supplier-name ">
+								<image class="icon-dp" src="/static/common/icon-dp.png"></image>
+								{{ item.supplierName }}
+							</view> -->
+							<view class="flower flex m-t-12" v-if="true">
 
+								<image class="image img100 m-r-6" :src="item.flowerCover"
+									@click="previewImg(item.flowerCover)">
+								</image>
+								<view class="flex1">
+									<view class=" flex">
+										<view class="title"><span
+												class="level">{{ item.flowerCategory || ''}}</span><span
+												class="level">{{ item.flowerLevelStr || ''}}</span>{{item.flowerName }}
+										</view>
+									</view>
+									<view class="each-list">
+										<view class="each-item flex1 flex">
+											<view class="label">颜色</view>
+											<view class="value">{{ item.flowerColor || '-' }}</view>
+
+										</view>
+										<view class="each-item flex1 flex">
+											<view class="label">规格</view>
+											<view class="value">{{ item.flowerUnit || '-' }}</view>
+										</view>
+									</view>
 								</view>
-								<view class="each-item">
-									<view class="label">规格</view>
-									<view class="value">{{ item.flowerUnit || '-' }}</view>
+								<view class="each-list price">
+									<view class="each-item flex1">
+										<view class="value">¥{{ item.price || '-' }}</view>
+									</view>
+									<view class="each-item flex1">
+										<view class="value">x {{ item.num || 0 }}</view>
+									</view>
 								</view>
+
+							</view>
+
+
+							<view class="line"></view>
+							<view class="buttons">
+								<view class="button button-1" @click="printDeliveryOrder(item)">打印</view>
 							</view>
 						</view>
-						<view class="each-list price">
-							<view class="each-item">
-								<view class="value">¥{{ item.price || '-' }}</view>
-							</view>
-							<view class="each-item">
-								<view class="value">x {{ item.num || 0 }}</view>
-							</view>
-						</view>
-
 					</view>
 
 					<view class="line"></view>
 					<view class="delivery-form">
 						<view class="form-item" style="max-width: 100%;">
 							<view class="label">下单时间</view>
-							<view class="value">{{item.paymentTime}}</view>
+							<view class="value">{{dto.paymentTime}}</view>
 						</view>
 					</view>
 					<view class="delivery-form">
 						<view class="form-item">
 							<view class="label">仓库名称</view>
-							<view class="value red">{{item.warehouseName}}</view>
+							<view class="value red">{{dto.warehouseName || '待分配'}}</view>
 						</view>
 						<view class="form-item">
 							<view class="label">库位名称</view>
-							<view class="value red">{{item.warehouseLocationCode}}</view>
+							<view class="value red">{{dto.warehouseLocationCode || '待分配'}}</view>
 						</view>
 
 					</view>
 
 					<view class="line"></view>
 					<view class="buttons">
-						<view class="button button-1 m-r-10" v-if="item.status==='PENDING'"
-							@click="toDetail(item,'PENDING')">确认入位</view>
-						<view class="button button-0" @click="toDetail(item,'')">查看详情</view>
+
+						<view class="button button-1 m-r-10" v-if="dto.status==='PENDING'"
+							@click="toDetail(dto,'PENDING')">确认入位</view>
+						<view class="button button-0" @click="toDetail(dto,'')">查看详情</view>
+
 					</view>
 
 
@@ -82,6 +121,10 @@
 		<!-- 判断是否到底了,自动吧 -->
 		<footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
 
+		<u-calendar :show="show_time_picker_time" mode="single" @confirm="select_time_picker_time"
+			@cancel="show_time_picker_time = false" :monthNum="12" :maxDate="defaultDatePre"
+			:defaultDate="defaultDatePre" @close="show_time_picker_time = false" minDate="2024-07-01" toolTip="选择订单日期">
+		</u-calendar>
 	</view>
 </template>
 
@@ -89,40 +132,133 @@
 	export default {
 		data() {
 			return {
+				ids:[],
 				tabIndex: 0,
 				query: {
 					status: '',
+					date: '',
 				},
+				selecttoday: true,
+				defaultDatePre: new Date(),
+				show_time_picker_time: false,
 
+				range: '', //today的话才有查询条件,其他的话,不展示顶部查询条件(yesterday、month、todayall)
 			}
 		},
-		onLoad(options) {
+		async onLoad(options) {
 			if (options.status) {
 				this.query.status = options.status || ''
 			}
-			this.listApi = '/api/supplier/delivery/list/today'
-			this.getList()
+			this.range = options.range || ''
+			//目前应该是admin(质检人员不会用这个页面)
+			if (this.range === 'todayall') {
+				this.listApi = '/api/supplier/delivery/list/today'
+
+			} else if (this.range === 'month') {
+				this.listApi = '/api/supplier/delivery/list/month'
+
+			} else if (this.range === 'yesterday') {
+				this.listApi = '/api/supplier/delivery/list/yesterday'
+
+			} else {
+				this.listApi = '/api/supplier/delivery/list/today'
+			}
+
+			// this.listApi = '/api/supplier/delivery/list'
+
+			await this.getList()
+			// this.list = [{
+			// 	items: [{}, {}]
+			// }]
 
 		},
 		onReachBottom() {
-			this.page.current += 1
 			this.getMore()
 		},
 		async onShow() {
 			if (this.sign['delivery']) {
 				await this.$store.dispatch('sign_clear', 'delivery');
+				this.ids = []
+				
 				this.refreshList()
 			}
 		},
 		async onPullDownRefresh() {
 			this.page.current = 1
+			this.ids = []
+			
 			await this.getList()
 			uni.stopPullDownRefresh()
 		},
 		methods: {
+			selectAllOrder() {
+				if (this.ids.length > 0) {
+					// this.$message.showToast('敬请期待')
+					var arr = []
+					for (var item of this.list) {
+						if (this.ids.indexOf(item.orderNo) >= 0) {
+							for (var each of item.items) {
+								arr.push(each)
+							}
+						}
+					}
+					if (arr.length > 0) {
+						this.$storage.setItem('cache_delivery_order_print', JSON.stringify(arr))
+						uni.navigateTo({
+							url: '/sub_pages/supplier/print/print-list'
+						})
+					}
+			
+				}
+			},
+			changeItem(item) {
+				if (this.ids.indexOf(item.orderNo) >= 0) {
+					this.ids.splice(this.ids.indexOf(item.orderNo), 1)
+				} else {
+					this.ids.push(item.orderNo)
+				}
+			},
+			printDeliveryOrder(item) {
+				var arr = []
+				arr.push(item)
+				this.$storage.setItem('cache_delivery_order_print', JSON.stringify(arr))
+				uni.navigateTo({
+					url: '/sub_pages/supplier/print/print-list'
+				})
+			},
+			async select_time_picker_time(e) {
+				this.ids = []
+				
+				this.selecttoday = false
+				this.listApi = '/api/supplier/delivery/list'
+				var vv = e && e.length >= 1 && new Date(e[0]) || new Date()
+				this.show_time_picker_time = false;
+				this.query.date = this.$util.toDate(vv) || ''
+				this.refreshList()
+			},
+			changeSelecrRange() {
+				if (this.selecttoday) {
+					return
+				}
+				this.selecttoday = !this.selecttoday
+				this.ids = []
+				
+				this.$nextTick(() => {
+					if (this.selecttoday) {
+						this.query.date = ''
+						this.listApi = '/api/supplier/delivery/list/today'
+					} else {
+						this.listApi = '/api/supplier/delivery/list'
+
+					}
+					this.refreshList()
+				})
+			},
 			changeIndex(status) {
 				if (this.query.status !== status) {
 					this.query.status = status
+					this.ids = []
+					
 					// 刷新 query
 					this.refreshList()
 				}
@@ -131,7 +267,8 @@
 				uni.navigateTo({
 					url: `/pages/order/order-delivery-detail?id=${item.id}&status=${status}`
 				})
-			}
+			},
+
 		}
 	}
 </script>
@@ -142,6 +279,34 @@
 			background-color: #fff;
 			margin-bottom: 20rpx;
 			padding: 22rpx;
+
+			.each-item {
+				.label {
+					min-width: 120rpx;
+
+				}
+
+				.label:after {
+					content: ":";
+					margin-right: 10rpx;
+				}
+			}
+
+			.supplier-name {
+				border-bottom: 2rpx solid #EEEEEE;
+				font-weight: 600;
+				font-size: 28rpx;
+				color: #000000;
+				padding-bottom: 10rpx;
+				line-height: 40rpx;
+
+				.icon-dp {
+					width: 27rpx;
+					height: 27rpx;
+					display: inline-block;
+					vertical-align: middle;
+				}
+			}
 
 			.buttons {
 				display: flex;
@@ -178,6 +343,14 @@
 				font-size: 28rpx;
 				color: #000000;
 				line-height: 40rpx;
+
+				.level {
+					font-weight: 400;
+					font-size: 28rpx;
+					color: #20613D;
+					line-height: 40rpx;
+					margin-right: 20rpx;
+				}
 			}
 
 			.status {
@@ -207,6 +380,14 @@
 					font-size: 28rpx;
 					color: #000000;
 					line-height: 40rpx;
+
+					.level {
+						font-weight: 400;
+						font-size: 28rpx;
+						color: #20613D;
+						line-height: 40rpx;
+						margin-right: 20rpx;
+					}
 				}
 
 				.desc {}

--
Gitblit v1.9.3