diff --git a/BagStation/pages/components/price-select-tab.vue b/BagStation/pages/components/price-select-tab.vue index 5ee9568..cab3d30 100644 --- a/BagStation/pages/components/price-select-tab.vue +++ b/BagStation/pages/components/price-select-tab.vue @@ -188,6 +188,24 @@ + + + + + 车牌识别 + + + + + + + + + + + + 优惠 @@ -367,6 +385,39 @@ + + + + + + + + + + + + + + + + 识别失败! + + + + + + + + + + + + + + + + @@ -377,6 +428,7 @@ import oilOssApi from '@/api/oil-oss.js' import utils from '@/utils/encode' import oilInterfacesApi from '@/api/oil-interfaces.js' + import user from '@/api/user.js' export default { props: { channelList: { @@ -504,13 +556,18 @@ activeChannelCode: '', checkBar: [], realMoney: '', - xoilAmountGun: '' + xoilAmountGun: '', + plateNumberOcr:'', + plateNumberOcrShow:false, + showPlicePhoto:'', + plateNumberImages:'' } }, created() { let oilItem = uni.getStorageSync('oilItem'), oilSite = uni.getStorageSync(''), - otherUser = uni.getStorageSync('otherUserInfo') + otherUser = uni.getStorageSync('otherUserInfo'), + companyId = JSON.parse(uni.getStorageSync('companyCard')).companyId if (otherUser) { // console.log('这里是卡里') this.isOtherUser = true @@ -520,6 +577,8 @@ console.log('oilItem', oilItem) this.showtitles = oilItem.listTag; this.init() + console.log(companyId) + this.getCompanyConfig(companyId) }, watch: { activeChannelCode: { @@ -598,6 +657,86 @@ } }, methods: { + manualInput(){ + this.showPlicePhoto='' + this.$refs.inputDialog.open() + }, + inputClose(){ + this.$refs.inputDialog.close() + }, + inputConfirm(val){ + if(val){ + this.plateNumberOcr = val + this.$refs.inputDialog.close() + }else{ + uni.showToast({ + title: '请输入车牌号', + icon: 'none' + }) + } + + }, + getCompanyConfig(companyId){ + if(companyId){ + user.getCompanyConfigByCompanyId(companyId).then(res=>{ + if(res.data.plateNumberOcr==1){ + this.plateNumberOcrShow = true + }else{ + this.plateNumberOcrShow = false + } + + }) + } + }, + srcPhoto(){ + this.showPlicePhoto='' + let _that = this + uni.chooseImage({ + count: 1, //默认9 + sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 + sourceType: ['camera'], // 只能拍照 + success: function(res) { + uni.showLoading({ + title: '识别中', + mask: true + }); + + const JSESSIONID = utils.uuid() + uni.uploadFile({ + url: 'http://uat.xingoil.com/adminapi/oil-oss/obejct/carNoIdentify', + filePath: res.tempFilePaths[0], + name: 'file', + header: { + "Content-Type": "multipart/form-data", + "Authorization": uni.getStorageSync('Authorization'), + 'dataSources': 'MP', + "imei": uni.getStorageSync('unionid'), + "openId": uni.getStorageSync('openid'), + 'JSESSIONID': JSESSIONID, + 'token': utils.md5Salt(JSESSIONID) + }, + success(e) { + uni.hideLoading() + let obj = JSON.parse(e.data) + if(obj.data&&obj.data.carNo){ + _that.plateNumberOcr = obj.data.carNo + _that.plateNumberImages = obj.data.imgUrl + }else{ + _that.plateNumberOcr = '' + _that.showPlicePhoto = 'show' + } + },fail(res){ + uni.hideLoading() + _that.showPlicePhoto = 'show' + } + }) + + + } + }) + + + }, typeChenk() { return this.channelList[this.activeCur]?.secondChannelCode && this.thirdPartyDynamicData.includes(this .channelList[this.activeCur].secondChannelCode) @@ -1135,14 +1274,23 @@ 'xoilAmountGun': this.vol } } else { - var orderData = { + if(!this.plateNumberOcr){ + uni.showToast({ + icon: 'none', + title: '请上传车牌照片' + }) + return + } + if(this.plateNumberOcrShow == true){ + var orderData = { amountGun: this.activeChannelCode == 'TY' ? this.ty.realMoney : '', shareCompanyQuota: 0, // 共享标识 priceId: this.oilSitePriceDetailsVo[this.radio].priceId, //类型:String 必有字段 备注:油价主键 orderType: "REAL_ORDER", //类型:String 必有字段 备注:订单类型(REAL_ORDER:真实订单 VIRTUAL_ORDER:虚拟订单) orderSource: "WECHAT_MINIAPPS", //类型:String 必有字段 备注:订单来源(WECHAT_MINIAPPS) - plateNumber: this.plateNumber ? this.plateNumber : this - .plateNumberSel, //类型:String 必有字段 备注:车牌号 + plateNumber: this.plateNumberOcrShow == true ? this.plateNumberOcr : this + .plateNumber, //类型:String 必有字段 备注:车牌号 + plateNumberImages: this.plateNumberImages, // 车牌照片地址 siteUserName: this.jober, //类型:String 必有字段 备注:加油员 oilsBar: this.oilBar, //类型:Number 必有字段 备注:油枪 volume: this.activeChannelCode == 'TY' ? this.tyRes.liter : this @@ -1155,6 +1303,29 @@ 'version': 1, 'xoilAmountGun': this.vol } + }else{ + var orderData = { + amountGun: this.activeChannelCode == 'TY' ? this.ty.realMoney : '', + shareCompanyQuota: 0, // 共享标识 + priceId: this.oilSitePriceDetailsVo[this.radio].priceId, //类型:String 必有字段 备注:油价主键 + orderType: "REAL_ORDER", //类型:String 必有字段 备注:订单类型(REAL_ORDER:真实订单 VIRTUAL_ORDER:虚拟订单) + orderSource: "WECHAT_MINIAPPS", //类型:String 必有字段 备注:订单来源(WECHAT_MINIAPPS) + plateNumber: this.plateNumber ? this.plateNumber : this + .plateNumberSel, //类型:String 必有字段 备注:车牌号 + siteUserName: this.jober, //类型:String 必有字段 备注:加油员 + oilsBar: this.oilBar, //类型:Number 必有字段 备注:油枪 + volume: this.activeChannelCode == 'TY' ? this.tyRes.liter : this + .vol, //类型:Number 必有字段 备注:加油升数 + realPrice: this.oilSitePriceDetailsVo[this.radio].sitePrice, //类型:Number 必有字段 备注:实际加油价格 + suppleMark: 0, //类型:Number 必有字段 备注:补录标识(0:实时订单 1:补录订单) + createSource: "XOIL_DRIVER_COMPANY_WECHAT_APPLET", //类型:String 必有字段 备注:创建来源( XOIL_DRIVER_COMPANY_WECHAT_APPLET) + // "deviceImei": "mock", //类型:String 可有字段 备注:设备唯一码 + // "networkIp": "mock" //类型:String 可有字段 备注:ip地址 + 'version': 1, + 'xoilAmountGun': this.vol + } + } + } // console.log(orderData) let location = uni.getStorageSync('location') || { diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..2887c24 --- /dev/null +++ b/api/user.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' +const service_name = "oil-user" +const group_name = "oilCustomerInfo" +export default{ + carNoIdentify(data) { //图片上传-ORC识别 + return request({ + url: `/${service_name}/${group_name}/carNoIdentify`, + method: 'post', + data: data + }) + }, + // 查询企业配置 + getCompanyConfigByCompanyId(id) { + return request({ + url: `/${service_name}/sysCompanyConfig/getCompanyConfigByCompanyId/${id}`, + method: 'GET' + }) + }, +} \ No newline at end of file