Compare commits

...

7 Commits

5 changed files with 102 additions and 12 deletions

3
.gitignore vendored
View File

@@ -1,7 +1,8 @@
.DS_Store
node_modules
/dist
/.kaifa
/.summaries
# local env files
.env.local

BIN
src/assets/sucai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -7,6 +7,12 @@
<div class="font_cls">如已安装未自动跳转 <span @click="downLoadHandler">立即下载</span></div>
</div>
</div>
<!-- 微信内置浏览器引导 -->
<div v-if="showGuide" class="guide-mask" @click.self="closeGuide">
<img class="guide-img" src="@/assets/sucai.png" alt="引导在浏览器打开" />
<div class="guide-btn" @click="closeGuide">我知道了</div>
</div>
</div>
</template>
@@ -14,7 +20,22 @@
import { getNewVersion } from "@/api/order"
export default {
name: "goToApp",
data() {
return {
showGuide: false
}
},
mounted() {
this.showGuide = this.isWeixin()
},
methods: {
isWeixin() {
const ua = navigator.userAgent.toLowerCase()
return ua.indexOf('micromessenger') !== -1
},
closeGuide() {
this.showGuide = false
},
goAppHandler() {
window.location.href = "rvdriver://page/pagesLogin/phoneLogin?source=h5Link";
},
@@ -70,4 +91,32 @@ export default {
}
}
}
</style>
.guide-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 999;
display: flex;
flex-direction: column;
align-items: center;
background: rgba(0, 0, 0, 0.85);
}
.guide-img {
width: 90%;
margin-top: 0;
object-fit: contain;
}
.guide-btn {
width: 140px;
height: 40px;
margin-top: 40px;
border: 1px solid #FFFFFF;
border-radius: 20px;
font-size: 15px;
color: #FFFFFF;
line-height: 40px;
text-align: center;
}
</style>

View File

@@ -875,7 +875,7 @@ export default {
this.vehicleLicenseInfo.address = frontInfo?.address;
this.vehicleLicenseInfo.useNature = frontInfo?.useCharacter;
this.vehicleLicenseInfo.model = frontInfo?.model;
this.vehicleLicenseInfo.vinCode = frontInfo?.vin;
this.vehicleLicenseInfo.vinCode = String(frontInfo?.vin || '').toUpperCase().replace(/O/g, '0');
this.vehicleLicenseInfo.engineNumber = frontInfo?.engineNo;
this.vehicleLicenseInfo.registrationDate = frontInfo?.registerDate;
this.vehicleLicenseInfo.issueDate = frontInfo?.issueDate;
@@ -1219,7 +1219,8 @@ export default {
this.insuranceChange=false
},
back() {
if( this.supplierId ) {
this.$router.back();
/*if( this.supplierId ) {
this.$router.back();
} else {
this.$router.push({
@@ -1228,10 +1229,55 @@ export default {
id: this.id
}
})
}
}*/
},
validatePlateNumber(value) {
if (!value) {
return { valid: false, message: '请输入车牌号' }
}
const provinceList = ['京','津','冀','晋','蒙','辽','吉','黑','沪','苏','浙','皖','闽','赣','鲁','豫','鄂','湘','粤','桂','琼','渝','川','贵','云','藏','陕','甘','青','宁','新']
const firstChar = value.charAt(0)
if (!provinceList.includes(firstChar)) {
return { valid: false, message: '车牌号首位必须是省级简称(京/沪/津/渝/冀/晋/辽/吉/黑/苏/浙/皖/闽/赣/鲁/豫/鄂/湘/粤/琼/川/贵/云/陕/甘/青/蒙/桂/藏/宁/新)' }
}
if (!/^[\u4e00-\u9fa5][A-Z0-9]+$/.test(value)) {
return { valid: false, message: '车牌号只能包含汉字、字母和数字' }
}
if (![7, 8].includes(value.length)) {
return { valid: false, message: `车牌号必须为 7 位或 8 位(当前 ${value.length} 位)` }
}
return { valid: true, message: '' }
},
validateVinNo(value) {
const normalizedValue = String(value || '').toUpperCase()
if (!normalizedValue) {
return { valid: false, message: '车架号识别错误,请重新拍照上传。' }
}
if (!/^[A-NP-Z0-9]{17}$/.test(normalizedValue)) {
if (normalizedValue.includes('O')) {
return { valid: false, message: '车架号识别错误,请重新拍照上传。' }
}
if (!/^[A-NP-Z0-9]+$/.test(normalizedValue)) {
return { valid: false, message: '车架号识别错误,请重新拍照上传。' }
}
return { valid: false, message: `车架号识别错误,请重新拍照上传。` }
}
return { valid: true, message: '' }
},
async submitBtn(){
const plateResult = this.validatePlateNumber(this.carNum)
if (!plateResult.valid) {
Dialog.alert({ message: plateResult.message })
return
}
const vinCode = String(this.vehicleLicenseInfo.vinCode || '')
const vinResult = this.validateVinNo(vinCode)
if (!vinResult.valid) {
Dialog.alert({ message: vinResult.message })
return
}
this.vehicleLicenseInfo.vinCode = vinCode
if( !this.vehicleLicenseFront ) {
this.$toast('行驶证主页照片不能为空')
return

View File

@@ -498,13 +498,7 @@ export default {
console.log("ii", i)
},
goback() {
this.$router.push({
name: "workOrderReconciliation",
params: {
activeIndex: this.index,
queryTime: this.queryTime,
}
})
this.$router.back()
},
async compute() {
if(this.orderInfo.contractSettleTypeString == '车主现收'){