From f3bd5baa8eb4eb7a896f7312a2e9a7c89a46cef5 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 27 八月 2024 09:18:29 +0800
Subject: [PATCH] ll
---
h5/pages/driver/reserved.vue | 184 +++++++++++++++++++++++++++++++--------------
1 files changed, 126 insertions(+), 58 deletions(-)
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index c201b32..813062c 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -5,9 +5,19 @@
<view class="line">
<view class="label">
<text>*</text>
+ <text>鍏ュ洯鍘熷洜</text>
+ </view>
+ <view class="value" @click="showReason = true">
+ <text class="mr6" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
+ </view>
+ </view>
+ <view class="line">
+ <view class="label">
+ <text>*</text>
<text>鍚堝悓鍙�</text>
</view>
- <view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚屽彿" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+ <view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚屽彿" v-model="param.contractNum" placeholder-style="color: #999999;" /></view>
</view>
<!-- -->
<view class="line">
@@ -16,7 +26,7 @@
<text>鍒板満鏃堕棿</text>
</view>
<view class="value" @click="showDatetime = true">
- <text class="mr6" :style="{ color: param.area ? '#000000' : '#999999' }">{{ param.area ? param.area : '璇烽�夋嫨' }}</text>
+ <text class="mr6" :style="{ color: param.arriveDate ? '#000000' : '#999999' }">{{ param.arriveDate ? param.arriveDate : '璇烽�夋嫨' }}</text>
<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
</view>
</view>
@@ -27,8 +37,8 @@
</view>
<view class="value">
<view class="btns">
- <view class="btn active">鏁存墭鐩�</view>
- <view class="btn">浠剁儫</view>
+ <view @click="inTypeClick(0)" :class="{ active: param.inType == 0 }" class="btn">鏁存墭鐩�</view>
+ <view @click="inTypeClick(1)" :class="{ active: param.inType == 1 }" class="btn">浠剁儫</view>
</view>
</view>
</view>
@@ -38,7 +48,7 @@
<text>鎬昏繍杈撻噺</text>
</view>
<view class="value">
- <input type="text" placeholder="璇疯緭鍏ユ�昏繍杈撻噺" v-model="param.receptMemberName" placeholder-style="color: #999999;" />
+ <input type="number" placeholder="璇疯緭鍏ユ�昏繍杈撻噺" v-model="param.totalNum" placeholder-style="color: #999999;" />
<text class="unit">涓囨敮</text>
</view>
</view>
@@ -47,8 +57,9 @@
<text>*</text>
<text>鍑嗚繍璇佺収鐗�</text>
</view>
- <view class="value">
- <view class="upload_wrap"><u-icon name="plus" size="20" color="#999999"></u-icon></view>
+ <view class="value" @click="handleUpload">
+ <image v-if="param.transportImgFull" class="upload_wrap" :src="param.transportImgFull" alt="">
+ <view v-else class="upload_wrap"><u-icon name="plus" size="20" color="#999999"></u-icon></view>
</view>
</view>
<view class="empty"></view>
@@ -58,14 +69,14 @@
<text>*</text>
<text>鍙告満濮撳悕</text>
</view>
- <view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+ <view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" v-model="param.driverName" placeholder-style="color: #999999;" /></view>
</view>
<view class="line">
<view class="label">
<text>*</text>
<text>鎵嬫満鍙�</text>
</view>
- <view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+ <view class="value"><input type="number" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" v-model="param.driverPhone" placeholder-style="color: #999999;" /></view>
</view>
<!-- -->
<view class="line">
@@ -74,7 +85,7 @@
<text>杞﹀墠鐗岀収鍙�</text>
</view>
<view class="value" @click="openInput(1)">
- <text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
+ <text :style="{ color: param.carCodeFront ? '#000000' : '#999999' }">{{ param.carCodeFront ? param.carCodeFront : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
</view>
</view>
<view class="line">
@@ -82,18 +93,19 @@
<text>*</text>
<text>杞﹀悗鐗岀収鍙�</text>
</view>
- <view class="value" @click="openInput(1)">
- <text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
+ <view class="value" @click="openInput(2)">
+ <text :style="{ color: param.carCodeBack ? '#000000' : '#999999' }">{{ param.carCodeBack ? param.carCodeBack : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
</view>
</view>
<view class="copy" @click="copy">澶嶅埗杞﹀墠鐗岀収鍙�</view>
<view class="perch"></view>
- <view class="handle_sub">
+ <view class="handle_sub" @click="onSubmit">
鎻愪氦
</view>
-
- <!-- -->
</view>
+
+ <!-- -->
+ <u-picker :show="showReason" keyName="reason" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
<u-datetime-picker
:show="showDatetime"
closeOnClickOverlay
@@ -109,74 +121,130 @@
<script>
import keyboardInput from '@/components/keyboard-input/keyboard-input.vue';
-import { uploadUrl } from '@/api';
+import { uploadUrl, driverCarApply, driverReasonList } from '@/api';
+import dayjs from 'dayjs'
export default {
components: {
keyboardInput
},
data() {
return {
- param: {},
+ param: {
+ inType: 0,
+ driverName: uni.getStorageSync('driverInfo').realname,
+ driverPhone: uni.getStorageSync('driverInfo').username,
+ },
+ reasonIndex: -1,
+ reasonList: [],
showDatetime: false,
+ showReason: false,
inputType: ''
};
},
+ created() {
+ this.initData()
+ },
methods: {
- copy(){
- this.param.carNos = this.param.carNos
- uni.showToast({
- title: '澶嶅埗鎴愬姛',
- duration: 1000
- });
- },
- handleUpload() {
- uni.chooseImage({
- success: chooseImageRes => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
- for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
- uni.uploadFile({
- url: `${uploadUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
- filePath: chooseImageRes.tempFilePaths[i],
- name: 'file',
- formData: {
- folderCode: 'MEMBER_IMG'
- },
- success: uploadFileRes => {
- console.log('uploadFileRes', uploadFileRes);
- let res = JSON.parse(uploadFileRes.data);
- if (type === 'faceImg') {
- this.param.faceImg = res.data.halfPath;
- this.param.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
- } else {
- this.param.imgurl = res.data.halfPath;
- this.param.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
- }
- },
- complete() {
- if (i === chooseImageRes.tempFilePaths.length - 1) {
- uni.hideLoading();
- }
- }
- });
- }
+ onSubmit() {
+ const param = { ...this.param }
+ if (!param.arriveDate) return this.showToast('璇烽�夋嫨鍒板満鏃堕棿')
+ if (!param.inType && param.inType != 0) return this.showToast('璇烽�夋嫨鍏ュ簱绫诲瀷')
+ if (!param.contractNum) return this.showToast('璇疯緭鍏ュ悎鍚屽彿')
+ if (!param.totalNum) return this.showToast('璇疯緭鍏ユ�昏繍杈撻噺')
+ if (!param.driverName) return this.showToast('璇疯緭鍏ュ徃鏈哄鍚�')
+ if (!param.driverPhone) return this.showToast('璇疯緭鍏ユ墜鏈哄彿')
+ if (!param.carCodeFront) return this.showToast('璇疯緭鍏ヨ溅鍓嶇墝鍙�')
+ if (!param.carCodeBack) return this.showToast('璇疯緭鍏ヨ溅鍚庣墝鍙�')
+ if (!param.transportImgFull) return this.showToast('璇蜂笂浼犲噯杩愯瘉鐓х墖')
+ param.arriveDate = param.arriveDate + ':00'
+ driverCarApply({...param}).then(res => {
+ if(res && res.code === 200){
+ uni.navigateBack()
}
- });
+ })
},
- setinDate(e) {},
+ initData(){
+ driverReasonList().then(res => {
+ this.reasonList = [res.data]
+ })
+ },
+ reasonConfirm(e) {
+ const reasonList = this.reasonList[0]
+ const index = e.indexs[0]
+ this.$set(this.param, 'inReason', reasonList[index].reason)
+ this.$set(this.param, 'reasonId', reasonList[index].id)
+ this.showReason = false
+ },
+ setinDate(e) {
+ this.$set(this.param, 'arriveDate', dayjs(e.value).format('YYYY-MM-DD HH:mm'))
+ this.showDatetime = false
+ },
+ inTypeClick(e) {
+ this.param.inType = e
+ },
openInput(type) {
this.inputType = type;
this.$refs.keyboard.open();
},
setPlate(e) {
if (this.inputType === 1) {
- this.param.carNos = e;
+ this.$set(this.param, 'carCodeFront', e)
} else if (this.inputType === 2) {
- this.param.carNos = e;
+ this.$set(this.param, 'carCodeBack', e)
}
this.$forceUpdate();
this.closeInput();
},
+ copy(){
+ if(this.param.carCodeFront){
+ this.$set(this.param, 'carCodeBack', this.param.carCodeFront)
+ this.showToast('澶嶅埗鎴愬姛');
+ }
+
+ },
+ handleUpload() {
+ let token = uni.getStorageSync('token') || ''
+ uni.chooseImage({
+ count: 1,
+ success: (chooseImageRes) => {
+ uni.showLoading({ title: '涓婁紶涓�', mask: true })
+ const tempFilePaths = chooseImageRes.tempFilePaths
+ let imgs = tempFilePaths.map((value, index) => {
+ return {
+ name: 'file',
+ uri: value
+ }
+ })
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ files: imgs,
+ name: 'file',
+ formData: {
+ folder: 'PLATFORM'
+ },
+ header: {
+ Dm_user_token: token
+ },
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ console.log('res', res.data)
+ if (res.data && res.data.length > 0) {
+ this.$set(this.param, 'transportImg', res.data[0].imgaddr)
+ this.$set(this.param, 'transportImgFull', res.data[0].url)
+ }
+ },
+ fail(err) {
+ console.log('err', err)
+ },
+ complete() {
+ uni.hideLoading()
+ }
+ })
+ // }
+ }
+ })
+ },
closeInput() {
this.$refs.keyboard.close();
}
--
Gitblit v1.9.3