From 30190a149dfcf465104d08c54ec4e2d4d8074b17 Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期一, 19 一月 2026 14:05:38 +0800
Subject: [PATCH] Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

---
 pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList.vue                         |  455 ++++
 pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBill.vue     |  819 +++++++
 pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue |    2 
 utils/WebSocketServices.js                                                       |  252 +
 pages.json                                                                       |   36 
 pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue     |  831 +++++++
 pages/index/tab2.vue                                                             |   16 
 pages/index/tab4.vue                                                             |   21 
 App.vue                                                                          |   36 
 pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList.vue |    2 
 pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue                    |    6 
 pages/index/tab1.vue                                                             |   19 
 utils/common.js                                                                  |    1 
 /dev/null                                                                        |  830 -------
 manifest.json                                                                    |    9 
 pages/index/tab3.vue                                                             |   24 
 pages/index/login.vue                                                            |    6 
 pages/guzhangdengji/EqpConkBookBillList.vue                                      |    2 
 pages/EmployeeRecords/EmployeeRecordsBill.vue                                    | 1566 ++++++++++++++
 pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill.vue                             |  816 +++++++
 pages/index/index.vue                                                            |    1 
 pages/index/mine.vue                                                             |    7 
 pages/EmployeeRecords/EmployeeRecordsBillList.vue                                |  558 +++++
 23 files changed, 5,379 insertions(+), 936 deletions(-)

diff --git a/App.vue b/App.vue
index bb88175..16c947d 100644
--- a/App.vue
+++ b/App.vue
@@ -1,17 +1,47 @@
 <script>
+    import WebSocketServices from "./utils/WebSocketServices";
     import {
         getOpenId,
         setUserInfo,
         setToken,
-        getToken
+        getToken,
+        getUserInfo
     } from "./utils/auth";
     export default {
         onLaunch: function() {
             console.log('App Launch')
+            // #ifdef H5
+            // 娴嬭瘯鏃讹紝H5椤甸潰鍒锋柊浼氫涪澶盬ebSocket杩炴帴锛岄渶瑙﹀彂閲嶈繛 锛堥渶瑕佹祴璇曠殑鏃跺�欏啀瑙i櫎娉ㄩ噴锛屽惁鍒欎細褰卞搷鐑洿鏂帮級
+            // if (uni.getStorageSync("userinfo")) {
+            //     if (WebSocketServices.wsInstance) { // 鍋囪浣犵殑 WebSocket 瀹炰緥瀛樺湪 wsInstance 涓�
+            //         WebSocketServices.closeConnect(); // 璋冪敤浣犲皝瑁呯殑鈥滃叧闂繛鎺モ�濇柟娉�
+            //     }
+
+            //     setTimeout(() => {
+            //         WebSocketServices.createConnect(
+            //             getUserInfo()["Czybm"],
+            //             getUserInfo()["Czymc"],
+            //         )
+            //     }, 500)
+
+            // }
+
+            // // 鍏抽敭锛氱洃鍚儹鏇存柊妯″潡鏇挎崲锛岄攢姣佹棫杩炴帴
+            // if (module.hot) {
+            //     module.hot.accept(); // 鍏佽褰撳墠妯″潡鐑洿鏂�
+            //     module.hot.dispose(() => {
+            //         // 鐑洿鏂版浛鎹㈡ā鍧楀墠锛岄攢姣� WebSocket 杩炴帴
+            //         if (WebSocketServices.wsInstance) {
+            //             WebSocketServices.closeConnect();
+            //             WebSocketServices.wsInstance = null; // 閲嶇疆瀹炰緥
+            //         }
+            //     });
+            // }
+            // #endif
         },
         onShow: function() {
             console.log('App Show')
-        
+
         },
         onHide: function() {
             console.log('App Hide')
@@ -30,7 +60,7 @@
 
     /* 鐢ㄤ簬瑙e喅picker鍐呴儴璁剧疆 disabled input 鏃朵笉鍝嶅簲鐨勯棶棰� */
     .picker-overlay {
-		box-sizing: border-box;
+        box-sizing: border-box;
         position: absolute;
         top: 0;
         left: 0;
diff --git a/manifest.json b/manifest.json
index 744eae3..2a2de20 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
     "name" : "鏅轰簯LMES",
     "appid" : "__UNI__B002F49",
     "description" : "",
-    "versionName" : "2.0.57",
-    "versionCode" : 257,
+    "versionName" : "2.0.58",
+    "versionCode" : 258,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
@@ -26,7 +26,8 @@
             "Camera" : {},
             "Contacts" : {},
             "Bluetooth" : {},
-            "Barcode" : {}
+            "Barcode" : {},
+            "Push" : {}
         },
         /* 搴旂敤鍙戝竷淇℃伅 */
         "distribute" : {
@@ -131,7 +132,7 @@
                     }
                 }
             }
-        }
+            }
     },
     /* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
     "quickapp" : {},
diff --git a/pages.json b/pages.json
index 0f9865c..0cabc1d 100644
--- a/pages.json
+++ b/pages.json
@@ -1005,26 +1005,26 @@
 			}
 		},
 		{
-			"path": "pages/quyangdan/TakeSampleCheckBillList",
+			"path": "pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList",
 			"style": {
 				"navigationBarTitleText": "鍙栨牱鍗�"
 			}
 		},
 		{
-			"path": "pages/quyangdan/TakeSampleCheckBill",
+			"path": "pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill",
 			"style": {
 				"navigationBarTitleText": "鍙栨牱鍗�"
 			}
 		},
 		{
-			"path": "pages/huanyangdan/BackSampleCheckBillList",
+			"path": "pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList",
 			"style": {
 				"navigationBarTitleText": "杩樻牱鍗�",
 				"enablePullDownRefresh": true
 			}
 		},
 		{
-			"path": "pages/huanyangdan/BackSampleCheckBill",
+			"path": "pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBill",
 			"style": {
 				"navigationBarTitleText": "杩樻牱鍗�",
 				"enablePullDownRefresh": true
@@ -1576,7 +1576,35 @@
 		    {
 		        "navigationBarTitleText" : "鍣ㄥ叿缁翠慨浠诲姟"
 		    }
+		},
+		{
+		    "path" : "pages/EmployeeRecords/EmployeeRecordsBill",
+		    "style" : 
+		    {
+		        "navigationBarTitleText" : "鍛樺伐绛惧埌璁板綍琛�"
+		    }
+		},
+		{
+		    "path" : "pages/EmployeeRecords/EmployeeRecordsBillList",
+		    "style" : 
+		    {
+		        "navigationBarTitleText" : "鍛樺伐绛惧埌璁板綍琛ㄥ垪琛�"
+		    }
+		},
+		{
+		    "path" : "pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill",
+		    "style" : 
+		    {
+		        "navigationBarTitleText" : "璁惧鏁呴殰鐧昏鍗�"
+		    }
+		},{
+		    "path" : "pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList",
+		    "style" : 
+		    {
+		        "navigationBarTitleText" : "璁惧鏁呴殰鐧昏鍗曞垪琛�"
+		    }
 		}
+		
 
 	],
 	"tabBar": {
diff --git a/pages/EmployeeRecords/EmployeeRecordsBill.vue b/pages/EmployeeRecords/EmployeeRecordsBill.vue
new file mode 100644
index 0000000..e6f179a
--- /dev/null
+++ b/pages/EmployeeRecords/EmployeeRecordsBill.vue
@@ -0,0 +1,1566 @@
+<template>
+	<view class="form">
+		<view class="form-base-info">
+			<view class="form-item">
+				<view class="title">鏉$爜</view>
+				<view class="right">
+					<input type="text" :focus="HBarCodeFocus" v-model="HBarCode"
+						@confirm="GetMeesageByBarCode(HBarCode)" />
+				</view>
+				<view class="right-icon">
+					<uni-icons type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode2"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">瑙掕壊</view>
+				<view class="right">
+					<!-- 澶氶�変笅鎷夋 -->
+					<uni-data-select v-model="hform.HRoles" :multiple="true" :localdata="roleOptions"
+						placeholder="璇烽�夋嫨瑙掕壊" :clear="false" @change="onRoleChange">
+					</uni-data-select>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇杞﹂棿:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHDeptName" placeholder="璇烽�夋嫨杞﹂棿" v-model="hform.HDeptName"
+						@input="HDeptNameChange"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">绛惧埌浜哄憳:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHEmpName" placeholder="璇烽�夋嫨绛惧埌浜哄憳" v-model="hform.HEmpName"
+						@input="HEmpNameChange"></uni-combox>
+				</view>
+			</view>
+			
+			<view class="form-item">
+				<view class="title">鐝粍:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHGroupName" placeholder="璇烽�夋嫨杞﹂棿" v-model="hform.HGroupName"
+						@input="HGroupNameChange"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐝:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHShiftsName" placeholder="璇烽�夋嫨杞﹂棿" v-model="hform.HShiftsName"
+						@input="HShiftsNameChange"></uni-combox>
+				</view>
+			</view>	
+			<view class="form-item">
+				<view class="title">鐢熶骇璧勬簮:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHSourceName" placeholder="璇烽�夋嫨杞﹂棿" v-model="hform.HSourceName"
+						@input="HSourceNameChange"></uni-combox>
+				</view>
+			</view>	
+			<view class="form-item">
+				<view class="title">宸ュ簭:</view>
+				<view class="right">
+					<uni-combox :candidates="arrayHProcName" placeholder="璇烽�夋嫨杞﹂棿" v-model="hform.HProcName"
+						@input="HProcNameChange"></uni-combox>
+				</view>
+			</view>	
+			<view class="form-item">
+				<view class="title">鏃ユ湡</view>
+				<view class="right disabled">
+					<input type="text" disabled :value="hform.HDate" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍗曟嵁鍙�</view>
+				<view class="right disabled">
+					<input type="text" disabled :value="hform.HBillNo" />
+				</view>
+			</view>
+		</view>
+		<view class="tabs">
+			<view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">鏈哄彴淇℃伅</view>
+			<view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">宸ュ崟淇℃伅</view>
+			<view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">鍒跺崟淇℃伅</view>
+		</view>
+		<!-- 瑁呯淇℃伅 -->
+		<view v-if="tabs == 1">
+			<zb-table id="list-table" :checked-highlight="true" :fit="true" :style="{height: `${listTableHeight}px`}"
+				:columns="columns" :data="listData" :show-header="true" :border="true" :row-key="row => row.index"
+				@toggleRowSelection="handleSelect" @toggleAllSelection="handleSelectAll"
+				@rowClick="onTableRowClickHandler" />
+		</view>
+		<view v-if="tabs == 0" class="machine-info-container">
+			<view class="form-item" v-if="false">
+				<view class="title">璁惧ID:</view>
+				<view class="righton">
+					<input name="HEquipID" disabled v-model="hform.HEquipID" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">璁惧鍚嶇О:</view>
+				<view class="righton">
+					<input name="HEquipName" disabled v-model="hform.HEquipName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">妯″叿缂栫爜:</view>
+				<view class="righton">
+					<input name="HMouldNo" disabled v-model="hform.HMouldNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">妯″叿鍚嶇О:</view>
+				<view class="righton">
+					<input name="HMouldName" disabled v-model="hform.HMouldName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">妯″叿鐘舵��:</view>
+				<view class="righton">
+					<input name="HMouldState" disabled v-model="hform.HMouldState" />
+				</view>
+			</view>
+			<!--                <label class="checkbox" style="float: right;">
+                    <checkbox :checked="hform.chkHBarflag" style="transform:scale(0.8)" disabled color="#4f81fc" />鏉$爜鏍稿
+                </label> -->
+		</view>
+		<!-- 鍒跺崟淇℃伅 -->
+		<view v-if="tabs == 2">
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍒涘缓鏃ユ湡</view>
+					<view class="right">
+						<uni-datetime-picker type="date" v-model="hform.HDate">
+							<input type="text" v-model="hform.HDate" disabled />
+						</uni-datetime-picker>
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍒涘缓浜�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HMaker" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">淇敼鏃ユ湡</view>
+					<view class="right">
+						<uni-datetime-picker type="date" v-model="hform.HUpDateDate">
+							<input type="text" v-model="hform.HDate" disabled />
+						</uni-datetime-picker>
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">淇敼浜�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HUpDater" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">淇敼鏃ユ湡</view>
+					<view class="right">
+						<uni-datetime-picker type="date" v-model="hform.HCheckDate">
+							<input type="text" v-model="hform.HDate" disabled />
+						</uni-datetime-picker>
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">淇敼浜�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HChecker" />
+					</view>
+				</view>
+			</view>
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">鍗曟嵁鍙�</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HBillNo" />
+					</view>
+				</view>
+			</view>
+
+			<view class="bill-info">
+				<view class="form-item">
+					<view class="title">缁勭粐</view>
+					<view class="right disabled">
+						<input type="text" disabled :value="hform.HStockOrgName" />
+					</view>
+				</view>
+			</view>
+
+		</view>
+		<view class="bottom-btn" id="bottom-btn">
+			<button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini"
+				@tap="cmdSubmit">鎻愪氦</button>
+			<view style="flex: 1;"></view>
+			<!-- <button class="btn-d" size="mini" @tap="cmdDelete">鍒犻櫎</button> -->
+			<button class="btn-c" size="mini" @tap="cmdExit">閫�鍑�</button>
+		</view>
+		<!-- 鎵撳嵃妯″潡 -->
+		<labelPrinterComponentVue ref="labelPrinter" :printInfo="printInfo" :printMode="'cpcl'">
+		</labelPrinterComponentVue>
+
+		<!-- 鎵撳嵃鏈洪�夋嫨鍒楄〃 -->
+		<view v-if="maskShow" class="uni-mask" @tap="maskShow = false">
+			<scroll-view class="uni-scroll_box" scroll-y>
+				<view class="uni-list-box" v-for="(device, index) in discoveredDevices" :key="index"
+					@tap="connectBT(device)">
+					<view class="uni-list_name">鍚嶇О锛歿{ device.name }}</view>
+					<view class="uni-list_item">{{ connectedDeviceId === device.address?'宸茶繛鎺�':'鏈繛鎺�' }}</view>
+				</view>
+			</scroll-view>
+		</view>
+		<view v-if="showResultTable" class="result-modal">
+			<view class="modal-mask" @tap="closeResultTable"></view>
+			<view class="modal-content">
+				<view class="modal-header">
+					<text class="modal-title">绛惧埌缁撴灉</text>
+					<uni-icons type="close" size="20" @tap="closeResultTable"></uni-icons>
+				</view>
+				<view class="modal-body">
+					<zb-table :fit="true" :style="{height: '400px'}" :columns="resultTableColumns"
+						:data="resultTableData" :show-header="true" :border="true" :row-key="row => row.index" />
+				</view>
+				<view class="modal-footer">
+					<button class="btn-a" size="mini" @tap="toAddNew">鏂板</button>
+					<button class="btn-a" size="mini" @tap="search">鎵撳嵃</button>
+					<view style="flex: 1;"></view>
+					<button class="btn-c" size="mini" @tap="closeResultTable">鍏抽棴</button>
+				</view>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import dayjs from 'dayjs'
+	import {
+		getUserInfo
+	} from "../../utils/auth";
+	import {
+		CommonUtils
+	} from "@/utils/common.js"
+	import {
+		MpaasScan
+	} from "@/utils/mpaasScan.js"
+	import labelPrinterComponentVue from "@/components/labelPrinterComponent/labelPrinterComponent.vue"
+	import getdateTime from '../../utils/getdateTime';
+	export default {
+		components: {
+			labelPrinterComponentVue
+		},
+		data() {
+			return {
+
+				serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+				// 璁$畻鍒楄〃楂樺害
+				bottomBtnTop: 0,
+				listTableTop: 0,
+				// 鍏叡鍙橀噺 
+				arrayHDeptName: [], //閮ㄩ棬
+				HDeptNameList: [],
+				arrayHEmpName: [], //鍛樺伐
+				HEmpNameList: [],
+				arrayHGroupName: [], //鐝粍
+				HGroupNameList: [],
+				arrayHShiftsName: [], //鐝
+				HShiftsNameList: [],
+				arrayHSourceName: [], //鐢熶骇璧勬簮
+				HSourceNameList: [],
+				arrayHProcName: [], //宸ュ簭
+				HProcNameList: [],
+				
+				
+				EnableScanBarCodePack: true,
+				EnableSubmit: true,
+				HBarCodePackFocus: false,
+				HBarCodeFocus: false,
+
+				HBarCode: '', // 鍖呮潯鐮�
+				tabs: 0,
+				HBillType: '4616',
+				HBillSubType: '1', //瀛愮被鍨嬶紙1瑁呯銆�2缁勬墭锛�
+				OperationType: 1, //鎿嶄綔绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+				HMaterNumber_Pack: "", //鎵樻潯鐮佸搴旂墿鏂欎唬鐮�
+				listOption: [],
+				listData: [],
+				columns: [{
+						type: 'selection',
+						fixed: true,
+						width: 50
+					},
+					{
+						name: 'index',
+						label: '搴忓彿',
+						width: 60,
+						hidden: true
+					},
+					{
+						name: '娴佽浆鍗″彿',
+						label: '娴佽浆鍗″彿',
+						width: 100,
+					},
+					{
+						name: '鏁伴噺',
+						label: '鏁伴噺',
+						width: 100,
+					},
+					{
+						name: '鐗╂枡浠g爜',
+						label: '鐗╂枡浠g爜',
+						width: 100,
+					},
+					{
+						name: '鐗╂枡鍚嶇О',
+						label: '鐗╂枡鍚嶇О',
+						width: 100,
+					},
+					{
+						name: '瑙勬牸鍨嬪彿',
+						label: '瑙勬牸鍨嬪彿',
+						width: 100,
+					},
+					{
+						name: '鏁伴噺',
+						label: '鏁伴噺',
+						width: 100,
+					},
+					{
+						name: '鐢熶骇璧勬簮',
+						label: '鐢熶骇璧勬簮',
+						width: 100,
+					}
+				],
+				selectedRows: [], // 瀛樺偍閫変腑鐨勬暟鎹�
+				HModName: "Sc_PackUnionBill_Packing_PDA",
+				ModRightName: "CE_PackUnionBill_Packing", //妯″潡鏉冮檺鍙傛暟
+				titleData: [], //涓嶉渶瑕佹樉绀虹殑瀛楁
+				OperationType: 1, //浠庣紦瀛樺垪琛ㄤ腑杩斿洖鏁版嵁绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+				//钃濈墮鐩稿叧淇℃伅
+				printInfo: "", //鎵撳嵃鍐呭
+				maskShow: false, //钃濈墮鎵撳嵃鏈烘樉绀虹粦瀹�
+				printListData: [], //
+				//灞曠ず琛ㄥ崟
+				showResultTable: false, // 鎺у埗缁撴灉琛ㄦ牸鏄剧ず
+				resultTableData: [], // 缁撴灉琛ㄦ牸鏁版嵁
+				resultTableColumns: [{
+						name: '璁惧缂栫爜',
+						label: '璁惧缂栫爜',
+						width: 120,
+					},
+					{
+						name: '璁惧鍚嶇О',
+						label: '璁惧鍚嶇О',
+						width: 120,
+					},
+					{
+						name: '绛惧埌瑙掕壊',
+						label: '绛惧埌瑙掕壊',
+						width: 100,
+					},
+					{
+						name: '鐢熶骇璧勬簮鍚嶇О',
+						label: '鐢熶骇璧勬簮鍚嶇О',
+						width: 100,
+					}
+				],
+				//
+
+				// 琛ㄥ崟鎻愪氦鍊�
+				hform: {
+					HDate: dayjs(new Date()).format('YYYY-MM-DD'),
+					HMaker: getUserInfo()['Czymc'],
+					HInterID: '',
+					HStockOrgName: uni.getStorageSync("Organization"),
+					HStockOrgID: uni.getStorageSync("OrganizationID"),
+
+					HQualityApproval: false,
+
+					HMainID: '',
+					HSubID: '',
+					HSourceBillSEQ: '',
+					HBillNo: '',
+					HEmpID: getUserInfo()['HEmpID'] || '',
+					HEmpName: getUserInfo()['Czymc'] || '',
+					HEmpNumber: getUserInfo()['Czybm'] || uni.getStorageSync("HEmpNumber"),
+
+
+					HCheckEmpName: '',
+
+					HRemark: '',
+
+					HProduceDate: dayjs(new Date()).format('YYYY-MM-DD'),
+
+					//鑷畾涔�
+					HMouldID: 0,
+					HMouldName: '',
+					HMouldNumber: '',
+					HMouldNo: '',
+					HMouldState: '',
+					HEquipID: 0,
+					HEquipName: '',
+					HSourceID: uni.getStorageSync('HSourceID'),
+					HSourceName: uni.getStorageSync('HSourceName'),
+					HProcID: uni.getStorageSync('HProcID'),
+					HProcName:uni.getStorageSync('HProcName'),
+					HGroupID:uni.getStorageSync('HGroupID'),
+					HGroupName: uni.getStorageSync('HGroupName'),
+					HShiftsID: 0,
+					HShiftsName: '',
+					HDeptName: uni.getStorageSync('HDeptName'),
+					HDeptID: uni.getStorageSync('HDeptID'),
+					//HEmpID:0,
+					//HEmpName:'',
+					HSignInReason: '',
+					HSignRemark: '',
+
+					HMaterID: 0,
+					HMaterNumber: '',
+					HMaterName: '',
+					HMaterModel: '',
+					HRoles: [],
+				},
+				roleOptions: [],
+				// [{
+				// 		value: '鐝粍闀�',
+				// 		text: '鐝粍闀�'
+				// 	},
+				// 	{
+				// 		value: '鐝憳',
+				// 		text: '鐝憳'
+				// 	},
+				// 	{
+				// 		value: '鏈轰慨宸�',
+				// 		text: '鏈轰慨宸�'
+				// 	},
+				// 	{
+				// 		value: '鎿嶄綔宸�',
+				// 		text: '鎿嶄綔宸�'
+				// 	}
+				// ],
+				// 鍒嗛〉妯″潡鍏冩暟鎹�
+				paginationMeta: {
+
+				}
+			}
+		},
+		methods: {
+			onTableRowClickHandler(row, index) {
+				console.log('row: ', row);
+				if (!this.listData[index].checked) {
+					this.$set(this.listData[index], 'checked', true)
+				} else {
+					this.listData[index].checked = !this.listData[index].checked
+				}
+			},
+			async HBarCodeFocusRefresh() {
+				this.HBarCode = ''
+				this.HBarCodeFocus = false
+				await this.$nextTick()
+				this.HBarCodeFocus = true
+			},
+			async HBarCodePackFocusRefresh() {
+				this.HBarCode_Pack = ''
+				this.HBarCodePackFocus = false
+				await this.$nextTick()
+				this.HBarCodePackFocus = true
+			},
+			//#region 涓嬫媺妗�
+			//鑾峰彇浣跨敤閮ㄩ棬鏁版嵁
+			async getHDeptList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/PublicPageMethod/DeptList',
+						data: {
+							sWhere: "where HStopFlag=0 and HEndFlag=1 and HUSEORGID = " + uni.getStorageSync(
+								'OrganizationID') + ""
+						},
+					})
+					
+					console.log('res: ', res);
+					if (res.data.count == 1) {
+						console.log('res.data.data: ', res.data.data);
+						this.HDeptNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHDeptName = res.data.data.map(item => item.HName)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨浣跨敤閮ㄩ棬
+			HDeptNameChange(e) {
+				for (var i = 0; i < this.HDeptNameList.length; i++) {
+					if (this.HDeptNameList[i].HName == e) {
+						this.hform.HDeptID = this.HDeptNameList[i].HItemID
+					}
+				}
+			},
+			//鎿嶄綔鍛樸�佽礋璐d汉
+			async getHEmpList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/Web/GetEmployeeList_Json',
+						data: {
+							Employee: '',
+							HGroupID: 0
+						},
+					})
+					
+					console.log('res: ', res);
+					if (res.data.count == 1) {
+						console.log('res.data.data: ', res.data.data);
+						this.HEmpNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHEmpName = res.data.data.map(item => item.HName)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨鎿嶄綔鍛�
+			HEmpNameChange(e) {
+				for (var i = 0; i < this.HEmpNameList.length; i++) {
+					if (this.HEmpNameList[i].HName == e) {
+						this.hform.HEmpID = this.HEmpNameList[i].HItemID
+					}
+				}
+			},
+			
+			//鐝粍
+			async getHGroupList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/Gy_Group/list',
+						data: {
+							sWhere: '',
+							user: getUserInfo()['Czymc'] || '',
+						},
+					})
+					
+					console.log('res: ', res);
+					if (res.data.count > 0) {
+						console.log('res.data.data: ', res.data.data);
+						this.HGroupNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHGroupName = res.data.data.map(item => item.鐝粍鍚嶇О)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨鐝粍
+			HGroupNameChange(e) {
+				for (var i = 0; i < this.HGroupNameList.length; i++) {
+					if (this.HGroupNameList[i].鐝粍鍚嶇О == e) {
+						this.hform.HGroupID = this.HGroupNameList[i].HItemID
+					}
+				}
+			},
+			//鐝璫i
+			async getHShiftsList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
+						data: {
+							sWhere: '',
+							HMaker: getUserInfo()['Czymc'] || '',
+						},
+					})
+					
+					console.log('res: ', res);
+					if (res.data.count > 0) {
+						console.log('res.data.data: ', res.data.data);
+						this.HShiftsNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHShiftsName = res.data.data.map(item => item.鐝鍚嶇О)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨鐝璫i
+			HShiftsNameChange(e) {
+				for (var i = 0; i < this.HSourceNameList.length; i++) {
+					if (this.HSourceNameList[i].鐝鍚嶇О == e) {
+						this.hform.HSourceID = this.HSourceNameList[i].HInterID
+					}
+				}
+			},
+			//鐢熶骇璧勬簮
+			async getHSourceList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/Gy_Source/list',
+						data: {
+							sWhere: '',
+							user: getUserInfo()['Czymc'] || '',
+						},
+					})
+					
+					console.log('鐢熶骇璧勬簮res: ', res);
+					if (res.data.count > 0) {
+						console.log('鐢熶骇璧勬簮res.data.data: ', res.data.data);
+						this.HSourceNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHSourceName = res.data.data.map(item => item.鐢熶骇璧勬簮鍚嶇О)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨shengcanziyuan
+			HSourceNameChange(e) {
+				for (var i = 0; i < this.HSourceNameList.length; i++) {
+					if (this.HSourceNameList[i].鐢熶骇璧勬簮鍚嶇О == e) {
+						this.hform.HSourceID = this.HSourceNameList[i].HItemID
+						console.log("HSourceID涓�",this.hform.HSourceID)
+					}
+				}
+			},	
+			//宸ュ簭
+			async getHProcList() {
+				try{
+					let res = await CommonUtils.doRequest2Async({
+						url: '/Gy_Process/list',
+						data: {
+							sWhere: '',
+							user: getUserInfo()['Czymc'] || '',
+						},
+					})
+					
+					console.log('宸ュ簭res: ', res);
+					if (res.data.count > 0) {
+						console.log('宸ュ簭res.data.data: ', res.data.data);
+						this.HProcNameList = res.data.data
+						// for (var i = 0; i < res.data.data.length; i++) {
+						// 	this.arrayHDeptName[i] = res.data.data[i].HName
+						// }
+						this.arrayHProcName = res.data.data.map(item => item.宸ュ簭鍚嶇О)
+						this.$forceUpdate();
+					} else {
+						uni.showToast({
+							title: res.data.Message,
+							icon: 'none'
+						})
+					}
+				}catch(err) {
+					uni.showToast({
+						title: err,
+						icon: 'none'
+					})
+				}
+				
+			},
+			//閫夋嫨Proc
+			HProcNameChange(e) {
+				for (var i = 0; i < this.HProcNameList.length; i++) {
+					if (this.HProcNameList[i].宸ュ簭鍚嶇О == e) {
+						this.hform.HProcID = this.HProcNameList[i].HItemID
+					}
+				}
+			},	
+			
+			
+			// 鑾峰彇瑙掕壊鍒楄〃
+			async getRoleList() {
+			  try {
+			    let res = await CommonUtils.doRequest2Async({
+			      url: '/Xt_UserGroup/list',
+			      data: {
+			        sWhere: '',
+			      },
+			    })
+			    
+			    console.log('瑙掕壊鍒楄〃res: ', res);
+			    if (res.data.count > 0) {
+			      console.log('瑙掕壊鍒楄〃res.data.data: ', res.data.data);
+			      // 灏嗘帴鍙h繑鍥炵殑鏁版嵁杞崲涓� uni-data-select 闇�瑕佺殑鏍煎紡
+			      this.roleOptions = res.data.data.map(item => {
+
+			        return {
+			          value: item.瑙掕壊 ,  
+			          text: item.瑙掕壊 
+			        };
+			      });
+			      this.$forceUpdate();
+			    } else {
+			      uni.showToast({
+			        title: res.data.Message || '鑾峰彇瑙掕壊鍒楄〃澶辫触',
+			        icon: 'none'
+			      });
+			      // 濡傛灉鎺ュ彛澶辫触锛屽彲浠ヨ缃粯璁ら�夐」
+			      this.roleOptions = [];
+			    }
+			  } catch(err) {
+			    uni.showToast({
+			      title: err.message || '鑾峰彇瑙掕壊鍒楄〃寮傚父',
+			      icon: 'none'
+			    });
+			    // 寮傚父鎯呭喌璁剧疆榛樿閫夐」
+			    this.roleOptions = [];
+			  }
+			},
+			//#endregion
+			
+			
+			toScanCode2() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode = scanCode
+					GetMeesageByBarCode(scanCode)
+				})
+			},
+			GetMeesageByBarCode(HBarCode) {
+
+				// 鑾峰彇寰呯粍鎵樻潯鐮佸搴旂殑鏁版嵁 
+				let sOldBarCode = this.HBarCode
+				let HDeleteFlag = sOldBarCode.substring(0, 1)
+				let sBarCode = sOldBarCode.slice(1)
+				if (HDeleteFlag == '*') {
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '璇锋壂鎻忚鍒犻櫎鐨勬潯鐮�',
+						})
+					} else {
+						this.HBarCodeFocusRefresh()
+					}
+					CommonUtils.doRequest2({
+						url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+						data: {
+							"HInterID": this.hform.HInterID,
+							"HBarCode": sBarCode,
+							"HBillType": this.HBillType
+						},
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								//this.DisBillEntryList()
+							} else {
+								CommonUtils.playSound(0)
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				} else {
+					let sBarCode = this.HBarCode
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '鏉$爜涓嶈兘涓虹┖锛岃鎵弿鏉$爜锛�',
+						})
+					}
+					CommonUtils.doRequest2({
+						url: '/Sc_EmployeeSignInNoteBillController/APP_Edit_json',
+						data: {
+							"HInterID": this.hform.HInterID,
+							"HBarCode": sBarCode,
+						},
+
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								//let data=res.data
+								console.log(sBarCode)
+								console.log(res.data.data[0])
+								console.log(res.data[1])
+								debugger
+								this.hform.HMouldID = data[0][0].妯″叿id
+								console.log("idwei", data[0][0].妯″叿id)
+								this.hform.HMouldNo = data[0][0].妯″叿缂栫爜
+								this.hform.HMouldName = data[0][0].妯″叿鍚嶇О
+								this.hform.HMouldState = data[0][0].妯″叿鐘舵��
+								this.listData = []
+								let tabledata = data[1][0]
+								if (data[1].length > 0) {
+									this.hform.HEquipID = tabledata.璁惧鍐呯爜
+									this.hform.HEquipName = tabledata.璁惧鍚嶇О
+									//
+									//this.hform.HSourceID = tabledata.HSourceID
+									this.hform.HMaterID = tabledata.HMaterID
+									//this.hform.HProcID = tabledata.HSourceInterID
+									for (let i = 0; i < data[1].length; i++) {
+										this.listData.push(Object.assign(data[1][i], {
+											index: i
+										}))
+									}
+								}
+
+
+							} else {
+								CommonUtils.playSound(0)
+								this.listData = []
+								this.HBarCodeFocusRefresh()
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				}
+			},
+			onRoleChange(e) {
+				console.log('閫変腑鐨勮鑹�:', this.hform.HRoles);
+			},
+
+
+			handleSelect(selected, array) {
+				this.selectedRows = array
+			},
+			handleSelectAll(selected, array) {
+				this.selectedRows = array
+			},
+			getMaxNo() {
+				CommonUtils.doRequest2({
+					url: "/WEBSController/GetMaxBillNoAndID_Json",
+					data: {
+						"HBillType": this.HBillType
+					},
+					resFunction: (d) => {
+						console.log('d: ', d);
+						let {
+							count,
+							data,
+							Message
+						} = d.data
+						if (count == 1) {
+							this.hform.HInterID = data[0].HInterID;
+							this.hform.HBillNo = data[0].HBillNo
+						} else {
+
+							uni.showModal({
+								title: "娓╅Θ鎻愮ず",
+								showCancel: false,
+								content: Message
+
+							})
+
+						}
+					}
+				})
+			},
+			submitPreCheck() {
+				if (CommonUtils.isEmpty(this.hform.HInterID)) {
+					uni.showToast({
+						icon: 'none',
+						title: '鍗曟嵁鍐呯爜鑾峰彇澶辫触锛岄敊璇殑鍗曟嵁鍐呯爜锛�'
+					})
+					return false
+				}
+				if (CommonUtils.isEmpty(this.hform.HBillNo)) {
+					uni.showToast({
+						icon: 'none',
+						title: '鍗曟嵁鍙疯幏鍙栧け璐ワ紝閿欒鐨勫崟鎹彿锛�'
+					})
+					return false
+				}
+				if (this.listData.length < 1) {
+					uni.showToast({
+						icon: 'none',
+						title: '娌℃湁鎵爜淇℃伅锛岃鍏堟壂鎻忔潯鐮侊紝纭鏃犺鍚庡啀鎻愪氦锛�'
+					})
+					return false
+				}
+				return true
+			},
+			cmdDelete() {
+				console.log('this.selectedRows: ', this.selectedRows);
+				if (this.selectedRows.length != 1) {
+					return uni.showToast({
+						icon: 'none',
+						title: '璇烽�夋嫨涓�琛岃褰曪紝杩涜鍒犻櫎锛�'
+					})
+				}
+				uni.showModal({
+					title: '鍒犻櫎纭',
+					content: '纭瑕佸垹闄ら�変腑琛屾墍鏈夋壂鐮佽褰曪紵鍒犻櫎鍚庡皢涓嶅彲鎭㈠!',
+					success: () => {
+						if (confirm) {
+							CommonUtils.doRequest2({
+								url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+								data: {
+									HInterID: this.hform.HInterID,
+									HBillType: this.HBillType,
+									HBarCode: this.selectedRows[0].HBarCode
+								},
+								resFunction: (res) => {
+									let {
+										data,
+										count,
+										Message
+									} = res.data
+									if (count == 1) {
+										CommonUtils.playSound(1)
+										uni.showToast({
+											icon: 'none',
+											title: Message
+										})
+										//this.DisBillEntryList()
+									} else {
+										CommonUtils.playSound(0)
+										uni.showToast({
+											icon: 'none',
+											title: Message
+										})
+									}
+								}
+							})
+						}
+					}
+				})
+			},
+
+			async cmdSubmit() {
+				let checkRes = this.submitPreCheck()
+				if (!checkRes) {
+					return
+				}
+				this.EnableSubmit = false
+
+				try {
+					debugger
+					this.hform.HInterID = 0
+					for (let i = 0; i < this.hform.HRoles.length; i++) {
+						this.hform.HSignRemark = this.hform.HSignRemark + this.hform.HRoles[i] + ","
+					}
+					let oMain = JSON.stringify(this.hform);
+					console.log("鎻愪氦鐨刯son", oMain)
+					// this.HBillSub[0].HRepairCheckID = this.hform.HRepairCheckMainID
+					// this.HBillSub[0].HManagerID = this.hform.HManagerID
+					// this.HBillSub[0].HRepairCheckContent = this.hform.HRepairCheckMainContent
+					// let sSubStr = JSON.stringify(this.HBillSub);
+					let sMainSub = oMain + ';' + getUserInfo()['OrganizationID'] + ';' + getUserInfo()['Czymc'];
+					await CommonUtils.doRequest2({
+						url: "/Sc_EmployeeSignInNoteBillController/SaveBill_APP",
+						data: {
+							"msg": sMainSub
+						},
+						method: "POST",
+						resFunction: async (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								// 绛夊緟鏁版嵁鑾峰彇瀹屾垚鍚庡啀鏄剧ず琛ㄦ牸
+								await this.getResultTableData();
+							} else {
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+								this.EnableSubmit = true;
+							}
+						}
+					})
+				} catch (error) {
+					console.error('鎻愪氦澶辫触:', error);
+					this.EnableSubmit = true;
+				}
+			},
+			getResultTableData() {
+				CommonUtils.doRequest2({
+					url: '/Sc_EmployeeSignInNoteBillController/GetListPage',
+					data: {
+						"sWhere": 'and HEquipID=' + this.hform.HEquipID,
+						"user": 'admin'
+					},
+					resFunction: (res) => {
+						console.log('缁撴灉鎺ュ彛杩斿洖:', res);
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							console.log('鑾峰彇鍒扮粨鏋滄暟鎹�:', data);
+							this.resultTableData = data;
+							this.showResultTable = true; // 鏄剧ず缁撴灉琛ㄦ牸
+							console.log('showResultTable 璁剧疆涓�:', this.showResultTable);
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message || '鑾峰彇鏁版嵁澶辫触'
+							})
+							this.EnableSubmit = true;
+						}
+					}
+				})
+			},
+			// 鏂板鏂规硶
+			toAddNew() {
+				// 閲嶇疆鏁版嵁锛屽噯澶囨柊澧�
+				this.showResultTable = false;
+				this.EnableSubmit = true;
+				this.resultTableData = [];
+				this.HBarCode_Pack = '';
+				this.HBarCode = '';
+				this.listData = [];
+				this.getMaxNo(); // 閲嶆柊鑾峰彇鏂扮殑鍗曟嵁鍙�
+				this.HBarCodePackFocusRefresh(); // 閲嶆柊鑱氱劍
+			},
+
+			// 鍏抽棴缁撴灉琛ㄦ牸
+			closeResultTable() {
+				this.showResultTable = false;
+				uni.navigateBack();
+			},
+			cmdExit() {
+				uni.navigateBack()
+			},
+			//鎵撳嵃妯″潡鍑芥暟
+			/**
+			 * 鎵撳嵃鍑芥暟
+			 */
+			async search() {
+				// #ifndef APP-PLUS
+				uni.showModal({
+					content: "涓嶆敮鎸佽摑鐗欐墦鍗板姛鑳斤紝璇峰垏鎹㈢Щ鍔ㄨ澶�...",
+				})
+				return
+				// #endif
+				if (this.$printer.isConnected() === false) {
+					this.$refs.labelPrinter.openPopup()
+				} else {
+					let printContent = []
+					let printInfoBuffer = []
+					let count = 0
+					uni.showLoading()
+					console.log('this.listData: ', this.printListData);
+					for (let listOne of this.printListData) {
+						let Message = await this.getPrintTemplate(listOne.HInterID, listOne.HItemID)
+						printContent.push(Message)
+						count++;
+						if (count == 10) {
+							printInfoBuffer.push(printContent.join("\r\n"))
+							count = 0
+							printContent = []
+						}
+					}
+					uni.hideLoading()
+					printInfoBuffer.push(printContent.join("\r\n"))
+					this.printInfo = JSON.stringify(printInfoBuffer)
+					printInfoBuffer = []
+
+					await this.$nextTick(() => {
+						this.$refs.labelPrinter.execPrint()
+					})
+				}
+			},
+			/** 鑾峰彇鎵撳嵃妯℃澘
+			 * @param {Object} HInterID
+			 * @param {Object} HItemID
+			 */
+			async getPrintTemplate(HInterID, HItemID) {
+				console.log('data: ', {
+					HOrginationName: uni.getStorageSync("Organization"),
+					HBillSubType: this.HBillType,
+					HInterID: HInterID,
+					HItemID: HItemID,
+				})
+				return new Promise((resolve, reject) => {
+					CommonUtils.doRequest2({
+						url: "/Sc_BarCode/Get_BarCodePrintCode_CPCL",
+						data: {
+							HOrginationName: uni.getStorageSync("Organization"),
+							HBillSubType: this.HBillType,
+							HInterID: HInterID,
+							HItemID: HItemID,
+						},
+						resFunction: (res) => {
+							let {
+								Message,
+								count
+							} = res.data
+							if (count == 1) {
+								console.log('Message: ', Message);
+								resolve(Message)
+							} else {
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+								reject();
+							}
+						},
+						errFunction: (err) => {
+							reject();
+						},
+
+					})
+				})
+			},
+			/**
+			 * 鏌ユ壘鎵撳嵃鏈�
+			 */
+			async searchLabelPrinter() {
+				// 鏌ユ壘鎵撳嵃鏈�
+				var that = this
+				// 浣跨敤openBluetoothAdapter 鎺ュ彛锛屽厤鍘讳富鍔ㄧ敵璇锋潈闄愮殑楹荤儲
+				uni.openBluetoothAdapter({
+					success: async (res) => {
+						await this.checkPermission();
+						console.log('start discovery devices');
+						this.discoveredDevices = [];
+						console.log(res)
+						bluetoothTool.discoveryNewDevice();
+						this.maskShow = true
+					},
+					fail: async (e) => {
+						console.error(e)
+						switch (e.code) {
+							case "10009":
+								this.showToast("姝よ澶囦笉鏀寔璁惧鎼滅储鍔熻兘!");
+								break;
+							default:
+								console.error(e);
+						}
+					}
+				})
+
+			},
+			onDevice(device) {
+				console.log("鐩戝惉瀵绘壘鍒版柊璁惧鐨勪簨浠�---------------")
+				console.log(device)
+				if (typeof device === 'undefined') return;
+				if (typeof device.name === 'undefined') return;
+				console.log(device.name);
+				if (device.name === '') return;
+				if (device.name === null) return;
+				if (device.name.toUpperCase().endsWith('_BLE') ||
+					device.name.toUpperCase().endsWith('-LE') ||
+					device.name.toUpperCase().endsWith('-BLE')) return;
+				const isDuplicate = this.discoveredDevices.find(item => item.address === device.address);
+				if (isDuplicate) return;
+				this.discoveredDevices.push(device);
+			},
+			connectBT(device) {
+				const vm = this;
+				uni.showLoading({
+					title: '杩炴帴涓�'
+				});
+				bluetoothTool.connDevice(device.address, (result) => {
+					console.log(result)
+					uni.hideLoading()
+					if (result) {
+						// 	// console.log(result);
+						bluetoothTool.cancelDiscovery();
+						// console.log(vm.$printer)
+						vm.$printer.init(new FakeConnectedDevice());
+						vm.connectedDeviceId = device.address;
+						uni.showToast({
+							icon: 'none',
+							title: '杩炴帴鎴愬姛'
+						})
+						this.maskShow = false
+					} else {
+						uni.showToast({
+							icon: 'none',
+							title: '杩炴帴澶辫触'
+						})
+					}
+				});
+			},
+			stopSearchBT() {
+				console.log("鍋滄鎼滃闄勮繎鐨勮摑鐗欏鍥磋澶�---------------")
+				bluetoothTool.cancelDiscovery();
+			},
+			closeBluetooth() {
+				console.log("鍋滄钃濈墮杩炴帴")
+				const vm = this;
+				if (vm.connectedDeviceId != '') {
+					bluetoothTool.closeBtSocket();
+					vm.connectedDeviceId = "";
+				}
+			},
+
+		},
+		computed: {
+			listTableHeight: {
+				get() {
+					return this.bottomBtnTop - this.listTableTop - 10
+				}
+			}
+		},
+		async onReady() {
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#bottom-btn")
+				.boundingClientRect((data) => {
+					if (data) {
+						this.bottomBtnTop = data.top
+					} else {
+						console.log("鏈壘鍒�#bottom-btn鑺傜偣");
+					}
+				})
+				.exec();
+			query.select("#list-table")
+				.boundingClientRect((data) => {
+					if (data) {
+						this.listTableTop = data.top
+					} else {
+						console.log("鏈壘鍒�#list-table鑺傜偣");
+					}
+				})
+				.exec();
+			// #endif
+		},
+		onLoad(e) {
+			// 1涓� 瑁呯 2涓� 缁勬墭
+			this.BarCodeType = e.BarCodeType || 1
+			this.OperationType = e.OperationType || 1
+
+			this.getHDeptList()
+			this.getHEmpList()
+			this.getHGroupList()
+			this.getHShiftsList()
+			this.getHSourceList()
+			this.getHProcList()
+			this.getRoleList()
+			if (this.OperationType == 1) {
+				this.getMaxNo()
+			} else if (this.OperationType == 2) {
+				// this.GetMeesageByBarCode_Pack(this.HBarCode_Pack)
+				//this.DisBillEntryList()
+				this.tabs = 0
+			}
+
+
+			// 鍏夋爣榛樿鑱氱劍鍦ㄦ墭鏉$爜涓�
+			this.HBarCodePackFocusRefresh()
+		}
+	}
+</script>
+
+<style lang="scss">
+	input {
+		width: inherit;
+		padding: 8rpx 20rpx;
+		font-size: 30rpx;
+	}
+
+	.uni-mask {
+		position: fixed;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		z-index: 3;
+		display: flex;
+		align-items: center;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.6);
+		padding: 0 30rpx;
+		box-sizing: border-box;
+	}
+
+	.form {
+		display: flex;
+		flex-direction: column;
+		gap: 20rpx;
+
+		.form-base-info {
+			display: flex;
+			flex-direction: column;
+			gap: 10rpx;
+			box-sizing: border-box;
+			padding: 30rpx;
+		}
+
+		.bill-info {
+			display: flex;
+			flex-direction: column;
+			gap: 10rpx;
+			box-sizing: border-box;
+			padding: 16rpx 30rpx;
+			background-color: #fff;
+		}
+
+		.form-item {
+			display: flex;
+			align-items: center;
+			font-size: 30rpx;
+			padding: 6rpx 0;
+
+			.title {
+				width: 208rpx;
+
+				text {
+					color: red;
+					font-weight: bold;
+				}
+			}
+
+			.right {
+				flex: 1;
+				border-radius: 22rpx;
+				border: 1px solid #acacac;
+			}
+
+			.righton {
+				width: 450rpx;
+				border-radius: 22rpx;
+				border: 1px solid #e4e4e4;
+				background-color: #e4e4e4;
+			}
+
+			input {
+				// width: 100%;
+				padding: 8rpx 20rpx;
+				font-size: 30rpx;
+			}
+
+
+
+			textarea {
+				width: 98%;
+				padding: 8rpx 20rpx;
+				font-size: 30rpx;
+			}
+
+		}
+	}
+
+	.tabs {
+		width: 100%;
+		display: flex;
+		border-bottom: 1px solid #ddd;
+		margin: 20rpx 0;
+
+		view {
+			width: 25%;
+			font-size: 30rpx;
+			color: #555;
+			text-align: center;
+			padding: 16rpx 0;
+		}
+
+		.on {
+			color: #3a78ff;
+			font-weight: bold;
+			border-bottom: 3px solid #3a78ff;
+		}
+	}
+
+	.machine-info-container {
+		padding-left: 40rpx;
+		/* 鍚戝彸绉诲姩40rpx */
+		padding-right: 40rpx;
+		padding-top: 20rpx;
+
+		.form-item {
+			display: flex;
+			align-items: center;
+			font-size: 30rpx;
+			padding: 10rpx 0;
+
+			.title {
+				width: 220rpx;
+				/* 绋嶅井鍔犲鏍囬瀹藉害 */
+				min-width: 220rpx;
+				color: #333;
+			}
+
+			.righton {
+				flex: 1;
+				border-radius: 22rpx;
+				border: 1px solid #e4e4e4;
+				background-color: #f8f8f8;
+
+				input {
+					width: 100%;
+					padding: 12rpx 20rpx;
+					font-size: 30rpx;
+					color: #666;
+				}
+			}
+		}
+	}
+
+	.bottom-btn {
+		width: 100%;
+		box-sizing: border-box;
+		// height: 120rpx;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		background-color: #fff;
+		box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+		padding: 30rpx 40rpx 40rpx 40rpx;
+		display: flex;
+		flex-direction: row;
+		gap: 10rpx;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #3A78FF;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #acacac;
+			color: #fff;
+			// position: absolute;
+			// right: 120rpx;
+		}
+
+		.btn-d {
+			background-color: #ff8901;
+			color: #fff;
+		}
+	}
+
+	.result-modal {
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+		z-index: 2;
+
+		.modal-mask {
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			height: 100%;
+			background: rgba(0, 0, 0, 0.5);
+		}
+
+		.modal-content {
+			position: absolute;
+			top: 50%;
+			left: 50%;
+			transform: translate(-50%, -50%);
+			width: 90%;
+			max-width: 700rpx;
+			background: #fff;
+			border-radius: 20rpx;
+			overflow: hidden;
+
+			.modal-header {
+				padding: 30rpx;
+				border-bottom: 1px solid #eee;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.modal-title {
+					font-size: 32rpx;
+					font-weight: bold;
+				}
+			}
+
+			.modal-body {
+				padding: 30rpx;
+				max-height: 60vh;
+				overflow-y: auto;
+			}
+
+			.modal-footer {
+				padding: 30rpx;
+				border-top: 1px solid #eee;
+				display: flex;
+				align-items: center;
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/pages/EmployeeRecords/EmployeeRecordsBillList.vue b/pages/EmployeeRecords/EmployeeRecordsBillList.vue
new file mode 100644
index 0000000..7924e7f
--- /dev/null
+++ b/pages/EmployeeRecords/EmployeeRecordsBillList.vue
@@ -0,0 +1,558 @@
+<template>
+	<view>
+		<view class="page-header">
+			<view class="search-item">
+				<view class="left">鏃ユ湡闂撮殧</view>
+				<view class="right">
+					<picker mode="selector" :value="curDateGap" :range="dateRangePicker"
+						@change="onDateRangePickerChangeHandler">
+						<input disabled v-model="curDateGap" placeholder="璇烽�夋嫨鏃ユ湡闂撮殧" />
+						<view class="picker-overlay"></view>
+					</picker>
+				</view>
+			</view>
+			<view class="search-item">
+				<view class="left">寮�濮嬫棩鏈�</view>
+				<view class="right">
+					<uni-datetime-picker :clear-icon="false" type="date" v-model="startDate"
+						:disabled="!enableCustomDateRange">
+						<view class="datetime-picker-inner"
+							:class="enableCustomDateRange?'font__enable':'font__disable'">
+							<text>{{ startDate }}</text>
+						</view>
+					</uni-datetime-picker>
+				</view>
+			</view>
+			<view class="search-item">
+				<view class="left">缁撴潫鏃ユ湡</view>
+				<view class="right">
+					<uni-datetime-picker :clear-icon="false" type="date" v-model="endDate"
+						:disabled="!enableCustomDateRange">
+						<view class="datetime-picker-inner"
+							:class="enableCustomDateRange?'font__enable':'font__disable'">{{ endDate }}</view>
+					</uni-datetime-picker>
+				</view>
+			</view>
+			<view class="search-item">
+				<view class="left">鍗曟嵁鍙�</view>
+				<view class="right">
+					<input type="text" auto-focus v-model="HBillNo" />
+				</view>
+			</view>
+
+			<view class="button-groups">
+				<button type="default" size="mini" class="btn-b" @tap.stop="onAddClickHandler">鏂板</button>
+				<button type="default" size="mini" class="btn-c" @tap.stop="onSearchClickHandler">鏌ヨ</button>
+				<button type="default" size="mini" class="btn-a" @tap.stop="onResetClickHandler">閲嶇疆</button>
+			</view>
+		</view>
+		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+		<scroll-view id="pageContent" scroll-y class="page-content" :style="{height: pageContentHeight + 'px'}">
+			<view v-for="(item,index) in listData" :key="index">
+				<uni-card :title="item.浜у搧妯″叿" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+					@tap="showDetail = showDetail==index?-1:index">
+					<view class="card-detail">
+						<view class="detail" v-if="item.璁惧缂栫爜">
+							<text>璁惧缂栫爜锛�</text>{{item.璁惧缂栫爜}}
+						</view>
+						<view class="detail" v-if="item.璁惧鍚嶇О">
+							<text>璁惧鍚嶇О锛�</text>{{item.璁惧鍚嶇О}}
+						</view>
+						<view class="detail" v-if="item.浜哄憳浠g爜">
+							<text>浜哄憳浠g爜锛�</text>{{item.浜哄憳浠g爜}}
+						</view>
+						<view class="detail" v-if="item.浜哄憳鍚嶇О">
+							<text>浜哄憳鍚嶇О锛�</text>{{item.浜哄憳鍚嶇О}}
+						</view>
+						<view class="detail" v-if="item.绛惧埌瑙掕壊">
+							<text>绛惧埌瑙掕壊锛�</text>{{item.绛惧埌瑙掕壊}}
+						</view>
+						<view class="detail" v-if="item.鐢熶骇璧勬簮鍚嶇О">
+							<text>鐢熶骇璧勬簮鍚嶇О锛�</text>{{item.鐢熶骇璧勬簮鍚嶇О}}
+						</view>
+						<view class="detail" v-if="item.宸ュ簭鍚嶇О">
+							<text>宸ュ簭鍚嶇О锛�</text>{{item.宸ュ簭鍚嶇О}}
+						</view>
+						<view class="detail" v-if="item.鐝粍鍚嶇О">
+							<text>鐝粍鍚嶇О锛�</text>{{item.鐝粍鍚嶇О}}
+						</view>
+						<view class="detail" v-if="item.鐝鍚嶇О">
+							<text>鐝鍚嶇О锛�</text>{{item.鐝鍚嶇О}}
+						</view>
+					</view>
+					<view class="card-detail" v-if="showDetail == index">
+						<view class="detail" v-if="item.鍒跺崟浜�">
+							<text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+						</view>
+						<view class="detail" v-if="item.鍒跺崟鏃ユ湡">
+							<text>鍒跺崟鏃ユ湡锛�</text>{{item.鍒跺崟鏃ユ湡.substr(0,10)}}
+						</view>
+						<view class="detail" v-if="item.瀹℃牳浜�">
+							<text>瀹℃牳浜猴細</text>{{item.瀹℃牳浜簘}
+						</view>
+						<view class="detail" v-if="item.瀹℃牳鏃ユ湡">
+							<text>瀹℃牳鏃ユ湡锛�</text>{{item.瀹℃牳鏃ユ湡.substr(0,10)}}
+						</view>
+						<view class="detail" v-if="item.淇敼浜�">
+							<text>淇敼浜猴細</text>{{item.淇敼浜簘}
+						</view>
+						<view class="detail" v-if="item.淇敼鏃ユ湡">
+							<text>淇敼鏃ユ湡锛�</text>{{item.淇敼鏃ユ湡.substr(0,10)}}
+						</view>
+						<view class="detail" v-if="item.鍏抽棴浜�">
+							<text>鍏抽棴浜猴細</text>{{item.鍏抽棴浜簘}
+						</view>
+						<view class="detail" v-if="item.鍏抽棴鏃ユ湡">
+							<text>鍏抽棴鏃ユ湡锛�</text>{{item.鍏抽棴鏃ユ湡.substr(0,10)}}
+						</view>
+						<view class="detail" v-if="item.浣滃簾浜�">
+							<text>浣滃簾浜猴細</text>{{item.浣滃簾浜簘}
+						</view>
+						<view class="detail" v-if="item.浣滃簾鏃ユ湡">
+							<text>浣滃簾鏃ユ湡锛�</text>{{item.浣滃簾鏃ユ湡.substr(0,10)}}
+						</view>
+					</view>
+
+
+					<view class="more" v-if="showDetail == index && operations != index">
+						<view class="part" style="border-right: 1px solid #eee;">
+							<uni-icons type="top" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏀惰捣
+						</view>
+						<view class="part" @tap.stop="operations = operations==index?-1:index">
+							<uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+								size="14"></uni-icons>鎿嶄綔
+						</view>
+					</view>
+					<view class="more" v-if="showDetail != index && operations != index">
+						<view class="part" style="border-right: 1px solid #eee;">
+							<uni-icons type="bottom" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏇村淇℃伅
+						</view>
+						<view class="part" @tap.stop="operations = operations==index?-1:index">
+							<uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+								size="14"></uni-icons>鎿嶄綔
+						</view>
+					</view>
+
+					<view class="op" v-if="operations == index">
+						<!-- <button class="op3" size="mini" plain @tap.stop="edit(item)">缂栬緫</button> -->
+						<button class="op4" size="mini" plain @tap.stop="del(item)">鍒犻櫎</button>
+						<button class="op5" size="mini" plain @tap.stop="operations = -1">鍙栨秷鎿嶄綔</button>
+					</view>
+				</uni-card>
+			</view>
+			<view class="over" v-if="listData.length == 0">鏆傛棤鏁版嵁</view>
+		</scroll-view>
+		<!-- 鍒嗛〉鍣� -->
+		<view class="page-footer">
+			<uni-pagination id="pagination" title="鏍囬鏂囧瓧" v-model="pageMeta.curPage" :pageSize="pageMeta.size"
+				:total="pageMeta.total" @change="onPageChangeHandler"></uni-pagination>
+		</view>
+	</view>
+</template>
+
+<script>
+	import dayjs from 'dayjs'
+	import {
+		CommonUtils
+	} from '@/utils/common.js'
+	import {
+		getUserInfo
+	} from "../../utils/auth";
+	export default {
+		data() {
+			return {
+				// 璁$畻鍗$墖鍒楄〃楂樺害
+				pagination_top: 0,
+				pageContent_top: 0,
+				// 鍒嗛〉鎺у埗
+				pageMeta: {
+					curPage: 1,
+					size: 50,
+					total: 0,
+				},
+				// 婊氬姩鎺у埗
+				scrollTop: 0,
+				old: {
+					scrollTop: 0
+				},
+
+				dateRangePicker: ["浠绘剰闂撮殧", "浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"],
+				curDateGap: "杩戜竷澶�",
+				enableCustomDateRange: false,
+				startDate: dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD'),
+				endDate: dayjs(new Date()).format('YYYY-MM-DD'),
+				HBillNo: '',
+
+				listData: [],
+				showDetail: -1,
+				operations: -1,
+			}
+		},
+		computed: {
+			pageContentHeight: {
+				get() {
+					return (this.pagination_top - this.pageContent_top)
+				}
+			},
+		},
+		onLoad() {
+			this.onSearchClickHandler()
+		},
+		onPullDownRefresh() {
+			this.onSearchClickHandler()
+		},
+		async onReady() {
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#pagination")
+				.boundingClientRect((data) => {
+					if (data) {
+						this.pagination_top = data.top
+					} else {
+						console.log("鏈壘鍒�#pagination鑺傜偣");
+					}
+				})
+				.exec();
+			query.select("#pageContent")
+				.boundingClientRect((data) => {
+					if (data) {
+						this.pageContent_top = data.top
+					} else {
+						console.log("鏈壘鍒�#pageContent鑺傜偣");
+					}
+				})
+				.exec();
+			// #endif
+
+		},
+		methods: {
+			goTop: function(e) {
+				// 瑙e喅view灞備笉鍚屾鐨勯棶棰�
+				this.scrollTop = this.old.scrollTop
+				this.$nextTick(function() {
+					this.scrollTop = 0
+				});
+			},
+			onDateRangePickerChangeHandler({
+				detail
+			}) {
+				this.enableCustomDateRange = false
+				this.curDateGap = this.dateRangePicker[detail.value]
+				let date = new Date()
+				switch (this.curDateGap) {
+					case "浠婂ぉ":
+						this.startDate = dayjs(date).format("YYYY-MM-DD")
+						break;
+					case "杩戜竴澶�":
+						this.startDate = dayjs(date).subtract(1, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戜袱澶�":
+						this.startDate = dayjs(date).subtract(2, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戜笁澶�":
+						this.startDate = dayjs(date).subtract(3, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戝洓澶�":
+						this.startDate = dayjs(date).subtract(4, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戜簲澶�":
+						this.startDate = dayjs(date).subtract(5, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戝叚澶�":
+						this.startDate = dayjs(date).subtract(6, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩戜竷澶�":
+						this.startDate = dayjs(date).subtract(7, 'day').format("YYYY-MM-DD")
+						break;
+					case "杩�30澶�":
+						this.startDate = dayjs(date).subtract(30, 'day').format("YYYY-MM-DD")
+						break;
+				}
+				if (this.curDateGap == '浠绘剰闂撮殧') {
+					this.enableCustomDateRange = true
+				}
+			},
+			onSearchClickHandler() {
+				let sWhere = ""
+				if (this.startDate) {
+					sWhere += " and CONVERT(varchar(100),鏃ユ湡, 23) >= '" + this.startDate + "'";
+				}
+				if (this.endDate) {
+					sWhere += " and CONVERT(varchar(100),鏃ユ湡, 23) <= '" + this.endDate + "'";
+				}
+				if (this.HBillNo) {
+					sWhere += " and 鍗曟嵁鍙� like '%" + this.HBillNo + "%'";
+				}
+				this.get_DisplayPage(sWhere);
+			},
+			clear() {
+				this.curDateGap = "杩戜竷澶�"
+				this.enableCustomDateRange = false
+				this.startDate = dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD')
+				this.endDate = dayjs(new Date()).format('YYYY-MM-DD')
+				this.HBillNo = ''
+			},
+			async onResetClickHandler() {
+				this.clear()
+				await this.$nextTick()
+				this.onSearchClickHandler()
+			},
+			get_DisplayPage(sWhere) {
+				CommonUtils.doRequest2({
+					url: '/Sc_EmployeeSignInNoteBillController/GetListPage',
+					data: {
+						"sWhere": sWhere,
+						"user": getUserInfo()["Czymc"],
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							Message,
+							count
+						} = res.data
+						console.log('res.data: ', res.data);
+						this.listData = data;
+						this.pageMeta.total = count
+						uni.stopPullDownRefresh()
+					}
+				})
+			},
+			onPageChangeHandler() {
+				this.onSearchClickHandler()
+				this.goTop()
+			},
+			// 鏂板
+			onAddClickHandler() {
+				uni.navigateTo({
+					url: "/pages/EmployeeRecords/EmployeeRecordsBill?operationType=1"
+				})
+			},
+			//缂栬緫鐐规璁板綍鍗�
+			edit(item) {
+				console.log(item)
+				uni.navigateTo({
+					url: '/pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill?operationType=3&hmainid=' + item.hmainid
+				})
+			},
+			//鍒犻櫎鐐规璁板綍鍗�
+			del(item) {
+				uni.showModal({
+					title: '鍒犻櫎纭',
+					content: '纭瑕佸垹闄ゅ悧锛屽垹闄ゅ悗涓嶈兘鎭㈠',
+					success: (res) => {
+						if (res.confirm) {
+							console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+							CommonUtils.doRequest2({
+								url: '/Sc_EmployeeSignInNoteBillController/deleteBill',
+								data: {
+									HItemID: item['InterID'],
+									user: getUserInfo()['Czymc']
+								},
+								resFunction: (res) => {
+									let {
+										data,
+										count,
+										Message
+									} = res.data
+									if (count == 1) {
+										uni.showToast({
+											icon: count === 1 ? 'success' : 'error',
+											title: Message,
+											duration: 2000
+										});
+
+										// 绛夊緟鎻愮ず鏄剧ず瀹屾垚鍐嶅埛鏂�
+										setTimeout(() => {
+											this.onSearchClickHandler();
+										}, 2000);
+									} else {
+										uni.showToast({
+											icon: 'none',
+											title: Message
+										})
+									}
+								}
+							})
+						} else if (res.cancel) {
+							console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+						}
+					}
+				});
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	.page-header {
+		display: flex;
+		box-sizing: border-box;
+		padding: 20rpx;
+		flex-direction: column;
+		gap: 10rpx;
+		font-size: 32rpx;
+
+		.search-item {
+			display: flex;
+			flex-direction: row;
+			gap: 10rpx;
+			justify-content: center;
+			align-items: center;
+
+			.left {
+				width: 4em;
+			}
+
+			.right {
+				flex: 1;
+				position: relative;
+				border-radius: 22rpx;
+				border: 1px solid #acacac;
+				display: flex;
+				padding: 4rpx 10rpx;
+
+				picker {
+					width: 100%;
+				}
+			}
+		}
+
+		input {
+			width: inherit;
+			padding: 8rpx 20rpx;
+			font-size: 30rpx;
+		}
+
+		.datetime-picker-inner {
+			padding: 8rpx 20rpx;
+			font-size: 30rpx;
+			display: flex;
+			align-items: center;
+		}
+
+		.font__enable {
+			color: #000;
+		}
+
+		.font__disable {
+			color: #cccccc;
+		}
+	}
+
+	.button-groups {
+		box-sizing: border-box;
+		padding: 10rpx 0 0 0;
+		display: flex;
+		flex-direction: row;
+		gap: 10rpx;
+		justify-content: space-between;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #acacac;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #3a78ff;
+			color: #fff;
+		}
+	}
+
+	.page-content {
+		// height: 40vh;
+		box-sizing: border-box;
+		padding: 10rpx 0;
+
+		.card-detail {
+			width: 100%;
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+			line-height: 120%;
+
+			.detail {
+				// width: 50%;
+				font-size: 26rpx;
+				margin-bottom: 12rpx;
+				color: #555;
+				margin-right: 20rpx;
+
+				text {
+					color: #999;
+					font-size: 26rpx;
+				}
+			}
+		}
+
+		.more {
+			color: #888;
+			font-size: 24rpx;
+			display: flex;
+			border-top: 1px solid #eee;
+			padding-top: 20rpx;
+
+			.part {
+				width: 50%;
+				text-align: center;
+			}
+		}
+
+		.op {
+			display: flex;
+			justify-content: space-around;
+			margin-top: 20rpx;
+
+			button {
+				padding: 0;
+				width: 150rpx;
+				font-size: 25rpx;
+			}
+
+			.op1 {
+				border: 1px solid #41a863;
+				color: #41a863;
+			}
+
+			.op2 {
+				border: 1px solid #d98d00;
+				color: #d98d00;
+			}
+
+			.op3 {
+				border: 1px solid #3a78ff;
+				color: #3a78ff;
+			}
+
+			.op4 {
+				border: 1px solid #da0000;
+				color: #da0000;
+			}
+
+			.op5 {
+				border: 1px solid #888;
+				color: #888;
+			}
+		}
+	}
+
+	.page-footer {
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		box-sizing: border-box;
+		padding: 32rpx 40rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill.vue b/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill.vue
new file mode 100644
index 0000000..cb66841
--- /dev/null
+++ b/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill.vue
@@ -0,0 +1,816 @@
+<template>
+    <view>
+        <view class="tabs" id="tabs">
+            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">鍩烘湰淇℃伅</view>
+            <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">鍏朵粬淇℃伅</view>
+        </view>
+        <!-- 鍩烘湰淇℃伅 -->
+        <template v-if="tabs == 0">
+            <view class="form" :style="{
+                height: containerHeight + 'px',
+                overflow: 'auto'
+            }">
+                <view class="form-item">
+                    <view class="title">璁惧鏉$爜:</view>
+                    <view :class="enableEdit?'right':'righton'">
+                        <input v-model="hform.HBarCode" :disabled="!enableEdit"
+                            @confirm="GetMessageByBarCode(hform.HBarCode)" placeholder="璇疯緭鍏�(鎴栨壂鎻�)璁惧鏉$爜" />
+                    </view>
+                    <view class="icon-wrapper">
+                        <uni-icons type="scan" size="20" @click="toScanCode"></uni-icons>
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">寮�濮嬫椂闂�:</view>
+                    <view class="right">
+                        <uni-datetime-picker type="datetime" :clear-icon="false" v-model="hform.HRepairPlanBeginDate">
+                            <input :value="hform.HConkBeginDate" />
+                        </uni-datetime-picker>
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title required">鏁呴殰绫诲埆:</view>
+                    <zxz-uni-data-select required class="right" :localdata="HConkTypeList" dataKey="鏁呴殰绫诲埆鍚嶇О"
+                        dataValue="hitemid" v-model="hform.HConkTypeID">
+
+                    </zxz-uni-data-select>
+                    <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+                </view>
+                <view class="form-item">
+                    <view class="title required">鏁呴殰鍘熷洜:</view>
+                    <zxz-uni-data-select required class="right" :localdata="HConkReasonList" dataKey="HName"
+                        dataValue="HItemID" v-model="hform.HConkReasonID">
+                    </zxz-uni-data-select>
+                    <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+                </view>
+                <view class="form-item">
+                    <view class="title">鏁呴殰鎻忚堪:</view>
+                    <view class="right">
+                        <textarea v-model="hform.HExplanation" placeholder="璇疯緭鍏ユ晠闅滄弿杩�" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">鍗曟嵁鍙�:</view>
+                    <view class="righton">
+                        <input disabled v-model="hform.HBillNo" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">鍗曟嵁鏃ユ湡:</view>
+                    <view class="righton">
+                        <input disabled v-model="hform.HDate" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title required">閮ㄩ棬:</view>
+                    <zxz-uni-data-select required class="right" :localdata="HDeptList" dataKey="閮ㄩ棬鍚嶇О"
+                        dataValue="HItemID" v-model="hform.HDeptID">
+
+                    </zxz-uni-data-select>
+                    <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+                </view>
+                <view class="form-item">
+                    <view class="title required">鍙戠幇浜�:</view>
+                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
+                        dataValue="HItemID" v-model="hform.HEmpID">
+
+                    </zxz-uni-data-select>
+                    <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+                </view>
+                <view class="form-item">
+                    <view class="title required">璐熻矗浜�:</view>
+                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
+                        dataValue="HItemID" v-model="hform.HManagerID">
+
+                    </zxz-uni-data-select>
+                    <!-- <input disabled v-model="hform.HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬" /> -->
+                </view>
+                <view class="form-item">
+                    <view class="title">璁惧鍚嶇О:</view>
+                    <view class="righton">
+                        <input v-model="hform.HBarName" disabled />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">璁惧瑙勬牸:</view>
+                    <view class="righton">
+                        <input v-model="hform.HBarSpec" disabled />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">璁惧鍨嬪彿:</view>
+                    <view class="righton">
+                        <input v-model="hform.HBarModel" disabled />
+                    </view>
+                </view>
+            </view>
+        </template>
+
+        <!-- 鍏朵粬淇℃伅 -->
+        <template v-if="tabs == 2">
+            <view class="form" :style="{
+                height: containerHeight + 'px',
+                overflow: 'auto'
+            }">
+                <view class="form-item">
+                    <view class="title">鍒涘缓浜�:</view>
+                    <view class="righton">
+                        <input v-model="hform.HMaker" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">鍒涘缓鏃ユ湡:</view>
+                    <view class="righton">
+                        <input v-model="hform.HMakeDate" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">淇敼浜�:</view>
+                    <view class="righton">
+                        <input v-model="hform.HUpDater" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">淇敼鏃ユ湡:</view>
+                    <view class="righton">
+                        <input v-model="hform.HUpDateDate" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">瀹℃牳浜�:</view>
+                    <view class="righton">
+                        <input v-model="hform.HChecker" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">瀹℃牳鏃堕棿:</view>
+                    <view class="righton">
+                        <input v-model="hform.HCheckDate" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">浣滃簾浜�:</view>
+                    <view class="righton">
+                        <input v-model="hform.HDeleteMan" />
+                    </view>
+                </view>
+                <view class="form-item">
+                    <view class="title">浣滃簾鏃ユ湡:</view>
+                    <view class="righton">
+                        <input v-model="hform.HDeleteDate" />
+                    </view>
+                </view>
+            </view>
+
+        </template>
+        <!-- 鎿嶄綔鎸夐挳 -->
+        <view class="buttons" id="buttons">
+            <button class="btn-a" size="mini" @tap="submit">鎻愪氦</button>
+            <view style="flex: 1;"></view>
+            <button class="btn-a" size="mini" @tap="addNew">鏂板</button>
+            <button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button>
+        </view>
+        <!-- <xe-upload ref="XeUpload" :options="uploadOptions" @callback="handleUploadCallback"></xe-upload> -->
+    </view>
+</template>
+
+<script>
+    import dayjs from "dayjs";
+    import {
+        CommonUtils
+    } from "@/utils/common";
+    import {
+        MpaasScan
+    } from "@/utils/mpaasScan.js"
+    import {
+        getUserInfo
+    } from "../../../utils/auth";
+    export default {
+        // 璁惧鏁呴殰鐧昏鍗�
+        name: 'Sb_EquipConkBookBill',
+        data() {
+            return {
+                tabs: 0,
+                HMainSourceBillType: "",
+                btnTop: 0,
+                tabsBottom: 0,
+                HModName: "Sb_EquipConkBookBill",
+                HBillType: '3907',
+                operationType: 1,
+                uploadOptions: {},
+                enableEdit: true,
+
+                HDeptList: [],
+                HEmpList: [],
+                HConkTypeList: [],
+                HConkReasonList: [],
+
+                hform: {
+                    HBarCode: "",
+                    HConkBeginDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"),
+                    HConkTypeName: "",
+                    HConkTypeID: 0,
+                    HConkReasonName: "",
+                    HConkReasonID: 0,
+                    HExplanation: "",
+                    HBillNo: "",
+                    HInterID: 0,
+                    HDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"),
+                    HDeptName: "",
+                    HDeptID: 0,
+                    HEmpName: "",
+                    HEmpID: 0,
+                    HManagerName: "",
+                    HManagerID: 0,
+                    HBarName: "",
+                    HEquipID: 0,
+                    HBarSpec: "",
+                    HBarModel: "",
+                    HMaker: getUserInfo()["Czymc"],
+                    HChecker: '',
+                    HCloseMan: '',
+                    HUpDater: '',
+                    HMakeDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"),
+                    HCheckDate: '',
+                    HCloseDate: '',
+                    HUpDateDate: '',
+                    HDeleteMan: '',
+                    HDeleteDate: ''
+                },
+                HDetailList: [{ // 鍚庣鎺ュ彛鎻愪氦闇�瑕� 鏄庣粏淇℃伅
+                    "HConkReasonID": "",
+                    "HConkReasonCode": "",
+                    "HConkReasonName": "",
+                    "HConkExplanation": "",
+                    "HManagerID": "",
+                    "HManagerCode": "",
+                    "HManagerName": "",
+                    "HRemark": "  "
+                }]
+            };
+        },
+        computed: {
+            containerHeight: {
+                get() {
+                    return this.btnTop - this.tabsBottom - 5
+                }
+            },
+        },
+        methods: {
+            // 鑾峰彇鏁呴殰绫诲埆
+            async getConkType() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: "/Gy_ConkType/List_PDA",
+                        data: {
+                            sWhere: ``,
+                            user: getUserInfo()['Czymc']
+                        }
+                    })
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        this.HConkTypeList = data
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: `鑾峰彇鏁呴殰绫诲埆澶辫触: ${Message}`
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: `鑾峰彇鏁呴殰绫诲埆澶辫触: ${err}`
+                    })
+                }
+            },
+            // 鑾峰彇鏁呴殰鍘熷洜
+            async getConkReason() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: "/PublicPageMethod/Gy_ConkReasonList_PDA",
+                        data: {
+                            sWhere: ``,
+                        }
+                    })
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        this.HConkReasonList = data
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: `鑾峰彇鏁呴殰鍘熷洜澶辫触: ${Message}`
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: `鑾峰彇鏁呴殰鍘熷洜澶辫触: ${err}`
+                    })
+                }
+            },
+            // 鍒犻櫎鏄庣粏
+            delDetail(item) {
+
+            },
+            // 鎻愪氦鏁版嵁鏈夋晥鎬ф牎楠�
+            ValidCheck() {
+                if (this.hform.HEquipID == 0) {
+                    return {
+                        Message: "鏈綍鍏ヨ澶囦俊鎭紝璇峰厛褰曞叆璁惧淇℃伅!",
+                        state: false
+                    }
+                }
+                if (this.hform.HDeptID == 0) {
+                    return {
+                        Message: "閮ㄩ棬涓嶅緱涓虹┖!",
+                        state: false
+                    }
+                }
+                if (this.hform.HEmpID == 0) {
+                    return {
+                        Message: "鍙戠幇浜轰笉寰椾负绌�!",
+                        state: false
+                    }
+                }
+                if (this.hform.HManagerID == 0) {
+                    return {
+                        Message: "璐熻矗浜轰笉寰椾负绌�!",
+                        state: false
+                    }
+                }
+                if (this.hform.HConkReasonID == 0) {
+                    return {
+                        Message: "鏁呴殰鍘熷洜涓嶅緱涓虹┖!",
+                        state: false
+                    }
+                }
+                if (this.hform.HConkTypeID == 0) {
+                    return {
+                        Message: "鏁呴殰绫诲埆涓嶅緱涓虹┖!",
+                        state: false
+                    }
+                }
+
+                return {
+                    Message: "",
+                    state: true
+                }
+            },
+            addNew() {
+                uni.redirectTo({
+                    url: './Sb_EquipConkBookBill?operationType=1'
+                })
+            },
+            goBack() {
+                uni.navigateBack()
+            },
+            checkBoxChangeHandler(index, e) {
+                let cr = e.detail.value
+                if (cr.length == 0) {
+                    this.HCheckFileList[index]["HDotCheckResult"] = false
+                } else {
+                    this.HCheckFileList[index]["HDotCheckResult"] = true
+                }
+            },
+            uploadFile(index) {
+                console.log('filePath: ', this.attachmentInfo[index].filePath);
+                // 閫氳繃涓存椂璺緞璇诲彇鏂囦欢
+                uni.uploadFile({
+                    url: CommonUtils.getServerUrl() + "/Sb_EquipDotCheckBill/UploadFile",
+                    filePath: this.attachmentInfo[index].filePath,
+                    name: 'file',
+                    formData: {
+                        HBillNo: this.hform.HBillNo,
+                        HRemark: "",
+                        HUserName: getUserInfo()["Czymc"]
+                    },
+                    success: (uploadRes) => {
+                        CommonUtils.showTips({
+                            message: "涓婁紶鎴愬姛"
+                        })
+                        this.attachmentInfo[index].status = "涓婁紶鎴愬姛"
+                    },
+                    fail: (err) => {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: `涓婁紶澶辫触: ${err}`
+                        })
+                    }
+                })
+            },
+            delFile(index) {
+                console.log('attachmentInfo: ', this.attachmentInfo[index]);
+                uni.showModal({
+                    title: '鎻愮ず',
+                    content: '纭瑕佸垹闄� " ' + this.attachmentInfo[index].fileName + ' " 鍒犻櫎鍚庡皢涓嶅彲鎭㈠锛�',
+                    success: (res) => {
+                        if (res.confirm) {
+                            this.attachmentInfo.splice(index, 1)
+                        }
+                    },
+                })
+
+            },
+            handleUploadCallback(res) { // 鏂囦欢涓婁紶鍥炶皟
+                console.log('file: ', res);
+                let fileInfo = res.data[0]
+                this.attachmentInfo.push({
+                    fileName: fileInfo.name,
+                    size: fileInfo.size,
+                    status: '绛夊緟涓婁紶',
+                    filePath: fileInfo.tempFilePath
+                })
+            },
+            // 涓婁紶鏂囦欢
+            fileUpload() {
+                this.$refs.XeUpload.upload('file', {});
+            },
+            //鑾峰彇鐝鏁版嵁
+            async getShiftList() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: '/Web/GetGy_ShiftsList_Json',
+                        data: {
+                            Shifts: "",
+                        }
+                    })
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        this.HShiftsList = data
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: Message
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: err
+                    })
+                }
+            },
+            //鑾峰彇浣跨敤閮ㄩ棬鏁版嵁
+            async getHDeptList() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: '/Gy_Department/list',
+                        data: {
+                            sWhere: ` and HUSEORGID = ${uni.getStorageSync('OrganizationID')} `,
+                            user: uni.getStorageSync('HUserName'),
+                            Organization: uni.getStorageSync('Organization')
+                        }
+                    })
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        this.HDeptList = data
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: Message
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: err
+                    })
+                }
+            },
+            // 鑾峰彇鑱屽憳鏁版嵁
+            async getEmpList() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: '/PublicPageMethod/UserList',
+                        data: {
+                            sWhere: " where 1=1",
+                        }
+                    })
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        this.HEmpList = data
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: Message
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: err
+                    })
+                }
+            },
+
+            toScanCode() {
+                MpaasScan.scanCode(cb => {
+                    this.hfrom.HBarCode = cb
+                    this.GetMessageByBarCode(cb)
+                })
+            },
+            async GetMessageByBarCode(HBarCode) {
+                try {
+                    let res = await CommonUtils.doRequest2Sync({
+                        url: "/Sb_PDA_EquipDotCheckBill/txtHBarCode_KeyDown_List",
+                        data: {
+                            HBarCode: HBarCode,
+                        },
+                    })
+
+
+                    if (!res) {
+                        return
+                    }
+
+                    let {
+                        data,
+                        count,
+                        Message
+                    } = res.data
+
+                    if (count == 1) {
+                        console.log('data: ', data);
+                        this.hform.HEquipID = data[0].hmainid
+                        this.hform.HBarName = data[0].璁惧鍚嶇О
+                        this.hform.HBarSpec = data[0].璁惧瑙勬牸
+                        this.hform.HBarModel = data[0].璁惧鍨嬪彿
+                        this.hform.HQty = 1
+
+                        this.enableEdit = false
+                    } else {
+                        CommonUtils.showTips({
+                            title: "娓╅Θ鎻愮ず",
+                            message: Message
+                        })
+                    }
+
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: "娓╅Θ鎻愮ず",
+                        message: err
+                    })
+                }
+            },
+            async GetItemByEquipFile() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: "/Web/GetItemByEquipFile",
+                        data: {
+                            "EquipProjectID": this.hform.HEquipID,
+                            "Type": "DJ",
+                            "HDate": this.hform.HBeginDate
+                        }
+                    })
+
+                    let {
+                        data,
+                        Message,
+                        count
+                    } = res.data
+                    if (count == 1) {
+                        this.hform.HEquipDotCheckRuleInterID = data[0].鐐规瑙勭▼ID
+                        this.hform.HEquipDotCheckRuleInterNo = data[0].鐐规瑙勭▼鍗曞彿
+                        this.hform.HPlanNo = data[0].鐐规璁″垝鍗�
+                        this.hform.HPlanInterID = (data[0].鐐规璁″垝ID == null ? 0 : data[0].鐐规璁″垝ID) == "" ? 0 : data[0]
+                            .鐐规璁″垝ID
+                        this.hform.HPlanEntryID = (data[0].鐐规璁″垝瀛怚D == null ? 0 : data[0].鐐规璁″垝瀛怚D) == "" ? 0 : data[
+                            0].鐐规璁″垝瀛怚D
+
+                        this.HCheckFileList = Array.from(data).map(item => {
+                            return {
+                                "HDotCheckItemID": item.HDotCheckItemID,
+                                "HDotCheckCode": item.鐐规椤圭洰浠g爜,
+                                "HDotCheckItem": item.鐐规椤圭洰,
+                                "HDotCheckPart": item.鐐规閮ㄤ綅,
+                                "HClaim": item.鍏蜂綋瑕佹眰,
+                                "HManagerID": item.璐熻矗浜篒D,
+                                "HManagerCode": item.璐熻矗浜轰唬鐮�,
+                                "HManagerName": item.璐熻矗浜哄悕绉�,
+                                "HSourceInterID": item.鐐规璁″垝ID == null ? 0 : item.鐐规璁″垝ID,
+                                "HSourceEntryID": item.鐐规璁″垝瀛怚D == null ? 0 : item.鐐规璁″垝瀛怚D,
+                                "HSourceBillNo": item.鐐规璁″垝鍗�,
+                                "HDotCheckItemClassID": 0,
+                                "HDotCheckItemClassName": "",
+                                "HDotCheckItemMethodID": 0,
+                                "HDotCheckItemMethodName": "",
+                                "HDotCheckResult": item.榛樿缁撹 == 1 ? true : false
+                            }
+                        })
+
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: `鑾峰彇鐐规瑙勭▼閿欒锛� ${Message}`
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: `鑾峰彇鐐规瑙勭▼閿欒锛� ${err}`
+                    })
+                }
+            },
+            radioChange({
+                detail: {
+                    value
+                }
+            }) {
+                this.hform.HCheckResult = value
+            },
+            async getMaxNum() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: "/Web/GetMAXNum",
+                        data: {
+                            "HBillType": this.HBillType
+                        }
+                    })
+
+                    let {
+                        count,
+                        data,
+                        Message
+                    } = res.data
+                    console.log('data: ', data);
+                    // this.hform.HInterID = data[0]["HInterID"]
+                    this.hform.HInterID = 0
+                    this.hform.HBillNo = data[0]["HBillNo"]
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: "娓╅Θ鎻愮ず",
+                        message: "鑾峰彇鍗曟嵁淇℃伅寮傚父: " + err
+                    })
+                }
+            },
+            async submit() {
+                let valid = this.ValidCheck()
+                if (!valid.state) {
+                    CommonUtils.showTips({
+                        message: valid.Message
+                    })
+                    return
+                }
+
+                try {
+                    let oMain = JSON.stringify(this.hform);
+                    this.HDetailList[0].HConkReasonID = this.hform.HConkReasonID
+                    this.HDetailList[0].HConkExplanation = this.hform.HExplanation
+                    this.HDetailList[0].HManagerID = this.hform.HManagerID
+                    let sSubStr = JSON.stringify(this.HDetailList);
+                    let sMainSub = oMain + ';' + sSubStr + `;` + getUserInfo()[
+                        'Czymc'] + ";1";
+                    let res = await CommonUtils.doRequest2Sync({
+                        url: "/Sb_EqpRepairWorkBill/SaveGetEqpConkBookBillList",
+                        data: {
+                            "msg": sMainSub
+                        },
+                        method: "POST"
+                    })
+
+                    if (!res) {
+                        return
+                    }
+
+                    let {
+                        count,
+                        Message
+                    } = res.data
+                    if (count == 1) {
+                        uni.showModal({
+                            title: '鎻愮ず',
+                            content: res.data.Message + '銆傛槸鍚︾户缁柊澧烇紵(鐐瑰嚮鍙栨秷杩斿洖涓婄骇椤甸潰)',
+                            success: (res) => {
+                                if (res.confirm) {
+                                    console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+                                    uni.redirectTo({
+                                        url: './Sb_EquipConkBookBill?operationType=1'
+                                    })
+                                } else if (res.cancel) {
+                                    console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+                                    setTimeout(() => {
+                                        uni.navigateBack();
+                                    }, 50)
+                                }
+                            }
+                        });
+                    } else {
+                        CommonUtils.showTips({
+                            title: "娓╅Θ鎻愮ず",
+                            message: "鎻愪氦鍗曟嵁澶辫触: " + Message
+                        })
+                    }
+
+
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: "娓╅Θ鎻愮ず",
+                        message: "鎻愪氦鍗曟嵁澶辫触: " + err
+                    })
+                }
+            },
+            async getEditData(hmainid) {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: '/Sb_EqpRepairWorkBill/Sb_EqpConkBookBillListCheckDetai',
+                        data: {
+                            HID: hmainid
+                        },
+                    })
+
+                    let {
+                        data,
+                        count,
+                        msg,
+                        code
+                    } = res.data
+
+                    if (code == 1) {
+                        data = data.h_v_Sb_EquipConkBookBillList_Edit[0]
+                        
+                        this.enableEdit = false
+                    } else {
+                        CommonUtils.showTips({
+                            title: '娓╅Θ鎻愮ず',
+                            message: `鑾峰彇鏁呴殰鐧昏鍗曞け璐�: ${msg}`
+                        })
+                    }
+
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: '娓╅Θ鎻愮ず',
+                        message: `鑾峰彇鏁呴殰鐧昏鍗曞け璐�: ${err}`
+                    })
+                }
+            }
+        },
+        onLoad(e) {
+            console.log('e: ', e);
+            if (!e.operationType) {
+                this.operationType = 1
+            } else {
+                this.operationType = e.operationType
+            }
+
+            if (this.operationType == 1) {
+                // 鏂板
+                this.getMaxNum()
+            } else if (this.operationType == 2) {
+                // 澶嶅埗
+            } else if (this.operationType == 3) {
+                // 缂栬緫 锛圥DA涓病鏈夌紪杈戝姛鑳斤紝鏁呮澶勭紪杈戝姛鑳藉厛涓嶄娇鐢級
+                let hmainid = e.hmainid
+                this.getEditData(hmainid)
+
+            } else if (this.operationType == 4) {
+                // 娴忚
+
+            }
+
+            this.getHDeptList()
+            this.getEmpList()
+            this.getConkReason()
+            this.getConkType()
+        },
+        onReady() {
+            const query = uni.createSelectorQuery().in(this)
+            query.select("#buttons")
+                .boundingClientRect()
+                .select("#tabs")
+                .boundingClientRect()
+                .exec(res => {
+                    this.btnTop = Math.floor(res[0].top)
+                    this.tabsBottom = Math.ceil(res[1].bottom)
+                })
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    @import "@/pages/MJGL/style/MJBillStyle.scss"
+</style>
\ No newline at end of file
diff --git a/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList.vue b/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList.vue
new file mode 100644
index 0000000..17d7fe4
--- /dev/null
+++ b/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList.vue
@@ -0,0 +1,455 @@
+<template>
+    <view class="content">
+        <view class="form">
+            <view class="form-item">
+                <view class="title">寮�濮嬫椂闂�:</view>
+                <view class="right">
+                    <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HBeginDate">
+                        <input :value="hform.HBeginDate" />
+                    </uni-datetime-picker>
+                </view>
+            </view>
+            <view class="form-item">
+                <view class="title">缁撴潫鏃堕棿:</view>
+                <view class="right">
+                    <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HEndDate">
+                        <input :value="hform.HEndDate" />
+                    </uni-datetime-picker>
+                </view>
+            </view>
+            <view v-if="showmore">
+                <view class="form-item">
+                    <view class="title">鍗曟嵁鍙�:</view>
+                    <view class="right">
+                        <input v-model="hform.HBillNo" placeholder="璇疯緭鍏ュ崟鎹彿" />
+                    </view>
+                </view>
+
+            </view>
+            <view class="other">
+                <view v-if="!showmore" @tap="changeShowMore">
+                    灞曞紑鍏朵粬鏉′欢<uni-icons color="#1890FF" style="margin-left: 8rpx;" type="bottom"></uni-icons>
+                </view>
+                <view v-if="showmore" @tap="changeShowMore">
+                    鎶樺彔鍏朵粬鏉′欢<uni-icons color="#1890FF" style="margin-left: 8rpx;" type="top"></uni-icons>
+                </view>
+            </view>
+
+            <view class="buttons">
+                <button class="btn-a" size="mini" type="default" @tap="clear">閲嶇疆</button>
+                <button class="btn-b" size="mini" type="default" @tap="add">鏂板</button>
+                <button class="btn-c" size="mini" type="default" @tap="search">鏌ヨ</button>
+            </view>
+        </view>
+
+        <view id="divide" style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+        <view :style="{
+            height: calcContentHeight + 'px',
+            overflowY: 'auto'
+        }">
+            <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
+                <uni-card :title="item.鍒跺崟鏃ユ湡.substr(0,10)" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+                    @tap="showDetail = showDetail==index?-1:index">
+                    <view class="card-detail"
+                        v-for="(HBillField, index) in CommonUtils.emptyValueFilter(item,HFieldList).slice(0,10)" :key="index">
+                        <template
+                            v-if="HBillField.ColmType == 'DateTime'"><text>{{ HBillField.ColmCols }}锛�</text>{{ item[HBillField.ColmCols] ? dayjs(item[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }}
+                        </template>
+                        <template
+                            v-else><text>{{ HBillField.ColmCols }}锛�</text>{{ item[HBillField.ColmCols] }}</template>
+                    </view>
+                    <view class="card-detail" v-if="showDetail == index">
+                        <view class="card-detail"
+                            v-for="(HBillField, index) in CommonUtils.emptyValueFilter(item,HFieldList).slice(10,-1)"
+                            :key="index">
+                            <template
+                                v-if="HBillField.ColmType == 'DateTime'"><text>{{ HBillField.ColmCols }}锛�</text>{{ item[HBillField.ColmCols] ? dayjs(item[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }}
+                            </template>
+                            <template
+                                v-else><text>{{ HBillField.ColmCols }}锛�</text>{{ item[HBillField.ColmCols] }}</template>
+                        </view>
+                    </view>
+
+                    <view class="more" v-if="showDetail == index && operations != index">
+                        <view class="part" style="border-right: 1px solid #eee;">
+                            <uni-icons type="top" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏀惰捣
+                        </view>
+                        <view class="part" @tap.stop="operations = operations==index?-1:index">
+                            <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+                                size="14"></uni-icons>鎿嶄綔
+                        </view>
+                    </view>
+                    <view class="more" v-if="showDetail != index && operations != index">
+                        <view class="part" style="border-right: 1px solid #eee;">
+                            <uni-icons type="bottom" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>鏇村淇℃伅
+                        </view>
+                        <view class="part" @tap.stop="operations = operations==index?-1:index">
+                            <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
+                                size="14"></uni-icons>鎿嶄綔
+                        </view>
+                    </view>
+                    <view class="op" v-if="operations == index">
+                        <!-- <button class="op3" size="mini" plain @tap.stop="edit(item)">缂栬緫</button> -->
+                        <button class="op4" size="mini" plain @tap.stop="del(item)">鍒犻櫎</button>
+                        <button class="op5" size="mini" plain @tap.stop="operations = -1">鍙栨秷鎿嶄綔</button>
+                    </view>
+                </uni-card>
+            </view>
+        </view>
+        <view class="pagination-zone" id="pagination-zone">
+            <uni-pagination show-icon :page-size="size" :total="dataLength" :current="page"
+                @change="onPaginationChangeHandler"></uni-pagination>
+        </view>
+        <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
+    </view>
+</template>
+
+<script>
+    import {
+        getUserInfo
+    } from "@/utils/auth.js";
+    import BarCodePopupVue from "@/components/BarCodePopup/BarCodePopup.vue";
+    import {
+        CommonUtils
+    } from "@/utils/common";
+    import dayjs from "dayjs";
+    export default {
+        data() {
+            return {
+                dayjs,
+                CommonUtils,
+                userInfo: getUserInfo(),
+                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+                tabs: 0,
+                urls: '/Web/GetEquipmentBillsList',
+                MvarReportTitle: '璁惧鏁呴殰鐧昏鍗曠紦瀛�',
+                hform: {
+                    HBillNo: '',
+                    HSourceBillNo: '',
+                    HBillType: '',
+                    user: uni.getStorageSync('HUserName'),
+                    HStockOrgID: uni.getStorageSync('OrganizationID'),
+                    Type: "GZ",
+                    sWhere: "",
+                    HBeginDate: dayjs(new Date()).subtract(30, 'day').format("YYYY-MM-DD"),
+                    HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+                },
+                sWhere: '',
+                listData: [],
+                showList: [],
+                HFieldList: [],
+                showDetail: -1,
+                operations: -1,
+
+                page: 1,
+                size: 20,
+                dataLength: 0,
+                divideBottom: 0,
+                paginationTop: 0,
+                showmore: false,
+            }
+        },
+        computed: {
+            calcContentHeight: {
+                get() {
+                    return this.paginationTop - this.divideBottom
+                }
+            }
+        },
+        onShow() {
+            //鐢ㄦ埛妯″潡鏉冮檺鍒ゆ柇
+            // this.CheckModRight()
+            this.changeTab(0)
+            console.log(this.userInfo, uni.getStorageSync('HUserName'))
+        },
+        components: {
+            BarCodePopupVue
+        },
+        onPullDownRefresh: function() {
+            this.clear()
+            setTimeout(() => {
+                uni.stopPullDownRefresh();
+            }, 1000);
+        },
+        onReady() {
+            this.getCalcHeight()
+        },
+        methods: {
+            changeShowMore() {
+                this.showmore = !this.showmore
+                this.$nextTick(() => {
+                    // 閲嶆柊璁$畻鍐呭瑙嗗彛楂樺害
+                    this.getCalcHeight()
+                })
+            },
+            getCalcHeight() {
+                let query = uni.createSelectorQuery().in(this)
+                query
+                    .select("#divide")
+                    .boundingClientRect()
+                    .select("#pagination-zone")
+                    .boundingClientRect()
+                    .exec(res => {
+                        this.divideBottom = Math.ceil(res[0].bottom)
+                        this.paginationTop = Math.floor(res[1].top)
+                    })
+            },
+            async qrCodeDisplay(item) {
+                this.$refs.barcodePopup.setCodeInfo(item.HBillNo)
+                await this.$nextTick()
+                this.$refs.barcodePopup.open()
+            },
+            CheckModRight() {
+                uni.request({
+                    url: this.serverUrl + '/WEBSController/CheckModRight_Json',
+                    data: {
+                        ModRightName: 'CE_OtherOut',
+                        HUserName: uni.getStorageSync('HUserName')
+                    },
+                    success: (res) => {
+                        if (res.data.count == 1) {} else {
+                            uni.showToast({
+                                title: res.data.Message,
+                                icon: 'none'
+                            })
+                        }
+                    },
+                    fail: (res) => {
+                        console.log(res);
+                        uni.showToast({
+                            title: '鎺ュ彛璇锋眰澶辫触',
+                            icon: 'none'
+                        })
+                    },
+                });
+            },
+            onPaginationChangeHandler({
+                current
+            }) {
+                this.page = current
+                this.showList = this.getPage(current, this.size, this.listData)
+            },
+            getPage(page, size, list) {
+                let sindex = (parseInt(page) - 1) * size
+                let eindex = parseInt(page) * size
+                let newList = list.slice(sindex, eindex)
+                return newList
+            },
+            changeTab(e) {
+                this.tabs = e
+                this.page = 1
+                this.showList = []
+
+                if (this.tabs == 0) {
+                    this.urls = '/Web/GetEquipmentBillsList'
+                }
+                // if (this.tabs == 1) {
+                // 	this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_Json'
+                // }
+                this.search()
+            },
+            async getList() {
+                try {
+                    let res = await CommonUtils.doRequest2Async({
+                        url: this.urls,
+                        data: this.hform
+                    })
+
+                    let {
+                        count,
+                        data,
+                        Message,
+                        list
+                    } = res.data
+
+                    if (count == 1) {
+                        if (data == null) {
+                            data = []
+                        }
+                        this.listData = data
+                        this.showList = this.getPage(this.page, this.size, data)
+                        this.dataLength = data.length
+                        this.HFieldList = CommonUtils.fieldListFilterRole({
+                            ExcludeKeys: ["鍒跺崟鏃ユ湡", "鍗曟嵁鍙�"],
+                            FieldList: Array.from(list)
+                        }).data
+                    } else {
+                        CommonUtils.showTips({
+                            title: "娓╅Θ鎻愮ず",
+                            message: `鑾峰彇璁惧鏁呴殰鐧昏鍗曞け璐�: ${Message}`
+                        })
+                    }
+                } catch (err) {
+                    CommonUtils.showTips({
+                        title: "娓╅Θ鎻愮ず",
+                        message: `鑾峰彇璁惧鏁呴殰鐧昏鍗曞け璐�: ${err}`
+                    })
+                }
+
+            },
+            search() {
+                this.hform.sWhere = ''
+                this.listData = []
+                this.page = 1
+                this.showList = []
+
+                if (this.hform.HBillNo) {
+                    this.hform.sWhere += " and 鍗曟嵁鍙� like '%" + this.hform.HBillNo + "%'";
+                }
+                if (this.hform.HBeginDate && this.hform.HEndDate) {
+                    this.hform.sWhere +=
+                        ` and convert(date,鏃ユ湡) between convert(date, '${this.hform.HBeginDate}') and convert(date, '${this.hform.HEndDate}')`;
+                }
+                this.getList()
+            },
+            clear() {
+                this.listData = []
+                this.page = 1
+                this.showList = []
+
+                this.sWhere = ''
+                this.hform = {
+                    HBillNo: '',
+                    HSourceBillNo: '',
+                    HBillType: '',
+                    user: uni.getStorageSync('HUserName'),
+                    HStockOrgID: uni.getStorageSync('OrganizationID'),
+                    Type: "GZ",
+                    sWhere: "",
+                    HBeginDate: dayjs(new Date()).subtract(30, 'day').format("YYYY-MM-DD"),
+                    HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
+                }
+                this.search()
+            },
+            add() {
+                uni.navigateTo({
+                    url: '/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill?operationType=1'
+                })
+            },
+            //缂栬緫
+            edit(item) {
+                return
+                console.log(item)
+                uni.request({
+                    url: this.serverUrl + '/WEBSController/TempList_Modify_Json',
+                    data: {
+                        "HInterID": item.HInterID,
+                        "HBillNo": item.鍗曟嵁鍙�,
+                        "HBillType": this.hform.HBillType
+                    },
+                    success: (res) => {
+                        console.log(1, res);
+                        if (res.data.count == 1) {
+                            uni.navigateTo({
+                                url: './OtherOutBill?OperationType=2&HInterID=' + item.HInterID
+                            })
+                        } else {
+                            uni.showToast({
+                                title: res.data.Message,
+                                icon: 'none'
+                            })
+                        }
+
+                    },
+                    fail: (res) => {
+                        console.log(res);
+                        uni.hideLoading()
+                        uni.showToast({
+                            title: '鎺ュ彛璇锋眰澶辫触',
+                            icon: 'none'
+                        })
+                    },
+                })
+            },
+            //鍒犻櫎
+            del(item) {
+                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
+                uni.showModal({
+                    title: '鎻愮ず',
+                    content: '纭瑕佸垹闄よ褰曪紵鍒犻櫎鍚庝笉鑳芥仮澶�',
+                    success: (res) => {
+                        if (res.confirm) {
+                            console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+                            uni.request({
+                                url: this.serverUrl +
+                                    '/Sb_EqpRepairWorkBill/DeltetEqpConkBookBill',
+                                data: {
+                                    HInterID: item.hmainid,
+                                    user: uni.getStorageSync('HUserName'),
+                                },
+                                success: (res) => {
+                                    console.log(1, res);
+                                    if (res.data.count == 1) {
+                                        this.clear()
+                                    }
+                                    uni.showToast({
+                                        title: res.data.Message,
+                                        icon: 'none'
+                                    })
+                                },
+                                fail: (res) => {
+                                    console.log(res);
+                                    uni.hideLoading()
+                                    uni.showToast({
+                                        title: '鎺ュ彛璇锋眰澶辫触',
+                                        icon: 'none'
+                                    })
+                                },
+                            });
+                        } else if (res.cancel) {
+                            console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+                        }
+                    }
+                });
+            },
+            //鎾ら攢
+            revoke(item) {
+                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
+                uni.showModal({
+                    title: '鎻愮ず',
+                    content: '鏄惁纭鎾ら攢',
+                    success: (res) => {
+                        if (res.confirm) {
+                            console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+                            uni.request({
+                                url: this.serverUrl +
+                                    '/WEBSController/set_DeleteICStockBillAndWMS_Json',
+                                data: {
+                                    HInterID: item.HInterID,
+                                    HBillNo: item.鍗曟嵁鍙�,
+                                    HBillType: this.hform.HBillType,
+                                    HMaker: uni.getStorageSync('HUserName'),
+                                    MvarReportTitle: this.MvarReportTitle,
+                                },
+                                success: (res) => {
+                                    console.log(1, res);
+                                    if (res.data.count == 1) {
+                                        this.clear()
+                                    }
+                                    uni.showToast({
+                                        title: res.data.Message,
+                                        icon: 'none'
+                                    })
+                                },
+                                fail: (res) => {
+                                    console.log(res);
+                                    uni.hideLoading()
+                                    uni.showToast({
+                                        title: '鎺ュ彛璇锋眰澶辫触',
+                                        icon: 'none'
+                                    })
+                                },
+                            });
+                        } else if (res.cancel) {
+                            console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+                        }
+                    }
+                });
+            },
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    @import "@/pages/MJGL/style/MJListStyle.scss"
+</style>
\ No newline at end of file
diff --git a/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBill.vue b/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBill.vue
new file mode 100644
index 0000000..a0529d6
--- /dev/null
+++ b/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBill.vue
@@ -0,0 +1,819 @@
+<template>
+	<view>
+		<scroll-view scroll-y id="scroll-content" class="scroll-content" :style="{height: scrollContentHeight + 'px'}">
+			<view class="form-item">
+				<view class="title">鏉″舰鐮�:</view>
+				<view class="right">
+					<input type="text" name="HBarCode" id="HBarCode" v-model="HBarCode" @confirm="getCode(HBarCode)" />
+				</view>
+				<view class="right-icon" @click="toScanCode">
+					<uni-icons color="#fff" type="scan" size="24"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">杩樻牱鏁伴噺:</view>
+				<view class="right">
+					<input type="number" name="HQty" id="HQty" v-model="hform.HQty" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">杩樻牱鍐呭:</view>
+				<view class="right">
+					<input type="text" name="HRemark" id="HRemark" v-model="hform.HRemark" />
+				</view>
+			</view>
+
+
+			<view class="form-item">
+				<view class="title">杩樻牱鍛�:</view>
+				<view class="right">
+					<uni-combox :candidates="HCheckEmpNameArray" name="HCheckEmpName" id="HCheckEmpName"
+						placeholder="璇烽�夋嫨杩樻牱鍛�" v-model="hform.HCheckEmpName"
+						@input="HCheckEmpNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">閮ㄩ棬:</view>
+				<view class="right">
+					<uni-combox :candidates="HDeptNameArray" name="HDeptName" id="HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬"
+						v-model="hform.HDeptName" @input="HDeptNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇鐝:</view>
+				<view class="right">
+					<uni-combox :candidates="HShiftsNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝"
+						v-model="hform.HShiftsName" @input="HShiftsNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+
+			<view class="form-item">
+				<view class="title">鍗曟嵁鏃ユ湡:</view>
+				<view class="right disabled">
+					<input disabled type="text" name="HDate" id="HDate" v-model="hform.HDate" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍗曟嵁鍙�:</view>
+				<view class="right disabled">
+					<input disabled type="text" name="HBillNo" id="HBillNo" v-model="hform.HBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇璁㈠崟:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HICMOBillNo" name="HICMOBillNo" id="HICMOBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HProcExchBillNo" name="HProcExchBillNo"
+						id="HProcExchBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐗╂枡浠g爜:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterCode" name="HMaterCode" id="HMaterCode" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐗╂枡鍚嶇О:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterName" name="HMaterName" id="HMaterName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">瑙勬牸鍨嬪彿:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterSpec" name="HMaterSpec" id="HMaterSpec" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">璁¢噺鍗曚綅:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HUnitName" name="HUnitName" id="HUnitName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">宸ュ簭:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HProcName" name="HProcName" id="HProcName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗℃壒鍙�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HBatchNo" name="HBatchNo" id="HBatchNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗℃暟閲�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HProcExchQty" name="HProcExchQty" id="HProcExchQty" />
+				</view>
+			</view>
+		</scroll-view>
+		<view class="bottom-btn" id="bottom-btn">
+			<view><button class="btn-a" size="mini" @tap="submit">鎻愪氦</button></view>
+			<view><button class="btn-b" size="mini" @tap="onAddNewHandler">鏂板</button></view>
+			<view class="placeholder__view"></view>
+			<view><button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button></view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import dayjs from "dayjs";
+	import {
+		CommonUtils
+	} from "@/utils/common";
+	import {
+		getUserInfo
+	} from '../../../../utils/auth'
+
+
+
+	export default {
+		data() {
+			return {
+				pageMeta: {
+					scrollContentTop: 0,
+					bottomBtnTop: 0,
+				},
+				refSav: 'Add',
+				showMask: true,
+				TestTypeArray: ["棣栨", "宸℃", "鏈", "瀹為獙"],
+
+				HBillType: '7522',
+				HProcNameArray: [],
+				HProcNameArraySource: [],
+
+				HDeptNameArray: [],
+				HDeptNameArraySource: [],
+
+				HShiftsNameArray: [],
+				HShiftsNameArraySource: [],
+
+				HGroupNameArray: [],
+				HGroupNameArraySource: [],
+
+				HCheckEmpNameArray: [],
+				HCheckEmpNameSource: [],
+
+				HSourceNameArray: [],
+				HSourceNameSource: [],
+
+				HBarCode: '',
+				hform: {
+					HBarCode: '',
+					HQty: '',
+					HRemark: '',
+					HEmpName: getUserInfo()['HEmpName'],
+					HEmp: getUserInfo()['HEmpID'],
+					HDeptName: '',
+					HDeptID: 0,
+					HWorkShiftName: '',
+					HWorkShiftID: 0,
+					HDate: dayjs(new Date()).format("YYYY-MM-DD"),
+					HBillNo: '',
+					HInterID: '',
+					HICMOBillNo: '',
+					HICMOInterID: '',
+					HICMOEntryID: '',
+					HProcExchBillNo: '',
+					HProcExchInterID: '',
+					HProcExchEntryID: '',
+					HMaterNumber: '',
+					HMaterID: 0,
+					HMaterName: '',
+					HModel: '',
+					HUnitName: '',
+					HUnitID: '',
+					HProcName: '',
+					HProcID: '',
+					HBatchNo: '',
+					HProcExchQty: '',
+					HICMOQty: '',
+					HMaker: getUserInfo()['Czymc'],
+					HMakeDate: dayjs(new Date()).format("YYYY-MM-DD hh:mm:ss"),
+					HUpDater: '',
+					HUpDateDate: '',
+					HChecker: '',
+					HCheckDate: '',
+					HDeleteMan: '',
+					HDeleteDate: '',
+				}
+			}
+		},
+		computed: {
+			scrollContentHeight: {
+				get() {
+					return this.pageMeta.bottomBtnTop - this.pageMeta.scrollContentTop
+				}
+			}
+		},
+		onReady() {
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#scroll-content").boundingClientRect((data) => {
+				this.pageMeta.scrollContentTop = data.top
+			}).exec()
+			query.select("#bottom-btn").boundingClientRect((data) => {
+				this.pageMeta.bottomBtnTop = data.top
+			}).exec()
+			// #endif
+			// #ifdef MP-WEIXIN
+			// 寰俊涓嶆敮鎸� uni.createSelectorQuery().in(this)
+			// #endif
+
+		},
+		async onLoad(e) {
+			let {
+				operationType
+			} = e
+			if (operationType == 0) {
+				this.getMaxNum()
+				this.refSav = 'Add'
+			} else {
+				this.refSav = 'Update'
+			}
+
+			this.getProcessList()
+			this.get_Gy_WorkShiftList()
+			this.GetGroupList()
+			this.GetEmployeeList()
+			this.getSourceList()
+			this.GetDepartmentList()
+		},
+		methods: {
+			HDeptNameChangeHandler() {
+				let index = this.HDeptNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HDeptID = this.HDeptNameArraySource[index]["HItemID"]
+					this.hform.HDeptName = this.HDeptNameArraySource[index]["HName"]
+				}
+			},
+			GetDepartmentList() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetDepartmentList_Json',
+					data: {
+						Department: '',
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message,
+							code
+						} = res.data
+						if (count == 1) {
+							this.HDeptNameArray = Array.from(data).map(item => item['HName'])
+							this.HDeptNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HSourceNameChangeHandler(e) {
+				let index = this.HSourceNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HSourceID = this.HSourceNameArraySource[index]["HItemID"]
+					this.hform.HSourceName = this.HSourceNameArraySource[index]["鐢熶骇璧勬簮"]
+				}
+
+				console.log('this.hform: ', this.hform);
+			},
+			// 鑾峰彇鐢熶骇璧勬簮
+			getSourceList() {
+				CommonUtils.doRequest2({
+					url: '/api/newBill/getSourceList',
+					data: {
+						sWhere: '',
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							msg,
+							code
+						} = res.data
+						if (code == 1) {
+							let data1 = data.Gy_Source
+							this.HSourceNameArray = Array.from(data1).map(item => item['鐢熶骇璧勬簮'])
+							this.HSourceNameArraySource = data1
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HCheckEmpNameChangeHandler(e) {
+				let index = this.HCheckEmpNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HCheckEmp = this.HCheckEmpNameArraySource[index]["HItemID"]
+					this.hform.HCheckEmpName = this.HCheckEmpNameArraySource[index]["HName"]
+				}
+			},
+			// 鑾峰彇鑱屽憳淇℃伅
+			GetEmployeeList() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetEmployeeList_Json',
+					data: {
+						Employee: '',
+						HGroupID: 0
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HCheckEmpNameArray = Array.from(data).map(item => item['HName'])
+							this.HCheckEmpNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HGroupNameChangeHandler(e) {
+				let index = this.HGroupNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HGroupID = this.HGroupNameArraySource[index]["HItemID"]
+					this.hform.HGroupName = this.HGroupNameArraySource[index]["HName"]
+				}
+			},
+			// 鑾峰彇鐢熶骇鐝粍
+			GetGroupList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetGroupList_Json',
+					data: {
+						Group: '',
+						HStockOrgID: uni.getStorageSync('OrganizationID')
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HGroupNameArray = Array.from(data).map(item => item['HName'])
+							this.HGroupNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 鑾峰彇鏈�鏂板崟鎹彿鍜孒InterID
+			getMaxNum() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetMAXNum',
+					data: {
+						HBillType: this.HBillType
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							data,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.hform.HBillNo = data[0].HBillNo
+							this.hform.HInterID = data[0].HInterID
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HShiftsNameChangeHandler(e) {
+				let index = this.HShiftsNameArray.findIndex(item => item == e)
+				if (index != -1) {
+					this.hform.HShiftsID = this.HShiftsNameArraySource[index]['HInterID']
+					this.hform.HShiftsName = this.HShiftsNameArraySource[index]['鐝鍚嶇О']
+				}
+			},
+			// 鍒濆鍖栫彮娆′俊鎭�
+			get_Gy_WorkShiftList() {
+				CommonUtils.doRequest2({
+					url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
+					data: {
+						sWhere: ` and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync('Organization')}' and 绂佺敤鏍囪='' and ISNULL(瀹℃牳浜� ,'') !=''`,
+						HMaker: getUserInfo()['Czymc']
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HShiftsNameArray = Array.from(data).map(item => item['鐝鍚嶇О'])
+							this.HShiftsNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			// 鑾峰彇鐝
+			get_HWorkShift() {
+				CommonUtils.doRequest2({
+					url: '/Gy_ShiftsController/Get_HWorkShift',
+					data: {
+						"HDeptID": this.hform.HDeptID,
+						"HCenterID": this.hform.HCenterID
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							Message,
+							count
+						} = res.data
+
+						this.hform.HShiftsID = data[0]['HInterID']
+						this.hform.HShiftsName = data[0]['鐝']
+					}
+				})
+			},
+			ProcessExchangeBillQuerySub() {
+				let HProcID = this.hform.HProcID
+				let HBarCode = this.hform.HProcExchInterID
+				let sWhere = ` ${HBarCode} and HProcID = ${HProcID} `
+				CommonUtils.doRequest2({
+					url: '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
+					data: {
+						sWhere: sWhere
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							Message,
+							count
+						} = res.data
+						if (count == 1 && data.length > 0) {
+							this.hform = Object.assign(this.hform, {
+								HProcID: data[0]['HProcID'],
+								HProcName: data[0]['宸ュ簭鍚嶇О'],
+								HSourceID: data[0]['HSourceID'] || 0,
+								HSourceName: data[0]['鐢熶骇璧勬簮'] || '',
+								HMainSourceEntryID: data[0]['hsubid'],
+								HProcExchEntryID: data[0]['hsubid'],
+								HProcExchQty: data[0]['娴佽浆鍗℃暟閲�'],
+								HCenterID: data[0]['HCenterID'] || getUserInfo()['HWorkCenterID'],
+							})
+
+						}
+					}
+				})
+			},
+			onHProcNameChangeHandler(e) {
+				let index = this.HProcNameArray.findIndex(item => item == e)
+				if (index != -1) {
+					this.hform.HProcName = this.HProcNameArraySource[index]['HName']
+					this.hform.HProcID = this.HProcNameArraySource[index]['HItemID']
+					this.ProcessExchangeBillQuerySub()
+				}
+			},
+			getProcessList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetProcessList_Json',
+					data: {
+						Process: '',
+						HStockOrgID: uni.getStorageSync("OrganizationID")
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HProcNameArray = Array.from(data).map(item => item.HName)
+							this.HProcNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			TestTypeChange(e) {
+				console.log('e: ', e);
+			},
+			toScanCode() {
+				var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
+				mpaasScanModule.mpaasScan({
+					'hideAlbum': true,
+					'timeoutInterval': '10', //瓒呮椂鏃堕棿
+					'timeoutText': '鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋            
+				}, (ret) => {
+					console.log(ret.resp_result)
+					if (this.hform.HBarCode == '*') {
+						this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
+					} else {
+						this.HBarCode = ret.resp_result
+						this.hform.HBarCode = ret.resp_result
+					}
+
+					this.getCode(this.hform.HBarCode)
+				})
+			},
+			getCode(HBarCode) {
+				console.log('HBarCode: ', HBarCode);
+				if (!HBarCode) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鏉″舰鐮佷笉鑳戒负绌�'
+					})
+				}
+				let sWhere = " and 宸ュ簭娴佽浆鍗″彿='" + HBarCode + "'";
+				CommonUtils.doRequest2({
+					url: '/QC_TakeSampleCheckBill/Get_BackSampleList',
+					data: {
+						"sWhere": sWhere
+					},
+					resFunction: (res) => {
+						let {
+							code,
+							Message,
+							count,
+							data
+						} = res.data
+						if (count == 1) {
+							this.hform = Object.assign(this.hform, {
+								"HMaterID": data[0].HMaterID, //浜у搧ID
+								"HMaterNumber": data[0].浜у搧缂栫爜, //浜у搧浠g爜
+								"HMaterName": data[0].浜у搧鍚嶇О, //浜у搧鍚嶇О
+								"HModel": data[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
+								"HUnitID": data[0].HUnitID, //璁¢噺鍗曚綅id
+								"HUnitName": data[0].璁¢噺鍗曚綅, //璁¢噺鍗曚綅
+								"HProcExchBillNo": data[0].宸ュ簭娴佽浆鍗″彿, //娴佽浆鍗″彿
+								"HProcExchInterID": data[0].宸ュ簭娴佽浆鍗′富鍐呯爜, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
+								"HBatchNo": data[0].宸ュ簭娴佽浆鍗℃壒娆″彿, //娴佽浆鍗℃壒娆�
+								"HICMOInterID": data[0].浠诲姟鍗曞唴鐮�, //鐢熶骇璁㈠崟ID
+								"HICMOEntryID": data[0].浠诲姟鍗曞瓙鍐呯爜, //鐢熶骇璁㈠崟瀛怚D
+								"HICMOBillNo": data[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
+								"HDeptID": data[0].HDeptID, //杞﹂棿ID
+								"HDeptName": data[0].閮ㄩ棬, //杞﹂棿
+								"HProcID": data[0].HProcID, //褰撳墠宸ュ簭ID
+								"HProcName": data[0].宸ュ簭, //褰撳墠宸ュ簭
+								"HProcExchEntryID": data[0].宸ュ簭娴佽浆鍗″瓙鍐呯爜, //娴佽浆鍗″瓙鍐呯爜(婧愬崟琛屽彿)
+								"HProcExchQty": data[0].宸ュ簭娴佽浆鍗℃暟閲�, //娴佽浆鍗℃暟閲�
+								"HICMOQty": data[0].浠诲姟鍗曟暟閲�,
+								"WorkShiftName": data[0].鐢熶骇鐝,
+								"HWorkShiftID": data[0].HShiftsID,
+								"HBarCode": "",
+							})
+
+							console.log('this.hform: ', this.hform);
+							uni.showToast({
+								icon: 'none',
+								title: '鑾峰彇鎴愬姛!'
+							})
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			submit() {
+				if (this.hform.HProcID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '宸ュ簭娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HQty == '') {
+					return uni.showToast({
+						icon: 'none',
+						title: '鍙栨牱鏁伴噺涓虹┖'
+					})
+				}
+				if (this.hform.HProcID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '宸ュ簭娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HDeptID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '閮ㄩ棬娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HShiftsID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐝鏈�夋嫨'
+					})
+				}
+				if (this.hform.HGroupID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐢熶骇鐝粍鏈�夋嫨'
+					})
+				}
+				if (this.hform.HCheckEmp == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鍙栨牱鍛樻湭閫夋嫨'
+					})
+				}
+				if (this.hform.HSourceID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐢熶骇璧勬簮鏈�夋嫨'
+					})
+				}
+
+				console.log('this.hform: ', this.hform);
+				let sMainStr = JSON.stringify(this.hform)
+				let numData = [{
+					"HMaterID": this.hform.HMaterID,
+					"HUnitID": this.hform.HUnitID,
+					"HProcExchBillNo": this.hform.HProcExchBillNo,
+					"HProcExchInterID": this.hform.HProcExchInterID,
+					"HProcExchEntryID": this.hform.HProcExchEntryID,
+					"HICMOInterID": this.hform.HICMOInterID,
+					"HICMOEntryID": this.hform.HICMOEntryID,
+					"HICMOBillNo": this.hform.HICMOBillNo,
+					"HDeptID": this.hform.HDeptID,
+					"HProcID": this.hform.HProcID,
+					"HProcExchQty": this.hform.HProcExchQty,
+					"HWorkShiftID": this.hform.HWorkShiftID,
+					"HBatchNo": this.hform.HBatchNo,
+					"HICMOQty": this.hform.HICMOQty,
+					"HQty": this.hform.HQty
+				}]
+				let sSubStr = JSON.stringify(numData)
+				let sMainSub = sMainStr + ';' + sSubStr + ';' + this.refSav + ';' + getUserInfo()['Czymc'];
+				CommonUtils.doRequest2({
+					method: 'POST',
+					url: '/QC_TakeSampleCheckBill/SaveQC_BackSampleCheckBillMain',
+					data: {
+						msg: sMainSub
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							return uni.showToast({
+								icon: 'none',
+								title: "鎻愪氦鎴愬姛!"
+							})
+						} else {
+							return uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			onAddNewHandler() {
+				uni.redirectTo({
+					url: "/pages/quyangdan/TakeSampleCheckBillList?operationType=0"
+				})
+			},
+			goBack() {
+				uni.navigateBack()
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.scroll-content {
+		box-sizing: border-box;
+		padding: 20rpx;
+
+		::v-deep .uni-scroll-view-content {
+			box-sizing: border-box;
+			padding: 0 40rpx;
+			display: flex;
+			flex-direction: column;
+			gap: 20rpx;
+		}
+
+		.form-item {
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			gap: 20rpx;
+
+			input {
+				width: inherit;
+				padding: 8rpx 20rpx;
+				font-size: 30rpx;
+			}
+
+			.title {
+				width: 5em;
+				font-size: 30rpx;
+				flex-shrink: 0;
+				text-align: right;
+			}
+
+			.right {
+				flex: 1;
+				border-radius: 22rpx;
+				border: 1px solid #acacac;
+			}
+
+			.right-icon {
+				width: 54rpx;
+				height: 54rpx;
+				border-radius: 50%;
+				background-color: #3A78FF;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				flex-shrink: 0;
+
+			}
+
+			.disabled {
+				border: 1px solid #e4e4e4;
+				background-color: #e4e4e4;
+			}
+		}
+	}
+
+	.bottom-btn {
+		position: fixed;
+		bottom: 0;
+		box-sizing: border-box;
+		background-color: #fff;
+		box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+		padding: 30rpx 40rpx 40rpx 40rpx;
+		display: flex;
+		flex-direction: row;
+		gap: 20rpx;
+		justify-content: space-between;
+		width: 100%;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #3A78FF;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #acacac;
+			color: #fff;
+		}
+	}
+
+	.placeholder__view {
+		flex: 1;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/huanyangdan/BackSampleCheckBillList.vue b/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList.vue
similarity index 99%
rename from pages/huanyangdan/BackSampleCheckBillList.vue
rename to pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList.vue
index 227ce5a..48e8290 100644
--- a/pages/huanyangdan/BackSampleCheckBillList.vue
+++ b/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList.vue
@@ -192,7 +192,7 @@
     } from '@/utils/common.js'
     import {
         getUserInfo
-    } from '../../utils/auth'
+    } from '../../../../utils/auth'
     export default {
         data() {
             return {
diff --git a/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue b/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue
new file mode 100644
index 0000000..74c82a2
--- /dev/null
+++ b/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue
@@ -0,0 +1,831 @@
+<template>
+	<view>
+		<scroll-view scroll-y id="scroll-content" class="scroll-content" :style="{height: scrollContentHeight + 'px'}">
+			<view class="form-item">
+				<view class="title">鏉″舰鐮�:</view>
+				<view class="right">
+					<input type="text" name="HBarCode" id="HBarCode" v-model="HBarCode" @confirm="getCode(HBarCode)" />
+				</view>
+				<view class="right-icon" @click="toScanCode">
+					<uni-icons color="#fff" type="scan" size="24"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">宸ュ簭:</view>
+				<view class="right">
+					<uni-combox :candidates="HProcNameArray" name="HProcName" id="HProcName" placeholder="璇烽�夋嫨宸ュ簭鍙�"
+						v-model="hform.HProcName" @input="onHProcNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍙栨牱鏁伴噺:</view>
+				<view class="right">
+					<input type="number" name="HQty" id="HQty" v-model="hform.HQty" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐮村潖鎬у疄楠屾暟閲�:</view>
+				<view class="right">
+					<input type="number" name="HSampleDamageQty" id="HSampleDamageQty"
+						v-model="hform.HSampleDamageQty" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">閫佹祴绫诲瀷:</view>
+				<view class="right">
+					<uni-combox :candidates="TestTypeArray" v-model="hform.TestType"
+						@input="TestTypeChange"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">閫佹祴鍐呭:</view>
+				<view class="right">
+					<input type="text" name="HBadNote" id="HBadNote" v-model="hform.HBadNote" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">閮ㄩ棬:</view>
+				<view class="right">
+					<uni-combox :candidates="HDeptNameArray" name="HDeptName" id="HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬"
+						v-model="hform.HDeptName" @input="HDeptNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇鐝:</view>
+				<view class="right">
+					<uni-combox :candidates="HShiftsNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝"
+						v-model="hform.HShiftsName" @input="HShiftsNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇鐝粍:</view>
+				<view class="right">
+					<uni-combox :candidates="HGroupNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝粍"
+						v-model="hform.HGroupName" @input="HGroupNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍙栨牱鍛�:</view>
+				<view class="right">
+					<uni-combox :candidates="HCheckEmpNameArray" name="HCheckEmpName" id="HCheckEmpName"
+						placeholder="璇烽�夋嫨鍙栨牱鍛�" v-model="hform.HCheckEmpName"
+						@input="HCheckEmpNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇璧勬簮:</view>
+				<view class="right">
+					<uni-combox :candidates="HSourceNameArray" name="HSourceName" id="HSourceName" placeholder="璇烽�夋嫨鐢熶骇璧勬枡"
+						v-model="hform.HSourceName" @input="HSourceNameChangeHandler"></uni-combox>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍗曟嵁鏃ユ湡:</view>
+				<view class="right disabled">
+					<input disabled type="text" name="HDate" id="HDate" v-model="hform.HDate" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鍗曟嵁鍙�:</view>
+				<view class="right disabled">
+					<input disabled type="text" name="HBillNo" id="HBillNo" v-model="hform.HBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐢熶骇璁㈠崟:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HICMOBillNo" name="HICMOBillNo" id="HICMOBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HProcExchBillNo" name="HProcExchBillNo"
+						id="HProcExchBillNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐗╂枡浠g爜:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterCode" name="HMaterCode" id="HMaterCode" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐗╂枡鍚嶇О:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterName" name="HMaterName" id="HMaterName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">瑙勬牸鍨嬪彿:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HMaterSpec" name="HMaterSpec" id="HMaterSpec" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">璁¢噺鍗曚綅:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HUnitName" name="HUnitName" id="HUnitName" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗℃壒鍙�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HBatchNo" name="HBatchNo" id="HBatchNo" />
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">娴佽浆鍗℃暟閲�:</view>
+				<view class="right disabled">
+					<input disabled type="text" v-model="hform.HProcExchQty" name="HProcExchQty" id="HProcExchQty" />
+				</view>
+			</view>
+		</scroll-view>
+		<view class="bottom-btn" id="bottom-btn">
+			<view><button class="btn-a" size="mini" @tap="submit">鎻愪氦</button></view>
+			<view><button class="btn-b" size="mini" @tap="onAddNewHandler">鏂板</button></view>
+			<view class="placeholder__view"></view>
+			<view><button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button></view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import dayjs from "dayjs";
+	import {
+		CommonUtils
+	} from "@/utils/common";
+	import {
+		getUserInfo
+	} from '../../../../utils/auth'
+
+
+	export default {
+		data() {
+			return {
+				pageMeta: {
+					scrollContentTop: 0,
+					bottomBtnTop: 0,
+				},
+				refSav: 'Add',
+				showMask: true,
+				TestTypeArray: ["棣栨", "宸℃", "鏈", "瀹為獙"],
+
+				HBillType: '7521',
+				HProcNameArray: [],
+				HProcNameArraySource: [],
+
+				HDeptNameArray: [],
+				HDeptNameArraySource: [],
+
+				HShiftsNameArray: [],
+				HShiftsNameArraySource: [],
+
+				HGroupNameArray: [],
+				HGroupNameArraySource: [],
+
+				HCheckEmpNameArray: [],
+				HCheckEmpNameSource: [],
+
+				HSourceNameArray: [],
+				HSourceNameSource: [],
+
+				HBarCode: '',
+				hform: {
+					HBarCode: '',
+					HProcName: '',
+					HProcID: 0,
+					HQty: '',
+					HSampleDamageQty: 0,
+					TestType: '棣栨',
+					HBadNote: '',
+					HDeptName: '',
+					HDeptID: 0,
+					HCenterID: 0,
+					HShiftsName: '',
+					HShiftsID: 0,
+					HGroupName: '',
+					HGroupID: 0,
+					HCheckEmpName: '',
+					HCheckEmp: '',
+					HSourceName: '',
+					HSourceID: 0,
+					HDate: dayjs(new Date()).format("YYYY-MM-DD"),
+					HBillNo: '',
+					HInterID: 0,
+					HICMOBillNo: '',
+					HICMOInterID: 0,
+					HICMOEntryID: 0,
+					HProcExchBillNo: '',
+					HProcExchInterID: 0,
+					HProcExchEntryID: 0,
+					HMainSourceBillNo: '',
+					HMainSourceInterID: 0,
+					HMainSourceBillType: '',
+					HMainSourceEntryID: 0,
+					HMaterCode: '',
+					HMaterID: 0,
+					HMaterName: '',
+					HMaterSpec: '',
+					HUnitName: '',
+					HUnitID: 0,
+					HBatchNo: '',
+					HProcExchQty: '',
+					HMaker: getUserInfo()['Czymc'],
+					HMakeDate: dayjs(new Date()).format("YYYY-MM-DD hh:mm:ss"),
+					HUpDater: '',
+					HUpDateDate: '',
+					HChecker: '',
+					HCheckDate: '',
+					HDeleteMan: '',
+					HDeleteDate: '',
+				}
+			}
+		},
+		computed: {
+			scrollContentHeight: {
+				get() {
+					return this.pageMeta.bottomBtnTop - this.pageMeta.scrollContentTop
+				}
+			}
+		},
+		onReady() {
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#scroll-content").boundingClientRect((data) => {
+				this.pageMeta.scrollContentTop = data.top
+			}).exec()
+			query.select("#bottom-btn").boundingClientRect((data) => {
+				this.pageMeta.bottomBtnTop = data.top
+			}).exec()
+			// #endif
+			// #ifdef MP-WEIXIN
+			// 寰俊涓嶆敮鎸� uni.createSelectorQuery().in(this)
+			// #endif
+
+		},
+		async onLoad(e) {
+			let {
+				operationType
+			} = e
+			if (operationType == 0) {
+				this.getMaxNum()
+				this.refSav = 'Add'
+			} else {
+				this.refSav = 'Update'
+			}
+
+			this.getProcessList()
+			this.get_Gy_WorkShiftList()
+			this.GetGroupList()
+			this.GetEmployeeList()
+			this.getSourceList()
+			this.GetDepartmentList()
+		},
+		methods: {
+			HDeptNameChangeHandler() {
+				let index = this.HDeptNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HDeptID = this.HDeptNameArraySource[index]["HItemID"]
+					this.hform.HDeptName = this.HDeptNameArraySource[index]["HName"]
+				}
+			},
+			GetDepartmentList() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetDepartmentList_Json',
+					data: {
+						Department: '',
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message,
+							code
+						} = res.data
+						if (count == 1) {
+							this.HDeptNameArray = Array.from(data).map(item => item['HName'])
+							this.HDeptNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HSourceNameChangeHandler(e) {
+				let index = this.HSourceNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HSourceID = this.HSourceNameArraySource[index]["HItemID"]
+					this.hform.HSourceName = this.HSourceNameArraySource[index]["鐢熶骇璧勬簮"]
+				}
+
+				console.log('this.hform: ', this.hform);
+			},
+			// 鑾峰彇鐢熶骇璧勬簮
+			getSourceList() {
+				CommonUtils.doRequest2({
+					url: '/api/newBill/getSourceList',
+					data: {
+						sWhere: '',
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							msg,
+							code
+						} = res.data
+						if (code == 1) {
+							let data1 = data.Gy_Source
+							this.HSourceNameArray = Array.from(data1).map(item => item['鐢熶骇璧勬簮'])
+							this.HSourceNameArraySource = data1
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HCheckEmpNameChangeHandler(e) {
+				let index = this.HCheckEmpNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HCheckEmp = this.HCheckEmpNameArraySource[index]["HItemID"]
+					this.hform.HCheckEmpName = this.HCheckEmpNameArraySource[index]["HName"]
+				}
+			},
+			// 鑾峰彇鑱屽憳淇℃伅
+			GetEmployeeList() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetEmployeeList_Json',
+					data: {
+						Employee: '',
+						HGroupID: this.hform.HGroupID
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HCheckEmpNameArray = Array.from(data).map(item => item['HName'])
+							this.HCheckEmpNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HGroupNameChangeHandler(e) {
+				let index = this.HGroupNameArray.findIndex(item => item == e)
+
+				if (index != -1) {
+					this.hform.HGroupID = this.HGroupNameArraySource[index]["HItemID"]
+					this.hform.HGroupName = this.HGroupNameArraySource[index]["HName"]
+				}
+			},
+			// 鑾峰彇鐢熶骇鐝粍
+			GetGroupList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetGroupList_Json',
+					data: {
+						Group: '',
+						HStockOrgID: uni.getStorageSync('OrganizationID')
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HGroupNameArray = Array.from(data).map(item => item['HName'])
+							this.HGroupNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 鑾峰彇鏈�鏂板崟鎹彿鍜孒InterID
+			getMaxNum() {
+				CommonUtils.doRequest2({
+					url: '/Web/GetMAXNum',
+					data: {
+						HBillType: this.HBillType
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							data,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.hform.HBillNo = data[0].HBillNo
+							this.hform.HInterID = data[0].HInterID
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			HShiftsNameChangeHandler(e) {
+				let index = this.HShiftsNameArray.findIndex(item => item == e)
+				if (index != -1) {
+					this.hform.HShiftsID = this.HShiftsNameArraySource[index]['HInterID']
+					this.hform.HShiftsName = this.HShiftsNameArraySource[index]['鐝鍚嶇О']
+				}
+			},
+			// 鍒濆鍖栫彮娆′俊鎭�
+			get_Gy_WorkShiftList() {
+				CommonUtils.doRequest2({
+					url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
+					data: {
+						sWhere: ` and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync('Organization')}' and 绂佺敤鏍囪='' and ISNULL(瀹℃牳浜� ,'') !=''`,
+						HMaker: getUserInfo()['Czymc']
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HShiftsNameArray = Array.from(data).map(item => item['鐝鍚嶇О'])
+							this.HShiftsNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			// 鑾峰彇鐝
+			get_HWorkShift() {
+				CommonUtils.doRequest2({
+					url: '/Gy_ShiftsController/Get_HWorkShift',
+					data: {
+						"HDeptID": this.hform.HDeptID,
+						"HCenterID": this.hform.HCenterID
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							Message,
+							count
+						} = res.data
+
+						this.hform.HShiftsID = data[0]['HInterID']
+						this.hform.HShiftsName = data[0]['鐝']
+					}
+				})
+			},
+			ProcessExchangeBillQuerySub() {
+				let HProcID = this.hform.HProcID
+				let HBarCode = this.hform.HProcExchInterID
+				let sWhere = ` ${HBarCode} and HProcID = ${HProcID} `
+				CommonUtils.doRequest2({
+					url: '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
+					data: {
+						sWhere: sWhere
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							Message,
+							count
+						} = res.data
+						if (count == 1 && data.length > 0) {
+							this.hform = Object.assign(this.hform, {
+								HProcID: data[0]['HProcID'],
+								HProcName: data[0]['宸ュ簭鍚嶇О'],
+								HSourceID: data[0]['HSourceID'] || 0,
+								HSourceName: data[0]['鐢熶骇璧勬簮'] || '',
+								HMainSourceEntryID: data[0]['hsubid'],
+								HProcExchEntryID: data[0]['hsubid'],
+								HProcExchQty: data[0]['娴佽浆鍗℃暟閲�'],
+								HCenterID: data[0]['HCenterID'] || getUserInfo()['HWorkCenterID'],
+							})
+
+						}
+					}
+				})
+			},
+			onHProcNameChangeHandler(e) {
+				let index = this.HProcNameArray.findIndex(item => item == e)
+				if (index != -1) {
+					this.hform.HProcName = this.HProcNameArraySource[index]['HName']
+					this.hform.HProcID = this.HProcNameArraySource[index]['HItemID']
+					this.ProcessExchangeBillQuerySub()
+				}
+			},
+			getProcessList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetProcessList_Json',
+					data: {
+						Process: '',
+						HStockOrgID: uni.getStorageSync("OrganizationID")
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							this.HProcNameArray = Array.from(data).map(item => item.HName)
+							this.HProcNameArraySource = data
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			TestTypeChange(e) {
+				console.log('e: ', e);
+			},
+			toScanCode() {
+				var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
+				mpaasScanModule.mpaasScan({
+					'hideAlbum': true,
+					'timeoutInterval': '10', //瓒呮椂鏃堕棿
+					'timeoutText': '鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋            
+				}, (ret) => {
+					console.log(ret.resp_result)
+					if (this.hform.HBarCode == '*') {
+						this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
+					} else {
+						this.HBarCode = ret.resp_result
+						this.hform.HBarCode = ret.resp_result
+					}
+
+					this.getCode(this.hform.HBarCode)
+				})
+			},
+			getCode(HBarCode) {
+				if (!HBarCode) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鏉″舰鐮佷笉鑳戒负绌�'
+					})
+				}
+				CommonUtils.doRequest2({
+					url: '/api/newBill/getHbarCodeDetail',
+					data: {
+						"sBillBarCode": HBarCode
+					},
+					resFunction: (res) => {
+						let {
+							code,
+							msg,
+							count,
+							data
+						} = res.data
+						if (code == 1) {
+							this.HBarCode = ''
+							let data1 = data.h_v_Sc_ProcessExchangeBillList
+							this.hform = Object.assign(this.hform, {
+								"HMaterID": data1[0].HMaterID, //浜у搧ID
+								"HMaterCode": data1[0].浜у搧浠g爜, //浜у搧浠g爜
+								"HMaterName": data1[0].浜у搧, //浜у搧鍚嶇О
+								"HMaterSpec": data1[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
+								"HUnitID": data1[0].HUnitID, //璁¢噺鍗曚綅id
+								"HUnitName": data1[0].鍗曚綅, //璁¢噺鍗曚綅
+								"HMainSourceBillNo": data1[0].鍗曟嵁鍙�, //婧愬崟鍗曞彿
+								"HMainSourceInterID": data1[0].hmainid, //婧愬崟涓诲唴鐮�
+								"HMainSourceBillType": 3772, //婧愬崟绫诲瀷
+								"HProcExchBillNo": data1[0].鍗曟嵁鍙�, //娴佽浆鍗″彿
+								"HProcExchInterID": data1[0].hmainid, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
+								"HBatchNo": data1[0].鎵瑰彿, //娴佽浆鍗℃壒娆�
+								"HICMOInterID": data1[0].hicmointerid, //鐢熶骇璁㈠崟ID
+								"HICMOEntryID": data1[0].HICMOEntryID, //鐢熶骇璁㈠崟瀛怚D
+								"HICMOBillNo": data1[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
+								"HDeptID": data1[0].HWorkShopID, //杞﹂棿ID
+								"HDeptName": data1[0].鐢熶骇杞﹂棿, //杞﹂棿
+							})
+
+							uni.showToast({
+								icon: 'none',
+								title: msg
+							})
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: msg
+							})
+						}
+					}
+				})
+			},
+			submit() {
+				if (this.hform.HProcID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '宸ュ簭娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HQty == '') {
+					return uni.showToast({
+						icon: 'none',
+						title: '鍙栨牱鏁伴噺涓虹┖'
+					})
+				}
+				if (this.hform.HProcID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '宸ュ簭娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HDeptID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '閮ㄩ棬娌℃湁閫夋嫨'
+					})
+				}
+				if (this.hform.HShiftsID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐝鏈�夋嫨'
+					})
+				}
+				if (this.hform.HGroupID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐢熶骇鐝粍鏈�夋嫨'
+					})
+				}
+				if (this.hform.HCheckEmp == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鍙栨牱鍛樻湭閫夋嫨'
+					})
+				}
+				if (this.hform.HSourceID == 0) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鐢熶骇璧勬簮鏈�夋嫨'
+					})
+				}
+
+				console.log('this.hform: ', this.hform);
+				let sMainStr = JSON.stringify(this.hform)
+				console.log('sMainStr: ', sMainStr);
+				let sMainSub = sMainStr + ';' + this.refSav + ';' + getUserInfo()['Czymc'];
+				CommonUtils.doRequest2({
+					method: 'POST',
+					url: '/QC_TakeSampleCheckBill/SaveQC_TakeSampleCheckBillMain',
+					data: {
+						msg: sMainSub
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							return uni.showToast({
+								icon: 'none',
+								title: "鎻愪氦鎴愬姛!"
+							})
+						} else {
+							return uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+			onAddNewHandler() {
+				uni.redirectTo({
+					url: "/pages/quyangdan/TakeSampleCheckBillList?operationType=0"
+				})
+			},
+			goBack() {
+				uni.navigateBack()
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.scroll-content {
+		box-sizing: border-box;
+		padding: 20rpx;
+
+		::v-deep .uni-scroll-view-content {
+			box-sizing: border-box;
+			padding: 0 40rpx;
+			display: flex;
+			flex-direction: column;
+			gap: 20rpx;
+		}
+
+		.form-item {
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			gap: 20rpx;
+
+			input {
+				width: inherit;
+				padding: 8rpx 20rpx;
+				font-size: 30rpx;
+			}
+
+			.title {
+				width: 5em;
+				font-size: 30rpx;
+				flex-shrink: 0;
+				text-align: right;
+			}
+
+			.right {
+				flex: 1;
+				border-radius: 22rpx;
+				border: 1px solid #acacac;
+			}
+
+			.right-icon {
+				width: 54rpx;
+				height: 54rpx;
+				border-radius: 50%;
+				background-color: #3A78FF;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				flex-shrink: 0;
+
+			}
+
+			.disabled {
+				border: 1px solid #e4e4e4;
+				background-color: #e4e4e4;
+			}
+		}
+	}
+
+	.bottom-btn {
+		position: fixed;
+		bottom: 0;
+		box-sizing: border-box;
+		background-color: #fff;
+		box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+		padding: 30rpx 40rpx 40rpx 40rpx;
+		display: flex;
+		flex-direction: row;
+		gap: 20rpx;
+		justify-content: space-between;
+		width: 100%;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #3A78FF;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #acacac;
+			color: #fff;
+		}
+	}
+
+	.placeholder__view {
+		flex: 1;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/quyangdan/TakeSampleCheckBillList.vue b/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue
similarity index 99%
rename from pages/quyangdan/TakeSampleCheckBillList.vue
rename to pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue
index 99f0dfa..edcaf01 100644
--- a/pages/quyangdan/TakeSampleCheckBillList.vue
+++ b/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue
@@ -198,7 +198,7 @@
     } from '@/utils/common.js'
     import {
         getUserInfo
-    } from '../../utils/auth'
+    } from '../../../../utils/auth'
     export default {
         data() {
             return {
diff --git a/pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue b/pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue
index 2710c7b..e7daec9 100644
--- a/pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue
+++ b/pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue
@@ -475,10 +475,16 @@
                     this.HCheckResultList.find(elem => elem.text == e)?.value
                 if (e == '鍚堟牸') {
                     this.HUseResultValueList = ["鎺ユ敹", "璁╂鎺ユ敹"]
+                    this.detailManifestItem.HUseResultName = "鎺ユ敹"
+                    this.detailManifestItem.HUseResult = "A"
                 } else if (e == '涓嶅悎鏍�') {
                     this.HUseResultValueList = ["鎸戦��(鍏ㄦ)", "鍒ら��"]
+                    this.detailManifestItem.HUseResultName = "鎸戦��(鍏ㄦ)"
+                    this.detailManifestItem.HUseResult = "E"
                 } else if (e == '淇濈暀') {
                     this.HUseResultValueList = ["鎺ユ敹", "璁╂鎺ユ敹", "鎸戦��(鍏ㄦ)", "鍒ら��"]
+                    this.detailManifestItem.HUseResultName = "鎺ユ敹"
+                    this.detailManifestItem.HUseResult = "A"
                 }
 
                 this.HUseResultChangeHandle(this.HUseResultValueList[0])
diff --git a/pages/guzhangdengji/EqpConkBookBillList.vue b/pages/guzhangdengji/EqpConkBookBillList.vue
index 8fa436f..e27dad9 100644
--- a/pages/guzhangdengji/EqpConkBookBillList.vue
+++ b/pages/guzhangdengji/EqpConkBookBillList.vue
@@ -371,7 +371,7 @@
 			edit(item){
 				console.log(item)
 				uni.navigateTo({
-					url:'/pages/guzhangdengji/EqpConkBookBill?hmainid=' + item.hmainid
+					url:'/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill?operationType=3&hmainid=' + item.hmainid
 				})
 			},
 			//鍒犻櫎
diff --git a/pages/huanyangdan/BackSampleCheckBill.vue b/pages/huanyangdan/BackSampleCheckBill.vue
deleted file mode 100644
index 21f870a..0000000
--- a/pages/huanyangdan/BackSampleCheckBill.vue
+++ /dev/null
@@ -1,817 +0,0 @@
-<template>
-    <view>
-        <scroll-view scroll-y id="scroll-content" class="scroll-content" :style="{height: scrollContentHeight + 'px'}">
-            <view class="form-item">
-                <view class="title">鏉″舰鐮�:</view>
-                <view class="right">
-                    <input type="text" name="HBarCode" id="HBarCode" v-model="HBarCode" @confirm="getCode(HBarCode)" />
-                </view>
-                <view class="right-icon" @click="toScanCode">
-                    <uni-icons color="#fff" type="scan" size="24"></uni-icons>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">杩樻牱鏁伴噺:</view>
-                <view class="right">
-                    <input type="number" name="HQty" id="HQty" v-model="hform.HQty" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">杩樻牱鍐呭:</view>
-                <view class="right">
-                    <input type="text" name="HRemark" id="HRemark" v-model="hform.HRemark" />
-                </view>
-            </view>
-
-
-            <view class="form-item">
-                <view class="title">杩樻牱鍛�:</view>
-                <view class="right">
-                    <uni-combox :candidates="HCheckEmpNameArray" name="HCheckEmpName" id="HCheckEmpName"
-                        placeholder="璇烽�夋嫨杩樻牱鍛�" v-model="hform.HCheckEmpName"
-                        @input="HCheckEmpNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">閮ㄩ棬:</view>
-                <view class="right">
-                    <uni-combox :candidates="HDeptNameArray" name="HDeptName" id="HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬"
-                        v-model="hform.HDeptName" @input="HDeptNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇鐝:</view>
-                <view class="right">
-                    <uni-combox :candidates="HShiftsNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝"
-                        v-model="hform.HShiftsName" @input="HShiftsNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-
-            <view class="form-item">
-                <view class="title">鍗曟嵁鏃ユ湡:</view>
-                <view class="right disabled">
-                    <input disabled type="text" name="HDate" id="HDate" v-model="hform.HDate" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鍗曟嵁鍙�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" name="HBillNo" id="HBillNo" v-model="hform.HBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇璁㈠崟:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HICMOBillNo" name="HICMOBillNo" id="HICMOBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HProcExchBillNo" name="HProcExchBillNo"
-                        id="HProcExchBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐗╂枡浠g爜:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterCode" name="HMaterCode" id="HMaterCode" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐗╂枡鍚嶇О:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterName" name="HMaterName" id="HMaterName" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">瑙勬牸鍨嬪彿:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterSpec" name="HMaterSpec" id="HMaterSpec" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">璁¢噺鍗曚綅:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HUnitName" name="HUnitName" id="HUnitName" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">宸ュ簭:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HProcName" name="HProcName" id="HProcName" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗℃壒鍙�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HBatchNo" name="HBatchNo" id="HBatchNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗℃暟閲�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HProcExchQty" name="HProcExchQty" id="HProcExchQty" />
-                </view>
-            </view>
-        </scroll-view>
-        <view class="bottom-btn" id="bottom-btn">
-            <view><button class="btn-a" size="mini" @tap="submit">鎻愪氦</button></view>
-            <view><button class="btn-b" size="mini" @tap="onAddNewHandler">鏂板</button></view>
-            <view class="placeholder__view"></view>
-            <view><button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button></view>
-        </view>
-    </view>
-</template>
-
-<script>
-    import dayjs from 'dayjs'
-    import {
-        getUserInfo
-    } from '../../utils/auth'
-    import {
-        CommonUtils
-    } from '../../utils/common'
-
-    export default {
-        data() {
-            return {
-                pageMeta: {
-                    scrollContentTop: 0,
-                    bottomBtnTop: 0,
-                },
-                refSav: 'Add',
-                showMask: true,
-                TestTypeArray: ["棣栨", "宸℃", "鏈", "瀹為獙"],
-
-                HBillType: '7522',
-                HProcNameArray: [],
-                HProcNameArraySource: [],
-
-                HDeptNameArray: [],
-                HDeptNameArraySource: [],
-
-                HShiftsNameArray: [],
-                HShiftsNameArraySource: [],
-
-                HGroupNameArray: [],
-                HGroupNameArraySource: [],
-
-                HCheckEmpNameArray: [],
-                HCheckEmpNameSource: [],
-
-                HSourceNameArray: [],
-                HSourceNameSource: [],
-
-                HBarCode: '',
-                hform: {
-                    HBarCode: '',
-                    HQty: '',
-                    HRemark: '',
-                    HEmpName: getUserInfo()['HEmpName'],
-                    HEmp: getUserInfo()['HEmpID'],
-                    HDeptName: '',
-                    HDeptID: 0,
-                    HWorkShiftName: '',
-                    HWorkShiftID: 0,
-                    HDate: dayjs(new Date()).format("YYYY-MM-DD"),
-                    HBillNo: '',
-                    HInterID: '',
-                    HICMOBillNo: '',
-                    HICMOInterID: '',
-                    HICMOEntryID: '',
-                    HProcExchBillNo: '',
-                    HProcExchInterID: '',
-                    HProcExchEntryID: '',
-                    HMaterNumber: '',
-                    HMaterID: 0,
-                    HMaterName: '',
-                    HModel: '',
-                    HUnitName: '',
-                    HUnitID: '',
-                    HProcName: '',
-                    HProcID: '',
-                    HBatchNo: '',
-                    HProcExchQty: '',
-                    HICMOQty: '',
-                    HMaker: getUserInfo()['Czymc'],
-                    HMakeDate: dayjs(new Date()).format("YYYY-MM-DD hh:mm:ss"),
-                    HUpDater: '',
-                    HUpDateDate: '',
-                    HChecker: '',
-                    HCheckDate: '',
-                    HDeleteMan: '',
-                    HDeleteDate: '',
-                }
-            }
-        },
-        computed: {
-            scrollContentHeight: {
-                get() {
-                    return this.pageMeta.bottomBtnTop - this.pageMeta.scrollContentTop
-                }
-            }
-        },
-        onReady() {
-            // #ifndef MP-WEIXIN
-            let query = uni.createSelectorQuery().in(this)
-            query.select("#scroll-content").boundingClientRect((data) => {
-                this.pageMeta.scrollContentTop = data.top
-            }).exec()
-            query.select("#bottom-btn").boundingClientRect((data) => {
-                this.pageMeta.bottomBtnTop = data.top
-            }).exec()
-            // #endif
-            // #ifdef MP-WEIXIN
-            // 寰俊涓嶆敮鎸� uni.createSelectorQuery().in(this)
-            // #endif
-
-        },
-        async onLoad(e) {
-            let {
-                operationType
-            } = e
-            if (operationType == 0) {
-                this.getMaxNum()
-                this.refSav = 'Add'
-            } else {
-                this.refSav = 'Update'
-            }
-
-            this.getProcessList()
-            this.get_Gy_WorkShiftList()
-            this.GetGroupList()
-            this.GetEmployeeList()
-            this.getSourceList()
-            this.GetDepartmentList()
-        },
-        methods: {
-            HDeptNameChangeHandler() {
-                let index = this.HDeptNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HDeptID = this.HDeptNameArraySource[index]["HItemID"]
-                    this.hform.HDeptName = this.HDeptNameArraySource[index]["HName"]
-                }
-            },
-            GetDepartmentList() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetDepartmentList_Json',
-                    data: {
-                        Department: '',
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message,
-                            code
-                        } = res.data
-                        if (count == 1) {
-                            this.HDeptNameArray = Array.from(data).map(item => item['HName'])
-                            this.HDeptNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HSourceNameChangeHandler(e) {
-                let index = this.HSourceNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HSourceID = this.HSourceNameArraySource[index]["HItemID"]
-                    this.hform.HSourceName = this.HSourceNameArraySource[index]["鐢熶骇璧勬簮"]
-                }
-
-                console.log('this.hform: ', this.hform);
-            },
-            // 鑾峰彇鐢熶骇璧勬簮
-            getSourceList() {
-                CommonUtils.doRequest2({
-                    url: '/api/newBill/getSourceList',
-                    data: {
-                        sWhere: '',
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            msg,
-                            code
-                        } = res.data
-                        if (code == 1) {
-                            let data1 = data.Gy_Source
-                            this.HSourceNameArray = Array.from(data1).map(item => item['鐢熶骇璧勬簮'])
-                            this.HSourceNameArraySource = data1
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HCheckEmpNameChangeHandler(e) {
-                let index = this.HCheckEmpNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HCheckEmp = this.HCheckEmpNameArraySource[index]["HItemID"]
-                    this.hform.HCheckEmpName = this.HCheckEmpNameArraySource[index]["HName"]
-                }
-            },
-            // 鑾峰彇鑱屽憳淇℃伅
-            GetEmployeeList() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetEmployeeList_Json',
-                    data: {
-                        Employee: '',
-                        HGroupID: 0
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HCheckEmpNameArray = Array.from(data).map(item => item['HName'])
-                            this.HCheckEmpNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HGroupNameChangeHandler(e) {
-                let index = this.HGroupNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HGroupID = this.HGroupNameArraySource[index]["HItemID"]
-                    this.hform.HGroupName = this.HGroupNameArraySource[index]["HName"]
-                }
-            },
-            // 鑾峰彇鐢熶骇鐝粍
-            GetGroupList() {
-                CommonUtils.doRequest2({
-                    url: '/WEBSController/GetGroupList_Json',
-                    data: {
-                        Group: '',
-                        HStockOrgID: uni.getStorageSync('OrganizationID')
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HGroupNameArray = Array.from(data).map(item => item['HName'])
-                            this.HGroupNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-
-            // 鑾峰彇鏈�鏂板崟鎹彿鍜孒InterID
-            getMaxNum() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetMAXNum',
-                    data: {
-                        HBillType: this.HBillType
-                    },
-                    resFunction: (res) => {
-                        let {
-                            count,
-                            data,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.hform.HBillNo = data[0].HBillNo
-                            this.hform.HInterID = data[0].HInterID
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HShiftsNameChangeHandler(e) {
-                let index = this.HShiftsNameArray.findIndex(item => item == e)
-                if (index != -1) {
-                    this.hform.HShiftsID = this.HShiftsNameArraySource[index]['HInterID']
-                    this.hform.HShiftsName = this.HShiftsNameArraySource[index]['鐝鍚嶇О']
-                }
-            },
-            // 鍒濆鍖栫彮娆′俊鎭�
-            get_Gy_WorkShiftList() {
-                CommonUtils.doRequest2({
-                    url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
-                    data: {
-                        sWhere: ` and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync('Organization')}' and 绂佺敤鏍囪='' and ISNULL(瀹℃牳浜� ,'') !=''`,
-                        HMaker: getUserInfo()['Czymc']
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HShiftsNameArray = Array.from(data).map(item => item['鐝鍚嶇О'])
-                            this.HShiftsNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            // 鑾峰彇鐝
-            get_HWorkShift() {
-                CommonUtils.doRequest2({
-                    url: '/Gy_ShiftsController/Get_HWorkShift',
-                    data: {
-                        "HDeptID": this.hform.HDeptID,
-                        "HCenterID": this.hform.HCenterID
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            Message,
-                            count
-                        } = res.data
-
-                        this.hform.HShiftsID = data[0]['HInterID']
-                        this.hform.HShiftsName = data[0]['鐝']
-                    }
-                })
-            },
-            ProcessExchangeBillQuerySub() {
-                let HProcID = this.hform.HProcID
-                let HBarCode = this.hform.HProcExchInterID
-                let sWhere = ` ${HBarCode} and HProcID = ${HProcID} `
-                CommonUtils.doRequest2({
-                    url: '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
-                    data: {
-                        sWhere: sWhere
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            Message,
-                            count
-                        } = res.data
-                        if (count == 1 && data.length > 0) {
-                            this.hform = Object.assign(this.hform, {
-                                HProcID: data[0]['HProcID'],
-                                HProcName: data[0]['宸ュ簭鍚嶇О'],
-                                HSourceID: data[0]['HSourceID'] || 0,
-                                HSourceName: data[0]['鐢熶骇璧勬簮'] || '',
-                                HMainSourceEntryID: data[0]['hsubid'],
-                                HProcExchEntryID: data[0]['hsubid'],
-                                HProcExchQty: data[0]['娴佽浆鍗℃暟閲�'],
-                                HCenterID: data[0]['HCenterID'] || getUserInfo()['HWorkCenterID'],
-                            })
-
-                        }
-                    }
-                })
-            },
-            onHProcNameChangeHandler(e) {
-                let index = this.HProcNameArray.findIndex(item => item == e)
-                if (index != -1) {
-                    this.hform.HProcName = this.HProcNameArraySource[index]['HName']
-                    this.hform.HProcID = this.HProcNameArraySource[index]['HItemID']
-                    this.ProcessExchangeBillQuerySub()
-                }
-            },
-            getProcessList() {
-                CommonUtils.doRequest2({
-                    url: '/WEBSController/GetProcessList_Json',
-                    data: {
-                        Process: '',
-                        HStockOrgID: uni.getStorageSync("OrganizationID")
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HProcNameArray = Array.from(data).map(item => item.HName)
-                            this.HProcNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            TestTypeChange(e) {
-                console.log('e: ', e);
-            },
-            toScanCode() {
-                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
-                mpaasScanModule.mpaasScan({
-                    'hideAlbum': true,
-                    'timeoutInterval': '10', //瓒呮椂鏃堕棿
-                    'timeoutText': '鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋            
-                }, (ret) => {
-                    console.log(ret.resp_result)
-                    if (this.hform.HBarCode == '*') {
-                        this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
-                    } else {
-                        this.HBarCode = ret.resp_result
-                        this.hform.HBarCode = ret.resp_result
-                    }
-
-                    this.getCode(this.hform.HBarCode)
-                })
-            },
-            getCode(HBarCode) {
-                console.log('HBarCode: ', HBarCode);
-                if (!HBarCode) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鏉″舰鐮佷笉鑳戒负绌�'
-                    })
-                }
-                let sWhere = " and 宸ュ簭娴佽浆鍗″彿='" + HBarCode + "'";
-                CommonUtils.doRequest2({
-                    url: '/QC_TakeSampleCheckBill/Get_BackSampleList',
-                    data: {
-                        "sWhere": sWhere
-                    },
-                    resFunction: (res) => {
-                        let {
-                            code,
-                            Message,
-                            count,
-                            data
-                        } = res.data
-                        if (count == 1) {
-                            this.hform = Object.assign(this.hform, {
-                                "HMaterID": data[0].HMaterID, //浜у搧ID
-                                "HMaterNumber": data[0].浜у搧缂栫爜, //浜у搧浠g爜
-                                "HMaterName": data[0].浜у搧鍚嶇О, //浜у搧鍚嶇О
-                                "HModel": data[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
-                                "HUnitID": data[0].HUnitID, //璁¢噺鍗曚綅id
-                                "HUnitName": data[0].璁¢噺鍗曚綅, //璁¢噺鍗曚綅
-                                "HProcExchBillNo": data[0].宸ュ簭娴佽浆鍗″彿, //娴佽浆鍗″彿
-                                "HProcExchInterID": data[0].宸ュ簭娴佽浆鍗′富鍐呯爜, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
-                                "HBatchNo": data[0].宸ュ簭娴佽浆鍗℃壒娆″彿, //娴佽浆鍗℃壒娆�
-                                "HICMOInterID": data[0].浠诲姟鍗曞唴鐮�, //鐢熶骇璁㈠崟ID
-                                "HICMOEntryID": data[0].浠诲姟鍗曞瓙鍐呯爜, //鐢熶骇璁㈠崟瀛怚D
-                                "HICMOBillNo": data[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
-                                "HDeptID": data[0].HDeptID, //杞﹂棿ID
-                                "HDeptName": data[0].閮ㄩ棬, //杞﹂棿
-                                "HProcID": data[0].HProcID, //褰撳墠宸ュ簭ID
-                                "HProcName": data[0].宸ュ簭, //褰撳墠宸ュ簭
-                                "HProcExchEntryID": data[0].宸ュ簭娴佽浆鍗″瓙鍐呯爜, //娴佽浆鍗″瓙鍐呯爜(婧愬崟琛屽彿)
-                                "HProcExchQty": data[0].宸ュ簭娴佽浆鍗℃暟閲�, //娴佽浆鍗℃暟閲�
-                                "HICMOQty": data[0].浠诲姟鍗曟暟閲�,
-                                "WorkShiftName": data[0].鐢熶骇鐝,
-                                "HWorkShiftID": data[0].HShiftsID,
-                                "HBarCode": "",
-                            })
-
-                            console.log('this.hform: ', this.hform);
-                            uni.showToast({
-                                icon: 'none',
-                                title: '鑾峰彇鎴愬姛!'
-                            })
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            submit() {
-                if (this.hform.HProcID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '宸ュ簭娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HQty == '') {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鍙栨牱鏁伴噺涓虹┖'
-                    })
-                }
-                if (this.hform.HProcID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '宸ュ簭娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HDeptID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '閮ㄩ棬娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HShiftsID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐝鏈�夋嫨'
-                    })
-                }
-                if (this.hform.HGroupID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐢熶骇鐝粍鏈�夋嫨'
-                    })
-                }
-                if (this.hform.HCheckEmp == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鍙栨牱鍛樻湭閫夋嫨'
-                    })
-                }
-                if (this.hform.HSourceID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐢熶骇璧勬簮鏈�夋嫨'
-                    })
-                }
-
-                console.log('this.hform: ', this.hform);
-                let sMainStr = JSON.stringify(this.hform)
-                let numData = [{
-                    "HMaterID": this.hform.HMaterID,
-                    "HUnitID": this.hform.HUnitID,
-                    "HProcExchBillNo": this.hform.HProcExchBillNo,
-                    "HProcExchInterID": this.hform.HProcExchInterID,
-                    "HProcExchEntryID": this.hform.HProcExchEntryID,
-                    "HICMOInterID": this.hform.HICMOInterID,
-                    "HICMOEntryID": this.hform.HICMOEntryID,
-                    "HICMOBillNo": this.hform.HICMOBillNo,
-                    "HDeptID": this.hform.HDeptID,
-                    "HProcID": this.hform.HProcID,
-                    "HProcExchQty": this.hform.HProcExchQty,
-                    "HWorkShiftID": this.hform.HWorkShiftID,
-                    "HBatchNo": this.hform.HBatchNo,
-                    "HICMOQty": this.hform.HICMOQty,
-                    "HQty": this.hform.HQty
-                }]
-                let sSubStr = JSON.stringify(numData)
-                let sMainSub = sMainStr + ';' + sSubStr +';' + this.refSav + ';' + getUserInfo()['Czymc'];
-                CommonUtils.doRequest2({
-                    method: 'POST',
-                    url: '/QC_TakeSampleCheckBill/SaveQC_BackSampleCheckBillMain',
-                    data: {
-                        msg: sMainSub
-                    },
-                    resFunction: (res) => {
-                        let {
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            return uni.showToast({
-                                icon: 'none',
-                                title: "鎻愪氦鎴愬姛!"
-                            })
-                        } else {
-                            return uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            onAddNewHandler() {
-                uni.redirectTo({
-                    url: "/pages/quyangdan/TakeSampleCheckBillList?operationType=0"
-                })
-            },
-            goBack() {
-                uni.navigateBack()
-            },
-        }
-    }
-</script>
-
-<style lang="scss" scoped>
-    .scroll-content {
-        box-sizing: border-box;
-        padding: 20rpx;
-
-        ::v-deep .uni-scroll-view-content {
-            box-sizing: border-box;
-            padding: 0 40rpx;
-            display: flex;
-            flex-direction: column;
-            gap: 20rpx;
-        }
-
-        .form-item {
-            display: flex;
-            flex-direction: row;
-            align-items: center;
-            gap: 20rpx;
-
-            input {
-                width: inherit;
-                padding: 8rpx 20rpx;
-                font-size: 30rpx;
-            }
-
-            .title {
-                width: 5em;
-                font-size: 30rpx;
-                flex-shrink: 0;
-                text-align: right;
-            }
-
-            .right {
-                flex: 1;
-                border-radius: 22rpx;
-                border: 1px solid #acacac;
-            }
-
-            .right-icon {
-                width: 54rpx;
-                height: 54rpx;
-                border-radius: 50%;
-                background-color: #3A78FF;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                flex-shrink: 0;
-
-            }
-
-            .disabled {
-                border: 1px solid #e4e4e4;
-                background-color: #e4e4e4;
-            }
-        }
-    }
-
-    .bottom-btn {
-        position: fixed;
-        bottom: 0;
-        box-sizing: border-box;
-        background-color: #fff;
-        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
-        padding: 30rpx 40rpx 40rpx 40rpx;
-        display: flex;
-        flex-direction: row;
-        gap: 20rpx;
-        justify-content: space-between;
-        width: 100%;
-
-        button {
-            border-radius: 50rpx;
-            width: 180rpx;
-            height: 66rpx;
-            line-height: 66rpx;
-            font-size: 28rpx;
-        }
-
-        .btn-a {
-            background-color: #3A78FF;
-            color: #fff;
-        }
-
-        .btn-b {
-            background-color: #41a863;
-            color: #fff;
-        }
-
-        .btn-c {
-            background-color: #acacac;
-            color: #fff;
-        }
-    }
-
-    .placeholder__view {
-        flex: 1;
-    }
-</style>
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 5dfac23..c486320 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -337,6 +337,7 @@
 						"id": 26,
 						"hidden": false
 					},
+	
 					
 				],
             }
diff --git a/pages/index/login.vue b/pages/index/login.vue
index e23efbb..e5484ab 100644
--- a/pages/index/login.vue
+++ b/pages/index/login.vue
@@ -120,8 +120,9 @@
                     "閿﹂殕-鏅鸿兘瀹跺眳": "http://192.168.1.11/API/",
                     "閿﹂殕-鏅鸿兘瀹跺眳-澶栫綉": "http://61.174.29.234:8880/API/",
 					// 鍗庤垷鍖呰
-					"瀹佹尝鍗庤垷鍖呰": "http://192.168.88.167:8082/API/",
-					"瀹佹尝鍗庤垷鍖呰-澶栫綉": "http://61.164.64.222:8082/API/",
+					"瀹佹尝鍗庤垷鍖呰1": "http://192.168.110.222:8082/API_NW/",
+                    "瀹佹尝鍗庤垷鍖呰2": "http://192.168.88.167:8082/API_NW/",
+					"瀹佹尝鍗庤垷鍖呰": "http://61.164.64.222:8082/API_WW/",
                 },
                 serverUrlName:uni.getStorageSync('serverUrlName') || '娴欐睙鏅轰簯杩堟��',
 
@@ -335,7 +336,6 @@
 								uni.setStorageSync('HSecManagerID', res.data.data[0].HSecManagerID); //瀵瑰簲楠屾敹
 								uni.setStorageSync('HSecManagerName', res.data.data[0].HSecManagerName);
                                 this.CommonUtils.setServerUrl(this.serverUrl)
-                                // console.log('this.WebSocsketServices: ',this.WebSocsketServices);
                                 // this.WebSocketServices.createConnect(res.data.data[0].Czybm,res.data.data[0].Czymc);
                                 uni.reLaunch({
                                     url: '/pages/index/index'
diff --git a/pages/index/mine.vue b/pages/index/mine.vue
index 7ffbc22..3c3242c 100644
--- a/pages/index/mine.vue
+++ b/pages/index/mine.vue
@@ -26,7 +26,8 @@
 </template>
 
 <script>
-	import { getUserInfo } from "@/utils/auth.js";
+	import WebSocketServices from "../../utils/WebSocketServices";
+import { getUserInfo } from "@/utils/auth.js";
 	import {
 	    CommonUtils
 	} from '@/utils/common'
@@ -99,6 +100,10 @@
 				    success: function (res) {
 				        if (res.confirm) {
 				            console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+                            // 鏂紑Socket杩炴帴
+                            // WebSocketServices.closeSocket();
+                            // 閿�姣� userInfo 缂撳瓨
+                            uni.removeStorageSync("userinfo")
 							uni.reLaunch({
 								url:'/pages/index/login'
 							})
diff --git a/pages/index/tab1.vue b/pages/index/tab1.vue
index 1c72b32..541524a 100644
--- a/pages/index/tab1.vue
+++ b/pages/index/tab1.vue
@@ -70,6 +70,7 @@
 						id: 4,
 						hidden: false,
 					}, 
+					
 					{
 						img: '../../static/icon/icon14.png',
 						text: '鎴戠殑鎶ュ伐骞冲彴',
@@ -86,8 +87,22 @@
 						id: 6,
 						hidden: false,
 					}, 
-					
-					
+					{
+						img: '../../static/icon/icon12.png',
+						text: '鍛樺伐绛惧埌璁板綍鍗�',
+						tip: '绔嬪嵆鏂板',
+						url: '/pages/EmployeeRecords/EmployeeRecordsBill',
+						id: 7,
+						hidden: false,
+					},
+					{
+						img: '../../static/icon/icon12.png',
+						text: '鍛樺伐绛惧埌璁板綍鍗曞垪琛�',
+						tip: '鐐瑰嚮杩涘叆',
+						url: '/pages/EmployeeRecords/EmployeeRecordsBillList',
+						id: 8,
+						hidden: false,
+					}
 				]
 			}
 		},
diff --git a/pages/index/tab2.vue b/pages/index/tab2.vue
index 18011ea..20304c5 100644
--- a/pages/index/tab2.vue
+++ b/pages/index/tab2.vue
@@ -407,11 +407,12 @@
 					},
 					{
 						"img": "../../static/icon/icon6.png",
-						"text": "璁惧鏁呴殰鐧昏琛ㄥ垪琛�",
-						"url": "/pages/guzhangdengji/EqpConkBookBillList",
+						"text": "璁惧鏁呴殰鐧昏鍗曞垪琛�",
+						"url": "/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBillList",
 						"id": 50,
 						"hidden": false
 					},
+     
 					{
 						"img": "../../static/icon/icon8.png",
 						"text": "璁惧缁翠慨娲惧伐鍗曞垪琛�",
@@ -483,14 +484,14 @@
 					{
 						"img": "../../static/icon/icon8.png",
 						"text": "鍙栨牱鍗曞垪琛�",
-						"url": "/pages/quyangdan/TakeSampleCheckBillList",
+						"url": "/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList",
 						"id": 60,
 						"hidden": false
 					},
 					{
 						"img": "../../static/icon/icon8.png",
 						"text": "杩樻牱鍗曞垪琛�",
-						"url": "/pages/huanyangdan/BackSampleCheckBillList",
+						"url": "/pages/ZLGL/QuYangHuangYang/QC_BackSampleCheckBill/QC_BackSampleCheckBillList",
 						"id": 61,
 						"hidden": false
 					},
@@ -502,6 +503,13 @@
 						"id": 62,
 						"hidden": false
 					},
+					{
+						"img": "../../static/icon/icon15.png",
+						"text": "宸ヤ綔鑱旂郴鍗曞垪琛�",
+						"url": "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList?OperationType=1",
+						"id": 63,
+						"hidden": false
+					},
 				]
 			}
 		},
diff --git a/pages/index/tab3.vue b/pages/index/tab3.vue
index 46e036b..d2b409e 100644
--- a/pages/index/tab3.vue
+++ b/pages/index/tab3.vue
@@ -74,6 +74,13 @@
                         "hidden": false
                     },
                     {
+                    	"img": "../../static/icon/icon6.png",
+                    	"text": "璁惧鏁呴殰鐧昏鍗�",
+                    	"url": "/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill?operationType=1",
+                    	"id": 20,
+                    	"hidden": false
+                    },
+                    {
                         "img": "../../static/icon/icon8.png",
                         "text": "妯″叿缁翠慨娲惧伐鍗�",
                         "url": "/pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill",
@@ -194,20 +201,7 @@
                         "url": "/pages/MJGL/Sb_EquipRepairCheckBill/Sb_EquipRepairCheckBill",
                         "id": 23,
                         "hidden": false
-                    }, {
-                        "img": "../../static/icon/icon8.png",
-                        "text": "鍣ㄥ叿缁翠慨娲惧伐鍗�",
-                        "url": "/pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill",
-                        "id": 29,
-                        "hidden": false
-                    },
-                    {
-                        "img": "../../static/icon/icon8.png",
-                        "text": "鍣ㄥ叿缁翠慨楠屾敹鍗�",
-                        "url": "/pages/MJGL/SC_MouldRepairCheck/Sc_MouldRepairCheckBill",
-                        "id": 30,
-                        "hidden": false
-                    },
+                    }, 
                     {
                         "img": "../../static/icon/icon8.png",
                         "text": "璁惧淇濆吇浠诲姟",
@@ -231,7 +225,7 @@
                     },
                     {
                         "img": "../../static/icon/icon8.png",
-                        "text": "鍣ㄥ叿缁翠慨浠诲姟",
+                        "text": "妯″叿缁翠慨浠诲姟",
                         "url": "/pages/MJGL/Sc_MouldRepairTaskReport/Sc_MouldRepairTaskReport",
                         "id": 27,
                         "hidden": false
diff --git a/pages/index/tab4.vue b/pages/index/tab4.vue
index 8ce41ca..928e6a1 100644
--- a/pages/index/tab4.vue
+++ b/pages/index/tab4.vue
@@ -161,13 +161,20 @@
                     	"id": 16,
                     	"hidden": false
                     },
-                    {
-                    	"img": "../../static/icon/icon15.png",
-                    	"text": "宸ヤ綔鑱旂郴鍗曞垪琛�",
-                    	"url": "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillList?OperationType=1",
-                    	"id": 16,
-                    	"hidden": false
-                    },
+					{
+						"img": "../../static/icon/icon15.png",
+						"text": "鍙栨牱鍗�",
+						"url": "/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill",
+						"id": 17,
+						"hidden": false
+					},
+					{
+						"img": "../../static/icon/icon15.png",
+						"text": "杩樻牱鍗�",
+						"url": "/pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill",
+						"id": 18,
+						"hidden": false
+					},
 
 				]
 			}
diff --git a/pages/quyangdan/TakeSampleCheckBill.vue b/pages/quyangdan/TakeSampleCheckBill.vue
deleted file mode 100644
index d483fd1..0000000
--- a/pages/quyangdan/TakeSampleCheckBill.vue
+++ /dev/null
@@ -1,830 +0,0 @@
-<template>
-    <view>
-        <scroll-view scroll-y id="scroll-content" class="scroll-content" :style="{height: scrollContentHeight + 'px'}">
-            <view class="form-item">
-                <view class="title">鏉″舰鐮�:</view>
-                <view class="right">
-                    <input type="text" name="HBarCode" id="HBarCode" v-model="HBarCode" @confirm="getCode(HBarCode)" />
-                </view>
-                <view class="right-icon" @click="toScanCode">
-                    <uni-icons color="#fff" type="scan" size="24"></uni-icons>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">宸ュ簭:</view>
-                <view class="right">
-                    <uni-combox :candidates="HProcNameArray" name="HProcName" id="HProcName" placeholder="璇烽�夋嫨宸ュ簭鍙�"
-                        v-model="hform.HProcName" @input="onHProcNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鍙栨牱鏁伴噺:</view>
-                <view class="right">
-                    <input type="number" name="HQty" id="HQty" v-model="hform.HQty" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐮村潖鎬у疄楠屾暟閲�:</view>
-                <view class="right">
-                    <input type="number" name="HSampleDamageQty" id="HSampleDamageQty"
-                        v-model="hform.HSampleDamageQty" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">閫佹祴绫诲瀷:</view>
-                <view class="right">
-                    <uni-combox :candidates="TestTypeArray" v-model="hform.TestType"
-                        @input="TestTypeChange"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">閫佹祴鍐呭:</view>
-                <view class="right">
-                    <input type="text" name="HBadNote" id="HBadNote" v-model="hform.HBadNote" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">閮ㄩ棬:</view>
-                <view class="right">
-                    <uni-combox :candidates="HDeptNameArray" name="HDeptName" id="HDeptName" placeholder="璇烽�夋嫨閮ㄩ棬"
-                        v-model="hform.HDeptName" @input="HDeptNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇鐝:</view>
-                <view class="right">
-                    <uni-combox :candidates="HShiftsNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝"
-                        v-model="hform.HShiftsName" @input="HShiftsNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇鐝粍:</view>
-                <view class="right">
-                    <uni-combox :candidates="HGroupNameArray" name="HShiftsName" id="HShiftsName" placeholder="璇烽�夋嫨鐢熶骇鐝粍"
-                        v-model="hform.HGroupName" @input="HGroupNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鍙栨牱鍛�:</view>
-                <view class="right">
-                    <uni-combox :candidates="HCheckEmpNameArray" name="HCheckEmpName" id="HCheckEmpName"
-                        placeholder="璇烽�夋嫨鍙栨牱鍛�" v-model="hform.HCheckEmpName"
-                        @input="HCheckEmpNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇璧勬簮:</view>
-                <view class="right">
-                    <uni-combox :candidates="HSourceNameArray" name="HSourceName" id="HSourceName" placeholder="璇烽�夋嫨鐢熶骇璧勬枡"
-                        v-model="hform.HSourceName" @input="HSourceNameChangeHandler"></uni-combox>
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鍗曟嵁鏃ユ湡:</view>
-                <view class="right disabled">
-                    <input disabled type="text" name="HDate" id="HDate" v-model="hform.HDate" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鍗曟嵁鍙�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" name="HBillNo" id="HBillNo" v-model="hform.HBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐢熶骇璁㈠崟:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HICMOBillNo" name="HICMOBillNo" id="HICMOBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HProcExchBillNo" name="HProcExchBillNo"
-                        id="HProcExchBillNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐗╂枡浠g爜:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterCode" name="HMaterCode" id="HMaterCode" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">鐗╂枡鍚嶇О:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterName" name="HMaterName" id="HMaterName" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">瑙勬牸鍨嬪彿:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HMaterSpec" name="HMaterSpec" id="HMaterSpec" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">璁¢噺鍗曚綅:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HUnitName" name="HUnitName" id="HUnitName" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗℃壒鍙�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HBatchNo" name="HBatchNo" id="HBatchNo" />
-                </view>
-            </view>
-            <view class="form-item">
-                <view class="title">娴佽浆鍗℃暟閲�:</view>
-                <view class="right disabled">
-                    <input disabled type="text" v-model="hform.HProcExchQty" name="HProcExchQty" id="HProcExchQty" />
-                </view>
-            </view>
-        </scroll-view>
-        <view class="bottom-btn" id="bottom-btn">
-            <view><button class="btn-a" size="mini" @tap="submit">鎻愪氦</button></view>
-            <view><button class="btn-b" size="mini" @tap="onAddNewHandler">鏂板</button></view>
-            <view class="placeholder__view"></view>
-            <view><button class="btn-c" size="mini" @tap="goBack">閫�鍑�</button></view>
-        </view>
-    </view>
-</template>
-
-<script>
-    import dayjs from 'dayjs'
-    import {
-        getUserInfo
-    } from '../../utils/auth'
-    import {
-        CommonUtils
-    } from '../../utils/common'
-
-    export default {
-        data() {
-            return {
-                pageMeta: {
-                    scrollContentTop: 0,
-                    bottomBtnTop: 0,
-                },
-                refSav: 'Add',
-                showMask: true,
-                TestTypeArray: ["棣栨", "宸℃", "鏈", "瀹為獙"],
-
-                HBillType: '7521',
-                HProcNameArray: [],
-                HProcNameArraySource: [],
-
-                HDeptNameArray: [],
-                HDeptNameArraySource: [],
-
-                HShiftsNameArray: [],
-                HShiftsNameArraySource: [],
-
-                HGroupNameArray: [],
-                HGroupNameArraySource: [],
-
-                HCheckEmpNameArray: [],
-                HCheckEmpNameSource: [],
-
-                HSourceNameArray: [],
-                HSourceNameSource: [],
-
-                HBarCode: '',
-                hform: {
-                    HBarCode: '',
-                    HProcName: '',
-                    HProcID: 0,
-                    HQty: '',
-                    HSampleDamageQty: 0,
-                    TestType: '棣栨',
-                    HBadNote: '',
-                    HDeptName: '',
-                    HDeptID: 0,
-                    HCenterID: 0,
-                    HShiftsName: '',
-                    HShiftsID: 0,
-                    HGroupName: '',
-                    HGroupID: 0,
-                    HCheckEmpName: '',
-                    HCheckEmp: '',
-                    HSourceName: '',
-                    HSourceID: 0,
-                    HDate: dayjs(new Date()).format("YYYY-MM-DD"),
-                    HBillNo: '',
-                    HInterID: 0,
-                    HICMOBillNo: '',
-                    HICMOInterID: 0,
-                    HICMOEntryID: 0,
-                    HProcExchBillNo: '',
-                    HProcExchInterID: 0,
-                    HProcExchEntryID: 0,
-                    HMainSourceBillNo: '',
-                    HMainSourceInterID: 0,
-                    HMainSourceBillType: '',
-                    HMainSourceEntryID: 0,
-                    HMaterCode: '',
-                    HMaterID: 0,
-                    HMaterName: '',
-                    HMaterSpec: '',
-                    HUnitName: '',
-                    HUnitID: 0,
-                    HBatchNo: '',
-                    HProcExchQty: '',
-                    HMaker: getUserInfo()['Czymc'],
-                    HMakeDate: dayjs(new Date()).format("YYYY-MM-DD hh:mm:ss"),
-                    HUpDater: '',
-                    HUpDateDate: '',
-                    HChecker: '',
-                    HCheckDate: '',
-                    HDeleteMan: '',
-                    HDeleteDate: '',
-                }
-            }
-        },
-        computed: {
-            scrollContentHeight: {
-                get() {
-                    return this.pageMeta.bottomBtnTop - this.pageMeta.scrollContentTop
-                }
-            }
-        },
-        onReady() {
-            // #ifndef MP-WEIXIN
-            let query = uni.createSelectorQuery().in(this)
-            query.select("#scroll-content").boundingClientRect((data) => {
-                this.pageMeta.scrollContentTop = data.top
-            }).exec()
-            query.select("#bottom-btn").boundingClientRect((data) => {
-                this.pageMeta.bottomBtnTop = data.top
-            }).exec()
-            // #endif
-            // #ifdef MP-WEIXIN
-            // 寰俊涓嶆敮鎸� uni.createSelectorQuery().in(this)
-            // #endif
-
-        },
-        async onLoad(e) {
-            let {
-                operationType
-            } = e
-            if (operationType == 0) {
-                this.getMaxNum()
-                this.refSav = 'Add'
-            } else {
-                this.refSav = 'Update'
-            }
-
-            this.getProcessList()
-            this.get_Gy_WorkShiftList()
-            this.GetGroupList()
-            this.GetEmployeeList()
-            this.getSourceList()
-            this.GetDepartmentList()
-        },
-        methods: {
-            HDeptNameChangeHandler() {
-                let index = this.HDeptNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HDeptID = this.HDeptNameArraySource[index]["HItemID"]
-                    this.hform.HDeptName = this.HDeptNameArraySource[index]["HName"]
-                }
-            },
-            GetDepartmentList() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetDepartmentList_Json',
-                    data: {
-                        Department: '',
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message,
-                            code
-                        } = res.data
-                        if (count == 1) {
-                            this.HDeptNameArray = Array.from(data).map(item => item['HName'])
-                            this.HDeptNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HSourceNameChangeHandler(e) {
-                let index = this.HSourceNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HSourceID = this.HSourceNameArraySource[index]["HItemID"]
-                    this.hform.HSourceName = this.HSourceNameArraySource[index]["鐢熶骇璧勬簮"]
-                }
-
-                console.log('this.hform: ', this.hform);
-            },
-            // 鑾峰彇鐢熶骇璧勬簮
-            getSourceList() {
-                CommonUtils.doRequest2({
-                    url: '/api/newBill/getSourceList',
-                    data: {
-                        sWhere: '',
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            msg,
-                            code
-                        } = res.data
-                        if (code == 1) {
-                            let data1 = data.Gy_Source
-                            this.HSourceNameArray = Array.from(data1).map(item => item['鐢熶骇璧勬簮'])
-                            this.HSourceNameArraySource = data1
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HCheckEmpNameChangeHandler(e) {
-                let index = this.HCheckEmpNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HCheckEmp = this.HCheckEmpNameArraySource[index]["HItemID"]
-                    this.hform.HCheckEmpName = this.HCheckEmpNameArraySource[index]["HName"]
-                }
-            },
-            // 鑾峰彇鑱屽憳淇℃伅
-            GetEmployeeList() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetEmployeeList_Json',
-                    data: {
-                        Employee: '',
-                        HGroupID: this.hform.HGroupID
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HCheckEmpNameArray = Array.from(data).map(item => item['HName'])
-                            this.HCheckEmpNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HGroupNameChangeHandler(e) {
-                let index = this.HGroupNameArray.findIndex(item => item == e)
-
-                if (index != -1) {
-                    this.hform.HGroupID = this.HGroupNameArraySource[index]["HItemID"]
-                    this.hform.HGroupName = this.HGroupNameArraySource[index]["HName"]
-                }
-            },
-            // 鑾峰彇鐢熶骇鐝粍
-            GetGroupList() {
-                CommonUtils.doRequest2({
-                    url: '/WEBSController/GetGroupList_Json',
-                    data: {
-                        Group: '',
-                        HStockOrgID: uni.getStorageSync('OrganizationID')
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HGroupNameArray = Array.from(data).map(item => item['HName'])
-                            this.HGroupNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-
-            // 鑾峰彇鏈�鏂板崟鎹彿鍜孒InterID
-            getMaxNum() {
-                CommonUtils.doRequest2({
-                    url: '/Web/GetMAXNum',
-                    data: {
-                        HBillType: this.HBillType
-                    },
-                    resFunction: (res) => {
-                        let {
-                            count,
-                            data,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.hform.HBillNo = data[0].HBillNo
-                            this.hform.HInterID = data[0].HInterID
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            HShiftsNameChangeHandler(e) {
-                let index = this.HShiftsNameArray.findIndex(item => item == e)
-                if (index != -1) {
-                    this.hform.HShiftsID = this.HShiftsNameArraySource[index]['HInterID']
-                    this.hform.HShiftsName = this.HShiftsNameArraySource[index]['鐝鍚嶇О']
-                }
-            },
-            // 鍒濆鍖栫彮娆′俊鎭�
-            get_Gy_WorkShiftList() {
-                CommonUtils.doRequest2({
-                    url: '/Gy_ShiftsController/Get_Gy_WorkShiftList',
-                    data: {
-                        sWhere: ` and 浣跨敤缁勭粐鍚嶇О = '${uni.getStorageSync('Organization')}' and 绂佺敤鏍囪='' and ISNULL(瀹℃牳浜� ,'') !=''`,
-                        HMaker: getUserInfo()['Czymc']
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HShiftsNameArray = Array.from(data).map(item => item['鐝鍚嶇О'])
-                            this.HShiftsNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            // 鑾峰彇鐝
-            get_HWorkShift() {
-                CommonUtils.doRequest2({
-                    url: '/Gy_ShiftsController/Get_HWorkShift',
-                    data: {
-                        "HDeptID": this.hform.HDeptID,
-                        "HCenterID": this.hform.HCenterID
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            Message,
-                            count
-                        } = res.data
-
-                        this.hform.HShiftsID = data[0]['HInterID']
-                        this.hform.HShiftsName = data[0]['鐝']
-                    }
-                })
-            },
-            ProcessExchangeBillQuerySub() {
-                let HProcID = this.hform.HProcID
-                let HBarCode = this.hform.HProcExchInterID
-                let sWhere = ` ${HBarCode} and HProcID = ${HProcID} `
-                CommonUtils.doRequest2({
-                    url: '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
-                    data: {
-                        sWhere: sWhere
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            Message,
-                            count
-                        } = res.data
-                        if (count == 1 && data.length > 0) {
-                            this.hform = Object.assign(this.hform, {
-                                HProcID: data[0]['HProcID'],
-                                HProcName: data[0]['宸ュ簭鍚嶇О'],
-                                HSourceID: data[0]['HSourceID'] || 0,
-                                HSourceName: data[0]['鐢熶骇璧勬簮'] || '',
-                                HMainSourceEntryID: data[0]['hsubid'],
-                                HProcExchEntryID: data[0]['hsubid'],
-                                HProcExchQty: data[0]['娴佽浆鍗℃暟閲�'],
-                                HCenterID: data[0]['HCenterID'] || getUserInfo()['HWorkCenterID'],
-                            })
-
-                        }
-                    }
-                })
-            },
-            onHProcNameChangeHandler(e) {
-                let index = this.HProcNameArray.findIndex(item => item == e)
-                if (index != -1) {
-                    this.hform.HProcName = this.HProcNameArraySource[index]['HName']
-                    this.hform.HProcID = this.HProcNameArraySource[index]['HItemID']
-                    this.ProcessExchangeBillQuerySub()
-                }
-            },
-            getProcessList() {
-                CommonUtils.doRequest2({
-                    url: '/WEBSController/GetProcessList_Json',
-                    data: {
-                        Process: '',
-                        HStockOrgID: uni.getStorageSync("OrganizationID")
-                    },
-                    resFunction: (res) => {
-                        let {
-                            data,
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            this.HProcNameArray = Array.from(data).map(item => item.HName)
-                            this.HProcNameArraySource = data
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            TestTypeChange(e) {
-                console.log('e: ', e);
-            },
-            toScanCode() {
-                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
-                mpaasScanModule.mpaasScan({
-                    'hideAlbum': true,
-                    'timeoutInterval': '10', //瓒呮椂鏃堕棿
-                    'timeoutText': '鏈瘑鍒埌浜岀淮鐮�' //瓒呮椂鎻愰啋            
-                }, (ret) => {
-                    console.log(ret.resp_result)
-                    if (this.hform.HBarCode == '*') {
-                        this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
-                    } else {
-                        this.HBarCode = ret.resp_result
-                        this.hform.HBarCode = ret.resp_result
-                    }
-
-                    this.getCode(this.hform.HBarCode)
-                })
-            },
-            getCode(HBarCode) {
-                if (!HBarCode) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鏉″舰鐮佷笉鑳戒负绌�'
-                    })
-                }
-                CommonUtils.doRequest2({
-                    url: '/api/newBill/getHbarCodeDetail',
-                    data: {
-                        "sBillBarCode": HBarCode
-                    },
-                    resFunction: (res) => {
-                        let {
-                            code,
-                            msg,
-                            count,
-                            data
-                        } = res.data
-                        if (code == 1) {
-                            this.HBarCode = ''
-                            let data1 = data.h_v_Sc_ProcessExchangeBillList
-                            this.hform = Object.assign(this.hform, {
-                                "HMaterID": data1[0].HMaterID, //浜у搧ID
-                                "HMaterCode": data1[0].浜у搧浠g爜, //浜у搧浠g爜
-                                "HMaterName": data1[0].浜у搧, //浜у搧鍚嶇О
-                                "HMaterSpec": data1[0].瑙勬牸鍨嬪彿, //浜у搧瑙勬牸
-                                "HUnitID": data1[0].HUnitID, //璁¢噺鍗曚綅id
-                                "HUnitName": data1[0].鍗曚綅, //璁¢噺鍗曚綅
-                                "HMainSourceBillNo": data1[0].鍗曟嵁鍙�, //婧愬崟鍗曞彿
-                                "HMainSourceInterID": data1[0].hmainid, //婧愬崟涓诲唴鐮�
-                                "HMainSourceBillType": 3772, //婧愬崟绫诲瀷
-                                "HProcExchBillNo": data1[0].鍗曟嵁鍙�, //娴佽浆鍗″彿
-                                "HProcExchInterID": data1[0].hmainid, //娴佽浆鍗′富鍐呯爜(鍙栧�糎InterID)
-                                "HBatchNo": data1[0].鎵瑰彿, //娴佽浆鍗℃壒娆�
-                                "HICMOInterID": data1[0].hicmointerid, //鐢熶骇璁㈠崟ID
-                                "HICMOEntryID": data1[0].HICMOEntryID, //鐢熶骇璁㈠崟瀛怚D
-                                "HICMOBillNo": data1[0].浠诲姟鍗曞彿, //鐢熶骇璁㈠崟
-                                "HDeptID": data1[0].HWorkShopID, //杞﹂棿ID
-                                "HDeptName": data1[0].鐢熶骇杞﹂棿, //杞﹂棿
-                            })
-
-                            uni.showToast({
-                                icon: 'none',
-                                title: msg
-                            })
-                        } else {
-                            uni.showToast({
-                                icon: 'none',
-                                title: msg
-                            })
-                        }
-                    }
-                })
-            },
-            submit() {
-                if (this.hform.HProcID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '宸ュ簭娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HQty == '') {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鍙栨牱鏁伴噺涓虹┖'
-                    })
-                }
-                if (this.hform.HProcID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '宸ュ簭娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HDeptID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '閮ㄩ棬娌℃湁閫夋嫨'
-                    })
-                }
-                if (this.hform.HShiftsID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐝鏈�夋嫨'
-                    })
-                }
-                if (this.hform.HGroupID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐢熶骇鐝粍鏈�夋嫨'
-                    })
-                }
-                if (this.hform.HCheckEmp == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鍙栨牱鍛樻湭閫夋嫨'
-                    })
-                }
-                if (this.hform.HSourceID == 0) {
-                    return uni.showToast({
-                        icon: 'none',
-                        title: '鐢熶骇璧勬簮鏈�夋嫨'
-                    })
-                }
-
-                console.log('this.hform: ', this.hform);
-                let sMainStr = JSON.stringify(this.hform)
-                console.log('sMainStr: ', sMainStr);
-                let sMainSub = sMainStr + ';' + this.refSav + ';' + getUserInfo()['Czymc'];
-                CommonUtils.doRequest2({
-                    method: 'POST',
-                    url: '/QC_TakeSampleCheckBill/SaveQC_TakeSampleCheckBillMain',
-                    data: {
-                        msg: sMainSub
-                    },
-                    resFunction: (res) => {
-                        let {
-                            count,
-                            Message
-                        } = res.data
-                        if (count == 1) {
-                            return uni.showToast({
-                                icon: 'none',
-                                title: "鎻愪氦鎴愬姛!"
-                            })
-                        } else {
-                            return uni.showToast({
-                                icon: 'none',
-                                title: Message
-                            })
-                        }
-                    }
-                })
-            },
-            onAddNewHandler() {
-                uni.redirectTo({
-                    url: "/pages/quyangdan/TakeSampleCheckBillList?operationType=0"
-                })
-            },
-            goBack() {
-                uni.navigateBack()
-            },
-        }
-    }
-</script>
-
-<style lang="scss" scoped>
-    .scroll-content {
-        box-sizing: border-box;
-        padding: 20rpx;
-
-        ::v-deep .uni-scroll-view-content {
-            box-sizing: border-box;
-            padding: 0 40rpx;
-            display: flex;
-            flex-direction: column;
-            gap: 20rpx;
-        }
-
-        .form-item {
-            display: flex;
-            flex-direction: row;
-            align-items: center;
-            gap: 20rpx;
-
-            input {
-                width: inherit;
-                padding: 8rpx 20rpx;
-                font-size: 30rpx;
-            }
-
-            .title {
-                width: 5em;
-                font-size: 30rpx;
-                flex-shrink: 0;
-                text-align: right;
-            }
-
-            .right {
-                flex: 1;
-                border-radius: 22rpx;
-                border: 1px solid #acacac;
-            }
-
-            .right-icon {
-                width: 54rpx;
-                height: 54rpx;
-                border-radius: 50%;
-                background-color: #3A78FF;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                flex-shrink: 0;
-
-            }
-
-            .disabled {
-                border: 1px solid #e4e4e4;
-                background-color: #e4e4e4;
-            }
-        }
-    }
-
-    .bottom-btn {
-        position: fixed;
-        bottom: 0;
-        box-sizing: border-box;
-        background-color: #fff;
-        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
-        padding: 30rpx 40rpx 40rpx 40rpx;
-        display: flex;
-        flex-direction: row;
-        gap: 20rpx;
-        justify-content: space-between;
-        width: 100%;
-
-        button {
-            border-radius: 50rpx;
-            width: 180rpx;
-            height: 66rpx;
-            line-height: 66rpx;
-            font-size: 28rpx;
-        }
-
-        .btn-a {
-            background-color: #3A78FF;
-            color: #fff;
-        }
-
-        .btn-b {
-            background-color: #41a863;
-            color: #fff;
-        }
-
-        .btn-c {
-            background-color: #acacac;
-            color: #fff;
-        }
-    }
-
-    .placeholder__view {
-        flex: 1;
-    }
-</style>
\ No newline at end of file
diff --git a/utils/WebSocketServices.js b/utils/WebSocketServices.js
index 850b8d8..7115a50 100644
--- a/utils/WebSocketServices.js
+++ b/utils/WebSocketServices.js
@@ -5,82 +5,216 @@
 class WebSocketServices {
     constructor() {
         this.wsInstance = null; // WebSocket 瀹炰緥
-        this.isConnecting = false; // 閬垮厤骞跺彂閲嶈繛
-        this.isConnected = false; // 閬垮厤骞跺彂閲嶈繛
-        this.wsUrl = CommonUtils.httpFormatWs()
+        this.isConnecting = false; // 杩炴帴涓姸鎬侊紙閬垮厤骞跺彂閲嶈繛锛�
+        this.isConnected = false; // 宸茶繛鎺ョ姸鎬�
+        this.isReconnectStopped = false; // 鍋滄閲嶈繛鏍囪
+        this.wsUrl = CommonUtils.httpFormatWs(); // WebSocket 鍩虹鍦板潃
+
+        // 瓒呮椂鏍¢獙閰嶇疆
+        this.businessMessageInterval = 5 * 60 * 1000; 
+        this.noMessageTimeout = this.businessMessageInterval + 2 * 60 * 1000;
+        this.noMessageTimer = null; // 鏃犳秷鎭秴鏃跺畾鏃跺櫒
+
+        // 鐩戝惉鍑芥暟寮曠敤
+        this.openListener = null;
+        this.messageListener = null;
+        this.closeListener = null;
+        this.errorListener = null;
+
+        // 缂撳瓨鐢ㄦ埛淇℃伅
+        this.currentUserId = "";
+        this.currentUserName = "";
     }
 
-    // 寤虹珛WebSocket杩炴帴
-    createConnect(userId, userName) { // 浣跨敤鐢ㄦ埛鏍囪瘑 浣滀负鍚庣杩炴帴鐨勫嚟鎹�
-        console.log('wsUrl: ', this.wsUrl);
-        console.log('userId: ', userId);
-        console.log('userName: ', userName);
-        if (this.isConnecting || !userId || this.isConnected) {
-            return
+    /**
+     * 寤虹珛 WebSocket 杩炴帴
+     * @param {string/number} userId - 鐢ㄦ埛ID锛堝繀濉級
+     * @param {string} userName - 鐢ㄦ埛鍚嶏紙蹇呭~锛�
+     * @param {number} count - 褰撳墠閲嶈繛娆℃暟
+     * @param {number} limit - 鏈�澶ч噸杩炴鏁帮紙榛樿3娆★級
+     */
+    createConnect(userId, userName, count = 0, limit = 3) {
+        // 鐧诲綍寤虹珛杩炴帴鏃讹紝闇�瑕侀噸鏂拌幏鍙杊ttp鍦板潃锛屽彲鑳戒細鍙樻洿
+        this.wsUrl = CommonUtils.httpFormatWs();
+        // 缂撳瓨鐢ㄦ埛淇℃伅锛堢敤浜庨噸杩烇級
+        this.currentUserId = userId;
+        this.currentUserName = userName;
+
+        // 鍓嶇疆鏍¢獙锛氶伩鍏嶆棤鏁堣繛鎺ュ拰骞跺彂閲嶈繛
+        if (this.isConnecting || this.isConnected) return;
+        if (!userId && userId !== 0) { // 鍏煎 userId 涓� 0 鐨勫悎娉曞満鏅�
+            CommonUtils.showTips({
+                message: "鐢ㄦ埛鏍囪瘑涓嶈兘涓虹┖锛屾棤娉曞缓绔媁ebSocket杩炴帴"
+            });
+            return;
         }
+        if (count > limit) {
+            CommonUtils.showTips({
+                message: `WebSocket 閲嶈繛娆℃暟瓒呭嚭鏈�澶ч檺鍒讹紙${limit}娆★級锛屽凡鍋滄閲嶈繛`,
+            });
+            this.isReconnectStopped = true;
+            return;
+        }
+
+        console.log(`[WebSocket] 寮�濮嬪缓绔嬭繛鎺ワ紙绗� ${count || 0} 娆★級`, {
+            wsUrl: this.wsUrl,
+            userId,
+            userName,
+        });
+
+        // 娓呴櫎鍘嗗彶娈嬬暀锛氱洃鍚�+瀹氭椂鍣�
+        this.clearAllListeners();
+        this.clearNoMessageTimer();
+
+        // 鍙戣捣杩炴帴
+        this.isConnecting = true;
         this.wsInstance = uni.connectSocket({
-            url: this.wsUrl + `?userId=${encodeURIComponent(userId)}&userName=${encodeURIComponent(userName)}`,
-            success() {
-                this.isConnecting = true
+            url: `${this.wsUrl}?userId=${encodeURIComponent(userId)}&userName=${encodeURIComponent(userName)}`,
+            fail: (error) => {
+                console.error("[WebSocket] 杩炴帴鍙戣捣澶辫触", error);
+                this.isConnecting = false;
+                this.triggerReconnect(count);
+            },
+        });
+
+        // 鐩戝惉杩炴帴鎴愬姛锛氬惎鍔ㄦ棤娑堟伅瓒呮椂鏍¢獙
+        this.openListener = uni.onSocketOpen((res) => {
+            console.log("[WebSocket] 杩炴帴寤虹珛鎴愬姛", res);
+            this.isConnecting = false;
+            this.isConnected = true;
+            this.isReconnectStopped = false;
+            this.startNoMessageCheck();
+            count = 0;
+        });
+
+        this.messageListener = uni.onSocketMessage((res) => {
+            try {
+                const message = JSON.parse(res.data);
+                console.log("[WebSocket] 鏀跺埌涓氬姟娑堟伅", message);
+
+                // 閲嶇疆鏃犳秷鎭畾鏃跺櫒锛堟湁涓氬姟娑堟伅=杩炴帴姝e父锛�
+                this.resetNoMessageTimer();
+
+                // 澶勭悊涓氬姟娑堟伅
+                if (message.Type === "Message") {
+                    const content = JSON.parse(message.Content);
+                    this.showTaskTip(`鎮ㄦ湁${content.length}鏉℃秷鎭渶瑕佸鐞�!`);
+                    // this.emit("message", content); // 鏀寔澶栭儴鐩戝惉
+                }
+            } catch (error) {
+                console.error("[WebSocket] 娑堟伅瑙f瀽澶辫触", error, res.data);
             }
-        })
+        });
 
-        // 鐩戝惉濂楁帴瀛楄繛鎺ュ缓绔�
-        uni.onSocketOpen((res) => {
-            console.log('[webSocket]: 濂楁帴瀛楄繛鎺ュ缓绔嬫垚鍔�');
-            this.isConnecting = false
-            this.isConnected = true
-            console.log('res: ', res);
-            this.wsInstance = res.socketTask
-        })
+        // 鐩戝惉杩炴帴鍏抽棴锛氫粎寮傚父鍏抽棴瑙﹀彂閲嶈繛
+        this.closeListener = uni.onSocketClose((res) => {
+            console.log("[WebSocket] 杩炴帴鍏抽棴", res);
+            this.isConnecting = false;
+            this.isConnected = false;
+            this.clearNoMessageTimer();
 
-        uni.onSocketMessage((res) => {
-            let message = JSON.parse(res.data)
-            console.log('message: ', message);
-            if (message.Type == 'Message') {
-                // 娑堟伅淇″彿
-                let content = JSON.parse(message.Content)
-                console.log('content: ', content);
-
-                this.showTaskTip(`鎮ㄦ湁${content.length}鏉℃秷鎭渶瑕佸鐞�!`)
-            } else if (message.Type == 'ping') {
-                // 蹇冭烦淇″彿
-                uni.sendSocketMessage({
-                    data: "pong"
-                })
+            // 姝e父鍏抽棴锛坈ode=1000锛夋垨涓诲姩鍋滄閲嶈繛鏃讹紝涓嶉噸杩�
+            if (!this.isReconnectStopped && res.code !== 1000) {
+                this.triggerReconnect(count);
             }
-        })
+        });
+
+        // 鐩戝惉杩炴帴閿欒锛氳Е鍙戦噸杩�
+        this.errorListener = uni.onSocketError((error) => {
+            console.error("[WebSocket] 杩炴帴閿欒", error);
+            this.isConnecting = false;
+            this.clearNoMessageTimer();
+            if (!this.isReconnectStopped) {
+                this.triggerReconnect(count);
+            }
+        });
     }
 
-    // 閲嶈繛
-    reConnect(reCount = 1, limit = 3) {
-        if (reCount > limit) {
-            uni.showToast({
-                icon: 'none',
-                title: `瓒呭嚭鏈�澶ч噸杩炴鏁般�傚凡閫�鍑鸿繛鎺
-            })
-            this.isConnecting = false
-            return
+    /**
+     * 缁熶竴瑙﹀彂閲嶈繛锛堝欢杩�3绉掞級
+     * @param {number} count - 褰撳墠閲嶈繛娆℃暟
+     */
+    triggerReconnect(count) {
+        console.log(`[WebSocket] 鍑嗗绗� ${count + 1} 娆¢噸杩瀈);
+        setTimeout(() => {
+            this.createConnect(this.currentUserId, this.currentUserName, count + 1);
+        }, 3000);
+    }
+
+    /**
+     * 鍚姩鈥滄棤涓氬姟娑堟伅鈥濊秴鏃舵牎楠�
+     */
+    startNoMessageCheck() {
+        this.clearNoMessageTimer();
+        this.noMessageTimer = setTimeout(() => {
+            console.warn("[WebSocket] 7鍒嗛挓鏈敹鍒颁笟鍔℃秷鎭紝鍒ゅ畾杩炴帴澶辨晥锛屼富鍔ㄩ噸杩�");
+            this.closeSocket();
+            this.createConnect(this.currentUserId, this.currentUserName);
+        }, this.noMessageTimeout);
+    }
+
+    /**
+     * 鏀跺埌涓氬姟娑堟伅鍚庯紝閲嶇疆鏃犳秷鎭畾鏃跺櫒
+     */
+    resetNoMessageTimer() {
+        this.startNoMessageCheck();
+    }
+
+    /**
+     * 娓呴櫎鏃犳秷鎭畾鏃跺櫒
+     */
+    clearNoMessageTimer() {
+        if (this.noMessageTimer) {
+            clearTimeout(this.noMessageTimer);
+            this.noMessageTimer = null;
         }
-        uni.showToast({
-            icon: 'none',
-            title: `姝e湪灏濊瘯閲嶈繛锛岄噸杩炴鏁� ${reCount}`
-        })
-
-        reConnect(reCount + 1, limit)
-
-        uni.hideToast()
     }
 
-    // 杩炴帴娉ㄩ攢
-    disConnect() {
-
+    /**
+     * 娓呴櫎鎵�鏈� Socket 鐩戝惉 
+     */
+    clearAllListeners() {
+        if (this.openListener) {
+            uni.offSocketOpen(this.openListener);
+            this.openListener = null;
+        }
+        if (this.messageListener) {
+            uni.offSocketMessage(this.messageListener);
+            this.messageListener = null;
+        }
+        if (this.closeListener) {
+            uni.offSocketClose(this.closeListener);
+            this.closeListener = null;
+        }
+        if (this.errorListener) {
+            uni.offSocketError(this.errorListener);
+            this.errorListener = null;
+        }
     }
+
+    /**
+     * 涓诲姩鍏抽棴 WebSocket 杩炴帴 (鐧诲嚭鏃跺叧闂璚ebSocket杩炴帴)
+     */
+    closeSocket() {
+        this.isReconnectStopped = true;
+        this.clearAllListeners();
+        this.clearNoMessageTimer();
+
+        if (this.wsInstance) {
+            uni.closeSocket({
+                success: () => console.log("[WebSocket] 涓诲姩鍏抽棴杩炴帴鎴愬姛"),
+                fail: (error) => console.error("[WebSocket] 涓诲姩鍏抽棴杩炴帴澶辫触", error),
+            });
+            this.wsInstance = null;
+        }
+
+        this.isConnected = false;
+        this.isConnecting = false;
+    }
+
 
     showTaskTip(Content) {
-        console.log('Content: ', Content);
         // #ifdef APP-PLUS || APP
-        console.log('Content2: ', Content);
         let content = Content;
         let options = {
             title: "閲嶈閫氱煡",
diff --git a/utils/common.js b/utils/common.js
index 4c609a4..6905022 100644
--- a/utils/common.js
+++ b/utils/common.js
@@ -496,7 +496,6 @@
     }
     
     httpFormatWs(httpUrl=this.serverUrl) {
-        console.log('httpUrl: ',httpUrl);
         if(httpUrl.indexOf("http://") === 0){
             httpUrl = httpUrl.replace("http://", "")
             httpUrl = "ws://" + httpUrl.split(":")[0]+":8089/ws"

--
Gitblit v1.9.1