Explorar o código

Merge branch '260902_redesign_fix' of git.huaml.com:zhh/front-end into 260902_redesign_fix

shizhongqi hai 3 días
pai
achega
bb48657d23

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/css/chunk-6fbda132.a70bce2a.css


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/css/chunk-8edc273c.e97a7aad.css


+ 1 - 1
ghs/dist/shop/index.html

@@ -43,4 +43,4 @@
 			.once .sub-title {
 				color: #ababab;
 				font-size: 12px;
-			}</style><link href="/css/app.adeb0359.css" rel="preload" as="style"><link href="/css/chunk-libs.ce660555.css" rel="preload" as="style"><link href="/js/app.609d2590.js" rel="preload" as="script"><link href="/js/chunk-libs.344d2dbf.js" rel="preload" as="script"><link href="/css/chunk-libs.ce660555.css" rel="stylesheet"><link href="/css/app.adeb0359.css" rel="stylesheet"></head><body><noscript></noscript><div id="app"><div class="once"><div class="container"><div class="title">正在加载资源</div><div class="sub-title">初次加载资源可能需要较多时间 请耐心等待</div></div><div class="footer"><a href="https://www.baidu.com/" target="_blank">花卉宝</a></div></div></div><script src="https://img.wixhb.com/cdn/vue/2.6.10/vue.min.js"></script><script src="https://img.wixhb.com/cdn/vue-router/3.1.3/vue-router.min.js"></script><script src="https://img.wixhb.com/cdn/vuex/3.1.1/vuex.min.js"></script><script src="https://img.wixhb.com/cdn/clipboard.js/2.0.4/clipboard.min.js"></script><script src="https://img.wixhb.com/cdn/axios/0.19.0-beta.1/axios.min.js"></script><script src="https://img.wixhb.com/cdn/nprogress/0.2.0/nprogress.min.js"></script><script src="https://img.wixhb.com/cdn/Mock.js/1.0.1-beta3/mock-min.js"></script><script src="https://img.wixhb.com/cdn/quill/2.0.0-dev.3/quill.min.js"></script><script src="https://img.wixhb.com/cdn/element-ui/2.13.0/index.js"></script><script src="https://img.wixhb.com/cdn/viewerjs/1.3.7/viewer.min.js"></script><script src="https://img.wixhb.com/cdn/echarts/4.4.0-rc.1/echarts.min.js"></script><script src="https://img.wixhb.com/cdn/npm/vue-echarts@4.0.2.js"></script><script src="/js/chunk-libs.344d2dbf.js"></script><script src="/js/app.609d2590.js"></script></body></html>
+			}</style><link href="/css/app.adeb0359.css" rel="preload" as="style"><link href="/css/chunk-libs.ce660555.css" rel="preload" as="style"><link href="/js/app.23376c60.js" rel="preload" as="script"><link href="/js/chunk-libs.344d2dbf.js" rel="preload" as="script"><link href="/css/chunk-libs.ce660555.css" rel="stylesheet"><link href="/css/app.adeb0359.css" rel="stylesheet"></head><body><noscript></noscript><div id="app"><div class="once"><div class="container"><div class="title">正在加载资源</div><div class="sub-title">初次加载资源可能需要较多时间 请耐心等待</div></div><div class="footer"><a href="https://www.baidu.com/" target="_blank">花卉宝</a></div></div></div><script src="https://img.wixhb.com/cdn/vue/2.6.10/vue.min.js"></script><script src="https://img.wixhb.com/cdn/vue-router/3.1.3/vue-router.min.js"></script><script src="https://img.wixhb.com/cdn/vuex/3.1.1/vuex.min.js"></script><script src="https://img.wixhb.com/cdn/clipboard.js/2.0.4/clipboard.min.js"></script><script src="https://img.wixhb.com/cdn/axios/0.19.0-beta.1/axios.min.js"></script><script src="https://img.wixhb.com/cdn/nprogress/0.2.0/nprogress.min.js"></script><script src="https://img.wixhb.com/cdn/Mock.js/1.0.1-beta3/mock-min.js"></script><script src="https://img.wixhb.com/cdn/quill/2.0.0-dev.3/quill.min.js"></script><script src="https://img.wixhb.com/cdn/element-ui/2.13.0/index.js"></script><script src="https://img.wixhb.com/cdn/viewerjs/1.3.7/viewer.min.js"></script><script src="https://img.wixhb.com/cdn/echarts/4.4.0-rc.1/echarts.min.js"></script><script src="https://img.wixhb.com/cdn/npm/vue-echarts@4.0.2.js"></script><script src="/js/chunk-libs.344d2dbf.js"></script><script src="/js/app.23376c60.js"></script></body></html>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/js/app.23376c60.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/js/chunk-0d15d665.bc881e6c.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/js/chunk-33ec3738.d994298c.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/js/chunk-6fbda132.4a02456f.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
ghs/dist/shop/js/chunk-8edc273c.739191e7.js


+ 20 - 1
ghs/src/views/order/list.vue

@@ -220,7 +220,7 @@
       </template>
 
 			<template #slot-export-order>
-				<el-button type="primary" size="mini" style="margin-left:10px;" @click="exportData()">导出数据</el-button>
+				<el-button type="primary" size="mini" style="margin-left:10px;" @click="exportData()">导出{{ searchTimeTypeName }}</el-button>
 			</template>
 
 			<template #slot-more-do-btn>
@@ -417,6 +417,18 @@ export default {
       totalTkPrice:0
     };
   },
+  computed: {
+    /** 当前筛选时间类型文案,导出按钮和提示共用 */
+    searchTimeTypeName() {
+      if (this.searchTimeType === 2) {
+        return '发货时间'
+      }
+      if (this.searchTimeType === 1) {
+        return '账单时间'
+      }
+      return '开单时间'
+    }
+  },
   created() {
     this.init();
   },
@@ -851,7 +863,14 @@ export default {
     handleClick(tab, e) {
       this.app.refresh(this.getListSearchParams());
     },
+		/**
+		 * 导出当前列表:区间跟开单/发货/账单类型走,须先选时间段,最长一个月。
+		 */
 		exportData(){
+			if (!this.searchTime) {
+				this.$message.warning('请选 ' + this.searchTimeTypeName + ' 和时间段')
+				return
+			}
 			this.$service.order.getOrderList(this.getListSearchParams({ pageSize: 9999999, export: 1 })).then(res => {
 				if(res.file){
 					window.location.href = res.file

+ 4 - 0
ghsApp/src/api/gys/index.js

@@ -20,6 +20,10 @@ export const clearOrderApi = id => {
 	return https.post("/purchase-clear/create-order", id);
 };
 
+/**
+ * 供货商采购挂账明细。searchTime 筛账单时间 entryTime;sendSearchTime 筛发货时间 sendTime。
+ * 对应 PurchaseController::actionDebtList
+ */
 export const getDebtList = data => {
 	return https.get("/purchase/debt-list", data);
 };

+ 13 - 4
ghsApp/src/api/purchase/index.js

@@ -8,6 +8,14 @@ export const modifyEntryTime = data => {
 	return https.get("/purchase-order/modify-entry-time", data);
 };
 
+/**
+ * 供货商采购详情:修改送货时间,写入 xhGhsCgOrder.sendTime。
+ * 对应 PurchaseOrderController::actionModifySendTime,只改日期、保留原时分秒。
+ */
+export const modifySendTime = data => {
+	return https.get("/purchase-order/modify-send-time", data);
+};
+
 export const batchConfirm = data => {
 	return https.post("/purchase/batch-confirm", data);
 };
@@ -61,15 +69,16 @@ export const getCgSalt = data => {
 };
 
 
-/** *
- * 采购列表
+/**
+ * 采购入库单列表。searchTime 筛账单时间 entryTime;sendSearchTime 筛发货时间 sendTime;可同时生效。
+ * 对应 PurchaseOrderController::actionList
  */
 export const getPurchaseListApi = async data => {
 	return https.get("/purchase-order/list", data);
 };
 
-/** *
- * 采购确认
+/**
+ * 供货商采购确认入库。sendTime 为送货时间(Y-m-d),空则后端按当天写入 xhGhsCgOrder.sendTime。
  */
 export const createPurchaseOrderApi = data => {
 	return https.post("/purchase-order/create-order", data);

+ 29 - 1
ghsApp/src/pagesGys/details.vue

@@ -9,7 +9,11 @@
 						{{ ghsInfo.name}}
 					</text>
 				</view>
-				<DateSelect class="bar" top="0" @selectDateFn="selectDateFn" defaultShowName='时间' />
+				<!-- 发货时间在左、开单时间在右;不改顶栏结构,只并排放两个筛选 -->
+				<view class="date-filter">
+					<DateSelect class="bar" top="0" @selectDateFn="selectSendDateFn" defaultShowName="发货时间" />
+					<DateSelect class="bar date-filter-gap" top="0" @selectDateFn="selectDateFn" defaultShowName="开单时间" />
+				</view>
 			</view>
 		</view>
 		<view scroll-y class="shop-list">
@@ -108,6 +112,9 @@ export default {
 			searchTime:'',
 			startTime:'',
 			endTime:'',
+			sendSearchTime:'',
+			sendStartTime:'',
+			sendEndTime:'',
 			payWayList:[{name:"线下微信",id:0},{name:"现金",id:4},{name:"线下支付宝",id:1},{name:"银行卡",id:5}],
 			payWay:0,
 			confirm:-1
@@ -196,6 +203,16 @@ export default {
 				uni.stopPullDownRefresh()
 			})
 		},
+		// 发货时间筛 sendTime,可与开单时间(entryTime)同时生效
+		selectSendDateFn(val){
+			this.sendSearchTime = val.searchTime
+			this.sendStartTime = val.startTime
+			this.sendEndTime = val.endTime
+			this.resetDebtListPage()
+			this.initData().then(res => {
+				uni.stopPullDownRefresh()
+			})
+		},
 		clearSelectedOrder(){
 			if (this.$util.isEmpty(this.selectList)) {
 				this.$msg("请选择订单");
@@ -211,6 +228,9 @@ export default {
 					searchTime: this.searchTime,
 					startTime: this.startTime,
 					endTime: this.endTime,
+					sendSearchTime: this.sendSearchTime,
+					sendStartTime: this.sendStartTime,
+					sendEndTime: this.sendEndTime,
 					confirm: this.confirm,
 				}))
 				this.ghsInfo = data.ghsInfo;
@@ -361,6 +381,14 @@ export default {
 				font-weight: 600;
 				color: #333333;
 			}
+			.date-filter {
+				display: flex;
+				align-items: center;
+				flex-shrink: 0;
+			}
+			.date-filter-gap {
+				margin-left: 24upx;
+			}
 		}
 	}
 	.shop-list {

+ 25 - 1
ghsApp/src/pagesGys/detailsItem.vue

@@ -25,6 +25,8 @@
 				<view class="price" style="color:#3385FF;">
 					<text :class="[hasPartialClear ? 'price-del' : '']">¥{{ parseFloat(displayDebtPrice) }}</text>
 				</view>
+				<!-- 发货时间与账单时间(entryTime)不完全相同时才贴右侧 -->
+				<view v-if="showSendTime" class="send-date">发货时间 {{ info.sendTime.substr(2, 14) }}</view>
 			</view>
 			<!-- 售后退款单独成行,不与挂账价格挤在同一行 -->
 			<view class="item-row" v-if="Number(info.tkPrice)>0">
@@ -33,7 +35,7 @@
 			<view class="item-row" v-if="Number(info.nextDayTkPrice)>0">
 				<view class="refund-tip refund-tip-next">跨天售后 ¥{{parseFloat(info.nextDayTkPrice)}}</view>
 			</view>
-			<view class="item-row" v-if="hasPartialClear">
+			<view class="item-row" v-if="Number(remainDebtPrice)>0 && parseFloat(displayDebtPrice)!=parseFloat(remainDebtPrice)">
 				<view class="price" style="color:red;">剩余待结 ¥{{ parseFloat(remainDebtPrice) }}</view>
 			</view>
 		</view>
@@ -81,6 +83,20 @@ export default {
 		},
 		hasPartialClear() {
 			return this.displayDebtPrice > this.remainDebtPrice
+		},
+		/**
+		 * 金额行右侧发货时间:sendTime 有效,且与账单时间 entryTime(含时分秒)不完全相同才展示。
+		 */
+		showSendTime() {
+			const send = this.info.sendTime
+			const bill = this.info.entryTime
+			if (!send || send.indexOf('0000-00-00') >= 0) {
+				return false
+			}
+			if (!bill || bill.indexOf('0000-00-00') >= 0) {
+				return true
+			}
+			return send.substr(0, 19) !== bill.substr(0, 19)
 		}
 	},
 	methods: {
@@ -183,6 +199,14 @@ export default {
 		.refund-tip-next {
 			color: #e67e22;
 		}
+		.send-date {
+			margin-left: auto;
+			text-align: right;
+			white-space: nowrap;
+			flex-shrink: 0;
+			font-size: 26upx;
+			color: red;
+		}
 	}
 }
 </style>

+ 15 - 6
ghsApp/src/pagesPurchase/details.vue

@@ -17,7 +17,6 @@
 										</text>
 									</view>
 
-
 									<view style="text-align:right;position: relative;">
 
 										<text style="position: absolute;right:300upx;top:6upx;font-size:30upx;color:#3385ff;font-weight:bold;">¥{{item.userPrice ? item.userPrice : 0}}</text>
@@ -37,9 +36,6 @@
 										</view>
 									</view>
 
-
-
-
 								</view>
 							</view>
 						</view>
@@ -180,12 +176,19 @@
 						</tui-list-cell>
 					</block>
 
+					<!-- 送货时间写入 sendTime,可选手动补录;空则后端按当天落库 -->
+					<tui-list-cell class="line-cell" :hover="false" :arrow="true">
+						<view class="tui-title">发货时间</view>
+						<view class="uni-input" v-if="form.sendTime == ''" style="color: #cccccc; width: 400upx; font-size: 32upx" @click="bindSendTimeChange">默认当天</view>
+						<view class="uni-input" @click="bindSendTimeChange" v-else style="width: 400upx; font-size: 32upx">{{ form.sendTime }}</view>
+					</tui-list-cell>
 					<tui-list-cell class="line-cell" :hover="false">
 						<view class="tui-title">备注</view>
 						<view class="tui-input">
 							<input type="text" v-model="form.remark" placeholder-class="phcolor" style="width:430upx;" class="tui-input" placeholder="这里写备注"/>
 						</view>
 					</tui-list-cell>
+
 				</view>
 
 			</form>
@@ -277,6 +280,7 @@ export default {
 				pickCharge: "",
 				localCharge: "",
 				entryTime: "",
+				sendTime: "",
 				yfPayWay:1,
 				remark:"",
 				avgKgWeight:'',
@@ -547,9 +551,14 @@ export default {
 		bindEntryTimeChange(){
 			this.showPicker = true
 		},
+		// 打开送货日期选择;允许选过去日期,确认后写入 form.sendTime
+		bindSendTimeChange(){
+			this.defaultPickerDate = this.form.sendTime || ''
+			this.showPicker = true
+		},
 		confirmPicker(e){
-			let date = e.value
-			this.form.entryTime = date
+			let date = String(e.value || '').replace(/\//g, '-')
+			this.form.sendTime = date
 			this.showPicker = false
 		},
 		isCostChange(e){

+ 30 - 4
ghsApp/src/pagesPurchase/info.vue

@@ -18,7 +18,14 @@
 			</view>
 			<view class="bills-info_box content-box">
 				<view class="order-info_box">
-					<view>订单日期:</view>
+					<view>发货时间:</view>
+					<view>{{ detailInfo.sendTime && detailInfo.sendTime.indexOf('0000-00-00') < 0 ? detailInfo.sendTime.substr(2, 14) : '' }}</view>
+					<view class="price">
+						<button @click="openSendTimePicker" class="admin-button-com default">修改</button>
+					</view>
+				</view>
+				<view class="order-info_box">
+					<view>开单日期:</view>
 					<view>{{ detailInfo.addTime?detailInfo.addTime.substr(2,14):'' }}</view>
 				</view>
 				<view class="order-info_box">
@@ -351,7 +358,7 @@
 	</view>
 </template>
 <script>
-import { getPurchaseDetailApi,getCgDetail,updateRemark,printAll,confirmPutIn,cancelPutIn,printBill,assignSeat,checkSeatRemin,modifyEntryTime } from "@/api/purchase";
+import { getPurchaseDetailApi,getCgDetail,updateRemark,printAll,confirmPutIn,cancelPutIn,printBill,assignSeat,checkSeatRemin,modifyEntryTime,modifySendTime } from "@/api/purchase";
 import productMins from "@/mixins/product";
 import TuiListCell from "@/components/plugin/list-cell";
 import ModalModule from "@/components/plugin/modal"
@@ -413,6 +420,7 @@ export default {
 		return {
 			defaultPickerDate:'',
 			showPicker: false,
+			pickerType: '',
 			selectJobType: "order_change",
 			autoLoad: false,
 			stepActive: 0,
@@ -477,13 +485,31 @@ export default {
 	},	
 	methods: {
 		openPicker(){
+			this.pickerType = 'entryDate'
+			this.showPicker = true
+		},
+		// 打开发货日期选择;允许选过去,确认后写 xhGhsCgOrder.sendTime
+		openSendTimePicker(){
+			this.pickerType = 'sendDate'
+			this.defaultPickerDate = (this.detailInfo.sendTime && this.detailInfo.sendTime.indexOf('0000-00-00') < 0) ? this.detailInfo.sendTime.substr(0, 10) : ''
 			this.showPicker = true
 		},
 		confirmPicker(e) {
 			let that = this
-			let currentDate = e.value
+			const currentDate = String(e.value || '').replace(/\//g, '-')
+			this.showPicker = false
+			if (this.pickerType === 'sendDate') {
+				that.$util.confirmModal({content:'确认修改发货时间?'},() => {
+					modifySendTime({id:that.detailInfo.id,date:currentDate}).then(res=>{
+						if(res.code == 1){
+							that.$msg(res.msg)
+							that.initCgData()
+						}
+					})
+				})
+				return
+			}
 			that.$util.confirmModal({content:'确认修改?'},() => {
-				that.showPicker = false
 				modifyEntryTime({id:that.detailInfo.id,date:currentDate}).then(res=>{
 					if(res.code == 1){
 						that.$msg(res.msg)

+ 194 - 98
ghsApp/src/pagesPurchase/order.vue

@@ -1,21 +1,49 @@
+<!--
+  供货商采购入库单列表。
+  顶栏:搜索 + 采购人;筛选条:发货时间、账单时间(入库日 entryTime)两套 DateSelect + 重置。
+  日历不嵌进列表滚动区,避免 App 端被订单卡片盖住。
+-->
 <template>
 	<view class="app-content">
 		<view class="order-page">
-			<view class="input-wrap_box">
-				<view>
-					<AppSearchModule placeholder="核销码 / 名称 / 手机号" @input="searchFn"/>
+			<view class="page-header">
+				<view class="search-row">
+					<view class="search-hold">
+						<AppSearchModule placeholder="核销码 / 名称 / 手机号" @input="searchFn"/>
+					</view>
+					<button
+						:class="['admin-button-com', 'middle', 'staff-btn', cgStaffId ? 'blue' : 'default']"
+						@click="showCgStaff"
+					>{{ cgStaffName == '' ? '采购人' : cgStaffName }}</button>
 				</view>
-				<view style="padding:0 0upx 0 20upx;" >
-					<button class="admin-button-com middle blue" @click="showCgStaff">{{ cgStaffName==''?'采购人':'已选择'}}</button>
+				<view class="filter-row">
+					<view class="date-chip">
+						<DateSelect
+							ref="sendDateSelect"
+							class="date-select"
+							top="0"
+							defaultShowName="发货时间"
+							@selectDateFn="selectSendDateFn"
+							@overlay-change="onSendDateOverlayChange"
+						/>
+					</view>
+					<view class="date-chip date-chip-gap">
+						<DateSelect
+							ref="billDateSelect"
+							class="date-select"
+							top="0"
+							defaultShowName="入库时间"
+							@selectDateFn="selectBillDateFn"
+							@overlay-change="onBillDateOverlayChange"
+						/>
+					</view>
+					<button class="admin-button-com default date-reset-btn" @click="resetDateFilters">重置</button>
 				</view>
 			</view>
-			<view class="tabs">
+			<view class="tabs-wrap">
 				<Tabs :isFixed="false" :tabs="tabs" :currentTab="tabIndex" @change="changeTabEvent" itemWidth="25%"></Tabs>
 			</view>
-			<view scroll-y class="order-list">
-			<view style="margin-left:50upx;padding-bottom:25upx;">
-				<DateSelect class="bar" top="0" @selectDateFn="selectDateFn" defaultShowName='时间' />
-			</view>
+			<view class="order-list" :class="{ 'is-covered': dateOverlayVisible }">
 				<block v-if="!$util.isEmpty(list.data)">
 					<OrderItem v-for="(item, index) in list.data" :key="index" :info="item" @click="gotoDetails(item)"></OrderItem>
 				</block>
@@ -23,8 +51,8 @@
 					<AppWrapperEmpty title="暂无数据" :is-empty="$util.isEmpty(list.data)" />
 				</block>
 			</view>
-			<view class="app-footer open_btn">
-				<view @click="addEvent" class="admin-button-com big blue">新增采购</view>
+			<view class="app-footer open_btn" :class="{ 'is-covered': dateOverlayVisible }">
+				<view @click="addEvent" class="admin-button-com big blue add-btn">新增采购</view>
 			</view>
 		</view>
 
@@ -43,6 +71,10 @@
 	</view>
 </template>
 <script>
+/**
+ * 采购入库列表页:按状态 Tab + 发货/账单时间筛选拉 /purchase-order/list。
+ * 账单时间对应 xhGhsCgOrder.entryTime(入库/记账日);发货时间对应 sendTime。
+ */
 import Tabs from "@/components/plugin/tabs";
 import OrderItem from "./orderItem";
 import AppWrapperEmpty from "@/components/app-wrapper-empty";
@@ -91,12 +123,22 @@ export default {
 				}
 			],
 			T:null,
-			searchContent:'',			
+			searchContent:'',
 			searchTime:'',
 			startTime:'',
 			endTime:'',
+			sendSearchTime:'',
+			sendStartTime:'',
+			sendEndTime:'',
 			cgStaffName:'',
-			cgStaffId:0
+			cgStaffId:0,
+			sendDateOverlayVisible: false,
+			billDateOverlayVisible: false
+		}
+	},
+	computed: {
+		dateOverlayVisible() {
+			return !!(this.sendDateOverlayVisible || this.billDateOverlayVisible)
 		}
 	},
 	onPullDownRefresh() {
@@ -175,21 +217,78 @@ export default {
 				that.resetList()
 				that.getCgList()
 			},700)
-		},		
-		selectDateFn(val) {
+		},
+		// 账单时间筛入库日 entryTime,可与发货时间同时生效
+		selectBillDateFn(val) {
 			this.searchTime = val.searchTime
 			this.startTime = val.startTime
 			this.endTime = val.endTime
 			this.resetList();
 			this.getCgList();
-		},		
+		},
+		// 发货时间筛 sendTime,可与账单时间同时生效
+		selectSendDateFn(val) {
+			this.sendSearchTime = val.searchTime
+			this.sendStartTime = val.startTime
+			this.sendEndTime = val.endTime
+			this.resetList();
+			this.getCgList();
+		},
+		onBillDateOverlayChange(visible) {
+			this.billDateOverlayVisible = !!visible
+			if (visible) {
+				this.closeDateSelect(this.$refs.sendDateSelect)
+			}
+		},
+		onSendDateOverlayChange(visible) {
+			this.sendDateOverlayVisible = !!visible
+			if (visible) {
+				this.closeDateSelect(this.$refs.billDateSelect)
+			}
+		},
+		// 两套日历互斥打开,避免弹层叠在一起
+		closeDateSelect(ref) {
+			if (ref && (ref.dropdownShow || ref.showPicker)) {
+				ref.dropdownShow = false
+				ref.showPicker = false
+			}
+		},
+		// 清空发货/账单两套时间筛选,列表回到未按时段过滤的状态
+		resetDateFilters() {
+			this.searchTime = ''
+			this.startTime = ''
+			this.endTime = ''
+			this.sendSearchTime = ''
+			this.sendStartTime = ''
+			this.sendEndTime = ''
+			if (this.$refs.billDateSelect && this.$refs.billDateSelect.reset) {
+				this.$refs.billDateSelect.reset()
+			}
+			if (this.$refs.sendDateSelect && this.$refs.sendDateSelect.reset) {
+				this.$refs.sendDateSelect.reset()
+			}
+			this.resetList()
+			this.getCgList()
+		},
 		init(){
 
 		},
 		getCgList() {
 			let ghsId = this.option.ghsId || 0
 			let status = this.tabs[this.tabIndex].key
-			let options = {page:this.list.page,status:status,ghsId:ghsId,search:this.searchContent,searchTime:this.searchTime,startTime:this.startTime,endTime:this.endTime,cgStaffId:this.cgStaffId}
+			let options = {
+				page: this.list.page,
+				status: status,
+				ghsId: ghsId,
+				search: this.searchContent,
+				searchTime: this.searchTime,
+				startTime: this.startTime,
+				endTime: this.endTime,
+				sendSearchTime: this.sendSearchTime,
+				sendStartTime: this.sendStartTime,
+				sendEndTime: this.sendEndTime,
+				cgStaffId: this.cgStaffId
+			}
 			return getPurchaseListApi(options) .then(res => {
 					this.completes(res);
 					this.tabs[this.tabIndex].value = res.data.totalNum?res.data.totalNum:0
@@ -218,98 +317,95 @@ export default {
 	height: 100%;
 	display: flex;
 	flex-direction: column;
-	background-color: #f9fbfc;
-	.input-wrap_box {
+	background-color: #f4f6f8;
+	.page-header {
+		flex-shrink: 0;
 		background-color: #fff;
-		height: 100upx;
+		box-shadow: 0upx 2upx 8upx 0upx rgba(0, 0, 0, 0.06);
+		position: relative;
+		z-index: 100;
+	}
+	.search-row {
 		display: flex;
 		align-items: center;
-		padding: 0 30upx;
-		& > view:nth-child(1) {
+		padding: 12upx 24upx 0;
+		.search-hold {
 			flex: 1;
+			min-width: 0;
 		}
-  	}
-	.order-list {
-		padding-top:20upx;
-		padding-bottom:100upx;
-		flex: 1;
-		.allot-item {
-			margin-bottom: 1upx;
-			padding: 30upx;
-			display: flex;
-			align-items: center;
-			box-shadow: 0upx 1upx 0upx 0upx #eeeeee;
-			background-color: #fff;
-			.info {
-				flex: 1;
-				margin-right: 20upx;
-				.info-order {
-					font-size: 32upx;
-					font-weight: 600;
-					color: #333333;
-				}
-				.info-name {
-					margin: 40upx 0 20upx;
-					font-size: 28upx;
-					font-weight: 400;
-					color: #666666;
-				}
-				.info-time {
-					margin-right: 30upx;
-					font-size: 28upx;
-					font-weight: 400;
-					color: #666666;
-				}
-			}
-			.status {
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				flex-shrink: 0;
-				width: 100upx;
-				color: #cccccc;
-				.status-name {
-					margin-top: 10upx;
-					font-size: 24upx;
-				}
-				.iconfont {
-					font-size: 46upx;
-				}
-				&.primary {
-					color: #3385ff;
-				}
-				&.gray {
-					color: #cccccc;
-				}
-				&.warn {
-					color: #ffaf1d;
-				}
-			}
+		.staff-btn {
+			flex-shrink: 0;
+			margin-left: 16upx;
+			max-width: 160upx;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			white-space: nowrap;
 		}
 	}
-	.bar-view {
-		flex-shrink: 0;
+	.filter-row {
 		display: flex;
-		justify-content: flex-end;
 		align-items: center;
-		padding: 0 30upx;
-		width: 100%;
-		height: 100upx;
-
-		box-shadow: 0upx -1upx 6upx 0upx rgba(4, 0, 0, 0.06);
-
-		.btn-view {
+		padding: 8upx 24upx 20upx;
+		.date-chip {
+			min-width: 180upx;
+			height: 64upx;
+			padding: 0 16upx;
+			border-radius: 8upx;
 			display: flex;
-			.admin-button-com {
-				margin: 0 10upx;
-				width: 140upx;
-			}
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			flex-shrink: 1;
+			box-sizing: border-box;
+			background: #f7f8fa;
+			border: 1upx solid #e8eaed;
 		}
+		.date-chip-gap {
+			margin-left: 16upx;
+		}
+		.date-select {
+			display: flex;
+			align-items: center;
+		}
+		.date-reset-btn {
+			flex-shrink: 0;
+			margin: 0 0 0 16upx;
+			height: 64upx;
+			line-height: 64upx;
+			padding: 0 24upx;
+			font-size: 26upx;
+			border-radius: 8upx;
+		}
+	}
+	.tabs-wrap {
+		flex-shrink: 0;
+		background-color: #fff;
+		margin-top: 16upx;
+		border-bottom: 1upx solid #f0f0f0;
 	}
-	.cg-set{
-		margin-right:60upx;
-		color:#3385ff;
-		font-size:30upx;
+	.order-list {
+		padding-top: 16upx;
+		padding-bottom: 140upx;
+		flex: 1;
+		&.is-covered {
+			/* #ifdef APP-PLUS */
+			visibility: hidden;
+			/* #endif */
+		}
+	}
+	.app-footer.open_btn {
+		justify-content: center;
+		padding-left: 30upx;
+		padding-right: 30upx;
+		&.is-covered {
+			/* #ifdef APP-PLUS */
+			visibility: hidden;
+			/* #endif */
+		}
+		.add-btn {
+			margin-right: 0;
+			width: 100%;
+		}
 	}
 }
 </style>

+ 28 - 2
ghsApp/src/pagesPurchase/orderItem.vue

@@ -15,7 +15,7 @@
 		<view class="item-main" >
 			<view class="item-info">
 				<view class="info-row">
-					<text class="info-label"> 创建:</text>
+					<text class="info-label"> 开单:</text>
 					<text class="info-value">{{ info.addTime.substr(2,14) }} </text>
 				</view>
 				<view class="info-row">
@@ -46,6 +46,8 @@
 			</view>
 			<view class="item-price">¥{{ info.realPrice?parseFloat(info.realPrice):0 }} <text class="iconfont iconxiangyou"></text>
 			</view>
+			<!-- 发货时间贴卡片右缘;与入库时间(含时分秒)完全相同时不展示 -->
+			<text v-if="showSendTime" class="extra-date">发货时间 {{ info.sendTime.substr(2, 14) }}</text>
 		</view>
 	</view>
 </template>
@@ -61,6 +63,22 @@ export default {
 
 		};
 	},
+	computed: {
+		/**
+		 * 右侧发货时间:sendTime 有效,且与入库时间(含时分秒)不完全相同才展示。
+		 */
+		showSendTime() {
+			const send = this.info.sendTime
+			const entry = this.info.entryTime
+			if (!send || send.indexOf('0000-00-00') >= 0) {
+				return false
+			}
+			if (!entry || entry.indexOf('0000-00-00') >= 0) {
+				return true
+			}
+			return send.substr(0, 19) !== entry.substr(0, 19)
+		}
+	},
 	methods: {
 		clickItemEvent() {
 			this.$emit("click", this.info);
@@ -103,8 +121,8 @@ export default {
 	}
 	.item-main {
 		display: flex;
-
 		align-items: flex-end;
+		position: relative;
 		.item-info {
 			flex: 1;
 
@@ -123,6 +141,14 @@ export default {
 				color: #333333;
 			}
 		}
+		.extra-date {
+			position: absolute;
+			top: 55upx;
+			right: 0;
+			color: red;
+			font-size: 26upx;
+			white-space: nowrap;
+		}
 		.item-price {
 			display: flex;
 			align-items: center;

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio