Browse Source

黑名单查询

master
yangteng 1 month ago
parent
commit
43d77be64a

+ 7
- 0
pages.json View File

@@ -125,6 +125,13 @@
"enablePullDownRefresh": false
}
},
{
"path": "blacklist-query/addCar",
"style": {
"navigationBarTitleText": "新增车辆",
"enablePullDownRefresh": false
}
},
{
"path": "cancell-refund/cancell-refund",
"style": {

+ 6
- 6
pages/bluetooth/bluetooth.vue View File

@@ -312,18 +312,18 @@
switch (prefixName) {
case "ETC":
if (name.split("-")[1] == "KC" || name.split("-")[1].indexOf('C') > 0 || name.split("-")[1].indexOf('K') > 0) {
_name = "前装-科畅";
_name = "科畅";
console.log("前装-科畅")
} else if (name.split("-")[1] == "JL") {
_name = "前装-聚力"; //共用
_name = "聚力"; //共用
} else if (name.split("-")[1] == "WJ") {
_name = "前装-万集"; //共用
_name = "万集"; //共用
} else if (name.split("-")[1] == "JY") {
_name = "前装-金溢";
_name = "金溢";
}else if (name.split("-")[1] == "ATS") {
_name = "前装-埃特斯";
_name = "埃特斯";
}else if (name.split("-")[1] == "MC") {
_name = "前装-铭创";
_name = "铭创";
}
break;
case "WJ":

+ 114
- 0
subpackage/after-sale/blacklist-query/addCar.vue View File

@@ -0,0 +1,114 @@
<template>
<view class="content">
<view class="list-item" v-for="(item,index) in state.tableData">
<view><text>卡号:</text><text>{{item.cardId}}</text></view>
<view><text>下黑时间:</text><text>{{item.creationTime}}</text></view>
<view v-if="item.reasonIn"><text>下黑原因:</text><text>{{item.reasonIn}}</text></view>
<view><text>黑名单类型:</text><text>{{item.typeC}}</text></view>
<view><text>状态:</text><text>{{item.status == '1'?'在黑':'已反白'}}</text></view>
</view>
<view class="no" v-if="state.tableData.length==0">暂无黑名单</view>
</view>
</template>

<script setup lang="ts">
import { reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import {cardBlackQuery } from "@/utils/network/api.js";
import {requestNew } from "@/utils/network/request.js";
import {getItem } from "@/utils/storage";
const state = reactive({
vehiclePlate: "",
vehiclePlateColor: "",
tableData: [],
blackStatus: [],
cardId:""
});
onLoad((option : any) => {
console.log("option", option)
let black = getItem('key')['BLACKLIST_TYPE'];
for (var k = 0; k < black.length; k++) {
let obj = {};
obj['value'] = black[k]['code']
obj['text'] = black[k]['name']
state.blackStatus.push(obj)
}
console.log("black", state.blackStatus)
state.vehiclePlate = option.vehiclePlate;
state.vehiclePlateColor = option.vehiclePlateColor;
state.cardId = option.cardId;
list()
})
const list = () => {
const options = {
type: 2,
data: {
"vehiclePlate": state.vehiclePlate,
"vehiclePlateColor": state.vehiclePlateColor,
'cardId':state.cardId
},
method: 'POST',
showLoading: true,
}
requestNew(cardBlackQuery, options).then((res) => {
console.log("res==",res.data)
const data = res;
const getData = data.data;
const newData = []
// 只要在黑的 和 1 2 3不展示
// LOSS("卡挂失",1){},
// HANG_WITHOUT_CARD("无卡挂起",2){},
// CANCEL_WITHOUT_CARD("无卡注销",3){},
// OVERDRAW("账户透支",4){},
// AGENCY_BLACK("合作机构黑名单",5){},
// VEHICLE_TYPE_NOTMATCH("车型不符",6){},
// CARD_BALANCE_INSUFFICIENT("储值卡余额不足",7){},
for (var i = 0; i < getData.length; i++) {
// if (getData[i]['status'] == 1 && (getData[i]['type'] == 4 || getData[i]['type'] == 5 || getData[i]['type'] == 6 || getData[i]['type'] == 7)) {
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 (newData[i]['type'] == state.blackStatus[m]['value']) {
newData[i]['typeC'] = state.blackStatus[m]['text']
break;
}
}
}
state.tableData = newData
console.log("圈存金额查询2", data)
})
}
</script>

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

.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: 10rpx;
width: 94%;
}

.no {
text-align: center;
padding-top: 100rpx;
}
</style>

+ 21
- 2
subpackage/after-sale/rescind-carId/rescind-carId-select-details.vue View File

@@ -63,7 +63,11 @@
</template>

<script setup lang="ts">
import { reactive,ref } from "vue";
import { reactive} from "vue";
import {releasePlateaView} from "@/utils/network/api.js";
import {requestNew} from "@/utils/network/request.js";
import { onLoad } from "@dcloudio/uni-app";

const leftIcon = {
height: '100%',
width: '8rpx',
@@ -84,7 +88,22 @@ const labelStyle = {
vehiclePlateColorStr:"",//车牌颜色中文
},
})
onLoad((option) => {
details(option.orderNo)
});
const details = (orderNo) => {
const options = {
type: 2,
data: {
orderNo
},
method: "POST",
showLoading: true,
};
requestNew(releasePlateaView, options).then((res) => {
console.log("列表详情",res)
});
};
</script>

<style lang="scss" scoped>

+ 21
- 6
subpackage/after-sale/rescind-carId/rescind-carId-select-list.vue View File

@@ -1,6 +1,6 @@
<template>
<view class="list" @click="goDetails">
<image class="car" src="/static/image/myx.png" mode=""></image>
<image class="car" :src='`${$imgUrl}issuance/car.png`' mode=""></image>
<view class="content">
<view class="content-top">
<text class="vehiclePlate">贵A12345</text>
@@ -8,7 +8,7 @@
</view>
<view class="content-time">申请时间:2025年02月21日</view>
</view>
<image class="arrow" src="/static/image/myx.png" mode=""></image>
<image class="arrow" :src='`${$imgUrl}issuance/arrow.png`' mode=""></image>
</view>
<view class="list" @click="goDetails">
<image class="car" src="/static/image/myx.png" mode=""></image>
@@ -36,10 +36,25 @@

<script setup lang="ts">
import {navTo} from "@/utils/utils";
import {
ref
} from "vue";
import {releasePlateaList} from "@/utils/network/api.js";
import {ref} from "vue";
import {requestNew} from "@/utils/network/request.js";
import { onLoad } from "@dcloudio/uni-app";
onLoad(() => {
list()
});
const list = () => {
const options = {
type: 2,
data: {},
method: "POST",
showLoading: true,
};
requestNew(releasePlateaList, options).then((res) => {
console.log("列表",res)
});
};
const goDetails = () => {
navTo(`/subpackage/after-sale/rescind-carId/rescind-carId-select-details`)
}

+ 5
- 2
subpackage/after-sale/work-order/add-work-list.vue View File

@@ -19,11 +19,14 @@

</view>
</view>
<image class="add" :src="`${$imgUrl}etcadd.png`" mode=""></image>
<image class="add" :src="`${$imgUrl}etcadd.png`" mode="" @click="add()"></image>
</template>

<script setup lang="ts">

import {navTo} from "@/utils/utils";
const add=()=>{
navTo(`/subpackage/after-sale/work-order/add-work-order`)
}
</script>

<style lang="scss" scoped>

+ 115
- 18
subpackage/after-sale/work-order/add-work-order.vue View File

@@ -9,12 +9,12 @@
</u-form-item>
<u-form-item label="姓名" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<u-input placeholder='请输入姓名' type="idcard" v-model="state.form.name" maxlength="18"
<u-input placeholder='请输入姓名' type="idcard" v-model="state.form.customerName" maxlength="18"
inputAlign="right" />
</u-form-item>
<u-form-item label="联系方式" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<u-input placeholder='请输入手机号码' type="number" v-model="state.form.mobile" maxlength="11"
<u-input placeholder='请输入手机号码' type="number" v-model="state.form.customerTel" maxlength="11"
inputAlign="right" />
</u-form-item>
</u-form>
@@ -24,27 +24,27 @@
<u-form label-width="230" :model="state.form" ref="uForm" :label-style='labelStyle' borderBottom>
<u-form-item label="工单类型" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<u-input v-model="state.form.vehiclePlateColorStr" type="select" @click="show1 = true" input-align='right'/>
<u-input v-model="state.form.questionTypeStr" type="select" @click="show2 = true" input-align='right'/>
</u-form-item>
<u-form-item label="是否ETC用户" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<u-input v-model="state.form.vehiclePlateColorStr" type="select" @click="show1 = true" input-align='right'/>
<u-input v-model="state.form.etcUserStr" type="select" @click="show3 = true" input-align='right'/>
</u-form-item>
<u-form-item label="事件发生日期" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<picker mode="date" value="{{state.date}}" bindchange="bindDateChange">
<view class="picker" v-if="!state.date">
<picker mode="date" @change="bindDateChange">
<view class="picker" v-if="!state.form.eventOccurrenceDate">
请选择日期
</view>
<view>
{{state.date}}
<view class="data">
{{state.form.eventOccurrenceDate}}
</view>
</picker>
</u-form-item>
<u-form-item label="客户投诉" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
</u-form-item>
<textarea style="border: 1rpx dashed rgb(192, 196, 204);min-height: 200rpx; width: 100%;border-radius: 18rpx;padding: 20rpx;box-sizing: border-box;" placeholder="请输入述求" auto-height adjust-position></textarea>
<textarea v-model="state.form.appeal" style="border: 1rpx dashed rgb(192, 196, 204);min-height: 200rpx; width: 100%;border-radius: 18rpx;padding: 20rpx;box-sizing: border-box;" placeholder="请输入述求" auto-height adjust-position></textarea>
<u-form-item label="其他佐证材料" :left-icon='`${$imgUrl}issuance/point-form.png`' :left-icon-style='leftIcon'
borderBottom>
<text class="common-word">(不限于图片、文件、不超过5个。)</text>
@@ -61,16 +61,21 @@
</view>
<!-- 选择车牌颜色 -->
<u-select v-model="show1" :list="state.colorRange" @confirm="changeColor"></u-select>
<!-- 工单类型 -->
<u-select v-model="show2" :list="state.questionTypeRange" @confirm="changeQuestionType"></u-select>
<!-- -->
<u-select v-model="show3" :list="state.etcUserRange" @confirm="changeEtcUser"></u-select>

</template>

<script setup lang="ts">
import { navTo} from "@/utils/utils";
import { navTo,msg,uploadFile} from "@/utils/utils";
import { reactive,ref } from "vue";
import carNumberInput from "@/components/car-number-input/car-number-input.vue";
import { onLoad } from "@dcloudio/uni-app";
import { getItem } from "@/utils/storage.ts"

import {requestNew} from "@/utils/network/request.js";
import {selfServiceUserAdd} from "@/utils/network/api.js";
const labelStyle = {
color: "#004576",
fontSize: "28rpx",
@@ -83,16 +88,33 @@
'margin-right': '4rpx',
}
const show1 = ref(false)
const show2 = ref(false)
const show3 = ref(false)
const state = reactive({
form: {
name: "",
mobile: "",
customerName: "",
customerTel: "",
vehiclePlate: "",
vehiclePlateColor: "",
vehiclePlateColorStr:"",//车牌颜色中文
questionType:"",
questionTypeStr:"",
etcUser:"",
etcUserStr:"",
eventOccurrenceDate:"",//2016-09-01 00:00:00
appeal:"",
supportingMaterialsUrl:"",
supportingMaterialsUrlShow:[]
},
colorRange: [],
date: '',//2016-09-01
questionTypeRange:[
{value: 1, label: "工单1"},
{value: 2, label: "工单2"},
],
etcUserRange:[
{value: 1, label: "是"},
{value: 0, label: "否"},
],
})
onLoad((option : any) => {
let getColor = getItem('key')['VEHICLE_COLOR_TYPE'];
@@ -114,15 +136,87 @@
state.form.vehiclePlateColorStr = item[0].label
console.log(item)
}
const bindDateChange=(e) =>{
const changeQuestionType = (item) => {
state.form.questionType = item[0].value
state.form.questionTypeStr = item[0].label
console.log(item)
}
const changeEtcUser = (item) => {
state.form.etcUser = item[0].value
state.form.etcUserStr = item[0].label
console.log(item)
}
const bindDateChange=(e)=>{
console.log('picker发送选择改变,携带值为', e.detail.value)
state.date= e.detail.value
state.form.eventOccurrenceDate= e.detail.value+" 00:00:00"
}
const savaHandle = () => {
navTo(`/subpackage/after-sale/rescind-carId/rescind-carId-select`)
if(!state.form.vehiclePlate){
msg('请输入车牌号');
return;
}
if(!state.form.vehiclePlateColor){
msg('请选择车牌颜色');
return;
}
if(!state.form.customerName){
msg('请输入姓名');
return;
}
if(!state.form.customerTel){
msg('请输入手机号码');
return;
}
if(!state.form.questionType){
msg('请选择工单类型');
return;
}
if(!state.form.etcUser){
msg('请选择是否ETC用户');
return;
}
if(!state.form.eventOccurrenceDate){
msg('请选择事件发生日期');
return;
}
if(!state.form.appeal){
msg('请输入述求');
return;
}
if(!state.form.supportingMaterialsUrl){
msg('请上传其他佐证材料');
return;
}
state.form.supportingMaterialsUrl=state.form.supportingMaterialsUrlShow.toString()
const options = {
type: 2,
data: {
...state.form
},
method: "POST",
showLoading: true,
};
requestNew(selfServiceUserAdd, options).then((res) => {
console.log("添加成功",res)
});
}
const addFile=()=>{
uni.chooseMessageFile({
count: 5,
type: 'all',
success (res) {
// tempFilePath可以作为img标签的src属性显示图片
console.log("res",res)
var files=res.tempFiles
for(var i=0;i<files.length;i++){
uploadFile(files[i]['path'], "", "").then((data) => {
state.form.supportingMaterialsUrlShow.push(data);
console.log("state.form.supportingMaterialsUrlShow",state.form.supportingMaterialsUrlShow)
})
}
}
})
}
</script>

@@ -175,6 +269,9 @@ const bindDateChange=(e) =>{
text-align: right;
color: rgb(192, 196, 204);
}
.data{
text-align: right;
}
.five{
color: rgb(195,188,157);
}

+ 7
- 6
subpackage/orders/order_payment.vue View File

@@ -515,15 +515,16 @@
const params = encodeURIComponent(JSON.stringify(state.qdSignUrl))
tools.toUrl(`/subpackage/personal-center/webview?url=` + params)
}
}else{
// 签约
uni.redirectTo({
url:`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
});
}
}else{
gotoActiveOrder(getItem('orderQueryActivate'))
}
}else{
// 签约
uni.redirectTo({
url:`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`
});
}
}else{
if (state.isValueCard == 1) {
// 不签约

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

@@ -465,4 +465,8 @@ export const hexToStrig = "/iaw/api/afterSale/comm/hexToStrig"; //解密信息

export const pinCodeUnlock = "/iaw/api/afterSale/order/cardUnBlock" //ASS-卡PIN解锁
// 解除车牌占用
export const releasePlateaApply = "/iaw/api/afterSale/releasePlate/apply" //解除车牌占用订单申请
export const releasePlateaApply = "/iaw/api/afterSale/releasePlate/apply" //解除车牌占用订单申请
export const releasePlateaList = "/iaw/api/afterSale/releasePlate/list" //解除车牌占用列表
export const releasePlateaView = "/iaw/api/afterSale/releasePlate/view" //单一订单查询
// 自助工单
export const selfServiceUserAdd = "/iaw/selfService/userAdd" //用户提交 - 新增

Loading…
Cancel
Save