From 803033cc4e734ac9eb3062f215b654b4ae9d02c4 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 24 一月 2025 18:16:14 +0800
Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/funingyunwei into 2.0.1

---
 h5/pages/inventory/detail.vue                 | 1012 +++++++++++++++++++++++++------------------------
 admin/src/views/stock/components/OutEdit.vue  |    7 
 admin/src/views/stock/components/AssetSel.vue |    5 
 h5/pages/workOrder/wait.vue                   |   14 
 admin/src/views/stock/record.vue              |    2 
 h5/manifest.json                              |    2 
 h5/pages/login.vue                            |   16 
 h5/pages/inventory/index.vue                  |  100 ++--
 8 files changed, 598 insertions(+), 560 deletions(-)

diff --git a/admin/src/views/stock/components/AssetSel.vue b/admin/src/views/stock/components/AssetSel.vue
index bb5d356..d4bb919 100644
--- a/admin/src/views/stock/components/AssetSel.vue
+++ b/admin/src/views/stock/components/AssetSel.vue
@@ -55,6 +55,7 @@
         total: 0
       },
       isOut: false,
+      warehouseId: false,
       list: [],
       selList: [],
       cateList: [],
@@ -79,7 +80,7 @@
       this.selList = val
     },
     getList(page) {
-      const { pagination, searchForm, isOut } = this
+      const { pagination, searchForm, isOut, warehouseId } = this
       this.listLoading = true
       if(page){pagination.page = page}
       console.log('isOut', isOut);
@@ -88,7 +89,7 @@
       fn({
         capacity: pagination.pageSize,
         page: pagination.page,
-        model: {...searchForm,status: 0}
+        model: {...searchForm,status: 0, warehouseId}
       }).then((res) => {
         this.listLoading = false
         this.list = res.records
diff --git a/admin/src/views/stock/components/OutEdit.vue b/admin/src/views/stock/components/OutEdit.vue
index 1447841..0bad33c 100644
--- a/admin/src/views/stock/components/OutEdit.vue
+++ b/admin/src/views/stock/components/OutEdit.vue
@@ -4,7 +4,7 @@
     <el-form :model="param" ref="form" :rules="rules">
       <div class="df_ac">
         <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="warehouseId">
-          <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="璇烽�夋嫨">
+          <el-select :disabled="param.id" @change="changeStore" v-model="param.warehouseId" placeholder="璇烽�夋嫨">
             <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option>
           </el-select>
         </el-form-item>
@@ -116,6 +116,9 @@
         }
       })
     },
+    changeStore() {
+      this.list = []
+    },
     initData() {
       this.$set(this.param, 'doneDate', dayjs().format('YYYY-MM-DD'))
       getStoreList({ capacity: 9999, page: 1, model: {status: 0} }).then(res => {
@@ -139,10 +142,12 @@
 
     },
     handleOpenMaterial() {
+      if(!this.param.warehouseId) return Message.warning('璇峰厛閫夋嫨鍑哄簱浠撳簱')
       this.isShowSel = true
       this.$nextTick(() => {
         this.$refs.AssetSelRef.isShowModal = true
         this.$refs.AssetSelRef.isOut = true
+        this.$refs.AssetSelRef.warehouseId = this.param.warehouseId
         this.$refs.AssetSelRef.getList()
         console.log('-----');
         
diff --git a/admin/src/views/stock/record.vue b/admin/src/views/stock/record.vue
index a508f51..b2e1863 100644
--- a/admin/src/views/stock/record.vue
+++ b/admin/src/views/stock/record.vue
@@ -142,7 +142,7 @@
         this.isShowOutDetail = true
         this.$nextTick(() => {
           this.$refs.OutDetailRef.visible = true
-          this.$refs.OutDetailRef.getDetail(row.outInBoundId)
+          this.$refs.OutDetailRef.getDetail(item.outInBoundId)
         })
       }
     },
diff --git a/h5/manifest.json b/h5/manifest.json
index 2ed6c9c..0a6161d 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -131,7 +131,7 @@
                     // "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     // "target" : "http://192.168.0.163:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     // "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
-                    "target" : "https://zhcg.fnwtzx.com/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+                    "target" : "https://dmtest.ahapp.net/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
                     "changeOrigin" : true, // 鍏佽璺ㄥ煙 
                     "pathRewrite" : {
                         "^/gateway_interface" : ""
diff --git a/h5/pages/inventory/detail.vue b/h5/pages/inventory/detail.vue
index 02fec9f..29a92e6 100644
--- a/h5/pages/inventory/detail.vue
+++ b/h5/pages/inventory/detail.vue
@@ -2,42 +2,42 @@
 	<view class="main_app">
 		<view class="main_head">
 			<view class="tabs">
-				<view class="tab" :class="{active: activeTab == 0}" @click="tabsClick(0)">
-					<text>鏈洏({{info.unFinishAmount || 0}})</text>
+				<view class="tab" :class="{ active: activeTab == 0 }" @click="tabsClick(0)">
+					<text>鏈洏({{ info.unFinishAmount || 0 }})</text>
 					<text class="border"></text>
 				</view>
-				<view class="tab" :class="{active: activeTab == 1}" @click="tabsClick(1)">
-					<text>宸茬洏({{info.finishAmount || 0}})</text>
+				<view class="tab" :class="{ active: activeTab == 1 }" @click="tabsClick(1)">
+					<text>宸茬洏({{ info.finishAmount || 0 }})</text>
 					<text class="border"></text>
 				</view>
 			</view>
 			<view class="head_wrap">
 				<view class="search_wrap">
 					<image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
-					<input v-model="param.materialCode" @confirm="handleQuery" type="text" placeholder="鎼滅储璧勪骇缂栫爜/璧勪骇鍚嶇О"
+					<input v-model="param.materialCode" @confirm="handleQuery()" type="text" placeholder="鎼滅储鐗╂枡缂栫爜/鐗╂枡鍚嶇О"
 						placeholder-class="placeholder9" />
 				</view>
 			</view>
 			<!--  -->
 			<scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
 				<view class="list">
-					<view class="item" v-for="item in list">
-						<view class="line">
-							<view class="title">{{item.materialName}}</view>
+					<view class="item" v-for="item in list" @click="itemClick(item)">
+						<view class="head">
+							<view class="title">{{ item.materialName }}</view>
 							<view class="status red" v-if="item.type == 1">鐩樹簭</view>
 							<view class="status primaryColor" v-if="item.type == 2">鐩樼泩</view>
 						</view>
-						<view class="line">璧勪骇缂栫爜锛歿{item.materialCode}}</view>
-						<view class="line">鏉$爜锛歿{item.materialQrcode}}</view>
-						<view class="line">瑙勬牸鍨嬪彿锛歿{item.materialAttr}}</view>
-						<view class="line">
-							<view class="">璐﹂潰鏁伴噺锛歿{item.stock}}{{item.materialUnitName}}</view>
-							<view v-if="item.status == 0" @click="openEheck(item)" class="btn">鎵ц鐩樼偣</view>
+						<view class="line">鐗╂枡缂栫爜锛歿{ item.materialCode }}</view>
+						<view class="line">鏉$爜锛歿{ item.materialQrcode }}</view>
+						<view class="line">瑙勬牸鍨嬪彿锛歿{ item.materialAttr }}</view>
+						<view class="line" v-if="item.status == 0">
+							<view class="">璐﹂潰鏁伴噺锛歿{ item.stock }}{{ item.materialUnitName }}</view>
+							<view @click.stop="openEheck(item)" class="btn">鎵ц鐩樼偣</view>
 						</view>
 						<view class="static" v-if="item.status == 1">
 							<view class="ite">
 								<view class="la">璐﹂潰鏁伴噺锛�</view>
-								<view class="val">{{item.stock}}</view>
+								<view class="val">{{ item.stock }}</view>
 							</view>
 							<view class="spi"></view>
 							<view class="ite">
@@ -45,18 +45,18 @@
 								<view class="val" :class="{
 									primaryColor: item.type == 2,
 									red: item.type == 1,
-								}">{{item.actStock}}</view>
+								}">{{ item.actStock }}</view>
 							</view>
 						</view>
 					</view>
 				</view>
 			</scroll-view>
 			<view class="footer_btn">
-				<view @click="openQrcode" v-if="activeTab== 0" class="sweep">
+				<view @click="openQrcode" v-if="activeTab == 0 && info.status == 1" class="sweep">
 					<image src="@/static/side/ic_saoma@2x.png" mode=""></image>
 					<view class="">鎵爜鐩樼偣</view>
 				</view>
-				<view @click="showTip = true" v-if="activeTab== 1" class="sweep sub_result">
+				<view @click="showTip = true" v-if="activeTab == 1 && info.status == 1" class="sweep sub_result">
 					<view class="">鎻愪氦鐩樼偣缁撴灉</view>
 				</view>
 			</view>
@@ -64,39 +64,41 @@
 			<u-popup :show="showModal" :round="10" @close="showModal = false" closeOnClickOverlay>
 				<view class="modal_wrap">
 					<view class="modal_title">鎵ц鐩樼偣</view>
-					<view class="title">{{modalForm.materialName}}</view>
-					<view class="item">璧勪骇缂栫爜锛歿{modalForm.materialCode}}</view>
-					<view class="item">鏉$爜锛歿{modalForm.materialQrcode}}</view>
-					<view class="item">鍝佺墝锛歿{modalForm.materialBrand}}</view>
-					<view class="item">瑙勬牸鍨嬪彿锛歿{modalForm.materialAttr}}</view>
-					<view class="item">鎵�鍦ㄤ粨搴擄細{{modalForm.warehouseName}}</view>
+					<view class="title">{{ modalForm.materialName }}</view>
+					<view class="item">鐗╂枡缂栫爜锛歿{ modalForm.materialCode }}</view>
+					<view class="item">鏉$爜锛歿{ modalForm.materialQrcode }}</view>
+					<view class="item">鍝佺墝锛歿{ modalForm.materialBrand }}</view>
+					<view class="item">瑙勬牸鍨嬪彿锛歿{ modalForm.materialAttr }}</view>
+					<view class="item">鎵�鍦ㄤ粨搴擄細{{ modalForm.warehouseName }}</view>
 					<view class="content">
 						<view class="line">
 							<view class="la">璐﹂潰鏁伴噺锛�</view>
 							<view class="val">
-								<view class="wrap">{{modalForm.stock}}</view>
-								<view class="unit">{{modalForm.materialUnitName}}</view>
+								<view class="wrap">{{ modalForm.stock }}</view>
+								<view class="unit">{{ modalForm.materialUnitName }}</view>
 							</view>
 						</view>
 						<view class="line">
 							<view class="la">鐩樼偣鏁伴噺锛�</view>
 							<view class="val">
-								<view class="wrap">
-									<image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
-									<image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
-									<input type="number" v-model="modalForm.actStock"></input>
-									<image @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""></image>
+								<view class="wrap">
+									<template v-if="!modalForm.handleType">
+										<image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
+										<image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
+									</template>
+									<input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit" v-model="modalForm.actStock"></input>
+									<image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""></image>
 								</view>
-								<view class="unit">{{modalForm.materialUnitName}}</view>
+								<view class="unit">{{ modalForm.materialUnitName }}</view>
 							</view>
 						</view>
 					</view>
 					<view class="remark">
 						<view class="la">澶囨敞锛�</view>
-						<textarea v-model="modalForm.remark" placeholder="璇峰~鍐欏娉�" :maxlength="-1" placeholder-class="placeholder9"
+						<textarea v-model="modalForm.remark" :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="璇峰~鍐欏娉�" :maxlength="-1" placeholder-class="placeholder9"
 							cols="30" rows="10"></textarea>
 					</view>
-					<view class="btns">
+					<view v-if="!modalForm.handleType" class="btns">
 						<view class="btn" @click="showModal = false">鍙栨秷</view>
 						<view class="btn sub" @click="onSubmit">鎻愪氦</view>
 					</view>
@@ -125,541 +127,557 @@
 </template>
 
 <script>
-	import {
-		ywStocktakingDetail,
-		getYwStocktakingRecord,
-		takingDataOpen,
-		ywStocktaFinishById
-	} from '@/api'
-	import {
-		Html5Qrcode
-	} from 'html5-qrcode';
-	export default {
-		data() {
-			return {
-				param: {},
-				info: {},
-				id: '',
-				activeTab: 0,
+import {
+	ywStocktakingDetail,
+	getYwStocktakingRecord,
+	takingDataOpen,
+	ywStocktaFinishById
+} from '@/api'
+import {
+	Html5Qrcode
+} from 'html5-qrcode'
+export default {
+	data() {
+		return {
+			param: {},
+			info: {},
+			id: '',
+			activeTab: 0,
 
-				list: [],
-				page: 0,
-				total: 0,
+			list: [],
+			page: 0,
+			total: 0,
 
-				showModal: false,
-				showTip: false,
-				modalForm: {},
+			showModal: false,
+			showTip: false,
+			modalForm: {},
 
-				html5Qrcode: null,
-				isScaning: false,
+			html5Qrcode: null,
+			isScaning: false,
 
-			};
+		}
+	},
+	onLoad(op) {
+		this.id = op.id
+		this.getDetail()
+		this.getList()
+	},
+	methods: {
+		itemClick(item) {
+			if(item.status == 1){
+				this.showItem(item)
+			}
+		},
+		showItem(item){
+			this.showModal = true
+			this.modalForm = {
+				...item,
+				handleType: this.info.status != 1 ? 'detail' : ''
+			}
+			console.log('modalForm', this.modalForm);
 		},
-		onLoad(op) {
-			this.id = op.id
-			this.getDetail()
+		getDetail() {
+			const {
+				id
+			} = this
+			ywStocktakingDetail(id).then(res => {
+				this.info = res.data
+
+			})
+		},
+		handleQuery(str) {
+			this.list = []
+			this.page = 1
+			this.getList(str)
+		},
+		getList(str) {
+			const {
+				page,
+				activeTab,
+				id,
+				param
+			} = this
+			getYwStocktakingRecord({
+				capacity: 20,
+				page,
+				model: {
+					status: str || activeTab,
+					stocktakingId: id,
+					...param
+				}
+			}).then(res => {
+				this.list = [...this.list, ...res.data.records]
+				this.total = res.data.total
+				if (this.param.materialQrcode && this.list.length == 1) {
+					this.openEheck(this.list[0])
+					this.$set(this.param, 'materialQrcode', null)
+				}
+			})
+		},
+		scrolltolower() {
+			const {
+				total,
+				list
+			} = this
+			if (list.length < total) {
+				this.page = this.page + 1
+				this.getList()
+			} else {
+				this.showToast('鏆傛棤鏇村鏁版嵁')
+			}
+		},
+		openEheck(item) {
+			this.modalForm = {
+				...item
+			}
+			this.showModal = true
+		},
+		onSubmit() {
+			const {
+				modalForm
+			} = this
+			if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺')
+			takingDataOpen({
+				...modalForm
+			}).then(res => {
+				if (res.code == 200) {
+					this.showToast('鎻愪氦鎴愬姛')
+					this.handleQuery()
+					this.getDetail()
+					this.showModal = false
+				}
+			})
+		},
+		changeAct(val) {
+			const actStock = this.modalForm.actStock || 0
+			this.$set(this.modalForm, 'actStock', actStock + val)
+		},
+		tabsClick(val) {
+			this.activeTab = val
+			this.page = 0
+			this.list = []
 			this.getList()
 		},
-		methods: {
-			checkSub() {
-				const {
-					modalForm
-				} = this
-				// let str = modalForm.unFinishAmount > 0 ? '杩樻湁涓夐」鐗╂枡'
-			},
-			getDetail() {
-				const {
-					id
-				} = this
-				ywStocktakingDetail(id).then(res => {
-					this.info = res.data
+		tipSub() {
+			const { info } = this
+			ywStocktaFinishById(info.id).then(res => {
+				this.showTip = false
+				uni.navigateBack()
+			})
 
-				})
-			},
-			handleQuery() {
-				this.list = []
-				this.page = 1
-				this.getList()
-			},
-			getList() {
-				const {
-					page,
-					activeTab,
-					id,
-					param
-				} = this
-				getYwStocktakingRecord({
-					capacity: 20,
-					page,
-					model: {
-						status: activeTab,
-						stocktakingId: id,
-						...param
-					}
-				}).then(res => {
-					this.list = [...this.list, ...res.data.records]
-					this.total = res.data.total
-					if(this.param.materialQrcode && this.list.length == 1){
-						this.openEheck(this.list[0])
-						this.$set(this.param, 'materialQrcode', null)
-					}
-					
-					
-				})
-			},
-			scrolltolower() {
-				const {
-					total,
-					list
-				} = this
-				if (list.length < total) {
-					this.page = this.page + 1
-					this.getList()
-				} else {
-					this.showToast('鏆傛棤鏇村鏁版嵁')
-				}
-			},
-			openEheck(item) {
-				this.modalForm = {
-					...item
-				}
-				this.showModal = true
-			},
-			onSubmit() {
-				const {
-					modalForm
-				} = this
-				if (!modalForm.actStock) return this.showToast('璇疯緭鍏ユ纭殑鐩樼偣鏁伴噺')
-				takingDataOpen({
-					...modalForm
-				}).then(res => {
-					if (res.code == 200) {
-						this.showToast('鎻愪氦鎴愬姛')
-						this.handleQuery()
-						this.getDetail()
-						this.showModal = false
-					}
-				})
-			},
-			changeAct(val) {
-				const actStock = this.modalForm.actStock || 0
-				this.$set(this.modalForm, 'actStock', actStock + val)
-			},
-			tabsClick(val) {
-				this.activeTab = val
-				this.page = 0
-				this.list = []
-				this.getList()
-			},
-			tipSub() {
-				const { info } = this
-				ywStocktaFinishById(info.id).then(res => {
-					this.showTip = false
-					uni.navigateBack()
-				})
-				
-			},
-			openQrcode() {
-				this.isScaning = true;
-				Html5Qrcode.getCameras().then((devices) => {
-					if (devices && devices.length) {
-						this.html5Qrcode = new Html5Qrcode('reader');
-						this.html5Qrcode.start({
-								facingMode: 'environment'
-							}, {
-								focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡
-								fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害
-								qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
-							},
-							(decodeText, decodeResult) => {
-								if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
-									this.stopScan()
-									this.$set(this.param, 'materialQrcode', decodeText)
-									this.handleQuery()
-								}
-							},
-							(err) => {
-								// console.log(err);  //閿欒淇℃伅
+		},
+		openQrcode() {
+			this.isScaning = true
+			Html5Qrcode.getCameras().then((devices) => {
+				if (devices && devices.length) {
+					this.html5Qrcode = new Html5Qrcode('reader')
+					this.html5Qrcode.start({
+						facingMode: 'environment'
+					}, {
+						focusMode: 'continuous', //璁剧疆杩炵画鑱氱劍妯″紡
+						fps: 5, //璁剧疆鎵爜璇嗗埆閫熷害
+						qrbox: 280 //璁剧疆浜岀淮鐮佹壂鎻忔澶у皬
+					},
+						(decodeText, decodeResult) => {
+							if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
+								this.stopScan()
+								this.$set(this.param, 'materialQrcode', decodeText)
+								this.handleQuery('null')
 							}
-						);
-					}
-				});
-			},
-
-			stopScan() {
-				console.log('鍋滄鎵爜')
-				this.isScaning = false;
-				if (this.html5Qrcode) {
-					this.html5Qrcode.stop();
+						},
+						(err) => {
+							// console.log(err);  //閿欒淇℃伅
+						}
+					)
 				}
+			})
+		},
+
+		stopScan() {
+			console.log('鍋滄鎵爜')
+			this.isScaning = false
+			if (this.html5Qrcode) {
+				this.html5Qrcode.stop()
 			}
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.main_app {
-		padding: 0 30rpx;
-		overflow: hidden;
-	}
+.main_app {
+	padding: 0 30rpx;
+	overflow: hidden;
+}
 
-	.tabs {
+.tabs {
+	display: flex;
+	width: 750rpx;
+	margin: 12rpx -30rpx 20rpx;
+	border-bottom: 1rpx solid #E5E5E5;
+
+	.tab {
+		font-size: 30rpx;
+		color: #666666;
+		flex: 1;
 		display: flex;
-		width: 750rpx;
-		margin: 12rpx -30rpx 20rpx;
-		border-bottom: 1rpx solid #E5E5E5;
+		flex-direction: column;
+		align-items: center;
+		justify-content: flex-end;
+		height: 72rpx;
 
-		.tab {
-			font-size: 30rpx;
-			color: #666666;
-			flex: 1;
+		.name {
 			display: flex;
-			flex-direction: column;
 			align-items: center;
-			justify-content: flex-end;
-			height: 72rpx;
-
-			.name {
-				display: flex;
-				align-items: center;
-			}
-
-			.border {
-				width: 54rpx;
-				height: 6rpx;
-				background-color: #fff;
-				border-radius: 3rpx;
-				margin-top: 12rpx;
-			}
 		}
 
-		.active {
-			font-weight: 600;
-			font-size: 32rpx;
-			color: #222222;
+		.border {
+			width: 54rpx;
+			height: 6rpx;
+			background-color: #fff;
+			border-radius: 3rpx;
+			margin-top: 12rpx;
+		}
+	}
 
-			.border {
-				background-color: $primaryColor;
-			}
+	.active {
+		font-weight: 600;
+		font-size: 32rpx;
+		color: #222222;
 
+		.border {
+			background-color: $primaryColor;
 		}
 
 	}
 
-	.head_wrap {
+}
+
+.head_wrap {
+	display: flex;
+	align-items: center;
+	margin-bottom: 36rpx;
+
+	.search_wrap {
 		display: flex;
 		align-items: center;
-		margin-bottom: 36rpx;
+		width: 100%;
+		height: 76rpx;
+		background: #F7F7F7;
+		border-radius: 38rpx;
+		padding-left: 30rpx;
 
-		.search_wrap {
-			display: flex;
-			align-items: center;
-			width: 100%;
-			height: 76rpx;
-			background: #F7F7F7;
-			border-radius: 38rpx;
-			padding-left: 30rpx;
-
-			input {
-				flex: 1;
-			}
-
-			.search {
-				width: 28rpx;
-				height: 28rpx;
-			}
+		input {
+			flex: 1;
 		}
 
-	}
-
-	.scroll_Y {
-		height: calc(100vh - 350rpx);
-	}
-
-	.list {
-
-		.item {
-			border-bottom: 1rpx solid #E5E5E5;
-			padding-bottom: 24rpx;
-			margin-bottom: 16rpx;
-
-			.title {
-				font-weight: 600;
-				font-size: 34rpx;
-				color: #222222;
-				margin-bottom: 10rpx;
-			}
-
-			.line {
-				height: 60rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				color: #666666;
-
-				.btn {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					height: 60rpx;
-					padding: 0 20rpx;
-					background: #0068FF;
-					box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
-					border-radius: 30rpx;
-					font-size: 26rpx;
-					color: #FFFFFF;
-				}
-			}
-
-			.static {
-				display: flex;
-				height: 84rpx;
-				background: #F7F7F7;
-				font-size: 30rpx;
-				margin-top: 12rpx;
-				padding: 16rpx 0;
-
-				.spi {
-					border: 1rpx solid #E5E5E5;
-				}
-
-				.ite {
-					flex: 1;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-
-					.val {
-						font-weight: 500;
-					}
-				}
-			}
+		.search {
+			width: 28rpx;
+			height: 28rpx;
 		}
 	}
 
-	.footer_btn {
-		padding: 20rpx 40rpx 0;
-		border-top: 1px solid #e5e5e5;
-		width: 750rpx;
-		margin: 0 -30rpx;
+}
 
-		.sweep {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			font-size: 32rpx;
-			font-weight: 500;
-			width: 670rpx;
-			height: 88rpx;
-			background: #0068FF;
-			box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
-			border-radius: 44rpx;
-			color: #FFFFFF;
-		}
+.scroll_Y {
+	height: calc(100vh - 350rpx);
+}
 
-		.sub_result {
-			background-color: #fff;
-			color: #FF0000;
-			border: 1rpx solid #FF0000;
-			box-shadow: none
-		}
+.list {
 
-		image {
-			width: 32rpx;
-			height: 32rpx;
-			margin-right: 6rpx;
-		}
-	}
-
-	.modal_wrap {
-		padding: 36rpx 30rpx;
-
-		.modal_title {
-			font-weight: 500;
-			font-size: 32rpx;
-			color: #222222;
-			margin-bottom: 40rpx;
-			text-align: center;
-		}
+	.item {
+		border-bottom: 1rpx solid #E5E5E5;
+		padding-bottom: 24rpx;
+		margin-bottom: 16rpx;
 
 		.title {
 			font-weight: 600;
 			font-size: 34rpx;
 			color: #222222;
+			margin-bottom: 10rpx;
+			flex: 1;
 		}
-
-		.item {
-			font-size: 28rpx;
-			color: #666666;
-			height: 56rpx;
+		.head{
+			display: flex;
+			// align-items: center;
+			justify-content: space-between;
+			color: #666666;
+			.status{
+				width: 76rpx;
+				text-align: right;
+				padding-top: 3rpx;
+			}
+		}
+		.line {
+			height: 60rpx;
 			display: flex;
 			align-items: center;
-		}
-
-		.content {
-			border-top: 1rpx solid #E5E5E5;
-			margin-top: 16rpx;
-
-			.line {
-				height: 84rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-
-				.la {
-					font-weight: 500;
-					font-size: 32rpx;
-					color: #222222;
-				}
-
-				.val {
-					display: flex;
-					justify-content: flex-end;
-					align-items: center;
-					flex: 1;
-
-					.wrap {
-						display: flex;
-						align-items: center;
-
-						input {
-							width: 120rpx;
-							height: 72rpx;
-							border-radius: 8rpx;
-							border: 2rpx solid #0068FF;
-							margin: 0 16rpx;
-							padding: 0 10rpx;
-							text-align: center;
-						}
-					}
-
-					.unit {
-						font-size: 30rpx;
-						color: #666666;
-						margin-left: 20rpx;
-					}
-				}
-
-				image {
-					width: 72rpx;
-					height: 72rpx;
-				}
-			}
-		}
-
-		.remark {
-			margin-top: 16rpx;
-
-			.la {
-				font-size: 30rpx;
-				color: #222222;
-				margin-bottom: 16rpx;
-			}
-
-			textarea {
-				width: 690rpx;
-				height: 240rpx;
-				background: #F7F7F7;
-				border-radius: 12rpx;
-				padding: 10rpx 20rpx;
-			}
-		}
-
-		.btns {
-			display: flex;
 			justify-content: space-between;
-			align-items: center;
-			margin-top: 80rpx;
-
+			color: #666666;
+			
 			.btn {
-				width: 336rpx;
-				height: 88rpx;
-				border-radius: 44rpx;
-				border: 2rpx solid $primaryColor;
 				display: flex;
 				align-items: center;
 				justify-content: center;
-				font-size: 32rpx;
-				color: $primaryColor;
-			}
-
-			.sub {
-				background-color: $primaryColor;
-				color: #fff;
+				height: 60rpx;
+				padding: 0 20rpx;
+				background: #0068FF;
+				box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
+				border-radius: 30rpx;
+				font-size: 26rpx;
+				color: #FFFFFF;
 			}
 		}
-	}
 
-
-	.modal_t {
-		width: 520rpx;
-		text-align: center;
-		display: flex;
-		flex-direction: column;
-
-		.h1 {
-			height: 86rpx;
-			font-weight: 500;
-			font-size: 32rpx;
-			color: #333333;
+		.static {
 			display: flex;
-			align-items: flex-end;
-			justify-content: center;
-		}
+			height: 84rpx;
+			background: #F7F7F7;
+			font-size: 30rpx;
+			margin-top: 12rpx;
+			padding: 16rpx 0;
 
-		.content {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			justify-content: center;
-			align-items: center;
-			padding: 30rpx 0;
-		}
+			.spi {
+				border: 1rpx solid #E5E5E5;
+			}
 
-		.btns {
-			height: 102rpx;
-			display: flex;
-			align-items: center;
-			border-top: 1rpx solid #E5E5E5;
-
-			.btn {
-				height: 102rpx;
+			.ite {
 				flex: 1;
 				display: flex;
 				align-items: center;
 				justify-content: center;
-				border-right: 1rpx solid #E5E5E5;
-				font-weight: 400;
-				font-size: 32rpx;
-				color: #999999;
 
-				&:nth-last-child(1) {
-					border-right: none;
+				.val {
+					font-weight: 500;
+				}
+			}
+		}
+	}
+}
+
+.footer_btn {
+	padding: 20rpx 40rpx 0;
+	border-top: 1px solid #e5e5e5;
+	width: 750rpx;
+	margin: 0 -30rpx;
+
+	.sweep {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-size: 32rpx;
+		font-weight: 500;
+		width: 670rpx;
+		height: 88rpx;
+		background: #0068FF;
+		box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
+		border-radius: 44rpx;
+		color: #FFFFFF;
+	}
+
+	.sub_result {
+		background-color: #fff;
+		color: #FF0000;
+		border: 1rpx solid #FF0000;
+		box-shadow: none
+	}
+
+	image {
+		width: 32rpx;
+		height: 32rpx;
+		margin-right: 6rpx;
+	}
+}
+
+.modal_wrap {
+	padding: 36rpx 30rpx;
+
+	.modal_title {
+		font-weight: 500;
+		font-size: 32rpx;
+		color: #222222;
+		margin-bottom: 40rpx;
+		text-align: center;
+	}
+
+	.title {
+		font-weight: 600;
+		font-size: 34rpx;
+		color: #222222;
+	}
+
+	.item {
+		font-size: 28rpx;
+		color: #666666;
+		height: 56rpx;
+		display: flex;
+		align-items: center;
+	}
+
+	.content {
+		border-top: 1rpx solid #E5E5E5;
+		margin-top: 16rpx;
+
+		.line {
+			height: 84rpx;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.la {
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #222222;
+			}
+
+			.val {
+				display: flex;
+				justify-content: flex-end;
+				align-items: center;
+				flex: 1;
+
+				.wrap {
+					display: flex;
+					align-items: center;
+
+					input {
+						width: 120rpx;
+						height: 72rpx;
+						border-radius: 8rpx;
+						border: 2rpx solid #0068FF;
+						margin: 0 16rpx;
+						padding: 0 10rpx;
+						text-align: center;
+					}
+				}
+
+				.unit {
+					font-size: 30rpx;
+					color: #666666;
+					margin-left: 20rpx;
 				}
 			}
 
-			.sub {
-				color: $primaryColor;
+			image {
+				width: 72rpx;
+				height: 72rpx;
 			}
 		}
 	}
 
-	.reader-box {
-		position: fixed;
-		top: 0;
-		bottom: 0;
-		left: 0;
-		right: 0;
-		background-color: rgba(0, 0, 0, 0.5);
+	.remark {
+		margin-top: 16rpx;
+
+		.la {
+			font-size: 30rpx;
+			color: #222222;
+			margin-bottom: 16rpx;
+		}
+
+		textarea {
+			width: 690rpx;
+			height: 240rpx;
+			background: #F7F7F7;
+			border-radius: 12rpx;
+			padding: 10rpx 20rpx;
+		}
 	}
 
-	.reader {
-		width: 100%;
-		// width: 540rpx;
-		// height: 540rpx;
-		position: absolute;
-		top: 50%;
-		left: 50%;
-		transform: translate(-50%, -50%);
+	.btns {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		margin-top: 80rpx;
+
+		.btn {
+			width: 336rpx;
+			height: 88rpx;
+			border-radius: 44rpx;
+			border: 2rpx solid $primaryColor;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: 32rpx;
+			color: $primaryColor;
+		}
+
+		.sub {
+			background-color: $primaryColor;
+			color: #fff;
+		}
 	}
+}
+
+
+.modal_t {
+	width: 520rpx;
+	text-align: center;
+	display: flex;
+	flex-direction: column;
+
+	.h1 {
+		height: 86rpx;
+		font-weight: 500;
+		font-size: 32rpx;
+		color: #333333;
+		display: flex;
+		align-items: flex-end;
+		justify-content: center;
+	}
+
+	.content {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		padding: 30rpx 0;
+	}
+
+	.btns {
+		height: 102rpx;
+		display: flex;
+		align-items: center;
+		border-top: 1rpx solid #E5E5E5;
+
+		.btn {
+			height: 102rpx;
+			flex: 1;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			border-right: 1rpx solid #E5E5E5;
+			font-weight: 400;
+			font-size: 32rpx;
+			color: #999999;
+
+			&:nth-last-child(1) {
+				border-right: none;
+			}
+		}
+
+		.sub {
+			color: $primaryColor;
+		}
+	}
+}
+
+.reader-box {
+	position: fixed;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	background-color: rgba(0, 0, 0, 0.5);
+}
+
+.reader {
+	width: 100%;
+	// width: 540rpx;
+	// height: 540rpx;
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	transform: translate(-50%, -50%);
+}
 </style>
\ No newline at end of file
diff --git a/h5/pages/inventory/index.vue b/h5/pages/inventory/index.vue
index 9181d91..56dd855 100644
--- a/h5/pages/inventory/index.vue
+++ b/h5/pages/inventory/index.vue
@@ -8,36 +8,39 @@
 			</view>
 		</view>
 		<!--  -->
-		<view class="list">
-			<view class="item" @click="itemClick(item)" v-for="item in list">
-				<image v-if="item.status == 0 || item.status == 1" class="img" src="@/static/side/ic_pandian@2x.png" mode="">
-				</image>
-				<image v-else class="img" src="@/static/side/ic_pandian_grey@2x.png" mode=""></image>
-				<view class="content">
-					<view class="head">
-						<view class="title">{{item.name}}</view>
-						<view class="status" v-if="item.status == 0">鏈紑濮�</view>
-						<view class="status green" v-if="item.status == 1">鐩樼偣涓�</view>
-						<view class="status gray" v-if="item.status == 2">宸插畬鎴�</view>
-						<view class="status gray" v-if="item.status == 3">宸插彇娑�</view>
-					</view>
-					<view class="line">鐩樼偣鏃ユ湡锛歿{item.planDate}}</view>
-					<view class="line">鐩樼偣浠撳簱锛歿{item.warehouseName}}</view>
-					<view class="line">
-						<view class="">鐩樼偣浜哄憳锛歿{item.userName}}</view>
-						<view class="btn" v-if="item.status == 0" @click="startHandle(item)">寮�濮嬬洏鐐�</view>
+		<scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
+			<view class="list">
+				<view class="item" @click="itemClick(item)" v-for="item in list">
+					<image v-if="item.status == 0 || item.status == 1" class="img" src="@/static/side/ic_pandian@2x.png" mode="">
+					</image>
+					<image v-else class="img" src="@/static/side/ic_pandian_grey@2x.png" mode=""></image>
+					<view class="content">
+						<view class="head">
+							<view class="title">{{item.name}}</view>
+							<view class="status" v-if="item.status == 0">鏈紑濮�</view>
+							<view class="status green" v-if="item.status == 1">鐩樼偣涓�</view>
+							<view class="status gray" v-if="item.status == 2">宸插畬鎴�</view>
+							<view class="status gray" v-if="item.status == 3">宸插彇娑�</view>
+						</view>
+						<view class="line">鐩樼偣鏃ユ湡锛歿{item.planDate}}</view>
+						<view class="line">鐩樼偣浠撳簱锛歿{item.warehouseName}}</view>
+						<view class="line">
+							<view class="">鐩樼偣浜哄憳锛歿{item.userName}}</view>
+							<view class="btn" v-if="item.status == 0 && item.timeFlag" @click="startHandle(item)">寮�濮嬬洏鐐�</view>
+						</view>
 					</view>
 				</view>
 			</view>
-		</view>
+		</scroll-view>
 	</view>
 </template>
 
 <script>
 	import {
-		getYwStocktaking,
+		getYwStocktaking,
 		ywStocktakingBegin
-	} from '@/api'
+	} from '@/api'
+	import dayjs from 'dayjs';
 	export default {
 		data() {
 			return {
@@ -63,29 +66,33 @@
 						...param
 					}
 				}).then(res => {
-					this.list = [...this.list, ...res.data.records]
+					this.list = [...this.list, ...res.data.records]
+					let date = dayjs().format('YYYY-MM-DD')
+					this.list.forEach(item => {
+						item.timeFlag = new Date(item.planDate).getTime() <= new Date(date+' 23:59:59').getTime()
+					})
 					this.total = res.data.total
 				})
-			},
-			itemClick(item) {
-				if(item.status == 1){
-					uni.navigateTo({
-						url: '/pages/inventory/detail?id=' + item.id
-					})
-				}
+			},
+			itemClick(item) {
+				if (item.status != 0) {
+					uni.navigateTo({
+						url: '/pages/inventory/detail?id=' + item.id
+					})
+				}
 			},
 			startHandle(item) {
 				uni.showModal({
 					content: '鐩樼偣鏈熼棿涓嶅彲杩涜鍑哄叆搴撴搷浣�',
 					success: (res) => {
-						if (res.confirm) {
-							ywStocktakingBegin(item.id).then(() => {
-								uni.navigateTo({
-									url: '/pages/inventory/detail?id=' + item.id
-								})
+						if (res.confirm) {
+							ywStocktakingBegin(item.id).then(() => {
+								uni.navigateTo({
+									url: '/pages/inventory/detail?id=' + item.id
+								})
 							})
-							
-						} 
+
+						}
 					}
 				})
 			},
@@ -112,15 +119,14 @@
 
 <style lang="scss">
 	.main_app {
-		padding: 10rpx 30rpx 0;
+		padding: 0rpx 30rpx 0;
 		font-size: 28rpx;
 	}
 
 	.head_wrap {
 		display: flex;
 		align-items: center;
-		margin-bottom: 40rpx;
-
+		height: 110rpx;	
 		.search_wrap {
 			display: flex;
 			align-items: center;
@@ -141,15 +147,16 @@
 		}
 
 	}
-
+	.scroll_Y{
+		height: calc(100vh - 126rpx);
+	}
 	.list {
-		height: calc(100vh - 136rpx);
-
 		.item {
 			display: flex;
 			border-bottom: 1rpx solid #E5E5E5;
 			padding-bottom: 28rpx;
 			margin-bottom: 20rpx;
+
 			.img {
 				width: 80rpx;
 				height: 80rpx;
@@ -163,18 +170,21 @@
 
 				.head {
 					display: flex;
-					align-items: center;
+					// align-items: center;
 					justify-content: space-between;
 					margin-bottom: 12rpx;
 
 					.title {
 						font-weight: 600;
 						font-size: 34rpx;
-						color: #222222;
+						color: #222222;
+						flex: 1;
 					}
 
 					.status {
-						color: $primaryColor;
+						color: $primaryColor;
+						width: 96rpx;
+						padding-top: 3rpx;
 					}
 
 					.green {
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index ebe40f2..dc65036 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -45,14 +45,20 @@
 				form: {
 					phone: '',
 					code: ''
-				},
+				},
+				ywinfo: {},
 				downTime: 0,
 				code: ''
 			}
 		},
 		onLoad(option) {
 			console.log('onLoad');
-			// https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid
+			// https://zhcg.fnwtzx.com/#/pages/login?type=0&ywid=ywid
+			const ywinfo = uni.getStorageSync('ywinfo') || {}
+			if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
+				this.ywinfo = ywinfo
+				uni.setStorageSync('ywinfo', {})
+			}
 			if (option.ywid || option.ywid == 0) {
 				uni.setStorageSync('ywinfo', {
 					type: option.type,
@@ -84,11 +90,10 @@
 							getUserInfo().then(ress => {
 								that.$store.commit('setUserInfo', ress.data)
 							})
-							const ywinfo = uni.getStorageSync('ywinfo') || {}
+							const ywinfo = this.ywinfo
 							if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
 								getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
 									if(res.data && res.data.id){
-										uni.setStorageSync('ywinfo', {})
 										uni.redirectTo({
 											url: "/pages/polling/point?id=" + res.data.id
 										})
@@ -141,12 +146,11 @@
 						this.showToast('鐧诲綍鎴愬姛')
 						getUserInfo().then(ress => {
 							this.setUserInfo(ress.data)
-							const ywinfo = uni.getStorageSync('ywinfo') || {}
+							const ywinfo = this.ywinfo
 							if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
 							getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
 								getRecordByUserPoint({pointCode: ywinfo.ywid}).then(res => {
 									if(res.data && res.data.id){
-										uni.setStorageSync('ywinfo', {})
 										uni.redirectTo({
 											url: "/pages/polling/point?id=" + res.data.id
 										})
diff --git a/h5/pages/workOrder/wait.vue b/h5/pages/workOrder/wait.vue
index 7ccd30a..d3fd3e1 100644
--- a/h5/pages/workOrder/wait.vue
+++ b/h5/pages/workOrder/wait.vue
@@ -115,17 +115,16 @@
 				this.getList()
 			},
 			itemClick(item) {
-				if (item.objType == 0) {
-					return
-					uni.navigateTo({
-						url: `/pages/inventory/detail?id=${item.objId}`
+				if (item.objType == 0 && item.status == 1) {
+					uni.navigateTo({
+						url: `/pages/inventory/detail?id=${item.objId}`
 					})
 				} else if (item.objType == 1) {
 					// return
 					uni.navigateTo({
 						url: `/pages/polling/detail?id=${item.objId}`
 					})
-				} else {
+				} else if(item.objType == 2) {
 					uni.navigateTo({
 						url: `/pages/workOrder/detail?id=${item.objId}`
 					})
@@ -243,7 +242,8 @@
 		.main_app {
 			padding: 0;
 			height: 100vh;
-			overflow: hidden;
+			overflow: hidden;
+			background-color: #fff;
 		}
 
 		.tabs {
@@ -279,7 +279,7 @@
 					height: 6rpx;
 					background-color: #fff;
 					border-radius: 3rpx;
-					margin-top: 24rpx;
+					margin-top: 16rpx;
 				}
 			}
 

--
Gitblit v1.9.3