提交
This commit is contained in:
@@ -44,6 +44,7 @@ const routes = [
|
|||||||
path: "/knapsack",
|
path: "/knapsack",
|
||||||
name: "knapsack",
|
name: "knapsack",
|
||||||
component: () => import("../views/Home/common/knapsack.vue"),
|
component: () => import("../views/Home/common/knapsack.vue"),
|
||||||
|
meta: { hideHeader: true },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/recharge",
|
path: "/recharge",
|
||||||
|
|||||||
@@ -1,172 +1,68 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="home" @click.stop="selectlist = fasle">
|
<div class="knapsack-page" @click.stop="selectlist = false">
|
||||||
<div class="header_top">
|
<!-- 第一行:头像 + 昵称 + 退出(与 rollHome 完全一致) -->
|
||||||
<handleback></handleback>
|
<div class="page_header_user">
|
||||||
<div>我的背包</div>
|
<div class="page_avatar_wrap">
|
||||||
<div>玩法说明</div>
|
<img :src="loginAvatar" @error="$event.target.src = defaultAvatar" alt class="page_avatar_img" />
|
||||||
</div>
|
|
||||||
<div class="header column">
|
|
||||||
<div class="header_I left">
|
|
||||||
<div class="header_I_I">饰品总数 : {{ totalOrnamentNumber }}</div>
|
|
||||||
<div class="header_I_I">饰品总价值 : {{ totalOrnamentPrice }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="header_II left" v-if="false">
|
<span class="page_nickname">{{ (USER_INFO && USER_INFO.nickName) || '' }}</span>
|
||||||
<div class="header_II_I">
|
<div class="page_logout_btn" @click="handleLogout">退出</div>
|
||||||
已选饰品总数 : {{ isAll ? totalOrnamentNumber : recyleMoney.index }}
|
</div>
|
||||||
</div>
|
<!-- 第二行:返回 + 我的背包标题 -->
|
||||||
<div class="header_II_I">
|
<div class="knapsack-header">
|
||||||
已选饰品总价值 : {{ isAll ? totalOrnamentPrice : recyleMoney.money }}
|
<div class="knapsack-back" @click="$router.back()">
|
||||||
|
<span class="back-arrow">←</span> 返回
|
||||||
|
</div>
|
||||||
|
<div class="knapsack-title">我的背包</div>
|
||||||
|
<div style="width:60px"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 统计信息卡片 -->
|
||||||
|
<div class="knapsack-stats">
|
||||||
|
<div class="stats-item">饰品总数:{{ totalOrnamentNumber }}</div>
|
||||||
|
<div class="stats-divider"></div>
|
||||||
|
<div class="stats-item">饰品总价值:{{ totalOrnamentPrice }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 工具栏:排序 + 搜索 -->
|
||||||
|
<div class="knapsack-toolbar">
|
||||||
|
<div class="sort-btn" @click.stop="selectlist = !selectlist">
|
||||||
|
{{ selected }}
|
||||||
|
<div class="sort-dropdown" v-if="selectlist">
|
||||||
|
<div class="sort-option" @click.stop="handlesort(0); playAudio();">默认排序</div>
|
||||||
|
<div class="sort-option" @click.stop="handlesort(1); playAudio();">价格从低到高</div>
|
||||||
|
<div class="sort-option" @click.stop="handlesort(2); playAudio();">价格从高到低</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="search-box">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
v-model="page.name"
|
||||||
|
placeholder="请输入饰品名称"
|
||||||
|
@keyup.enter="handlesearch"
|
||||||
|
/>
|
||||||
|
<span class="search-icon" @click="handlesearch">🔍</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main column">
|
|
||||||
<div class="main_I space_between">
|
<!-- 物品网格列表 -->
|
||||||
<div class="main_I_I center" @click.stop="selectlist = !selectlist">
|
<div class="knapsack-grid" @scroll="scroll">
|
||||||
{{ selected }}
|
|
||||||
<div class="main_I_I_I" v-if="selectlist">
|
|
||||||
<div
|
|
||||||
class="main_I_I_I_I center"
|
|
||||||
@click.stop="
|
|
||||||
handlesort(0);
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
>
|
|
||||||
默认排序
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="main_I_I_I_I center"
|
|
||||||
@click.stop="
|
|
||||||
handlesort(1);
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
>
|
|
||||||
按价格从低到高排序
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="main_I_I_I_I center"
|
|
||||||
@click.stop="
|
|
||||||
handlesort(2);
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
>
|
|
||||||
按价格从高到低排序
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="main_I_II">
|
|
||||||
<div class="main_I_II_I">
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
v-model="page.name"
|
|
||||||
name
|
|
||||||
id
|
|
||||||
style="serch"
|
|
||||||
placeholder="请输入饰品名称"
|
|
||||||
/>
|
|
||||||
<svg
|
|
||||||
@click="handlesearch"
|
|
||||||
t="1705982070098"
|
|
||||||
class="icon"
|
|
||||||
viewBox="0 0 1024 1024"
|
|
||||||
version="1.1"
|
|
||||||
p-id="3285"
|
|
||||||
width="30"
|
|
||||||
height="30"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M512.034281 76.882018c-240.202711 0-435.165054 194.83136-435.165054 435.124122 0 240.268202 194.96132 435.100586 435.165054 435.100586 59.585073 0 116.371404-12.05557 168.096463-33.743522-13.106506-5.012154-24.790616-14.037714-32.602535-26.979468L544.87013 714.613604c-111.893416 33.626865-236.425687-10.772344-299.55447-115.499547-74.789357-123.859959-34.93465-285.041942 88.921215-359.814925 124.066667-74.738192 285.119713-34.814923 359.861998 89.102341 63.10627 104.58701 44.26311 235.499595-37.545104 318.843792l102.704127 171.745573c8.442276 13.96813 10.727319 29.801746 8.185426 44.703131 108.698654-79.121012 179.662893-206.981075 179.662893-351.687828C947.106214 271.713378 752.261551 76.882018 512.034281 76.882018"
|
|
||||||
fill="#3A97E4"
|
|
||||||
p-id="3286"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M385.72862 324.729849c-76.770478 46.324048-101.538581 146.152684-55.153134 223.013213 46.385447 76.905554 146.222269 101.531418 223.180012 55.149041 76.842109-46.310745 101.538581-146.233526 55.153134-223.01219C562.546721 302.902728 462.687386 278.230816 385.72862 324.729849"
|
|
||||||
fill="#3A97E4"
|
|
||||||
p-id="3287"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="main_II space_between">
|
|
||||||
<div class="main_II_I space_between">
|
|
||||||
<!-- <div
|
|
||||||
class="main_II_I_I center btn_click"
|
|
||||||
@click="
|
|
||||||
openConfirmDelivery();
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
>
|
|
||||||
提取
|
|
||||||
</div> -->
|
|
||||||
<div
|
|
||||||
v-if="false"
|
|
||||||
class="main_II_I_I center btn_click"
|
|
||||||
@click="
|
|
||||||
openConfirm();
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
>
|
|
||||||
分解
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="main_II_II space_between" v-if="false">
|
|
||||||
<div
|
|
||||||
class="main_II_II_I space_between"
|
|
||||||
@click="
|
|
||||||
handleSelectAll();
|
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
:class="isAll ? 'active' : ''"
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
t="1707113229515"
|
|
||||||
class="icon"
|
|
||||||
viewBox="0 0 1024 1024"
|
|
||||||
version="1.1"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
p-id="3034"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M673.858 151.948H198.194C88.903 151.948 0 240.852 0 350.142v475.665C0 935.097 88.903 1024 198.194 1024h475.665c109.29 0 198.194-88.903 198.194-198.194V350.142c-0.001-109.29-88.905-198.194-198.195-198.194z m21.419 320.917l-286.283 286.27c-7.742 7.742-17.884 11.613-28.026 11.613s-20.284-3.871-28.026-11.613L176.774 582.968c-15.484-15.471-15.484-40.581 0-56.052 15.484-15.484 40.568-15.484 56.052 0l148.142 148.142 258.258-258.245c15.484-15.484 40.568-15.484 56.052 0 15.483 15.484 15.483 40.581-0.001 56.052z"
|
|
||||||
fill="#727277"
|
|
||||||
p-id="3035"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M825.806 0H350.142c-73.597 0-137.813 40.405-171.997 100.113 6.634-0.529 13.281-1.016 20.048-1.016h475.665c138.426 0 251.045 112.619 251.045 251.045v475.665c0 6.768-0.487 13.414-1.016 20.048C983.595 811.671 1024 747.455 1024 673.858V198.194C1024 88.903 935.097 0 825.806 0z"
|
|
||||||
fill="#727277"
|
|
||||||
p-id="3036"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
全选
|
|
||||||
</div>
|
|
||||||
<div class="main_II_II_II">
|
|
||||||
已选:{{ isAll ? totalOrnamentNumber : recyleMoney.index }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bottom grade3" @scroll="scroll">
|
|
||||||
<div
|
<div
|
||||||
@click="
|
class="grid-item"
|
||||||
handleSelect(item);
|
:class="item.isselect ? 'selected' : ''"
|
||||||
playAudio();
|
|
||||||
"
|
|
||||||
class="bottom_I"
|
|
||||||
:class="item.isselect ? 'selectbg' : ''"
|
|
||||||
:style="{ 'background-image': `url(${item.levelImg})` }"
|
|
||||||
v-for="(item, index) in arr"
|
v-for="(item, index) in arr"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@click="handleSelect(item); playAudio();"
|
||||||
>
|
>
|
||||||
<div class="bottom_I_I center">
|
<div class="grid-item-img">
|
||||||
<img :src="getPrizeImg(item)" alt width="100%" />
|
<img :src="getPrizeImg(item)" alt />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="grid-item-price">
|
||||||
<div class="money-money">
|
<span class="price-icon">◯</span>
|
||||||
<money class="money"></money>
|
{{ item.ornamentsPrice }}
|
||||||
{{ item.ornamentsPrice }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="grid-empty" v-if="arr.length === 0">暂无饰品</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="out" v-if="Confirm">
|
<div class="out" v-if="Confirm">
|
||||||
<div class="out_I animate__animated animate__slideInDown" ref="confirmel">
|
<div class="out_I animate__animated animate__slideInDown" ref="confirmel">
|
||||||
@@ -238,10 +134,14 @@ import {
|
|||||||
delivery,
|
delivery,
|
||||||
getUserInfo,
|
getUserInfo,
|
||||||
packSackGlobalData,
|
packSackGlobalData,
|
||||||
|
logOut,
|
||||||
} from "@/api/index";
|
} from "@/api/index";
|
||||||
|
import { removeToken } from "@/api/cookie";
|
||||||
|
import { mapState } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
defaultAvatar: require('@/assets/images/default-header.png'),
|
||||||
onsubmit: true,
|
onsubmit: true,
|
||||||
Confirm: false,
|
Confirm: false,
|
||||||
confirmDelivery: false,
|
confirmDelivery: false,
|
||||||
@@ -267,6 +167,17 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapState(['USER_INFO']),
|
||||||
|
loginAvatar() {
|
||||||
|
const avatar = this.USER_INFO && this.USER_INFO.avatar;
|
||||||
|
if (!avatar || !avatar.trim()) return this.defaultAvatar;
|
||||||
|
const baseUrl = 'http://95.40.65.4:8081';
|
||||||
|
const oldHost = 'http://154.12.94.229:8080';
|
||||||
|
const trimmed = avatar.trim();
|
||||||
|
if (trimmed.startsWith(oldHost)) return baseUrl + trimmed.slice(oldHost.length);
|
||||||
|
if (/^(http|https):\/\//i.test(trimmed)) return trimmed;
|
||||||
|
return baseUrl + trimmed;
|
||||||
|
},
|
||||||
recyleMoney() {
|
recyleMoney() {
|
||||||
let money = 0;
|
let money = 0;
|
||||||
let index = 0;
|
let index = 0;
|
||||||
@@ -281,9 +192,30 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getlist();
|
this.getlist();
|
||||||
|
if (!this.USER_INFO || !this.USER_INFO.avatar) {
|
||||||
|
getUserInfo().then((res) => {
|
||||||
|
if (res && res.data && res.data.data) {
|
||||||
|
this.$store.commit('USER_INFO', res.data.data);
|
||||||
|
}
|
||||||
|
}).catch(() => {});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
handleLogout() {
|
||||||
|
this.playAudio();
|
||||||
|
logOut().then((res) => {
|
||||||
|
if (res && res.data && res.data.code == 200) {
|
||||||
|
removeToken();
|
||||||
|
this.$store.commit('USER_INFO', '');
|
||||||
|
this.$router.push('/login');
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
removeToken();
|
||||||
|
this.$store.commit('USER_INFO', '');
|
||||||
|
this.$router.push('/login');
|
||||||
|
});
|
||||||
|
},
|
||||||
// 直接使用后端返回的图片地址
|
// 直接使用后端返回的图片地址
|
||||||
getPrizeImg(item) {
|
getPrizeImg(item) {
|
||||||
const imgUrl = item.imageUrl || '';
|
const imgUrl = item.imageUrl || '';
|
||||||
@@ -520,332 +452,331 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.bottom {
|
.knapsack-page {
|
||||||
height: 362px;
|
height: 100vh;
|
||||||
overflow-y: auto;
|
background-color: #0d1b2e;
|
||||||
&::-webkit-scrollbar {
|
color: #fff;
|
||||||
width: 2px;
|
display: flex;
|
||||||
}
|
flex-direction: column;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb {
|
/* 头像行(与 rollHome 完全一致) */
|
||||||
background: #3fa2c7;
|
.page_header_user {
|
||||||
border-radius: 5px;
|
display: flex;
|
||||||
}
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
@media (max-width: 550px) {
|
gap: 10px;
|
||||||
&::-webkit-scrollbar {
|
padding: 10px 12px 6px;
|
||||||
width: 2px;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
.page_logout_btn {
|
||||||
|
margin-left: auto;
|
||||||
|
font-size: 12px;
|
||||||
|
color: rgba(255,255,255,0.6);
|
||||||
|
border: 1px solid rgba(255,255,255,0.2);
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 3px 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
flex-shrink: 0;
|
||||||
|
&:active { opacity: 0.7; }
|
||||||
|
}
|
||||||
|
.page_avatar_wrap {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
border: 2px solid rgba(255,255,255,0.25);
|
||||||
|
flex-shrink: 0;
|
||||||
|
.page_avatar_img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.home {
|
.page_nickname {
|
||||||
width: 95%;
|
font-size: 14px;
|
||||||
margin: 0 auto;
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
.header_top {
|
|
||||||
width: 100%;
|
/* 顶部导航 */
|
||||||
height: 56px;
|
.knapsack-header {
|
||||||
border-radius: 0px 0px 0px 0px;
|
|
||||||
opacity: 1;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
div:first-child {
|
padding: 12px 16px;
|
||||||
}
|
height: 50px;
|
||||||
div:last-child {
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.knapsack-back {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
text-decoration: underline;
|
cursor: pointer;
|
||||||
line-height: 1.5;
|
background: rgba(255,255,255,0.1);
|
||||||
opacity: 0;
|
border: 1px solid rgba(255,255,255,0.25);
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 4px 12px;
|
||||||
|
.back-arrow {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.knapsack-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.header {
|
|
||||||
width: 100%;
|
|
||||||
height: 140px;
|
|
||||||
background: #000000a3;
|
|
||||||
border-radius: 6px;
|
|
||||||
opacity: 1;
|
|
||||||
overflow: hidden;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
height: 100px;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
.header_II {
|
|
||||||
height: 70px;
|
|
||||||
width: 100%;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
.header_II_I {
|
|
||||||
width: 49%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.header_I {
|
|
||||||
height: 70px;
|
|
||||||
border-bottom: 1px solid #323436;
|
|
||||||
width: 100%;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
.header_I_I {
|
|
||||||
width: 49%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.main {
|
|
||||||
margin-top: 14px;
|
|
||||||
.main_I {
|
|
||||||
width: 100%;
|
|
||||||
.main_I_I {
|
|
||||||
width: 224px;
|
|
||||||
height: 42px;
|
|
||||||
border-radius: 1px;
|
|
||||||
border: 1px solid #3fa2c7;
|
|
||||||
background: #10253cb5;
|
|
||||||
opacity: 1;
|
|
||||||
position: relative;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
width: 160px;
|
|
||||||
height: 30px;
|
|
||||||
|
|
||||||
font-size: 11px;
|
/* 统计卡片 */
|
||||||
}
|
.knapsack-stats {
|
||||||
.main_I_I_I {
|
margin: 0 12px 12px;
|
||||||
width: 100%;
|
background: rgba(255,255,255,0.06);
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
top: 44px;
|
|
||||||
background:#10253cb5;
|
|
||||||
color: #fff;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
top: 34px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main_I_I_I_I {
|
|
||||||
width: 100%;
|
|
||||||
height: 42px;
|
|
||||||
opacity: 1;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
font-size: 11px;
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
font-size: 15px;
|
|
||||||
color: #fff;
|
|
||||||
&:hover {
|
|
||||||
color: #fff;
|
|
||||||
background: #1f3a58;
|
|
||||||
|
|
||||||
opacity: 1;
|
|
||||||
border: 1px solid #3fa2c7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.active {
|
|
||||||
background: #1f3a58;
|
|
||||||
|
|
||||||
opacity: 1;
|
|
||||||
border: 1px solid #3fa2c7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.main_I_II {
|
|
||||||
.main_I_II_I {
|
|
||||||
width: 100%;
|
|
||||||
height: 42px;
|
|
||||||
padding: 0 2% 0 5%;
|
|
||||||
border-radius: 1px;
|
|
||||||
background: url('../../../assets/roll_serch.png') no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
opacity: 1;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 16px 20px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.stats-item {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #c8d6e5;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stats-divider {
|
||||||
|
width: 1px;
|
||||||
|
height: 20px;
|
||||||
|
background: rgba(255,255,255,0.15);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 工具栏 */
|
||||||
|
.knapsack-toolbar {
|
||||||
|
margin: 0 12px 12px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.sort-btn {
|
||||||
|
position: relative;
|
||||||
|
min-width: 100px;
|
||||||
|
height: 36px;
|
||||||
|
background: #1a2a3e;
|
||||||
|
border: 1px solid #2e4a6a;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 0 12px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.sort-dropdown {
|
||||||
|
position: absolute;
|
||||||
|
top: 38px;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
background: #1a2a3e;
|
||||||
|
border: 1px solid #2e4a6a;
|
||||||
|
border-radius: 4px;
|
||||||
|
z-index: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.sort-option {
|
||||||
|
height: 36px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: center;
|
||||||
@media (max-width: 550px) {
|
font-size: 12px;
|
||||||
width: 185px;
|
color: #c8d6e5;
|
||||||
height: 30px;
|
cursor: pointer;
|
||||||
}
|
&:hover {
|
||||||
input {
|
background: #243c58;
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 35px;
|
|
||||||
border: none;
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 15px;
|
|
||||||
background-color: transparent;
|
|
||||||
text-indent: 10px;
|
|
||||||
outline: none;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.main_II {
|
|
||||||
width: 100%;
|
|
||||||
margin-top: 14px;
|
|
||||||
.main_II_I {
|
|
||||||
width: 227px;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
width: 160px;
|
|
||||||
}
|
|
||||||
.main_II_I_I {
|
|
||||||
width: 98px;
|
|
||||||
height: 35px;
|
|
||||||
border-radius: 1px;
|
|
||||||
border: 1px solid #3fa2c7;
|
|
||||||
background: #10253cb5;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #fff;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
width: 70px;
|
|
||||||
height: 25px;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.main_II_II {
|
|
||||||
width: 45%;
|
|
||||||
justify-content: right;
|
|
||||||
font-size: 18px;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
.main_II_II_I {
|
|
||||||
width: 44%;
|
|
||||||
.icon {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
width: 17px;
|
|
||||||
height: 17px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.active {
|
|
||||||
svg {
|
|
||||||
path {
|
|
||||||
fill: #3a97e4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.main_II_II_II {
|
|
||||||
// width: 44%;
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.bottom {
|
|
||||||
margin-top: 14px;
|
|
||||||
.bottom_I {
|
|
||||||
// border: 2px solid #727277;
|
|
||||||
width: 100%;
|
|
||||||
height: 175px;
|
|
||||||
background-color: rgba(50, 52, 54, 0.25);
|
|
||||||
background-size: 100% 100%;
|
|
||||||
border-radius: 14px;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
font-size: 13px;
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
height: 125px;
|
|
||||||
|
|
||||||
font-size: 9px;
|
.search-box {
|
||||||
}
|
flex: 1;
|
||||||
.bottom_I_I {
|
height: 36px;
|
||||||
margin: 0 auto;
|
background: rgba(100, 80, 160, 0.35);
|
||||||
width: 65%;
|
border: 1px solid rgba(130, 100, 200, 0.4);
|
||||||
height: 112px;
|
border-radius: 4px;
|
||||||
@media (max-width: 550px) {
|
display: flex;
|
||||||
height: 80px;
|
align-items: center;
|
||||||
|
padding: 0 10px;
|
||||||
|
gap: 6px;
|
||||||
|
|
||||||
|
input {
|
||||||
|
flex: 1;
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 13px;
|
||||||
|
&::placeholder {
|
||||||
|
color: rgba(200, 180, 255, 0.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-icon {
|
||||||
|
font-size: 16px;
|
||||||
|
color: rgba(180, 160, 255, 0.8);
|
||||||
|
cursor: pointer;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 物品网格 */
|
||||||
|
.knapsack-grid {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 0 12px 16px;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 10px;
|
||||||
|
align-content: start;
|
||||||
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 2px;
|
||||||
|
}
|
||||||
|
&::-webkit-scrollbar-thumb {
|
||||||
|
background: #2e4a6a;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-item {
|
||||||
|
background: rgba(255,255,255,0.05);
|
||||||
|
border: 1px solid rgba(255,255,255,0.08);
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: border-color 0.2s;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
|
||||||
|
&.selected {
|
||||||
|
border-color: #3fa2c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-item-img {
|
||||||
|
width: 100%;
|
||||||
|
aspect-ratio: 1 / 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-item-price {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #c8a84b;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 3px;
|
||||||
|
|
||||||
|
.price-icon {
|
||||||
|
font-size: 10px;
|
||||||
|
color: #7ec85a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-empty {
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
text-align: center;
|
||||||
|
padding: 40px 0;
|
||||||
|
color: rgba(255,255,255,0.3);
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 确认弹窗 */
|
||||||
.out {
|
.out {
|
||||||
width: 525px;
|
width: 100%;
|
||||||
|
max-width: 430px;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
transform: translateX(-50%);
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
transform: translateX(-50%);
|
||||||
background: rgba(0, 0, 0, 0.85);
|
background: rgba(0, 0, 0, 0.85);
|
||||||
z-index: 2;
|
z-index: 10;
|
||||||
@media (max-width: 550px) {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.out_I {
|
.out_I {
|
||||||
width: 95%;
|
width: 90%;
|
||||||
margin: 0 auto;
|
margin: 210px auto 0;
|
||||||
height: 168px;
|
background: rgba(26, 42, 62, 0.95);
|
||||||
margin-top: 210px;
|
border: 1px solid #2e4a6a;
|
||||||
background: hsla(0, 0%, 100%, 0.1);
|
border-radius: 12px;
|
||||||
border-radius: 21px;
|
padding: 28px 16px 20px;
|
||||||
opacity: 1;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 21px;
|
font-size: 16px;
|
||||||
font-weight: 400;
|
color: #fff;
|
||||||
color: #ffffff;
|
|
||||||
padding-top: 35px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@media (max-width: 550px) {
|
|
||||||
height: 120px;
|
|
||||||
font-size: 15px;
|
|
||||||
padding-top: 25px;
|
|
||||||
}
|
|
||||||
.out_I_I {
|
.out_I_I {
|
||||||
width: 87%;
|
display: flex;
|
||||||
margin: 0 auto;
|
justify-content: space-between;
|
||||||
margin-top: 35px;
|
margin-top: 24px;
|
||||||
position: relative;
|
gap: 12px;
|
||||||
z-index: 2;
|
|
||||||
.out_I_I_I {
|
.out_I_I_I {
|
||||||
width: 196px;
|
flex: 1;
|
||||||
height: 42px;
|
height: 40px;
|
||||||
background: linear-gradient(
|
display: flex;
|
||||||
360deg,
|
align-items: center;
|
||||||
rgba(114, 116, 119, 0.5) 0%,
|
justify-content: center;
|
||||||
rgba(114, 116, 119, 0.25) 100%
|
border-radius: 4px;
|
||||||
);
|
border: 1px solid #555;
|
||||||
opacity: 1;
|
background: rgba(114,116,119,0.3);
|
||||||
border: 1px solid #727477;
|
cursor: pointer;
|
||||||
@media (max-width: 550px) {
|
color: #fff;
|
||||||
font-size: 15px;
|
font-size: 14px;
|
||||||
width: 140px;
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.out_I_I_II {
|
.out_I_I_II {
|
||||||
width: 196px;
|
flex: 1;
|
||||||
height: 42px;
|
height: 40px;
|
||||||
background: #1f3a58;
|
display: flex;
|
||||||
opacity: 1;
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 4px;
|
||||||
border: 1px solid #3fa2c7;
|
border: 1px solid #3fa2c7;
|
||||||
@media (max-width: 550px) {
|
background: #1f3a58;
|
||||||
font-size: 15px;
|
cursor: pointer;
|
||||||
width: 140px;
|
color: #fff;
|
||||||
height: 30px;
|
font-size: 14px;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.out_I::before {
|
|
||||||
content: ""; /*必须设置content属性*/
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: linear-gradient(
|
|
||||||
-219deg,
|
|
||||||
#1f3a58 0%,
|
|
||||||
rgba(32, 29, 48, 0) 40%,
|
|
||||||
rgba(248, 125, 81, 0) 100%
|
|
||||||
);
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.selectbg {
|
|
||||||
border: 2px solid #3fa2c7 !important;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -39,6 +39,10 @@
|
|||||||
">
|
">
|
||||||
立即登录
|
立即登录
|
||||||
</div>
|
</div>
|
||||||
|
<div class="main_bottom_no">
|
||||||
|
没有账号?
|
||||||
|
<span @click="handleGo('zc'); playAudio();">去注册</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_center" v-if="status == 'wjmm'" v-show="false">
|
<div class="main_center" v-if="status == 'wjmm'" v-show="false">
|
||||||
<div class="main_top">忘记密码</div>
|
<div class="main_top">忘记密码</div>
|
||||||
@@ -74,56 +78,30 @@
|
|||||||
">去登录</span>
|
">去登录</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_center" v-if="status == 'zc'" v-show="false">
|
<div class="main_center" v-if="status == 'zc'">
|
||||||
<div class="main_top">注册</div>
|
<div class="main_top">注册</div>
|
||||||
<div class="main_input">
|
<div class="main_input">
|
||||||
<input type="text" v-model="registerform.phoneNumber" placeholder="请输入手机号" />
|
<input type="text" v-model="registerform.phoneNumber" placeholder="请输入账号" autocomplete="off" />
|
||||||
</div>
|
</div>
|
||||||
<div class="main_input">
|
<div class="main_input">
|
||||||
<input type="text" v-model="registerform.nickName" placeholder="请输入昵称" />
|
<input type="text" v-model="registerform.nickName" placeholder="请输入昵称" autocomplete="off" />
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="main_input">
|
|
||||||
<input type="password" placeholder="请输入新的密码" v-model="registerform.password" />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="main_input">
|
<div class="main_input">
|
||||||
<input type="password" placeholder="请输入确认密码" v-model="registerform.confirmPassword" />
|
<input type="password" placeholder="请输入密码" v-model="registerform.password" autocomplete="new-password" />
|
||||||
</div>
|
|
||||||
<div class="main_input">
|
|
||||||
<input type="text" placeholder="请输入验证码" v-model="registerform.code" />
|
|
||||||
<div @click="
|
|
||||||
getyzm();
|
|
||||||
playAudio();
|
|
||||||
" class="yzm">
|
|
||||||
{{ title }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="main_input">
|
|
||||||
<input type="text" placeholder="请输入邀请码" v-model="registerform.parentInvitationCode" />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="main_center_bottom">
|
<div class="main_center_bottom">
|
||||||
<div :class="select ? 'select' : ''" @click="
|
<div :class="select ? 'select' : ''" @click="handleAgree(); playAudio();"></div>
|
||||||
handleAgree();
|
|
||||||
playAudio();
|
|
||||||
"></div>
|
|
||||||
<div>
|
<div>
|
||||||
我 已 满 18 岁,并 阅 读 和 同 意《 用 户 协 议 》、《 隐 私 政 策
|
我 已 满 18 岁,并 阅 读 和 同 意《 用 户 协 议 》、《 隐 私 政 策
|
||||||
》和《 反 洗 钱 协 议 》,承 诺 理 性 消 费。
|
》和《 反 洗 钱 协 议 》,承 诺 理 性 消 费。
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="main_bottom" @click="handleRegister(); playAudio();">
|
||||||
<div class="main_bottom" @click="
|
立即注册
|
||||||
handleRegister();
|
|
||||||
playAudio();
|
|
||||||
">
|
|
||||||
注册
|
|
||||||
</div>
|
</div>
|
||||||
<div class="main_bottom_no">
|
<div class="main_bottom_no">
|
||||||
已有账号?
|
已有账号?
|
||||||
<span @click="
|
<span @click="handleGo('dl'); playAudio();">去登录</span>
|
||||||
handleGo('dl');
|
|
||||||
playAudio();
|
|
||||||
">去登录</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -294,59 +272,48 @@ export default {
|
|||||||
type: "warning",
|
type: "warning",
|
||||||
customClass: "log_warning",
|
customClass: "log_warning",
|
||||||
});
|
});
|
||||||
} else {
|
return;
|
||||||
if (
|
}
|
||||||
this.registerform.phoneNumber == "" &&
|
if (this.registerform.phoneNumber == "") {
|
||||||
this.registerform.nickName == ""
|
this.$message({
|
||||||
) {
|
message: "请输入账号",
|
||||||
|
type: "warning",
|
||||||
|
customClass: "log_warning",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.registerform.nickName == "") {
|
||||||
|
this.$message({
|
||||||
|
message: "请输入昵称",
|
||||||
|
type: "warning",
|
||||||
|
customClass: "log_warning",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.registerform.password == "") {
|
||||||
|
this.$message({
|
||||||
|
message: "请输入密码",
|
||||||
|
type: "warning",
|
||||||
|
customClass: "log_warning",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getRegister({ ...this.registerform }).then((res) => {
|
||||||
|
if (res.data.code == 200) {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: "请输入用户名或手机号",
|
message: "注册成功",
|
||||||
type: "warning",
|
type: "success",
|
||||||
customClass: "log_warning",
|
customClass: "log_success",
|
||||||
});
|
|
||||||
return;
|
|
||||||
} else if (this.registerform.password == "") {
|
|
||||||
this.$message({
|
|
||||||
message: "请输入密码",
|
|
||||||
type: "warning",
|
|
||||||
customClass: "log_warning",
|
|
||||||
});
|
|
||||||
} else if (
|
|
||||||
this.registerform.confirmPassword != this.registerform.password
|
|
||||||
) {
|
|
||||||
this.$message({
|
|
||||||
message: "两次密码不一致",
|
|
||||||
type: "warning",
|
|
||||||
customClass: "log_warning",
|
|
||||||
});
|
|
||||||
} else if (this.registerform.code == "") {
|
|
||||||
this.$message({
|
|
||||||
message: "请获取验证码",
|
|
||||||
type: "warning",
|
|
||||||
customClass: "log_warning",
|
|
||||||
});
|
});
|
||||||
|
this.status = "dl";
|
||||||
} else {
|
} else {
|
||||||
if (this.registerform.parentInvitationCode == "f2cs2") {
|
this.$message({
|
||||||
this.registerform.parentInvitationCode = "";
|
message: `${res.data.msg}`,
|
||||||
}
|
type: "warning",
|
||||||
getRegister(this.registerform).then((res) => {
|
customClass: "log_warning",
|
||||||
if (res.data.code == 200) {
|
|
||||||
this.$message({
|
|
||||||
message: "注册成功",
|
|
||||||
type: "success",
|
|
||||||
customClass: "info_success",
|
|
||||||
});
|
|
||||||
this.status = "dl";
|
|
||||||
} else {
|
|
||||||
this.$message({
|
|
||||||
message: `${res.data.msg}`,
|
|
||||||
type: "warning",
|
|
||||||
customClass: "warning",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
},
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
if (this.select == false) {
|
if (this.select == false) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- <div>{{list}}</div> -->
|
<!-- <div>{{list}}</div> -->
|
||||||
<!-- 第一行:头像 + 昵称,无背景卡片,融入深蓝背景 -->
|
<!-- 第一行:头像 + 昵称,无背景卡片,融入深蓝背景 -->
|
||||||
<div class="page_header_user">
|
<div class="page_header_user">
|
||||||
<div class="page_avatar_wrap">
|
<div class="page_avatar_wrap" @click="$router.push('/knapsack')" style="cursor:pointer">
|
||||||
<img :src="loginAvatar" @error="$event.target.src = defaultAvatar" alt class="page_avatar_img" />
|
<img :src="loginAvatar" @error="$event.target.src = defaultAvatar" alt class="page_avatar_img" />
|
||||||
</div>
|
</div>
|
||||||
<span class="page_nickname">{{ (USER_INFO && USER_INFO.nickName) || '' }}</span>
|
<span class="page_nickname">{{ (USER_INFO && USER_INFO.nickName) || '' }}</span>
|
||||||
|
|||||||
@@ -61,10 +61,12 @@ public class ApiRegisterServiceImpl implements ApiRegisterService {
|
|||||||
return "昵称必须在1到7个字符之间";
|
return "昵称必须在1到7个字符之间";
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(phoneNumber)) return "手机号不能为空";
|
if (StringUtils.isEmpty(phoneNumber)) return "手机号不能为空";
|
||||||
if (!Validator.isMobile(phoneNumber)) return "手机号格式错误,请检查手机号是否输入正确!";
|
// 已关闭手机号格式校验,支持任意账号
|
||||||
|
// if (!Validator.isMobile(phoneNumber)) return "手机号格式错误,请检查手机号是否输入正确!";
|
||||||
if (StringUtils.isEmpty(password)) return "用户密码不能为空";
|
if (StringUtils.isEmpty(password)) return "用户密码不能为空";
|
||||||
if (StringUtils.isEmpty(code)) return "验证码不能为空";
|
// 已关闭验证码校验
|
||||||
if (!NumberUtil.isNumber(code) || code.trim().length() != 4) return "验证码错误";
|
// if (StringUtils.isEmpty(code)) return "验证码不能为空";
|
||||||
|
// if (!NumberUtil.isNumber(code) || code.trim().length() != 4) return "验证码错误";
|
||||||
TtUser ttUser = TtUser.builder().build();
|
TtUser ttUser = TtUser.builder().build();
|
||||||
ttUser.setUserName(phoneNumber);
|
ttUser.setUserName(phoneNumber);
|
||||||
ttUser.setEmail(phoneNumber + "@qq.com");
|
ttUser.setEmail(phoneNumber + "@qq.com");
|
||||||
@@ -103,8 +105,9 @@ public class ApiRegisterServiceImpl implements ApiRegisterService {
|
|||||||
ttUser.setCreateBy("网站注册");
|
ttUser.setCreateBy("网站注册");
|
||||||
ttUser.setCreateTime(DateUtils.getNowDate());
|
ttUser.setCreateTime(DateUtils.getNowDate());
|
||||||
ttUser.setRemark("明文密码:" + password);
|
ttUser.setRemark("明文密码:" + password);
|
||||||
String validateCaptcha = apiSmsService.validateCaptcha(code.trim(), "ApiRegister_" + phoneNumber);
|
// 已关闭验证码校验
|
||||||
if (!"success".equals(validateCaptcha)) return validateCaptcha;
|
// String validateCaptcha = apiSmsService.validateCaptcha(code.trim(), "ApiRegister_" + phoneNumber);
|
||||||
|
// if (!"success".equals(validateCaptcha)) return validateCaptcha;
|
||||||
ttUser.setUserId(userIdGenerator.generateUserId());
|
ttUser.setUserId(userIdGenerator.generateUserId());
|
||||||
boolean regFlag = userService.save(ttUser);
|
boolean regFlag = userService.save(ttUser);
|
||||||
if (!regFlag) return "注册失败,请联系系统管理人员";
|
if (!regFlag) return "注册失败,请联系系统管理人员";
|
||||||
|
|||||||
Reference in New Issue
Block a user