From 29014207a8882df16d4372ef20e0d79e6e5df6d1 Mon Sep 17 00:00:00 2001
From: yangan <yangan0921@163.com>
Date: 星期四, 30 五月 2024 08:44:28 +0800
Subject: [PATCH] Merge branch 'jlhg' of http://39.96.92.240:10000/r/~fyy/unattended-app into jlhg

---
 pages/quality-inspection-page/edc-sampling/edc-sampling.vue                                             |  249 ++
 pages/login/userPassword.vue                                                                            |   19 
 pages/driver-page/drvier-my/drvier-my.vue                                                               |  560 ++++++
 pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit.vue     |    2 
 pages/quality-inspection-page/salt-total-sampling/salt-total-sampling.vue                               |  276 +++
 static/image/quality/addIcon.png                                                                        |    0 
 pages/tabbar-page/index-tabbar/index-tabbar.vue                                                         |   34 
 store/index.js                                                                                          |   80 
 pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form.vue             |  330 +++
 pages/doorkeeper-page/doorkeeper-index/exit-index.vue                                                   |  206 ++
 main.js                                                                                                 |    9 
 pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form.vue                      |  369 ++++
 pages/quality-inspection-page/qualityIndex/qualityIndex.vue                                             |  106 +
 api/publicInterface.js                                                                                  |   15 
 pages/login/login.vue                                                                                   |    7 
 api/qualityInspection.js                                                                                |   71 
 pages.json                                                                                              |  157 +
 pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form.vue    |  351 ++++
 pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form.vue |  376 ++++
 pages/quality-inspection-page/symbNa-sampling/symbNa-sampling.vue                                       |  275 +++
 pages/driver-page/delivery-my/delivery-my/delivery-my.vue                                               |  258 +++
 pages/quality-inspection-page/toc-sampling/toc-sampling.vue                                             |  275 +++
 pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue                                             |  257 +++
 api/globalApi.js                                                                                        |   22 
 utils/util.js                                                                                           |   12 
 api/request.js                                                                                          |   68 
 manifest.json                                                                                           |  216 +-
 pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form.vue                      |  164 +
 api/index.js                                                                                            |   16 
 pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling.vue                                 |  275 +++
 30 files changed, 4,904 insertions(+), 151 deletions(-)

diff --git a/api/globalApi.js b/api/globalApi.js
index 353351e..f384a70 100644
--- a/api/globalApi.js
+++ b/api/globalApi.js
@@ -98,7 +98,7 @@
 	 * @鎶㈠崟淇敼
 	 */
 	qiangDan: {
-		url: '/wrzs/userOperation/qiangDan',
+		url: '/wrzs/app/driver/qiangDan',
 		method: 'POST'
 	},
 
@@ -129,7 +129,7 @@
 	 * @棰勭害淇敼
 	 */
 	yuYue: {
-		url: '/wrzs/userOperation/yuYue',
+		url: '/wrzs/app/driver/yuYue',
 		method: 'POST'
 	},
 
@@ -569,11 +569,11 @@
 		methods: 'POST'
 	},
 	getCheckTaskCoal:{
-		url: '/wrzs/tmtaskcoal/getCheckTaskCoal',
+		url: '/wrzs/guard/getCheckTaskCoal',
 		method: 'GET'
 	},
 	addCheckLog: {
-		url: '/wrzs/tmtaskcoallog/addCheckLog',
+		url: '/wrzs/guard/addCheckLog',
 		methods: 'POST'
 	},
 	saveDriverDocs: {
@@ -615,5 +615,17 @@
 	addDeliveryPlan:{
 		url: '/wrzs/customerSupplier/addDeliveryPlan',
 		methods: 'GET'
-	}
+	},
+	// 鎻愪氦閬撹矾杩愯緭璇�
+	
+	addJcroadtransport: {
+		url: '/wrzs/jcroadtransport/add',
+		methods: 'POST'
+	},
+	// 鑾峰彇閬撹矾杩愯緭璇�
+	getDriverListById: {
+		url: '/wrzs/jcroadtransport/getDriverListById',
+		methods: 'GET'
+	},
+	
 }
\ No newline at end of file
diff --git a/api/index.js b/api/index.js
index 8575a0d..28b5307 100644
--- a/api/index.js
+++ b/api/index.js
@@ -1,4 +1,4 @@
-import { fetch } from '@/api/request.js'
+import { fetch,fetchId } from '@/api/request.js'
 
 const typeObj = {
 	headerGET: { 'Content-type': 'application/x-www-from-urlencoded' },
@@ -33,6 +33,20 @@
 	opt.data = params
 	return fetch(url, opt)
 }
+export const reqGetId = (url, params, opt = {}) => {
+	opt.header = typeObj['headerGET']
+	opt.method = 'GET'
+	opt.data = params
+	return fetchId(url, opt)
+}
+
+// urlParam鏄嫾鎺ヨ矾寰勭殑鍙傛暟
+export const reqGet2 = (url, params, opt = {}) => {
+	// opt.header = typeObj['headerGET']
+	// opt.method = 'GET'
+	// let newUrl = `${url}/${params}`
+	// return fetch(newUrl, opt)
+}
 
 // post璇锋眰
 // urlType鏄寚瀹氭嫾鎺ヨ矾寰勮繕鏄紶json鏍煎紡鍙傛暟
diff --git a/api/publicInterface.js b/api/publicInterface.js
index d2fc6c7..f86d2c2 100644
--- a/api/publicInterface.js
+++ b/api/publicInterface.js
@@ -4,7 +4,8 @@
 
 import { BaseUrl as wrBaseUrl } from '@/api/request.js'
 // const BaseUrl = 'http://192.168.0.22:9999'
-const BaseUrl = 'http://192.168.0.12:9999'
+const BaseUrl = 'http://192.168.0.17:9999'
+// const BaseUrl = 'http://192.168.0.12:9999'
 // const BaseUrl = 'https://mx.jzeg.cn:9195'
 // const BaseUrl = 'http://192.168.31.17:9999'
 // const BaseUrl = 'http://192.168.0.100:9999'
@@ -72,7 +73,12 @@
 	uni.showLoading({ title: '鍔犺浇涓�...' })
 	return new Promise((resolve, reject) => {
 		uni.request({
-			url: wrBaseUrl + '/wrzs/wx/bindWx',
+			// #ifdef H5
+			url:  '/wrzs/wx/bindWx',
+			// #endif
+			// #ifndef H5
+			url:  wrBaseUrl + '/wrzs/wx/bindWx',
+			// #endif
 			method: 'POST',
 			data: {
 				phone,
@@ -126,7 +132,12 @@
 }) {
 	return new Promise((resolve, reject) => {
 		uni.request({
+			// #ifdef H5
+			url: '/admin/oauth2/token',
+			// #endif
+			// #ifndef H5
 			url: BaseUrl + '/admin/oauth2/token',
+			// #endif
 			method: 'POST',
 			data: {
 				username,
diff --git a/api/qualityInspection.js b/api/qualityInspection.js
new file mode 100644
index 0000000..0259505
--- /dev/null
+++ b/api/qualityInspection.js
@@ -0,0 +1,71 @@
+export const qualityInspectionApi = {
+    /**
+     * @鍘熺洂閽欓晛鍒楄〃
+     */
+    pageList: {
+        url: '/wrzs/zjqualitycheck/page',
+        method: 'GET'
+    },
+    /**
+     * @鍘熺洂閽欓晛鏂板
+     */
+    rawSaltsSampling: {
+        url: '/wrzs/zjqualitycheck/rawSaltsSampling',
+        method: 'post'
+    },
+    /**
+     * @渚涘簲鍟�
+     */
+    getClaimCustomerList: {
+        url: '/wrzs/yhcustomer/getYhcustomerList',
+        method: 'GET'
+    },
+    /**
+     * @鐓や粨
+     */
+    getFiledIdCoalBunker: {
+        url: '/wrzs/jccoalbunker/getFiledIdCoalBunker',
+        method: 'GET'
+    },
+    /**
+     * @deptId
+     */
+    getList: {   //浼燿eptId
+        url: '/wrzs/jccoalfiled/list',
+        method: 'GET'
+    },
+
+    /**
+     * @姘㈡哀鍖栭挔鍙栨牱--鍒楄〃
+     */
+
+    /**
+     * @姘㈡哀鍖栭挔鍙栨牱--鏂板
+     */
+    zjqualitycheck: {
+        url: '/wrzs/zjqualitycheck',
+        method: 'post'
+    },
+
+    /**
+     * @EDC鍒楄〃
+     */
+    getTaskCoalOfNoDetection: {
+        url: '/wrzs/tmtaskcoal/getTaskCoalOfNoDetection',
+        method: 'GET'
+    },
+    /**
+     * @EDC鍙栨牱  /zjqualitycheck/edcSampling
+     */
+    edcSampling: {
+        url: '/wrzs/zjqualitycheck/edcSampling',
+        method: 'post'
+    },
+    /**
+     * @EDC璇︽儏  /zjqualitycheck/edcSampling
+     */
+    getByIdAndSubList: {
+        url: '/wrzs/zjqualitycheck/getByIdAndSubList',
+        method: 'get'
+    },
+}
diff --git a/api/request.js b/api/request.js
index d572cbd..758a1db 100644
--- a/api/request.js
+++ b/api/request.js
@@ -1,6 +1,10 @@
 import {
-	globalApi
+	globalApi,
 } from '@/api/globalApi.js';
+import {
+	qualityInspectionApi
+} from '@/api/qualityInspection.js';
+
 import {
 	apiLoginPassword
 } from './publicInterface';
@@ -103,8 +107,10 @@
 // const BaseUrl = "http://192.168.0.110:9896"
 // const webSocketUrl = "ws://192.168.0.110:9896/wrzs/ws/info"
 
-const BaseUrl = "http://192.168.0.12:9896"
-const webSocketUrl = "ws://192.168.0.12:9896/wrzs/ws/info"
+const BaseUrl = "http://192.168.0.17:9896"
+// const BaseUrl = "http://192.168.0.12:9896"
+const webSocketUrl = "ws://192.168.0.17:9896/wrzs/ws/info"
+// const webSocketUrl = "ws://192.168.0.12:9896/wrzs/ws/info"
 
 export const onlineurl = 'https://mx.jzeg.cn:9195';
 // const BaseUrl = "http://192.168.0.100:9997";
@@ -120,9 +126,61 @@
 // 璇锋眰鎷︽埅
 const fetch = (url, opt) => {
 	// 鏌ユ壘瀵瑰簲鍦板潃
-	let urls = (globalApi[opt.url]?.url || globalApi[url]?.url);
+	let urls = (globalApi[opt.url]?.url || globalApi[url]?.url || qualityInspectionApi[opt.url]?.url || qualityInspectionApi[url]?.url);
 	let params = opt.params ? ('?' + Object.keys(opt.params).map(key => key + '=' + opt.params[key]).join('&')) :
 		'';
+	// #ifdef H5
+	opt.url = urls + params
+	// #endif
+
+	// #ifndef H5
+	opt.url = BaseUrl +urls + params
+	// #endif
+	opt.method = opt.method || "GET";
+	var header = {}
+	if (uni.getStorageSync('token')) {
+		header = {
+			"Authorization": "Bearer" + ' ' + uni.getStorageSync('token'),
+			"clientToc": "Y",
+			'CLIENT_TOC': 'Y',
+		}
+	}
+	opt.header = {
+		...opt.header,
+		...header
+	}
+
+	opt.data = opt.data || {};
+	return new Promise((resolve, reject) => {
+		let options = {}
+		if (opt.data) {
+			Object.keys(opt.data).map(key => {
+				console.log(111,opt.data[key],opt.data[key] == '' || opt.data[key] == "")
+				if(opt.data[key]==0){
+					opt.data[key] = 0;
+				}else if (opt.data[key] == '' || opt.data[key] == "") {
+					opt.data[key] = null;
+				}
+			});
+		}
+
+		Object.keys(opt).map(key => {
+			if (key !== "params") {
+
+				return options[key] = opt[key]
+			}
+		})
+
+		uni.request(options)
+			.then(res => interceptorsRes(res, resolve, reject))
+			.catch(err => interceptorsErr(err, reject))
+	})
+}
+const fetchId = (url, opt) => {
+	// 鏌ユ壘瀵瑰簲鍦板潃
+	let urls = (globalApi[opt.url]?.url || globalApi[url]?.url);
+	let params = opt.data ? ('/' +opt.data ):
+	'';
 	opt.url = BaseUrl + urls + params
 	opt.method = opt.method || "GET";
 	var header = {}
@@ -168,6 +226,7 @@
 
 // 鍝嶅簲鎷︽埅
 const interceptorsRes = ([err, resp], resolve, reject) => {
+	console.log(resp,'resp===鎷︽埅鍣�===')
 	const {
 		statusCode,
 		data
@@ -190,6 +249,7 @@
 
 export {
 	fetch,
+	fetchId,
 	BaseUrl,
 	webSocketUrl
 }
diff --git a/main.js b/main.js
index 51df9cf..6fff654 100644
--- a/main.js
+++ b/main.js
@@ -1,12 +1,15 @@
 import App from './App'
 import Vue from 'vue'
 import '../unattended-app/static/fonts/commontfont.css'
-import tabbar from '@/components/tab-bar/tab-bar.vue'
+
 Vue.config.productionTip = false
 
 App.mpType = 'app'
 uni.$u.config.unit = 'rpx'
+// #ifdef MP-WEIXIN
+import tabbar from '@/components/tab-bar/tab-bar.vue'
 Vue.use('tab-bar', tabbar)
+// #endif
 
 // 寮曞叆鍏ㄥ眬 uView 妗嗘灦
 import uView from '@/uni_modules/uview-ui'
@@ -20,6 +23,8 @@
 import {
 	reqAll,
 	reqGet,
+	reqGet2,
+	reqGetId,
 	reqPost,
 	reqAllJson,
 	reqDelete
@@ -27,6 +32,8 @@
 Vue.prototype.$reqAll = reqAll
 Vue.prototype.$reqAllJson = reqAllJson
 Vue.prototype.$reqGet = reqGet
+Vue.prototype.$reqGet2 = reqGet2
+Vue.prototype.$reqGetId = reqGetId
 Vue.prototype.$reqPost = reqPost
 Vue.prototype.$reqDelete = reqDelete
 Vue.prototype.$store = store
diff --git a/manifest.json b/manifest.json
index bbefb8b..6266e6d 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,90 +1,128 @@
 {
-	"name": "unattended-app",
-	"appid": "__UNI__103882A",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	/* 5+App鐗规湁鐩稿叧 */
-	"app-plus": {
-		"usingComponents": true,
-		"nvueStyleCompiler": "uni-app",
-		"compilerVersion": 3,
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		/* 妯″潡閰嶇疆 */
-		"modules": {},
-		/* 搴旂敤鍙戝竷淇℃伅 */
-		"distribute": {
-			/* android鎵撳寘閰嶇疆 */
-			"android": {
-				"permissions": [
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				]
-			},
-			/* ios鎵撳寘閰嶇疆 */
-			"ios": {},
-			/* SDK閰嶇疆 */
-			"sdkConfigs": {}
-		}
-	},
-	/* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
-	"quickapp": {},
-	/* 灏忕▼搴忕壒鏈夌浉鍏� */
-	"mp-weixin": {
-		"appid": "wx9f907295f9eb495a",
-		"permission": {
-			"scope.userFuzzyLocation": {
-				"desc": "浣犵殑浣嶇疆淇℃伅灏嗙敤浜庡皬绋嬪簭瀹氫綅"
-			},
-			"scope.userLocation": {
-				"desc": "浣犵殑浣嶇疆淇℃伅灏嗙敤浜庡皬绋嬪簭瀹氫綅"
-			},
-			"scope.makePhoneCall": {
-				"desc": "浣犵殑鐢佃瘽灏嗙敤浜庢嫧鎵撳鏈嶇數璇�"
-			}
-		},
-		"optimization": {
-			"subPackages": true
-		},
-		"requiredPrivateInfos": ["getFuzzyLocation"],
-		"setting": {
-			"urlCheck": false,
-			"es6": true,
-			"minified": true,
-			"postcss": false
-		},
-		"usingComponents": true
-	},
-	"mp-alipay": {
-		"usingComponents": true
-	},
-	"mp-baidu": {
-		"usingComponents": true
-	},
-	"mp-toutiao": {
-		"usingComponents": true
-	},
-	"uniStatistics": {
-		"enable": false
-	},
-	"vueVersion": "2"
-}
\ No newline at end of file
+    "name" : "unattended-app",
+    "appid" : "__UNI__103882A",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App鐗规湁鐩稿叧 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 妯″潡閰嶇疆 */
+        "modules" : {},
+        /* 搴旂敤鍙戝竷淇℃伅 */
+        "distribute" : {
+            /* android鎵撳寘閰嶇疆 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios鎵撳寘閰嶇疆 */
+            "ios" : {},
+            /* SDK閰嶇疆 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
+    "quickapp" : {},
+    /* 灏忕▼搴忕壒鏈夌浉鍏� */
+    "mp-weixin" : {
+        "appid" : "wx9f907295f9eb495a",
+        "permission" : {
+            "scope.userFuzzyLocation" : {
+                "desc" : "浣犵殑浣嶇疆淇℃伅灏嗙敤浜庡皬绋嬪簭瀹氫綅"
+            },
+            "scope.userLocation" : {
+                "desc" : "浣犵殑浣嶇疆淇℃伅灏嗙敤浜庡皬绋嬪簭瀹氫綅"
+            },
+            "scope.makePhoneCall" : {
+                "desc" : "浣犵殑鐢佃瘽灏嗙敤浜庢嫧鎵撳鏈嶇數璇�"
+            }
+        },
+        "optimization" : {
+            "subPackages" : true
+        },
+        "requiredPrivateInfos" : [ "getFuzzyLocation" ],
+        "setting" : {
+            "urlCheck" : false,
+            "es6" : true,
+            "minified" : true,
+            "postcss" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2",
+    "h5" : {
+        "router": {
+            "base": "/html5/"
+        },
+        "devServer": {
+            "port" : 8080,
+            "disableHostCheck": true,
+            "proxy": {
+                "/admin": {
+                    "target": "http://192.168.0.17:9999",
+                    "changeOrigin" : true,
+                    "secure": true,
+                    "ws": false, // 闇�瑕亀ebsocket 寮�鍚�
+                    "pathRewrite": {
+                        "^/": "/"
+                    }
+                },
+                "/gen": {
+                    "target": "http://192.168.0.17:9896",
+                    "changeOrigin" : true,
+                    "secure": true,
+                    "ws": false, // 闇�瑕亀ebsocket 寮�鍚�
+                    "pathRewrite": {
+                        "^/": ""
+                    }
+                },
+                "/wrzs": {
+                    "target": "http://192.168.0.17:9896",
+                    "changeOrigin" : true,
+                    "secure": true,
+                    "ws": true, // 闇�瑕亀ebsocket 寮�鍚�
+                    "pathRewrite": {
+                        "^/wrzs": "/wrzs"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/pages.json b/pages.json
index a3878dc..d4e0b5a 100644
--- a/pages.json
+++ b/pages.json
@@ -6,6 +6,13 @@
 				"navigationBarTitleText": "鐧诲綍",
 				"enablePullDownRefresh": false
 			}
+		},{
+			"path": "pages/tabbar-page/index-tabbar/index-tabbar",
+			"style": {
+				"navigationBarTitleText": "棣栭〉",
+				"enablePullDownRefresh": true,
+				"navigationStyle": "custom"
+			}
 		},
 		// {
 		// 	"path":"pages/login/index",
@@ -21,15 +28,7 @@
 		// 		"enablePullDownRefresh": false
 		// 	}
 		// },
-		{
-			"path": "pages/tabbar-page/index-tabbar/index-tabbar",
-			"style": {
-				"navigationBarTitleText": "棣栭〉",
-				"enablePullDownRefresh": true,
-				"navigationStyle": "custom"
-			}
-
-		}, {
+		 {
 			"path": "pages/tabbar-page/myPage-tabbar/myPage-tabbar",
 			"style": {
 				"navigationBarTitleText": "鎴戠殑",
@@ -112,13 +111,21 @@
 		// 		"enablePullDownRefresh": false
 		// 	}
 		// },
+		{
+			"path" : "pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit",
+			"style" : 
+			{
+				"navigationBarTitleText": "娣诲姞",
+				"enablePullDownRefresh": false
+			}
+		},
 		// {
 		// 	"path": "pages/public-page/forward/forward",
 		// 	"style": {
 		// 		"navigationBarTitleText": "杞彂",
 		// 		"enablePullDownRefresh": false
 		// 	}
-		// }, 
+		// },
 		// {
 		// 	"path": "pages/driver-page/appointment/appointment",
 		// 	"style": {
@@ -126,7 +133,7 @@
 		// 		"enablePullDownRefresh": false
 		// 	}
 
-		// }, 
+		// },
 		{
 			"path": "pages/customer-page/customer-index/fayunPlanDetails/fayunPlanDetails",
 			"style": {
@@ -189,7 +196,7 @@
 				"enablePullDownRefresh": false
 			}
 
-		}, 
+		},
 		{
 			"path": "pages/customer-page/addDailyPlan/addDailyPlan",
 			"style": {
@@ -298,22 +305,125 @@
 		}
 	    ,{
             "path" : "pages/driver-page/driver-index/bill-of-lading-details/originInfo/originInfo",
-            "style" :                                                                                    
+            "style" :
             {
                 "navigationBarTitleText": "",
                 "enablePullDownRefresh": false
             }
-            
+
         }
         ,{
             "path" : "pages/driver-page/driver-index/SelfDelivery/SelfDelivery",
-            "style" :                                                                                    
+            "style" :
             {
                 "navigationBarTitleText": "",
                 "enablePullDownRefresh": false
             }
-            
+
+        },{
+			"path" : "pages/quality-inspection-page/qualityIndex/qualityIndex",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},{
+			"path" : "pages/quality-inspection-page/edc-sampling/edc-sampling",
+			"style" :
+			{
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "EDC鍙栨牱"
+
+			}
+		},{
+			"path" : "pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},{
+			"path" : "pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling",
+			"style" :
+			{
+				"navigationBarTitleText": "鍘熺洂閽欓晛鍙栨牱",
+				"enablePullDownRefresh": true
+			}
+		},{
+			"path" : "pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},{
+			"path" : "pages/quality-inspection-page/toc-sampling/toc-sampling",
+			"style" :
+			{
+				"navigationBarTitleText": "鍘熺洂DOC鍙栨牱",
+				"enablePullDownRefresh": true
+			}
+		},{
+			"path" : "pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},{
+			"path" : "pages/quality-inspection-page/salt-total-sampling/salt-total-sampling",
+			"style" :
+			{
+				"navigationBarTitleText": "鍘熺洂鍏ㄦ鍙栨牱",
+				"enablePullDownRefresh": true
+			}
+		},{
+			"path" : "pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},{
+			"path" : "pages/quality-inspection-page/symbNa-sampling/symbNa-sampling",
+			"style" :
+			{
+				"navigationBarTitleText": "姘㈡哀鍖栭挔鍙栨牱",
+				"enablePullDownRefresh": true
+			}
+		},{
+			"path" : "pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form",
+			"style" :
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
         }
+		 },
+				{
+					"path" : "pages/driver-page/delivery-my/delivery-my/delivery-my",
+					"style" : 
+					{
+						"navigationBarTitleText" : "鎴戞潵閫佽揣",
+						"enablePullDownRefresh" : false
+					}
+		},
+		{
+			"path" : "pages/doorkeeper-page/doorkeeper-index/doorkeeper-index",
+			"style" : 
+			{
+				"navigationBarTitleText" : "",
+				"enablePullDownRefresh" : false
+			}
+		},
+		{
+			"path" : "pages/doorkeeper-page/doorkeeper-index/exit-index",
+			"style" : 
+			{
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false,
+				"navigationStyle": "custom"
+			}
+		}
     ],
 	"subPackages": [{
 			"root": "pages/register",
@@ -363,25 +473,25 @@
 
 			}    ,{
                     "path" : "elseInvite/elseInvite",
-                    "style" :                                                                                    
+                    "style" :
                 {
                     "navigationBarTitleText": "",
                     "enablePullDownRefresh": false
                 }
-                
+
                 }
                 ,{
                     "path" : "selectFleet/selectFleet",
-                    "style" :                                                                                    
+                    "style" :
                 {
                     "navigationBarTitleText": "",
                     "enablePullDownRefresh": false
                 }
-                
+
                 },
                 {
                 	"path" : "driverStream/driverStream",
-                	"style" : 
+                	"style" :
                 	{
                 		"navigationBarTitleText" : "",
                 		"enablePullDownRefresh" : false
@@ -485,6 +595,9 @@
 				// "iconPath": "static/tabBar-icon/Gmine10.png",
 				// "selectedIconPath": "static/tabBar-icon/Bmine57.png",
 				// "text": "鎴戠殑"
+			},
+			{
+				"pagePath": "pages/doorkeeper-page/doorkeeper-index/exit-index"
 			}
 		]
 	},
@@ -503,4 +616,4 @@
 			"query": "" //鍚姩鍙傛暟锛屽湪椤甸潰鐨刼nLoad鍑芥暟閲岄潰寰楀埌
 		}]
 	}
-}
\ No newline at end of file
+}
diff --git a/pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit.vue b/pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit.vue
index 72dbb48..f31e8ab 100644
--- a/pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit.vue
+++ b/pages/customer-page/addTo-freightForwarder-purchasePermit/addTo-freightForwarder-purchasePermit.vue
@@ -24,7 +24,7 @@
 						rangeKey='productName'
 						confirmColor="#4e8af7"
 						:selectParent="true"
-						title="閫夋嫨閮ㄩ棬"
+						title="閫夋嫨浜у搧"
 						@confirm="treeChooseValue" />
 				</u-form-item>
 				<u-form-item labelWidth="20%"
diff --git a/pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue b/pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue
new file mode 100644
index 0000000..be323c3
--- /dev/null
+++ b/pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue
@@ -0,0 +1,257 @@
+<template>
+		<view class="appointment">
+			<view class="wait-collection"
+				style="background: url('https://mx.jzeg.cn:9096/appimg/image/banner/diverbanner.png') no-repeat;background-size:contain">
+			</view>
+			<uni-table border
+				stripe
+				emptyText="鏆傛棤鏇村鏁版嵁">
+				<uni-tr>
+					<uni-th align="center">鍙告満</uni-th>
+					<uni-th align="center">浜у搧</uni-th>
+					<uni-th align="center">杞︾墝鍙�</uni-th>
+					<uni-th align="center">鎵嬫満鍙�</uni-th>
+					<uni-th align="center">鎿嶄綔</uni-th>
+				</uni-tr>
+				<uni-tr v-for="(item, index) in driverBillOfLoadingData"
+					:key="item.id">
+					<uni-td align="center">{{ item.driver  }}</uni-td>
+					<uni-td align="center">{{ item.productName || '' }}</uni-td>
+					<uni-td align="center">{{ item.carNo || '' }}</uni-td>
+					<uni-td align="center">{{ item.phone || '' }}</uni-td>
+					<uni-td><u-button text="閫夋嫨"
+							type="primary"
+							@click="yuYueBtnClick(item)"></u-button></uni-td>
+				</uni-tr>
+			</uni-table>
+			<view v-show="isshow">
+				<uni-table border
+					stripe
+					type="selection"  
+					@selection-change="selectionChange"
+					emptyText="鏆傛棤鏇村鏁版嵁">
+					<uni-tr>
+						<uni-th align="center">妫�娴嬮」</uni-th>
+					</uni-tr>
+					<uni-tr v-for="(item, index) in inspectData"
+						:key="item.id">
+						<uni-td align="center">{{ item.title  }}</uni-td>
+					</uni-tr>
+				</uni-table>
+				<view class="fourth-line">
+					<view class="button-img"
+						@click.stop="toAppointmentClick(item)">纭畾</view>
+				</view>
+			</view>
+			<u-popup :show="show"
+				@close="close"
+				@open="open"
+				mode="center"
+				round="10">
+				<view class="receiverPopup">
+					<view class="receiverPopup__title"><text>纭畾妫�鏌ュ畬姣�</text></view>
+					<view class="receiverPopup__btn"><u-button text="纭畾"
+							type="primary"
+							@click="popClick"
+							:disabled="canClick"
+							:loading="ClickLoading"></u-button></view>
+				</view>
+			</u-popup>
+		</view>
+</template>
+
+<script>
+	export default {
+		components: {
+		},
+		data() {
+			return {
+				show: false, // 寮瑰嚭鍏ㄩ儴棰嗗彇鎻愮ず
+				driverBillOfLoadingData:[],
+				inspectData:[],
+				isAllSelected:false,
+				isshow:false,
+				form:{},
+				ClickLoading:false
+			}
+		},
+		onShow() {
+			this.init();
+		},
+		methods: {
+			yuYueBtnClick(item){
+				this.inspectData=JSON.parse(item.inspectedResult)
+				this.form=item
+				this.isshow=true
+			},
+			selectionChange(items){
+			  const allIds = this.inspectData.map(item => item);
+			  this.isAllSelected = items?.detail.index.length === allIds.length 
+			},
+			init() {
+				this.isAllSelected=false
+				this.TaskCoalList();
+				this.form={}
+				this.inspectData=[]
+				this.isshow=false
+			},
+			toAppointmentClick(){
+				if(this.isAllSelected==true){
+					let arr= this.driverBillOfLoadingData.map(i=>{
+						return {
+							carNo:i.carNo,
+							taskId:i.id,
+							taskcode:i.code,
+							}
+					})
+					this.show = true;
+				}else{
+					uni.$u.toast('蹇呴』鍏ㄩ儴妫�娴�')
+				}
+				
+			},
+			popClick() {
+					this.ClickLoading = true;
+					this.inspectData=this.inspectData.map(item=>{
+						return {
+							...item,
+							valve:"閫氳繃"
+						}
+					})
+					uni.showLoading({ title: '鍔犺浇涓�...' });
+					this.$reqPost('addCheckLog',{
+									carNo:this.form.carNo,
+									taskId:this.form.id,
+									taskcode:this.form.code,
+									inspectedResult:JSON.stringify(this.inspectData)
+								}, 'json').then(res => {
+						if (res.code === 0) {
+							uni.$u.toast('妫�鏌ユ垚鍔�')
+							this.form={}
+							this.ClickLoading = false;
+							this.inspectData=[]
+							this.show = false;
+							this.isshow=false
+							this.TaskCoalList()
+						} else {
+							uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�')
+						}
+					})
+			},
+			open() {},
+			close() {
+				this.show = false;
+			},
+			// 鍙告満棣栭〉鍒楄〃
+			TaskCoalList() {
+				uni.showLoading({
+					title: '鍔犺浇涓�...'
+				});
+				this.$reqGet('getCheckTaskCoal',{flag:0}).then(res => {
+					uni.hideLoading();
+					this.driverBillOfLoadingData = res.data;
+				});
+				
+			},
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.receiverPopup {
+		height: vww(110);
+		width: 300rpx;
+		
+		.receiverPopup__title {
+			margin: vww(10) auto 0;
+			width: 80%;
+			text-align: center;
+		}
+	
+	
+		&__btn {
+			margin: vww(10) auto;
+			width: 50%;
+	
+			.u-button {
+				height: vww(20);
+			}
+		}
+	}
+	.wait-collection {
+			width: 100%;
+			height: 600rpx;
+		}
+	::v-deep.appointment {
+		.appointment-description {
+			margin: vww(8) 0;
+			color: #fd1446;
+
+			text {
+				font-weight: bold;
+				display: inline-block;
+				margin-left: vww(5);
+				color: #252525;
+			}
+		}
+		@mixin fourthLine {
+			width: 64%;
+			height: vww(68);
+			display: flex;
+			align-items: center;
+			position: relative;
+			left: vww(102);
+			bottom: vww(3);
+		
+			.button-img {
+				width: vww(122);
+				height: vww(41);
+				background: url('https://mx.jzeg.cn:9096/appimg/image/banner/button.png') no-repeat;
+				background-size: cover;
+				font-size: 28rpx;
+				font-weight: 300;
+				color: #ffffff;
+				text-align: center;
+				line-height: vww(40);
+		
+			}
+		}
+		.fourth-line {
+			@include fourthLine;
+		}
+
+		// 琛ㄦ牸
+		.uni-table-scroll {
+			width: 100%;
+			overflow-x: hidden;
+
+			.uni-table {
+				min-width: 0 !important;
+
+				.uni-table-tr {
+					padding: 0;
+					font-size: vww(10);
+
+					.uni-table-th {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) vww(10);
+						color: #111111;
+						font-weight: 550;
+						background: #f5f5f5;
+					}
+
+					.uni-table-td {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) vww(5);
+						color: #111111;
+						.u-button {
+							height: vww(23);
+						}
+					}
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/pages/doorkeeper-page/doorkeeper-index/exit-index.vue b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue
new file mode 100644
index 0000000..fa0fd82
--- /dev/null
+++ b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue
@@ -0,0 +1,206 @@
+<template>
+		<view class="appointment">
+			<view class="wait-collection"
+				style="background: url('https://mx.jzeg.cn:9096/appimg/image/banner/diverbanner.png') no-repeat;background-size:contain">
+			</view>
+			<uni-table border
+				stripe
+				emptyText="鏆傛棤鏇村鏁版嵁">
+				<uni-tr>
+					<uni-th align="center">鍙告満</uni-th>
+					<uni-th align="center">浜у搧</uni-th>
+					<uni-th align="center">杞︾墝鍙�</uni-th>
+					<uni-th align="center">鎵嬫満鍙�</uni-th>
+					<uni-th align="center">鎿嶄綔</uni-th>
+				</uni-tr>
+				<uni-tr v-for="(item, index) in driverBillOfLoadingData"
+					:key="item.id">
+					<uni-td align="center">{{ item.driver  }}</uni-td>
+					<uni-td align="center">{{ item.productName || '' }}</uni-td>
+					<uni-td align="center">{{ item.carNo || '' }}</uni-td>
+					<uni-td align="center">{{ item.phone || '' }}</uni-td>
+					<uni-td><u-button text="閫夋嫨"
+							type="primary"
+							@click="yuYueBtnClick(item)"></u-button></uni-td>
+				</uni-tr>
+			</uni-table>
+			<u-popup :show="show"
+				@close="close"
+				@open="open"
+				mode="center"
+				round="10">
+				<view class="receiverPopup">
+					<view class="receiverPopup__title"><text>纭畾妫�鏌ュ畬姣�</text></view>
+					<view class="receiverPopup__btn"><u-button text="纭畾"
+							type="primary"
+							@click="popClick"
+							:disabled="canClick"
+							:loading="ClickLoading"></u-button></view>
+				</view>
+			</u-popup>
+			<tab-bar :current="1"></tab-bar>
+		</view>
+</template>
+
+<script>
+	export default {
+		components: {
+		},
+		data() {
+			return {
+				show: false, // 寮瑰嚭鍏ㄩ儴棰嗗彇鎻愮ず
+				driverBillOfLoadingData:[],
+				isAllSelected:false,
+				form:{},
+				ClickLoading:false
+			}
+		},
+		onShow() {
+			this.init();
+		},
+		methods: {
+			yuYueBtnClick(item){
+				this.form=item
+				this.show = true;
+			},
+			init() {
+				this.isAllSelected=false
+				this.TaskCoalList();
+				this.form={}
+			},
+			popClick() {
+					this.ClickLoading = true;
+					uni.showLoading({ title: '鍔犺浇涓�...' });
+					this.$reqPost('addCheckLog',{
+									carNo:this.form.carNo,
+									taskId:this.form.id,
+									taskcode:this.form.code,
+								}, 'json').then(res => {
+						if (res.code === 0) {
+							uni.$u.toast('妫�鏌ユ垚鍔�')
+							this.form={}
+							this.ClickLoading = false;
+							this.show = false;
+							this.TaskCoalList()
+						} else {
+							uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�')
+						}
+					})
+			},
+			open() {},
+			close() {
+				this.show = false;
+			},
+			// 鍙告満棣栭〉鍒楄〃
+			TaskCoalList() {
+				uni.showLoading({
+					title: '鍔犺浇涓�...'
+				});
+				this.$reqGet('getCheckTaskCoal',{flag:1}).then(res => {
+					uni.hideLoading();
+					this.driverBillOfLoadingData = res.data;
+				});
+				
+			},
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.receiverPopup {
+		height: vww(110);
+		width: 300rpx;
+		
+		.receiverPopup__title {
+			margin: vww(10) auto 0;
+			width: 80%;
+			text-align: center;
+		}
+	
+	
+		&__btn {
+			margin: vww(10) auto;
+			width: 50%;
+	
+			.u-button {
+				height: vww(20);
+			}
+		}
+	}
+	.wait-collection {
+			width: 100%;
+			height: 600rpx;
+		}
+	::v-deep.appointment {
+		.appointment-description {
+			margin: vww(8) 0;
+			color: #fd1446;
+
+			text {
+				font-weight: bold;
+				display: inline-block;
+				margin-left: vww(5);
+				color: #252525;
+			}
+		}
+		@mixin fourthLine {
+			width: 64%;
+			height: vww(68);
+			display: flex;
+			align-items: center;
+			position: relative;
+			left: vww(102);
+			bottom: vww(3);
+		
+			.button-img {
+				width: vww(122);
+				height: vww(41);
+				background: url('https://mx.jzeg.cn:9096/appimg/image/banner/button.png') no-repeat;
+				background-size: cover;
+				font-size: 28rpx;
+				font-weight: 300;
+				color: #ffffff;
+				text-align: center;
+				line-height: vww(40);
+		
+			}
+		}
+		.fourth-line {
+			@include fourthLine;
+		}
+
+		// 琛ㄦ牸
+		.uni-table-scroll {
+			width: 100%;
+			overflow-x: hidden;
+
+			.uni-table {
+				min-width: 0 !important;
+
+				.uni-table-tr {
+					padding: 0;
+					font-size: vww(10);
+
+					.uni-table-th {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) vww(10);
+						color: #111111;
+						font-weight: 550;
+						background: #f5f5f5;
+					}
+
+					.uni-table-td {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) vww(5);
+						color: #111111;
+						.u-button {
+							height: vww(23);
+						}
+					}
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/pages/driver-page/delivery-my/delivery-my/delivery-my.vue b/pages/driver-page/delivery-my/delivery-my/delivery-my.vue
new file mode 100644
index 0000000..a0898d4
--- /dev/null
+++ b/pages/driver-page/delivery-my/delivery-my/delivery-my.vue
@@ -0,0 +1,258 @@
+<template>
+	<view class="register">
+		<view class="registerForm">
+			<u--form :rules="rules"
+				:model="registerFormModel"
+				ref="regesterFormRef">
+				<u-form-item prop="driver"
+					label="濮撳悕"
+					labelWidth="20%"
+					borderBottom
+					required>
+					<u--input v-model="registerFormModel.driver"
+						placeholder="璇疯緭鍏ュ唴瀹�"
+						clearable></u--input>
+				</u-form-item>
+				<u-form-item prop="idNumber"
+					label="韬唤璇�"
+					labelWidth="20%"
+					borderBottom
+					required>
+					<u--input v-model="registerFormModel.idNumber"
+						placeholder="璇疯緭鍏ュ唴瀹�"
+						clearable></u--input>
+				</u-form-item>
+				<u-form-item prop="phone"
+					label="鎵嬫満鍙�"
+					labelWidth="20%"
+					borderBottom
+					required>
+					<u--input v-model="registerFormModel.phone"
+						placeholder="璇疯緭鍏ュ唴瀹�"
+						clearable></u--input>
+				</u-form-item>
+				<u-form-item prop="carNo"
+					label="杞︾墝鍙�"
+					labelWidth="20%"
+					borderBottom
+					required>
+					<u--input v-model="registerFormModel.carNo"
+						placeholder="璇疯緭鍏ュ唴瀹�"
+						clearable></u--input>
+				</u-form-item>
+				<u-form-item prop="carNo"
+					label="鏄惁鍏ュ満"
+					labelWidth="20%"
+					borderBottom
+					required>
+					<uni-data-checkbox v-model="value" :localdata="range" @change="change"></uni-data-checkbox>
+				</u-form-item>
+				
+			</u--form>
+		</view>
+		<view class="details">
+			<view class="title"><text>閰嶉�侀�夋嫨</text></view>
+			<view class="">
+		<uni-table border
+			stripe
+			emptyText="鏆傛棤鏇村鏁版嵁">
+			<uni-tr>
+				<uni-th align="center">渚涘簲鍟�</uni-th>
+				<uni-th align="center">浜у搧</uni-th>
+				<uni-th align="center">杞︽暟</uni-th>
+				<uni-th align="center">鎿嶄綔</uni-th>
+			</uni-tr>
+			<uni-tr v-for="(item, index) in TableData"
+				:key="item.id">
+				<uni-td align="center">{{ item.customerName || '' }}</uni-td>
+				<uni-td align="center">{{ item.productName||''  }}</uni-td>
+				<uni-td align="center">{{ item.carNum || '' }}</uni-td>
+				<uni-td><u-button text="閫夋嫨"
+						type="primary"
+						:disabled="item.carNum == item.carNum1"
+						@click="yuYueBtnClick(item)"></u-button></uni-td>
+			</uni-tr>
+		</uni-table>
+		</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	import { apiRegister } from '@/api/publicInterface.js';
+	import { mapMutations } from 'vuex';
+	export default {
+		// 鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚銆傛敞鎰忓鏋滄覆鏌撻�熷害蹇紝浼氬湪椤甸潰杩涘叆鍔ㄧ敾瀹屾垚鍓嶈Е鍙�
+		onReady() {
+			this.$refs.regesterFormRef.setRules(this.rules);
+		},
+		onLoad(params) {
+			let that=this
+			this.GetMyDelivery()
+			uni.getStorage({
+			    key: 'myDelivery',
+			    success: function (res) {
+			        Object.assign(that.registerFormModel, res.data)
+			    }
+			});
+		},
+		data() {
+			return {
+				value: 0,
+				range: [{"value": 0,"text": "鍚�"	},{"value": 1,"text": "鏄�"}],
+				carNumShow: false,
+				registerFormModel: {
+					phone: '',
+					driver: '',
+					idNumber: '',
+					carNo: '',
+				},
+				TableData:[],
+				rules: {
+					driver: {
+						type: 'string',
+						required: true,
+						message: '璇峰~鍐欏鍚�',
+						trigger: ['blur', 'change']
+					},
+					idNumber: [{
+							type: 'string',
+							required: true,
+							message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+							trigger: ['blur', 'change']
+						},
+						{
+							pattern: /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
+							message: '韬唤璇佸彿鏍煎紡涓嶆纭�',
+							trigger: ['blur', 'change']
+						}
+					],
+					phone: [{
+							required: true,
+							message: '璇疯緭鍏ユ墜鏈哄彿',
+							// blur鍜宑hange浜嬩欢瑙﹀彂妫�楠�
+							trigger: ['blur', 'change']
+						},
+						{
+							min: 11,
+							max: 11,
+							message: '璇疯緭鍏ュ悎娉曟墜鏈哄彿'
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '鎵嬫満鍙风爜鏍煎紡涓嶆纭�',
+							trigger: ['change', 'blur']
+						}
+					],
+					carNo: [{
+							type: 'string',
+							required: true,
+							message: '璇疯緭鍏ヨ溅鐗屽彿',
+							trigger: ['blur', 'change']
+						},
+						{
+							transform(value) {
+								return String(value);
+							},
+							validator: (rule, value, callback) => {
+								return uni.$u.test.carNo(value);
+							},
+							message: '璇疯緭鍏ユ纭殑杞︾墝鍙�',
+							trigger: ['change', 'blur']
+						}
+					],
+				},
+			};
+		},
+		methods: {
+			...mapMutations(['changeisUploadimg']),
+			yuYueBtnClick(item){
+				this.$refs.regesterFormRef.validate().then(res => {
+				this.$reqPost('saveMyDelivery',{
+					coalName:item.productName,
+					customerId:item.customerId,
+					deptId:item.deptId,
+					filedId:item.filedId,
+					orderPlanId:item.id,
+					orderTye:item.orderType,
+					sendDate:item.sendDate,
+					...this.registerFormModel
+				}, 'json').then(res => {
+					uni.setStorage({
+					    key: 'myDelivery',
+					    data: this.registerFormModel,
+					});
+					if (res.code === 0) {
+						uni.$u.toast('棰勭害鎴愬姛')
+						
+					} else {
+						uni.$u.toast(res.msg ? res.msg : '棰勭害澶辫触')
+					}
+				})
+				
+				
+				})
+			},
+			GetMyDelivery() {
+				this.$reqGet('myDelivery').then(res => {
+					if (res.data) {
+						this.TableData=res.data
+					}
+				});
+			}
+		}
+	};
+</script>
+
+<style lang="scss"
+	scoped>
+	::v-deep.register {
+		width: 94%;
+		padding: 0 0 vww(20) 0;
+		margin: 0 auto;
+		.details {
+			margin-top: vww(24);
+			.title {
+				color: #111111;
+				font-weight: 400;
+				border: 1px solid #eeeeee;
+				padding: 0 vww(12) 0 vww(12);
+				border-bottom: none;
+				height: vww(40);
+				line-height: vww(40);
+				background-color: #f5f5f5;
+			}
+			.uni-table-scroll {
+				width: 100%;
+				overflow-x: hidden;
+				.uni-table {
+					min-width: 0 !important;
+					.uni-table-tr {
+						padding: 0;
+						font-size: vww(13);
+					.uni-table-th {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) 0;
+						color: #111111;
+						font-weight: 550;
+						background: #f5f5f5;
+					}
+					.uni-table-td {
+						height: vww(32);
+						line-height: vww(20);
+						padding: vww(5) vww(10);
+						color: #111111;
+						.u-button {
+							height: vww(23);
+						}
+					}
+					}
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/pages/driver-page/drvier-my/drvier-my.vue b/pages/driver-page/drvier-my/drvier-my.vue
index 0538457..8705be9 100644
--- a/pages/driver-page/drvier-my/drvier-my.vue
+++ b/pages/driver-page/drvier-my/drvier-my.vue
@@ -1,7 +1,7 @@
 <template>
 	<view class="driver-my">
 		<view class=""
-			style="height: 586rpx;width: 100%;">
+			style="height: 540rpx;width: 100%;">
 			<view class="driver-banner">
 				<view class="navgation">鎴戠殑</view>
 				<view class="avatar">
@@ -30,6 +30,15 @@
 					@click="editDocClick"
 					shape="circle"
 					plain>缂栬緫璇佷欢淇℃伅</u-button></view>
+		</view>
+		<view class="process-tran"
+			>
+		</view>
+		<view class="tran-type">
+			<view ><u-button type="primary"
+					@click="editTranClick"
+					shape="circle"
+					plain>娣诲姞杩愯緭璇�</u-button></view>
 		</view>
 		<view class="information-block">
 			<view class="personal-information">
@@ -141,6 +150,21 @@
 
 						</view>
 					</view>
+				</view>
+			</view>
+		</view>
+		<view class="car-information" v-if="certificateData.length>0">
+			<view class="roadTransportCertificate">
+				<view class="information-body">
+					<view class="certificate" v-for="item in certificateData" :key="item.id">
+						<view class="certificate-left">
+							浜у搧锛歿{item.productName}}
+						</view>
+						<view class="certificate-right">
+							{{item.status==0?'鏈鏍�':item.status==1?'閫氳繃':item.status==2?'杩囨湡':item.status==-1?"鏈�氳繃":null}}
+						</view>
+					</view>
+					{{}}
 				</view>
 			</view>
 		</view>
@@ -401,6 +425,7 @@
 				</view>
 			</u-popup>
 		</view>
+		<!-- 淇敼璇佷欢寮瑰嚭 -->
 		<view class="editDriverPopup-container">
 			<u-popup :show="editDocShow"
 				mode="bottom"
@@ -538,7 +563,200 @@
 				</view>
 			</u-popup>
 		</view>
-		
+		<!-- 娣诲姞閬撹矾杩愯緭璇� -->
+		<view class="editDriverPopup-container">
+			<u-popup :show="editTranShow"
+				mode="bottom"
+				@close="editTranClose"
+				@open="editTranOpen"
+				:closeable="true">
+				<combined-title title="杩愯緭璇�"
+					style="margin-left:20rpx"></combined-title>
+				<view class="editDriverPopup-container-box">
+					<u--form labelPosition="left"
+						:model="tranSportForm"
+						:rule="sportRules"
+						ref="sportRef">
+						<u-form-item labelWidth="20%"
+							label="杩愯緭璇佸彿"
+							prop="certificateNo"
+							required>
+							<u--input v-model="tranSportForm.certificateNo"
+								border="none"
+								inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%"
+							label="杞︾墝鍙�"
+							prop="carNo"
+							required>
+							<u--input v-model="tranSportForm.carNo"
+								border="none"
+								inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%"
+							label="浜у搧"
+							ref="item1" 
+							@click="treeOpen"
+							prop='productId'>
+							<u--input placeholder="璇烽�夋嫨浜у搧"
+								v-model="productName"
+								class="input"
+								type="text"></u--input>
+							<qian-tree ref="tkitree"
+								:range="productData"
+								rangeKey='productName'
+								confirmColor="#4e8af7"
+								:selectParent="true"
+								title="閫夋嫨閮ㄩ棬"
+								@confirm="treeChooseValue" />
+						</u-form-item>
+						<view class="customer-name">
+							<view class="customer-name_label">
+								閫夋嫨瀹㈡埛
+							</view>
+							<view class="customer-name_block"
+								@click="selfDeliver">
+								<input class="customer-name_block-input"
+									type="text"
+									placeholder="璇烽�夋嫨瀹㈡埛"
+									v-model="customerName"
+									@focus="selfDeliver"
+									ref="selectCustomer" />
+							</view>
+						</view>
+						<u-form-item prop="certificateImg"
+							label="杩愯緭璇�"
+							labelWidth="20%"
+							borderBottom
+							required
+							@click="beforeRead">
+							<u-upload :fileList="fileList9"
+								deletable
+								@afterRead="afterRead"
+								@delete="deletePic"
+								name="9"
+								multiple
+								:maxCount="1"
+								width="250"
+								height="150"
+								:previewFullImage="true">
+							</u-upload>
+						</u-form-item>
+						<u-form-item prop="expirationTime"
+							label="杩愯緭璇佽繃鏈熸椂闂�"
+							labelWidth="20%"
+							borderBottom>
+							<uni-datetime-picker v-model="tranSportForm.expirationTime" type="datetime"  />
+						</u-form-item>
+						<view class="adddelete"> 
+							<u-button text="娣诲姞椹鹃┒鍛�"
+								@click="addDriver"
+								type="primary"></u-button>
+							<u-button text="鍒犻櫎椹鹃┒鍛�"
+								@click="deleteDriver"
+								type="error"></u-button>
+						</view>
+						<view class="superList" v-for="(item,index) in driverList" :key="index">
+							<u-form-item labelWidth="20%"
+								label="濮撳悕"
+								prop="driverName"
+								required>
+								<u--input v-model="item.driverName"
+									border="none"
+									inputAlign="left"></u--input>
+							</u-form-item>
+							<u-form-item labelWidth="20%"
+								label="韬唤璇�"
+								prop="driverIdcard"
+								required>
+								<u--input v-model="item.driverIdcard"
+									border="none"
+									inputAlign="left"></u--input>
+							</u-form-item>
+						</view>
+						<view class="adddelete">
+							<u-button text="娣诲姞鎶艰繍鍛�"
+								@click="addSupercar"
+								type="primary"></u-button>
+							<u-button text="鍒犻櫎鎶艰繍鍛�"
+								@click="deleteSupercar"
+								type="error"></u-button>
+						</view>
+						<view class="superList" v-for="(item,index) in supercargoList" :key="index">
+							<u-form-item labelWidth="20%"
+								label="濮撳悕"
+								prop="driverName"
+								required>
+								<u--input v-model="item.driverName"
+									border="none"
+									inputAlign="left"></u--input>
+							</u-form-item>
+							<u-form-item labelWidth="20%"
+								label="韬唤璇�"
+								prop="driverIdcard"
+								required>
+								<u--input v-model="item.driverIdcard"
+									border="none"
+									inputAlign="left"></u--input>
+							</u-form-item>
+							<u-form-item labelWidth="20%"
+								label="鎵嬫満鍙�"
+								prop="driverPhone"
+								required>
+								<u--input v-model="item.driverPhone"
+									border="none"
+									inputAlign="left"></u--input>
+							</u-form-item>
+						</view>
+						
+						<u-form-item labelWidth="20%"
+							label="澶囨敞"
+							prop="remarks">
+							<u--input v-model="tranSportForm.remarks"
+								border="none"
+								inputAlign="left"></u--input>
+						</u-form-item>
+					</u--form>
+					<view class="person-utils">
+						<u-button text="鎻愪氦閬撹矾杩愯緭璇�"
+							@click="updateRoad"
+							type="primary"></u-button>
+					</view>
+				</view>
+			</u-popup>
+			<u-popup :closeable='true'
+				:round="30"
+				mode='bottom'
+				:show="selfDeliverShow"
+				@close="selfDeliverClose"
+				@open="selfDeliverOpen">
+				<view class="name-list-section">
+					<view class="name-list_title">
+						閫夋嫨瀹㈡埛
+					</view>
+					<view class="name-list_container">
+						<u-empty mode="data"
+							icon="http://cdn.uviewui.com/uview/empty/data.png"
+							text="鏆傛棤鏁版嵁"
+							textSize="30"
+							iconSize="1000"
+							v-if="customerNameList.length===0"></u-empty>
+						<view class="name-list_container_item"
+							v-for="(item,index) in customerNameList" :key="index"
+							@click="selectCustomer(item)">
+							<view class="item-image">
+								<image src="https://mx.jzeg.cn:9096/appimg/image/banner/address.png"
+									mode="widthFix"
+									style="width: 18px;"></image>
+							</view>
+							<view class="item-customerName">
+								{{item.customerName}}
+							</view>
+						</view>
+					</view>
+				</view>
+			</u-popup>
+		</view>
 		<view class="logoutModel">
 			<u-modal :show="logoutShow"
 				:title="logoutTitle"
@@ -559,12 +777,17 @@
 	import noobTour from '@/components/noobTour/noobTour.vue'
 	import printerStyle from '@/pages/driver-page/driver-index/bill-of-lading-details/printerStyle/printerStyle.vue'
 	import { mapMutations, mapState } from 'vuex';
+	import qianTree from '@/components/qian-tree/qian-tree.vue';
 	export default {
-		components: { previewImage, noobTour, printerStyle },
+		components: { previewImage, noobTour, printerStyle,qianTree },
 		data() {
 			return {
+				selfDeliverShow: false,
+				customerNameList:[],
+				customerName:"",
 				// 鑾峰彇鐨勫徃鏈鸿鎯�
 				userInfo: {},
+				productName:"",
 				// 淇敼鍙告満璇︽儏
 				editUserInfo: {
 					phone: '',
@@ -585,8 +808,11 @@
 					inventoryImg: '',
 					countryNumberCar: 0
 				},
-				registerFormModel:{
-					
+				registerFormModel:{},
+				tranSportForm:{
+					carNo:"",
+					productId:"",
+					customerId:""
 				},
 				countryNumberCarList: [{
 						name: 1,
@@ -597,6 +823,37 @@
 						label: '鍥藉叚',
 					}
 				],
+				sportRules:{
+					certificateNo: {
+						type: 'string',
+						required: true,
+						message: '璇峰~鍐欒繍杈撹瘉鍙�',
+						trigger: ['blur', 'change']
+					},
+					expirationTime: {
+						type: 'string',
+						required: true,
+						message: '璇烽�夋嫨杩愯緭璇佽繃鏈熸椂闂�',
+						trigger: ['blur', 'change']
+					},
+					carNo: [{
+							type: 'string',
+							required: true,
+							message: '璇疯緭鍏ヨ溅鐗屽彿',
+							trigger: ['blur', 'change']
+						},
+						{
+							transform(value) {
+								return String(value);
+							},
+							validator: (rule, value, callback) => {
+								return uni.$u.test.carNo(value);
+							},
+							message: '璇疯緭鍏ユ纭殑杞︾墝鍙�',
+							trigger: ['change', 'blur']
+						}
+					],
+				},
 				rules: {
 					name: {
 						type: 'string',
@@ -718,10 +975,19 @@
 				fileList5: [],
 				fileList6: [],
 				fileList7: [],
-				fileList8:[],
+				fileList8: [],
+				fileList9: [],
+				productData:[],
+				certificateData:[],
+				driverList:[{
+					driverName:"",
+					driverIdcard:""
+				}],
+				supercargoList:[],
 				// 淇敼淇℃伅寮瑰嚭妗�
 				editDriverPopupShow: false,
 				editDocShow:false,
+				editTranShow:false,
 				// previewImage
 				previewImageShow: false,
 				previewImageSrc: '',
@@ -746,10 +1012,14 @@
 		},
 		onReady() {
 			this.$refs.editRef.setRules(this.rules);
+			this.$refs.sportRef.setRules(this.sportRules);
 		},
 		methods: {
 			...mapMutations(['changeisUploadimg']),
 			init() {
+				this.$reqGet('getProductTree').then(res => {
+					this.productData = res.data;
+				});
 				this.getUserEntity();
 			},
 			getUserEntity() {
@@ -759,6 +1029,10 @@
 				this.$reqGet('getUserEntity').then(res => {
 					uni.hideLoading();
 					this.userInfo = res.data;
+					this.$reqGetId('getDriverListById', this.userInfo.userId).then(res => {
+						this.certificateData = res.data;
+						console.log(this.certificateData)
+					});
 					// this.userInfo.idCard = this.userInfo.idCard.slice(0, 6) + '********' + this.userInfo.idCard
 					// 	.slice(-4)
 					uni.setStorageSync('carImg', this.userInfo.carImg);
@@ -831,6 +1105,10 @@
 			},
 			editDocClick(){
 				this.editDocShow = true;
+			},
+			editTranClick(){
+				this.getShipToList()
+				this.editTranShow = true;
 			},
 			imageClick(index) {
 				if (index == 1) {
@@ -925,7 +1203,12 @@
 								this.registerFormModel.driverImg = JSON.parse(res.data)
 									.data.url;
 								resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
+							}else if(num==9){
+								this.tranSportForm.certificateImg = JSON.parse(res.data)
+									.data.url;
+								resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
 							}
+							
 						}
 					});
 				});
@@ -946,8 +1229,12 @@
 			editDocClose(){
 				this.editDocShow = false;
 			},
+			editTranClose(){
+				this.editTranShow = false;
+			},
 			editDriverPopupOpen() {},
 			editDocOpen(){},
+			editTranOpen(){},
 			modifyPassword() {
 				this.$store.commit('changeisLogin', false)
 				this.$store.dispatch('websocketOnClose')
@@ -955,16 +1242,131 @@
 					url: '/pages/login/forgetPassword/forgetPassword'
 				})
 			},
+			updateRoad(){
+				this.$refs.sportRef
+					.validate()
+					.then(res => {
+						if (this.tranSportForm.productId == '' ) {
+							uni.showToast({
+								title: '璇烽�夋嫨浜у搧锛�',
+								icon: 'error',
+								duration: 2000
+							});
+						}else if(this.tranSportForm.customerId == ''){
+							uni.showToast({
+								title: '璇烽�夋嫨瀹㈡埛锛�',
+								icon: 'error',
+								duration: 2000
+							});
+						}
+						let idcardtext=/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
+						if(this.driverList.length>0){
+							this.driverList.forEach((item,index)=>{
+								if(!item.driverName){
+									uni.showToast({
+										title: `璇峰~鍐欓┚椹跺鍚嶏紒`,
+										icon: 'error',
+										duration: 2000
+									});
+								}
+								if(!item.driverIdcard){
+									uni.showToast({
+										title: `璇峰~鍐欓┚椹惰韩浠借瘉锛乣,
+										icon: 'error',
+										duration: 2000
+									});
+								}else if(!idcardtext.test(item.driverIdcard)){
+									uni.showToast({
+										title: `璇锋楠岄┚椹跺憳韬唤璇侊紒`,
+										icon: 'error',
+										duration: 2000
+									});
+								}
+							})
+						}
+						if(this.supercargoList.length>0){
+							this.supercargoList.forEach((item,index)=>{
+								if(!item.driverName){
+									uni.showToast({
+										title: `璇峰~鍐欐娂杩愬鍚嶏紒`,
+										icon: 'error',
+										duration: 2000
+									});
+								}
+								if(!item.driverIdcard){
+									uni.showToast({
+										title: `璇峰~鍐欐娂杩愯韩浠借瘉锛乣,
+										icon: 'error',
+										duration: 2000
+									});
+								}else if(!idcardtext.test(item.driverIdcard)){
+									uni.showToast({
+										title: `璇锋楠屾娂杩愯韩浠借瘉锛乣,
+										icon: 'error',
+										duration: 2000
+									});
+								}
+								if(!item.driverPhone){
+									uni.showToast({
+										title: `璇峰~鍐欐娂杩愭墜鏈哄彿锛乣,
+										icon: 'error',
+										duration: 2000
+									});
+								}else if( !/^1[23456789]\d{9}$/.test(item.driverPhone)){
+									uni.showToast({
+										title: `璇锋楠屾娂杩愭墜鏈哄彿锛乣,
+										icon: 'error',
+										duration: 2000
+									});
+								}
+							})
+						}
+						let driverName=""
+						let driverIdcard=""
+						let supercargoInfo=''
+						driverName = this.driverList.map((item, index) => {
+						        return item.driverName;
+						      }).join(",");
+						driverIdcard = this.driverList.map((item, index) => {
+								 return item.driverIdcard;
+							   }).join(",");
+						supercargoInfo = this.supercargoList.map((item, index) => {
+							 return item.driverName+ '|'+item.driverIdcard+"|"+item.driverPhone
+						   }).join(",");
+						   if(this.tranSportForm.expirationTime){
+						   	this.tranSportForm.expirationTime=this.tranSportForm.expirationTime.slice(0,16)
+						   }
+						this.$reqPost('addJcroadtransport', {
+							userId:this.registerFormModel.customerid,
+							...this.tranSportForm,
+							driverName:driverName,
+							driverIdcard:driverIdcard,
+							supercargoInfo:supercargoInfo
+						}, 'json').then(res => {
+							this.editTranShow = false;
+							if (res.code == 0) {
+								this.$u.toast('淇敼鎴愬姛');
+								this.init();
+							} else {
+								uni.showToast({
+									title: res.msg,
+									icon: 'none',
+									duration: 2000
+								});
+							}
+						})
+					})
+			},
 			// 淇敼璇佷欢淇℃伅
 			updateDoc(){
 				this.$reqPost('saveDriverDocs', {
 					userId:this.registerFormModel.customerid,
 					idCardImg:this.registerFormModel.cardImg1+","+this.registerFormModel.cardImg2,
-					expirationTimeIdcard:this.registerFormModel.expirationTimeIdcard,
+					expirationTimeIdcard:this.registerFormModel.expirationTimeIdcard.slice(0,16),
 					drivingImg:this.registerFormModel.drivingImg,
-					expirationTimeDriving:this.registerFormModel.expirationTimeDriving,
+					expirationTimeDriving:this.registerFormModel.expirationTimeDriving.slice(0,16),
 					driverImg:this.registerFormModel.driverImg,
-					expirationTimeDriver:this.registerFormModel.expirationTimeDriver,
+					expirationTimeDriver:this.registerFormModel.expirationTimeDriver.slice(0,16),
 					tradeQualificationImg:this.registerFormModel.tradeQualificationImg,
 					expirationTimeTradequalification:this.registerFormModel.expirationTimeTradequalification,
 				}, 'json').then(res => {
@@ -992,9 +1394,7 @@
 				this.$refs.editRef
 					.validate()
 					.then(res => {
-						
 						this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
-							console.log('鏇存柊鏁版嵁', res);
 							this.editDriverPopupShow = false;
 							if (res.code == 0) {
 								this.$u.toast('淇敼鎴愬姛');
@@ -1042,7 +1442,82 @@
 			},
 			selectedPrintStyleHandle(val) {
 				this.selectedPrintStyle = val
-			}
+			},
+			findNameById(tree, idArr) {
+				let result = [];
+				function traverse(node, idArr) {
+					if (!node) return;
+					if (idArr.includes(node.id)) {
+						result.push({name:node.productName,id:node.id});
+					}
+					if (node.children && node.children.length > 0) {
+						node.children.forEach(child => {
+							traverse(child, idArr);
+						});
+					}
+				}
+				tree.forEach(node => {
+					traverse(node, idArr);
+				});
+				return result;
+			},
+			// 鎵撳紑浜у搧琛�
+			treeOpen() {
+				this.$refs.tkitree._show();
+			},
+			treeClose() {
+				this.$refs.tkitree._hide();
+			},
+			treeChooseValue(v) {
+				this.$refs.tkitree._hide();
+				let data=this.findNameById(this.productData, v)[0]
+				this.tranSportForm.productId = data.id;
+				this.productName=data.name
+			},
+			// 鑾峰彇瀹㈡埛
+			getShipToList() {
+				this.$reqGet('getShipToList', { deptId: this.editUserInfo.deptId, productName: this.editUserInfo.productName })
+					.then(res => {
+						if (res.code == 0) {
+							this.customerNameList = res.data
+						}else {
+						this.$u.toast('鍔犺浇澶辫触')
+					}
+				})
+			},
+			selfDeliver() {
+				this.selfDeliverShow = true
+			},
+			selfDeliverClose() {
+				this.selfDeliverShow = false
+			},
+			selfDeliverOpen() {
+				this.selfDeliverShow = true
+			},
+			selectCustomer(value) {
+				this.tranSportForm.customerId = value.customerId
+				this.customerName = value.customerName
+				this.selfDeliverShow = false
+			},
+			addSupercar(){
+				this.supercargoList.push({
+					driverName:"",
+					driverIdcard:"",
+					driverPhone:""
+				})
+			},
+			addDriver(){
+				this.driverList.push({
+					driverName:"",
+					driverIdcard:""
+				})
+			},
+			deleteSupercar(){
+				this.supercargoList.splice(this.supercargoList.length - 1, 1)
+			},
+			deleteDriver(){
+				this.driverList.splice(this.driverList.length - 1, 1);
+			},
 		}
 	};
 </script>
@@ -1128,10 +1603,34 @@
 				margin-right: vww(6);
 			}
 		}
+		.process-tran{
+			width: 300rpx;
+			height: 50rpx;
+			margin: 0 auto;
+			position: fixed;
+			top: 390rpx;
+			left: 37rpx;
+			display: flex;
+			align-items: center;
+			
+			.state-text {
+				margin-right: vww(6);
+			}
+		}
 
 		.car-type {
 			position: fixed;
 			top: 284rpx;
+			right: 20rpx;
+			width: 100%;
+			height: 50rpx;
+			display: flex;
+			align-items: center;
+			justify-content: flex-end;
+		}
+		.tran-type{
+			position: fixed;
+			top: 390rpx;
 			right: 20rpx;
 			width: 100%;
 			height: 50rpx;
@@ -1213,9 +1712,35 @@
 		}
 
 		.car-information {
+			margin-top: 30rpx;
 			width: 100%;
 			position: relative;
 			@include flex justify-content: center;
+			.roadTransportCertificate{
+				width: 690rpx;
+				background: #ffffff;
+				box-shadow: 0rpx 0rpx 14rpx 0rpx rgba(73, 120, 240, 0.14), 0rpx 7rpx 45rpx 0rpx rgba(73, 120, 240, 0.12);
+				border-radius: 20rpx;
+				.information-body {
+					width: 636rpx;
+					margin: vww(15) vww(14);
+					@include flex flex-direction: column;
+					.certificate {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						width: 636rpx;
+						height: 90rpx;
+						border-bottom: 1rpx solid #f0f1f6;
+						.certificate-left{
+							margin-left: 20rpx;
+						}
+						.certificate-right{
+							margin-right: 20rpx;
+						}
+					}
+				}
+			}
 
 			.information-main {
 				width: 690rpx;
@@ -1228,7 +1753,6 @@
 					width: 636rpx;
 					margin: vww(15) vww(14);
 					@include flex flex-direction: column;
-
 					.car-img {
 						height: 246rpx;
 						width: 100%;
@@ -1331,5 +1855,15 @@
 				}
 			}
 		}
+		.superList{
+			margin: 10rpx;
+			padding: 10rpx; 
+			border: 1px solid  #f0f1f6;
+		}
+		.adddelete{
+			display: flex;
+			justify-content: space-around;
+			margin: 10rpx;
+		}
 	}
 </style>
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 276b76e..1e3d86b 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -4,6 +4,7 @@
 		<!--鐢ㄦ埛鍚嶅瘑鐮佺櫥褰�-->
 		<user-password :btnText="0" />
 		<!-- 寰俊openid鐧诲綍 -->
+    <!--  #ifdef MP-WEIXIN  -->
 		<view class="loginBtn">
 			<u-button class="button"
 				@click.stop="beforeLoginEvent"
@@ -12,6 +13,7 @@
 				type="primary"
 				text="寰俊涓�閿櫥褰�"></u-button>
 		</view>
+    <!--  #endif  -->
 		<view class="utils-block">
 			<view @click="forgetPassword"><text>蹇樿瀵嗙爜?</text></view>
 			<view @click="PrivacyAgreementHandle"><text>鏂扮敤鎴锋敞鍐�</text></view>
@@ -21,6 +23,8 @@
 			<view class="copyright">鍐�涓兘婧愭棤浜哄�煎畧寰俊灏忕▼搴�</view>
 			<view class="copyright">灏忕▼搴忎粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳浣跨敤</view>
 		</view>
+
+    <!--  #ifdef MP-WEIXIN  -->
 		<!-- 寰俊鎺堟潈鍓嶇殑寮规 -->
 		<view class="loginPopup">
 			<u-popup :show="loginPopupShow"
@@ -55,6 +59,7 @@
 				@confirm="bindWxConfirm"
 				@cancel="bindWxCancel"></u-modal>
 		</view>
+    <!--  #endif  -->
 	</view>
 </template>
 
@@ -311,4 +316,4 @@
 			}
 		}
 	}
-</style>
\ No newline at end of file
+</style>
diff --git a/pages/login/userPassword.vue b/pages/login/userPassword.vue
index ffe870d..b3850b7 100644
--- a/pages/login/userPassword.vue
+++ b/pages/login/userPassword.vue
@@ -20,10 +20,13 @@
 					prefixIconStyle="font-size: 22px;color: #909399"></u--input>
 			</view>
 		</view>
-		<view class="loginBtn"><u-button type="primary"
+		<view class="loginBtn">
+      <u-button type="primary"
 				:text="btnText == 1 ? '缁戝畾' : '鐧诲綍'"
 				@click="submit()"
-				:loading="submitLoading"></u-button></view>
+				:loading="submitLoading">
+      </u-button>
+    </view>
 	</view>
 </template>
 
@@ -89,13 +92,15 @@
 								//鏌ヨ鐢ㄦ埛璇︾粏淇℃伅骞跺偍瀛�
 								this.$reqGet('getUserEntity')
 									.then(res => {
+                    console.log(res,'鐧诲綍淇℃伅----------')
 										this.$u.toast('鐧诲綍鎴愬姛');
 										this.setUserTabbar(res.data.type);
 										uni.setStorageSync('roleType', res.data.type);
 										uni.setStorageSync("userId", res.data.userId)
 										uni.setStorageSync("carNo", res.data.carNo)
+										uni.setStorageSync("userInfo", res.data)
 										setCustomerId(res.data.customerid);
-										setName(res.name);
+										setName(res.data.name);
 										uni.hideLoading();
 										//璺宠浆椤甸潰
 										this.$nextTick(() => {
@@ -150,4 +155,10 @@
 	.dengluBtn {
 		margin-top: 80rpx;
 	}
-</style>
\ No newline at end of file
+  /* #ifdef H5 */
+  .loginBtn{
+    width: 80%;
+    margin: 0 auto;
+  }
+  /* #endif */
+</style>
diff --git a/pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form.vue b/pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form.vue
new file mode 100644
index 0000000..a96e4c4
--- /dev/null
+++ b/pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form.vue
@@ -0,0 +1,164 @@
+<template>
+   <view class="edc-sampling-form-wrap">
+     <u--form
+         labelPosition="left"
+         :model="modelForm"
+         :rules="rules"
+         ref="uForm"
+         labelAlign="right"
+         labelWidth="20%"
+     >
+       <u-form-item
+           label="杞︾墝:"
+           prop="carNo"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.carNo"
+             border="none"
+         ></u--input>
+       </u-form-item>
+       <u-form-item
+           label="渚涘簲鍟�:"
+           prop="customerName"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.customerName"
+             border="none"
+         ></u--input>
+       </u-form-item>
+       <u-form-item
+           label="鎵规:"
+           prop="batchNumber"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.batchNumber"
+             border="none"
+         ></u--input>
+       </u-form-item>
+       <u-form-item
+           label="妫�楠屾棩鏈�:"
+           prop="startTime"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.startTime"
+             border="none"
+         ></u--input>
+       </u-form-item>
+       <u-form-item
+           label="閲囨牱鍦扮偣:"
+           prop="bunkerName"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.bunkerName"
+             border="none"
+         ></u--input>
+       </u-form-item>
+       <u-form-item
+           label="鍙栨牱浜�:"
+           prop="samplingPerson"
+           borderBottom
+           ref="item1"
+       >
+         <u--input
+             v-model="modelForm.samplingPerson"
+             border="none"
+         ></u--input>
+       </u-form-item>
+     </u--form>
+   </view>
+</template>
+
+<script>
+export default {
+  name: "edc-sampling-form",
+  data() {
+    return {
+      modelForm: {
+        id:'',
+        carNo:'',
+        customerName:'',
+        batchNumber: '',
+        startTime: '',
+        bunkerName:'',
+        samplingPerson: '',
+        type: 1,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+      },
+      checkId:'',
+      rules: {
+
+      }
+    }
+  },
+  onLoad(opt) {
+    if(opt.checkId) {
+      this.checkId = opt.checkId
+      console.log(this.checkId,'鎺ユ敹鍒颁笂涓〉闈紶杩囨潵鐨勫弬鏁�===')
+    }
+    this.getByIdAndSubList()
+  },
+  methods: {
+    getByIdAndSubList() {
+      uni.showLoading({
+        title:'鍔犺浇涓�'
+      })
+      // this.$reqGet2('getByIdAndSubList',this.checkId).then(res => {
+      //
+      // })
+      uni.request({  //鑾峰彇deptId
+        url: `/wrzs/zjqualitycheck/getByIdAndSubList/${this.checkId}`,
+        method: 'GET',
+        header: {
+          Authorization: 'Bearer' + ' ' + uni.getStorageSync('token'),
+          clientToc: 'Y',
+          'CLIENT_TOC': 'Y',
+        },
+        success: res => {
+          console.log(res,'res====')
+          if(res.data.code == 0) {
+            uni.hideLoading()
+            this.modelForm = res.data.data
+
+
+          }
+          // console.log(res,'shuj------')
+          // this.filedId = res.data?.data.length > 0 ? res.data.data[0].id : '';
+          // this.getFiledIdCoalBunker()
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.edc-sampling-form-wrap{
+  width: 100%;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+  ::v-deep{
+    .u-form{
+      padding-top: 20rpx;
+    }
+    .u-form-item{
+      margin-bottom: 20rpx;
+      .u-line {
+        border-bottom-width: 0!important;
+      }
+      .u-form-item__body__right{
+        padding-left: 20rpx;
+      }
+    }
+
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/edc-sampling/edc-sampling.vue b/pages/quality-inspection-page/edc-sampling/edc-sampling.vue
new file mode 100644
index 0000000..5303e78
--- /dev/null
+++ b/pages/quality-inspection-page/edc-sampling/edc-sampling.vue
@@ -0,0 +1,249 @@
+<template>
+   <view class="edc-sampling-wrap">
+     <view class="edc-sampling-main">
+       <view class="edc-sampling-card" v-for="(item,index) in edcList" :key="index">
+         <view class="edc-sampling-line">
+           <h1>{{item.carNo}}</h1>
+           <view class="status red" v-if="item.status">{{statusComputed(item.status)}}</view>
+         </view>
+         <view class="edc-sampling-line">
+           <h2>渚涘簲鍟嗭細{{item.customerName}}</h2>
+         </view>
+         <view class="edc-sampling-btn-box">
+          <!--    checkId 娌℃湁鍊� 鍒涘缓EDC璐ㄦ鍗曟樉绀�       -->
+           <view class="watch" v-if="!item.checkId">
+              <u-button @click.native.stop="handleEDCClick(item)" type="primary">鍒涘缓EDC璐ㄦ鍗�</u-button>
+           </view>
+
+          <view class="watch" v-else>
+             <u-button @click.native.stop="handleWatchClick(item)" type="primary">鏌ョ湅</u-button>
+          </view>
+         </view>
+       </view>
+       <view class="isOver" v-if="flag">------鎴戞槸鏈夊簳绾跨殑------</view>
+<!--       <view class="edc-sampling-card">-->
+<!--         <view class="edc-sampling-line">-->
+<!--           <h1>鍐�DE9Y75</h1>-->
+<!--           <view class="status yellow">寰呰川妫�</view>-->
+<!--         </view>-->
+<!--         <view class="edc-sampling-line">-->
+<!--           <h2>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h2>-->
+<!--         </view>-->
+<!--         <view class="edc-sampling-btn-box">-->
+<!--           <view class="watch">-->
+<!--             <u-button type="primary">鍒涘缓EDC璐ㄦ鍗�</u-button>-->
+<!--           </view>-->
+<!--&lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+<!--&lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+<!--&lt;!&ndash;           </view>&ndash;&gt;-->
+<!--         </view>-->
+<!--       </view>-->
+<!--       <view class="edc-sampling-card">-->
+<!--         <view class="edc-sampling-line">-->
+<!--           <h1>鍐�DE9Y75</h1>-->
+<!--           <view class="status">寰呰川妫�</view>-->
+<!--         </view>-->
+<!--         <view class="edc-sampling-line">-->
+<!--           <h2>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h2>-->
+<!--         </view>-->
+<!--         <view class="edc-sampling-btn-box">-->
+<!--           <view class="watch">-->
+<!--             <u-button type="primary">鍒涘缓EDC璐ㄦ鍗�</u-button>-->
+<!--           </view>-->
+<!--&lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+<!--&lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+<!--&lt;!&ndash;           </view>&ndash;&gt;-->
+<!--         </view>-->
+<!--       </view>-->
+     </view>
+   </view>
+</template>
+
+<script>
+export default {
+  name: "edc-sampling",
+  data() {
+    return {
+      edcList:[],
+      size:10,
+      current:1,
+      total:0,
+      flag:false,
+      productId:'1791273012817821697',  // EDC浼爌roductId:1791273012817821697
+    }
+  },
+  onShow() {
+    this.edcList = []
+    this.current = 1
+    this.getPageList()
+  },
+  methods: {
+    statusComputed(status) {
+      if(status == 1) {
+        return '宸插彇鏍�'
+      }else if(status == 2) {
+        return '璐ㄦ涓�'
+      }else if(status == 3) {
+        return '寰呭鏍�'
+      }else if(status == 4) {
+        return '澶嶆牳涓�'
+      }else if(status == 5) {
+        return '寰呭瀹�'
+      }else if(status == 6) {
+        return '瀹″畾涓�'
+      }else if(status == 7) {
+        return '宸插畬鎴�'
+      }else {
+        return ''
+      }
+    },
+    async getPageList(callBack) {
+      uni.showLoading({
+        title: "鍔犺浇涓�"
+      })
+      // this.$reqGet('pageList').then(res => {
+      //   console.log(res,'鍘熺洂閽欓晛----')
+      //   if(res.code == 0) {
+      //     uni.hideLoading()
+      //     this.edcList = [...this.edcList,...res.data.records]
+      //   }else {
+      //     uni.hideLoading()
+      //   }
+      // })
+      try{
+        const res = await this.$reqGet('getTaskCoalOfNoDetection',{current:this.current,size:this.size,productId:this.productId})
+        uni.hideLoading()
+        this.edcList = [...this.edcList,...res.data.records]
+        this.total = res.data.total
+        callBack && callBack()
+      }catch (err) {
+        uni.hideLoading()
+        console.log(err,'err')
+      }
+    },
+    onReachBottom() { //涓婃媺鍔犺浇
+      console.log('涓婃媺鍔犺浇------')
+      if(this.edcList.length < this.current*this.size) return this.flag = true
+      this.current ++;
+      this.getPageList()
+    },
+    onPullDownRefresh() {  //涓嬫媺鍒锋柊
+      console.log()
+      this.current = 1
+      this.edcList = []
+      setTimeout(() => {
+        this.getPageList(() => {
+          uni.stopPullDownRefresh()
+        })
+      },1000)
+    },
+    handleWatchClick(item) {  //鏌ョ湅璇︽儏
+      console.log(item,'item=====')
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/edc-sampling/edc-sampling-form/edc-sampling-form?checkId='+item.checkId
+      })
+    },
+    handleEDCClick(item) {  //鍒涘缓EDC璐ㄦ鍗�
+      uni.showModal({
+        title: '纭',
+        content: '纭鍒涘缓EDC璐ㄦ鍗曞悧',
+        success: (res) => {
+          if(res.confirm) {
+            //璋冪敤鎺ュ彛
+            this.$reqPost('edcSampling',item,'json').then(res => {
+              console.log(res,'res=====-----')
+              if(res.code == 0) {
+                this.$u.toast('鍒涘缓鎴愬姛');
+                this.edcList = []
+                this.getPageList()
+              }
+            })
+
+          }else if(res.cancel){
+            return true
+          }
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.edc-sampling-wrap{
+  width: 100%;
+  .edc-sampling-main{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    padding: 20rpx;
+    box-sizing: border-box;
+    .edc-sampling-card{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      padding: 30rpx;
+      box-sizing: border-box;
+      margin-top: 20rpx;
+      .edc-sampling-line{
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: baseline;
+        h1{
+          font-size: 34rpx;
+          color: #1c1c1c;
+          font-weight: 550;
+          line-height: 2;
+        }
+        h2{
+          font-size: 30rpx;
+          color: #515151;
+          line-height: 2;
+        }
+        .status{
+          color: #184edd;
+          border: 1px solid #184edd;
+          border-radius: 10rpx;
+          font-size: 28rpx;
+          padding: 0 10rpx;
+          display: flex;
+          align-self: baseline;
+        }
+        .red{
+          color: #f56c6c;
+          border: 1px solid #f56c6c;
+        }
+        .yellow{
+          color: #f9ae3d;
+          border: 1px solid #f9ae3d;
+        }
+      }
+      .edc-sampling-btn-box{
+        display: flex;
+        justify-content: flex-end;
+        margin-top:20rpx;
+        ::v-deep{
+          .u-button{
+            border-radius: 50rpx;
+            margin: 0 10rpx;
+            padding: 0 40rpx;
+            @include commonBtn;
+          }
+        }
+        .watch{
+          margin: 0 15rpx;
+        }
+      }
+    }
+  }
+}
+
+
+</style>
diff --git a/pages/quality-inspection-page/qualityIndex/qualityIndex.vue b/pages/quality-inspection-page/qualityIndex/qualityIndex.vue
new file mode 100644
index 0000000..26d031d
--- /dev/null
+++ b/pages/quality-inspection-page/qualityIndex/qualityIndex.vue
@@ -0,0 +1,106 @@
+<template>
+   <view class="qualityIndex-wrap">
+     <div class="qualityIndex-button">
+       <view class="quality-button">
+         <u-button @click="handleEDCClick" class="quality-button" type="primary">EDC鍙栨牱</u-button>
+       </view>
+       <view class="quality-button">
+         <u-button @click="handleGaiMeiClick" class="quality-button" type="primary">鍘熺洂閽欓晛鍙栨牱</u-button>
+       </view>
+       <view class="quality-button">
+         <u-button @click="handleTOCClick" class="quality-button" type="primary">鍘熺洂TOC鍙栨牱</u-button>
+       </view>
+       <view class="quality-button">
+         <u-button @click="handleSalTotalClick" class="quality-button" type="primary">鍘熺洂鍏ㄦ</u-button>
+       </view>
+       <view class="quality-button">
+         <u-button @click="handleSymbNaClick" class="quality-button" type="primary">姘㈡哀鍖栭挔鍙栨牱</u-button>
+       </view>
+     </div>
+
+   </view>
+</template>
+
+<script>
+export default {
+  name: "qualityIndex",
+  data() {
+    return{
+
+    }
+  },
+  onLoad() {
+    this.init()
+    console.log('鎬庝箞杩涗笉鏉ュ憿==============')
+  },
+  methods: {
+    init() {
+      this.getBunkerList()
+    },
+    getBunkerList() {
+      console.log('鎴戣繘鏉ヤ簡-----')
+      this.$store.dispatch('getBunkerList')
+    },
+    handleEDCClick() {  //EDC鍙栨牱
+     uni.navigateTo({
+       url: '/pages/quality-inspection-page/edc-sampling/edc-sampling'
+     })
+    },
+    handleGaiMeiClick() {  //鍘熺洂閽欓晛
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling'
+      })
+    },
+    handleTOCClick() { //TOC
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/toc-sampling/toc-sampling'
+      })
+    },
+    handleSalTotalClick() { //鍘熺洂鍏ㄦ
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling'
+      })
+    },
+    handleSymbNaClick() {  //姘㈡哀鍖栭挔鍙栨牱
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling'
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.qualityIndex-wrap{
+  width: 100vw;
+  display: flex;
+  padding: 40rpx 20rpx 0 20rpx;
+  box-sizing: border-box;
+  flex-wrap: wrap;
+  height: vww(20);
+  .qualityIndex-button{
+    display: flex;
+    flex-wrap: wrap;
+    margin-top: 80rpx;
+  }
+  .quality-button{
+    width: calc(50vw - 60rpx);
+    margin: 20rpx;
+    ::v-deep{
+      .u-button{
+        margin: 0 10rpx;
+        padding: 0 50rpx;
+        @include commonBtn(68);
+      }
+    }
+  }
+}
+.custom-style{
+  width: 100vw;
+}
+</style>
diff --git a/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form.vue b/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form.vue
new file mode 100644
index 0000000..822cdc3
--- /dev/null
+++ b/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form.vue
@@ -0,0 +1,376 @@
+<template>
+  <view class="edc-sampling-form-wrap">
+    <u--form
+        labelPosition="left"
+        :model="modelForm"
+        :rules="rules"
+        ref="uForm"
+        labelAlign="right"
+        labelWidth="20%"
+    >
+      <u-form-item
+          label="鎵瑰彿:"
+          prop="batchNumber"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.batchNumber"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="渚涘簲鍟�:"
+          prop="customerId"
+          borderBottom
+          ref="item1"
+      >
+        <jp-select-plus
+            :isLineFeed="false"
+            isSearch
+            color="#497bfb"
+            placeholder="璇烽�夋嫨"
+            v-model="modelForm.customerId"
+            @toConfirm="toConfirmHandle"
+            :list="customerIdList"></jp-select-plus>
+        <!--        <u-cell-group>-->
+        <!--          <u-cell-->
+        <!--                  value="璇烽�夋嫨"-->
+        <!--                  @click="handleCustomerIdClick">-->
+        <!--            <u-icon name="arrow-right"-->
+        <!--                    slot="right-icon"-->
+        <!--                    size="30"></u-icon></u-cell>-->
+        <!--        </u-cell-group>-->
+        <!--        <u&#45;&#45;input-->
+        <!--            v-model="modelForm.customerId"-->
+        <!--            border="none"-->
+        <!--            -->
+        <!--        ></u&#45;&#45;input>-->
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鍦扮偣:"
+          prop="bunkerName"
+          borderBottom
+          ref="item1"
+      >
+        <u-cell-group>
+          <u-cell
+              value="璇烽�夋嫨"
+              @click="handleBunkerIdClick">
+            <view slot="value" class="u-slot-value">
+              <u--input
+                  v-model="modelForm.bunkerName"
+                  border="none"
+              ></u--input>
+            </view>
+          </u-cell>
+        </u-cell-group>
+
+      </u-form-item>
+      <u-form-item
+          label="鍚� 鏁�:(鍚�)"
+          prop="tonnage"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            @change="inputVal"
+            v-model="modelForm.tonnage"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鏃ユ湡:"
+          prop="samplingTime"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingTime"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱浜�:"
+          prop="samplingPerson"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingPerson"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <div class="sumbmit-box">
+        <u-button @click="handleSubmit" type="primary" v-if="submitShow">纭� 瀹�</u-button>
+      </div>
+    </u--form>
+    <view class="meicang-box">
+      <u-action-sheet
+          @select="selectBunker"
+          :show="bunkerShow"
+          :actions="bunkerList">
+      </u-action-sheet>
+    </view>
+  </view>
+</template>
+
+<script>
+import { todayDate } from '@/utils/util.js';
+import {getStatesOne} from "../../../../utils/status";
+import { BaseUrl } from '@/api/request.js'
+export default {
+  name: "yanGaiMei-sampling-form",
+  components: {
+  },
+  data() {
+    return {
+      submitShow:true,
+      customerIdList: [],
+      bunkerShow: false,
+      bunkerList:[],
+      modelForm: {
+        id:'',
+        batchNumber:'',
+        customerId:'',  //渚涘簲鍟�
+        customerName:'',  //渚涘簲鍟�
+        samplingTime: '', //閲囬泦鏃ユ湡
+        tonnage:null,
+        bunkerId:'',
+        bunkerName:'',
+        samplingPerson: '',
+        type: 8,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+      },
+      filedId:'',
+      customerIdShow: false,
+      customerFormVisable: false,  //瀹㈡埛寮规
+      deptId:'',
+      rules: {
+        batchNumber:[{
+          type: 'string',
+          required: true,
+          message: '璇峰~鍐欐壒鍙�',
+          trigger: ['blur', 'change']
+        }],
+        customerId:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨渚涘簲鍟�',
+          trigger: ['blur', 'change']
+        }],
+        bunkerName:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨閲囨牱鍦扮偣',
+          trigger: ['blur', 'change']
+        }],
+        tonnage:[{
+          type: 'string',
+          required: true,
+          message: '璇疯緭鍏ュ惃鏁�',
+          trigger: ['blur', 'change']
+        }]
+      }
+    }
+  },
+  computed: {
+    samplingPerson() {
+      return uni.getStorageSync('nameKey');
+    }
+  },
+  onReady() {
+    //濡傛灉闇�瑕佸吋瀹瑰井淇″皬绋嬪簭锛屽苟涓旀牎楠岃鍒欎腑鍚湁鏂规硶绛夛紝鍙兘閫氳繃setRules鏂规硶璁剧疆瑙勫垯銆�
+    this.$refs.uForm.setRules(this.rules)
+  },
+  onLoad(opt) {
+
+    if(opt.params) {  //鏌ョ湅
+      this.submitShow = false
+      this.modelForm = Object.assign({},JSON.parse(opt.params))
+      console.log(this.modelForm,'鎺ユ敹鍒颁笂涓〉闈紶杩囨潵鐨勫弬鏁�===')
+      return
+    }
+    this.modelForm.samplingTime = todayDate(); //褰撳墠鏃堕棿
+    this.modelForm.samplingPerson = uni.getStorageSync('name')
+    this.deptId = uni.getStorageSync('userInfo').deptIds
+    console.log(uni.getStorageSync('userInfo'),'userInfo==========')
+    console.log(this.deptId,'deptId==========')
+    this.getClaimCustomerList()
+    if(uni.getStorageSync('bunkerList')) {  //缂撳瓨鏈夋暟鎹嬁鏁版嵁
+      this.bunkerList = uni.getStorageSync('bunkerList')
+    }else {  //娌℃嬁鍒版暟鎹皟涓�閬嶆帴鍙�
+      this.$store.dispatch('getBunkerList')
+    }
+    // console.log(getStatus('roleType'),'roleType-----')
+    // console.log(getStatus('customerId'),'customerId-----')
+    // console.log(getStatus('userInfo'),'userInfo-----')
+    // console.log(uni.getStorageSync('name'),'userInfo-----')
+
+  },
+  methods: {
+    getClaimCustomerList() {  //渚涘簲鍟嗗垪琛�  type 绫诲瀷 0/澶栭儴 1/鍐呴儴(鍖栭獙鍗曠殑灞炰簬澶栭儴瀹㈡埛)
+      this.$reqGet('getClaimCustomerList',{type:'0'}).then(res => {
+        console.log(res,'渚涘簲鍟嗛偅涓�=====')
+        if(res.code == 0) {
+          this.customerIdList = res.data.map(item => {
+            return {
+              code:item.id,
+              name: item.name
+            }
+          })
+        }
+      })
+    },
+    handleBunkerIdClick() {  //鎵撳紑鍙栨牱鍦扮偣寮规
+      this.bunkerShow = true
+    },
+    selectBunker(v) { //閲囨牱鍦扮偣
+      console.log(v,'v======')
+      this.modelForm.bunkerId = v.id
+      this.modelForm.bunkerName = v.name
+      this.bunkerShow = false
+    },
+    toConfirmHandle(v) {  //渚涘簲鍟�
+      console.log(v,'v====渚涘簲鍟�==')
+      if(v) {
+        this.modelForm.customerName = v[0].name
+        this.modelForm.customerId = v[0].code
+      }
+      this.$refs.uForm.validateField('customerId')
+    },
+    handleSubmit() {  //纭畾
+      console.log(this.modelForm,'this.modelForm===')
+      uni.showLoading({
+        title: '鍔犺浇涓�'
+      })
+      this.$refs.uForm.validate().then(res => {
+        this.$reqPost('rawSaltsSampling',this.modelForm,'json').then(res => {
+          if(res) {
+            uni.hideLoading();
+            this.$u.toast('娣诲姞鎴愬姛');
+            uni.redirectTo({
+              url: '/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling'
+            })
+          }
+
+        })
+      }).catch(err => {
+        uni.hideLoading();
+      })
+
+    },
+    inputVal(val) {
+      let temp = val.replace(/[^0-9.]+/g,'')
+      this.$nextTick(() => {
+        this.modelForm.tonnage = temp
+      })
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.edc-sampling-form-wrap{
+  width: 100%;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+  ::v-deep{
+    .pop-main{
+      height: 78vh!important;
+      transition: all 0.3s;
+    }
+    .u-action-sheet__item-wrap__item{
+      padding: 0 20rpx;
+      align-items: flex-start;
+      min-height: 160rpx;
+      max-height: 600rpx;
+      text{
+        font-size: 28rpx;
+      }
+    }
+    .u-popup__content{
+      .u-line{
+        border-bottom-width: 0px!important;
+      }
+    }
+    .u-form{
+      padding-top: 20rpx;
+    }
+    .u-form-item{
+      margin-bottom: 20rpx;
+      .u-transition{
+        min-height: 100vh;
+        max-height: 400vh;
+        height: 200rpx!important;
+      }
+      .u-line {
+        width: calc(80% - 20rpx)!important;
+        padding-left: 20rpx;
+        align-self: flex-end!important;
+        border-color: #e5e5e5!important;
+      }
+      .u-cell-group{
+        .u-line{
+          border-width: 0px!important;
+        }
+        .u-cell__body{
+          padding: 0!important;
+          align-items: flex-start;
+        }
+        .u-cell__body__content{
+          flex: initial;
+        }
+      }
+      .showData-field-line{
+        padding: 0!important;
+      }
+      .isLine::after{
+        border-width: 0px;
+      }
+      .u-form-item__body__right{
+        padding-left: 20rpx;
+      }
+    }
+  }
+  .sumbmit-box{
+    margin-top: 60rpx;
+    width: 100%;
+    display:flex;
+    justify-content:center;
+    ::v-deep{
+      .u-button{
+        border-radius: 50rpx;
+        margin: 0 10rpx;
+        padding: 0 50rpx;
+        box-sizing: border-box;
+        height: 68rpx;
+        width: 80%;
+        @include commonBtn(72rpx);
+      }
+    }
+  }
+}
+
+.customer-form-wrap{
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  ::v-deep{
+    .u-input{
+      border: 1px solid #f5f5f5;
+    }
+    .u-transition{
+      max-height: 80%;
+      overflow-y: auto;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling.vue b/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling.vue
new file mode 100644
index 0000000..41a4a76
--- /dev/null
+++ b/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling.vue
@@ -0,0 +1,276 @@
+<template>
+  <view class="yanGaiMei-sampling-wrap">
+    <div class="edc-sampling-main">
+      <view class="yanGaiMei-sampling-add">
+        <view class="add-box" @click="addYanGaiMeiForm">
+          <u-image src="/static/image/quality/addIcon.png" mode="widthFix"></u-image>
+          <h1>娣诲姞鍘熺洂鍏ㄦ鍙栨牱</h1>
+        </view>
+      </view>
+      <div class="edc-sampling-main-inside">
+        <view class="edc-sampling-card" v-for="item in edcList" :key="item.id">
+          <view class="edc-sampling-line">
+            <h1>渚涘簲鍟嗭細{{item.customerName}}</h1>
+            <view class="status" v-if="item.status">{{statusComputed(item.status)}}</view>
+          </view>
+          <view class="edc-sampling-line">
+            <h2>閲囨牱鍦扮偣锛歿{item.bunkerName}}</h2>
+          </view>
+          <view class="edc-sampling-btn-box">
+            <view class="watch">
+              <u-button type="primary" @click="handleWatchClick(item)">鏌ョ湅</u-button>
+            </view>
+            <!--           <view class="watch">-->
+            <!--             <u-button type="primary" :plain="true">鏌ョ湅</u-button>-->
+            <!--           </view>-->
+          </view>
+        </view>
+        <view class="isOver" v-if="flag">------鎴戞槸鏈夊簳绾跨殑------</view>
+        <!--         <view class="edc-sampling-card">-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h1>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h1>-->
+        <!--             <view class="status yellow">寰呰川妫�</view>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h2>閲囨牱鍦扮偣锛氱煶瀹跺簞甯傝穬杩涜矾澶╁厓鍟嗗姟澶у帵</h2>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-btn-box">-->
+        <!--             <view class="watch">-->
+        <!--               <u-button type="primary" @click="handleWatchClick">鏌ョ湅</u-button>-->
+        <!--             </view>-->
+        <!--             &lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+        <!--             &lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+        <!--             &lt;!&ndash;           </view>&ndash;&gt;-->
+        <!--           </view>-->
+        <!--         </view>-->
+      </div>
+    </div>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "salt-total-sampling",
+  components: {},
+
+  data() {
+    return {
+      edcList:[],
+      size:10,
+      current:1,
+      total:0,
+      flag:false,
+      type:8,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+    }
+  },
+  onShow() {
+    this.edcList = []
+    this.current = 1
+    this.getPageList()
+  },
+  methods: {
+    statusComputed(status) {
+      if(status == 1) {
+        return '宸插彇鏍�'
+      }else if(status == 2) {
+        return '璐ㄦ涓�'
+      }else if(status == 3) {
+        return '寰呭鏍�'
+      }else if(status == 4) {
+        return '澶嶆牳涓�'
+      }else if(status == 5) {
+        return '寰呭瀹�'
+      }else if(status == 6) {
+        return '瀹″畾涓�'
+      }else if(status == 7) {
+        return '宸插畬鎴�'
+      }else {
+        return ''
+      }
+    },
+    async getPageList(callBack) {
+      uni.showLoading({
+        title: "鍔犺浇涓�"
+      })
+      // this.$reqGet('pageList').then(res => {
+      //   console.log(res,'鍘熺洂閽欓晛----')
+      //   if(res.code == 0) {
+      //     uni.hideLoading()
+      //     this.edcList = [...this.edcList,...res.data.records]
+      //   }else {
+      //     uni.hideLoading()
+      //   }
+      // })
+      try{
+        const res = await this.$reqGet('pageList',{current:this.current,size:this.size,type:this.type})
+        uni.hideLoading()
+        this.edcList = [...this.edcList,...res.data.records]
+        this.total = res.data.total
+        callBack && callBack()
+      }catch (err) {
+        uni.hideLoading()
+        console.log(err,'err')
+      }
+    },
+    onReachBottom() { //涓婃媺鍔犺浇
+      console.log('涓婃媺鍔犺浇------')
+      console.log('this.size------',this.size)
+      console.log('this.current------',this.current)
+      console.log('this.edcList.length------',this.edcList.length)
+      if(this.edcList.length < this.current*this.size) return this.flag = true
+      this.current ++;
+      this.getPageList()
+    },
+    onPullDownRefresh() {  //涓嬫媺鍒锋柊
+      console.log()
+      this.flag = false
+      this.current = 1
+      this.edcList = []
+      setTimeout(() => {
+        this.getPageList(() => {
+          uni.stopPullDownRefresh()
+        })
+      },1000)
+    },
+
+    handleWatchClick(item) {  //鏌ョ湅璇︽儏
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form?params='+JSON.stringify(item)
+      })
+    },
+    addYanGaiMeiForm() {  //鏂板
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/salt-total-sampling/salt-total-sampling-form/salt-total-sampling-form'
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.yanGaiMei-sampling-wrap{
+  width: 100%;
+  .edc-sampling-main{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    padding: 30rpx 20rpx;
+    box-sizing: border-box;
+    .edc-sampling-main-inside{
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .yanGaiMei-sampling-add{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      display: flex;
+      justify-content: center;
+      padding: 20rpx 0;
+      box-sizing: border-box;
+      position: sticky;
+      top: 10rpx;
+      z-index: 999;
+      .add-box{
+        display: flex;
+        align-content:center;
+        ::v-deep {
+          .u-image{
+            width: auto!important;
+            height: auto!important;
+          }
+          .u-image__image{
+            width: 60rpx!important;
+            height: 60rpx!important;;
+          }
+        }
+        h1{
+          font-size: 30rpx;
+          color: #fcbd20;
+          margin-left: 30rpx;
+          align-self: center;
+          display: flex;
+        }
+      }
+    }
+    .edc-sampling-card{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      padding: 30rpx;
+      box-sizing: border-box;
+      margin-top: 20rpx;
+      .edc-sampling-line{
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: baseline;
+        h1{
+          font-size: 34rpx;
+          color: #1c1c1c;
+          font-weight: 550;
+          line-height: 2;
+          width: calc(100% - 124rpx);
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        h2{
+          font-size: 30rpx;
+          color: #515151;
+          line-height: 2;
+        }
+        .status{
+          color: #184edd;
+          border: 1px solid #184edd;
+          border-radius: 10rpx;
+          font-size: 28rpx;
+          padding: 0 10rpx;
+          display: flex;
+          align-self: baseline;
+        }
+        .red{
+          color: #f56c6c;
+          border: 1px solid #f56c6c;
+        }
+        .yellow{
+          color: #f9ae3d;
+          border: 1px solid #f9ae3d;
+        }
+      }
+      .edc-sampling-btn-box{
+        display: flex;
+        justify-content: flex-end;
+        margin-top:20rpx;
+        ::v-deep{
+          .u-button{
+            border-radius: 50rpx;
+            margin: 0 10rpx;
+            padding: 0 50rpx;
+            @include commonBtn
+          }
+        }
+        .watch{
+          margin: 0 15rpx;
+        }
+      }
+    }
+    .isOver{
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      padding: 40rpx 0;
+      font-size: 30rpx;
+      color: #999999;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form.vue b/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form.vue
new file mode 100644
index 0000000..e33f6e6
--- /dev/null
+++ b/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form.vue
@@ -0,0 +1,330 @@
+<template>
+  <view class="symbNa-sampling-form">
+    <u--form
+        labelPosition="left"
+        :model="modelForm"
+        :rules="rules"
+        ref="uForm"
+        labelAlign="right"
+        labelWidth="20%"
+    >
+      <u-form-item
+          label="鎵瑰彿:"
+          prop="batchNumber"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.batchNumber"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鍦扮偣:"
+          prop="bunkerName"
+          borderBottom
+          ref="item1"
+      >
+        <u-cell-group>
+          <u-cell
+              value="璇烽�夋嫨"
+              @click="handleBunkerIdClick">
+            <view slot="value" class="u-slot-value">
+              <u--input
+                  v-model="modelForm.bunkerName"
+                  border="none"
+              ></u--input>
+            </view>
+          </u-cell>
+        </u-cell-group>
+
+      </u-form-item>
+      <u-form-item
+          label="澶栬:"
+          prop="exterior"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.exterior"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囩敤鏍囧噯:"
+          prop="executionStandards"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.executionStandards"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱浜�:"
+          prop="name"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingPerson"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鏃ユ湡:"
+          prop="samplingTime"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingTime"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <div class="sumbmit-box">
+        <u-button @click="handleSubmit" v-if="submitShow" type="primary">纭� 瀹�</u-button>
+      </div>
+    </u--form>
+    <view class="meicang-box">
+      <u-action-sheet
+          @select="selectBunker"
+          :show="bunkerShow"
+          :actions="bunkerList">
+      </u-action-sheet>
+    </view>
+  </view>
+</template>
+
+<script>
+import { todayDate } from '@/utils/util.js';
+import {getStatesOne} from "../../../../utils/status";
+import { BaseUrl } from '@/api/request.js'
+export default {
+  name: "yanGaiMei-sampling-form",
+  components: {
+  },
+  data() {
+    return {
+      submitShow:true,
+      customerIdList: [],
+      bunkerShow: false,
+      bunkerList:[],
+      modelForm: {
+        id:'',
+        batchNumber:'',
+        samplingTime: '', //閲囬泦鏃ユ湡
+        bunkerId:'',
+        bunkerName:'',
+        samplingPerson: '',
+        exterior:'鏃犺壊閫忔槑绮樼娑蹭綋',  //澶栬
+        executionStandards:'GB/T209-2018',
+        type: 4,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+      },
+      filedId:'',
+      customerIdShow: false,
+      customerFormVisable: false,  //瀹㈡埛寮规
+      deptId:'',
+      rules: {
+        batchNumber:[{
+          type: 'string',
+          required: true,
+          message: '璇峰~鍐欐壒鍙�',
+          trigger: ['blur', 'change']
+        }],
+        bunkerName:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨閲囨牱鍦扮偣',
+          trigger: ['blur', 'change']
+        }]
+      }
+    }
+  },
+  computed: {
+    samplingPerson() {
+      return uni.getStorageSync('nameKey');
+    }
+  },
+  onReady() {
+    //濡傛灉闇�瑕佸吋瀹瑰井淇″皬绋嬪簭锛屽苟涓旀牎楠岃鍒欎腑鍚湁鏂规硶绛夛紝鍙兘閫氳繃setRules鏂规硶璁剧疆瑙勫垯銆�
+    this.$refs.uForm.setRules(this.rules)
+  },
+  onLoad(opt) {
+    if(opt.params) {  //鏌ョ湅
+      this.submitShow = false
+      this.modelForm = Object.assign({},JSON.parse(opt.params))
+      console.log(this.modelForm,'鎺ユ敹鍒颁笂涓〉闈紶杩囨潵鐨勫弬鏁�===姘㈡哀鍖栭挔')
+      return
+    }
+    this.modelForm.samplingTime = todayDate(); //褰撳墠鏃堕棿
+    this.modelForm.samplingPerson = uni.getStorageSync('name')
+    this.deptId = uni.getStorageSync('userInfo').deptIds
+    console.log(uni.getStorageSync('userInfo'),'userInfo==========')
+    console.log(this.deptId,'deptId==========')
+    this.getClaimCustomerList()
+    if(uni.getStorageSync('bunkerList')) {  //缂撳瓨鏈夋暟鎹嬁鏁版嵁
+      this.bunkerList = uni.getStorageSync('bunkerList')
+    }else {  //娌℃嬁鍒版暟鎹皟涓�閬嶆帴鍙�
+      this.$store.dispatch('getBunkerList')
+    }
+    // console.log(getStatus('roleType'),'roleType-----')
+    // console.log(getStatus('customerId'),'customerId-----')
+    // console.log(getStatus('userInfo'),'userInfo-----')
+    // console.log(uni.getStorageSync('name'),'userInfo-----')
+
+  },
+  methods: {
+    getClaimCustomerList() {  //渚涘簲鍟嗗垪琛�  type 绫诲瀷 0/澶栭儴 1/鍐呴儴(鍖栭獙鍗曠殑灞炰簬澶栭儴瀹㈡埛)
+      this.$reqGet('getClaimCustomerList',{type:'0'}).then(res => {
+        console.log(res,'渚涘簲鍟嗛偅涓�=====')
+        if(res.code == 0) {
+          this.customerIdList = res.data.map(item => {
+            return {
+              code:item.id,
+              name: item.name
+            }
+          })
+        }
+      })
+    },
+    handleBunkerIdClick() {  //鎵撳紑鍙栨牱鍦扮偣寮规
+      this.bunkerShow = true
+    },
+    selectBunker(v) { //閲囨牱鍦扮偣
+      console.log(v,'v======')
+      this.modelForm.bunkerId = v.id
+      this.modelForm.bunkerName = v.name
+      this.bunkerShow = false
+    },
+    handleSubmit() {  //纭畾
+      console.log(this.modelForm,'this.modelForm===')
+      uni.showLoading({
+        title: '鍔犺浇涓�'
+      })
+      this.$refs.uForm.validate().then(res => {
+        this.$reqPost('zjqualitycheck',this.modelForm,'json').then(res => {
+          if(res) {
+            uni.hideLoading();
+            this.$u.toast('娣诲姞鎴愬姛');
+            uni.redirectTo({
+              url: '/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling'
+            })
+          }
+
+        })
+      }).catch(err => {
+        uni.hideLoading();
+      })
+
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.symbNa-sampling-form{
+  width: 100%;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+  ::v-deep{
+    .pop-main{
+      height: 78vh!important;
+      transition: all 0.3s;
+    }
+    .u-action-sheet__item-wrap__item{
+      padding: 0;
+      align-items: flex-start;
+      min-height: 160rpx;
+      max-height: 600rpx;
+      text{
+        font-size: 28rpx;
+      }
+    }
+    .u-popup__content{
+      .u-line{
+        border-bottom-width: 0px!important;
+      }
+    }
+    .u-form{
+      padding-top: 20rpx;
+    }
+    .u-form-item{
+      margin-bottom: 20rpx;
+      .u-transition{
+        min-height: 100vh;
+        max-height: 400vh;
+        height: 200rpx!important;
+      }
+      .u-line {
+        width: calc(80% - 20rpx)!important;
+        padding-left: 20rpx;
+        align-self: flex-end!important;
+        border-color: #e5e5e5!important;
+      }
+      .u-cell-group{
+        .u-line{
+          border-width: 0px!important;
+        }
+        .u-cell__body{
+          padding: 0!important;
+          align-items: flex-start;
+        }
+        .u-cell__body__content{
+          flex: initial;
+        }
+      }
+      .showData-field-line{
+        padding: 0!important;
+      }
+      .isLine::after{
+        border-width: 0px;
+      }
+      .u-form-item__body__right{
+        padding-left: 20rpx;
+      }
+    }
+  }
+  .sumbmit-box{
+    margin-top: 60rpx;
+    width: 100%;
+    display:flex;
+    justify-content:center;
+    ::v-deep{
+      .u-button{
+        border-radius: 50rpx;
+        margin: 0 10rpx;
+        padding: 0 50rpx;
+        box-sizing: border-box;
+        height: 68rpx;
+        width: 80%;
+        @include commonBtn(72rpx);
+      }
+    }
+  }
+}
+
+.customer-form-wrap{
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  ::v-deep{
+    .u-input{
+      border: 1px solid #f5f5f5;
+    }
+    .u-transition{
+      max-height: 80%;
+      overflow-y: auto;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling.vue b/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling.vue
new file mode 100644
index 0000000..6cf91c9
--- /dev/null
+++ b/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling.vue
@@ -0,0 +1,275 @@
+<template>
+  <view class="symbNa-sampling-wrap">
+    <div class="edc-sampling-main">
+      <view class="yanGaiMei-sampling-add">
+        <view class="add-box" @click="addYanGaiMeiForm">
+          <u-image src="/static/image/quality/addIcon.png" mode="widthFix"></u-image>
+          <h1>娣诲姞姘㈡哀鍖栭挔鍙栨牱</h1>
+        </view>
+      </view>
+      <div class="edc-sampling-main-inside">
+        <view class="edc-sampling-card" v-for="item in edcList" :key="item.id">
+          <view class="edc-sampling-line">
+            <h1>鎵瑰彿锛歿{item.batchNumber}}</h1>
+            <view class="status" v-if="item.status">{{statusComputed(item.status)}}</view>
+          </view>
+          <view class="edc-sampling-line">
+            <h2>閲囨牱鍦扮偣锛歿{item.bunkerName}}</h2>
+          </view>
+          <view class="edc-sampling-btn-box">
+            <view class="watch">
+              <u-button type="primary" @click="handleWatchClick(item)">鏌ョ湅</u-button>
+            </view>
+            <!--           <view class="watch">-->
+            <!--             <u-button type="primary" :plain="true">鏌ョ湅</u-button>-->
+            <!--           </view>-->
+          </view>
+        </view>
+        <view class="isOver" v-if="flag">------鎴戞槸鏈夊簳绾跨殑------</view>
+        <!--         <view class="edc-sampling-card">-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h1>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h1>-->
+        <!--             <view class="status yellow">寰呰川妫�</view>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h2>閲囨牱鍦扮偣锛氱煶瀹跺簞甯傝穬杩涜矾澶╁厓鍟嗗姟澶у帵</h2>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-btn-box">-->
+        <!--             <view class="watch">-->
+        <!--               <u-button type="primary" @click="handleWatchClick">鏌ョ湅</u-button>-->
+        <!--             </view>-->
+        <!--             &lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+        <!--             &lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+        <!--             &lt;!&ndash;           </view>&ndash;&gt;-->
+        <!--           </view>-->
+        <!--         </view>-->
+      </div>
+    </div>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "symbNa-sampling",
+  components: {},
+
+  data() {
+    return {
+      edcList:[],
+      size:10,
+      current:1,
+      total:0,
+      flag:false,
+      type:4,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+    }
+  },
+  onShow() {
+    this.edcList = []
+    this.current = 1
+    this.getPageList()
+  },
+  methods: {
+    statusComputed(status) {
+      if(status == 1) {
+        return '宸插彇鏍�'
+      }else if(status == 2) {
+        return '璐ㄦ涓�'
+      }else if(status == 3) {
+        return '寰呭鏍�'
+      }else if(status == 4) {
+        return '澶嶆牳涓�'
+      }else if(status == 5) {
+        return '寰呭瀹�'
+      }else if(status == 6) {
+        return '瀹″畾涓�'
+      }else if(status == 7) {
+        return '宸插畬鎴�'
+      }else {
+        return ''
+      }
+    },
+    async getPageList(callBack) {
+      uni.showLoading({
+        title: "鍔犺浇涓�"
+      })
+      // this.$reqGet('pageList').then(res => {
+      //   console.log(res,'鍘熺洂閽欓晛----')
+      //   if(res.code == 0) {
+      //     uni.hideLoading()
+      //     this.edcList = [...this.edcList,...res.data.records]
+      //   }else {
+      //     uni.hideLoading()
+      //   }
+      // })
+      try{
+        const res = await this.$reqGet('pageList',{current:this.current,size:this.size,type:this.type})
+        uni.hideLoading()
+        this.edcList = [...this.edcList,...res.data.records]
+        this.total = res.data.total
+        callBack && callBack()
+      }catch (err) {
+        uni.hideLoading()
+        console.log(err,'err')
+      }
+    },
+    onReachBottom() { //涓婃媺鍔犺浇
+      console.log('涓婃媺鍔犺浇------')
+      console.log('this.size------',this.size)
+      console.log('this.current------',this.current)
+      console.log('this.edcList.length------',this.edcList.length)
+      if(this.edcList.length < this.current*this.size) return this.flag = true
+      this.current ++;
+      this.getPageList()
+    },
+    onPullDownRefresh() {  //涓嬫媺鍒锋柊
+      console.log()
+      this.flag = false
+      this.current = 1
+      this.edcList = []
+      setTimeout(() => {
+        this.getPageList(() => {
+          uni.stopPullDownRefresh()
+        })
+      },1000)
+    },
+    handleWatchClick(item) {  //鏌ョ湅璇︽儏
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form?params='+JSON.stringify(item)
+      })
+    },
+    addYanGaiMeiForm() {  //鏂板
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/symbNa-sampling/symbNa-sampling-form/symbNa-sampling-form'
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.symbNa-sampling-wrap{
+  width: 100%;
+  .edc-sampling-main{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    padding: 30rpx 20rpx;
+    box-sizing: border-box;
+    .edc-sampling-main-inside{
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .yanGaiMei-sampling-add{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      display: flex;
+      justify-content: center;
+      padding: 20rpx 0;
+      box-sizing: border-box;
+      position: sticky;
+      top: 10rpx;
+      z-index: 999;
+      .add-box{
+        display: flex;
+        align-content:center;
+        ::v-deep {
+          .u-image{
+            width: auto!important;
+            height: auto!important;
+          }
+          .u-image__image{
+            width: 60rpx!important;
+            height: 60rpx!important;;
+          }
+        }
+        h1{
+          font-size: 30rpx;
+          color: #fcbd20;
+          margin-left: 30rpx;
+          align-self: center;
+          display: flex;
+        }
+      }
+    }
+    .edc-sampling-card{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      padding: 30rpx;
+      box-sizing: border-box;
+      margin-top: 20rpx;
+      .edc-sampling-line{
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: baseline;
+        h1{
+          font-size: 34rpx;
+          color: #1c1c1c;
+          font-weight: 550;
+          line-height: 2;
+          width: calc(100% - 124rpx);
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        h2{
+          font-size: 30rpx;
+          color: #515151;
+          line-height: 2;
+        }
+        .status{
+          color: #184edd;
+          border: 1px solid #184edd;
+          border-radius: 10rpx;
+          font-size: 28rpx;
+          padding: 0 10rpx;
+          display: flex;
+          align-self: baseline;
+        }
+        .red{
+          color: #f56c6c;
+          border: 1px solid #f56c6c;
+        }
+        .yellow{
+          color: #f9ae3d;
+          border: 1px solid #f9ae3d;
+        }
+      }
+      .edc-sampling-btn-box{
+        display: flex;
+        justify-content: flex-end;
+        margin-top:20rpx;
+        ::v-deep{
+          .u-button{
+            border-radius: 50rpx;
+            margin: 0 10rpx;
+            padding: 0 50rpx;
+            @include commonBtn
+          }
+        }
+        .watch{
+          margin: 0 15rpx;
+        }
+      }
+    }
+    .isOver{
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      padding: 40rpx 0;
+      font-size: 30rpx;
+      color: #999999;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form.vue b/pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form.vue
new file mode 100644
index 0000000..e50c79c
--- /dev/null
+++ b/pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form.vue
@@ -0,0 +1,369 @@
+<template>
+  <view class="edc-sampling-form-wrap">
+    <u--form
+        labelPosition="left"
+        :model="modelForm"
+        :rules="rules"
+        ref="uForm"
+        labelAlign="right"
+        labelWidth="20%"
+    >
+      <u-form-item
+          label="鎵瑰彿:"
+          prop="batchNumber"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.batchNumber"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="渚涘簲鍟�:"
+          prop="customerId"
+          borderBottom
+          ref="item1"
+      >
+        <jp-select-plus
+            :isLineFeed="false"
+            isSearch
+            color="#497bfb"
+            placeholder="璇烽�夋嫨"
+            v-model="modelForm.customerId"
+            @toConfirm="toConfirmHandle"
+            :list="customerIdList"></jp-select-plus>
+        <!--        <u-cell-group>-->
+        <!--          <u-cell-->
+        <!--                  value="璇烽�夋嫨"-->
+        <!--                  @click="handleCustomerIdClick">-->
+        <!--            <u-icon name="arrow-right"-->
+        <!--                    slot="right-icon"-->
+        <!--                    size="30"></u-icon></u-cell>-->
+        <!--        </u-cell-group>-->
+        <!--        <u&#45;&#45;input-->
+        <!--            v-model="modelForm.customerId"-->
+        <!--            border="none"-->
+        <!--            -->
+        <!--        ></u&#45;&#45;input>-->
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鍦扮偣:"
+          prop="bunkerName"
+          borderBottom
+          ref="item1"
+      >
+        <u-cell-group>
+          <u-cell
+              value="璇烽�夋嫨"
+              @click="handleBunkerIdClick">
+            <view slot="value" class="u-slot-value">
+              <u--input
+                  v-model="modelForm.bunkerName"
+                  border="none"
+              ></u--input>
+            </view>
+          </u-cell>
+        </u-cell-group>
+
+      </u-form-item>
+      <u-form-item
+          label="鍚� 鏁�:(鍚�)"
+          prop="tonnage"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            @change="inputVal"
+            v-model="modelForm.tonnage"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鏃ユ湡:"
+          prop="samplingTime"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingTime"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱浜�:"
+          prop="name"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingPerson"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <div class="sumbmit-box">
+        <u-button @click="handleSubmit" type="primary" v-if="submitShow">纭� 瀹�</u-button>
+      </div>
+    </u--form>
+    <view class="meicang-box">
+      <u-action-sheet
+          @select="selectBunker"
+          :show="bunkerShow"
+          :actions="bunkerList">
+      </u-action-sheet>
+    </view>
+  </view>
+</template>
+
+<script>
+import { todayDate } from '@/utils/util.js';
+import {getStatesOne} from "../../../../utils/status";
+import { BaseUrl } from '@/api/request.js'
+export default {
+  name: "yanGaiMei-sampling-form",
+  components: {
+  },
+  data() {
+    return {
+      submitShow:true,
+      customerIdList: [],
+      bunkerShow: false,
+      bunkerList:[],
+      modelForm: {
+        id:'',
+        batchNumber:'',
+        customerId:'',  //渚涘簲鍟�
+        customerName:'',  //渚涘簲鍟�
+        samplingTime: '', //閲囬泦鏃ユ湡
+        bunkerId:'',
+        bunkerName:'',
+        samplingPerson: '',
+        type: 7,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+      },
+      filedId:'',
+      customerIdShow: false,
+      customerFormVisable: false,  //瀹㈡埛寮规
+      deptId:'',
+      rules: {
+        batchNumber:[{
+          type: 'string',
+          required: true,
+          message: '璇峰~鍐欐壒鍙�',
+          trigger: ['blur', 'change']
+        }],
+        customerId:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨渚涘簲鍟�',
+          trigger: ['blur', 'change']
+        }],
+        bunkerName:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨閲囨牱鍦扮偣',
+          trigger: ['blur', 'change']
+        }]
+      }
+    }
+  },
+  computed: {
+    samplingPerson() {
+      return uni.getStorageSync('nameKey');
+    }
+  },
+  onReady() {
+    //濡傛灉闇�瑕佸吋瀹瑰井淇″皬绋嬪簭锛屽苟涓旀牎楠岃鍒欎腑鍚湁鏂规硶绛夛紝鍙兘閫氳繃setRules鏂规硶璁剧疆瑙勫垯銆�
+    this.$refs.uForm.setRules(this.rules)
+  },
+  onLoad(opt) {
+
+    if(opt.params) {  //鏌ョ湅
+      this.submitShow = false
+      this.modelForm = Object.assign({},JSON.parse(opt.params))
+      console.log(this.modelForm,'鎺ユ敹鍒颁笂涓〉闈紶杩囨潵鐨勫弬鏁�===')
+      return
+    }
+    this.modelForm.samplingTime = todayDate(); //褰撳墠鏃堕棿
+    this.modelForm.samplingPerson = uni.getStorageSync('name')
+    this.deptId = uni.getStorageSync('userInfo').deptIds
+    console.log(uni.getStorageSync('userInfo'),'userInfo==========')
+    console.log(this.deptId,'deptId==========')
+    this.getClaimCustomerList()
+    if(uni.getStorageSync('bunkerList')) {  //缂撳瓨鏈夋暟鎹嬁鏁版嵁
+      this.bunkerList = uni.getStorageSync('bunkerList')
+    }else {  //娌℃嬁鍒版暟鎹皟涓�閬嶆帴鍙�
+      this.$store.dispatch('getBunkerList')
+    }
+    // console.log(getStatus('roleType'),'roleType-----')
+    // console.log(getStatus('customerId'),'customerId-----')
+    // console.log(getStatus('userInfo'),'userInfo-----')
+    // console.log(uni.getStorageSync('name'),'userInfo-----')
+
+  },
+  methods: {
+    getClaimCustomerList() {  //渚涘簲鍟嗗垪琛�  type 绫诲瀷 0/澶栭儴 1/鍐呴儴(鍖栭獙鍗曠殑灞炰簬澶栭儴瀹㈡埛)
+      this.$reqGet('getClaimCustomerList',{type:'0'}).then(res => {
+        console.log(res,'渚涘簲鍟嗛偅涓�=====')
+        if(res.code == 0) {
+          this.customerIdList = res.data.map(item => {
+            return {
+              code:item.id,
+              name: item.name
+            }
+          })
+        }
+      })
+    },
+    handleBunkerIdClick() {  //鎵撳紑鍙栨牱鍦扮偣寮规
+      this.bunkerShow = true
+    },
+    selectBunker(v) { //閲囨牱鍦扮偣
+      console.log(v,'v======')
+      this.modelForm.bunkerId = v.id
+      this.modelForm.bunkerName = v.name
+      this.bunkerShow = false
+    },
+    toConfirmHandle(v) {  //渚涘簲鍟�
+      console.log(v,'v====渚涘簲鍟�==')
+      if(v) {
+        this.modelForm.customerName = v[0].name
+        this.modelForm.customerId = v[0].code
+      }
+      this.$refs.uForm.validateField('customerId')
+    },
+    handleSubmit() {  //纭畾
+      console.log(this.modelForm,'this.modelForm===')
+      uni.showLoading({
+        title: '鍔犺浇涓�'
+      })
+      this.$refs.uForm.validate().then(res => {
+        this.$reqPost('rawSaltsSampling',this.modelForm,'json').then(res => {
+          if(res) {
+            uni.hideLoading();
+            this.$u.toast('娣诲姞鎴愬姛');
+            uni.redirectTo({
+              url: '/pages/quality-inspection-page/toc-sampling/toc-sampling'
+            })
+          }
+
+        })
+      }).catch(err => {
+        uni.hideLoading();
+      })
+
+    },
+    inputVal(val) {
+      let temp = val.replace(/[^0-9.]+/g,'')
+      this.$nextTick(() => {
+        this.modelForm.tonnage = temp
+      })
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.edc-sampling-form-wrap{
+  width: 100%;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+  ::v-deep{
+    .pop-main{
+      height: 78vh!important;
+      transition: all 0.3s;
+    }
+    .u-action-sheet__item-wrap__item{
+      padding: 0;
+      align-items: flex-start;
+      min-height: 160rpx;
+      max-height: 600rpx;
+      text{
+        font-size: 28rpx;
+      }
+    }
+    .u-popup__content{
+      .u-line{
+        border-bottom-width: 0px!important;
+      }
+    }
+    .u-form{
+      padding-top: 20rpx;
+    }
+    .u-form-item{
+      margin-bottom: 20rpx;
+      .u-transition{
+        min-height: 100vh;
+        max-height: 400vh;
+        height: 200rpx!important;
+      }
+      .u-line {
+        width: calc(80% - 20rpx)!important;
+        padding-left: 20rpx;
+        align-self: flex-end!important;
+        border-color: #e5e5e5!important;
+      }
+      .u-cell-group{
+        .u-line{
+          border-width: 0px!important;
+        }
+        .u-cell__body{
+          padding: 0!important;
+          align-items: flex-start;
+        }
+        .u-cell__body__content{
+          flex: initial;
+        }
+      }
+      .showData-field-line{
+        padding: 0!important;
+      }
+      .isLine::after{
+        border-width: 0px;
+      }
+      .u-form-item__body__right{
+        padding-left: 20rpx;
+      }
+    }
+  }
+  .sumbmit-box{
+    margin-top: 60rpx;
+    width: 100%;
+    display:flex;
+    justify-content:center;
+    ::v-deep{
+      .u-button{
+        border-radius: 50rpx;
+        margin: 0 10rpx;
+        padding: 0 50rpx;
+        box-sizing: border-box;
+        height: 68rpx;
+        width: 80%;
+        @include commonBtn(72rpx);
+      }
+    }
+  }
+}
+
+.customer-form-wrap{
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  ::v-deep{
+    .u-input{
+      border: 1px solid #f5f5f5;
+    }
+    .u-transition{
+      max-height: 80%;
+      overflow-y: auto;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/toc-sampling/toc-sampling.vue b/pages/quality-inspection-page/toc-sampling/toc-sampling.vue
new file mode 100644
index 0000000..71c1dbc
--- /dev/null
+++ b/pages/quality-inspection-page/toc-sampling/toc-sampling.vue
@@ -0,0 +1,275 @@
+<template>
+  <view class="yanGaiMei-sampling-wrap">
+    <div class="edc-sampling-main">
+      <view class="yanGaiMei-sampling-add">
+        <view class="add-box" @click="addYanGaiMeiForm">
+          <u-image src="/static/image/quality/addIcon.png" mode="widthFix"></u-image>
+          <h1>娣诲姞鍘熺洂TOC鍙栨牱</h1>
+        </view>
+      </view>
+      <div class="edc-sampling-main-inside">
+        <view class="edc-sampling-card" v-for="item in edcList" :key="item.id">
+          <view class="edc-sampling-line">
+            <h1>渚涘簲鍟嗭細{{item.customerName}}</h1>
+            <view class="status" v-if="item.status">{{statusComputed(item.status)}}</view>
+          </view>
+          <view class="edc-sampling-line">
+            <h2>閲囨牱鍦扮偣锛歿{item.bunkerName}}</h2>
+          </view>
+          <view class="edc-sampling-btn-box">
+            <view class="watch">
+              <u-button type="primary" @click="handleWatchClick(item)">鏌ョ湅</u-button>
+            </view>
+            <!--           <view class="watch">-->
+            <!--             <u-button type="primary" :plain="true">鏌ョ湅</u-button>-->
+            <!--           </view>-->
+          </view>
+        </view>
+        <view class="isOver" v-if="flag">------鎴戞槸鏈夊簳绾跨殑------</view>
+        <!--         <view class="edc-sampling-card">-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h1>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h1>-->
+        <!--             <view class="status yellow">寰呰川妫�</view>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-line">-->
+        <!--             <h2>閲囨牱鍦扮偣锛氱煶瀹跺簞甯傝穬杩涜矾澶╁厓鍟嗗姟澶у帵</h2>-->
+        <!--           </view>-->
+        <!--           <view class="edc-sampling-btn-box">-->
+        <!--             <view class="watch">-->
+        <!--               <u-button type="primary" @click="handleWatchClick">鏌ョ湅</u-button>-->
+        <!--             </view>-->
+        <!--             &lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+        <!--             &lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+        <!--             &lt;!&ndash;           </view>&ndash;&gt;-->
+        <!--           </view>-->
+        <!--         </view>-->
+      </div>
+    </div>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "yanGaiMei-sampling",
+  components: {},
+
+  data() {
+    return {
+      edcList:[],
+      size:10,
+      current:1,
+      total:0,
+      flag:false,
+      type:7,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+    }
+  },
+  onShow() {
+    this.edcList = []
+    this.current = 1
+    this.getPageList()
+  },
+  methods: {
+    statusComputed(status) {
+      if(status == 1) {
+        return '宸插彇鏍�'
+      }else if(status == 2) {
+        return '璐ㄦ涓�'
+      }else if(status == 3) {
+        return '寰呭鏍�'
+      }else if(status == 4) {
+        return '澶嶆牳涓�'
+      }else if(status == 5) {
+        return '寰呭瀹�'
+      }else if(status == 6) {
+        return '瀹″畾涓�'
+      }else if(status == 7) {
+        return '宸插畬鎴�'
+      }else {
+        return ''
+      }
+    },
+    async getPageList(callBack) {
+      uni.showLoading({
+        title: "鍔犺浇涓�"
+      })
+      // this.$reqGet('pageList').then(res => {
+      //   console.log(res,'鍘熺洂閽欓晛----')
+      //   if(res.code == 0) {
+      //     uni.hideLoading()
+      //     this.edcList = [...this.edcList,...res.data.records]
+      //   }else {
+      //     uni.hideLoading()
+      //   }
+      // })
+      try{
+        const res = await this.$reqGet('pageList',{current:this.current,size:this.size,type:this.type})
+        uni.hideLoading()
+        this.edcList = [...this.edcList,...res.data.records]
+        this.total = res.data.total
+        callBack && callBack()
+      }catch (err) {
+        uni.hideLoading()
+        console.log(err,'err')
+      }
+    },
+    onReachBottom() { //涓婃媺鍔犺浇
+      console.log('涓婃媺鍔犺浇------')
+      console.log('this.size------',this.size)
+      console.log('this.current------',this.current)
+      console.log('this.edcList.length------',this.edcList.length)
+      if(this.edcList.length < this.current*this.size) return this.flag = true
+      this.current ++;
+      this.getPageList()
+    },
+    onPullDownRefresh() {  //涓嬫媺鍒锋柊
+      console.log()
+      this.flag = false
+      this.current = 1
+      this.edcList = []
+      setTimeout(() => {
+        this.getPageList(() => {
+          uni.stopPullDownRefresh()
+        })
+      },1000)
+    },
+    handleWatchClick(item) {  //鏌ョ湅璇︽儏
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form?params='+JSON.stringify(item)
+      })
+    },
+    addYanGaiMeiForm() {  //鏂板
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/toc-sampling/toc-sampling-form/toc-sampling-form'
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.yanGaiMei-sampling-wrap{
+  width: 100%;
+  .edc-sampling-main{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    padding: 30rpx 20rpx;
+    box-sizing: border-box;
+    .edc-sampling-main-inside{
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .yanGaiMei-sampling-add{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      display: flex;
+      justify-content: center;
+      padding: 20rpx 0;
+      box-sizing: border-box;
+      position: sticky;
+      top: 10rpx;
+      z-index: 999;
+      .add-box{
+        display: flex;
+        align-content:center;
+        ::v-deep {
+          .u-image{
+            width: auto!important;
+            height: auto!important;
+          }
+          .u-image__image{
+            width: 60rpx!important;
+            height: 60rpx!important;;
+          }
+        }
+        h1{
+          font-size: 30rpx;
+          color: #fcbd20;
+          margin-left: 30rpx;
+          align-self: center;
+          display: flex;
+        }
+      }
+    }
+    .edc-sampling-card{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      padding: 30rpx;
+      box-sizing: border-box;
+      margin-top: 20rpx;
+      .edc-sampling-line{
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: baseline;
+        h1{
+          font-size: 34rpx;
+          color: #1c1c1c;
+          font-weight: 550;
+          line-height: 2;
+          width: calc(100% - 124rpx);
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        h2{
+          font-size: 30rpx;
+          color: #515151;
+          line-height: 2;
+        }
+        .status{
+          color: #184edd;
+          border: 1px solid #184edd;
+          border-radius: 10rpx;
+          font-size: 28rpx;
+          padding: 0 10rpx;
+          display: flex;
+          align-self: baseline;
+        }
+        .red{
+          color: #f56c6c;
+          border: 1px solid #f56c6c;
+        }
+        .yellow{
+          color: #f9ae3d;
+          border: 1px solid #f9ae3d;
+        }
+      }
+      .edc-sampling-btn-box{
+        display: flex;
+        justify-content: flex-end;
+        margin-top:20rpx;
+        ::v-deep{
+          .u-button{
+            border-radius: 50rpx;
+            margin: 0 10rpx;
+            padding: 0 50rpx;
+            @include commonBtn
+          }
+        }
+        .watch{
+          margin: 0 15rpx;
+        }
+      }
+    }
+    .isOver{
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      padding: 40rpx 0;
+      font-size: 30rpx;
+      color: #999999;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form.vue b/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form.vue
new file mode 100644
index 0000000..10c6f38
--- /dev/null
+++ b/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form.vue
@@ -0,0 +1,351 @@
+<template>
+  <view class="edc-sampling-form-wrap">
+    <u--form
+        labelPosition="left"
+        :model="modelForm"
+        :rules="rules"
+        ref="uForm"
+        labelAlign="right"
+        labelWidth="20%"
+    >
+      <u-form-item
+          label="鎵瑰彿:"
+          prop="batchNumber"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.batchNumber"
+            border="none"
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="渚涘簲鍟�:"
+          prop="customerId"
+          borderBottom
+          ref="item1"
+      >
+        <jp-select-plus
+            :isLineFeed="false"
+            isSearch
+            color="#497bfb"
+            placeholder="璇烽�夋嫨"
+            v-model="modelForm.customerId"
+            @toConfirm="toConfirmHandle"
+            :list="customerIdList"></jp-select-plus>
+<!--        <u-cell-group>-->
+<!--          <u-cell-->
+<!--                  value="璇烽�夋嫨"-->
+<!--                  @click="handleCustomerIdClick">-->
+<!--            <u-icon name="arrow-right"-->
+<!--                    slot="right-icon"-->
+<!--                    size="30"></u-icon></u-cell>-->
+<!--        </u-cell-group>-->
+<!--        <u&#45;&#45;input-->
+<!--            v-model="modelForm.customerId"-->
+<!--            border="none"-->
+<!--            -->
+<!--        ></u&#45;&#45;input>-->
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鍦扮偣:"
+          prop="bunkerName"
+          borderBottom
+          ref="item1"
+      >
+          <u-cell-group>
+            <u-cell
+                value="璇烽�夋嫨"
+                @click="handleBunkerIdClick">
+              <view slot="value" class="u-slot-value">
+                  <u--input
+                      v-model="modelForm.bunkerName"
+                      border="none"
+                  ></u--input>
+              </view>
+            </u-cell>
+          </u-cell-group>
+
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱鏃ユ湡:"
+          prop="samplingTime"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingTime"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <u-form-item
+          label="閲囨牱浜�:"
+          prop="name"
+          borderBottom
+          ref="item1"
+      >
+        <u--input
+            v-model="modelForm.samplingPerson"
+            border="none"
+            disabled
+        ></u--input>
+      </u-form-item>
+      <div class="sumbmit-box">
+        <u-button @click="handleSubmit" type="primary" v-if="submitShow">纭� 瀹�</u-button>
+      </div>
+    </u--form>
+    <view class="meicang-box">
+      <u-action-sheet
+          @select="selectBunker"
+          :show="bunkerShow"
+          :actions="bunkerList">
+      </u-action-sheet>
+    </view>
+  </view>
+</template>
+
+<script>
+import { todayDate } from '@/utils/util.js';
+import {getStatesOne} from "../../../../utils/status";
+import { BaseUrl } from '@/api/request.js'
+export default {
+  name: "yanGaiMei-sampling-form",
+  components: {
+  },
+  data() {
+    return {
+      submitShow:true,
+      customerIdList: [],
+      bunkerShow: false,
+      bunkerList:[],
+      modelForm: {
+        id:'',
+        batchNumber:'',
+        customerId:'',  //渚涘簲鍟�
+        customerName:'',  //渚涘簲鍟�
+        samplingTime: '', //閲囬泦鏃ユ湡
+        bunkerId:'',
+        bunkerName:'',
+        samplingPerson: '',
+        type: 6,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+      },
+      filedId:'',
+      customerIdShow: false,
+      customerFormVisable: false,  //瀹㈡埛寮规
+      deptId:'',
+      rules: {
+        batchNumber:[{
+          type: 'string',
+          required: true,
+          message: '璇峰~鍐欐壒鍙�',
+          trigger: ['blur', 'change']
+        }],
+        customerId:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨渚涘簲鍟�',
+          trigger: ['blur', 'change']
+        }],
+        bunkerName:[{
+          type: 'string',
+          required: true,
+          message: '璇烽�夋嫨閲囨牱鍦扮偣',
+          trigger: ['blur', 'change']
+        }]
+      }
+    }
+  },
+  computed: {
+    samplingPerson() {
+      return uni.getStorageSync('nameKey');
+    }
+  },
+  onReady() {
+    //濡傛灉闇�瑕佸吋瀹瑰井淇″皬绋嬪簭锛屽苟涓旀牎楠岃鍒欎腑鍚湁鏂规硶绛夛紝鍙兘閫氳繃setRules鏂规硶璁剧疆瑙勫垯銆�
+    this.$refs.uForm.setRules(this.rules)
+  },
+  onLoad(opt) {
+
+    if(opt.params) {  //鏌ョ湅
+      this.submitShow = false
+      this.modelForm = Object.assign({},JSON.parse(opt.params))
+      console.log(this.modelForm,'鎺ユ敹鍒颁笂涓〉闈紶杩囨潵鐨勫弬鏁�===')
+      return
+    }
+    this.modelForm.samplingTime = todayDate(); //褰撳墠鏃堕棿
+    this.modelForm.samplingPerson = uni.getStorageSync('name')
+    this.deptId = uni.getStorageSync('userInfo').deptIds
+    console.log(uni.getStorageSync('userInfo'),'userInfo==========')
+    console.log(this.deptId,'deptId==========')
+    this.getClaimCustomerList()
+    if(uni.getStorageSync('bunkerList')) {  //缂撳瓨鏈夋暟鎹嬁鏁版嵁
+      this.bunkerList = uni.getStorageSync('bunkerList')
+    }else {  //娌℃嬁鍒版暟鎹皟涓�閬嶆帴鍙�
+      this.$store.dispatch('getBunkerList')
+    }
+    // console.log(getStatus('roleType'),'roleType-----')
+    // console.log(getStatus('customerId'),'customerId-----')
+    // console.log(getStatus('userInfo'),'userInfo-----')
+    // console.log(uni.getStorageSync('name'),'userInfo-----')
+
+  },
+  methods: {
+    getClaimCustomerList() {  //渚涘簲鍟嗗垪琛�  type 绫诲瀷 0/澶栭儴 1/鍐呴儴(鍖栭獙鍗曠殑灞炰簬澶栭儴瀹㈡埛)
+      this.$reqGet('getClaimCustomerList',{type:'0'}).then(res => {
+        console.log(res,'渚涘簲鍟嗛偅涓�=====')
+        if(res.code == 0) {
+          this.customerIdList = res.data.map(item => {
+            return {
+              code:item.id,
+              name: item.name
+            }
+          })
+        }
+      })
+    },
+    handleBunkerIdClick() {  //鎵撳紑鍙栨牱鍦扮偣寮规
+      this.bunkerShow = true
+    },
+    selectBunker(v) { //閲囨牱鍦扮偣
+      console.log(v,'v======')
+      this.modelForm.bunkerId = v.id
+      this.modelForm.bunkerName = v.name
+      this.bunkerShow = false
+    },
+    toConfirmHandle(v) {  //渚涘簲鍟�
+      console.log(v,'v====渚涘簲鍟�==')
+      if(v) {
+        this.modelForm.customerName = v[0].name
+        this.modelForm.customerId = v[0].code
+      }
+      this.$refs.uForm.validateField('customerId')
+    },
+    handleSubmit() {  //纭畾
+      console.log(this.modelForm,'this.modelForm===')
+      uni.showLoading({
+        title: '鍔犺浇涓�'
+      })
+      this.$refs.uForm.validate().then(res => {
+        this.$reqPost('rawSaltsSampling',this.modelForm,'json').then(res => {
+          if(res) {
+            uni.hideLoading();
+            this.$u.toast('娣诲姞鎴愬姛');
+            uni.redirectTo({
+              url: '/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling'
+            })
+          }
+
+        })
+      }).catch(err => {
+        uni.hideLoading();
+      })
+
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.edc-sampling-form-wrap{
+  width: 100%;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+  ::v-deep{
+    .pop-main{
+      height: 78vh!important;
+      transition: all 0.3s;
+    }
+    .u-action-sheet__item-wrap__item{
+      padding: 0 20rpx;
+      align-items: flex-start;
+      min-height: 160rpx;
+      max-height: 600rpx;
+      text{
+        font-size: 28rpx;
+      }
+    }
+    .u-popup__content{
+      .u-line{
+        border-bottom-width: 0px!important;
+      }
+    }
+    .u-form{
+      padding-top: 20rpx;
+    }
+    .u-form-item{
+      margin-bottom: 20rpx;
+      .u-transition{
+        min-height: 100vh;
+        max-height: 400vh;
+        height: 200rpx!important;
+      }
+      .u-line {
+        width: calc(80% - 20rpx)!important;
+        padding-left: 20rpx;
+        align-self: flex-end!important;
+        border-color: #e5e5e5!important;
+      }
+      .u-cell-group{
+        .u-line{
+          border-width: 0px!important;
+        }
+        .u-cell__body{
+          padding: 0!important;
+          align-items: flex-start;
+        }
+        .u-cell__body__content{
+          flex: initial;
+        }
+      }
+      .showData-field-line{
+        padding: 0!important;
+      }
+      .isLine::after{
+        border-width: 0px;
+      }
+      .u-form-item__body__right{
+        padding-left: 20rpx;
+      }
+    }
+  }
+  .sumbmit-box{
+    margin-top: 60rpx;
+    width: 100%;
+    display:flex;
+    justify-content:center;
+    ::v-deep{
+      .u-button{
+        border-radius: 50rpx;
+        margin: 0 10rpx;
+        padding: 0 50rpx;
+        box-sizing: border-box;
+        height: 68rpx;
+        width: 80%;
+        @include commonBtn(72rpx);
+      }
+    }
+  }
+}
+
+.customer-form-wrap{
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  ::v-deep{
+   .u-input{
+     border: 1px solid #f5f5f5;
+   }
+   .u-transition{
+      max-height: 80%;
+      overflow-y: auto;
+    }
+  }
+}
+</style>
diff --git a/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling.vue b/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling.vue
new file mode 100644
index 0000000..28389a1
--- /dev/null
+++ b/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling.vue
@@ -0,0 +1,275 @@
+<template>
+   <view class="yanGaiMei-sampling-wrap">
+     <div class="edc-sampling-main">
+       <view class="yanGaiMei-sampling-add">
+         <view class="add-box" @click="addYanGaiMeiForm">
+           <u-image src="/static/image/quality/addIcon.png" mode="widthFix"></u-image>
+           <h1>娣诲姞鍘熺洂閽欓晛鍙栨牱</h1>
+         </view>
+       </view>
+       <div class="edc-sampling-main-inside">
+         <view class="edc-sampling-card" v-for="item in edcList" :key="item.id">
+           <view class="edc-sampling-line">
+             <h1>渚涘簲鍟嗭細{{item.customerName}}</h1>
+             <view class="status" v-if="item.status">{{statusComputed(item.status)}}</view>
+           </view>
+           <view class="edc-sampling-line">
+             <h2>閲囨牱鍦扮偣锛歿{item.bunkerName}}</h2>
+           </view>
+           <view class="edc-sampling-btn-box">
+             <view class="watch">
+               <u-button type="primary" @click="handleWatchClick(item)">鏌ョ湅</u-button>
+             </view>
+             <!--           <view class="watch">-->
+             <!--             <u-button type="primary" :plain="true">鏌ョ湅</u-button>-->
+             <!--           </view>-->
+           </view>
+         </view>
+         <view class="isOver" v-if="flag">------鎴戞槸鏈夊簳绾跨殑------</view>
+<!--         <view class="edc-sampling-card">-->
+<!--           <view class="edc-sampling-line">-->
+<!--             <h1>渚涘簲鍟嗭細鍐�涓棤浜哄�煎畧</h1>-->
+<!--             <view class="status yellow">寰呰川妫�</view>-->
+<!--           </view>-->
+<!--           <view class="edc-sampling-line">-->
+<!--             <h2>閲囨牱鍦扮偣锛氱煶瀹跺簞甯傝穬杩涜矾澶╁厓鍟嗗姟澶у帵</h2>-->
+<!--           </view>-->
+<!--           <view class="edc-sampling-btn-box">-->
+<!--             <view class="watch">-->
+<!--               <u-button type="primary" @click="handleWatchClick">鏌ョ湅</u-button>-->
+<!--             </view>-->
+<!--             &lt;!&ndash;           <view class="watch">&ndash;&gt;-->
+<!--             &lt;!&ndash;             <u-button type="primary" :plain="true">鏌ョ湅</u-button>&ndash;&gt;-->
+<!--             &lt;!&ndash;           </view>&ndash;&gt;-->
+<!--           </view>-->
+<!--         </view>-->
+       </div>
+     </div>
+   </view>
+</template>
+
+<script>
+export default {
+  name: "yanGaiMei-sampling",
+  components: {},
+
+  data() {
+    return {
+      edcList:[],
+      size:10,
+      current:1,
+      total:0,
+      flag:false,
+      type:6,  //1 EDC銆�2 PVC銆�3 纭吀銆�4 姘㈡哀鍖栭挔 5 娑叉隘 6銆佸師鐩愰挋闀� 7銆佸師鐩怲OC 8銆佸師鐩愬叏妫�
+    }
+  },
+  onShow() {
+    this.edcList = []
+    this.current = 1
+    this.getPageList()
+  },
+  methods: {
+    statusComputed(status) {
+      if(status == 1) {
+        return '宸插彇鏍�'
+      }else if(status == 2) {
+        return '璐ㄦ涓�'
+      }else if(status == 3) {
+        return '寰呭鏍�'
+      }else if(status == 4) {
+        return '澶嶆牳涓�'
+      }else if(status == 5) {
+        return '寰呭瀹�'
+      }else if(status == 6) {
+        return '瀹″畾涓�'
+      }else if(status == 7) {
+        return '宸插畬鎴�'
+      }else {
+        return ''
+      }
+    },
+    async getPageList(callBack) {
+      uni.showLoading({
+        title: "鍔犺浇涓�"
+      })
+      // this.$reqGet('pageList').then(res => {
+      //   console.log(res,'鍘熺洂閽欓晛----')
+      //   if(res.code == 0) {
+      //     uni.hideLoading()
+      //     this.edcList = [...this.edcList,...res.data.records]
+      //   }else {
+      //     uni.hideLoading()
+      //   }
+      // })
+      try{
+        const res = await this.$reqGet('pageList',{current:this.current,size:this.size,type:this.type})
+        uni.hideLoading()
+        this.edcList = [...this.edcList,...res.data.records]
+        this.total = res.data.total
+        callBack && callBack()
+      }catch (err) {
+        uni.hideLoading()
+        console.log(err,'err')
+      }
+    },
+    onReachBottom() { //涓婃媺鍔犺浇
+      console.log('涓婃媺鍔犺浇------')
+      console.log('this.size------',this.size)
+      console.log('this.current------',this.current)
+      console.log('this.edcList.length------',this.edcList.length)
+      if(this.edcList.length < this.current*this.size) return this.flag = true
+      this.current ++;
+      this.getPageList()
+    },
+    onPullDownRefresh() {  //涓嬫媺鍒锋柊
+      console.log()
+      this.flag = false
+      this.current = 1
+      this.edcList = []
+      setTimeout(() => {
+        this.getPageList(() => {
+          uni.stopPullDownRefresh()
+        })
+      },1000)
+    },
+    handleWatchClick(item) {  //鏌ョ湅璇︽儏
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form?params='+JSON.stringify(item)
+      })
+    },
+    addYanGaiMeiForm() {  //鏂板
+      uni.navigateTo({
+        url: '/pages/quality-inspection-page/yanGaiMei-sampling/yanGaiMei-sampling-form/yanGaiMei-sampling-form'
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@mixin commonBtn($h:62rpx){
+  background-image: linear-gradient(to right,#497bfb,#2467fd);
+  height: $h!important;
+  box-shadow: 0 0 10px rgba(43,98,239,0.5);
+}
+.yanGaiMei-sampling-wrap{
+  width: 100%;
+  .edc-sampling-main{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    padding: 30rpx 20rpx;
+    box-sizing: border-box;
+    .edc-sampling-main-inside{
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .yanGaiMei-sampling-add{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      display: flex;
+      justify-content: center;
+      padding: 20rpx 0;
+      box-sizing: border-box;
+      position: sticky;
+      top: 10rpx;
+      z-index: 999;
+      .add-box{
+        display: flex;
+        align-content:center;
+        ::v-deep {
+          .u-image{
+            width: auto!important;
+            height: auto!important;
+          }
+          .u-image__image{
+            width: 60rpx!important;
+            height: 60rpx!important;;
+          }
+        }
+        h1{
+          font-size: 30rpx;
+          color: #fcbd20;
+          margin-left: 30rpx;
+          align-self: center;
+          display: flex;
+        }
+      }
+    }
+    .edc-sampling-card{
+      width: 100%;
+      border-radius: 20rpx;
+      background: #fff;
+      box-shadow: 0 0 25px rgba(73,120,240,0.15);
+      padding: 30rpx;
+      box-sizing: border-box;
+      margin-top: 20rpx;
+      .edc-sampling-line{
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: baseline;
+        h1{
+          font-size: 34rpx;
+          color: #1c1c1c;
+          font-weight: 550;
+          line-height: 2;
+          width: calc(100% - 124rpx);
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        h2{
+          font-size: 30rpx;
+          color: #515151;
+          line-height: 2;
+        }
+        .status{
+          color: #184edd;
+          border: 1px solid #184edd;
+          border-radius: 10rpx;
+          font-size: 28rpx;
+          padding: 0 10rpx;
+          display: flex;
+          align-self: baseline;
+        }
+        .red{
+          color: #f56c6c;
+          border: 1px solid #f56c6c;
+        }
+        .yellow{
+          color: #f9ae3d;
+          border: 1px solid #f9ae3d;
+        }
+      }
+      .edc-sampling-btn-box{
+        display: flex;
+        justify-content: flex-end;
+        margin-top:20rpx;
+        ::v-deep{
+          .u-button{
+            border-radius: 50rpx;
+            margin: 0 10rpx;
+            padding: 0 50rpx;
+            @include commonBtn
+          }
+        }
+        .watch{
+          margin: 0 15rpx;
+        }
+      }
+    }
+    .isOver{
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      padding: 40rpx 0;
+      font-size: 30rpx;
+      color: #999999;
+    }
+  }
+}
+</style>
diff --git a/pages/tabbar-page/index-tabbar/index-tabbar.vue b/pages/tabbar-page/index-tabbar/index-tabbar.vue
index 1b0ee4f..d4e9d1c 100644
--- a/pages/tabbar-page/index-tabbar/index-tabbar.vue
+++ b/pages/tabbar-page/index-tabbar/index-tabbar.vue
@@ -25,8 +25,11 @@
 			:indexdriverBillOfLoadingData="indexdriverBillOfLoadingData"></driver-index>
 		<load-unload ref="LoadUnloadRef"
 			v-if="roleType == 5"></load-unload>
+		<doorkeep-index ref="doorkeepIndexRef"
+			v-if="roleType == 6"></doorkeep-index>
 		<!-- 		<selectTarget v-if="roleType == 5"
 			ref="LoadUnloadRef"></selectTarget> -->
+    <qualityIndex ref="qualityIndexRef" v-if="roleType == 7"></qualityIndex>
 		<tab-bar :current="0"></tab-bar>
 		<!-- 鎺ㄩ�佹秷鎭脊绐� -->
 		<u-modal :show="messagePushShow"
@@ -45,6 +48,8 @@
 	import freightForwarderIndex from '@/pages/freight-forwarder-page/freightForwarder-index/freightForwarder-index.vue';
 	import LoadUnload from '@/pages/loadUnload-page/loadUnload-page.vue'
 	import selectTarget from '@/pages/loadUnload-page/selectTarget/selectTarget.vue'
+  import qualityIndex from '@/pages/quality-inspection-page/qualityIndex/qualityIndex'
+	import doorkeepIndex from '@/pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue';
 	import { mapState, mapMutations } from 'vuex';
 	import { webSocketUrl } from '@/api/request.js';
 
@@ -55,6 +60,9 @@
 			driverIndex,
 			freightForwarderIndex,
 			LoadUnload,
+			selectTarget,
+      qualityIndex,  //鍖栭獙
+			doorkeepIndex,
 			selectTarget
 		},
 		computed: {
@@ -64,7 +72,9 @@
 		},
 		//棣栭〉涓嬫媺鍒锋柊
 		onPullDownRefresh() {
-			uni.showLoading({ title: '鍔犺浇涓�...' });
+			if(this.roleType!==6){
+				uni.showLoading({ title: '鍔犺浇涓�...' });
+			}
 			// 鑾峰彇鍘嗗彶鎻愮叅鍗�
 			if (this.roleType == 1 || this.roleType == 2) {
 				this.$reqGet('getJhOrderPlanDataPage', { current: 1, size: 10 }).then(res => {
@@ -133,9 +143,12 @@
 			this.$store.dispatch('websocketInit')
 			this.$store.commit('changeisLogin', true)
 			console.log(this.globalisconnect, 'index鐨剋s鏁版嵁');
+      /*  #ifdef MP-WEIXIN */
 			this.userAuthorization();
+      /*  #endif */
 			this.messageReq();
 			// 寮�鍚弻浜洪�氳瘽
+      /*  #ifdef MP-WEIXIN */
 			wx.setEnable1v1Chat({
 				enable: true,
 				backgroundType: 1,
@@ -150,6 +163,7 @@
 					console.log('寮�鍚弻浜洪�氳瘽鎴愬姛Complete');
 				}
 			});
+      /*  #endif */
 		},
 		data() {
 			return {
@@ -217,6 +231,7 @@
 			},
 			init() {
 				this.roleType = uni.getStorageSync('roleType');
+        console.log(this.roleType,'this.roleType=====')
 				switch (this.roleType) {
 					case 1:
 						console.log('customerIndexRef');
@@ -245,11 +260,27 @@
 							}
 						});
 						break;
+          case 7:
+            console.log('qualityIndexRef');
+            this.$nextTick(() => {
+              console.log(this.count,'count')
+              if(this.count <=1){
+                this.$refs.qualityIndexRef.init();
+              }
+            });
+            break;
+					case 6:
+						console.log('doorkeepIndexRef');
+						this.$nextTick(() => {
+							this.$refs.doorkeepIndexRef.init();
+						});
+						break;
 					default:
 						break;
 				}
 			},
 			// 瑕佹眰鐢ㄦ埛鎺堟潈鐩告満/楹﹀厠椋庢潈闄�
+      /*  #ifdef MP-WEIXIN */
 			userAuthorization() {
 				wx.getSetting({
 					success(res) {
@@ -283,6 +314,7 @@
 					},
 				});
 			},
+      /*  #endif */
 			messageconfirm() {
 				this.messagePushShow = false;
 				uni.navigateTo({
diff --git a/static/image/quality/addIcon.png b/static/image/quality/addIcon.png
new file mode 100644
index 0000000..37f3112
--- /dev/null
+++ b/static/image/quality/addIcon.png
Binary files differ
diff --git a/store/index.js b/store/index.js
index f9aa732..6343509 100644
--- a/store/index.js
+++ b/store/index.js
@@ -1,6 +1,10 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
-import { webSocketUrl } from '@/api/request.js'
+import { webSocketUrl,BaseUrl } from '@/api/request.js'
+// 璇锋眰鐩稿叧
+import {
+	reqGet,
+} from '@/api/index.js'
 Vue.use(Vuex)
 
 // 鍔ㄦ�佸簳閮╰abbar
@@ -55,7 +59,19 @@
 			selectedIconPath: '../../static/tabBar-icon/Bmine57.png',
 			text: '鎴戠殑'
 		}
-	]
+	],
+	fourth: [{
+			pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar',
+			iconPath: '../../static/tabBar-icon/home.png',
+			selectedIconPath: '../../static/tabBar-icon/homeblue.png',
+			text: '杩涘満'
+		},{
+			pagePath: 'pages/doorkeeper-page/doorkeeper-index/exit-index',
+			iconPath: '../../static/tabBar-icon/home.png',
+			selectedIconPath: '../../static/tabBar-icon/homeblue.png',
+			text: '鍑哄満'
+		}
+	],
 }
 const store = new Vuex.Store({
 	state: {
@@ -150,6 +166,8 @@
 		confirmWeighContent: '',
 		// 绉伴噸绋冲畾鎬�  0/绋冲畾 1/闈炵ǔ瀹�  闈炵ǔ瀹氭�佷笉鑳界偣绉伴噸
 		globalWarning: false,
+		filedId:'', //鐓ゅ満id
+		bunkerList:'', //鐓や粨list
 	},
 	mutations: {
 		setUserInfo(state, identity) {
@@ -166,6 +184,9 @@
 				uni.setStorageSync('userTabbar', state.userTabbar)
 			} else if (roleType == 5) {
 				state.userTabbar = userRoleTabbar.three
+				uni.setStorageSync('userTabbar', state.userTabbar)
+			}else if (roleType == 6) {
+				state.userTabbar = userRoleTabbar.fourth
 				uni.setStorageSync('userTabbar', state.userTabbar)
 			}
 		},
@@ -248,13 +269,29 @@
 		changeWarning(state, payload) {
 			state.globalWarning = payload
 		},
+		// 鐓ゅ満filedId鐨勮幏鍙�
+		getFiledId(state, payload) {
+			console.log(payload,'filedId=====')
+			state.filedId = payload
+			uni.setStorageSync('filedId', state.filedId)
+		},
+		getBunkerList(state, payload) {
+			console.log('鎴戞墽琛屼簡getBunkerList====',payload)
+			state.bunkerList = payload
+			uni.setStorageSync('bunkerList', state.bunkerList)
+		}
 	},
 	actions: {
 		websocketInit({ state, dispatch, commit }) {
+			// #ifdef H5
+			let wsUrl = `access_token=${uni.getStorageSync('token')}`
+			// #endif
+			// #ifndef H5
 			let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}`
+			// #endif
 			state.socketTask = uni.connectSocket({
 				url: wsUrl,
-				header: { 
+				header: {
 				clientToc: 'Y' ,
 				'CLIENT_TOC': 'Y',
 			},
@@ -355,7 +392,42 @@
 					dispatch('websocketInit')
 				}, 5000)
 			}
-		}
+		},
+
+		//filedId
+		async getBunkerList({ state,dispatch, commit }) { //鑾峰彇filedId
+			// this.$reqGet(`getList/${this.deptId}`).then(res => {
+			//   console.log(res,'鎯冲緱鍒癴iledId')
+			// })
+			let deptId = uni.getStorageSync('userInfo').deptIds
+			console.log(deptId,'deptId====')
+			await uni.request({  //鑾峰彇deptId
+				url: `/wrzs/jccoalfiled/list/${deptId}`,
+				method: 'GET',
+				header: {
+					Authorization: 'Bearer' + ' ' + uni.getStorageSync('token'),
+					clientToc: 'Y',
+					'CLIENT_TOC': 'Y',
+				},
+				success: res => {
+					console.log(res,'filedId鎺ュ彛000000000000')
+					commit('getFiledId',res.data.data[0].id || '')
+					dispatch('getFiledIdCoalBunker')
+					// console.log(res,'shuj------')
+					// this.filedId = res.data?.data.length > 0 ? res.data.data[0].id : '';
+					// this.getFiledIdCoalBunker()
+				}
+			})
+
+		},
+		getFiledIdCoalBunker({ state, commit }) {  //鐓や粨鍒楄〃锛堥噰鏍峰湴鐐癸級
+			let filedId = uni.getStorageSync('filedId')
+			console.log(filedId,'鏈�缁堢殑filedId=============')
+			reqGet('getFiledIdCoalBunker', {filedId: filedId}).then(res => {
+				console.log(res,'res----鐓や粨')
+				commit('getBunkerList',res.data)
+			})
+		},
 	}
 })
 
diff --git a/utils/util.js b/utils/util.js
index 7285440..7d227a6 100644
--- a/utils/util.js
+++ b/utils/util.js
@@ -6,10 +6,16 @@
 	let hour = date.getHours()
 	let minutes = date.getMinutes()
 	let seconds = date.getSeconds()
+	hour = hour < 10 ? '0' + hour : hour
+	minutes = minutes < 10 ? '0' + minutes : minutes
+	seconds = seconds < 10 ? '0' + seconds : seconds
+	month = month < 10 ? '0' + month : month
+	day = day < 10 ? '0' + day : day
 	if (arg == 'hms') {
-		hour = hour < 10 ? '0' + hour : hour
-		minutes = minutes < 10 ? '0' + minutes : minutes
-		seconds = seconds < 10 ? '0' + seconds : seconds
 		return hour + ':' + minutes + ':' + seconds
+	}else if(arg == 'ymd') {
+		return year + '-' + month + '-' + day
+	}else {
+		return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds
 	}
 }

--
Gitblit v1.9.1