Compare commits

...

2 Commits

Author SHA1 Message Date
89f64b5418 提交信息
Some checks failed
deploy / deploy (push) Has been cancelled
2025-08-01 15:03:50 +08:00
b8ff83019d 提交信息 2025-08-01 14:20:44 +08:00
11 changed files with 230 additions and 76 deletions

8
env/.env vendored
View File

@ -5,8 +5,8 @@ VITE_APP_TITLE=uniapp-vue3模板项目
VITE_APP_ENV=development
# 接口地址
VITE_API_BASE_URL=http://www.caipu.com:8545
# VITE_API_BASE_URL=http://ceshi-recipeapi.lihaink.cn/
# VITE_API_BASE_URL=http://www.caipu.com:8545
VITE_API_BASE_URL=https://ceshi-recipeapi.lihaink.cn/
# 端口号
VITE_APP_PORT=9527
@ -15,8 +15,8 @@ VITE_APP_PORT=9527
VITE_APP_PROXY=true
# API代理前缀
VITE_API_PREFIX= http://www.caipu.com:8545
# VITE_API_PREFIX= http://ceshi-recipeapi.lihaink.cn/
# VITE_API_PREFIX= http://www.caipu.com:8545
VITE_API_PREFIX= https://ceshi-recipeapi.lihaink.cn/
# 删除console
VITE_DROP_CONSOLE=false

2
env/.env.test vendored
View File

@ -2,7 +2,7 @@
VITE_APP_ENV=staging
# 接口地址
VITE_API_BASE_URL=http://localhost:8080/staging
VITE_API_BASE_URL=http://ceshi-recipeapi.lihaink.cn
# 删除console
VITE_DROP_CONSOLE=true

View File

@ -10,7 +10,7 @@ export interface ProfileRes {
user?: any;
}
export interface LoginReq {
phone: string;
account: string;
code: string;
}
export interface LoginReqPassword {

View File

@ -1,5 +1,5 @@
{
"name" : "",
"name" : "菜谱",
"appid" : "",
"description" : "",
"versionName" : "1.0.0",
@ -63,7 +63,7 @@
"desc" : "获取您的位置"
}
},
"requiredPrivateInfos" : ["login" ,"getLocation", "chooseAddress" , "chooseLocation" ]
"requiredPrivateInfos" : [ "getLocation", "chooseAddress" , "chooseLocation" ]
},
"mp-alipay" : {
"usingComponents" : true

View File

@ -44,6 +44,21 @@
"navigationStyle": "custom"
}
},
{
"path": "login/user_privacy",
"style": {
"navigationBarTitleText": "用户协议",
"navigationStyle": "custom"
}
},
{
"path": "login/user_about",
"style": {
"navigationBarTitleText": "隐私政策",
"navigationStyle": "custom"
}
},
{
"path": "webview/index",
"style": {

View File

@ -9,6 +9,11 @@
white-space: nowrap;
/* 确保元素有宽度 */
}
html,
body {
height: 0rpx;
}
</style>
<template>
@ -24,7 +29,7 @@
maxlength="-1" height="60rpx" @change="searchSP()">
</up-search>
<z-paging :fixed="false" height="calc(100vh - 320rpx)" width="calc(100vw - 50rpx)"
<z-paging :fixed="false" height="calc(100vh - 380rpx)" width="calc(100vw - 50rpx)"
:paging-style="{ 'background-color': '#FFFFFFFF', 'padding': '20rpx' }" ref="pagingRefSP"
v-model="matchedItems_sp" @query="changeSP" class="fv-page flex-col ">
<view v-for="(item, index) in matchedItems_sp" :key="index">

View File

@ -54,9 +54,10 @@
<view class=" box-border flex" style="margin-top: 50rpx;">
<view class="hint">
登录代表同意
<text class="link">
用户协议隐私政策
<text class="link" >
<text @click="userAbount(0)">用户协议</text ><text @click="userAbount(1)">隐私政策</text>
</text>
并授权使用您的账号信息如昵称头像收获地址以便您统一管理
</view>
</view>
@ -79,20 +80,20 @@ isWechat.value = true;
const loginType = ref(0);
const account = ref<string>('18181941463');
const code = ref<string>('1234');
const password = ref<string>('123456');
const account = ref<string>('');
const code = ref<string>('');
const password = ref<string>('');
const tips = ref<string>();
const tips = ref<string>('');
const uCodeRef = ref<InstanceType<typeof uCode> | null>(null);
let redirect = HOME_PATH;
const inputStyle = computed<CSSProperties>(() => {
const style = {} as CSSProperties;
if (account.value && code.value) {
// if (account.value && code.value) {
style.color = '#fff';
style.backgroundColor = uni.$u.color.success;
}
// }
return style;
});
@ -123,10 +124,76 @@ function getCode () {
}
//
function userAbount (type ) {
if(type===0){
uni.navigateTo({
url: `/pages/common/login/user_privacy`
});
}else{
uni.navigateTo({
url: `/pages/common/login/user_about`
});
}
}
async function wechatLogin () {
if (isWechat.value === true) {
if (!uni.$u.test.mobile(Number(account.value))) {
uni.$u.toast('请输入正确的手机号');
return;
}
if (loginType.value === 0) {
if (!password.value) {
uni.$u.toast('请输入密码');
return;
}
await userStore.passwordLogin({ account: account.value, password: password.value }).catch((res) => {
console.log(res);
if (res.code === 1) {
// const token = res.data.token;
// if (token) {
// setToken(token.token_type+' '+token.token);
// }
uni.$u.toast('登录成功');
}
else {
uni.$u.toast(`登录失败,${res.msg}`);
}
});
}
else {
if (!code.value) {
uni.$u.toast('请输入验证码');
return;
}
await userStore.login({ account: account.value, code: password.value }).catch(() => {
if (res.code === 1) {
// const token = res.data.token;
// if (token) {
// setToken(token.token_type+' '+token.token);
// }
uni.$u.toast('登录成功');
}
else {
uni.$u.toast(`登录失败,${res.msg}`);
}
});
}
if (isLogin()) {
// await userStore.info()
setTimeout(() => {
uni.$u.route({
type: isTabBarPath(redirect) ? 'switchTab' : 'redirectTo',
url: redirect,
});
}, 800);
} else {
uni.$u.toast('登录失败,请重新登录 ');
setToken('');
}
if (!isWechat.value) {
} else {
uni.login({
provider: 'weixin',
@ -145,16 +212,28 @@ async function wechatLogin () {
// uni.setStorageSync('token', res.token)
// }
// });
userStore.login({ account: account.value, code: event.code }).catch(() => {
userStore.login({ account: account.value, code: event.code }).catch((res) => {
if (res.code === 1) {
// const token = res.data.token;
// if (token) {
// setToken(token.token_type+' '+token.token);
// }
uni.$u.toast('登录成功');
if (isLogin()) {
// await userStore.info()
setTimeout(() => {
uni.$u.route({
type: isTabBarPath(redirect) ? 'switchTab' : 'redirectTo',
url: redirect,
});
}, 800);
} else {
uni.$u.toast(`登录失败,${res.msg}`);
setToken('');
}
}
else {
uni.$u.toast(`登录失败,${res.message}`);
uni.$u.toast(`登录失败,${res.msg}`);
}
});
@ -164,63 +243,9 @@ async function wechatLogin () {
// err.code
}
})
return;
}
if (!uni.$u.test.mobile(Number(account.value))) {
uni.$u.toast('请输入正确的手机号');
return;
}
if (loginType.value === 0) {
if (!password.value) {
uni.$u.toast('请输入密码');
return;
}
await userStore.passwordLogin({ account: account.value, password: password.value }).catch((res) => {
console.log(res);
if (res.code === 1) {
// const token = res.data.token;
// if (token) {
// setToken(token.token_type+' '+token.token);
// }
uni.$u.toast('登录成功');
}
else {
uni.$u.toast(`登录失败,${res.message}`);
}
});
}
else {
if (!code.value) {
uni.$u.toast('请输入验证码');
return;
}
await userStore.login({ account: account.value, code: password.value }).catch(() => {
if (res.code === 1) {
// const token = res.data.token;
// if (token) {
// setToken(token.token_type+' '+token.token);
// }
uni.$u.toast('登录成功');
}
else {
uni.$u.toast(`登录失败,${res.message}`);
}
});
}
if (isLogin()) {
// await userStore.info()
setTimeout(() => {
uni.$u.route({
type: isTabBarPath(redirect) ? 'switchTab' : 'redirectTo',
url: redirect,
});
}, 800);
} else {
uni.$u.toast('登录失败,请重新登录 ');
setToken('');
}
// setToken('1234567890');

View File

@ -0,0 +1,54 @@
<style>
.flex-sub-cart {
flex: 1;
flex-direction: row;
justify-content: center;
align-items: center;
width: 100%;
/* height: 100%; */
bottom: 10rpx;
position: fixed;
border: none;
}
.detail_box {
border-top: 2rpx solid #dfdfdf;
border-radius: 5rpx;
background-color: #ffffff;
}
</style>
<template>
<view class="fv-page flex-col" style="">
<up-navbar class=" " :autoBack="true" style="font-weight: bold;"
leftIcon="arrow-left" title="隐私政策" titleColor="#303133" bgColor="#FFFFFFFF" titleWidth="600rpx"
height="80rpx" leftIconSize="38rpx" leftIconColor="#303133" :safeAreaInsetTop="true" :placeholder="true"
:fixed="true"></up-navbar>
</view>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { CommonApi, UserApi } from "@/api";
import { setToken, getToken, isLogin } from '@/utils/auth';
import { image } from "@/uni_modules/uview-plus/libs/function/test";
import { url } from "inspector";
export default defineComponent({
data () {
return {
};
},
onLoad (option) {
},
created () {
},
methods: {
},
});
</script>

View File

@ -0,0 +1,54 @@
<style>
.flex-sub-cart {
flex: 1;
flex-direction: row;
justify-content: center;
align-items: center;
width: 100%;
/* height: 100%; */
bottom: 10rpx;
position: fixed;
border: none;
}
.detail_box {
border-top: 2rpx solid #dfdfdf;
border-radius: 5rpx;
background-color: #ffffff;
}
</style>
<template>
<view class="fv-page flex-col" style="">
<up-navbar class=" " :autoBack="true" style="font-weight: bold;"
leftIcon="arrow-left" title="用户协议" titleColor="#303133" bgColor="#FFFFFFFF" titleWidth="600rpx"
height="80rpx" leftIconSize="38rpx" leftIconColor="#303133" :safeAreaInsetTop="true" :placeholder="true"
:fixed="true"></up-navbar>
</view>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { CommonApi, UserApi } from "@/api";
import { setToken, getToken, isLogin } from '@/utils/auth';
import { image } from "@/uni_modules/uview-plus/libs/function/test";
import { url } from "inspector";
export default defineComponent({
data () {
return {
};
},
onLoad (option) {
},
created () {
},
methods: {
},
});
</script>

View File

@ -445,7 +445,8 @@ export default defineComponent({
if (this.totalNum == 1) {
this.totalNum = res.data.peopleNumber
}
}else{
uni.$u.toast(res.msg);
}
});
},

View File

@ -29,7 +29,7 @@ export function request<T = any>(config: HttpRequestConfig): Promise<T> {
const { result } = res.data;
resolve(result as T);
}).catch((res: any) => {
if(res.data.code==401){
if(res.code==401){
//未登录拦截跳转
uni.$u.toast(res.data.msg);
usePermission();