@@ -125,6 +125,13 @@ | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "blacklist-query/addCar", | |||
"style": { | |||
"navigationBarTitleText": "新增车辆", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "cancell-refund/cancell-refund", | |||
"style": { |
@@ -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": |
@@ -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> |
@@ -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> |
@@ -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`) | |||
} |
@@ -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> |
@@ -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); | |||
} |
@@ -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) { | |||
// 不签约 |
@@ -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" //用户提交 - 新增 |