Bladeren bron

Merge branch 'master' of http://192.168.40.220/dmc/jz_applet into master

yxb
wq 1 jaar geleden
bovenliggende
commit
ffb97661c5

+ 14
- 0
pages.json Bestand weergeven

"subPackages": [{ "subPackages": [{
"root": "subpackage/after-sale", //售后相关 "root": "subpackage/after-sale", //售后相关
"pages": [{ "pages": [{
"path": "progress-query/progress-query-business-details",
"style": {
"navigationBarTitleText": "业务审核记录详情",
"enablePullDownRefresh": false
}
},
{
"path": "progress-query/progress-query-business",
"style": {
"navigationBarTitleText": "业务审核记录",
"enablePullDownRefresh": false
}
},
{
"path": "progress-query/progress-query-tab", "path": "progress-query/progress-query-tab",
"style": { "style": {
"navigationBarTitleText": "进度查询", "navigationBarTitleText": "进度查询",

+ 12
- 15
pages/recharge/recharge-pay.vue Bestand weergeven

<image class="photo1" src="../../static/image/icon-back.png" mode="widthFix"></image> <image class="photo1" src="../../static/image/icon-back.png" mode="widthFix"></image>
</view> </view>
</view> </view>
<view class="tips">温馨提示: <text class="red">NFC充值</text>仅支持在<text class="red">安卓手机</text>进行ETC储值卡充值!</view>
<!-- <view>
<view class="tabs">
<view class="tab-tit as-gravity-center-start">充值方式

<u-input @click="state.transWayTypeShow = true" inputAlign="center" v-model="state.transWayName"
type="select" />
</view>
</view>
<view class="btn btn-primary" @click="rechargeAction">立即充值</view>

</view>
<u-select v-model="state.transWayTypeShow" :list="state.transWayTypeList" @confirm="selectConfirm"></u-select> -->
<view class="tips" v-if="source=='WECHAT'">温馨提示: <text class="red">NFC充值</text>仅支持在<text
class="red">安卓手机</text>进行ETC储值卡充值!</view>
</template> </template>


<script setup lang="ts"> <script setup lang="ts">
import { import {
fileURL fileURL
} from "@/datas/fileURL.js"; } from "@/datas/fileURL.js";
import { source } from "@/utils/network/difference";
const datas = require("../../static/etcUtil/datas.js"); const datas = require("../../static/etcUtil/datas.js");
const bluetoothUtil = require("../../static/etcUtil/index.js"); const bluetoothUtil = require("../../static/etcUtil/index.js");
const cmd = require("../../static/etcUtil/cmdConfig.js"); const cmd = require("../../static/etcUtil/cmdConfig.js");


const state = reactive({ const state = reactive({
transWayTypeShow: false, transWayTypeShow: false,
// #ifdef MP-ALIPAY
transWayTypeList: [{
name: "蓝牙",
value: "blu",
}],
// #endif
// #ifdef MP-WEIXIN
transWayTypeList: [{ transWayTypeList: [{
name: "蓝牙", name: "蓝牙",
value: "blu", value: "blu",
}, { }, {
name: "NFC", name: "NFC",
value: "nfc", value: "nfc",
}
],
}],
// #endif
tableIndex: 0, tableIndex: 0,
transWayName: "蓝牙", transWayName: "蓝牙",
transWay: "blu", //“blu”为蓝牙充值方式、“nfc”为NFC充值方式 transWay: "blu", //“blu”为蓝牙充值方式、“nfc”为NFC充值方式

+ 19
- 6
subpackage/after-sale/ETC-product-status-list-query/ETC-product-status-list-query.vue Bestand weergeven

</view> </view>
<view class="content"> <view class="content">
<view class="list-item" v-for="(item,index) in state.tableData" @click="goDeatls(item)"> <view class="list-item" v-for="(item,index) in state.tableData" @click="goDeatls(item)">
<view><text>产品编号:</text><text>{{item.promoteId}}</text></view>
<view><text>产品名称:</text><text>{{item.promoteName}}</text></view>
<view><text>产品状态:</text><text>{{item.status}}</text></view>
<view><text>产品生效时间:</text><text>{{item.start}}</text></view>
<view><text>产品过期时间:</text><text>{{item.end}}</text></view>
<view><text>产品发行渠道名称:</text><text>{{item.agencyName[0]}}</text></view>
<view>
<view><text>产品编号:</text><text>{{item.promoteId}}</text></view>
<view><text>产品名称:</text><text>{{item.promoteName}}</text></view>
<view><text>产品状态:</text><text>{{item.status}}</text></view>
<view><text>产品生效时间:</text><text>{{item.start}}</text></view>
<view><text>产品过期时间:</text><text>{{item.end}}</text></view>
<view><text>产品发行渠道名称:</text><text>{{item.agencyName[0]}}</text></view>
</view>
<image class="right" src="../../../static/image/icon-back.png" mode=""></image>
</view> </view>
</view> </view>


padding: 12rpx; padding: 12rpx;
box-sizing: border-box; box-sizing: border-box;
background-color: white; background-color: white;
display: flex;
align-items: center;
} }


.list-item>view { .list-item>view {
margin-bottom: 10rpx; margin-bottom: 10rpx;
width: 94%;
} }


.search-content { .search-content {
background: white; background: white;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
z-index: 999999;
} }


.content { .content {
background-color: #EEF7F7; background-color: #EEF7F7;
padding-top: 20rpx; padding-top: 20rpx;
} }

.right {
width: 40rpx;
height: 40rpx;
transform: rotateY(180deg);
}
</style> </style>

+ 93
- 0
subpackage/after-sale/progress-query/progress-query-business-details.vue Bestand weergeven

<template>
<view class="allContent">
<view class="list-item">
<view><text>车牌号:</text><text>{{state.params['vehiclePlate']}}</text></view>
<view><text>车牌颜色:</text><text>{{state.params['vehiclePlateColorC']}}</text></view>
<view v-if="state.params['cardId']"><text>卡号:</text><text>{{state.params['cardId']}}</text></view>
<view v-if="state.params['obuId']"><text>OBU号:</text><text>{{state.params['obuId']}}</text></view>
<view><text>订单ID:</text><text>{{state.params['orderId']}}</text></view>
<view><text>工单ID:</text><text>{{state.params['workOrderId']}}</text></view>
<view><text>业务类型:</text><text>{{state.params['businessTypeC']}}</text></view>
<view><text>用户名称:</text><text>{{state.params['customerName']}}</text></view>
<view><text>是否逾期:</text><text>{{state.params['over']?'逾期':"未逾期"}}</text>
</view>
<view><text>状态:</text><text>{{state.params['statusC']}}</text></view>
<view><text>申请时间:</text><text>{{state.params['insertTime']}}</text>
</view>
</view>
</view>

</template>

<script setup lang="ts">
import { reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import { ETCProductStatusListQueryDetailsApi } from "@/utils/network/api.js";
import { request } from "@/utils/network/request.js";
import { stringToJson } from "@/utils/network/encryption.js";
const state = reactive({
params: {}, //上一个页面传递过来的参数
promoteName: "", //产品名称
promoteId: "",//产品编号
tableData: [],

});
onLoad((options) => {
state.params = JSON.parse(decodeURIComponent(options.params))
// state.promoteId = state.params.promoteId
console.log("options.promoteId", state.params)
// query();
})
const query = () => {
const options = {
type: 2,
data: {
"promoteId": state.promoteId,
},
method: "POST",
showLoading: true,
};
//调用方式
request(ETCProductStatusListQueryDetailsApi, options).then((res) => {
state.tableData = stringToJson(res.bizContent)
console.log("res", state.tableData)
})
}
</script>

<style scoped>
.allContent {
background-color: #EEF7F7;
height: 100vh;
overflow: hidden;
}

.list-item {
width: 95%;
border-radius: 10rpx;
margin: 30rpx auto;
font-size: 28rpx;
border: 1rpx solid #ccc;
padding: 12rpx;
box-sizing: border-box;
background-color: white;

}

.list-item>view {
margin-bottom: 20rpx;
display: flex;
align-items: center;
}

.list-item>view>text:first-child {
width: 26%;
display: inline-block;
}

.list-item>view>text:last-child {
width: 74%;
display: inline-block;
word-break: break-all;
}
</style>

+ 309
- 0
subpackage/after-sale/progress-query/progress-query-business.vue Bestand weergeven

<template>
<view class="content">
<view class="top-content">
<view class="item">
<text>车牌号:</text><input placeholder="请输入车牌号" v-model="state.vehiclePlate" />
</view>
<view class="item">
<text>车牌颜色:</text>
<view>
<uni-data-select v-model="state.vehiclePlateColor" :localdata="state.vehiclePlateColorArr"
@change="changeColor" :clear="false"></uni-data-select>
</view>
<text style="margin-left: 20rpx;">审核状态:</text>
<view>
<uni-data-select v-model="state.status" :localdata="state.statusArr" @change="changeStatus"
:clear="false"></uni-data-select>
</view>
</view>
<view class="item">
<text>业务类型:</text>
<uni-data-select v-model="state.businessTypeVal" :localdata="state.businessRange"
@change="changeBusiness" :clear="false"></uni-data-select>
</view>
<view class="example-body">
<uni-datetime-picker v-model="state.range" type="daterange" />
<button size="mini" style="color: #ffffff;
backgroundColor: rgb(118, 200, 77);
borderColor: rgb(118, 200, 77);
font-size: 26rpx;
flex-shrink: 0;margin-left: 20rpx;" @click="search(1)">搜索</button>
</view>
</view>


<view class="uni-container">
<view class="list-item" v-for="(item,index) in state.listData" @click="go(item)">
<view>
<view><text>车牌号:</text><text>{{item.vehiclePlate}}</text></view>
<view><text>车牌颜色:</text><text>{{item.vehiclePlateColorC}}</text></view>
<view><text>状态:</text><text>{{item.statusC}}</text></view>
<view><text>业务类型:</text><text>{{item.businessTypeC}}</text></view>
<view><text>时间:</text><text>{{item.insertTime}}</text></view>
</view>
<image class="right" src="../../../static/image/icon-back.png" mode=""></image>
</view>
</view>
<view class="bottom-line" v-if="state.flags">我是有底线的~~~</view>
</view>

</template>

<script setup lang="ts">
import { reactive } from "vue";
import {
businessType
} from "@/datas/businessType.js"
import { onLoad, onReachBottom } from "@dcloudio/uni-app";
import { auditQueryApi } from "@/utils/network/api.js";
import { stringToJson } from "@/utils/network/encryption";
import { request } from "@/utils/network/request.js";
import { getItem, StorageKeys } from "@/utils/storage";
import { vehiclePlateColor, getVehiclePlateColorPai } from "@/datas/vehiclePlateColor";
const state = reactive({
startTime: Date.now(), //日期
businessTypeVal: "",
businessRange: [],
listData: [],
range: ['', ''],
pageSize: 10, //每页数据量
pageNo: 1, // 当前页
total: 0, // 数据总量
flags: false,
vehiclePlate: "",//车牌号
vehiclePlateColor: "",
status: "",
statusArr: [], //AUDIT_STATUS
vehiclePlateColorArr: []

})
onLoad((option) => {
// 车牌颜色
let getVehiclePlateColorArr = getItem('key')['VEHICLE_COLOR_TYPE']
for (var k = 0; k < getVehiclePlateColorArr.length; k++) {
let obj2 = {};
obj2['value'] = getVehiclePlateColorArr[k]['code']
obj2['text'] = getVehiclePlateColorArr[k]['name']
state.vehiclePlateColorArr.push(obj2)
}
// 审核状态
let getStatusArr = getItem('key')['AUDIT_STATUS'];
for (var k = 0; k < getStatusArr.length; k++) {
let obj1 = {};
obj1['value'] = getStatusArr[k]['code']
obj1['text'] = getStatusArr[k]['name']
state.statusArr.push(obj1)
}
// 业务类型
let getBusiness = getItem('key')['BUSINESS_TYPE'];
for (var k = 0; k < getBusiness.length; k++) {
let obj = {};
obj['value'] = getBusiness[k]['code']
obj['text'] = getBusiness[k]['name']
state.businessRange.push(obj)
}

search(1)
})

const changeColor = (e) => {
console.log("changeColor", e)
state.vehiclePlateColor = e
}
const changeStatus = (e) => {
console.log("changeColor", e)
state.status = e
}
const changeBusiness = (e) => {
state.businessTypeVal = e
console.log(e)
}
//业务完成日志
const search = (val) => {
if (val == 1) {
state.pageNo = 1
}
if (state.pageNo == 1 && state.listData.length > 0) {
state.listData = []
}
var data = {
vehiclePlate: state.vehiclePlate,
vehiclePlateColor: state.vehiclePlateColor,
status: state.status,
businessType: state.businessTypeVal,
startTime: state.range[0] ? state.range[0] + 'T00:00:00' : state.range[0],
endTime: state.range[1] ? state.range[1] + 'T00:00:00' : state.range[1],
pageNo: state.pageNo,
pageSize: state.pageSize,
// opId: getItem(StorageKeys.OpenId),
};
for (var index in data) {
console.log(index, data[index], data[index] == "")
if (data[index].toString() == "") {
delete data[index]
}
}
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
request(auditQueryApi, options).then((res) => {
const data = stringToJson(res.bizContent);
var getData = [...stringToJson(res.bizContent).data, ...state.listData]
for (var i = 0; i < getData.length; i++) {
getData[i]['vehiclePlateColorC'] = getVehiclePlateColorPai(getData[i]['vehiclePlateColor'])
if (getData[i]['status'] == 'AUDIT') {
getData[i]['statusC'] = "审核中"
} else if (getData[i]['status'] == 'FAIL') {
getData[i]['statusC'] = "未通过"
} else if (getData[i]['status'] == 'COMPLETE') {
getData[i]['statusC'] = "已完成"
}
for (var m = 0; m < state.businessRange.length; m++) {
if (getData[i]['businessType'] == state.businessRange[m]['value']) {
getData[i]['businessTypeC'] = state.businessRange[m]['text']
break;
}
}
}
state.listData = getData
state.total = data.data.length
console.log("业务完成日志", state.listData, state.pageNo,)
});
}
const change = (e) => {
console.log("e", e)
state.pageNo = e.current
search(2)
}
// 触底加载
onReachBottom(() => {
if (state.listData.length < state.pageNo * 10) return state.flags = true
console.log("触底了")
state.pageNo++
search(2)
})
const go = (item) => {
const params = encodeURIComponent(JSON.stringify(item))
uni.navigateTo({
url: `/subpackage/after-sale/progress-query/progress-query-business-details?params=${params}`
})
}
</script>

<style scoped>
.top-content {
position: fixed;
left: 0;
top: 0;
background-color: white;
width: 100%;
padding: 0 20rpx 20rpx 20rpx;
box-sizing: border-box;
z-index: 999999;
}

.content {
font-size: 32rpx;
padding: 20rpx 30rpx;
background-color: #EEF7F7;
min-height: 100vh;
}

.card {
display: flex;
margin: 0 20rpx;
align-items: center;
}

.title {
margin-bottom: 20rpx;
}

.uni-container {
margin: 50rpx 0;
margin-top: 330rpx;
}

/deep/.uni-table-th,
/deep/.uni-table-td {
padding: 0 !important;
font-size: 12px !important;
}

/deep/.uni-date__x-input,
/deep/.uni-select {
font-size: 13px;
height: 24px;
line-height: 24px;
}

/* /deep/.uni-stat__select {
width: 180rpx;
} */

/deep/.uni-select__selector-empty,
/deep/.uni-select__selector-item {
font-size: 13px !important;
}

/deep/.uni-date {
width: 73% !important;
}

.example-body {
display: flex;
align-items: center;
margin-top: 20rpx;
}

/deep/.uni-date-x {
height: 56rpx !important;
}

.list-item {
width: 95%;
border-radius: 10rpx;
margin: 30rpx auto;
font-size: 28rpx;
border: 1rpx solid #ccc;
padding: 12rpx;
box-sizing: border-box;
background-color: white;
display: flex;
align-items: center;
}

.list-item>view {
margin-bottom: 10rpx;
width: 90%;
}

.bottom-line {
text-align: center;
margin: 30rpx 0;
}

.item {
display: flex;
font-size: 30rpx;
margin: 20rpx 0 0 20rpx;
align-items: center;
}

input,
.uni-input {
border: 1rpx solid #ccc;
padding: 0 10rpx;
height: 28rpx;
line-height: 28rpx;
}

.right {
width: 40rpx;
height: 40rpx;
transform: rotateY(180deg);
}
</style>

+ 52
- 3
subpackage/after-sale/progress-query/progress-query-tab.vue Bestand weergeven

<template> <template>
<view>11111</view>
<view class="list" v-for="(item,index) in state.list" :key="item.type" @click="go(item.type)">
<view style="display: flex;align-items: center;">
<image class="photo" :src="fileURL + item.image "></image>
<text>{{item.title}}</text>
</view>
<image class="photo1" src="../../static/image/icon-back.png" mode="widthFix"></image>
</view>
</template> </template>


<script>
<script setup lang="ts">
import { reactive } from "vue"
import { fileURL } from "@/datas/fileURL.js";
const state = reactive({
list: [
{
"title": "业务审核",
"type": 1,
"image": "image/index/goRecharge.png",
},
{
"title": "对公账户",
"type": 2,
"image": "image/index/goRecharge.png"
}
],
});
const go = (type) => {
if (type == 1) {
uni.navigateTo({
url: "/subpackage/after-sale/progress-query/progress-query-business"
})
}
}
</script> </script>


<style>
<style scoped>
.list {
border-bottom: 1rpx solid #e5e5e5;
display: flex;
padding: 16rpx 20rpx;
align-items: center;
justify-content: space-between;
height: 60rpx;
font-size: 32rpx;
}

.photo {
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
}

.photo1 {
width: 40rpx;
transform: rotateY(180deg);
}
</style> </style>

+ 2
- 1
utils/network/api.js Bestand weergeven

export const submitVehicleApi = "e35daf84891549afabcbf86b4ed7e2e3" //重新激活提交车辆信息 export const submitVehicleApi = "e35daf84891549afabcbf86b4ed7e2e3" //重新激活提交车辆信息
export const getEquityListApi = "a2656146d9c24c86b8ea7aabbe3dbf97" //获取全部加购权益列表 export const getEquityListApi = "a2656146d9c24c86b8ea7aabbe3dbf97" //获取全部加购权益列表
export const addEquityListApi = "783e1feed98740b691f6c49c6d76f7d5" //全部权益列表购买 export const addEquityListApi = "783e1feed98740b691f6c49c6d76f7d5" //全部权益列表购买
export const showEquityListApi = "2af868adcf2f44ceb7a94c659ba2cee1" //展示权益列表购买
export const showEquityListApi = "2af868adcf2f44ceb7a94c659ba2cee1" //展示权益列表购买
export const auditQueryApi = "38b105703c854c118202bb411c924b88" //通用审核查询接口

Laden…
Annuleren
Opslaan