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>--> +<!--<!– <view class="watch">–>--> +<!--<!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> +<!--<!– </view>–>--> +<!-- </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>--> +<!--<!– <view class="watch">–>--> +<!--<!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> +<!--<!– </view>–>--> +<!-- </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--input--> + <!-- v-model="modelForm.customerId"--> + <!-- 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="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>--> + <!-- <!– <view class="watch">–>--> + <!-- <!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> + <!-- <!– </view>–>--> + <!-- </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>--> + <!-- <!– <view class="watch">–>--> + <!-- <!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> + <!-- <!– </view>–>--> + <!-- </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--input--> + <!-- v-model="modelForm.customerId"--> + <!-- 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="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>--> + <!-- <!– <view class="watch">–>--> + <!-- <!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> + <!-- <!– </view>–>--> + <!-- </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--input--> +<!-- v-model="modelForm.customerId"--> +<!-- 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="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>--> +<!-- <!– <view class="watch">–>--> +<!-- <!– <u-button type="primary" :plain="true">鏌ョ湅</u-button>–>--> +<!-- <!– </view>–>--> +<!-- </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