瀏覽代碼

修复售后页面显示等问题

yxb
不甘寂寞 2 年之前
父節點
當前提交
1bbf46b4b5

+ 36
- 17
after-sale/ETC-log-off/etc-log-off.vue 查看文件

@@ -5,13 +5,22 @@
<u-form-item v-if="(form.type==='2'||form.type==='3')" prop="equipmentState">
<view class="from_item">
<text><text style="color: red">*</text>是否有设备注销::</text>
<u-radio-group v-model="form.equipmentStateName">
<!-- <u-radio-group v-model="form.equipmentStateName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist" :key="index" :label="item.disabled" :name="item.name"
@change="radioChange(item)">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<radio-group @change="radioChange" class="radios">
<block v-for="(item, index) in radiolist" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.equipmentState == item.val" color="#13e7c1" style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
<u-form-item prop="phone">
@@ -68,7 +77,7 @@
} from "@/utils/utils";
// 表单数据
const form = reactive({
equipmentState: "2",
equipmentState: 2,
equipmentStateName: "否",
mobile: "",
@@ -95,13 +104,13 @@
// 单选数据列表
const radiolist = reactive([{
name: "是",
disabled: false,
},
{
name: "否",
disabled: false,
},
name: "是",
val: 1,
},
{
name: "否",
val: 2,
},
]);
// 设置验证规则
@@ -161,12 +170,14 @@
// 单选
const radioChange = (val: any) => {
if (val.name === '是') {
form.equipmentState = '1';
} else {
form.equipmentState = '2';
}
const radioChange = (e : any) => {
console.log(e);
form.equipmentState = e.detail.value
// if (val.name === '是') {
// form.equipmentState = '1';
// } else {
// form.equipmentState = '2';
// }
};
//下一步
@@ -209,6 +220,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 40rpx;
}
.hint2 {
display: flex;
@@ -345,4 +364,4 @@
bottom: 60rpx;
font-size: 32rpx;
}
</style>
</style>

+ 15
- 17
after-sale/activation/activate.vue 查看文件

@@ -27,11 +27,11 @@
<button aria-disabled="true" @click="btn" :disabled="disabled">
点击开始激活
</button>
</view>
</view>
</view>
<!-- 激活成功popup -->
<u-popup v-model="state.showPopup" mode="center">
<active-success @cancel="state.showPopup = false"></active-success>
<active-success @cancel="state.showPopup = false"></active-success>
</u-popup>
</template>

@@ -68,19 +68,19 @@
const tools = require("../../static/etcUtil/tools.js");
const bluetoothUtil = require("../../static/etcUtil/index.js");
import activeSuccess from "./components/popup-device-active-success";
const state =reactive({
orderId:"",
id:"",
cardStatus:"",
obuStatus:""
const state = reactive({
orderId: "",
id: "",
cardStatus: "",
obuStatus: ""
})
onLoad(() => {
//读取传入 存储的数据orderInfo
let orderData= getItem("orderInfo");
let orderData = getItem("orderInfo");
state.id = orderData.id;
state.orderId = orderData.orderId;
console.log(state);
//获取订单详情
getOrderDetails(state.id);
})
@@ -252,19 +252,19 @@
//获取fileData 拼接字符串
let res1 = AsciToHexString(fileDataStrings.vehiclePlate, 24); //车牌号
let res2 = IntegerToHexString(fileDataStrings.vehiclePlateColor, 4); //车牌颜色
let res3 = IntegerToHexString(1, 2); //类型
let res4 = IntegerToHexString(1, 2); //用户类型
let res5 = IntegerToHexString(fileDataStrings.outlineL, 4); //车辆尺寸 长
let res6 = IntegerToHexString(fileDataStrings.outlineW, 2); //车辆尺寸 宽
let res7 = IntegerToHexString(fileDataStrings.outlineH, 2); //车辆尺寸 高
let res8 = IntegerToHexString(4, 2); //获取轮数
let res9 = IntegerToHexString(4, 2); //轴数
let res10 = IntegerToHexString(null, 4); //轴距32
let res11 = IntegerToHexString(fileDataStrings.approvedCount, 6); //核载人数
let res12 = AsciToHexString(fileDataStrings.vehicleVin, 32); //车编号
let res13 = AsciToHexString(fileDataStrings.vehicleEngineNum, 32); //发动机
return res1 + res2 + res3 + res4 + res5 + res6 + res7 + res8 + res9 + res10 + res11 + res12 + res13;
@@ -496,9 +496,7 @@
if (res[0] == "9000") {
tools.showLoadingAlert("执行指令");
//再次获取随机数
let cmdArr = [cmd.HOME_DIRECTORY, cmd.OBU_DF01, cmd.OBU_EF01, cmd
.RANDOM_NUMBER
];
let cmdArr = [cmd.HOME_DIRECTORY, cmd.OBU_DF01, cmd.OBU_EF01, cmd.RANDOM_NUMBER];
bluetoothUtil.transCmd(cmdArr, '20', function(res) {
var str = res[3].substring(res[3].length - 4, res[3].length);
if (str == "9000") {
@@ -802,4 +800,4 @@
font-size: 34rpx;
border-radius: 20rpx;
}
</style>
</style>

+ 36
- 10
after-sale/additional-equipment/additional-equipment-verification.vue 查看文件

@@ -21,13 +21,22 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>是否邮寄:</text>
<u-radio-group v-model="form.receiveMethodName">
<!-- <u-radio-group v-model="form.receiveMethodName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<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.receiveMethod == item.val" color="#13e7c1" style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
<!-- <u-form-item prop="phone">
@@ -123,11 +132,11 @@
// 单选数据列表
const radiolist1 = reactive([{
name: "不邮寄",
disabled: false,
val: "0",
},
{
name: "邮寄",
disabled: false,
val: "1",
},
]);
@@ -236,17 +245,26 @@
});
}
// 单选
const radioChange = (e : any) => {
console.log(e);
form.receiveMethod = e.detail.value
// if (val.name === '是') {
// form.equipmentState = '1';
// } else {
// form.equipmentState = '2';
// }
};
//申请
const queryOBUAddAction = () => {
if (form.receiveMethodName === '不邮寄') {
form.receiveMethod = '0'
} else {
form.receiveMethod = '1'
}
// if (form.receiveMethodName === '不邮寄') {
// form.receiveMethod = '0'
// } else {
// form.receiveMethod = '1'
// }
var data = {
orderId: params.orderId,
openId: getItem(StorageKeys.OpenId),
@@ -294,6 +312,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 40rpx;
}
.hint2 {
display: flex;

+ 84
- 49
after-sale/replace-equipment/form.vue 查看文件

@@ -1,6 +1,4 @@
<template>
<!-- <navBar title="补办ETC卡"></navBar>
-->
<view class="oderPage">
<view class="addr-box">
<view class="addr-box-left">
@@ -24,20 +22,30 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>是否寄回设备:</text>
<u-radio-group v-model="form.sendStatusName">
<!-- <u-radio-group v-model="form.sendStatusName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<radio-group @change="sendChange" class="radios">
<block v-for="(item, index) in radiolist1" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.sendStatus == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</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" >
<u-input v-model="form.courierCompany" class="input" @click="showPicker" placeholder="请选择" />
<view style="display: flex">
<u-input v-model="form.courierCompany" class="input" @click="showPicker"
placeholder="请选择" />
<u-icon name="arrow-right" style="margin-left: 10px;display: flex;"></u-icon>
</view>
</view>
@@ -51,13 +59,22 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>收货方式:</text>
<u-radio-group v-model="form.receiveMethodName">
<!-- <u-radio-group v-model="form.receiveMethodName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist2" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<radio-group @change="receiveChange" class="radios">
<block v-for="(item, index) in radiolist2" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.receiveMethod == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
<u-form-item prop="remark">
@@ -87,7 +104,7 @@
</template>
<script setup lang="ts">
import navBar from "../ETCcancellation/components/nav-bar.vue";
// import navBar from "../ETCcancellation/components/nav-bar.vue";
import {
reactive,
ref
@@ -153,45 +170,55 @@
});
const applyResList = reactive([{
//原因
value: "原因1",
label: "原因1",
},
{
value: "原因1",
label: "原因1",
},
{
value: "原因1",
label: "原因1",
},
//原因
value: "原因1",
label: "原因1",
},
{
value: "原因1",
label: "原因1",
},
{
value: "原因1",
label: "原因1",
},
]);
// 单选数据列表
const radiolist1 = reactive([{
name: "寄回",
disabled: false,
},
{
name: "不寄回",
disabled: false,
},
name: "寄回",
val: "1",
},
{
name: "不寄回",
val: "0",
},
]);
const radiolist2 = reactive([{
name: "邮寄",
disabled: false,
},
{
name: "不邮寄",
disabled: false,
},
name: "邮寄",
val: "1",
},
{
name: "不邮寄",
val: "0",
},
]);
// 寄回单选
const sendChange = (e : any) => {
console.log(e);
form.sendStatus = e.detail.value
};
// 邮寄单选
const receiveChange = (e : any) => {
console.log(e);
form.receiveMethod = e.detail.value
};
let showApplyRes = ref(false);
// 打开物流先择器
const showApplyResPicker = function() {
const showApplyResPicker = function () {
showApplyRes.value = true;
};
@@ -203,7 +230,7 @@
let show = ref(false);
// 打开物流先择器
const showPicker = function() {
const showPicker = function () {
show.value = true;
};
@@ -271,16 +298,16 @@
});
};
const submit = () => {
if (form.sendStatusName === '寄回') {
form.sendStatus = '1'
} else {
form.sendStatus = '0'
}
if (form.receiveMethodName === '邮寄') {
form.receiveMethod = '1'
} else {
form.receiveMethod = '0'
}
// if (form.sendStatusName === '寄回') {
// form.sendStatus = '1'
// } else {
// form.sendStatus = '0'
// }
// if (form.receiveMethodName === '邮寄') {
// form.receiveMethod = '1'
// } else {
// form.receiveMethod = '0'
// }
queryCckChangejzCardInfo().then(val => {
console.log(val)
navTo(
@@ -330,6 +357,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 20rpx;
}
.oderPage {
flex: 1;
width: 100%;
@@ -487,4 +522,4 @@
line-height: 80rpx;
margin-top: 60rpx;
}
</style>
</style>

+ 62
- 24
after-sale/replace-equipment/verification.vue 查看文件

@@ -5,25 +5,41 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>需要更换的设备:</text>
<u-radio-group v-model="form.applyTypeName">
<!-- <u-radio-group v-model="form.applyTypeName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<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)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>设备损坏类型:</text>
<u-radio-group v-model="form.damageModeName">
<!-- <u-radio-group v-model="form.damageModeName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist2" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<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)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
@@ -90,9 +106,9 @@
// 表单数据
const form = reactive({
damageMode: "",
damageMode: "0",
damageModeName: '人为损坏',
applyType: '',
applyType: 'EXCHANGE_CARD',
applyTypeName: '卡',
mobile: "",
code: '',
@@ -117,25 +133,25 @@
// 单选数据列表
const radiolist1 = reactive([{
name: "卡",
disabled: false,
val: "EXCHANGE_CARD",
},
{
name: "OBU",
disabled: false,
val: "EXCHANGE_OBU",
}, {
name: "卡和OBU",
disabled: false,
val: "EXCHANGE_ALL",
},
]);
// 单选数据列表
const radiolist2 = reactive([{
name: "人为损坏",
disabled: false,
val: "0",
},
{
name: "自然损坏",
disabled: false,
val: "1",
}
]);
@@ -180,10 +196,24 @@
params.cardId = option.cardId
params.orderId = option.orderId
changeCardQueryAction().then(val => {
apply.data = val
console.log(val);
apply.data = val;
apply.data.status = val.status;
})
});
// 单选
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) {
@@ -292,18 +322,18 @@
`/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'
}
// 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(
@@ -333,6 +363,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 20rpx;
}
.hint2 {
display: flex;

+ 12
- 6
after-sale/rescind-carId/rescind-carId-select.vue 查看文件

@@ -38,7 +38,7 @@
</view>
<image v-if="!state.form.userPosImgUrl" class="icon" :src="`${$imgUrl}applyCard/renxiang.png`">
</image>
<image v-else class="icon" :src="state.form.userPosImgUrl"></image>
<image v-else class="icon" :src="strReplace(state.form.userPosImgUrl)"></image>
</view>
</view>
<view class="picture-wrapper" @click="cardImageOcr('2')">
@@ -52,7 +52,7 @@
</view>
<image v-if="!state.form.userNegImgUrl" class="icon" :src="`${$imgUrl}applyCard/guohui.png`">
</image>
<image v-else class="icon" :src="state.form.userNegImgUrl"></image>
<image v-else class="icon" :src="strReplace(state.form.userNegImgUrl)"></image>
</view>
</view>

@@ -93,7 +93,7 @@
</view>
<image v-if="!state.form.vehPosImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-zhu.png`">
</image>
<image v-else class="icon" :src="state.form.vehPosImgUrl"></image>
<image v-else class="icon" :src="strReplace(state.form.vehPosImgUrl)"></image>
</view>
</view>
<view class="picture-wrapper" @click="cardDbImageOcr('2')">
@@ -107,7 +107,7 @@
</view>
<image v-if="!state.form.vehNegImgUrl" class="icon" :src="`${$imgUrl}applyCard/car-fu.png`">
</image>
<image v-else class="icon" :src="state.form.vehNegImgUrl"></image>
<image v-else class="icon" :src="strReplace(state.form.vehNegImgUrl)"></image>
</view>
</view>
<view class="picture-wrapper" @click="cardFileImageUpdate(1)">
@@ -121,7 +121,7 @@
</view>
<image v-if="!state.FormData.peopleVehicleImgUrl" class="icon" :src="`${$imgUrl}applyCard/chetou.png`">
</image>
<image v-else class="icon" :src="state.FormData.peopleVehicleImgUrl"></image>
<image v-else class="icon" :src="strReplace(state.FormData.peopleVehicleImgUrl)"></image>
</view>
</view>
<view class="picture-wrapper" @click="cardFileImageUpdate(2)">
@@ -135,7 +135,7 @@
</view>
<image v-if="!state.FormData.commitmentUrl" class="icon" :src="`${$imgUrl}applyCard/weituoshu.png`">
</image>
<image v-else class="icon" :src="state.FormData.commitmentUrl"></image>
<image v-else class="icon" :src="strReplace(state.FormData.commitmentUrl)"></image>
</view>
</view>
<view class="shibie-wrapper">
@@ -217,6 +217,7 @@
fileUpload,
etcCarOcrCard,
relieveCarId,
envs,
} from "@/utils/network/api.js";
import {
request
@@ -584,6 +585,11 @@
},
});
};
//替换图片地址
const strReplace = (str : string) => {
return str.replace('192.168.101.145:9000', envs[process.env.NODE_ENV].baseUrl)
}
</script>

<style lang="scss" scoped>

+ 67
- 30
after-sale/to-bookkeeping-card/mailing_information.vue 查看文件

@@ -24,13 +24,22 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>是否寄回设备:</text>
<u-radio-group v-model="form.sendStatusName">
<!-- <u-radio-group v-model="form.sendStatusName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<radio-group @change="sendChange" class="radios">
<block v-for="(item, index) in radiolist1" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.sendStatus == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
<u-form-item prop="logistics" v-if="form.sendStatusName == '寄回'">
@@ -51,13 +60,22 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>收货方式:</text>
<u-radio-group v-model="form.receiveMethodName">
<!-- <u-radio-group v-model="form.receiveMethodName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist2" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<radio-group @change="receiveChange" class="radios">
<block v-for="(item, index) in radiolist2" :key="item.val">
<view class="radio-box">
<radio :value="item.val" :checked="form.receiveMethod == item.val" color="#13e7c1"
style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
</view>
@@ -74,7 +92,7 @@
</template>
<script setup lang="ts">
import navBar from "../ETCcancellation/components/nav-bar.vue";
// import navBar from "../ETCcancellation/components/nav-bar.vue";
import {
reactive,
ref
@@ -138,26 +156,37 @@
// 单选数据列表
const radiolist1 = reactive([{
name: "寄回",
disabled: false,
},
{
name: "不寄回",
disabled: false,
},
name: "寄回",
val: "1",
},
{
name: "不寄回",
val: "0",
},
]);
const radiolist2 = reactive([{
name: "邮寄",
disabled: false,
},
{
name: "不邮寄",
disabled: false,
},
name: "邮寄",
val: "1",
},
{
name: "不邮寄",
val: "0",
},
]);
let show = ref(false);
// 寄回单选
const sendChange = (e : any) => {
console.log(e);
form.sendStatus = e.detail.value
};
// 邮寄单选
const receiveChange = (e : any) => {
console.log(e);
form.receiveMethod = e.detail.value
};
// 打开物流先择器
const showPicker = function() {
@@ -229,16 +258,16 @@
});
};
const submit = () => {
if (form.sendStatusName === '寄回') {
form.sendStatus = '1'
} else {
form.sendStatus = '0'
}
if (form.receiveMethodName === '邮寄') {
form.receiveMethod = '1'
} else {
form.receiveMethod = '0'
}
// if (form.sendStatusName === '寄回') {
// form.sendStatus = '1'
// } else {
// form.sendStatus = '0'
// }
// if (form.receiveMethodName === '邮寄') {
// form.receiveMethod = '1'
// } else {
// form.receiveMethod = '0'
// }
queryCckChangejzCardInfo().then(val => {
console.log(val)
navTo(
@@ -289,6 +318,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 20rpx;
}
.oderPage {
flex: 1;
width: 100%;

+ 1
- 0
after-sale/transfer-ownership/transfer-confirm.vue 查看文件

@@ -119,6 +119,7 @@
data: {
cardStatus: undefined,
obuStatus: undefined,
orderId: undefined,
}
});

+ 35
- 10
after-sale/transfer-ownership/transfer-verification.vue 查看文件

@@ -5,13 +5,21 @@
<u-form-item prop="cardState">
<view class="from_item">
<text><text style="color: red">*</text>是否保留卡签:</text>
<u-radio-group v-model="form.serviceTypeName">
<!-- <u-radio-group v-model="form.serviceTypeName">
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242"
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled"
:name="item.name">
{{ item.name }}
</u-radio>
</u-radio-group>
</u-radio-group> -->
<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.serviceType == item.val" color="#13e7c1" style="transform:scale(0.75)" />
<view>{{item.name}}</view>
</view>
</block>
</radio-group>
</view>
</u-form-item>
@@ -78,11 +86,11 @@
// 单选数据列表
const radiolist1 = reactive([{
name: "保留卡签",
disabled: false,
val: 'WITHVEHICLE',
},
{
name: "不保留卡签",
disabled: false,
val: "WITHCUSTOMER",
}
]);
@@ -106,7 +114,16 @@
onLoad((option) => {
form.mobile = option.mobile
});
// 单选
const radioChange = (e : any) => {
console.log(e);
form.serviceType = e.detail.value
// if (val.name === '是') {
// form.equipmentState = '1';
// } else {
// form.equipmentState = '2';
// }
};
const getCode = () => {
if (codeDuration.value !== 0) {
return;
@@ -132,11 +149,11 @@
//下一步
const toPage = () => {
if (form.serviceTypeName === '保留卡签') {
form.serviceType = 'WITHVEHICLE'
} else {
form.serviceType = 'WITHCUSTOMER'
}
// if (form.serviceTypeName === '保留卡签') {
// form.serviceType = 'WITHVEHICLE'
// } else {
// form.serviceType = 'WITHCUSTOMER'
// }
// const options = {
// type: 2,
// data: {
@@ -169,6 +186,14 @@
}
</style>
<style lang="scss" scoped>
.radios{
display: flex;
}
.radio-box{
display: flex;
align-items: center;
padding-left: 40rpx;
}
.hint2 {
display: flex;

+ 25
- 4
applyCard/addAddress.vue 查看文件

@@ -42,14 +42,19 @@
v-model="state.formData.postalCode"
/>
</u-form-item>
<u-form-item label-width="240rpx" label="设置默认收货地址">
<u-switch
<!-- <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>
></u-switch> -->
<!-- </u-form-item> -->
<view class="form-item forn-switch">
<label>设置默认收货地址</label>
<switch :checked="state.isDefault" color="#43a1e0" style="transform:scale(0.75)" @change="changeSwitch"></switch>
</view>
</u-form>

<view class="action">
@@ -96,7 +101,15 @@ const state = reactive({
whetherToMail:0,
},
show: false,
isDefault: 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) => {
state.formData.region = e.province.name + e.city.name + e.area.name;
@@ -184,6 +197,14 @@ onLoad((option) => {
</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;
}

+ 2
- 1
applyCard/opening-account-people.vue 查看文件

@@ -244,6 +244,7 @@
etcUserCardInfoSubmit,
fileUpload,
register,
envs,
} from "@/utils/network/api.js";
import {
@@ -555,7 +556,7 @@
};
//替换图片地址
const strReplace = (str : string) => {
return str.replace('192.168.101.145:9000', '222.85.144.89:19002')
return str.replace('192.168.101.145:9000', envs[process.env.NODE_ENV].baseUrl)
}
</script>

+ 1
- 1
datas/obuStatus.js 查看文件

@@ -56,5 +56,5 @@ export const obuStatus = [{
//获取车辆类型
export const getObuStatus = (id) => {
let types = obuStatus.filter(item => item.id == id);
return types[0].title
return types[0]?.title
}

+ 15
- 8
login/register-step1.vue 查看文件

@@ -19,13 +19,16 @@
</view>

<view class="agreement">
<u-checkbox
v-model="state.checked"
activeColor="#00B38B"
size="30"
icon-size="30"
label-size="24"
>我已阅读并同意</u-checkbox>
<checkbox-group @change="checkboxChange">
<checkbox
:checked="state.checked"
activeColor="#00B38B"
size="30"
icon-size="30"
label-size="24"
>我已阅读并同意
</checkbox>
</checkbox-group>
<!-- <view class="txt-grey">我已阅读并同意</view> -->
<view class="txt-green" @click="msg('阅读协议')"
>《平台用户服务隐私协议》</view
@@ -42,7 +45,7 @@
</template>

<script setup lang="ts">
import uCheckBox from "@/uni_modules/vk-uview-ui/components/u-checkbox/u-checkbox.vue";
// import uCheckBox from "@/uni_modules/vk-uview-ui/components/u-checkbox/u-checkbox.vue";
import { reactive } from "vue";
import { checkStr, msg, navTo } from "@/utils/utils";
import { sendCode, regist } from "@/utils/network/api.js";
@@ -52,6 +55,10 @@ const state = reactive({
phone: "", //电话
checked: false, //是否勾选阅读协议
});
const checkboxChange = (e) => {
console.log(e);
state.checked = !state.checked;
};

/* 下一步 */
const nextStep = () => {

+ 2
- 2
pages/index/index.vue 查看文件

@@ -392,12 +392,12 @@
state.userType = val;
if (val === "1") {
// navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
uni.redirectTo({
uni.navigateTo({
url:`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
})
} else {
// navTo(`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`)
uni.redirectTo({
uni.navigateTo({
url:`/applyCard/essential-information?type=${state.type}&&userType=${state.userType}`
})
}

+ 341
- 0
pages/user/user - back.vue 查看文件

@@ -0,0 +1,341 @@
<template>
<view class="wrapper">
<image
:src="`${$imgUrl}user/bg-user.png`"
class="bg-head"
mode="widthFix"
></image>
<view class="bar" :style="{ top: top, height: height, lineHeight: height }"
>九州ETC</view
>
<view class="content" :style="{ top: margin + 'px' }">
<view class="head" :style="{ marinTop: margin + 'px' }">
<view class="avatar">
<image
:src="`${$imgUrl}user/icon-avatar.png`"
:class="!state.data.opId ? 'unlogin' : ''"
></image>

<view
v-if="!state.data.opId"
class="name"
@click="$util.navTo('/login/login')"
>
<view class="nickname">登录/注册</view>
</view>
<view v-else class="name">
<!-- <view class="nickname">林晨曦</view> -->
<view class="user-id">
<view class="phone">{{ mobile }}</view>
<view
@click="
$util.navTo('/personal-center/setting/change-phone', true)
"
class="btn-change" style="display: none;"
>
更换</view
>
</view>
</view>
</view>
<view
class="setting"
@click="$util.navTo('/personal-center/setting/setting', true)"
>
<image :src="`${$imgUrl}user/icon-setting.png`"></image>
<text>设置</text>
</view>
</view>
<view class="menu">
<view class="item" style="display: none">
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-cny.png`"
class="icon icon-1"
></image>
<text>账户余额</text>
</view>
<view class="amount">
<text class="cny">¥</text>
<text class="value">0.00</text>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
<view
class="item"
@click="navTo('/personal-center/change-password', true)"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-lock.png`"
class="icon icon-1"
></image>
<text>修改密码</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="navTo('/personal-center/progress-query/my-etc', true)"
style="display: none"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-ETC.png`"
class="icon icon-2"
></image>
<text>我的ETC</text>
</view>

<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="
navTo(
'/personal-center/setting/personal-information/corrections',
true
)
"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-user.png`"
class="icon icon-2"
></image>
<text>用户信息管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="
navTo('/personal-center/setting/car-information/corrections', true)
"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-car.png`"
class="icon icon-2"
></image>
<text>车辆信息管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="navTo('/personal-center/setting/addressManager', true)"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-address.png`"
class="icon icon-2"
></image>
<text>收货地址管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>

<view
class="item"
@click="navTo('/personal-center/setting/bank-card/bank-card', true)"
style="display: none"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-card.png`"
class="icon icon-2"
></image>
<text>绑定银行卡</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
</view>
</view>
</template>

<script lang="ts" setup>
import { reactive } from "vue";
import { msg, navTo } from "@/utils/utils";
import { onMounted, ref } from "vue";
import { getItem, StorageKeys } from "@/utils/storage";

import { onLoad, onShow } from "@dcloudio/uni-app";
const height = ref(null);
const top = ref(null);
const margin = ref(null);
const mobile = ref(null);

const state = reactive({
data: {
opId: "",
},
});
onMounted(() => {
const res = uni.getMenuButtonBoundingClientRect();
height.value = res.height + "px";
top.value = res.top + "px";
margin.value = res.height + res.top;
});

onLoad((option: any) => {
state.data.opId = getItem(StorageKeys.OpenId);
mobile.value = getItem("mobile");
});
onShow((option: any) => {
state.data.opId = getItem(StorageKeys.OpenId);
});
</script>

<style scoped>
.unlogin {
filter: grayscale(100%);
opacity: 0.7;
}

page {
background: #ffffff;
}

.wrapper {
position: relative;
background: #fff;
}

.bar {
width: 100%;
position: fixed;
text-align: center;
font-size: 32rpx;
font-weight: bold;
}

.bg-head {
width: 100%;
position: absolute;
z-index: -99;
top: 0;
left: 0;
}

.content {
position: absolute;
display: flex;
flex-direction: column;
width: 100%;
}

.head {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 40rpx 0 46rpx;
}

.head .avatar {
display: flex;
align-items: center;
}

.head .avatar image {
width: 120rpx;
height: 120rpx;
border-radius: 80rpx;
border: 12rpx solid rgba(255, 255, 255, 0.5);
margin: 0 20rpx 0 30rpx;
}

.head .setting {
display: flex;
align-items: center;
background: rgba(255, 255, 255, 0.7);
height: 60rpx;
border-radius: 30rpx 0 0 30rpx;
padding: 0 30rpx 0 20rpx;
color: #00b38b;
}

.head .setting image {
width: 40rpx;
height: 40rpx;
margin-right: 6rpx;
}

.head .nickname {
font-size: 42rpx;
color: #ffffff;
}

.head .user-id {
font-size: 26rpx;
color: #ffffff;
padding-top: 30rpx;
display: flex;
align-items: center;
}

.head .btn-change {
font-size: 22rpx;
height: 40rpx;
padding: 0 20rpx;
border: 1px solid #fff;
box-sizing: border-box;
border-radius: 20rpx;
margin-left: 16rpx;
}

.menu {
background: #ffffff;
border-radius: 30rpx 30rpx 0 0;
padding: 0 30rpx;
}

.menu .arrow {
width: 18rpx;
height: 32rpx;
}

.menu .icon {
width: 48rpx;
height: 48rpx;
margin-right: 20rpx;
}

.menu .item {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #dcdcdc;
padding: 20rpx 0;
}

.menu .item:first-child {
margin-top: 10rpx;
}

.menu .item-tit {
display: flex;
align-items: center;
font-size: 28rpx;
color: #333;
}

.amount {
display: flex;
justify-content: space-between;
align-items: center;
}

.amount .cny {
font-size: 28rpx;
}

.amount .value {
font-size: 32rpx;
color: #333;
padding-right: 24rpx;
}
</style>

+ 401
- 335
pages/user/user.vue 查看文件

@@ -1,341 +1,407 @@
<template>
<view class="wrapper">
<image
:src="`${$imgUrl}user/bg-user.png`"
class="bg-head"
mode="widthFix"
></image>
<view class="bar" :style="{ top: top, height: height, lineHeight: height }"
>九州ETC</view
>
<view class="content" :style="{ top: margin + 'px' }">
<view class="head" :style="{ marinTop: margin + 'px' }">
<view class="avatar">
<image
:src="`${$imgUrl}user/icon-avatar.png`"
:class="!state.data.opId ? 'unlogin' : ''"
></image>

<view
v-if="!state.data.opId"
class="name"
@click="$util.navTo('/login/login')"
>
<view class="nickname">登录/注册</view>
</view>
<view v-else class="name">
<!-- <view class="nickname">林晨曦</view> -->
<view class="user-id">
<view class="phone">{{ mobile }}</view>
<view
@click="
$util.navTo('/personal-center/setting/change-phone', true)
"
class="btn-change" style="display: none;"
>
更换</view
>
</view>
</view>
</view>
<view
class="setting"
@click="$util.navTo('/personal-center/setting/setting', true)"
>
<image :src="`${$imgUrl}user/icon-setting.png`"></image>
<text>设置</text>
</view>
</view>
<view class="menu">
<view class="item" style="display: none">
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-cny.png`"
class="icon icon-1"
></image>
<text>账户余额</text>
</view>
<view class="amount">
<text class="cny">¥</text>
<text class="value">0.00</text>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
<view
class="item"
@click="navTo('/personal-center/change-password', true)"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-lock.png`"
class="icon icon-1"
></image>
<text>修改密码</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="navTo('/personal-center/progress-query/my-etc', true)"
style="display: none"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-ETC.png`"
class="icon icon-2"
></image>
<text>我的ETC</text>
</view>

<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="
navTo(
'/personal-center/setting/personal-information/corrections',
true
)
"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-user.png`"
class="icon icon-2"
></image>
<text>用户信息管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="
navTo('/personal-center/setting/car-information/corrections', true)
"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-car.png`"
class="icon icon-2"
></image>
<text>车辆信息管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
<view
class="item"
@click="navTo('/personal-center/setting/addressManager', true)"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-address.png`"
class="icon icon-2"
></image>
<text>收货地址管理</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>

<view
class="item"
@click="navTo('/personal-center/setting/bank-card/bank-card', true)"
style="display: none"
>
<view class="item-tit">
<image
:src="`${$imgUrl}user/icon-card.png`"
class="icon icon-2"
></image>
<text>绑定银行卡</text>
</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
</view>
</view>
<navBar title="九州ETC" :scrollTop="scrollTop" :isBack="isBack"></navBar>
<view class="wrapper">
<image :src="`${$imgUrl}user/bg-user-2.png`" class="bg-head" mode="widthFix"></image>
<!-- <view class="bar" :style="{ top: top, height: height, lineHeight: height }">我的-九州ETC</view> -->
<view class="content" :style="{ top: margin + 'px' }">
<view class="head" :style="{ marinTop: margin + 'px' }">
<view class="avatar">
<image :src="`${$imgUrl}user/icon-avatar.png`" :class="!state.data.opId ? 'unlogin' : ''"></image>

<view v-if="!state.data.opId" class="name" @click="$util.navTo('/login/login')">
<view class="nickname">登录/注册</view>
</view>
<view v-else class="name">
<view class="nickname">林晨曦</view>
<view class="user-id">
<view class="phone">15885137270</view>
<view @click="$util.navTo('/personal-center/setting/change-phone', true)"
class="btn-change">已关联</view>
</view>
</view>
</view>
<view class="setting" @click="$util.navTo('/personal-center/setting/setting', true)">
<!-- <image :src="`${$imgUrl}user/icon-setting.png`"></image> -->
<text>签到</text>
</view>
</view>
<view class="panel-box">
<view class="panel">
<view class="panel-item">
<view class="panel-text"><text class="num">2</text><text class="txt">辆</text></view>
<text class="type">车辆</text>
</view>
<view class="panel-item">
<text class="num">5</text>
<text class="type">待办</text>
</view>
<view class="panel-item">
<view class="panel-text"><text class="num">2</text><text class="txt">张</text></view>
<text class="type">卡券</text>
</view>
<view class="panel-item">
<view class="panel-text"><text class="num">2555</text><text class="txt">分</text></view>
<text class="type">积分</text>
</view>
</view>
<view class="notice">
<image :src="`${$imgUrl}user/icon-tips.png`" class="icon-notice"></image>
<view class="notice-content">您有一笔成功交易,点击查看详情</view>
</view>
</view>
<view class="rights box">
<view class="right-head">
<view class="tit">我的权益</view>
<view class="more">
<text class="more-text">查看全部</text>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
</view>
<view class="rights box">
<view class="right-head">
<view class="tit">我的订单</view>
<view class="more">
<text class="more-text">查看全部</text>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
</view>
<view class="rights box">
<view class="right-head">
<view class="tit">本月通行</view>
</view>
</view>
<view class="rights box">
<view class="right-head">
<view class="tit">我的车辆</view>
<view class="more">
<text class="more-text">查看全部</text>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>
</view>
</view>
<view class="menu">
<view class="item" @click="navTo('/personal-center/setting/bank-card/bank-card', true)">
<view class="item-tit">
<image :src="`${$imgUrl}user/icon-setting.png`" class="icon icon-2"></image>
<text>设置与资料管理</text>
</view>
<view class="right-arrow">
<view class="sub-tit">隐私、密码管理</view>
<image :src="`${$imgUrl}user/icon-arrow.png`" class="arrow"></image>
</view>

</view>
</view>
</view>
</view>
</template>

<script lang="ts" setup>
import { reactive } from "vue";
import { msg, navTo } from "@/utils/utils";
import { onMounted, ref } from "vue";
import { getItem, StorageKeys } from "@/utils/storage";

import { onLoad, onShow } from "@dcloudio/uni-app";
const height = ref(null);
const top = ref(null);
const margin = ref(null);
const mobile = ref(null);

const state = reactive({
data: {
opId: "",
},
});
onMounted(() => {
const res = uni.getMenuButtonBoundingClientRect();
height.value = res.height + "px";
top.value = res.top + "px";
margin.value = res.height + res.top;
});

onLoad((option: any) => {
state.data.opId = getItem(StorageKeys.OpenId);
mobile.value = getItem("mobile");
});
onShow((option: any) => {
state.data.opId = getItem(StorageKeys.OpenId);
});
</script>
import { reactive } from "vue";
import { msg, navTo } from "@/utils/utils";
import { onMounted, ref } from "vue";
import { getItem, StorageKeys } from "@/utils/storage";
import navBar from "../../components/nav-bar/nav-bar2.vue";
import { onLoad, onShow, onPageScroll } from "@dcloudio/uni-app";

<style scoped>
.unlogin {
filter: grayscale(100%);
opacity: 0.7;
}

page {
background: #ffffff;
}

.wrapper {
position: relative;
background: #fff;
}

.bar {
width: 100%;
position: fixed;
text-align: center;
font-size: 32rpx;
font-weight: bold;
}

.bg-head {
width: 100%;
position: absolute;
z-index: -99;
top: 0;
left: 0;
}

.content {
position: absolute;
display: flex;
flex-direction: column;
width: 100%;
}

.head {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 40rpx 0 46rpx;
}

.head .avatar {
display: flex;
align-items: center;
}

.head .avatar image {
width: 120rpx;
height: 120rpx;
border-radius: 80rpx;
border: 12rpx solid rgba(255, 255, 255, 0.5);
margin: 0 20rpx 0 30rpx;
}

.head .setting {
display: flex;
align-items: center;
background: rgba(255, 255, 255, 0.7);
height: 60rpx;
border-radius: 30rpx 0 0 30rpx;
padding: 0 30rpx 0 20rpx;
color: #00b38b;
}

.head .setting image {
width: 40rpx;
height: 40rpx;
margin-right: 6rpx;
}

.head .nickname {
font-size: 42rpx;
color: #ffffff;
}

.head .user-id {
font-size: 26rpx;
color: #ffffff;
padding-top: 30rpx;
display: flex;
align-items: center;
}

.head .btn-change {
font-size: 22rpx;
height: 40rpx;
padding: 0 20rpx;
border: 1px solid #fff;
box-sizing: border-box;
border-radius: 20rpx;
margin-left: 16rpx;
}

.menu {
background: #ffffff;
border-radius: 30rpx 30rpx 0 0;
padding: 0 30rpx;
}

.menu .arrow {
width: 18rpx;
height: 32rpx;
}

.menu .icon {
width: 48rpx;
height: 48rpx;
margin-right: 20rpx;
}

.menu .item {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #dcdcdc;
padding: 20rpx 0;
}

.menu .item:first-child {
margin-top: 10rpx;
}

.menu .item-tit {
display: flex;
align-items: center;
font-size: 28rpx;
color: #333;
}

.amount {
display: flex;
justify-content: space-between;
align-items: center;
}

.amount .cny {
font-size: 28rpx;
}

.amount .value {
font-size: 32rpx;
color: #333;
padding-right: 24rpx;
}
const height = ref(null);
const top = ref(null);
const margin = ref(null);
const mobile = ref(null);
const scrollTop = ref(0);
const isBack = ref(false);
const state = reactive({
data: {
opId: "",
},
});
onMounted(() => {
const res = uni.getMenuButtonBoundingClientRect();
height.value = res.height + "px";
top.value = res.top + "px";
margin.value = res.height + res.top;
});

onLoad((option : any) => {
state.data.opId = getItem(StorageKeys.OpenId);
mobile.value = getItem("mobile");
});
//监听页面滚动
onPageScroll((e) => {
scrollTop.value = e.scrollTop;
});
onShow((option : any) => {
state.data.opId = getItem(StorageKeys.OpenId);
});
</script>
<style>
page {
background: #eef7f7;
}
</style>
<style scoped>
.unlogin {
filter: grayscale(100%);
opacity: 0.7;
}



.wrapper {
position: relative;
background: #fff;
}

.bar {
width: 100%;
position: fixed;
text-align: center;
font-size: 32rpx;
font-weight: bold;
}

.bg-head {
width: 100%;
position: absolute;
z-index: -99;
top: 0;
left: 0;
}

.content {
position: absolute;
display: flex;
flex-direction: column;
width: 100%;
}

.head {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 40rpx 0 46rpx;
}

.head .avatar {
display: flex;
align-items: center;
}

.head .avatar image {
width: 120rpx;
height: 120rpx;
border-radius: 80rpx;
border: 12rpx solid rgba(255, 255, 255, 0.5);
margin: 0 20rpx 0 30rpx;
}

.head .setting {
display: flex;
align-items: center;
background: rgba(0, 179, 139, .1);
border:1px solid #fff;
height: 60rpx;
border-radius: 30rpx;
padding: 0 34rpx;
color: #fff;
font-size: 28rpx;
margin-right: 30rpx;
}

.head .setting image {
width: 40rpx;
height: 40rpx;
margin-right: 6rpx;
}

.head .nickname {
font-size: 36rpx;
color: #000000;
}

.head .user-id {
font-size: 26rpx;
color: #000000;
padding-top: 30rpx;
display: flex;
align-items: center;
}

.head .btn-change {
font-size: 22rpx;
height: 40rpx;
padding: 0 20rpx;
border: 1px solid #fff;
color:#fff;
box-sizing: border-box;
border-radius: 20rpx;
margin-left: 16rpx;
background: rgba(0, 179, 139, .1);
}

.panel-box {
display: flex;
flex-direction: column;
background: #fff;
margin: 0 30rpx 30rpx;
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
border-radius: 20rpx;
padding: 30rpx 0;
}

.panel {
display: flex;
justify-content: space-evenly;
padding: 30rpx 0;
}

.panel-item {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 32rpx;
}

.panel-item .num {
font-weight: bold;
color: #454545;
}

.panel-item .txt {
font-size: 26rpx;
}

.panel-item .type {
color: #999;
font-size: 26rpx;
padding: 14rpx 0;
}

.panel-box .icon-notice {
width: 48rpx;
height: 48rpx;
}

.panel-box .notice {
display: flex;
font-size: 32rpx;
margin: 0 30rpx;
align-items: center;
background: #f3f3f3;
border-radius: 10rpx;
padding: 0 14rpx;
}

.panel-box .notice .notice-content {
height: 68rpx;
line-height: 68rpx;
padding: 0 12rpx;
font-size: 28rpx;
}

.box .arrow {
width: 18rpx;
height: 32rpx;
}

.box {
background: #ffffff;
margin: 0 30rpx 30rpx;
padding: 30rpx;
border-radius: 20rpx;
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223,223,223,0.8);
}

.box .more {
display: flex;
font-size: 30rpx;
color: #808080;
align-items: center;
}

.box .more .more-text {
padding-right: 20rpx;
}

.box .right-head {
display: flex;
justify-content: space-between;
}

.box .right-head .tit {
font-size: 32rpx;
/* font-weight: bold; */
}

.menu {
background: #ffffff;
/* border-radius: 30rpx 30rpx 0 0; */
padding: 0 30rpx;
margin: 0 30rpx 30rpx;
border-radius: 20rpx;
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223,223,223,0.8);
}

.menu .arrow {
width: 18rpx;
height: 32rpx;
}

.menu .icon {
width: 48rpx;
height: 48rpx;
margin-right: 10rpx;
}

.menu .item {
display: flex;
justify-content: space-between;
align-items: center;
/* border-bottom: 1px solid #dcdcdc; */
padding: 20rpx 0;
}

.menu .item:first-child {
margin-top: 10rpx;
}

.menu .item-tit {
display: flex;
align-items: center;
font-size: 30rpx;
color: #333;
}

.menu .right-arrow {
font-size: 26rpx;
color: #ccc;
display: flex;
justify-content: center;
align-items: center;
}

.menu .sub-tit {
padding-right: 20rpx;
}

.amount {
display: flex;
justify-content: space-between;
align-items: center;
}

.amount .cny {
font-size: 28rpx;
}

.amount .value {
font-size: 32rpx;
color: #333;
padding-right: 24rpx;
}
</style>

+ 2
- 2
utils/network/api.js 查看文件

@@ -6,8 +6,8 @@ export const URL = "192.168.100.63";
export const envs = {
//开发环境配置
development: {
baseUrl: "192.168.100.63:8087",
// baseUrl: "222.85.144.89:19002",
// baseUrl: "192.168.100.63:8087",
baseUrl: "222.85.144.89:19002",
},
//生产环境配置
production: {

Loading…
取消
儲存