| @@ -1245,12 +1245,6 @@ | |||
| "navigationBarTitleText": "开票申请" | |||
| } | |||
| }, | |||
| { | |||
| "path": "invoice-download", | |||
| "style": { | |||
| "navigationBarTitleText": "下载发票" | |||
| } | |||
| }, | |||
| { | |||
| "path": "invoiceApply/Invoice-mannager", | |||
| "style": { | |||
| @@ -1295,12 +1289,6 @@ | |||
| "enablePullDownRefresh": true | |||
| } | |||
| }, | |||
| { | |||
| "path": "invoicing-record", | |||
| "style": { | |||
| "navigationBarTitleText": "开票记录" | |||
| } | |||
| }, | |||
| { | |||
| "path": "verification-apply", | |||
| "style": { | |||
| @@ -11,12 +11,15 @@ | |||
| </view> | |||
| <view class="hint"> | |||
| <view class="orange-txt as-layout-horizontal as-gravity-center-start"> | |||
| <image :src="`${$imgUrl}common/icon-hint.png`" mode="aspectFill"></image> | |||
| <view>温馨提示:</view> | |||
| <view class="orange-txt "> | |||
| <!-- <image :src="`${$imgUrl}common/icon-hint.png`" mode="aspectFill"></image> --> | |||
| <text class="red"></text> | |||
| <view style="margin: 0 24rpx;">重要提示</view> | |||
| <text class="red"></text> | |||
| </view> | |||
| <view class="grey-txt"> | |||
| 指令执行过程中,请勿关闭蓝牙,勿将手机远离电子标签,以免导致写卡、写签失败。</view> | |||
| <view class="grey-txt">1.激活前必须将ETC设备安装到相应车辆上,确保安装车辆信息与激活后OBU内信息一致后才能正常使用。</view> | |||
| <view class="grey-txt">2.如因激活的ETC设备未安装到对应车辆上产生的异常扣费,我司不承担任何赔偿责任。</view> | |||
| <view class="grey-txt">3.激活时,需要录入您的车牌号和手机号并确保OBU蓝牙和手机蓝牙处于打开状态。</view> | |||
| </view> | |||
| <view class="btn"> | |||
| <submit-button title="点击重新搜索蓝牙" @submit="load"></submit-button> | |||
| @@ -81,6 +84,7 @@ | |||
| orderNum: 0,//消费明细 传orderNum说明去支付 | |||
| payMoney: 0,//0 修复 1 支付 | |||
| accountId: "",//对公账户名称 | |||
| difference: "0",//区分routeType5 1二次激活 | |||
| }); | |||
| const deviceList = ref([]); | |||
| const connectPrefixName = ref(null); | |||
| @@ -127,7 +131,9 @@ | |||
| if (option.accountId) { | |||
| state.accountId = option.accountId | |||
| } | |||
| if (option.difference) { | |||
| state.difference = option.difference; | |||
| } | |||
| console.log("传过来的参数", option) | |||
| }); | |||
| @@ -571,12 +577,17 @@ | |||
| url: "/subpackage/after-sale/activation-once-again/activation-once-again-ali?state=true&id=" + state.id, | |||
| }); | |||
| // #endif | |||
| // #ifdef MP-WEIXIN | |||
| uni.$emit('bluetoothLink', { status: true }) | |||
| uni.navigateBack({ | |||
| delta: 1 | |||
| }) | |||
| if (state.difference == "1") { | |||
| uni.navigateTo({ | |||
| url: "/subpackage/after-sale/activation-once-again/activation-once-again?status=true&state=true&id=" + state.id, | |||
| }); | |||
| } else { | |||
| uni.$emit('bluetoothLink', { status: true }) | |||
| uni.navigateBack({ | |||
| delta: 1 | |||
| }) | |||
| } | |||
| // #endif | |||
| } else if (routeType.value == "6") { | |||
| uni.navigateTo({ | |||
| @@ -720,8 +731,13 @@ | |||
| margin: 60rpx 30rpx 0px; | |||
| .orange-txt { | |||
| font-size: 26rpx; | |||
| font-size: 30rpx; | |||
| color: #ff8000; | |||
| text-align: center; | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| margin-bottom: 50rpx; | |||
| image { | |||
| width: 30rpx; | |||
| @@ -742,4 +758,13 @@ | |||
| margin: 70rpx 40rpx; | |||
| } | |||
| } | |||
| .red { | |||
| display: inline-block; | |||
| color: red; | |||
| background-color: red; | |||
| width: 26rpx; | |||
| height: 26rpx; | |||
| border-radius: 100%; | |||
| } | |||
| </style> | |||
| @@ -213,24 +213,27 @@ | |||
| wheelCount: "", | |||
| isJH: "" | |||
| }); | |||
| let ids = ''; | |||
| onLoad((option) => { | |||
| console.log('======重新激活开始111======', option); | |||
| //请求订单详情 | |||
| queryOrderDetail(option.id); | |||
| ids = option.id; | |||
| if (option.status) { | |||
| queryOrderDetail(option.id, () => { getObuId() }) | |||
| } else { | |||
| queryOrderDetail(option.id, () => { }) | |||
| } | |||
| }); | |||
| onShow((option) => { | |||
| uni.$on('bluetoothLink', res => { | |||
| console.log(res); | |||
| if (res.status) { | |||
| getObuId() | |||
| } | |||
| //移除监听 | |||
| console.log('======移除监听1111======', res) | |||
| // uni.$on('bluetoothLink', res => { | |||
| // console.log(res); | |||
| // if (res.status) { | |||
| // getObuId() | |||
| // } | |||
| // //移除监听 | |||
| // console.log('======移除监听1111======', res) | |||
| }) | |||
| // }) | |||
| }) | |||
| @@ -256,7 +259,7 @@ | |||
| activationRecordQuery().then((val) => { | |||
| console.log("激活次数", val) | |||
| if (val.limit) { | |||
| navTo("/pages/bluetooth/bluetooth?routeType=5"); | |||
| navTo(`/pages/bluetooth/bluetooth?routeType=5&id=${ids}&difference=1`); | |||
| } else { | |||
| msg("一年内到达激活次数上限5次") | |||
| } | |||
| @@ -271,7 +274,7 @@ | |||
| }; | |||
| //获取订单详情 | |||
| const queryOrderDetail = (id : string) => { | |||
| const queryOrderDetail = (id : string, caback) => { | |||
| const options = { | |||
| type: 2, | |||
| data: { | |||
| @@ -305,6 +308,7 @@ | |||
| orderInfos.approvedCount = orderInfo.vehicleApprovedCount; | |||
| orderInfos.vehicleVin = orderInfo.vehicleVin; | |||
| orderInfos.vehicleEngineNum = orderInfo.vehicleEngineNum; | |||
| caback(); | |||
| activationRecordQuery().then((val) => { | |||
| console.log("jihuo", val) | |||
| state.activationNum = val.num | |||
| @@ -319,7 +323,7 @@ | |||
| const getObuId = () => { | |||
| console.log('======获取OBU号======') | |||
| let cmdArray = [cmd.HOME_DIRECTORY, cmd.OBU_SYSTEM_FILE, cmd.RANDOM_NUMBER]; | |||
| // tools.showLoadingAlert("正在执行指令"); | |||
| tools.showLoadingAlert("正在执行指令"); | |||
| bluetoothUtil.transCmd(cmdArray, "20", function (res) { | |||
| tools.hideLoadingAlert(); | |||
| var status = res[1].substring(res[1].length - 4, res[1].length); | |||
| @@ -53,15 +53,21 @@ | |||
| request(blackApi, options).then((res) => { | |||
| const data = stringToJson(res.bizContent); | |||
| const getData = data.blackCards; | |||
| const newData = [] | |||
| for (var i = 0; i < getData.length; i++) { | |||
| if (getData[i]['status'] == '1') { | |||
| newData.push(getData[i]) | |||
| } | |||
| } | |||
| for (var i = 0; i < newData.length; i++) { | |||
| for (var m = 0; m < state.blackStatus.length; m++) { | |||
| if (getData[i]['type'] == state.blackStatus[m]['value']) { | |||
| getData[i]['typeC'] = state.blackStatus[m]['text'] | |||
| if (newData[i]['type'] == state.blackStatus[m]['value']) { | |||
| newData[i]['typeC'] = state.blackStatus[m]['text'] | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| state.tableData = data.blackCards | |||
| state.tableData = newData | |||
| console.log("圈存金额查询2", data) | |||
| }) | |||
| } | |||
| @@ -1,80 +0,0 @@ | |||
| <template> | |||
| <view class="box"> | |||
| <view class="content"> | |||
| <view class=""> | |||
| 如需下载请长按网址复制后使用游览器访问 | |||
| </view> | |||
| <text>https://www.baidu.com</text> | |||
| </view> | |||
| <button class="download">复制</button> | |||
| </view> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { | |||
| reactive | |||
| } from "vue"; | |||
| import { | |||
| msg, | |||
| navTo | |||
| } from '@/utils/utils'; | |||
| const toPage = () => { | |||
| navTo('/subpackage/orders/invoiceApply/invoiceList') | |||
| } | |||
| </script> | |||
| <style> | |||
| page { | |||
| width: 100%; | |||
| height: 100%; | |||
| background: #EEF7F7; | |||
| } | |||
| </style> | |||
| <style lang="scss" scoped> | |||
| .box { | |||
| height: 100%; | |||
| width: 100%; | |||
| border-top: 1rpx solid #EEF7F7; | |||
| background: #EEF7F7; | |||
| .content { | |||
| text-align: center; | |||
| margin-top: 123rpx; | |||
| view { | |||
| font-size: 32rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #333333; | |||
| margin-bottom: 60rpx; | |||
| } | |||
| text { | |||
| font-size: 26rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #333333; | |||
| } | |||
| } | |||
| .download { | |||
| width: 670rpx; | |||
| height: 80rpx; | |||
| background: linear-gradient(-90deg, #43A1E0 0%, #13E7C1 100%); | |||
| border-radius: 40rpx; | |||
| font-size: 32rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #FFFFFF; | |||
| line-height: 80rpx; | |||
| position: fixed; | |||
| left: 50%; | |||
| transform: translate(-50%); | |||
| bottom: 100rpx; | |||
| } | |||
| } | |||
| </style> | |||
| @@ -26,9 +26,9 @@ | |||
| <!-- <text>新办订单</text> --> | |||
| </view> | |||
| <view class="content"> | |||
| <view class="row"> | |||
| <!-- <view class="row"> | |||
| 订单类型:<text>新办订单</text> | |||
| </view> | |||
| </view> --> | |||
| <view class="row"> | |||
| 开票日期:<text>{{item.invoiceDate}}</text> | |||
| </view> | |||
| @@ -40,7 +40,7 @@ | |||
| </view> | |||
| </view> | |||
| <view class="btns"> | |||
| <button>开票</button> | |||
| <button @click="down(item.fileUrl)">开票</button> | |||
| </view> | |||
| </view> | |||
| <!-- <view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> --> | |||
| @@ -56,6 +56,7 @@ | |||
| import { invoiceQueryApi } from "@/utils/network/api.js"; | |||
| import { stringToJson } from "@/utils/network/encryption"; | |||
| import { request } from "@/utils/network/request.js"; | |||
| import { msg } from "@/utils/utils"; | |||
| const state = reactive({ | |||
| userMobile: "", | |||
| pageNumber: 1, | |||
| @@ -123,6 +124,18 @@ | |||
| state.pageNumber++ | |||
| query(2) | |||
| }) | |||
| const down = (fileUrl) => { | |||
| uni.downloadFile({ | |||
| url: fileUrl, //仅为示例,并非真实的资源 | |||
| success: (res) => { | |||
| if (res.statusCode === 200) { | |||
| console.log('下载成功'); | |||
| msg("下载成功") | |||
| } | |||
| } | |||
| }); | |||
| } | |||
| </script> | |||
| @@ -1,154 +0,0 @@ | |||
| <template> | |||
| <view class="box"> | |||
| <view class="card"> | |||
| <view class="item"> | |||
| <view>发票抬头</view> | |||
| <text>贵州某某科技有限公司</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>发票类型</view> | |||
| <text>ETC服务发票</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票金额</view> | |||
| <text>90.00元</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票时间</view> | |||
| <text>2023-01-21 10:10:23</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>备注</view> | |||
| <text>贵A123123</text> | |||
| </view> | |||
| <button class="download" @click="toPage"> | |||
| 下载电子发票 | |||
| </button> | |||
| </view> | |||
| <view class="card"> | |||
| <view class="item"> | |||
| <view>发票抬头</view> | |||
| <text>贵州某某科技有限公司</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>发票类型</view> | |||
| <text>ETC服务发票</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票金额</view> | |||
| <text>90.00元</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票时间</view> | |||
| <text>2023-01-21 10:10:23</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>备注</view> | |||
| <text>贵A123123</text> | |||
| </view> | |||
| <button class="download" @click="toPage"> | |||
| 下载电子发票 | |||
| </button> | |||
| </view> | |||
| <view class="card"> | |||
| <view class="item"> | |||
| <view>发票抬头</view> | |||
| <text>贵州某某科技有限公司</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>发票类型</view> | |||
| <text>ETC服务发票</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票金额</view> | |||
| <text>90.00元</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>开票时间</view> | |||
| <text>2023-01-21 10:10:23</text> | |||
| </view> | |||
| <view class="item"> | |||
| <view>备注</view> | |||
| <text>贵A123123</text> | |||
| </view> | |||
| <button class="download" @click="toPage"> | |||
| 下载电子发票 | |||
| </button> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import { | |||
| reactive | |||
| } from "vue"; | |||
| import { | |||
| msg, | |||
| navTo | |||
| } from '@/utils/utils'; | |||
| const toPage = () => { | |||
| navTo('/subpackage/orders/invoice-download') | |||
| } | |||
| </script> | |||
| <style> | |||
| page { | |||
| width: 100%; | |||
| height: 100%; | |||
| background: #EEF7F7; | |||
| } | |||
| </style> | |||
| <style lang="scss" scoped> | |||
| .box { | |||
| height: 100%; | |||
| width: 100%; | |||
| border-top: 1rpx solid #EEF7F7; | |||
| background: #EEF7F7; | |||
| .card { | |||
| padding: 0 30rpx; | |||
| height: 615rpx; | |||
| background: #FFFFFF; | |||
| box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8); | |||
| margin-bottom: 30rpx; | |||
| .item { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| padding: 30rpx 0; | |||
| border-bottom: 1rpx solid #DCDCDC; | |||
| view { | |||
| font-size: 28rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #777777; | |||
| } | |||
| text { | |||
| font-size: 28rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #333333; | |||
| } | |||
| } | |||
| .download { | |||
| width: 670rpx; | |||
| height: 80rpx; | |||
| background: linear-gradient(-90deg, #43A1E0 0%, #13E7C1 100%); | |||
| border-radius: 40rpx; | |||
| margin: 30rpx auto; | |||
| font-size: 32rpx; | |||
| font-family: Noto Sans S Chinese; | |||
| font-weight: 400; | |||
| color: #FFFFFF; | |||
| line-height: 80rpx; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||