Переглянути джерело

修改忘记密码、验证码、登录接口,新增办理流程和常见问题页面(待接口和UI)

yxb
不甘寂寞 2 роки тому
джерело
коміт
fe9f05dc82

+ 1
- 4
login/forget-pwd-step2.vue Переглянути файл

@@ -76,10 +76,7 @@ const nextStep = () => {
msg("请先输入验证码!");
return;
}

//TODO 目前后端规定验证码只能是123456,所以目前写死
// navTo(`/login/forget-pwd-step3?phone=${phone.value}&code=${code.value}`);
navTo(`/login/forget-pwd-step3?phone=${phone.value}&code=123456`);
navTo(`/login/forget-pwd-step3?phone=${phone.value}&code=${code.value}`);
};
</script>


+ 5
- 5
login/forget-pwd-step3.vue Переглянути файл

@@ -54,7 +54,7 @@ import { msg, confirm, checkStr } from "@/utils/utils";
import { reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import { request } from "@/utils/network/request";
import { resetPwd, regist } from "@/utils/network/api";
import { resetPwd } from "@/utils/network/api";

const state = reactive({
isPwdType: true,
@@ -71,7 +71,7 @@ onLoad((options) => {
state.code = options.code;
});

/* 注册 */
/* 忘记密码 */
const doResetPwd = () => {
if (!state.password) {
msg("请输入密码");
@@ -91,10 +91,10 @@ const doResetPwd = () => {
const options = {
type: 2,
data: {
password: state.password,
affirmPassword:state.affirmPassword,
newPassword: state.password,
affirmNewPassword:state.affirmPassword,
mobile: state.phone,
verificationCode: state.code,
code: state.code,
},
method: "POST",
showLoading: true,

+ 4
- 3
login/login.vue Переглянути файл

@@ -193,7 +193,8 @@ const doLogin = () => {
};

/* 执行登录 */
const reqLogin = (code, data) => {
const reqLogin = (code:string, data:object) => {
console.log(code,data);
const options = {
type: 2,
data: data,
@@ -201,8 +202,8 @@ const reqLogin = (code, data) => {
showLoading: true,
};
request(code, options).then((res) => {
fetchToken(stringToJson(res.bizContent).code).then((data) => {
setItem("phone", data.mobile);
const result = stringToJson(res.bizContent);
fetchToken(stringToJson(result).code).then((data:any) => {
msg("登录成功!");
uni.$emit("refreshOrder");
uni.navigateBack();

+ 8
- 23
package-lock.json Переглянути файл

@@ -1,35 +1,20 @@
{
"name": "navbar自定义导航条",
"version": "v1.1.0",
"lockfileVersion": 3,
"lockfileVersion": 1,
"requires": true,
"packages": {
"": {
"name": "navbar自定义导航条",
"version": "v1.1.0",
"dependencies": {
"base64-js": "^1.5.1",
"image-tools": "^1.4.0",
"js-base64": "^2.6.4",
"text-decoding": "^1.0.0"
}
},
"node_modules/base64-js": {
"dependencies": {
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"node_modules/image-tools": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz",
"integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ=="
},
"node_modules/js-base64": {
"version": "2.6.4",
"resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
"base64js": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/base64js/-/base64js-1.0.1.tgz",
"integrity": "sha512-jxGN7DS7e+HHO5u+UT9NzK2BMKJByQPmmdXyvad7TN0mPKGC4kRMTnnV7g7HqhLlW51AFmtbRM4IDGxysBYuVg=="
},
"node_modules/text-decoding": {
"text-decoding": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/text-decoding/-/text-decoding-1.0.0.tgz",
"integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA=="

+ 13
- 1
pages.json Переглянути файл

@@ -81,7 +81,7 @@
}
},
{
"path": "refund-order-balance/reslut",
"path": "refund-order-balance/result",
"style": {
"navigationBarTitleText": "余额补领-办理成功",
"enablePullDownRefresh": false
@@ -1292,6 +1292,18 @@
"style": {
"navigationBarTitleText": "存储卡圈存"
}
},
{
"path": "process/process",
"style": {
"navigationBarTitleText": "办理流程"
}
},
{
"path": "help/help",
"style": {
"navigationBarTitleText": "常见问题"
}
}
]
},

+ 51
- 83
pages/index/index.vue Переглянути файл

@@ -97,31 +97,27 @@
</view>
</view>
</view>
</view>
<!-- 办理流程 -->
<view class="flow-path">
<scroll-view scroll-x="true" class="scroll-view">
<view class="top-menu">
<view :class="item == state.tabActive ? 'tab active' : 'tab'" v-for="item in state.flowPathTabList"
:key="item" @click="flowPathTabHandle(item)">
<view class="border"></view>{{ item }}
<!--支持帮助 -->
<view class="express-lane">
<view class="title">支持帮助</view>
<view class="lane">
<view class="lane-item lane-1" :style="{ '--background': bgOrange }" @click="goProcess">
<image :src="fileURL + 'image/index/icon-car.png'"></image>
<view class="text">
<text class="head">办理流程</text>
</view>
</view>
</scroll-view>
<view v-if="state.tabActive === '办理流程'">
<view class="flow-list">
<flow-path-list :options="state.flowList"></flow-path-list>
<view class="lane-item lane-2" :style="{ '--background': bgBlue }" @click="goHelp">
<image :src="fileURL + 'image/index/icon-truck.png'"></image>
<view class="text">
<text class="head">常见问题</text>
</view>
</view>
</view>
<view v-else-if="state.tabActive === '办理条件'">
<view class="flow-list as-gravity-center"> 办理条件 </view>
</view>
<view v-else-if="state.tabActive === '常见问题'">
<view class="flow-list as-gravity-center"> 常见问题 </view>
</view>
</view>
</view>
</view>
<!-- 高速快讯 -->
@@ -171,7 +167,27 @@
</view>
</view>
<!-- 权益专区 -->
<view class="service">
<view class="title">权益专区</view>
<view class="service-box">
<view class="service-item border" @click="$util.msg('该功能正在开发中,敬请期待!')">
<image :src="fileURL + 'image/index/truck-point.png'"></image>
<view class="text">
<view class="tit">货车积分返利权益</view>
<view class="sub">海量商品任你选择</view>
</view>
</view>
<view class="service-item" @click="$util.msg('该功能正在开发中,敬请期待!')">
<image :src="fileURL + 'image/index/parking-bill.png'"></image>
<view class="text">
<view class="tit">其他优惠权益</view>
<view class="sub">其他优惠权益说明</view>
</view>
</view>
</view>
</view>
<!-- ETC选择弹窗 -->
<view class="mask" v-if="isShowMask">
@@ -197,13 +213,14 @@
<script setup lang="ts">
import {
onMounted,
ref
ref,
reactive
} from "vue";
import {
onPageScroll,
onLoad
} from "@dcloudio/uni-app";
import flowPathList from "./components/flow-path-list.vue";
import {
request
} from "../../utils/network/request.js";
@@ -221,9 +238,6 @@
import {
queryKey
} from "@/utils/network/api.js";
import {
reactive
} from "vue";
import {
fileURL
} from "@/datas/fileURL.js";
@@ -345,10 +359,7 @@
// console.log(err);
// });
});
//办理流程tab选择
const flowPathTabHandle = (tab) => {
state.tabActive = tab;
};
//安装激活
const goActivation = () => {
@@ -452,6 +463,17 @@
console.log(err);
});
}
const goProcess = ()=>{
uni.navigateTo({
url: "/service/process/process",
});
}
const goHelp = ()=>{
uni.navigateTo({
url: "/service/help/help",
});
}
</script>
<style>
@@ -823,58 +845,4 @@
margin: 50rpx 30rpx 0rpx;
}
.flow-path {
padding: 20rpx 0rpx 20rpx;
.scroll-view {
white-space: nowrap;
// position: sticky;
top: 0;
}
.top-menu {
display: flex;
}
.top-menu .tab {
font-size: 28rpx;
padding: 38rpx 30rpx;
color: #666666;
position: relative;
}
.top-menu .active .border {
position: absolute;
width: 70%;
height: 16rpx;
background: #00b38b;
opacity: 0.3;
bottom: 40rpx;
z-index: -99;
left: 15%;
border-radius: 6rpx;
}
.top-menu .active {
font-weight: bold;
font-size: 32rpx;
color: #0d0f26;
}
.top-menu .active::before {
width: 100%;
height: 16rpx;
background: #00b38b;
opacity: 0.3;
}
.flow-list {
margin: 0rpx 30rpx;
min-height: 700rpx;
background: #ffffff;
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
border-radius: 20rpx;
padding: 55rpx 30rpx 30rpx;
}
}
</style>

+ 9
- 0
service/help/help.vue Переглянути файл

@@ -0,0 +1,9 @@
<template>
<view> 常见问题</view>
</template>

<script>
</script>

<style>
</style>

pages/index/components/flow-path-list.vue → service/process/components/flow-path-list.vue Переглянути файл

@@ -39,20 +39,20 @@

<style lang="scss" scoped>
.as-layout-horizontal{
border-left: 1px solid #00B38B;
border-left: 2px solid #00B38B;
padding-bottom: 45rpx;
margin-top: 10rpx;
position: relative;
&::after{
content: '';
left: -6rpx;
left: -8rpx;
top: -10rpx;
position: absolute;
width: 11rpx;
height: 11rpx;
width: 12rpx;
height: 12rpx;
border-radius: 50%;
border: 1px solid #00B38B;
border: 2rpx solid #00B38B;
box-sizing: border-box;
}
&:last-child{
@@ -113,9 +113,9 @@
&::after{
content: '';
position: absolute;
width: 11rpx;
height: 11rpx;
left:-6rpx;
width: 12rpx;
height: 12rpx;
left:-8rpx;
border-radius: 50%;
background-color: #00B38B;
}

+ 107
- 0
service/process/process.vue Переглянути файл

@@ -0,0 +1,107 @@
<template>
<view class="wrapper">
<view class="flow-path">
<view >
<view class="flow-list">
<flow-path-list :options="state.flowList"></flow-path-list>
</view>
</view>
</view>
</view>
</template>

<script setup lang="ts">
import {reactive} from "vue";
import flowPathList from "./components/flow-path-list.vue";
const state = reactive({
flowPathTabList: ["办理流程", "办理条件", "常见问题"],
flowList: [
//办理流程数据
{
title: "第一步:信息校验:",
desc: "提交车牌号、车牌颜色、收货地址相关信息",
},
{
title: "第二步:证件上传:",
desc: "上传身份证、行驶证等相关信息",
},
{
title: "第三步:签约代扣:",
desc: "选择签约账户并关联",
},
{
title: "第四步:产品选择:",
desc: "选择购买的发行产品",
},
{
title: "第五步:订单完成:",
desc: "支付完成订单",
},
],
});

</script>

<style lang="scss">
page{
background: #eef7f7;
}
.flow-path {
padding: 20rpx 0rpx 20rpx;
.scroll-view {
white-space: nowrap;
// position: sticky;
top: 0;
}
.top-menu {
display: flex;
}
.top-menu .tab {
font-size: 28rpx;
padding: 38rpx 30rpx;
color: #666666;
position: relative;
}
.top-menu .active .border {
position: absolute;
width: 70%;
height: 16rpx;
background: #00b38b;
opacity: 0.3;
bottom: 40rpx;
z-index: -99;
left: 15%;
border-radius: 6rpx;
}
.top-menu .active {
font-weight: bold;
font-size: 32rpx;
color: #0d0f26;
}
.top-menu .active::before {
width: 100%;
height: 16rpx;
background: #00b38b;
opacity: 0.3;
}
.flow-list {
margin: 0rpx 30rpx;
min-height: 700rpx;
background: #ffffff;
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8);
border-radius: 20rpx;
padding: 55rpx 30rpx 30rpx;
}
}
</style>

+ 3
- 1
stores/user.js Переглянути файл

@@ -48,6 +48,7 @@ export const useUserStore = defineStore("userStore", {

/*根据登录code获取token信息*/
fetchToken(code) {
console.log(code);
const options = {
type: 2,
data: {
@@ -59,9 +60,10 @@ export const useUserStore = defineStore("userStore", {
showLoading: false,
};

console.log("option********",options);
return new Promise(async (resolve, reject) => {
const res = await request(getToken, options);
const data = stringToJson(res.bizContent);
const data = stringToJson(stringToJson(res.bizContent));
this.saveToken(data.accessToken);
this.saveOpenId(data.openId);
resolve(data);

+ 3
- 3
utils/network/api.js Переглянути файл

@@ -27,11 +27,11 @@ export const queryKey = 'cefb3b5da25a49eeb18865c00bc91c96'//全量KEY
//菜单配置
export const queryMenuConfig = '1032'
/*统一 会员平台*/
export const sendCode = "2"; //统一会员平台发送验证码接口
export const regist = "3"; // 统一会员平台个人账号注册
export const sendCode = "1001"; //统一会员平台发送验证码接口
export const regist = "1003"; // 统一会员平台个人账号注册
export const login = "1004"; //统一会员平台个人账号手机号密码登录
export const loginCode = "1005"; //统一会员平台个人账号手机号验证码登录
export const resetPwd = "52"; //会员平台个人账号修改密码手机号验证码接口
export const resetPwd = "1009"; //会员平台个人账号修改密码手机号验证码接口
export const getToken = "1006"; //统一会员平台登录确认接口(用于换取openId和token)
export const checkCode = "966"; //校验验证码
export const register = "52de4029940f4e03b18c3a0b8d64c2db";//USER-无感注册登录(个人/企业)

Завантаження…
Відмінити
Зберегти