| | |
| | | width: vww(40); |
| | | } |
| | | .scroll-Y { |
| | | height: 900rpx; |
| | | height: 1000rpx; |
| | | position: relative; |
| | | top: 20rpx; |
| | | } |
| | | .utils-button { |
| | | width: 94%; |
| | |
| | | font-weight: 400; |
| | | color: #f81414; |
| | | position: absolute; |
| | | right: -10rpx; |
| | | right: 12rpx; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | |
| | | } |
| | | } |
| | | .filter-main { |
| | | height: 950rpx; |
| | | min-height: 950rpx; |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | |
| | | <view class="cutomer-name" v-else>客户:{{ coalDetailsData.customerName || '' }}</view> |
| | | <view class="fild-name"> |
| | | <view class="">矿场:{{ coalDetailsData.deptName || '暂无' }}</view> |
| | | <view class="">煤场:{{ coalDetailsData.filedName || '暂无' }}</view> |
| | | <view class="" v-if="orderType == '转入' || orderType == '转出'">煤场:{{ coalDetailsData.toFiledName || '' }}</view> |
| | | <view class="" v-else>煤场:{{ coalDetailsData.filedName || '暂无' }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="block-information"> |
| | |
| | | <view class="utilsBox"> |
| | | <view class="utils_chil utils_chilTop"> |
| | | <view class="top-button"> |
| | | <u-button text="签到" type="primary" plain @click="arriveClick" shape="circle"></u-button> |
| | | <u-button text="入场申请" type="primary" plain @click="rcsqClick" shape="circle"></u-button> |
| | | <u-button text="签到" type="primary" plain @click="arriveClick" shape="circle" :disabled="coalDetailsData.status >= 2"></u-button> |
| | | <u-button text="入场申请" type="primary" plain @click="rcsqClick" shape="circle" :disabled="coalDetailsData.status >= 3"></u-button> |
| | | </view> |
| | | <view class="bottom-button"> |
| | | <u-button text="放空" type="primary" plain @click="evacuation" throttleTime="500" shape="circle" :disabled="isEvacuation || isapproach"></u-button> |
| | |
| | | <p>{{ nowTime }}</p> |
| | | </view> |
| | | </view> |
| | | <view class="punchTheClock_text"> |
| | | <!-- <view class="punchTheClock_text"> |
| | | <u-icon name="map" color="#51e30d" size="30"></u-icon> |
| | | <text>未进入矿场区域</text> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | <view class="wait-collection" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/diverbanner.png') no-repeat;background-size:contain"></view> |
| | | <view class="collection-form"> |
| | | <view class="collection-form-item" v-for="(item, index) in driverBillOfLoadingData.list1" :key="index"> |
| | | <view class="main-divider"></view> |
| | | <view class="first-line"> |
| | | <view class="main-information"> |
| | | <view class="sign">装</view> |
| | |
| | | <text v-else-if="item.orderType == '外购' || item.orderType == '内购' || item.orderType == '转入'">{{ item.customerNameCopy }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="main-divider"></view> |
| | | <view class="point-number"> |
| | | <text class="residue">{{ item.carNum - item.taskNum }}</text> |
| | | <text>/{{ item.carNum }}</text> |
| | |
| | | |
| | | <view class="appointment-form"> |
| | | <view class="appointment-form-item" v-for="(item, index) in driverBillOfLoadingData.list3" :key="index"> |
| | | <view class="main-divider"></view> |
| | | <view class="first-line"> |
| | | <view class="main-information"> |
| | | <view class="sign">装</view> |
| | |
| | | <text v-else-if="item.orderType == '外购' || item.orderType == '内购' || item.orderType == '转入'">{{ item.customerName }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="main-divider"></view> |
| | | <view class="map-icon" @click.stop="skipMap(item)"> |
| | | <view><u-icon name="map" color="#4978F0" size="40"></u-icon></view> |
| | | </view> |
| | | </view> |
| | | <view class="second-line"> |
| | | <view class="first-extra"> |
| | | <view class="main-information"> |
| | | <view class="sign">卸</view> |
| | | <view class="filedname exceedHide"> |
| | |
| | | ></u-empty> |
| | | <view class="appointment-form"> |
| | | <view class="appointment-form-item" v-for="(item, index) in driverBillOfLoadingData.list2" :key="index" @click="list3CardIconClick(item)"> |
| | | <view class="main-divider"></view> |
| | | <view class="first-line"> |
| | | <view class="main-information"> |
| | | <view class="sign">装</view> |
| | |
| | | <text v-else-if="item.orderType == '外购' || item.orderType == '内购' || item.orderType == '转入'">{{ item.customerName }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="main-divider"></view> |
| | | <view class="map-icon" @click.stop="skipMap(item)"> |
| | | <view><u-icon name="map" color="#4978F0" size="40"></u-icon></view> |
| | | </view> |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-around; |
| | | .main-divider { |
| | | width: 560rpx; |
| | | height: 2rpx; |
| | | background: #e3e3e3; |
| | | position: absolute; |
| | | top: 122rpx; |
| | | left: 128rpx; |
| | | } |
| | | .first-line { |
| | | width: 94%; |
| | | height: vww(68); |
| | |
| | | color: #ffffff; |
| | | margin-right: vww(20); |
| | | } |
| | | } |
| | | .main-divider { |
| | | width: 548rpx; |
| | | height: 1rpx; |
| | | background: #e3e3e3; |
| | | position: absolute; |
| | | top: 115rpx; |
| | | left: vww(50); |
| | | } |
| | | .point-number { |
| | | position: absolute; |
| | |
| | | @include formItem; |
| | | height: vww(191); |
| | | justify-content: space-between; |
| | | overflow: hidden; |
| | | .main-divider { |
| | | width: 560rpx; |
| | | height: 1rpx; |
| | | background: #e3e3e3; |
| | | position: absolute; |
| | | top: 122rpx; |
| | | left: 128rpx; |
| | | } |
| | | .first-line { |
| | | position: relative; |
| | | @include firstLine; |
| | |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | |
| | | .sign { |
| | | width: vww(28); |
| | | height: vww(28); |
| | |
| | | margin-right: vww(20); |
| | | } |
| | | } |
| | | .main-divider { |
| | | width: 548rpx; |
| | | height: 1rpx; |
| | | background: #e3e3e3; |
| | | position: absolute; |
| | | top: vww(40); |
| | | left: vww(50); |
| | | } |
| | | .first-extra { |
| | | @include firstLine; |
| | | .main-information { |
| | | width: 100%; |
| | | height: vww(28); |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | .sign { |
| | | width: vww(28); |
| | | height: vww(28); |
| | | line-height: vww(28); |
| | | text-align: center; |
| | | background: url('https://mx.jzeg.cn:9095/appimg/image/banner/redblock.png') no-repeat; |
| | | background-size: contain; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #ffffff; |
| | | margin-right: vww(20); |
| | | } |
| | | } |
| | | } |
| | | .second-line { |
| | |
| | | <u-popup :show="editDriverPopupShow" mode="bottom" @close="editDriverPopupClose" @open="editDriverPopupOpen" :closeable="true"> |
| | | <combined-title title="修改个人信息" style="margin-left:20rpx"></combined-title> |
| | | <view class="editDriverPopup-container-box"> |
| | | <u--form labelPosition="left" :model="editUserInfo" ref="form1"> |
| | | <u-form-item labelWidth="20%" label="姓名" ref="item1"><u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="20%" label="身份证号" ref="item1"><u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="20%" label="手机号" ref="item1"><u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="20%" label="车牌号" ref="item1"><u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="20%" label="体重" ref="item1"><u--input v-model="editUserInfo.weight" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="20%" label="车轴数" ref="item1"><u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input></u-form-item> |
| | | <u-form-item labelWidth="25%" label="车辆照片" ref="item1"> |
| | | <u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="250" height="150"></u-upload> |
| | | <u--form labelPosition="left" :model="editUserInfo" ref="editRef"> |
| | | <u-form-item labelWidth="20%" label="姓名" prop="name" required> |
| | | <u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="25%" label="行驶证照片" ref="item1"> |
| | | <u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="1" width="250" height="150"></u-upload> |
| | | <u-form-item labelWidth="20%" label="身份证号" prop="idCard" required> |
| | | <u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="20%" label="手机号" prop="phone" required> |
| | | <u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="20%" label="车牌号" prop="carNo" required> |
| | | <u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="20%" label="体重" prop="weight" required> |
| | | <u--input v-model="editUserInfo.weight" border="none" inputAlign="left" placeholder="体重以kg作为单位"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="20%" label="车轴数" prop="axleNum" required> |
| | | <u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="25%" label="车辆照片" @click="beforeRead" prop="carImg" required> |
| | | <u-upload |
| | | :fileList="fileList1" |
| | | @afterRead="afterRead" |
| | | @delete="deletePic" |
| | | name="1" |
| | | multiple |
| | | :maxCount="1" |
| | | width="250" |
| | | height="150" |
| | | :previewFullImage="true" |
| | | ></u-upload> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="25%" label="行驶证照片" ref="item1" @click="beforeRead" prop="drivingImg" required> |
| | | <u-upload |
| | | :fileList="fileList2" |
| | | @afterRead="afterRead" |
| | | @delete="deletePic" |
| | | name="2" |
| | | multiple |
| | | :maxCount="1" |
| | | width="250" |
| | | height="150" |
| | | :previewFullImage="true" |
| | | ></u-upload> |
| | | </u-form-item> |
| | | </u--form> |
| | | <u-button text="提交" @click="updateUser" type="primary"></u-button> |
| | |
| | | <script> |
| | | import { customerId, userInfo, redirectLogin } from '@/utils/status'; |
| | | import { BaseUrl } from '@/api/publicInterface.js'; |
| | | import { mapMutations } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | weight: '', |
| | | userId: '' |
| | | }, |
| | | rules: { |
| | | name: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请填写姓名', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | idCard: [ |
| | | { |
| | | 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: '身份证号格式不正确' |
| | | } |
| | | ], |
| | | phone: [ |
| | | { |
| | | required: true, |
| | | message: '此项为必填项', |
| | | // blur和change事件触发检验 |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | { |
| | | min: 11, |
| | | max: 11, |
| | | message: '请输入合法手机号' |
| | | }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | return uni.$u.test.mobile(value); |
| | | }, |
| | | message: '手机号码格式不正确', |
| | | trigger: ['change', 'blur'] |
| | | } |
| | | ], |
| | | weight: { |
| | | type: 'number', |
| | | 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'] |
| | | } |
| | | ], |
| | | axleNum: [ |
| | | { |
| | | transform(value) { |
| | | return Number(value); |
| | | }, |
| | | validator: (rule, value, callback) => { |
| | | return value <= 10; |
| | | }, |
| | | message: '请输入正确的车轴数', |
| | | trigger: ['change', 'blur'] |
| | | } |
| | | ], |
| | | carImg: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请上传车辆图片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | drivingImg: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请上传行驶证照片', |
| | | trigger: ['blur', 'change'] |
| | | } |
| | | }, |
| | | src: '', |
| | | fileList1: [], |
| | | fileList2: [], |
| | |
| | | onShow() { |
| | | // this.init(); |
| | | }, |
| | | onReady() { |
| | | this.$refs.editRef.setRules(this.rules); |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['changeisUploadimg']), |
| | | init() { |
| | | this.getUserEntity(); |
| | | }, |
| | |
| | | this.$reqGet('getUserEntity').then(res => { |
| | | uni.hideLoading(); |
| | | this.userInfo = res.data; |
| | | uni.setStorageSync('carImg', this.userInfo.carImg); |
| | | uni.setStorageSync('drivingImg', this.userInfo.drivingImg); |
| | | if (this.fileList1.length == 0) { |
| | | this.fileList1.push({ |
| | | url: `${BaseUrl}${this.userInfo.carImg}` |
| | | }); |
| | | } |
| | | if (this.fileList2.length == 0) { |
| | | this.fileList2.push({ |
| | | url: `${BaseUrl}${this.userInfo.drivingImg}` |
| | | }); |
| | | } |
| | | Object.keys(this.editUserInfo).map(item => { |
| | | if (res.data[item]) { |
| | | this.editUserInfo[item] = res.data[item]; |
| | |
| | | this.previewImageShow = true; |
| | | }); |
| | | }, |
| | | beforeRead() { |
| | | this.changeisUploadimg(true); |
| | | }, |
| | | // 删除 |
| | | deletePic(event) { |
| | | this.changeisUploadimg(true); |
| | | this[`fileList${event.name}`].splice(event.index, 1); |
| | | }, |
| | | // 新增图片 |
| | |
| | | 1, |
| | | Object.assign(item, { |
| | | status: 'success', |
| | | message: '', |
| | | message: '上传成功', |
| | | url: result |
| | | }) |
| | | ); |
| | |
| | | // user: 'test' |
| | | // }, |
| | | success: res => { |
| | | resolve(JSON.parse(res.data).data.url); |
| | | if (num == 1) { |
| | | this.editUserInfo.carImg = JSON.parse(res.data).data.url; |
| | | uni.setStorageSync('carImg', JSON.parse(res.data).data.url); |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } else if (num == 2) { |
| | | this.editUserInfo.drivingImg = JSON.parse(res.data).data.url; |
| | | uni.setStorageSync('drivingImg', JSON.parse(res.data).data.url); |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } |
| | | } |
| | | }); |
| | |
| | | }, |
| | | // 修改用户信息 |
| | | updateUser() { |
| | | this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => { |
| | | console.log('更新数据', res); |
| | | this.editDriverPopupShow = false; |
| | | if (res.code == 0) { |
| | | this.$u.toast('修改成功'); |
| | | this.init(); |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: 'none', |
| | | duration: 2000 |
| | | this.editUserInfo = { |
| | | ...this.editUserInfo, |
| | | carImg: uni.getStorageSync('carImg'), |
| | | drivingImg: uni.getStorageSync('drivingImg') |
| | | }; |
| | | 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('修改成功'); |
| | | this.init(); |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }) |
| | | .catch(err => { |
| | | this.$u.toast('修改失败'); |
| | | }); |
| | | }, |
| | | logout() { |
| | | this.logoutShow = true; |
| | |
| | | .editDriverPopup-container { |
| | | .u-popup { |
| | | .u-transition { |
| | | height: 95%; |
| | | height: 75%; |
| | | .u-popup__content { |
| | | overflow: scroll !important; |
| | | .editDriverPopup-container-box { |
| | |
| | | } |
| | | } |
| | | .main-divider { |
| | | width: 548rpx; |
| | | width: 560rpx; |
| | | height: 1rpx; |
| | | background: #e3e3e3; |
| | | position: absolute; |
| | | top: 98rpx; |
| | | left: vww(50); |
| | | left: 122rpx; |
| | | } |
| | | .point-number { |
| | | position: absolute; |
| | |
| | | id: 0, |
| | | callout: { |
| | | content: '起点', //文本 |
| | | color: '#000000', //文字颜色 |
| | | fontSize: 14, //文本大小 |
| | | borderRadius: 15, //边框圆角 |
| | | color: '#ffffff', //文字颜色 |
| | | fontSize: 10, //文本大小 |
| | | borderRadius: 12, //边框圆角 |
| | | borderWidth: '10', |
| | | bgColor: '#e51860', //背景颜色 |
| | | bgColor: '#08b078', //背景颜色 |
| | | display: 'ALWAYS' //常显 |
| | | } |
| | | }, |
| | |
| | | callout: { |
| | | content: '终点', //文本 |
| | | color: '#ffffff', //文字颜色 |
| | | fontSize: 14, //文本大小 |
| | | borderRadius: 15, //边框圆角 |
| | | fontSize: 10, //文本大小 |
| | | borderRadius: 12, //边框圆角 |
| | | borderWidth: '10', |
| | | bgColor: '#e51860', //背景颜色 |
| | | bgColor: '#fc645c', //背景颜色 |
| | | display: 'ALWAYS' //常显 |
| | | } |
| | | } |
| | |
| | | _this.polyline = [ |
| | | { |
| | | points: pl, |
| | | color: '#FF0000DD', |
| | | color: '#04b474', |
| | | width: 4, |
| | | arrowLine: true |
| | | } |
| | |
| | | phone: [ |
| | | { |
| | | required: true, |
| | | message: '此为必填字段', |
| | | message: '此项为必填项', |
| | | // blur和change事件触发检验 |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | |
| | | }) |
| | | .catch(err => { |
| | | console.log('err', err); |
| | | uni.$u.toast('请规范输入内容'); |
| | | this.$u.toast('请规范输入内容'); |
| | | }); |
| | | } else { |
| | | this.$u.toast('两次密码不一致'); |