个人信息、车辆信息
This commit is contained in:
parent
532e0e6700
commit
c39ae9419e
@ -1,7 +1,7 @@
|
|||||||
// 应用全局配置
|
// 应用全局配置
|
||||||
module.exports = {
|
module.exports = {
|
||||||
baseUrl: 'https://www.nuoyunr.com',
|
// baseUrl: 'https://www.nuoyunr.com',
|
||||||
// baseUrl: 'http://192.168.1.4:48080',
|
baseUrl: 'http://192.168.1.17:48080',
|
||||||
// baseUrl: "http://localhost:48080",
|
// baseUrl: "http://localhost:48080",
|
||||||
imagesUrl: 'http://shequ.0315e.com/static/images/pages/',
|
imagesUrl: 'http://shequ.0315e.com/static/images/pages/',
|
||||||
baseImageUrl: 'https://www.nuoyunr.com/minio/',
|
baseImageUrl: 'https://www.nuoyunr.com/minio/',
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="orderInfo">
|
<view class="orderInfo">
|
||||||
<image class="orderInfoIcon" src="@/static/icons/Frame27.png" mode="aspectFit"></image>
|
<image class="orderInfoIcon" src="@/static/icons/Frame27.png" mode="aspectFit"></image>
|
||||||
<text class="orderInfoText">{{ item.tenantName | 蓝安-中鑫之宝 }}</text>
|
<text class="orderInfoText">{{ item.tenantName || "蓝安-中鑫之宝" }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="line2">
|
<view class="line2">
|
||||||
<view>
|
<view>
|
||||||
|
|||||||
@ -34,6 +34,12 @@
|
|||||||
"navigationBarTitleText": ""
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/myCar/scan-frame",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/my/myInfo",
|
"path": "pages/my/myInfo",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import request from '../../utils/request';
|
import request from '../../utils/request';
|
||||||
import {setToken} from '@/utils/auth.js'
|
import {setToken,setUserInfo} from '@/utils/auth.js'
|
||||||
export default{
|
export default{
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
@ -66,36 +66,9 @@
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
async getsxshenfen(){
|
/**
|
||||||
let data = {
|
* 《用户协议》、《隐私政策》
|
||||||
roleCode : this.shenfen
|
*/
|
||||||
}
|
|
||||||
let res = await request({
|
|
||||||
url:'/appInspection/userOwn/updateRole',
|
|
||||||
method:'post',
|
|
||||||
params: data
|
|
||||||
})
|
|
||||||
if(res.code == 200){
|
|
||||||
uni.redirectTo({
|
|
||||||
url: '/pages/detection/my'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getshenfen(text){
|
|
||||||
this.shenfen = text
|
|
||||||
|
|
||||||
},
|
|
||||||
open() {
|
|
||||||
// console.log('open');
|
|
||||||
},
|
|
||||||
|
|
||||||
close() {
|
|
||||||
// this.show = false
|
|
||||||
// uni.reLaunch({
|
|
||||||
// url: '/pages/detection/my'
|
|
||||||
// })
|
|
||||||
// // console.log('close');
|
|
||||||
},
|
|
||||||
goPolicy() {
|
goPolicy() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/pages/login/PrivacyPolicy"
|
url: "/pages/login/PrivacyPolicy"
|
||||||
@ -114,21 +87,6 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async getAppinfo(){
|
|
||||||
let res = await request({
|
|
||||||
url:'/getAppInfo',
|
|
||||||
method:'get',
|
|
||||||
})
|
|
||||||
console.log('getappinfo',res);
|
|
||||||
},
|
|
||||||
//授权
|
|
||||||
authorize() {
|
|
||||||
uni.showToast({
|
|
||||||
icon: "none",
|
|
||||||
title: "请阅读并勾选用户协议",
|
|
||||||
duration: 2000
|
|
||||||
})
|
|
||||||
},
|
|
||||||
shibai(){
|
shibai(){
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
icon: "none",
|
icon: "none",
|
||||||
@ -161,15 +119,10 @@
|
|||||||
if (rex.data.code == 0) {
|
if (rex.data.code == 0) {
|
||||||
//设置token
|
//设置token
|
||||||
setToken(rex.data.data.token)
|
setToken(rex.data.data.token)
|
||||||
if (rex.data.data.ifNeedFill) {
|
setUserInfo(JSON.stringify(rex.data.data.userinfo))
|
||||||
uni.reLaunch({
|
|
||||||
url: '/pages/my/register'
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
uni.reLaunch({
|
uni.reLaunch({
|
||||||
url: '/pages-home/home/home'
|
url: '/pages-home/home/home'
|
||||||
})
|
})
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
@ -195,104 +148,6 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
|
||||||
userinfo(){
|
|
||||||
console.log('执行了');
|
|
||||||
request({
|
|
||||||
url: '/getAppInfo',
|
|
||||||
method: 'get',
|
|
||||||
|
|
||||||
}).then((res)=>{
|
|
||||||
let userJson = {}
|
|
||||||
userJson.userId = res.user.userId
|
|
||||||
console.log('身份信息',res,res.role.length);
|
|
||||||
uni.setStorageSync('role',res.role)
|
|
||||||
uni.setStorageSync('userinfo',res.user)
|
|
||||||
if(!res.role||res.role.length==0){
|
|
||||||
this.show = true
|
|
||||||
}else{
|
|
||||||
uni.reLaunch({
|
|
||||||
url: '/pages/detection/my'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getxz(index){
|
|
||||||
this.activeid = index
|
|
||||||
},
|
|
||||||
goregister(){
|
|
||||||
uni.redirectTo({
|
|
||||||
url:'/pages/login/register'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
goforgot(){
|
|
||||||
uni.redirectTo({
|
|
||||||
url:'/pages/login/forgot'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
goselect(){
|
|
||||||
console.log('执行');
|
|
||||||
uni.redirectTo({
|
|
||||||
url:'/pages/index/index'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 验证码方法
|
|
||||||
sendVerificationCode() {
|
|
||||||
let reg = /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$/;
|
|
||||||
if (!reg.test(this.tel)) {
|
|
||||||
uni.showToast({
|
|
||||||
icon: 'none',
|
|
||||||
title: '请输入正确的11位手机号'
|
|
||||||
})
|
|
||||||
this.tel = '';
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (this.isButtonDisabled) {
|
|
||||||
return; // 如果按钮已禁用,则直接返回
|
|
||||||
}
|
|
||||||
const data = {
|
|
||||||
phone:this.tel,
|
|
||||||
}
|
|
||||||
request({
|
|
||||||
url: '/loginSmsCode',
|
|
||||||
method: 'post',
|
|
||||||
params: data
|
|
||||||
}).then((res)=>{
|
|
||||||
console.log('验证码',res);
|
|
||||||
if(res.code == 200){
|
|
||||||
uni.showToast({
|
|
||||||
title:'验证码已发送 请注意查收',
|
|
||||||
icon:'none'
|
|
||||||
})
|
|
||||||
}else{
|
|
||||||
uni.showToast({
|
|
||||||
title:'网络不佳请稍后再试',
|
|
||||||
icon:'none'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
this.disableButton(); // 禁用按钮
|
|
||||||
this.startCountdown(); // 启动倒计时
|
|
||||||
|
|
||||||
},
|
|
||||||
disableButton() {
|
|
||||||
this.isButtonDisabled = true;
|
|
||||||
},
|
|
||||||
enableButton() {
|
|
||||||
this.isButtonDisabled = false;
|
|
||||||
},
|
|
||||||
startCountdown() {
|
|
||||||
let countdown = setInterval(() => {
|
|
||||||
this.countdownTime--;
|
|
||||||
if (this.countdownTime === 0) {
|
|
||||||
clearInterval(countdown);
|
|
||||||
this.enableButton(); // 启用按钮
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,22 +6,23 @@
|
|||||||
<view class="body-top">
|
<view class="body-top">
|
||||||
<image class="userBmg" src="../../static/images/image1.png" mode="widthFix"></image>
|
<image class="userBmg" src="../../static/images/image1.png" mode="widthFix"></image>
|
||||||
<view class="userInfo">
|
<view class="userInfo">
|
||||||
<image class="avatar" src="../../static/images/avatar.png" mode="aspectFit"></image>
|
<image v-if="''==customInfo.avatar || null == customInfo.avatar" class="avatar" src="../../static/images/avatar.png" mode="aspectFit"></image>
|
||||||
<text class="customInfo">{{customInfo.cusName}}</text>
|
<image v-else class="avatar" :src="imgUrlPrex+customInfo.avatar" mode="scaleToFill"></image>
|
||||||
|
<text class="customInfo">{{customInfo.nickname}}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="level">
|
<!-- <view class="level">-->
|
||||||
<image class="levelIcon" src="" mode="aspectFit"></image>
|
<!-- <image class="levelIcon" src="" mode="aspectFit"></image>-->
|
||||||
<view class="levelInfo">
|
<!-- <view class="levelInfo">-->
|
||||||
<text class="levelNum">{{customInfo.levelName}}</text>
|
<!-- <text class="levelNum">{{customInfo.levelName}}</text>-->
|
||||||
<!-- <text class="levelQy">当前可享受4项权益</text> -->
|
<!-- <!– <text class="levelQy">当前可享受4项权益</text> –>-->
|
||||||
</view>
|
<!-- </view>-->
|
||||||
<view class="showQyBtn" @click="showEquity">
|
<!-- <view class="showQyBtn" @click="showEquity">-->
|
||||||
查看权益
|
<!-- 查看权益-->
|
||||||
<image class="showQyBtnIcon" src="../../static/icons/icon1.png" mode="aspectFit"></image>
|
<!-- <image class="showQyBtnIcon" src="../../static/icons/icon1.png" mode="aspectFit"></image>-->
|
||||||
</view>
|
<!-- </view>-->
|
||||||
</view>
|
<!-- </view>-->
|
||||||
<view class="menu1">
|
<view class="menu1">
|
||||||
<view @click="goToPage('/pages/myCar/myCar')" style="background: linear-gradient( 90deg, #DEE5FC 0%, #CAD6FA 100%);"
|
<view @click="goToPage('/pages/myCar/myCar')" style="background: linear-gradient( 90deg, #DEE5FC 0%, #CAD6FA 100%);"
|
||||||
class="menu1-item menu-myCar">
|
class="menu1-item menu-myCar">
|
||||||
@ -65,8 +66,9 @@
|
|||||||
import VNavigationBar from '@/components/VNavigationBar.vue'
|
import VNavigationBar from '@/components/VNavigationBar.vue'
|
||||||
import tabBarVue from '@/components/tabBar/tabBar.vue'
|
import tabBarVue from '@/components/tabBar/tabBar.vue'
|
||||||
import request from "@/utils/request";
|
import request from "@/utils/request";
|
||||||
|
import config from '@/config'
|
||||||
import {getUserInfoRequest} from "@/utils/common.js";
|
import {getUserInfoRequest} from "@/utils/common.js";
|
||||||
import {getToken,setUserInfo,getUserInfo} from '@/utils/auth.js'
|
import {getToken,setUserInfo,getUserInfo} from '@/utils/auth'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
tabBarVue,
|
tabBarVue,
|
||||||
@ -79,17 +81,15 @@
|
|||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
console.log("已登录")
|
console.log("已登录")
|
||||||
if(!getUserInfo()){
|
//直接取缓存中的用户信息
|
||||||
this.getServer()
|
|
||||||
}else{
|
|
||||||
this.customInfo = JSON.parse(getUserInfo())
|
this.customInfo = JSON.parse(getUserInfo())
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
//用户信息
|
//用户信息
|
||||||
customInfo:{},
|
customInfo:{},
|
||||||
|
imgUrlPrex:config.baseImageUrl,
|
||||||
menuCard1: [
|
menuCard1: [
|
||||||
{ title: '我的资料', icon: require('@/static/icons/my-menu-icon1.png'), path: '/pages/my/myInfo' },
|
{ title: '我的资料', icon: require('@/static/icons/my-menu-icon1.png'), path: '/pages/my/myInfo' },
|
||||||
{ title: '我的卡券', icon: require('@/static/icons/my-menu-icon5.png'), path: "/pages/my/cardRoll" },
|
{ title: '我的卡券', icon: require('@/static/icons/my-menu-icon5.png'), path: "/pages/my/cardRoll" },
|
||||||
@ -171,6 +171,7 @@
|
|||||||
.avatar {
|
.avatar {
|
||||||
width: 140rpx;
|
width: 140rpx;
|
||||||
height: 140rpx;
|
height: 140rpx;
|
||||||
|
border-radius: 50%;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,45 +2,116 @@
|
|||||||
<view class="container">
|
<view class="container">
|
||||||
<VNavigationBarVue titleColor="#333" backgroundColor="#fff" title="我的资料"></VNavigationBarVue>
|
<VNavigationBarVue titleColor="#333" backgroundColor="#fff" title="我的资料"></VNavigationBarVue>
|
||||||
<view class="body">
|
<view class="body">
|
||||||
<!-- <view class="formItem">-->
|
|
||||||
<!-- <text class="formLabel">头像</text>-->
|
|
||||||
<!-- <image class="avatar" src="../../static/images/avatar.png" mode="aspectFit"></image>-->
|
|
||||||
<!-- </view>-->
|
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">姓名</text>
|
<text class="formLabel">姓名</text>
|
||||||
<text class="formValue">{{ customInfo.cusName }}</text>
|
<input type="text" style="text-align: right" placeholder="请输入姓名" v-model="customInfo.nickname"/>
|
||||||
<!-- <image class="formBtn" src="../../static/icons/homeInfoMore.png" mode="aspectFit"></image>-->
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">手机号</text>
|
<text class="formLabel">手机号</text>
|
||||||
<text class="formValue">{{ customInfo.phoneNumber }}</text>
|
<text class="formValue">{{ customInfo.mobile }}</text>
|
||||||
<!-- <image class="formBtn" src="../../static/icons/homeInfoMore.png" mode="aspectFit"></image>-->
|
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">联系地址</text>
|
<text class="formLabel">头像</text>
|
||||||
<text class="formValue">{{ customInfo.address }}</text>
|
<view class="dl-avatar-box">
|
||||||
<!-- <image class="formBtn" src="../../static/icons/homeInfoMore.png" mode="aspectFit"></image>-->
|
<u-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
:headers="headers"
|
||||||
|
:file-list="fileList"
|
||||||
|
:max-count="1"
|
||||||
|
:show-upload-btn="true"
|
||||||
|
@after-read="afterRead"
|
||||||
|
@delete="deleteFile"
|
||||||
|
></u-upload>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<button type="primary" @click="submit">保存</button>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
||||||
|
import config from '@/config'
|
||||||
|
import request from "@/utils/request";
|
||||||
|
import upload from '@/utils/upload'
|
||||||
|
import {getUserInfo,setUserInfo} from '@/utils/auth'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
VNavigationBarVue
|
VNavigationBarVue
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
customInfo:{}
|
uploadUrl: config.baseUrl+"/app-api/infra/file/upload",
|
||||||
|
headers: {},
|
||||||
|
fileList: [],
|
||||||
|
customInfo:{
|
||||||
|
id:"",
|
||||||
|
nickname:"",
|
||||||
|
mobile:"",
|
||||||
|
avatar:""
|
||||||
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onShow(data) {
|
onLoad(data) {
|
||||||
//当前登录用户信息
|
//当前登录用户信息
|
||||||
this.customInfo = JSON.parse(uni.getStorageSync('customerInfo'))
|
this.customInfo = JSON.parse(getUserInfo())
|
||||||
|
console.log(this.customInfo)
|
||||||
|
if(this.customInfo && ""!=this.customInfo.avatar && null!=this.customInfo.avatar){
|
||||||
|
this.fileList = [
|
||||||
|
{
|
||||||
|
url:config.baseImageUrl+this.customInfo.avatar
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
methods:{
|
||||||
|
afterRead(file) {
|
||||||
|
//上传
|
||||||
|
// uploadFileApi 为上传到服务端的接口 count大于1 使用 await
|
||||||
|
upload({
|
||||||
|
url:'/app-api/infra/file/upload',
|
||||||
|
filePath: file.file.url
|
||||||
|
}).then((res)=>{
|
||||||
|
this.fileList=[{
|
||||||
|
url: config.baseImageUrl+res.data
|
||||||
|
}]
|
||||||
|
console.log(this.fileList)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteFile(file, index) {
|
||||||
|
console.log('删除文件');
|
||||||
|
this.fileList.splice(index, 1);
|
||||||
|
},
|
||||||
|
async submit(){
|
||||||
|
if(this.fileList.length>0){
|
||||||
|
this.customInfo.avatar = this.fileList[0].url.replace(config.baseImageUrl,"")
|
||||||
|
}
|
||||||
|
let res = await request({
|
||||||
|
url: '/app-api/system/user/update',
|
||||||
|
method: 'PUT',
|
||||||
|
data: this.customInfo,
|
||||||
|
tenantIdFlag: false
|
||||||
|
})
|
||||||
|
console.log(res)
|
||||||
|
if (res.code == 200) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '修改成功',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
//更新数据
|
||||||
|
setUserInfo(JSON.stringify(this.customInfo))
|
||||||
|
setTimeout(()=>{
|
||||||
|
// 操作成功返回上一个页面
|
||||||
|
uni.navigateBack();
|
||||||
|
},500)
|
||||||
|
}else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '修改失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -85,9 +156,8 @@
|
|||||||
height: 24rpx;
|
height: 24rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar {
|
.dl-avatar-box {
|
||||||
width: 108rpx;
|
text-align: right;
|
||||||
height: 108rpx;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -3,9 +3,27 @@
|
|||||||
<VNavigationBar title="车辆详情" background-color="#fff" title-color="#333"></VNavigationBar>
|
<VNavigationBar title="车辆详情" background-color="#fff" title-color="#333"></VNavigationBar>
|
||||||
<view class="body">
|
<view class="body">
|
||||||
<view class="card">
|
<view class="card">
|
||||||
|
<button type="primary" @click="openCameraScan">识别行驶证</button>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">车牌号</text>
|
<text class="formLabel require">是否车主</text>
|
||||||
<input type="text" style="text-align: right" placeholder="请输入文本" v-model="car.licenseNumber"/>
|
<view>
|
||||||
|
<radio-group v-model="car.isOwner" @change="radioChange">
|
||||||
|
<radio value="1" :checked="car.isOwner=='1'">是</radio>
|
||||||
|
<radio value="0" :checked="car.isOwner=='0'">否</radio>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="formItem">
|
||||||
|
<text class="formLabel require">车牌号</text>
|
||||||
|
<input type="text" style="text-align: right" placeholder="请输入车牌号" v-model="car.licenseNumber"/>
|
||||||
|
</view>
|
||||||
|
<view class="formItem">
|
||||||
|
<text class="formLabel">车架号</text>
|
||||||
|
<input type="text" style="text-align: right" placeholder="请输入车架号" v-model="car.vin"/>
|
||||||
|
</view>
|
||||||
|
<view class="formItem">
|
||||||
|
<text class="formLabel">发动机号码</text>
|
||||||
|
<input type="text" style="text-align: right" placeholder="请输入发动机号码" v-model="car.engineNumber"/>
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">品牌</text>
|
<text class="formLabel">品牌</text>
|
||||||
@ -15,13 +33,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">型号</text>
|
<text class="formLabel">型号</text>
|
||||||
<input type="text" style="text-align: right" placeholder="请输入文本" v-model="car.carModelInput"/>
|
<input type="text" style="text-align: right" placeholder="请输入型号" v-model="car.carModelInput"/>
|
||||||
</view>
|
|
||||||
<view class="formItem">
|
|
||||||
<text class="formLabel">车辆类别</text>
|
|
||||||
<picker @change="categoryChange" :value="categoryIndex" :range="categoryNamesComputed">
|
|
||||||
<view class="uni-input">{{ categoryNamesComputed[categoryIndex] }}</view>
|
|
||||||
</picker>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">车辆性质</text>
|
<text class="formLabel">车辆性质</text>
|
||||||
@ -29,6 +41,12 @@
|
|||||||
<view class="uni-input">{{ natureNamesComputed[natureIndex] }}</view>
|
<view class="uni-input">{{ natureNamesComputed[natureIndex] }}</view>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="formItem">
|
||||||
|
<text class="formLabel">车辆类别</text>
|
||||||
|
<picker @change="categoryChange" :value="categoryIndex" :range="categoryNamesComputed">
|
||||||
|
<view class="uni-input">{{ categoryNamesComputed[categoryIndex] }}</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
<view class="formItem">
|
<view class="formItem">
|
||||||
<text class="formLabel">注册日期</text>
|
<text class="formLabel">注册日期</text>
|
||||||
<picker
|
<picker
|
||||||
@ -42,22 +60,21 @@
|
|||||||
</view>
|
</view>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="formItem">-->
|
<view class="formItem">
|
||||||
<!-- <text class="formLabel">车辆图片</text>-->
|
<text class="formLabel">行驶证</text>
|
||||||
|
<u-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
:headers="headers"
|
||||||
|
:file-list="fileList"
|
||||||
|
:max-count="1"
|
||||||
|
:show-upload-btn="true"
|
||||||
|
@after-read="afterRead"
|
||||||
|
@delete="deleteFile"
|
||||||
|
@success="uploadSuccess"
|
||||||
|
@fail="uploadFail"
|
||||||
|
></u-upload>
|
||||||
|
|
||||||
<!-- <u-upload-->
|
</view>
|
||||||
<!-- :action="uploadUrl"-->
|
|
||||||
<!-- :headers="headers"-->
|
|
||||||
<!-- :file-list="fileList"-->
|
|
||||||
<!-- :max-count="3"-->
|
|
||||||
<!-- :show-upload-btn="true"-->
|
|
||||||
<!-- @after-read="afterRead"-->
|
|
||||||
<!-- @delete="deleteFile"-->
|
|
||||||
<!-- @success="uploadSuccess"-->
|
|
||||||
<!-- @fail="uploadFail"-->
|
|
||||||
<!-- ></u-upload>-->
|
|
||||||
|
|
||||||
<!-- </view>-->
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="footer">
|
<view class="footer">
|
||||||
@ -70,7 +87,7 @@
|
|||||||
删除
|
删除
|
||||||
</view>
|
</view>
|
||||||
<view class="line" v-if="bo1"></view>
|
<view class="line" v-if="bo1"></view>
|
||||||
<view class="btnItem edit" v-if="bo1" @click="update">
|
<view class="btnItem edit" v-if="bo1" @click="submit">
|
||||||
<uni-icons type="compose" color="#0174F6"></uni-icons>
|
<uni-icons type="compose" color="#0174F6"></uni-icons>
|
||||||
保存
|
保存
|
||||||
</view>
|
</view>
|
||||||
@ -80,7 +97,10 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import VNavigationBar from '@/components/VNavigationBar.vue';
|
import VNavigationBar from '@/components/VNavigationBar.vue';
|
||||||
import request from "../../utils/request";
|
import request from "@/utils/request";
|
||||||
|
import config from '@/config'
|
||||||
|
import upload from '@/utils/upload'
|
||||||
|
import {getJSONData} from '@/utils/auth'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -88,36 +108,41 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
uploadUrl: config.baseUrl+"/app-api/infra/file/upload",
|
||||||
// uploadUrl: 'https://your-server.com/upload',
|
headers: {},
|
||||||
// headers: {},
|
fileList: [],
|
||||||
// fileList: [],
|
|
||||||
|
|
||||||
car: {
|
car: {
|
||||||
|
id:"",
|
||||||
|
//是否车主
|
||||||
|
isOwner:"1",
|
||||||
// 车牌号
|
// 车牌号
|
||||||
licenseNumber: '',
|
licenseNumber: '',
|
||||||
// 型号
|
// 车架号
|
||||||
carModelInput: '',
|
vin: '',
|
||||||
|
// 发动机号码
|
||||||
|
engineNumber: '',
|
||||||
// 品牌id
|
// 品牌id
|
||||||
carBrand:'',
|
carBrand:'',
|
||||||
// 车辆类别 字典字段
|
// 型号
|
||||||
carCategory:'',
|
carModelInput: '',
|
||||||
// 车辆性质 字典字段
|
// 车辆性质 字典字段
|
||||||
carNature:'',
|
carNature:'',
|
||||||
|
// 车辆类别 字典字段
|
||||||
|
carCategory:'',
|
||||||
// 注册日期
|
// 注册日期
|
||||||
carRegisterDate:'2024-09-24',
|
carRegisterDate:'',
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
bo1: false,
|
bo1: false,
|
||||||
bo2: true,
|
bo2: true,
|
||||||
categoryIndex: 0,
|
categoryIndex: 0,
|
||||||
natureIndex: 0,
|
natureIndex: 0,
|
||||||
brandIndex: 0,
|
brandIndex: 0,
|
||||||
|
//可选车辆类别范围
|
||||||
categoryList: [],
|
categoryList: [],
|
||||||
|
//可选车辆性质范围
|
||||||
natureList: [],
|
natureList: [],
|
||||||
|
//可选车辆品牌范围
|
||||||
brandList: []
|
brandList: []
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
// 计算属性,将对象数组转换为字符串数组
|
// 计算属性,将对象数组转换为字符串数组
|
||||||
@ -133,13 +158,25 @@ export default {
|
|||||||
return this.categoryList.map(item => item.label);
|
return this.categoryList.map(item => item.label);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onShow(){
|
||||||
|
this.getCameraPhoto()
|
||||||
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
// 如果是修改
|
// 如果是修改
|
||||||
if (options.car) {
|
if (options.id) {
|
||||||
// 有数据为编辑 或 删除
|
// 有数据为编辑 或 删除
|
||||||
this.car = JSON.parse(decodeURIComponent(options.car));
|
this.car = getJSONData("carInfo");
|
||||||
console.log('初始化页面数据', this.car)
|
console.log('初始化页面数据', this.car)
|
||||||
|
if(this.car.carRegisterDate){
|
||||||
|
this.car.carRegisterDate = this.timestampToDate(this.car.carRegisterDate)
|
||||||
|
}
|
||||||
|
this.fileList = [
|
||||||
|
{
|
||||||
|
url:config.baseImageUrl+this.car.carLicenseImg
|
||||||
|
}
|
||||||
|
]
|
||||||
|
this.$forceUpdate()
|
||||||
|
console.log('初始化页面数据', this.fileList)
|
||||||
this.bo1 = true;
|
this.bo1 = true;
|
||||||
this.bo2 = false;
|
this.bo2 = false;
|
||||||
} else {
|
} else {
|
||||||
@ -147,28 +184,91 @@ export default {
|
|||||||
this.bo1 = false;
|
this.bo1 = false;
|
||||||
this.bo2 = true;
|
this.bo2 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化
|
// 初始化
|
||||||
this.getCategoryList();
|
this.getCategoryList();
|
||||||
this.getNatureList();
|
this.getNatureList();
|
||||||
this.getBrandList();
|
this.getBrandList();
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// afterRead(file) {
|
radioChange(event){
|
||||||
// console.log('文件读取完成');
|
this.car.isOwner = event.detail.value
|
||||||
// },
|
},
|
||||||
// deleteFile(file, index) {
|
/**
|
||||||
// console.log('删除文件');
|
* 时间戳转文字
|
||||||
// this.fileList.splice(index, 1);
|
* */
|
||||||
// },
|
timestampToDate(timestamp) {
|
||||||
// uploadSuccess(res, file) {
|
const date = new Date(timestamp); // 如果timestamp是数值,可以直接作为Date构造函数的参数
|
||||||
// console.log('上传成功', res);
|
const year = date.getFullYear();
|
||||||
// },
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
||||||
// uploadFail(error, file) {
|
const day = date.getDate().toString().padStart(2, '0');
|
||||||
// console.log('上传失败', error);
|
return `${year}-${month}-${day}`;
|
||||||
// },
|
},
|
||||||
|
/**
|
||||||
|
* ocr识别内容自动赋值
|
||||||
|
* */
|
||||||
|
getCameraPhoto(){
|
||||||
|
let pages = getCurrentPages();
|
||||||
|
let currPage = pages[pages.length-1];
|
||||||
|
if(typeof(currPage.data.driveLicense) != undefined && currPage.data.driveLicense != null){
|
||||||
|
let driveLicense = currPage.data.driveLicense;
|
||||||
|
this.fileList=[{
|
||||||
|
url: driveLicense.imgUrl
|
||||||
|
}]
|
||||||
|
this.car.licenseNumber = driveLicense.plateNo
|
||||||
|
this.car.vin = driveLicense.vin
|
||||||
|
this.car.engineNumber = driveLicense.engineNo
|
||||||
|
this.car.carRegisterDate = driveLicense.registerDate
|
||||||
|
//车辆品牌自动定位
|
||||||
|
this.brandList.forEach((item, index) => {
|
||||||
|
if (item.brandName == driveLicense.brand) {
|
||||||
|
this.brandIndex = index;
|
||||||
|
this.car.carBrand = this.brandList[index].id;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
//车辆性质自动定位
|
||||||
|
this.natureList.forEach((item, index) => {
|
||||||
|
if (item.label == driveLicense.useCharacter) {
|
||||||
|
this.natureIndex = index;
|
||||||
|
this.car.carNature = this.natureList[index].value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 打开摄像头
|
||||||
|
*/
|
||||||
|
openCameraScan(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/myCar/scan-frame'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 调用OCR服务进行文字识别
|
||||||
|
recognizeText(imagePath) {
|
||||||
|
|
||||||
|
},
|
||||||
|
afterRead(file) {
|
||||||
|
//上传
|
||||||
|
// uploadFileApi 为上传到服务端的接口 count大于1 使用 await
|
||||||
|
upload({
|
||||||
|
url:'/app-api/infra/file/upload',
|
||||||
|
filePath: file.file.url
|
||||||
|
}).then((res)=>{
|
||||||
|
this.fileList.push({
|
||||||
|
url: config.baseImageUrl+res.data
|
||||||
|
})
|
||||||
|
console.log(this.fileList)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteFile(file, index) {
|
||||||
|
console.log('删除文件');
|
||||||
|
this.fileList.splice(index, 1);
|
||||||
|
},
|
||||||
|
uploadSuccess(res, file) {
|
||||||
|
console.log('上传成功', res);
|
||||||
|
},
|
||||||
|
uploadFail(error, file) {
|
||||||
|
console.log('上传失败', error);
|
||||||
|
},
|
||||||
// 品牌选择事件
|
// 品牌选择事件
|
||||||
brandChange(event) {
|
brandChange(event) {
|
||||||
// 下标
|
// 下标
|
||||||
@ -191,19 +291,17 @@ export default {
|
|||||||
//
|
//
|
||||||
this.car.carNature = this.natureList[newIndex].value;
|
this.car.carNature = this.natureList[newIndex].value;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 日期选择 事件
|
// 日期选择 事件
|
||||||
bindDateChange1(e) {
|
bindDateChange1(e) {
|
||||||
this.car.carRegisterDate = e.target.value; // 更新选择的日期到data中的date变量
|
this.car.carRegisterDate = e.target.value; // 更新选择的日期到data中的date变量
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 查询下拉 车辆类别
|
// 查询下拉 车辆类别
|
||||||
async getCategoryList() {
|
async getCategoryList() {
|
||||||
let res = await request({
|
let res = await request({
|
||||||
url: '/admin-api/system/dict-data/type?type=car_category',
|
url: '/app-api/system/dict-data/type?type=car_category',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
noTenantId: false
|
tenantIdFlag: false
|
||||||
})
|
})
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
console.log('车辆类别', res.data)
|
console.log('车辆类别', res.data)
|
||||||
@ -225,9 +323,9 @@ export default {
|
|||||||
// 查询下拉 车辆性质
|
// 查询下拉 车辆性质
|
||||||
async getNatureList() {
|
async getNatureList() {
|
||||||
let res = await request({
|
let res = await request({
|
||||||
url: '/admin-api/system/dict-data/type?type=car_nature',
|
url: '/app-api/system/dict-data/type?type=car_nature',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
noTenantId: false
|
tenantIdFlag: false
|
||||||
})
|
})
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
console.log('车辆性质', res.data)
|
console.log('车辆性质', res.data)
|
||||||
@ -266,45 +364,56 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 新增
|
// 新增或修改
|
||||||
async submit() {
|
async submit() {
|
||||||
|
if(this.fileList.length>0){
|
||||||
|
this.car.carLicenseImg = this.fileList[0].url.replace(config.baseImageUrl,"")
|
||||||
|
}
|
||||||
let res = await request({
|
let res = await request({
|
||||||
url: '/userClient/base/myCar/create',
|
url: '/app-api/base/user-car/createOrUpdate',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: this.car,
|
data: this.car,
|
||||||
|
tenantIdFlag: false
|
||||||
})
|
})
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
// 新增成功返回上一个页面
|
uni.showToast({
|
||||||
|
title: '保存成功',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
// 操作成功返回上一个页面
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
|
},500)
|
||||||
|
}else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '保存失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//删除
|
//删除
|
||||||
async del() {
|
async del() {
|
||||||
let res = await request({
|
let res = await request({
|
||||||
url: `/userClient/base/myCar/delete?id=${this.car.id}`,
|
url: `/app-api/base/user-car/delById?id=${this.car.id}`,
|
||||||
method: 'Delete',
|
method: 'delete',
|
||||||
|
tenantIdFlag: false
|
||||||
})
|
})
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
// 新增成功返回上一个页面 并且上一个页面重新初始化 获取数据 怎么写
|
uni.showToast({
|
||||||
|
title: '删除成功',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
// 删除成功返回上一个页面
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
|
},500)
|
||||||
|
}else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '删除失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 修改
|
|
||||||
async update() {
|
|
||||||
let res = await request({
|
|
||||||
url: `/userClient/base/myCar/update`,
|
|
||||||
data: this.car,
|
|
||||||
method: 'Put',
|
|
||||||
})
|
|
||||||
if (res.code == 200) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -345,6 +454,11 @@ export default {
|
|||||||
&:last-child {
|
&:last-child {
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.require {
|
||||||
|
content: "*";
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.labelVal {
|
.labelVal {
|
||||||
|
|||||||
@ -9,9 +9,12 @@
|
|||||||
<view class="carInfo">
|
<view class="carInfo">
|
||||||
<view class="carNum">{{ item.licenseNumber}}</view>
|
<view class="carNum">{{ item.licenseNumber}}</view>
|
||||||
<view class="name">品牌:{{ item.brandName }}</view>
|
<view class="name">品牌:{{ item.brandName }}</view>
|
||||||
<view class="phone">型号:{{ item.carModelInput }}</view>
|
<view class="phone">型号:{{ item.carModel || "" }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="no-data" v-if="carList.length==0">
|
||||||
|
<image class="" src="@/static/images/nothing.png" ></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
@ -27,7 +30,7 @@ import VNavigationBar from '@/components/VNavigationBar.vue';
|
|||||||
import request from "../../utils/request";
|
import request from "../../utils/request";
|
||||||
import config from "config";
|
import config from "config";
|
||||||
import {getUserInfoRequest} from "@/utils/common.js";
|
import {getUserInfoRequest} from "@/utils/common.js";
|
||||||
import {getToken,setUserInfo} from '@/utils/auth.js'
|
import {getToken,setJSONData} from '@/utils/auth.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
computed: {
|
computed: {
|
||||||
@ -41,12 +44,12 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
carList: [
|
carList: [
|
||||||
{
|
// {
|
||||||
carNum: '鲁A 781NB',
|
// carNum: '鲁A 781NB',
|
||||||
name: '魏书豪',
|
// name: '魏书豪',
|
||||||
phone: '15726786903',
|
// phone: '15726786903',
|
||||||
image: ''
|
// image: ''
|
||||||
}
|
// }
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -60,34 +63,27 @@ export default {
|
|||||||
uni.reLaunch({
|
uni.reLaunch({
|
||||||
url: '/pages/login/login'
|
url: '/pages/login/login'
|
||||||
})
|
})
|
||||||
}else{
|
|
||||||
console.log("已登录")
|
|
||||||
this.getUserInfos()
|
|
||||||
}
|
}
|
||||||
// 页面显示时执行初始化操作
|
// 页面显示时执行初始化操作
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//获取当前登录用户信息
|
|
||||||
async getUserInfos() {
|
|
||||||
console.log("获取用户信息")
|
|
||||||
getUserInfoRequest()
|
|
||||||
},
|
|
||||||
getList(){
|
getList(){
|
||||||
request({
|
request({
|
||||||
url: '/userClient/base/myCar/get',
|
url: '/app-api/base/user-car/getMyCar',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
tenantIdFlag: false
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.carList = res.data;
|
this.carList = res.data;
|
||||||
console.log('图片路径', config.baseImageUrl+this.carList[0].logoImg)
|
console.log('图片路径', config.baseImageUrl+this.carList[0].logoImg)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
gotoDetail(item) {
|
gotoDetail(item) {
|
||||||
if (item){
|
if (item){
|
||||||
|
setJSONData("carInfo",item)
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages/myCar/carDetail?car=${encodeURIComponent(JSON.stringify(item))}`
|
url: `/pages/myCar/carDetail?id=`+item.id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -120,6 +116,9 @@ export default {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.no-data{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.carItem {
|
.carItem {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 686rpx;
|
width: 686rpx;
|
||||||
|
|||||||
106
pages/myCar/scan-frame.vue
Normal file
106
pages/myCar/scan-frame.vue
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<VNavigationBar title="车辆详情" background-color="#fff" title-color="#333"></VNavigationBar>
|
||||||
|
<view class="body">
|
||||||
|
<camera device-position="back" flash="auto" @error="error" style="width: 100%; height: 500upx;">
|
||||||
|
<cover-image src="@/static/images/scan-img.png" class="scan-img"></cover-image>
|
||||||
|
</camera>
|
||||||
|
<view class="scan-text">请将行驶证放置白色框内</view>
|
||||||
|
<button type="primary" @click="takePhoto">识别</button>
|
||||||
|
<view class="scan-img-box"><image mode="widthFix" class="photos-box" :src="src"></image></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import VNavigationBar from '@/components/VNavigationBar.vue';
|
||||||
|
import request from "@/utils/request";
|
||||||
|
import config from '@/config'
|
||||||
|
import upload from '@/utils/upload'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
VNavigationBar
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
src: "",
|
||||||
|
imgUrl:"",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
takePhoto() {
|
||||||
|
const ctx = uni.createCameraContext();
|
||||||
|
ctx.takePhoto({
|
||||||
|
quality: 'high',
|
||||||
|
success: (res) => {
|
||||||
|
this.src = res.tempImagePath
|
||||||
|
uni.showLoading({
|
||||||
|
title: 'OCR自动识别中...'
|
||||||
|
});
|
||||||
|
//上传服务器
|
||||||
|
upload({
|
||||||
|
url:'/app-api/infra/file/upload',
|
||||||
|
filePath: res.tempImagePath
|
||||||
|
}).then((res)=>{
|
||||||
|
this.imgUrl = config.baseImageUrl+res.data
|
||||||
|
//识别内容
|
||||||
|
request({
|
||||||
|
url: '/app-api/base/user-car/vehicleLicenseOCR',
|
||||||
|
method: 'POST',
|
||||||
|
data: this.imgUrl,
|
||||||
|
tenantIdFlag: false
|
||||||
|
}).then((res)=>{
|
||||||
|
res.data['imgUrl'] = this.imgUrl
|
||||||
|
uni.hideLoading();
|
||||||
|
let pages = getCurrentPages();
|
||||||
|
let prevPage = pages[pages.length - 2];
|
||||||
|
prevPage.setData({
|
||||||
|
"driveLicense": res.data,
|
||||||
|
})
|
||||||
|
uni.navigateBack();
|
||||||
|
console.log(res)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error(e) {
|
||||||
|
console.log(e.detail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
|
||||||
|
|
||||||
|
.container {
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #f3f5f7;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.body {
|
||||||
|
flex: 1;
|
||||||
|
height: 0;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.scan-img {
|
||||||
|
opacity: 0.4;
|
||||||
|
width: 100%;
|
||||||
|
height: 500 upx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scan-text {
|
||||||
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60 upx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scan-img-box{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
static/images/nothing.png
Normal file
BIN
static/images/nothing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
BIN
static/images/scan-img.png
Normal file
BIN
static/images/scan-img.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
@ -38,3 +38,15 @@ export function getUserInfo() {
|
|||||||
export function setUserInfo(userInfo) {
|
export function setUserInfo(userInfo) {
|
||||||
return uni.setStorageSync(UserInfo, userInfo)
|
return uni.setStorageSync(UserInfo, userInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getJSONData(keyStr) {
|
||||||
|
if(uni.getStorageSync(keyStr)){
|
||||||
|
return JSON.parse(uni.getStorageSync(keyStr))
|
||||||
|
}else{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function setJSONData(keyStr,dataObj) {
|
||||||
|
return uni.setStorageSync(keyStr, JSON.stringify(dataObj))
|
||||||
|
}
|
||||||
|
|||||||
@ -23,7 +23,7 @@ const request = config => {
|
|||||||
// 设置租户
|
// 设置租户
|
||||||
const isTanantId = (config.headers || {}).isTanantId === false
|
const isTanantId = (config.headers || {}).isTanantId === false
|
||||||
config.header = config.header || {}
|
config.header = config.header || {}
|
||||||
if(!config.hasOwnProperty("noTenantId")){
|
if(!config.hasOwnProperty("tenantIdFlag")){
|
||||||
//请求设置了不需要租户,不拼接,,走进这里的是没设置不需要租户的
|
//请求设置了不需要租户,不拼接,,走进这里的是没设置不需要租户的
|
||||||
if(getTenantId() && !isTanantId){
|
if(getTenantId() && !isTanantId){
|
||||||
config.header['tenant-id'] = getTenantId()
|
config.header['tenant-id'] = getTenantId()
|
||||||
|
|||||||
@ -20,6 +20,7 @@ const upload = config => {
|
|||||||
url = url.slice(0, -1)
|
url = url.slice(0, -1)
|
||||||
config.url = url
|
config.url = url
|
||||||
}
|
}
|
||||||
|
console.log("参数",config)
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
uni.uploadFile({
|
uni.uploadFile({
|
||||||
timeout: config.timeout || timeout,
|
timeout: config.timeout || timeout,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user