This commit is contained in:
dzl 2025-05-20 17:46:47 +08:00
commit 0ac4513e2d
3 changed files with 111 additions and 79 deletions

View File

@ -3,10 +3,13 @@
<view class="form-panel">
<uni-forms ref="ebikeInfoForm" :modelValue="ebikeInfo" labelWidth="100px">
<uni-section title="车辆" type="line">
<uni-forms-item label="车辆编号" required name="bikeCode" :rules="[{ required: true, errorMessage: '请扫描或输入车辆编号' }]">
<bikeCodeScan @scan-change="bikeCodeScanChange" :codeValue="ebikeInfo.bikeCode" ref="bikeCodeScanRef" />
<uni-forms-item label="车辆编号" required name="bikeCode"
:rules="[{ required: true, errorMessage: '请扫描或输入车辆编号' }]">
<bikeCodeScan @scan-change="bikeCodeScanChange" :codeValue="ebikeInfo.bikeCode"
ref="bikeCodeScanRef" />
</uni-forms-item>
<uni-forms-item label="车辆型号" required name="bikeModel" :rules="[{ required: true, errorMessage: '请输入车辆型号' }]">
<uni-forms-item label="车辆型号" required name="bikeModel"
:rules="[{ required: true, errorMessage: '请输入车辆型号' }]">
<uni-easyinput v-model="ebikeInfo.bikeModel" placeholder="请输入车辆型号" />
</uni-forms-item>
<uni-forms-item label="车牌号" name="bikeNumber">
@ -14,29 +17,31 @@
</uni-forms-item>
</uni-section>
<uni-section title="中控" type="line">
<uni-forms-item label="中控编号" required :name="['ebikeEcuInfo','ecuCode']" :rules="[{ required: true, errorMessage: '请扫描或输入中控编号' }]">
<uni-forms-item label="中控编号" required :name="['ebikeEcuInfo','ecuCode']"
:rules="[{ required: true, errorMessage: '请扫描或输入中控编号' }]">
<ecuCodeScan @scan-change="ecuCodeScanChange" :codeValue="ebikeInfo.ebikeEcuInfo.ecuCode" />
</uni-forms-item>
<uni-forms-item label="中控序列号" required :name="['ebikeEcuInfo','ecuSN']" :rules="[{ required: true, errorMessage: '请输入中控序列号' }]">
<uni-easyinput v-model="ebikeInfo.ebikeEcuInfo.ecuSN" placeholder="请输入中控序列号"/>
<uni-forms-item label="中控序列号" required :name="['ebikeEcuInfo','ecuSN']"
:rules="[{ required: true, errorMessage: '请输入中控序列号' }]">
<uni-easyinput v-model="ebikeInfo.ebikeEcuInfo.ecuSN" placeholder="请输入中控序列号" />
</uni-forms-item>
<uni-forms-item label="中控品牌" required :name="['ebikeEcuInfo','ecuModel']" :rules="[{ required: true, errorMessage: '请选择中控品牌' }]">
<uni-data-select
v-model="ebikeInfo.ebikeEcuInfo.ecuModel"
:localdata="ecuModelRange"
@change="ecuModelChange"
placeholder="请选择中控品牌"
></uni-data-select>
<uni-forms-item label="中控品牌" required :name="['ebikeEcuInfo','ecuModel']"
:rules="[{ required: true, errorMessage: '请选择中控品牌' }]">
<uni-data-select v-model="ebikeInfo.ebikeEcuInfo.ecuModel" :localdata="ecuModelRange"
@change="ecuModelChange" placeholder="请选择中控品牌"></uni-data-select>
</uni-forms-item>
</uni-section>
<uni-section title="电池" type="line">
<uni-forms-item label="电池编号" required :name="['ebikeBatteryInfo','batteryCode']" :rules="[{ required: true, errorMessage: '请扫描或输入电池编号' }]">
<bikeCodeScan @scan-change="batteryCodeScanChange" :codeValue="ebikeInfo.ebikeBatteryInfo.batteryCode" />
<uni-forms-item label="电池编号" required :name="['ebikeBatteryInfo','batteryCode']"
:rules="[{ required: true, errorMessage: '请扫描或输入电池编号' }]">
<bikeCodeScan @scan-change="batteryCodeScanChange"
:codeValue="ebikeInfo.ebikeBatteryInfo.batteryCode" />
</uni-forms-item>
</uni-section>
<uni-section title="头盔" type="line">
<uni-forms-item label="头盔编号" :name="['ebikeHelmetInfo','helmetCode']">
<bikeCodeScan @scan-change="helmetCodeScanChange" :codeValue="ebikeInfo.ebikeHelmetInfo.helmetCode" />
<bikeCodeScan @scan-change="helmetCodeScanChange"
:codeValue="ebikeInfo.ebikeHelmetInfo.helmetCode" />
</uni-forms-item>
</uni-section>
</uni-forms>
@ -48,15 +53,21 @@
</template>
<script setup>
import { ref, reactive } from 'vue';
import {
ref,
reactive
} from 'vue';
import * as api from '@/utils/api.js';
import {
showModelMessage
} from '@/utils/tools';
const ebikeInfoForm = ref(null);
const bikeCodeScanRef = ref(null);
const ebikeInfo = ref({
bikeCode: '',
bikeModel: '',
bikeNumber:'',
bikeNumber: '',
ebikeEcuInfo: {
ecuCode: '',
ecuSN: '',
@ -70,22 +81,27 @@
}
});
const ecuModelRange = [
{ value: "乐摇摇", text: "乐摇摇" },
{ value: "美团", text: "美团" }
]
const ecuModelRange = [{
value: "乐摇摇",
text: "乐摇摇"
},
{
value: "美团",
text: "美团"
}
]
const navButtonGroup = reactive([{
text: '入库',
backgroundColor: '#0078D4',
color: '#fff',
disable: false
}]);
}]);
const navButtonClick = (e) =>{
const navButtonClick = (e) => {
const index = e.index;
//navButtonGroup[index].disable = true;
if(index == 0){
if (index == 0) {
if (ebikeInfoForm.value) { //
ebikeInfoForm.value.validate().then((res) => {
handleSubmit();
@ -98,57 +114,62 @@
}
}
const ecuModelChange = (value) =>{
const ecuModelChange = (value) => {
ebikeInfo.value.ebikeEcuInfo.ecuModel = value;
};
const handleSubmit = () => {
const params = ebikeInfo.value;
api.callEbikeInfo("saveEbikeInfo", params).then((res)=>{
const params = ebikeInfo.value;
api.callEbikeInfo("saveEbikeInfo", params).then((res) => {
uni.showToast({
title: "入库成功",
icon: 'success',
duration: 5000,
success: (res) => {
setTimeout(function () {
uni.navigateBack();
setTimeout(function() {
uni.navigateBack();
}, 5000);
}
});
}).catch((err)=>{
uni.showToast({
title: "入库失败",
icon: 'error',
duration: 5000
});
});
}).catch((err) => {
uni.showToast({
title: "入库失败",
icon: 'error',
duration: 5000
});
});
};
let timer;
const bikeCodeScanChange = (data) => {
clearTimeout(timer);
// clearTimeout(timer);
ebikeInfo.value.bikeCode = data;
timer = setTimeout(function () {
api.callEbikeInfo("getBikeINfoData?bikeCode=" + data).then((res)=>{
if(res.code == 200 && res.data && res.data.bikeId){
uni.showToast({
title: "车辆信息已存在",
icon: 'error',
duration: 2000
});
setTimeout(function () {
ebikeInfo.value.bikeCode = "";
bikeCodeScanRef.value.onSetValue("");
}, 2000);
}
else
{
ebikeInfo.value.bikeCode = data;
}
}).catch((err)=>{
ebikeInfo.value.bikeCode = data;
});
}, 5000);
if (!data) return;
// timer = setTimeout(function() {
api.callEbikeInfo("getBikeINfoData?bikeCode=" + data).then((res) => {
if (res.code == 200 && res.data && res.data.bikeId) {
showModelMessage("车辆信息已存在!")
ebikeInfo.value.bikeCode = "";
bikeCodeScanRef.value.onSetValue("");
} else {
api.callOperateApi("ebikeBikeQrcode/checkBikeCodeExistence?bikeCode=" + data, {},
"get").then(res => {
if (res.code == 200) {
if (res.data > 0) {
ebikeInfo.value.bikeCode = data;
} else {
ebikeInfo.value.bikeCode = "";
bikeCodeScanRef.value.onSetValue("");
showModelMessage("车辆编号二维码未生成,请重新输入!")
}
}
})
}
}).catch((err) => {
ebikeInfo.value.bikeCode = data;
});
// }, 1000);
};
const ecuCodeScanChange = (data) => {
ebikeInfo.value.ebikeEcuInfo.ecuCode = data["imei"];
@ -160,7 +181,19 @@
};
const helmetCodeScanChange = (data) => {
ebikeInfo.value.ebikeHelmetInfo.helmetCode = data;
api.callOperateApi("ebikeBikeQrcode/checkhelmetCodeExistence?helmetCode=" + data, {},
"get").then(res => {
if (res.code == 200) {
if (res.data > 0) {
ebikeInfo.value.ebikeHelmetInfo.helmetCode = data;
} else {
ebikeInfo.value.ebikeHelmetInfo.helmetCode = "";
// bikeCodeScanRef.value.onSetValue("");
showModelMessage("车辆编号二维码未生成,请重新输入!")
}
}
})
};
</script>
@ -171,19 +204,20 @@
}
/* 全局样式 */
/* .uni-forms .uni-forms-item__label {
/* .uni-forms .uni-forms-item__label {
width: 100px !important;
} */
.form-panel{
.form-panel {
padding-bottom: 55px;
}
.nav-panel{
.nav-panel {
position: fixed;
bottom: 0rpx;
width: 100%;
padding-bottom: 10px;
z-index: 999;
background-color:#fff;
background-color: #fff;
}
</style>

View File

@ -110,9 +110,7 @@
<div v-if="showOrderPay" style="position: absolute;z-index: 2000;bottom: 0;width: 100vw;">
<bike-pay :orderId="orderData.orderId" />
</div>
</template>
<script setup>
import {
ref,

View File

@ -5,7 +5,7 @@
<!-- 切换的页面内容 -->
<view class="content">
<!-- 消费页面内容 -->
<z-paging ref="paging_consume" :fixed="false" height="85vh" v-model="ConsumeDataList"
<z-paging ref="paging_consume" :fixed="false" height="100vh" v-model="ConsumeDataList"
@query="loadMoreDataConsume" :default-page-no="1" :default-page-size="4" :auto-show-back-to-top="true">
<uni-card :title="`车辆编号:${item.bikeCode}`" v-for="(item,index) in ConsumeDataList">
<view class="flex justify-between card-header">