From f46eb243908e145da448f65bffb8ba17197d9164 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期一, 25 九月 2023 16:10:12 +0800
Subject: [PATCH] 增加详情原发信息 增加装卸员下拉刷新 修改诸多问题 优化websocket
---
pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue | 395 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 374 insertions(+), 21 deletions(-)
diff --git a/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue b/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
index 3444a6c..8a1686f 100644
--- a/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
+++ b/pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
@@ -57,7 +57,91 @@
</view>
</view>
</view>
-
+ <view class="origin-info"
+ v-if="originInfoVisible">
+ <view class="origin-info_wrapper">
+ <view class="origin-info_content">
+ <view class="first-line"><combined-title title="鍘熷彂淇℃伅"></combined-title></view>
+ <u-form :model="originInfoForm"
+ label-position="top"
+ label-width="160"
+ :label-style="{'marginLeft':'9px'}"
+ ref="originInfoRef">
+ <u-form-item prop="coalContactSkin">
+ <view class="second-line">
+ <view class="label-text"
+ :class="{ focusClass: isfocus1 }"><text style="color: #f56c6c;">*</text>鐨噸</view>
+ <view class="input-container"
+ :class="{ inputClass: isfocus1, disabledClass: isModifyoriginInfo }">
+ <u--input placeholder="璇疯緭鍏ョ毊閲�"
+ border="surround"
+ v-model="originInfoForm.coalContactSkin"
+ @focus="inputFocus(1)"
+ @blur="inputBlur"
+ @change="inputChange"
+ :disabled="isModifyoriginInfo"></u--input>
+ </view>
+ <view class="unit"
+ :class="{ focusClass: isfocus1 }">鍚�</view>
+ </view>
+ </u-form-item>
+ <u-form-item prop="coalContactHair">
+ <view class="second-line">
+ <view class="label-text"
+ :class="{ focusClass: isfocus2 }"><text style="color: #f56c6c;">*</text>姣涢噸</view>
+ <view class="input-container"
+ :class="{ inputClass: isfocus2, disabledClass: isModifyoriginInfo }">
+ <u--input placeholder="璇疯緭鍏ユ瘺閲�"
+ border="surround"
+ v-model="originInfoForm.coalContactHair"
+ @focus="inputFocus(2)"
+ @blur="inputBlur"
+ @change="inputChange"
+ :disabled="isModifyoriginInfo"></u--input>
+ </view>
+ <view class="unit"
+ :class="{ focusClass: isfocus2 }">鍚�</view>
+ </view>
+ </u-form-item>
+ <u-form-item>
+ <view class="second-line">
+ <view class="label-text"><text style="color: #f56c6c;">*</text>鍑�閲�</view>
+ <view class="input-container"
+ :class="{ disabledClass: isModifyoriginInfo }">
+ <u--input placeholder="鍑�閲�"
+ border="surround"
+ v-model="coalContactClean"
+ :disabled="isModifyoriginInfo"></u--input>
+ </view>
+ <view class="unit">鍚�</view>
+ </view>
+ </u-form-item>
+ <u-form-item prop='contactPicture'>
+ <view class="label-text">
+ <text style="color: #f56c6c;">*</text>鍘熷彂纾呭崟
+ </view>
+ <u-upload :fileList="fileList1"
+ @afterRead="afterRead"
+ @delete="deletePic"
+ name="1"
+ multiple
+ :maxCount="2"
+ width="250"
+ height="150"
+ :previewFullImage="true"
+ :disabled="isModifyoriginInfo"
+ :deletable='!deletable'></u-upload>
+ </u-form-item>
+ </u-form>
+ <view class="submit-button">
+ <u-button text="鎻愪氦"
+ type="primary"
+ @click.stop="submitOriginInfo"
+ :disabled="isModifyoriginInfo"></u-button>
+ </view>
+ </view>
+ </view>
+ </view>
<view class="timeLine">
<u-steps :current="dayRZ.length - 1"
direction="column"
@@ -84,7 +168,7 @@
plain
@click="rcsqClick"
shape="circle"
- :disabled="coalDetailsData.status >= 3"></u-button>
+ :disabled="coalDetailsData.status === 3"></u-button>
</view>
<view class="bottom-button">
<u-button text="鏀剧┖"
@@ -128,7 +212,8 @@
<view class="weigh-button"><u-button text="涓婄璁¢噺"
@click="cengZhongClick"
type="primary"
- shape="circle"></u-button></view>
+ shape="circle"
+ :disabled="haveInputOrigin"></u-button></view>
</view>
<view class="evacuationModal">
<u-modal :show="evacuationModalShow"
@@ -166,18 +251,47 @@
<script>
import { webSocketUrl } from '@/api/request.js';
+ import { BaseUrl } from '@/api/publicInterface.js';
import { mapState, mapMutations } from 'vuex';
+ import combinedTitle from '@/components/combined-title/combined-title.vue';
+ import BigNumber from "bignumber.js"
+ const dayjs = require('dayjs')
+ import isBetween from 'dayjs/plugin/isBetween'
export default {
+ components: {
+ combinedTitle
+ },
onLoad(value) {
this.orderPlanId = value.orderPlanId;
this.yyId = value.yyId;
+ this.originInfoVisible = value.orderType === '澶栬喘'
if (value.overTmWaixiao) {
this.overTmWaixiao = value.overTmWaixiao
this.getWeightHouseObj.overTmWaixiao = value.overTmWaixiao
}
+ this.fileList1 = []
+ dayjs.extend(isBetween)
+ if (this.globalIsFirstWeighing === 1) {
+ this.getTakeCoal(); //鑾峰彇鎻愮叅鍗曡鎯�
+ }
+ this.init(); //鑾峰彇鏃ュ織
},
onShow() {
- this.init();
+ this.coalDayPage(); //鑾峰彇鏃ュ織 瀹氭椂浠诲姟
+ if (this.globalIsFirstWeighing === 2) {
+ this.getTakeCoal(); //鑾峰彇鎻愮叅鍗曡鎯�
+ }
+ },
+ onHide() {
+ clearInterval(this.interval);
+ },
+ onReady() {
+ if (this.originInfoVisible) {
+ this.$refs.originInfoRef.setRules(this.rules);
+ }
+ },
+ beforeDestroy() {
+ clearInterval(this.interval);
},
data() {
return {
@@ -250,16 +364,49 @@
ablePrintOut: false, //鍑洪棬璇佹槸鍚︽樉绀�
enterLoading: false, //鍏ラ棬鎸夐挳loading
outLoading: false, //鍑洪棬鎸夐挳loading
+ // 鏄惁濉啓鍘熷彂淇℃伅
+ isInputOrigin: false,
+ haveInputOrigin: false,
+ isModifyoriginInfo: false,
+ // 鑱氱劍鏃舵敼鍙樻牱寮�
+ isfocus1: false,
+ isfocus2: false,
+ // 杈撳叆鐨勫師鍙戜俊鎭�
+ originInfoForm: {
+ coalContactSkin: '',
+ coalContactHair: '',
+ coalContactClean: 0,
+ contactPicture: ''
+ },
+ originInfoVisible: false,
+ fileList1: [], //鍥剧墖鍒楄〃
+ deletable: true,
+ rules: {
+ contactPicture: {
+ type: 'string',
+ required: true,
+ message: '璇蜂笂浼犲師鍙戠鍗曞浘鐗�',
+ trigger: ['blur', 'change']
+ },
+ coalContactHair: {
+ type: 'string',
+ required: true,
+ message: '璇疯緭鍏ユ瘺閲�',
+ trigger: ['blur', 'change']
+ },
+ coalContactSkin: {
+ type: 'string',
+ required: true,
+ message: '璇疯緭鍏ョ毊閲�',
+ trigger: ['blur', 'change']
+ }
+ },
+ timeout: '0',
+
};
},
- onHide() {
- clearInterval(this.interval);
- },
- beforeDestroy() {
- clearInterval(this.interval);
- },
computed: {
- ...mapState(['globalweigh', 'globalinfraredStatus', 'wsgVisiable', 'wsgContent']),
+ ...mapState(['globalweigh', 'globalinfraredStatus', 'wsgVisiable', 'wsgContent', 'globalIsFirstWeighing']),
name() {
return uni.getStorageSync('name');
},
@@ -282,12 +429,27 @@
},
isapproach() {
return this.currentPageCoalStatus !== 3;
+ },
+ coalContactClean() {
+ let xx = BigNumber(this.originInfoForm.coalContactHair ? this.originInfoForm.coalContactHair : 0)
+ let yy = BigNumber(this.originInfoForm.coalContactSkin ? this.originInfoForm.coalContactSkin : 0)
+ return xx.minus(yy).toNumber().toFixed(2) || ''
+ },
+ currentTime() {
+ let currentDate = new Date();
+ let year = currentDate.getFullYear();
+ let month = ("0" + (currentDate.getMonth() + 1)).slice(-2);
+ let date = ("0" + currentDate.getDate()).slice(-2);
+ let hours = ("0" + currentDate.getHours()).slice(-2);
+ let minutes = ("0" + currentDate.getMinutes()).slice(-2);
+ let formattedDate = year + "-" + month + "-" + date + " " + hours + ":" + minutes;
+ return formattedDate
}
},
methods: {
- ...mapMutations(['changewsgVisiable']),
+ ...mapMutations(['changewsgVisiable', 'changeisUploadimg', 'changeglobalIsFirstWeighing']),
init() {
- this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
+ this.$reqGet('coalDayPage', { id: this.orderPlanId, timeout: this.timeout }).then(res => {
if (res.code == 0) {
// this.dayRZ = res.data;
this.dayRZ = res.data.map(v => {
@@ -303,9 +465,6 @@
});
}
});
- this.coalDayPage(); //鑾峰彇鏃ュ織
- this.getTakeCoal(); //鑾峰彇鎻愮叅鍗曡鎯�
-
},
// 鑾峰彇瀹㈡湇openid
getgetService() {
@@ -358,9 +517,34 @@
this.primarySkin = this.coalDetailsData.skinTwo;
this.primaryHair = this.coalDetailsData.hairTwo;
this.primaryClean = this.coalDetailsData.cleanTwo;
+ // 鍒ゆ柇褰撳墠鏃堕棿鏄惁瓒呭嚭棰勭害鏃堕棿
+ let endTime = this.coalDetailsData.yuYueSection.slice(0, 10) + ' ' + this.coalDetailsData
+ .yuYueSection.slice(-5);
+ if (dayjs(this.currentTime).isAfter(endTime) && this.coalDetailsData.status <= 1) {
+ this.$u.toast('宸茶秴鍑洪绾︽椂闂�,鍙偣鍑诲叆鍦虹敵璇烽噸鏂板叆鍦�')
+ this.timeout = '1'
+ }
// 鍏ラ棬璇� 鍜� 鍑洪棬璇� 鏄惁鏄剧ず
this.ablePrintInduction = this.coalDetailsData.hair || this.coalDetailsData.skin
- this.ablePrintOut = this.coalDetailsData.hair && this.coalDetailsData.skin
+ this.ablePrintOut = this.coalDetailsData.hair && this.coalDetailsData.skin || this
+ .coalDetailsData.status === 6
+ // 鍘熷彂淇℃伅鍥炴樉浠ュ強鎺у埗鏄惁鍙慨鏀�
+
+ this.haveInputOrigin = !this.coalDetailsData.skinTwo && this.coalDetailsData.orderType ===
+ '澶栬喘'
+ this.deletable = this.isModifyoriginInfo = this.coalDetailsData.status > 3
+ this.originInfoForm.coalContactSkin = this.coalDetailsData.skinTwo;
+ this.originInfoForm.coalContactHair = this.coalDetailsData.hairTwo;
+ if (this.coalDetailsData.contactPicture) {
+ this.fileList1 = this.coalDetailsData.contactPicture.split(',').map(v => {
+ return {
+ url: BaseUrl + v
+ }
+ })
+ } else {
+ this.fileList1 = []
+ }
+
} else {
this.$u.toast('鍔犺浇澶辫触');
}
@@ -387,9 +571,8 @@
// 鏃ュ織鏌ヨ
coalDayPage() {
this.interval = setInterval(() => {
- this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
+ this.$reqGet('coalDayPage', { id: this.orderPlanId, timeout: this.timeout }).then(res => {
if (res.code == 0) {
- // this.dayRZ = res.data;
this.dayRZ = res.data.map(v => {
let slicedate = v.taskStatusDes.slice(0, 10);
if (slicedate == this.currentDate) {
@@ -490,6 +673,7 @@
},
// 绉伴噸
cengZhongClick() {
+ this.changeglobalIsFirstWeighing(2)
this.$reqGet('getWeighHouse', this.getWeightHouseObj).then(res => {
console.log(res, '鑾峰彇纾呮埧');
if (res.code == 0) {
@@ -503,10 +687,10 @@
res.data.id
}&gateCameraId=${res.data.lastEquipmentId}&gateCameraCode=${res.data.lastEquipmentCode}&weighHouseCode=${res.data.code}&primarySkin=${
this.primarySkin
- }&primaryHair=${this.primaryHair}&psrimaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}`
+ }&primaryHair=${this.primaryHair}&primaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}`
});
} else {
- this.$u.toast('鏈湪纾呮埧锛岃鍓嶅線纾呮埧鍚庡啀璇曪紒锛�');
+ this.$u.toast(res.msg ? res.msg : '鏈湪纾呮埧锛岃鍓嶅線纾呮埧鍚庡啀璇曪紒锛�');
}
});
},
@@ -582,6 +766,95 @@
},
wsgContentConfirm() {
this.changewsgVisiable(false)
+ },
+ // input鑱氱劍
+ inputFocus(v) {
+ if (v == 1) {
+ this.isfocus1 = true;
+ } else {
+ this.isfocus2 = true;
+ }
+ },
+ // input澶辩劍
+ inputBlur() {
+ this.isfocus1 = false;
+ this.isfocus2 = false;
+ },
+ inputChange() {
+ if (Number(this.originInfoForm.coalContactHair) > 0 && Number(this.originInfoForm.coalContactSkin > 0)) {
+ this.isInputOrigin = true;
+ }
+ },
+ deletePic(event) {
+ this.changeisUploadimg(true);
+ this[`fileList${event.name}`].splice(event.index, 1);
+ },
+ async afterRead(event) {
+ // 褰撹缃� mutiple 涓� true 鏃�, file 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮�
+ let lists = [].concat(event.file);
+ let fileListLen = this[`fileList${event.name}`].length;
+ lists.map(item => {
+ this[`fileList${event.name}`].push({
+ ...item,
+ status: 'uploading',
+ message: '涓婁紶涓�'
+ });
+ });
+ for (let i = 0; i < lists.length; i++) {
+ const result = await this.uploadFilePromise(lists[i].url, event.name);
+ let item = this[`fileList${event.name}`][fileListLen];
+ this[`fileList${event.name}`].splice(
+ fileListLen,
+ 1,
+ Object.assign(item, {
+ status: 'success',
+ message: '涓婁紶鎴愬姛',
+ url: result
+ })
+ );
+ fileListLen++;
+ }
+ },
+ uploadFilePromise(url, num) {
+ return new Promise((resolve, reject) => {
+ let a = uni.uploadFile({
+ url: BaseUrl + '/admin/sys-file/uploadUnToken',
+ filePath: url,
+ name: 'file',
+ success: res => {
+ if (num == 1) {
+ this.originInfoForm.contactPicture = JSON.parse(res.data).data.url;
+ resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
+ }
+ }
+ });
+ });
+ },
+ submitOriginInfo() {
+ let form = {
+ skin: Number(this.originInfoForm.coalContactSkin),
+ hair: Number(this.originInfoForm.coalContactHair),
+ clean: Number(this.coalContactClean),
+ tmId: this.getWeightHouseObj.tmId,
+ contactPicture: this.originInfoForm.contactPicture,
+ deptId: this.coalDetailsData.deptId,
+ filedId: this.coalDetailsData.filedId,
+ coalName: this.coalDetailsData.coalName,
+ taskCoalCode: this.coalDetailsData.code,
+ carNo: this.coalDetailsData.carNo,
+ }
+ this.$refs.originInfoRef.validate().then(res => {
+ this.$reqPost('appSaveContact', form, 'json').then(res => {
+ if (res.code === 0) {
+ this.$u.toast('鎻愪氦鎴愬姛')
+ this.getTakeCoal()
+ } else {
+ this.$u.toast(res.msg ? res.msg : '鎻愪氦澶辫触')
+ }
+ })
+ }).catch(errors => {
+ uni.$u.toast('璇峰~鍐欏畬鏁村師鍙戜俊鎭�')
+ })
}
}
};
@@ -769,6 +1042,86 @@
}
}
+ .origin-info {
+ width: 690rpx;
+ height: 600rpx;
+ margin: vww(20) vww(15) vww(13);
+ 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;
+ @include flex;
+ justify-content: center;
+ overflow: hidden;
+ position: relative;
+ top: vww(120);
+
+ &_wrapper {
+ width: 650rpx;
+ height: 600rpx;
+ @include flex;
+ flex-direction: column;
+ margin-bottom: vww(20);
+ position: relative;
+
+ .origin-info_content {
+ width: 100%;
+ height: 100%;
+ overflow-y: scroll;
+
+ .first-line,
+ .second-line {
+ width: 90%;
+ height: vww(44);
+
+ .focusClass {
+ color: #5b95fd;
+ }
+
+ .inputClass {
+ border: 1px solid rgba(73, 95, 252, 0.6) !important;
+ box-shadow: 0rpx 5rpx 13rpx 0rpx rgba(73, 95, 252, 0.6) !important;
+ border-radius: 12rpx !important;
+ }
+
+ .isInputOrigin {
+ background-color: #f4f4fc;
+ }
+
+ .input-container {
+ border: 2px solid #c5c5c5;
+ box-shadow: 0rpx 5rpx 13rpx 0rpx #c5c5c5;
+ border-radius: 12rpx;
+ }
+ }
+
+ .first-line {
+ @include flex;
+ position: relative;
+ top: vww(8);
+ }
+
+ .second-line {
+ @include flex;
+ }
+
+ .submit-button {
+ width: 180rpx;
+ margin: vww(8) auto;
+
+ .u-button {
+ font-size: 28rpx;
+ font-weight: 300;
+ color: #ffffff;
+ background: #497bfb;
+ letter-spacing: 4rpx;
+ border-radius: 37rpx 37rpx 37rpx 37rpx;
+ box-shadow: 2rpx 3rpx 13rpx 0rpx rgba(43, 98, 239, 0.5), 0rpx 0rpx 9rpx 0rpx rgba(247, 250, 253, 0.29);
+ }
+ }
+ }
+ }
+ }
+
.timeLine {
height: 300rpx;
margin: vww(20);
--
Gitblit v1.9.1