Browse Source

卡签注销

yxb
DESKTOP-2IO5MST\huting 1 year ago
parent
commit
0a91d40981

+ 14
- 0
pages.json View File

@@ -599,6 +599,20 @@
"enablePullDownRefresh": false
}
},
{
"path": "ETC-log-off/refund-information-list",
"style": {
"navigationBarTitleText": "退费信息列表",
"enablePullDownRefresh": false
}
},
{
"path": "ETC-log-off/refund-information-add",
"style": {
"navigationBarTitleText": "注销退费资料填写",
"enablePullDownRefresh": false
}
},
{
"path": "ETC-log-off/log-off-result",
"style": {

+ 2
- 2
subpackage/after-sale/ETC-log-off/etc-log-off-pay.vue View File

@@ -65,7 +65,7 @@
.then((res) => {
stringToJson(res.bizContent)
if (stringToJson(res.statusCode) == 0) {
navTo("/subpackage/after-sale/ETC-log-off/log-off-result");
navTo("/subpackage/after-sale/ETC-log-off/log-off-result");
}
})
.catch((err) => {
@@ -197,4 +197,4 @@
}
}
}
</style>
</style>

+ 23
- 8
subpackage/after-sale/ETC-log-off/etc-log-off.vue View File

@@ -2,7 +2,7 @@
<view class="oderPage">
<u-form :model="form" ref="myForm" :error-type="errorType">
<view class="from">
<u-form-item v-if="(form.type==='2'||form.type==='3')" prop="equipmentState">
<u-form-item prop="equipmentState">
<view class="from_item">
<text><text style="color: red">*</text>设备注销:</text>

@@ -77,6 +77,8 @@
mobile: "",
code: '',
type: undefined,
customerIdnum: "",
userType: ""
});
//入参
const params = reactive({
@@ -132,12 +134,15 @@
});

onLoad((option) => {

form.mobile = option.mobile
form.type = option.type
params.cardId = option.cardId
params.obuId = option.obuId
params.orderId = option.orderId
let options = JSON.parse(decodeURIComponent(option.params))
console.log("options", options)
form.mobile = options.mobile
form.type = options.type
params.cardId = options.cardId
params.obuId = options.obuId
params.orderId = options.orderId
form.customerIdnum = options.customerIdnum
form.userType = options.userType
});

const getCode = () => {
@@ -186,8 +191,18 @@
};
request(checkCode, options)
.then(() => {
let obj = {
obuId: params.obuId,
cardId: params.cardId,
orderId: params.orderId,
equipmentState: form.equipmentState,
mobile: form.mobile,
customerIdnum: form.customerIdnum,
userType: form.userType
}
const paramss = encodeURIComponent(JSON.stringify(obj))
navTo(
`/subpackage/after-sale/ETC-log-off/upload-card?obuId=${params.obuId}&&cardId=${params.cardId}&&orderId=${params.orderId}&&equipmentState=${form.equipmentState}`
`/subpackage/after-sale/ETC-log-off/upload-card?params=${paramss}`
);
})
.catch((err) => {

+ 12
- 2
subpackage/after-sale/ETC-log-off/log-off-confirm.vue View File

@@ -126,8 +126,8 @@

/*视图进入后操作*/
onLoad((option) => {
console.log("option", option)
queryOrderDetail(option.id).then((val : any) => {
console.log("option", val)
state.data = val
})

@@ -147,8 +147,18 @@
} else if (state.data.cardId.length > 0 && state.data.obuId.length > 0) {
state.type = 3 //两者都有
}
let obj = {
type: state.type,
customerIdnum: state.data.customerIdnum,
mobile: state.data.customerTel,
cardId: state.data.cardId,
obuId: state.data.obuId,
orderId: state.data.orderId,
userType: state.data.userType == "PERSONAL_USER" ? 1 : 2
}
const params = encodeURIComponent(JSON.stringify(obj))
navTo(
`/subpackage/after-sale/ETC-log-off/etc-log-off?type=${state.type}&&mobile=${state.data.customerTel}&&cardId=${state.data.cardId}&&obuId=${state.data.obuId}&&orderId=${state.data.orderId}`
`/subpackage/after-sale/ETC-log-off/etc-log-off?params=${params}`
)
})


+ 244
- 0
subpackage/after-sale/ETC-log-off/refund-information-add.vue View File

@@ -0,0 +1,244 @@
<template>
<view class="oderPage">
<view class="from">
<view>
<view class="from_item">
<text>开户人姓名:</text>
<input type="text" name="" id="" placeholder="请输入开户人姓名" v-model="state.cusName">
</view>
<view class="from_item">
<text>开户行:</text>
<picker @change="bindPickerChange" :value="state.index" :range="state.array">
<view class="uni-input">{{state.index==-1?"请选择":state.array[state.index]}}</view>
</picker>
</view>
<view class="from_item">
<text>开户行支行:</text>
<input placeholder="开户行支行" v-model="state.branchName">
</view>
<view class="from_item">
<text>银行卡号:</text>
<input type="number" placeholder="请输入银行卡号" v-model="state.bankCardId" maxlength="18">
</view>
<view class="from_item">
<text>开户行地址:</text>
<picker mode="region" @change="choiceAddress">
<view>{{state.addressShow}}</view>
</picker>
</view>
</view>

</view>
<button class="submit" @click="sure()">确认</button>
</view>
</template>

<script setup lang="ts">
import { ref, reactive } from "vue";
import { checkStr, msg } from "@/utils/utils";
import { navTo } from "@/utils/utils";
import { CancellationRefundInforAdd } from "@/utils/network/api.js";
import { onLoad } from "@dcloudio/uni-app";
import { request } from "@/utils/network/request.js";
import { stringToJson } from "@/utils/network/encryption";
import {
getItem
} from "@/utils/storage";
const state = reactive({
phone: "",
bank: "",
address: "", //地址
addressShow: "请选择开户行地址", //展示的地址
branchName: "", //开户行支行
array: ['贵阳银行股份有限公司', '中国工商银行股份有限公司', '中国建设银行股份有限公司', '中国银行股份有限公司', '中国农业银行股份有限公司', '中国交通银行股份有限公司',
'兴业银行股份有限公司', '平安银行股份有限公司', '中国邮政储蓄银行股份有限公司', '中国光大银行股份有限公司', '贵州银行股份有限公司', '中国民生银行股份有限公司',
'招商银行股份有限公司', '.农村信用社联合社', '农村商业银行'],
index: -1,
bankCardId: "", //银行卡号
cusName: "",
customerIdNum: "",
cusTel: "",
cusType: ""
});

/*视图进入后操作*/
onLoad((option) => {
console.log("option", option)
state.cusTel = option.mobile
state.customerIdNum = option.customerIdnum
state.cusType = option.userType
});

const sure = () => {
if (!state.cusName) {
msg("请输入开户人姓名");
return;
}
console.log("state.index ", state.index)
if (state.index == -1) {
msg("请选择开户行!");
return;
}
if (!state.branchName) {
msg("请输入开户行支行!");
return;
}
if (!state.bankCardId) {
msg("请输入银行卡号!");
return;
}
if (state.addressShow == "请选择开户行地址") {
msg("请选择开户行地址!");
return;
}
var data = {
customerIdNum: state.customerIdNum, //身份证号
bankType: Number(state.index) + 1, //开户行
province: state.address[0], //开户行所在的省
sell: state.address[1], //开户行所在的市
cusName: state.cusName, //开户人名称
bankCardId: state.bankCardId, //银行卡号
cusTel: state.cusTel, //联系方式
operateType: 1, //退款方式 1:银行卡 2现金
branchName: state.branchName, //开户行支行名称
cusType: state.cusType,//用户类型
};
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
console.log("options", options)
request(CancellationRefundInforAdd, options).then((res) => {

const data = stringToJson(res.bizContent);
console.log("data", data)
uni.navigateBack({
delta: 1
})
});

}

function choiceAddress(e) {
console.log("e", e.detail.value)
state.address = e.detail.value;
state.addressShow = state.address[0] + "-" + state.address[1] + "-" + state.address[2]
}

function bindPickerChange(e) {
state.index = e.detail.value
}
</script>


<style>
page {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background-color: #EEF7F7;
}
</style>
<style lang="scss" scoped>
::v-deep .u-icon__icon {
top: -4px !important;
}

.oderPage {
flex: 1;
width: 100%;

.content {
display: flex;
flex-direction: column;
align-items: center;
width: 750rpx;
background-color: #fff;
margin-bottom: 30rpx;
padding: 75rpx 0;

.title {
font-size: 28rpx;
font-family: Microsoft YaHei UI;
font-weight: 400;
color: #717171;
margin-bottom: 40rpx;
}

view {
font-size: 40rpx;
font-family: Microsoft YaHei UI;
font-weight: 400;
color: #2A2A2A;
font-weight: bold;
}
}

.from {
background-color: #fff;
padding: 0 30rpx;

.from_item {
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
padding: 20rpx 0;
border-bottom: #DCDCDC 1px solid;
align-items: center;
font-size: 28rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #666666;

input {
text-align: right;
}
}
}
}

.submit {
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%);
width: 670rpx;
height: 80rpx;
line-height: 80rpx;
font-size: 32rpx;
color: #fff;
border-radius: 100rpx;
z-index: 999;
// position: fixed;
// bottom: 60rpx;
// left: 50%;
// transform: translate(-50%);
margin: 30rpx auto;
}

::v-deep .u-form-item--right__content__slot {
display: flex;
justify-content: space-between;

.btn {
flex: 1;
background: transparent;
font-size: 30rpx;
color: #15E5C1;
z-index: 999;

}
}

.agreen {
color: rgb(25, 190, 197);
}

::v-deep .code>view {
text-align: right !important;
}

::v-deep .code {
width: 100% !important;
}
</style>

+ 113
- 0
subpackage/after-sale/ETC-log-off/refund-information-list.vue View File

@@ -0,0 +1,113 @@
<template>
<view class="content">
<view class="list-item" v-for="(item,index) in form.data" @click="choice(item)">
<view><text>姓名:</text><text>{{item.cusName}}</text></view>
<view><text>开户行:</text><text>{{form.array[item.bankType+1]}}</text></view>
<view><text>开户行支行:</text><text>{{item.branchName}}</text></view>
<view><text>银行卡号:</text><text>{{item.bankCardId}}</text></view>
</view>
<view class="add" @click="add">添加退费信息</view>
</view>
</template>

<script lang="ts" setup>
import {
reactive
} from "vue";
import {
onLoad, onShow
} from "@dcloudio/uni-app";
import {
navTo,
} from "@/utils/utils";
import { cancelList } from "@/utils/network/api.js";
import { stringToJson } from "@/utils/network/encryption";
import { request } from "@/utils/network/request.js";
// 表单数据
const form = reactive({
userType: "",
customerIdnum: "",
mobile: "",
data: [],
array: ['贵阳银行股份有限公司', '中国工商银行股份有限公司', '中国建设银行股份有限公司', '中国银行股份有限公司', '中国农业银行股份有限公司', '中国交通银行股份有限公司',
'兴业银行股份有限公司', '平安银行股份有限公司', '中国邮政储蓄银行股份有限公司', '中国光大银行股份有限公司', '贵州银行股份有限公司', '中国民生银行股份有限公司',
'招商银行股份有限公司', '.农村信用社联合社', '农村商业银行'],
});
onLoad((option) => {
form.mobile = option.mobile
form.customerIdnum = option.customerIdnum
form.userType = option.userType
})
onShow(() => {
queryList()
})

const add = () => {
navTo(`/subpackage/after-sale/ETC-log-off/refund-information-add?mobile=${form.mobile}&&customerIdnum=${form.customerIdnum}&&userType=${form.userType}`);
}
const queryList = () => {

var data = {
customerIdNum: form.customerIdnum, //身份证号
// customerIdNum: "522121199906217049", //身份证号
};
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};
console.log("options", options)
request(cancelList, options).then((res) => {
const data = stringToJson(res.bizContent);
form.data = data.data
console.log("data", data)

});
}
const choice = (item) => {
uni.$emit('list', {
item: item
})
uni.navigateBack({
delta: 1
})
// uni.redirectTo({
// url: `/subpackage/after-sale/ETC-log-off/upload-card?item=${item}`
// })
}
</script>

<style scoped>
.content {
background-color: #EEF7F7;
width: 100%;
min-height: 100vh;
padding: 20rpx 0;
}

.add {
width: 100%;
height: 80rpx;
background-color: white;
text-align: center;
line-height: 80rpx;
position: fixed;
bottom: 0;
left: 0;
font-size: 32rpx;
}

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

}
</style>

+ 230
- 43
subpackage/after-sale/ETC-log-off/upload-card.vue View File

@@ -1,4 +1,33 @@
<template>
<view class="picture-wrapper" @click="cardFileImageUpdate('1')">
<view class="bg">
<view class="">
<view class="name"> 行驶证主页 </view>
<view class="value"> 上传行驶证的主页 </view>
<view class="tip">
<view class="tip-value"> 拍摄规范 </view>
</view>
</view>

<image v-if="!form.licenseFrontUrl" class="icon" :src="`${$imgUrl}applyCard/car-zhu.png`">
</image>
<image v-else class="icon" :src="strReplace(form.licenseFrontUrl)"></image>
</view>
</view>
<view class="picture-wrapper" @click="cardFileImageUpdate('2')">
<view class="bg">
<view class="">
<view class="name"> 行驶证副页 </view>
<view class="value"> 上传行驶证的副页 </view>
<view class="tip">
<view class="tip-value"> 拍摄规范 </view>
</view>
</view>
<image v-if="!form.licenseReverseUrl" class="icon" :src="`${$imgUrl}applyCard/car-fu.png`">
</image>
<image v-else class="icon" :src="strReplace(form.licenseReverseUrl)"></image>
</view>
</view>
<view class="upload-box">
<u-form :model="form" ref="myForm" :error-type="errorType">
<view class="from">
@@ -15,9 +44,22 @@
</u-form-item>
</view>
</u-form>
<view v-if="form.cancelList">
<view class="message">退款信息</view>
<view class="list-item">
<view><text>姓名:</text><text>{{form.cancelList.cusName}}</text></view>
<view><text>开户行:</text><text>{{form.array[form.cancelList.bankType]}}</text></view>
<view><text>开户行支行:</text><text>{{form.cancelList.branchName}}</text></view>
<view><text>银行卡号:</text><text>{{form.cancelList.bankCardId}}</text></view>
<view class="change">
<view @click="next()">去修改</view>
</view>

</view>
</view>

<button class="submit" @click="toPage()">注销</button>
<!-- 选择弹窗 -->
<button class="submit" @click="next()" v-if="form.isShow">下一步</button>
<button class="submit" @click="toPage()" v-else>注销</button>
<view>
<!-- 原因 -->
<u-select v-model="show" mode="single-column" :list="list" @confirm="confirm"></u-select>
@@ -38,7 +80,8 @@
} from "@dcloudio/uni-app";
import {
navTo,
checkStr
checkStr,
msg, strReplace, uploadFile
} from "@/utils/utils";
import {
request
@@ -46,7 +89,7 @@
import {
writeCardBack,
CardSignCancellation,
confirmSignCancellation
confirmSignCancellation, etcCarOcrCard
} from "@/utils/network/api.js";
import {
stringToJson
@@ -55,11 +98,21 @@
import { getItem } from "@/utils/storage";
// 表单数据
const form = reactive({
userType: "",
obuId: '',
cardId: '',
orderId: '',
ReasonCancellation: "",
equipmentState: ''
equipmentState: '',
licenseFrontUrl: "", //行驶证正面
licenseReverseUrl: "",//行驶证反面
customerIdnum: "",
mobile: "",
isShow: true,//储值卡要去下一步填写信息,记账卡直接注销
cancelList: "",
array: ['贵阳银行股份有限公司', '中国工商银行股份有限公司', '中国建设银行股份有限公司', '中国银行股份有限公司', '中国农业银行股份有限公司', '中国交通银行股份有限公司',
'兴业银行股份有限公司', '平安银行股份有限公司', '中国邮政储蓄银行股份有限公司', '中国光大银行股份有限公司', '贵州银行股份有限公司', '中国民生银行股份有限公司',
'招商银行股份有限公司', '.农村信用社联合社', '农村商业银行'],
});
const list = reactive([]);

@@ -72,12 +125,32 @@
onReady(() => {

});
onShow(() => {
uni.$once('list', (query) => {
console.log("111", query)
form.cancelList = query.item
form.isShow = false
})
})
onLoad((option) => {
form.obuId = option.obuId;
form.cardId = option.cardId;
form.orderId = option.orderId
form.equipmentState = option.equipmentState
console.log("option.orderId", option, getItem('key')['LOGOFF'])
let options = JSON.parse(decodeURIComponent(option.params))
form.obuId = options.obuId;
form.cardId = options.cardId;
// form.cardId = "52011640220209453221";
form.orderId = options.orderId
form.equipmentState = options.equipmentState
form.mobile = options.mobile
form.customerIdnum = options.customerIdnum
form.userType = options.userType
if (form.cardId) {
if (form.cardId.substring(8, 10) == "22") {
form.isShow = true
} else {
form.isShow = false
}
}

console.log("options.orderId", options, getItem('key')['LOGOFF'], "52011328220201990787".substring(8, 10))
// 获取注销原因
for (var k = 0; k < getItem('key')['LOGOFF'].length; k++) {
var obj = {};
@@ -123,10 +196,7 @@

} else {
queryCardSignCancellation(2, 2, 0).then((item : any) => {
// queryConfirmSignCancellation(form.equipmentState).then((val : any) => {
// console.log(val)
navTo("/subpackage/after-sale/ETC-log-off/log-off-result");
// })
})
}
};
@@ -167,10 +237,7 @@
if (data.orderStatus === 1) {
instructAction(data)
} else {
// queryConfirmSignCancellation(form.equipmentState).then((val : any) => {
// console.log(val)
navTo("/subpackage/after-sale/ETC-log-off/log-off-result");
// })
}
resolve(data);
} else {
@@ -185,6 +252,18 @@

//注销申请
const queryCardSignCancellation = (hasCard, hasObu, cosProvider) => {
if (!form.licenseFrontUrl) {
msg("请上传行驶证的主页");
return;
}
if (!form.licenseReverseUrl) {
msg("请上传行驶证的副页");
return;
}
if (!form.ReasonCancellation) {
msg("请选择注销原因");
return;
}
if (form.orderId) {
var options = {
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
@@ -196,7 +275,9 @@
obuId: form.obuId, //签号
serviceType: 3, //注销类型 1-卡注销,2-签注销,3-卡签注销
orderId: form.orderId, //订单编号
ReasonCancellation: form.ReasonCancellation
signReason: form.ReasonCancellation,
licenseFrontUrl: form.licenseFrontUrl,
licenseReverseUrl: form.licenseReverseUrl,
}, //请求参数
method: "POST", //提交方式(默认POST)
showLoading: true, //是否显示加载中(默认显示)
@@ -211,14 +292,15 @@
cardId: form.cardId, //卡号
obuId: form.obuId, //签号
serviceType: 3, //注销类型 1-卡注销,2-签注销,3-卡签注销
// orderId: form.orderId, //订单编号
ReasonCancellation: form.ReasonCancellation
signReason: form.ReasonCancellation,
licenseFrontUrl: form.licenseFrontUrl,
licenseReverseUrl: form.licenseReverseUrl,
}, //请求参数
method: "POST", //提交方式(默认POST)
showLoading: true, //是否显示加载中(默认显示)
};
}
console.log("options", options)
return new Promise(async (resolve, reject) => {
const res = await request(CardSignCancellation, options);
const data = stringToJson(res.bizContent);
@@ -228,26 +310,39 @@
reject(error);
});
}
//行驶证图片上传 val 1 正面 2 反面
const cardFileImageUpdate = (val) => {
uni.chooseImage({
count: 1, //只能选取一张照片
sizeType: ["original", "compressed"], //可以指定是原图还是压缩图,默认二者都有
sourceType: ["camera", "album"], //从相册选择
success: function (res) {
uploadFile(res.tempFilePaths[0], val, etcCarOcrCard).then((data) => {
console.log("data", data)
if (val == 1) {
form.licenseFrontUrl = data.imageUrl;
} else {
form.licenseReverseUrl = data.imageUrl;

//注销确认
const queryConfirmSignCancellation = (hasCard : any) => {
return new Promise(async (resolve, reject) => {
const res = await request(confirmSignCancellation, {
type: 2,
data: {
hasCard: hasCard,
orderId: form.orderId,
cardId: form.cardId
},
method: "POST",
showLoading: true,
});

const data = stringToJson(res.bizContent);
resolve(data);
}).catch((error) => {
reject(error);
}
})
},
});
};
const next = () => {
if (!form.licenseFrontUrl) {
msg("请上传行驶证的主页");
return;
}
if (!form.licenseReverseUrl) {
msg("请上传行驶证的副页");
return;
}
if (!form.ReasonCancellation) {
msg("请选择注销原因");
return;
}
navTo(`/subpackage/after-sale/ETC-log-off/refund-information-list?mobile=${form.mobile}&&customerIdnum=${form.customerIdnum}&&userType=${form.userType}`);
}
</script>

@@ -255,13 +350,13 @@
page {
width: 100%;
height: 100%;
background-color: #ffffff;
background-color: #EEF7F7;
}
</style>
<style lang="scss" scoped>
.upload-box {
// width: 100%;
padding: 30rpx;
width: 92%;
margin: 30rpx auto;

.head-tips {
text-indent: 2rem;
@@ -308,7 +403,6 @@
width: 110rpx;
height: 40rpx;
background: #ecfbf8;
/* opacity: 0.2; */
border-radius: 6rpx;
font-size: 20rpx;
font-family: Microsoft YaHei;
@@ -328,7 +422,9 @@
.from {
background-color: #fff;
margin-top: 30rpx;
// padding: 0 30rpx;
border-radius: 20rpx;
padding: 10rpx 20rpx;
box-sizing: border-box;

::v-deep .u-form-item {
padding: 0;
@@ -402,4 +498,95 @@
margin: 60rpx auto;
}
}

.picture-wrapper {
width: 92%;
margin: 0 auto;
margin-top: 40rpx;

.bg {
background: #ffffff;
box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8);
border-radius: 20rpx;
padding: 40rpx;
display: flex;
justify-content: space-between;

.name {
font-size: 34rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #000000;
line-height: 34rpx;
}

.value {
margin-top: 20rpx;
font-size: 24rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
line-height: 24rpx;
}

.tip {
margin-top: 20rpx;
text-align: center;
width: 110rpx;
height: 40rpx;
background: rgba(33, 190, 177, 0.2);
border-radius: 6rpx;

.tip-value {
font-size: 20rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #0a8f8a;
line-height: 40rpx;
opacity: 1;
}
}
}

.icon {
width: 294rpx;
height: 188rpx;
}
}

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

.message {
font-size: 32rpx;
margin: 40rpx 0 20rpx 0;
font-weight: bold;
}

.change {
display: flex;
text-align: center;
justify-content: flex-end;
width: 100%;
}

.change>view {
height: 60rpx;
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
border-radius: 40rpx;
font-size: 32rpx;
font-family: Microsoft YaHei;
color: #ffffff;
line-height: 60rpx;
width: 25%;
}
</style>

+ 0
- 6
subpackage/after-sale/account-change/release-products.vue View File

@@ -39,12 +39,6 @@

const savaHandle = () => {
console.log("执行点击事件");
// uni.navigateTo({
// url: `/pages/orders/choice-product?orderId=${state.orderId}`
// })
// uni.redirectTo({
// url: `/pages/orders/choice-product?orderId=${state.orderId}`
// });
};
const qianyueAction = (val) => {
console.log(val);

+ 66
- 1
subpackage/after-sale/add-equity/add-equity-details.vue View File

@@ -22,7 +22,7 @@
<script setup lang="ts">
import { reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import { addEquityListApi, getOpenidApi, PAYMENTORDERAPPLY, equityPaymentOrderApi, equityPaymentTestApi } from "@/utils/network/api.js";
import { addEquityListApi, getOpenidApi, PAYMENTORDERAPPLY, equityPaymentOrderApi, equityPaymentTestApi, aliPayConfigIdTwo, obtainUserId } from "@/utils/network/api.js";
import {
request
} from "@/utils/network/request.js";
@@ -119,6 +119,7 @@
}
// 权益支付下单
const equityPaymentOrderRequest = () => {
// #ifdef MP-WEIXIN
uni.login({
provider: "weixin",
success: function (e) {
@@ -190,7 +191,71 @@
})
},
})
// #endif
// #ifdef MP-ALIPAY
my.getAuthCode({
scopes: 'auth_base',
success: res => {
const optionsUser = {
type: 2,
data: {
payConfigId: aliPayConfigIdTwo,
code: res.authCode
},
method: "POST",
showLoading: true,
};
console.log('支付宝用户编号请求:', optionsUser)
request(obtainUserId, optionsUser).then((res) => {
console.log('支付宝用户编号返回:', res)
const data = stringToJson(res.bizContent);
console.log("data", data)
const optionsali = {
type: 2,
data: {
id: state.id,
payType: "EQUITY",
wxOpenid: data.openId,
},
method: "POST",
showLoading: true,
};
console.log('支付下单请求:', optionsali)
request(equityPaymentOrderApi, optionsali).then((res) => {
const data = stringToJson(res.bizContent);
console.log('支付下单返回:', data)
my.tradePay({
// 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号 trade_no
tradeNO: data.tranPackage,
success: res => {
console.log("支付成功", res);
if (res.resultCode != "6001") {
// 权益支付检测
equityPaymentTestRequest().then((item : any) => {
console.log("权益支付检测", data)
msg("权益产品购买成功,到【我的】权益查看")
setTimeout(() => {
uni.navigateBack({
delta: 2
})
}, 2000)
})
}

},
fail: res => {
console.log("支付失败", res);
},
});

});
});
},
fail: err => {
console.log('my.getAuthCode 调用失败', err)
}
});
// #endif
}
</script>


+ 82
- 4
subpackage/after-sale/add-equity/equity-list.vue View File

@@ -36,7 +36,7 @@
onLoad, onReachBottom, onShow
} from "@dcloudio/uni-app";
import {
showEquityListApi, getOpenidApi, equityPaymentOrderApi, equityPaymentTestApi
showEquityListApi, getOpenidApi, equityPaymentOrderApi, equityPaymentTestApi, obtainUserId, aliPayConfigIdTwo
} from "@/utils/network/api.js";
import {
request
@@ -55,7 +55,8 @@
flags: false,
pageSize: 10,
pageNo: 1,
id: ""
id: "",
totalCount: "",//总条数
});
const flag = ref('0') //默认选择0
onShow(() => {
@@ -76,12 +77,25 @@
}
request(showEquityListApi, options).then((res) => {
const data = stringToJson(res.bizContent);
state.list = [...state.list, ...stringToJson(res.bizContent).data]
console.log("购买2", data.data, state.list.length > 0)
state.totalCount = data.totalCount
let dataAll = [...state.list, ...stringToJson(res.bizContent).data]
for (var i = 0; i < dataAll.length; i++) {
console.log("111", dataAll[i]['insertTime'], dataAll[i]['insertTime'].replace("T", " "))
if (dataAll[i]['insertTime']) {
dataAll[i]['insertTime'] = dataAll[i]['insertTime'].replace("T", " ")
}
if (dataAll[i]['payTime']) {
dataAll[i]['payTime'] = dataAll[i]['payTime'].replace("T", " ")
}
}
state.list = dataAll

console.log("购买2", data.totalCount, data.data, state.list.length > 0)
})
}
onReachBottom(() => {
console.log("触底了", state.list.length, state.pageNo * 10)
if (Number(state.totalCount) == state.list.length) return state.flags = true
if (state.list.length < state.pageNo * 10) return state.flags = true
console.log("触底了")
state.pageNo++
@@ -93,6 +107,7 @@
// 权益支付下单
const equityPaymentOrderRequest = (id) => {
state.id = id
// #ifdef MP-WEIXIN
uni.login({
provider: "weixin",
success: function (e) {
@@ -146,7 +161,70 @@
})
},
})
// #endif
// #ifdef MP-ALIPAY
my.getAuthCode({
scopes: 'auth_base',
success: res => {
const optionsUser = {
type: 2,
data: {
payConfigId: aliPayConfigIdTwo,
code: res.authCode
},
method: "POST",
showLoading: true,
};
console.log('支付宝用户编号请求:', optionsUser)
request(obtainUserId, optionsUser).then((res) => {
console.log('支付宝用户编号返回:', res)
const data = stringToJson(res.bizContent);
console.log("data", data)
const optionsali = {
type: 2,
data: {
id: state.id,
payType: "EQUITY",
wxOpenid: data.openId,
},
method: "POST",
showLoading: true,
};
console.log('支付下单请求:', optionsali)
request(equityPaymentOrderApi, optionsali).then((res) => {
const data = stringToJson(res.bizContent);
console.log('支付下单返回:', data)
my.tradePay({
// 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号 trade_no
tradeNO: data.tranPackage,
success: res => {
console.log("支付成功", res);
if (res.resultCode != "6001") {
// 权益支付检测
equityPaymentTestRequest().then((item : any) => {
console.log("权益支付检测", data)
equityPaymentTestRequest().then((item : any) => {
msg("权益产品购买成功")
state.pageNo = 1
state.list = []
showEquityListRequest()
})
})
}
},
fail: res => {
console.log("支付失败", res);
},
});

});
});
},
fail: err => {
console.log('my.getAuthCode 调用失败', err)
}
});
// #endif
}
// 权益支付检测
const equityPaymentTestRequest = () => {

+ 2
- 1
subpackage/after-sale/add-equity/equity-product-evaluation.vue View File

@@ -173,7 +173,8 @@
"pictureUrl": state.interest.imageList.join(";"),
"message": '',
"suggestion": state.interest.content,
"isAnonymity": state.isAnonymity //是否匿名
"isAnonymity": state.isAnonymity, //是否匿名
"type": 1 //区分其他评价
},
method: 'POST',
showLoading: true,

+ 3
- 3
subpackage/after-sale/additional-equipment/car-change.vue View File

@@ -56,7 +56,7 @@
</u-form-item>

<u-form-item label="所有人" disabled>
<u-input inputAlign="right" v-model="state.form.man" />
<u-input inputAlign="right" v-model="state.form.ownerName" />
</u-form-item>
<u-form-item label="车辆类型" disabled>
<u-input inputAlign="right" v-model="state.form.vehicleType" />
@@ -256,7 +256,7 @@
],
form: {
orderId: "", //订单ID
man: "", //所有人
// man: "", //所有人
character: "", //使用性质
register: "", //注册日期

@@ -341,7 +341,7 @@
uploadFile(val.tempImagePath, imageType, etcCarOcrCard).then((data) => {
if (state.choiceIndex === "3") {
state.form.vehicleId = data.plate_a;
state.form.man = data.man;
state.form.ownerName = data.man;
state.form.vehicleType = data.vehicle;
state.form.character = data.character;
state.form.vin = data.vin;

+ 1
- 1
subpackage/after-sale/refundPage.vue View File

@@ -256,7 +256,7 @@
const cardFree = () => {
var data = {
orderId: state.hasData.orderId, //退费信息编号
bankType: state.bankType, //开户行
bankType: state.array[state.index], //开户行
province: state.address[0], //开户行所在的省
sell: state.address[1], //开户行所在的市
cusName: state.hasData.customerName, //开户人名称

+ 3
- 3
subpackage/orders/car-release.vue View File

@@ -85,7 +85,7 @@
</u-form-item>

<u-form-item label="所有人">
<u-input inputAlign="right" placeholder="请输入所有人" v-model="state.form.man"
<u-input inputAlign="right" placeholder="请输入所有人" v-model="state.form.ownerName"
:disabled="state.isEnableChangeOCRCarInfo" maxlength="20" />
</u-form-item>
<u-form-item label="车辆类型">
@@ -440,7 +440,7 @@
actionSheetList: [],
form: {
orderId: "", //订单ID
man: "", //所有人
// man: "", //所有人
character: "", //使用性质
register: "请输入注册日期", //注册日期

@@ -659,7 +659,7 @@
} else {
state.form.vehicleIdNum = data.plate_a;
}
state.form.man = data.man;
state.form.ownerName = data.man;
state.form.vehicleType = data.vehicle;
state.form.character = data.character;
state.form.vin = data.vin;

+ 0
- 77
subpackage/orders/essential-information-two.vue View File

@@ -88,7 +88,6 @@
<script setup lang="ts">
/*导航*/
import navBgCar from "./components/nav-bg-car2";
// import carNumberInput from "@/components/car-number-input/car-number-input.vue";
import numberplateColor from "./components/layout-numberplate-color";
import { getItem, StorageKeys } from "@/utils/storage";
import { stringToJson } from "@/utils/network/encryption";
@@ -141,45 +140,6 @@
totalAmount: "",
equityId: ""
});
// const globalParam = () => {
// const options = {
// type: 2,
// data: {
// "loginSource": getItem("loginSource")
// },
// method: "POST",
// showLoading: true,
// };
// request(getGlobalParam, options).then((res) => {
// const result = stringToJson(res.bizContent);
// console.log("配置", result);
// });
// }

// const getInfo = () => {
// //参数说明
// let options = {
// type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
// data: {
// businessType: 'USER_AGREEMENT' //用户协议
// }, //请求参数
// method: "POST", //提交方式(默认POST)
// showLoading: true, //是否显示加载中(默认显示)
// };

// //调用方式
// request(infoQuery, options)
// .then((res) => {
// let data = stringToJson(res.bizContent)
// if (data.textType = "URL") {
// state.agreeURL = envs[process.env.NODE_ENV].baseUrl + data.text
// }
// console.log("用户协议", state.agreeURL);
// })
// .catch((err) => {
// console.log(err);
// });
// }
const goToAddAddress = () => {
uni.navigateTo({
url: "/subpackage/orders/addAddress",
@@ -202,41 +162,9 @@
state.show = false;
};
const nextAction = () => {
// noticeUser(() => {
nextActionRequest()
// });
};
const nextActionRequest = () => {
// if (!state.data.vehiclePlate) {
// msg("请输入申办车牌");
// return;
// }
// state.data.vehiclePlate = state.data.vehiclePlate.trim();

// console.log(state.data.vehiclePlate);
// console.log(state.data.vehiclePlate.length);

// if (state.data.vehiclePlate.length < 7) {
// msg("请输入正确的申办车牌");
// return;
// }
//1.优先车牌校验 2.在进行订单创建
// isSubmitOrderRequest(state.data.vehiclePlate, state.data.vehiclePlateColor).then((item) => {
// console.log("item.data.data.canSubmit", item.data.data.canSubmit)
// if (item.data.data.canSubmit == 1) {
// var vehicleData = {
// vehiclePlate: state.data.vehiclePlate,
// vehiclePlateColor: state.data.vehiclePlateColor,
// };

// const options = {
// type: 2,
// data: vehicleData,
// method: "POST",
// showLoading: true,
// };
// console.log("车牌信息", options)
// request(etcVehiclePlateVer, options).then((res) => {
var data = state.data;
// #ifdef MP-ALIPAY
data.orderSource = 'ALI'
@@ -274,11 +202,6 @@
})
}
});
// });
// } else {
// msg(item.data.data.canSubmitMsg);
// }
// })
}
//按照订单阶段去跳转
const orderGoAction = () => {

+ 1
- 78
subpackage/orders/essential-information.vue View File

@@ -20,46 +20,7 @@
</button>
</view>
<view>
<!-- 收货地址 -->
<!-- <view v-if="!state.data.region" class="address-lane">
<view class="title">请选择或新增收货地址</view>
<view style="margin-top: 30rpx" class="action">
<button type="default" class="button" @click="state.show = true">
添加收货地址
</button>
</view>
</view> -->
<!-- <view v-if="state.data.region" class="address-lane">
<view class="title">收货地址</view>
<view @click="state.show = true" class="address-content" style="margin-top: 30rpx">
<view class="flex">
<image :showLoading="true" :src="`${$imgUrl}applyCard/location.png`"
style="width: 48rpx; height: 48rpx">
</image>
<view style="margin-left: 18rpx" class="">
<view class="address">
{{ state.data.region + state.data.address }}
</view>
<view style="margin-top: 15rpx" class="flex">
<view class="name">
{{ state.data.consignee }}
</view>
<view class="phone">
{{ state.data.consigneeTel }}
</view>
</view>
</view>
</view>
<view class="arror">
<image :src="`${$imgUrl}common/arror-right.png`" class="icon"></image>
</view>
</view>
<view style="margin-top: 30rpx" class="action">
<button type="default" class="button" @click="nextAction()">
下一步
</button>
</view>
</view> -->

</view>
</view>
<!-- 地址弹窗 -->
@@ -270,44 +231,6 @@
uni.redirectTo({
url: `/subpackage/orders/essential-information-two?promoteId=${getItem("promoteId")}&userType=${state.data.userType}&type=${state.data.type}&isValueCard=${state.isValueCard}&totalAmount=${state.totalAmount}&equityId=${state.equityId}&vehiclePlate=${state.data.vehiclePlate}&vehiclePlateColor=${state.data.vehiclePlateColor}`,
});
return;
var data = state.data;
// #ifdef MP-ALIPAY
data.orderSource = 'ALI'
// #endif
const options = {
type: 2,
data: data,
method: "POST",
showLoading: true,
};

request(etcCreatOrder, options).then((res) => {
console.log(res);
if (res.statusCode === 600) {
orderGoAction();
} else {
const data = stringToJson(res.bizContent);
state.orderId = data.orderId
console.log(data);
//提交产品信息
productReCodeAction(data.orderId).then((result) => {
console.log("产品信息", result);
// 加购权益产品
addProductRequest().then((res) => {
if (state.data.userType == 1) {
uni.navigateTo({
url: `/subpackage/orders/opening-account-people?orderId=${data.orderId}&&vehiclePlateColor=${state.data.vehiclePlateColor}&isSign=${state.isValueCard}&type=${state.data.type}`,
});
} else {
uni.navigateTo({
url: `/subpackage/orders/opening-account-unit?orderId=${data.orderId}&&vehiclePlateColor=${state.data.vehiclePlateColor}&isSign=${state.isValueCard}&type=${state.data.type}`,
});
}
})
})
}
});
});
} else {
msg(item.data.data.canSubmitMsg);

+ 4
- 1
utils/network/api.js View File

@@ -154,7 +154,10 @@ export const userInfoIndex = "9a78e7c35f31439990dc4b778ca84ad1"; //USER-获取
// 售后管理
export const CardSignCancellation = "146"; //卡签注销
// export const CardSignCancellation = "146"; //卡签注销
export const CardSignCancellation = "7f3f4d4b3fde4d45a706e6c67312a42d"; //卡签注销
export const CancellationRefundInforAdd = "bc51978865f44f2e87eed8400f78dddc"; //注销退费信息新增
export const cancelList = "3c141cc492cf490db8b3528ac89b0bdc"; //注销退费信息查询
export const PassivelyHangUp = "85"; //卡被动挂起
export const labelRelease = "88"; //签解挂
export const labelHangUp = "87"; //签挂起

+ 2
- 2
utils/utils.ts View File

@@ -446,7 +446,7 @@ export const uploadFile = (tempImagePath, imageType, code) => {
success: (uploadFileRes) => {
let uploadFileImage = 'http://100.64.2.113:9000' + '/default-bucket/' + JSON.parse(uploadFileRes.data).data.ossFilePath
console.log("111", JSON.parse(uploadFileRes.data).data.ossFilePath);
if (code == 15) { //身份证
if (code == 15) { //身份证 imageType 1 2
var data = {
source: "1",
agencyId: agentId,
@@ -454,7 +454,7 @@ export const uploadFile = (tempImagePath, imageType, code) => {
fileName: tempImagePath,
url: uploadFileImage
};
} else if (code == 16) { //行驶证
} else if (code == 16) { //行驶证 imageType 1正 2反
var data = {
source: "1",
agencyId: agentId,

Loading…
Cancel
Save