Browse Source

修复售后页面显示,修复更换ETC设备填写信息页面和储值卡转记账卡 地址修改,新增和默认地址,以及修改下单车辆信息,首页轮播图接口、下单产品接口联调

yxb
不甘寂寞 2 years ago
parent
commit
df0b6cfb25

+ 161
- 5
after-sale/replace-equipment/form.vue View File

@@ -7,17 +7,17 @@
<view class="">
<text class="item1">{{form.consignee}}</text>
<text class="item2">{{form.consigneeTel}}</text>
<text class="item3">默认</text>
<text class="item3" v-if="form.defaultAddress ==1">默认</text>
</view>
<view class=""> {{form.region +form.address}}</view>
</view>
</view>
<view class="edit">
<view class="edit" @click="address.show = true">
<image :src="`${$imgUrl}applyCard/edit.png`" mode=""></image>
</view>
</view>
<u-form :model="form" ref="myForm">
<u-form ref="myForm">
<view class="from">
<u-form-item prop="cardState">
<view class="from_item">
@@ -101,6 +101,41 @@
<button class="submit" @click="submit">下一步</button>
</view>
<!-- 地址弹窗 -->
<u-popup mode="bottom" v-model="address.show">
<view class="address-line">
<view v-if="address.list" v-for="(item, index) in address.list" :key="index" @click="addressSelected(item)"
style="margin-bottom: 40rpx" class="flex-bettwen">
<view class="flex">
<view class="xing">
{{ item.consignee.charAt(0) }}
</view>
<view class="content">
<view class="flex">
<view class="name">
{{ item.consignee }}
</view>
<view class="phone">
{{ item.consigneeTel }}
</view>
</view>
<view class="address">
{{ item.region + item.address }}
</view>
</view>
</view>
<view @click.stop="editAddress(item)" style="margin-left: 80rpx" class="picture">
<image :showLoading="true" :src="`${$imgUrl}applyCard/edit.png`"
style="width: 48rpx; height: 48rpx"></image>
</view>
</view>
<view :style="address.list ? 'margin-top: 60rpx;' : ''" class="action-bottom">
<button type="default" class="button" @click="goToAddAddress()">
添加收货地址
</button>
</view>
</view>
</u-popup>
</template>
<script setup lang="ts">
@@ -142,7 +177,8 @@
const address = reactive({
list: []
list: [],
show: false
}); //地址list
const form = reactive({
@@ -157,7 +193,8 @@
receiveMethod: '1',
postCode: '',
receiveMethodName: '邮寄', //0 --- 不邮寄 1 --- 邮寄
applyRes: ''
applyRes: '',
defaultAddress: 2
});
@@ -204,6 +241,32 @@
},
]);
const goToAddAddress = () => {
uni.navigateTo({
url: "/applyCard/addAddress",
});
};
const editAddress = (val) => {
uni.navigateTo({
url: `/applyCard/editAddress?content=` + JSON.stringify(val),
});
};
const addressSelected = (val : any) => {
console.log(val);
// state.data = {
// ...state.data,
// ...val,
// };
// state.show = false;
form.consignee = val.consignee
form.consigneeTel = val.consigneeTel
form.address = val.address
form.region = val.region
form.postCode = val.postalCode
form.defaultAddress = val.defaultAddress
address.show = false
};
// 寄回单选
const sendChange = (e : any) => {
console.log(e);
@@ -294,6 +357,7 @@
form.address = defaultAddress.address
form.region = defaultAddress.region
form.postCode = defaultAddress.postalCode
form.defaultAddress = defaultAddress.defaultAddress
}
});
};
@@ -508,7 +572,99 @@
}
}
}
.address-line {
padding: 20px;
.flex-bettwen {
display: flex;
align-items: center;
justify-content: space-between;
}
.xing {
width: 68rpx;
height: 68rpx;
background: rgba(0, 179, 139, 0.2);
border-radius: 50%;
font-size: 26rpx;
font-weight: 400;
color: #00b38b;
line-height: 68rpx;
text-align: center;
}
.content {
margin-left: 20px;
.name {
font-size: 30rpx;
font-family: Microsoft YaHei;
font-weight: 500;
color: #333333;
}
.phone {
margin-left: 10rpx;
font-size: 24rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
line-height: 36rpx;
}
.address {
margin-top: 10rpx;
font-size: 26rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #333333;
line-height: 36rpx;
}
.picture {
width: 48rpx;
height: 48rpx;
}
.editIcon {
width: 48rpx;
height: 48rpx;
}
}
}
.action {
padding-bottom: 100rpx;
.button {
height: 80rpx;
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
}
}
.action-bottom {
padding-bottom: 30rpx;
.button {
height: 80rpx;
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
}
}
.flex {
display: flex;
align-items: center;
}
.submit {
width: 670rpx;
height: 80rpx;

+ 122
- 84
after-sale/replace-equipment/verification.vue View File

@@ -15,7 +15,8 @@
<radio-group @change="radioChange" class="radios">
<block v-for="(item, index) in radiolist1" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.applyType == item.val" color="#13e7c1" style="transform:scale(0.75)" />
<radio :value="item.val" :checked="form.applyType == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
@@ -35,7 +36,8 @@
<radio-group @change="typeChange" class="radios">
<block v-for="(item, index) in radiolist2" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.damageMode == item.val" color="#13e7c1" style="transform:scale(0.75)" />
<radio :value="item.val" :checked="form.damageMode == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
@@ -43,7 +45,7 @@
</view>
</u-form-item>
<!-- <u-form-item prop="phone">
<!-- <u-form-item prop="phone">
<view class="from_item" style="background-color: #f7f7f7">
<text><text style="color: red"></text>手机号:</text>
<u-input v-model="form.mobile" :disabled="true" class="input" />
@@ -63,10 +65,12 @@
</u-form-item> -->
</view>
</u-form>
<button style="margin-top: 50rpx;" class="submit" v-if="apply.data.status === 'APPLY'||!apply.data.status"
@click="toPage()">下一步填写资料</button>
<button style="margin-top: 30rpx;" class="submit" v-if="apply.data.status"
@click="changeCardQueryCancleAction()">撤回申请</button>
<view class="btn-wrapper">
<button class="default button" v-if="apply.data.status"
@click="changeCardQueryCancleAction()" type="default">撤回申请</button>
<button class="submit button" v-if="apply.data.status === 'APPLY'||!apply.data.status"
@click="toPage()" type="default">下一步填写资料</button>
</view>
</view>
</template>
@@ -85,7 +89,8 @@
} from "../../utils/utils";
import {
onReady,
onLoad
onLoad,
onShow,
} from "@dcloudio/uni-app";
import {
request
@@ -132,27 +137,27 @@
// 单选数据列表
const radiolist1 = reactive([{
name: "卡",
val: "EXCHANGE_CARD",
},
{
name: "OBU",
val: "EXCHANGE_OBU",
}, {
name: "卡和OBU",
val: "EXCHANGE_ALL",
},
name: "卡",
val: "EXCHANGE_CARD",
},
{
name: "OBU",
val: "EXCHANGE_OBU",
}, {
name: "卡和OBU",
val: "EXCHANGE_ALL",
},
]);
// 单选数据列表
const radiolist2 = reactive([{
name: "人为损坏",
val: "0",
},
{
name: "自然损坏",
val: "1",
}
name: "人为损坏",
val: "0",
},
{
name: "自然损坏",
val: "1",
}
]);
// 验证规则
@@ -195,25 +200,30 @@
form.mobile = option.mobile
params.cardId = option.cardId
params.orderId = option.orderId
changeCardQueryAction().then(val => {
console.log(val);
apply.data = val;
apply.data.status = val.status;
})
// changeCardQueryAction().then(val => {
// console.log(val);
// apply.data = val;
// apply.data.status = val.status;
// })
});
onShow(() => {
changeCardQueryAction()
})
// 单选
const radioChange = (e : any) => {
console.log(e);
form.applyType = e.detail.value
};
// 单选
const typeChange = (e : any) => {
console.log(e);
form.damageMode = e.detail.value
};
const radioChange = (e : any) => {
console.log(e);
form.applyType = e.detail.value
};
// 单选
const typeChange = (e : any) => {
console.log(e);
form.damageMode = e.detail.value
};
const getCode = () => {
if (codeDuration.value !== 0) {
@@ -249,13 +259,21 @@
method: "POST",
showLoading: true,
};
return new Promise(async (resolve, reject) => {
const res = await request(changeCardQuery, options);
request(changeCardQuery, options).then((res) => {
const data = stringToJson(res.bizContent);
resolve(data);
}).catch((error) => {
reject(error);
});
if (data) {
apply.data = data;
apply.data.status = data.status;
}
})
// return new Promise(async (resolve, reject) => {
// const res = await request(changeCardQuery, options);
// const data = stringToJson(res.bizContent);
// resolve(data);
// }).catch((error) => {
// reject(error);
// });
}
//撤销订单
@@ -317,38 +335,38 @@
// };
// request(checkCode, options)
// .then(() => {
if (apply.data.status === 'APPLY') {
navTo(
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${apply.data.id}`
)
} else {
// if (form.applyTypeName === '卡') {
// form.applyType = 'EXCHANGE_CARD'
// } else if (form.applyTypeName === 'OBU') {
// form.applyType = 'EXCHANGE_OBU'
// } else if (form.applyTypeName === '卡和OBU') {
// form.applyType = 'EXCHANGE_ALL'
// }
// if (form.damageModeName === '人为损坏') {
// form.damageMode = '0'
// } else if (form.damageModeName === '自然损坏') {
// form.damageMode = '1'
// }
queryCckChangejzCardAction().then(val => {
navTo(
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${val.id}`
)
})
}
// })
// .catch((err) => {
// console.log(err);
// });
// } else {
// console.log("验证未通过");
if (apply.data.status === 'APPLY') {
navTo(
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${apply.data.id}`
)
} else {
// if (form.applyTypeName === '卡') {
// form.applyType = 'EXCHANGE_CARD'
// } else if (form.applyTypeName === 'OBU') {
// form.applyType = 'EXCHANGE_OBU'
// } else if (form.applyTypeName === '卡和OBU') {
// form.applyType = 'EXCHANGE_ALL'
// }
// if (form.damageModeName === '人为损坏') {
// form.damageMode = '0'
// } else if (form.damageModeName === '自然损坏') {
// form.damageMode = '1'
// }
queryCckChangejzCardAction().then(val => {
navTo(
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${val.id}`
)
})
}
// })
// .catch((err) => {
// console.log(err);
// });
// } else {
// console.log("验证未通过");
// }
// });
};
</script>
@@ -363,14 +381,16 @@
}
</style>
<style lang="scss" scoped>
.radios{
.radios {
display: flex;
}
.radio-box{
.radio-box {
display: flex;
align-items: center;
padding-left: 20rpx;
}
.hint2 {
display: flex;
@@ -494,13 +514,31 @@
}
}
}
.btn-wrapper{
display: flex;
padding-top: 60rpx;
}
.button::after{
border:none;
}
.default{
height: 80rpx;
background: rgba(0, 179, 139, .1);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #00B38B;
line-height: 80rpx;
width: 45%;
border:1px solid #00B38B;
}
.submit {
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%);
width: 670rpx;
height: 80rpx;
line-height: 80rpx;
color: #fff;
border-radius: 100rpx;
font-size: 32rpx;
width: 45%;
}
</style>
</style>

+ 183
- 19
after-sale/to-bookkeeping-card/mailing_information.vue View File

@@ -9,17 +9,17 @@
<view class="">
<text class="item1">{{form.customerName}}</text>
<text class="item2">{{form.customerTel}}</text>
<text class="item3">默认</text>
<text class="item3" v-if="form.defaultAddress ==1">默认</text>
</view>
<view class=""> {{form.area +form.address}}</view>
</view>
</view>
<view class="edit">
<view class="edit" @click="address.show = true">
<image :src="`${$imgUrl}applyCard/edit.png`" mode=""></image>
</view>
</view>
<u-form :model="form" ref="myForm">
<u-form ref="myForm">
<view class="from">
<u-form-item prop="cardState">
<view class="from_item">
@@ -42,15 +42,16 @@
</radio-group>
</view>
</u-form-item>
<u-form-item prop="logistics" v-if="form.sendStatusName == '寄回'">
<view class="from_item">
<text><text style="color: red">*</text>退货物流公司:</text>
<view style="display: flex" @click="showPicker">
<u-input v-model="form.courierCompany" class="input" disabled placeholder="请选择" />
<!-- <u-form-item prop="logistics" v-if="form.sendStatusName == '寄回'"> -->
<view class="from_item" v-if="form.sendStatusName == '寄回'" @click="showPicker">
<text style="font-size: 28rpx;"><text style="color: red">*</text>退货物流公司:</text>
<view style="display: flex;align-items: center;font-size: 28rpx;" >
<u-input v-model="form.courierCompany" class="input" style="visibility: hidden;" placeholder="请选择" />
<text v-if="form.courierCompany">{{form.courierCompany}}</text>
<u-icon name="arrow-right" style="margin-left: 10px"></u-icon>
</view>
</view>
</u-form-item>
<!-- </u-form-item> -->
<u-form-item prop="returnNum" v-if="form.sendStatusName == '寄回'">
<view class="from_item">
<text><text style="color: red"></text>退货单号:</text>
@@ -89,6 +90,41 @@
<button class="submit" @click="submit">下一步</button>
</view>
<!-- 地址弹窗 -->
<u-popup mode="bottom" v-model="address.show">
<view class="address-line">
<view v-if="address.list" v-for="(item, index) in address.list" :key="index" @click="addressSelected(item)"
style="margin-bottom: 40rpx" class="flex-bettwen">
<view class="flex">
<view class="xing">
{{ item.consignee.charAt(0) }}
</view>
<view class="content">
<view class="flex">
<view class="name">
{{ item.consignee }}
</view>
<view class="phone">
{{ item.consigneeTel }}
</view>
</view>
<view class="address">
{{ item.region + item.address }}
</view>
</view>
</view>
<view @click.stop="editAddress(item)" style="margin-left: 80rpx" class="picture">
<image :showLoading="true" :src="`${$imgUrl}applyCard/edit.png`"
style="width: 48rpx; height: 48rpx"></image>
</view>
</view>
<view :style="address.list ? 'margin-top: 60rpx;' : ''" class="action-bottom">
<button type="default" class="button" @click="goToAddAddress()">
添加收货地址
</button>
</view>
</view>
</u-popup>
</template>
<script setup lang="ts">
@@ -128,7 +164,8 @@
const list = reactive([]); //物流数据
const address = reactive({
list: []
list: [],
show: false
}); //地址list
const form = reactive({
@@ -142,7 +179,8 @@
courierOrderId: '',
receiveMethod: '1',
postCode: '',
receiveMethodName: '邮寄' //0 --- 不邮寄 1 --- 邮寄
receiveMethodName: '邮寄',//0 --- 不邮寄 1 --- 邮寄
defaultAddress: 2
});
//入参
@@ -164,7 +202,7 @@
val: "0",
},
]);
const radiolist2 = reactive([{
name: "邮寄",
val: "1",
@@ -176,7 +214,34 @@
]);
let show = ref(false);
const goToAddAddress = () => {
uni.navigateTo({
url: "/applyCard/addAddress",
});
};
const editAddress = (val) => {
uni.navigateTo({
url: `/applyCard/editAddress?content=` + JSON.stringify(val),
});
};
const addressSelected = (val : any) => {
console.log(val);
// state.data = {
// ...state.data,
// ...val,
// };
// state.show = false;
form.customerName = val.consignee
form.customerTel = val.consigneeTel
form.address = val.address
form.area = val.region
form.postCode = val.postalCode
form.defaultAddress = val.defaultAddress
address.show = false
};
// 寄回单选
const sendChange = (e : any) => {
console.log(e);
@@ -189,7 +254,7 @@
};
// 打开物流先择器
const showPicker = function() {
const showPicker = function () {
show.value = true;
};
@@ -202,10 +267,12 @@
params.orderId = option.orderId
params.applyId = option.applyId
getexpresslist();
getAddressList();
});
onShow(() => {
getAddressList();
})
const getexpresslist = () => {
//参数说明
let options = {
@@ -254,6 +321,7 @@
form.address = defaultAddress.address
form.area = defaultAddress.region
form.postCode = defaultAddress.postalCode
form.defaultAddress = defaultAddress.defaultAddress
}
});
};
@@ -318,14 +386,16 @@
}
</style>
<style lang="scss" scoped>
.radios{
.radios {
display: flex;
}
.radio-box{
.radio-box {
display: flex;
align-items: center;
padding-left: 20rpx;
}
.oderPage {
flex: 1;
width: 100%;
@@ -470,6 +540,100 @@
}
}
.address-line {
padding: 20px;
.flex-bettwen {
display: flex;
align-items: center;
justify-content: space-between;
}
.xing {
width: 68rpx;
height: 68rpx;
background: rgba(0, 179, 139, 0.2);
border-radius: 50%;
font-size: 26rpx;
font-weight: 400;
color: #00b38b;
line-height: 68rpx;
text-align: center;
}
.content {
margin-left: 20px;
.name {
font-size: 30rpx;
font-family: Microsoft YaHei;
font-weight: 500;
color: #333333;
}
.phone {
margin-left: 10rpx;
font-size: 24rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
line-height: 36rpx;
}
.address {
margin-top: 10rpx;
font-size: 26rpx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #333333;
line-height: 36rpx;
}
.picture {
width: 48rpx;
height: 48rpx;
}
.editIcon {
width: 48rpx;
height: 48rpx;
}
}
}
.action {
padding-bottom: 100rpx;
.button {
height: 80rpx;
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
}
}
.action-bottom {
padding-bottom: 30rpx;
.button {
height: 80rpx;
background: linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
}
}
.flex {
display: flex;
align-items: center;
}
.submit {
width: 670rpx;
height: 80rpx;
@@ -483,4 +647,4 @@
line-height: 80rpx;
margin-top: 60rpx;
}
</style>
</style>

+ 72
- 7
applyCard/car-release.vue View File

@@ -54,7 +54,8 @@
<view class="">
<u-form label-width="200" :model="state.form" ref="uForm">
<u-form-item label="车牌号">
<u-input inputAlign="right" placeholder='请输入车牌号' v-model="state.form.vehicleIdNum" />
<!-- <u-input inputAlign="right" placeholder='请输入车牌号' v-model="state.form.vehicleIdNum" /> -->
<car-number-input @numberInputResult="carNumber" :defaultStr="state.form.vehicleIdNum"></car-number-input>
</u-form-item>
<u-form-item label="所有人">
@@ -85,9 +86,23 @@
<u-form-item label="整备质量">
<u-input inputAlign="right" placeholder='请输入整备质量' v-model="state.form.maintenaceMass" />
</u-form-item>
<u-form-item label="外廊尺寸">
<!-- <u-form-item label="外廊尺寸">
<u-input inputAlign="right" placeholder='请输入外廊尺寸' v-model="state.form.vehicleDimensions" />
</u-form-item>
</u-form-item> -->
<veiw class="form-item">
<label>外廊尺寸</label>
<view class="input-box">
<text class="sub-label">长</text>
<input v-model="state.outlineL" @input="outlineInput"/>
<text class="sub-text">X</text>
<text class="sub-label">宽</text>
<input v-model="state.outlineW" @input="outlineInput"/>
<text class="sub-text">X</text>
<text class="sub-label">长</text>
<input v-model="state.outlineH" @input="outlineInput"/>
<text class="sub-text">mm</text>
</view>
</veiw>
<u-form-item label="总质量">
<u-input inputAlign="right" placeholder='请输入总质量' v-model="state.form.totalMass" />
</u-form-item>
@@ -157,6 +172,7 @@
} from "vue";
import navBgCar from "./components/nav-bg-car4";
import navBar from "../components/nav-bar/nav-bar2.vue";
import carNumberInput from "@/components/car-number-input/car-number-input.vue";
import {
pathToBase64
} from "@/utils/util/imageTool.js";
@@ -195,6 +211,13 @@
onPageScroll((e) => {
scrollTop.value = e.scrollTop;
});
//车牌号输入
const carNumber = (val : any) => {
state.form.vehicleIdNum = val.trim()
}
//提交车辆信息
const savaHandle = () => {
state.form.vehicleId =
@@ -237,7 +260,8 @@
state.form.useUserType = state.actionSheetList[index].value
state.form.useUserTypeName = state.actionSheetList[index].text
};
//车头照图片上传
const cardFileImageUpdate = () => {
uni.chooseImage({
count: 1, //只能选取一张照片
@@ -334,12 +358,21 @@
type: undefined,//标记来源是否登录 1为未登录数据 - 需要新增地址
show: false,
isMyPeopple: true,
outlineL:"",
outlineW:"",
outlineH:"",
});
onLoad((option: any) => {
state.form.orderId = option.orderId;
state.type = option.type;
state.vehiclePlateColor = option.vehiclePlateColor;
});
//外廓尺寸输入框
const outlineInput = (e)=>{
state.form.vehicleDimensions = state.outlineL + "X"+ state.outlineW+"X"+state.outlineH+"mm";
}
//orc接口调用
const cardImageOcr = (val: any) => {
var imageType = val;
@@ -381,7 +414,11 @@
} else {
state.form.approvedCount = parseFloat(data.apc);
state.form.maintenaceMass = parseFloat(data.unladen);
state.form.vehicleDimensions = data.overall;
state.form.vehicleDimensions = data.overall.replaceAll('x','X');
let arr = data.overall.split("x");
state.outlineL = arr[0]; //外廓 长
state.outlineW = arr[1]; //外廓 宽
state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高
state.form.totalMass = parseFloat(data.gross);
state.form.vehNegImgUrl = data.imageUrl;
}
@@ -391,7 +428,8 @@
},
});
};
//过户检测
const queryGuoHuJianCeAction = () => {
var data = {
orderId: state.form.orderId
@@ -411,7 +449,8 @@
reject(error);
});
}
//过户操作
const guohuAction = (val) => {
var data = {
orderId: state.form.orderId,
@@ -689,4 +728,30 @@
margin-bottom: 60rpx;
}
}
.form-item{
display: flex;
font-size: 28rpx;
justify-content: space-between;
align-items: center;
}
.form-item label{
}
.form-item .input-box{
display: flex;
align-items: center;
}
.form-item .input-box input{
width: 90rpx;
background: #f1f1f1;
border-radius: 8rpx;
padding: 0 5rpx;
}
.form-item .sub-text{
color: #808080;
padding-left: 10rpx;
}
.form-item .sub-label{
padding: 0 10rpx;
}
</style>

+ 30
- 8
applyCard/choice-product.vue View File

@@ -3,7 +3,7 @@
<navBgCar></navBgCar>
<view class="content-value">
<view @click="savaHandle(item)" class="ul-item" v-for="(item, index) in state.dataArray" :key="index">
<image style="width: 100%; height: 170rpx; background-color: #eeeeee"
<image style="width: 100%; height: 170rpx;border-radius: 20rpx;"
:src="`${$imgUrl}applyCard/product-bg.png`"></image>
<view class="item-value">
<image class="icon-tip" :src="`${$imgUrl}applyCard/wechat.png`"></image>
@@ -96,12 +96,33 @@
};
onLoad((option: any) => {
state.orderId = option.orderId;
// state.orderId = option.orderId;
// state.userType = option.userType;
// state.vehiclePlateColor = option.vehiclePlateColor;
state.userType = option.userType;
state.vehiclePlateColor = option.vehiclePlateColor;
state.type = option.type;
// var data = {
// orderId: state.orderId,
// };
// const options = {
// type: 2,
// data: data,
// method: "POST",
// showLoading: true,
// };
// console.log('输出内容',options.data)
// request(etcQueryProduct, options).then((res) => {
// console.log(res.bizContent);
// const data = stringToJson(res.bizContent);
// console.log(data);
// console.log(typeof(data));
// state.dataArray = data??[];
// });
var data = {
orderId: state.orderId,
productType: state.type,
};
const options = {
type: 2,
@@ -111,11 +132,11 @@
};
console.log('输出内容',options.data)
request(etcQueryProduct, options).then((res) => {
console.log(res.bizContent);
// console.log(res.bizContent);
const data = stringToJson(res.bizContent);
console.log(data);
console.log(typeof(data));
state.dataArray = data??[];
// console.log(typeof(data));
state.dataArray = data.csmsnProducts??[];
});
});
@@ -147,7 +168,8 @@
const state = reactive({
orderId: "",
userType:"",
userType:1,//1 个人 2单位
type:0, //0 客车 1货车
vehiclePlateColor:"",
data: {
show: false,

+ 37
- 9
applyCard/editAddress.vue View File

@@ -20,15 +20,16 @@
<u-form-item label="邮政编码">
<u-input placeholder="邮政编码" :customStyle="btnGetCode" v-model="state.formData.postalCode" />
</u-form-item>
<u-form-item label-width="240rpx" label="设置默认收货地址">
<u-switch v-model="state.formData.defaultAddress" active-color="#25D8C9" :active-value="1"
:inactive-value="2"></u-switch>
</u-form-item>
<view class="form-item forn-switch">
<label>设置默认收货地址</label>
<switch :checked="state.formData.defaultAddress==1" color="#43a1e0" style="transform:scale(0.75)"
@change="changeSwitch"></switch>
</view>
</u-form>

<view class="action">
<button type="default" class="button-default" @click="deleteHandle()">删除</button>
<button type="default" class="button" @click="savaHandle()">保存</button>
<button style="margin-top: 30rpx;" type="default" class="button-default" @click="deleteHandle()">删除</button>
</view>
<u-picker mode="region" v-model="state.show" @confirm="regionConfirm"></u-picker>
</view>
@@ -81,8 +82,15 @@
},
show: false,
});
//switch 事件
const changeSwitch = (e : any) => {
console.log(e);
state.formData.defaultAddress = e.detail.value ? 1 : 2;
console.log(state.formData);
};

// 选择地区回调
const regionConfirm = (e: any) => {
const regionConfirm = (e : any) => {
state.formData.region = e.province.name + e.city.name + e.area.name;
};

@@ -133,6 +141,14 @@
</script>

<style lang="scss" scoped>
.form-item {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 30rpx;
padding: 20rpx 0;
}

.form {
padding: 30rpx;
}
@@ -141,6 +157,15 @@
padding-left: 20rpx;
padding-right: 20rpx;
padding-bottom: 30rpx;
display: flex;

.button::after {
border: none;
}

.button-default::after {
border: none;
}

.button {
height: 80rpx;
@@ -150,15 +175,18 @@
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
width: 45%;
}

.button-default {
height: 80rpx;
background: #ccc;
background: rgba(0, 179, 139, .1);
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 400;
color: #333;
color: #00B38B;
line-height: 80rpx;
width: 45%;
}
}

@@ -178,4 +206,4 @@
line-height: 80rpx;
}
}
</style>
</style>

+ 1
- 1
applyCard/essential-information.vue View File

@@ -142,7 +142,7 @@
postalCode: "",
},
show: false,
addressArray: undefined,
addressArray: [],
});

/* 选择车牌颜色 */

+ 3
- 0
applyCard/opening-account-unit.vue View File

@@ -68,6 +68,9 @@
<u-form-item label="公司名称">
<u-input inputAlign="right" placeholder='请输入公司名称' v-model="state.form.userName" />
</u-form-item>
<u-form-item label="部门名称">
<u-input inputAlign="right" placeholder='请输入部门名称' v-model="state.form.department" />
</u-form-item>
<u-form-item label="社会信用代码">
<u-input inputAlign="right" placeholder='请输入社会信用代码' v-model="state.form.userIdNum" />
</u-form-item>

+ 93
- 49
pages/index/index.vue View File

@@ -3,10 +3,19 @@
<view class="wrapper">
<!-- Banner -->
<view class="banner">
<swiper class="swiper" circular>
<swiper-item class="swiper-item">
<image :src="fileURL + 'image/index/banner-1.png'" mode="widthFix"></image>
</swiper-item>
<swiper class="swiper" circular :indicator-dots="swiper.indicatorDots" :autoplay="swiper.autoplay"
:interval="swiper.interval" :duration="swiper.duration" indicator-active-color="rgba(0, 179, 139, 1)"
:easing-function="swiper.easing">
<block v-if="state.swiperList.length >0" v-for="item in state.swiperList"
:key="item.id" >
<swiper-item class="swiper-item" @click="gotoLink(item)" >
<image :src="item.imgUrl?item.imgUrl:fileURL + 'image/index/banner-1.png'" mode="widthFix"></image>
</swiper-item>
</block>
<block v-else><swiper-item class="swiper-item">
<image :src="fileURL + 'image/index/banner-1.png'" mode="widthFix"></image>
</swiper-item>
</block>
</swiper>

<view class="notice">
@@ -219,7 +228,8 @@
StorageKeys
} from "../../utils/storage";
import {
queryKey
queryKey,
querySwiper,
} from "@/utils/network/api.js";
import {
reactive
@@ -238,10 +248,18 @@
const bgOrange = `url(${fileURL}image/index/bg-orange.png) center center no-repeat`;
const bgBlue = `url(${fileURL}image/index/bg-blue.png) center center no-repeat`;
const list = reactive(["您有一条待办事项,还未办理完成"])
const swiper = reactive({
indicatorDots: true,
autoplay: true,
interval: 2000,
duration: 1000,
easing: "easeInOutCubic"
})
const state = reactive({
type: 0,
userType: 0,
type: 0,//0客车 1货车
userType: 1,//1个人 2单位
notice: "",
swiperList: [],
noticeList: [
//公告栏列表
{
@@ -308,32 +326,33 @@
});
onLoad(() => {
getInfo()
quanKeyAction().then((val: any) => {
quanKeyAction().then((val : any) => {
setItem('key', val.dictTypeAndItem)
})
})

onMounted(() => {
uni.getSystemInfo({
success: (e: any) => {
console.log(e.statusBarHeight);
success: (e : any) => {
// console.log(e.statusBarHeight);
statusBarHeight.value = e.statusBarHeight;
}
})
getSwiper()
// console.log(credentialType);

//参数说明
// let code = "30" //请求编码
let options = {
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
data: {
opId: getItem("openId"),
source: "WECHAT",
tabIndex: "0",
}, //请求参数
method: "POST", //提交方式(默认POST)
showLoading: true, //是否显示加载中(默认显示)
};
// let options = {
// type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
// data: {
// opId: getItem("openId"),
// source: "WECHAT",
// tabIndex: "0",
// }, //请求参数
// method: "POST", //提交方式(默认POST)
// showLoading: true, //是否显示加载中(默认显示)
// };

//调用方式
// request(searchOrder, options)
@@ -345,6 +364,38 @@
// console.log(err);
// });
});

//获取轮播
const getSwiper = () => {

let options = {
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交)
data: {
// opId: getItem("openId"),
// source: "WECHAT",
// tabIndex: "0",
}, //请求参数
method: "POST", //提交方式(默认POST)
showLoading: true, //是否显示加载中(默认显示)
};

//调用方式
request(querySwiper, options).then((res) => {
console.log(stringToJson(res.bizContent));
const data = stringToJson(res.bizContent)
state.swiperList = data.swipers ?? []
})
.catch((err) => {
console.log(err);
});

};

//轮播跳转
const gotoLink = (item:any) => {
console.log("555555555555555555",item);
};

//办理流程tab选择
const flowPathTabHandle = (tab) => {
state.tabActive = tab;
@@ -364,7 +415,9 @@
url: "/pages/recharge/select-car",
});
};
const quanKeyAction = (val: any) => {

//全量枚举值查询
const quanKeyAction = (val : any) => {
var data = {

};
@@ -388,35 +441,27 @@
}


const toCreatOrder = (val: any) => {
const toCreatOrder = (val : number) => {
console.log(typeof (val));
state.userType = val;
if (val === "1") {
// navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
uni.navigateTo({
url:`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
})
} else {
// navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
uni.navigateTo({
url:`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
})
}
// if (val === 1) {
// // navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
// uni.navigateTo({
// url: `/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
// })
// } else {
// // navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
// uni.navigateTo({
// url: `/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
// })
// }
navTo(`/applyCard/choice-product?type=${state.type}&&userType=${state.userType}`)
closeMask();
};

const showMask = (val: any) => {
// if (getItem("token") != '' || getItem("openId") != '') {
// state.type = val;
// isShowMask.value = true;
// } else {
// confirm('您需要登录过后才能使用此功能', () => {
// uni.navigateTo({
// url: '/login/login',
// });
// }, '温馨提示', true, '去登录');
// }
state.type = val;
isShowMask.value = true;
const showMask = (val : any) => {
state.type = val;//0 客车 1货车
isShowMask.value = true;
};

const closeMask = () => {
@@ -480,7 +525,7 @@
border-radius: 30rpx;
width: 500rpx;
height: 60rpx;
bottom: 34rpx;
bottom: 46rpx;
left: 125rpx;
display: flex;
justify-content: center;
@@ -870,5 +915,4 @@
padding: 55rpx 30rpx 30rpx;
}
}
</style>

</style>

+ 4
- 5
personal-center/setting/bank-card/bank-card.vue View File

@@ -90,15 +90,14 @@
}

.button {
width: 141rpx;
height: 41rpx;
height: 48rpx;
line-height: 48rpx;
border: 1px solid #FFFFFF;
border-radius: 20rpx;
color: #ffffff;
font-size: 25rpx;
font-size: 24rpx;
text-align: center;
padding: 10rpx;
line-height: 25rpx;
padding: 0 20rpx;
}
}
}

+ 17
- 10
utils/network/api.js View File

@@ -24,9 +24,11 @@ export const wechatSecret = "95197718b43b497f02732bd9f8011080"; //小程序AppSe
export const sm4Key = "5dc11f854ceca147";

//字典
export const queryKey = 'cefb3b5da25a49eeb18865c00bc91c96'//全量KEY
export const queryKey = 'cefb3b5da25a49eeb18865c00bc91c96'//全量KEY

//菜单配置
export const queryMenuConfig = '1032'
/*统一 会员平台*/
export const sendCode = "1001"; //统一会员平台发送验证码接口
export const regist = "1003"; // 统一会员平台个人账号注册
@@ -43,6 +45,7 @@ export const addOrEditAddressQuery = "29"; //地址管理新增或编辑
export const fileUpload = "17"; // 文件上传
export const addressDelete = "28"; // 地址删除
export const addressToOrder = "531"; //CSMSN-卡签是否邮寄 -》更新地址订单
/*下单CSMSN*/
export const etcVehiclePlateVer = "35"; //车牌校验
export const etcCreatOrder = "6"; //CSMSN-创建订单
@@ -59,6 +62,15 @@ export const exchangeApply = '888' //8.99.ASS-换货/换卡签申请接口
export const exchangeFillIn = '887' //8.100. ASS-换货/换卡签填写信息接口
export const exchangeProcess = '886' //8.101.ASS-换货/换卡签审核接口
//产品选择
// export const etcQueryProduct = "48"; //获取产品根据orderId获取
export const etcQueryProduct = "098bff3fc88e48bf9cafc3b5679b4d07"; //获取产品 根据客货类型获取
export const productReCode = '914'//订单产品选择接口
//签约
export const etcOpenIdMember = "62"; //统一会员平台openId查询接口
export const etcQYAction = "23"; //签约接口
/*******************蓝牙 start*************/
/* 开卡 * 50->51->52->73->51*/
export const writeCardApply = "50"; //BDS-写卡指令申请
@@ -86,13 +98,6 @@ export const obuDecrypt = "90"; //VFJ-OBU系统信息在线解密
// export const reconciliation = "89"; //VFJ-对账交易
/*******************蓝牙 end*************/
//产品选择
export const etcQueryProduct = "48"; //获取产品
//签约
export const etcOpenIdMember = "62"; //统一会员平台openId查询接口
export const etcQYAction = "23"; //签约接口
export const productReCode = '914'//订单产品选择接口
/* 订单管理模块 */
export const orderList = "36"; //订单分页查询
export const orderDetail = "9"; //根据订单ID获取订单详情
@@ -109,7 +114,6 @@ export const outletList = '168'; //根据机构号获取服务网点信息
export const orderEvaluate = '169'; //评价订单
export const orderEvaluateTag = '170'; //获取服务评价标签
//个人中心
export const changePassword = "94"; //重置密码
export const changePhone = "220"; //修改手机号
@@ -184,4 +188,7 @@ export const gongWuChefindFormatVehicleInfo = "507"; //制式警车信息查询
export const gongWuCheDanWeiJinDu = "506"; //省中心公务车车辆办理进度查询接口//IF01001202109090707
export const gongWuCheDanWeiChaXun = "501"; //省中心公务车单位查询接口IF01001202109090705
export const gongWuCheTiJiaoJiLu = "503"; //省中心公务车申办车辆查询 IF01001202205070809
export const gongWuSupplementObu = "97"; //公务车增补obu接口
export const gongWuSupplementObu = "97"; //公务车增补obu接口
//首页接口
export const querySwiper = "59b1aab2864a467fb55f028aa54b224a"; //MTS-轮播图查询所有启用信息

Loading…
Cancel
Save