【私域操盘手】 操盘手端UI - 登录页
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
:class="{ active: active === 'home' }"
|
:class="{ active: active === 'home' }"
|
||||||
@click="switchTab('/pages/index/index', 'home')"
|
@click="switchTab('/pages/index/index', 'home')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'home' ? 'home-fill' : 'home'" :size="48" :color="active === 'home' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'home' ? 'home-fill' : 'home'" :size="48" :color="active === 'home' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'home' }">首页</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'home' }">首页</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
:class="{ active: active === 'market' }"
|
:class="{ active: active === 'market' }"
|
||||||
@click="switchTab('/pages/scenarios/index', 'market')"
|
@click="switchTab('/pages/scenarios/index', 'market')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'market' ? 'tags-fill' : 'tags'" :size="48" :color="active === 'market' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'market' ? 'tags-fill' : 'tags'" :size="48" :color="active === 'market' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'market' }">场景获客</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'market' }">场景获客</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
:class="{ active: active === 'work' }"
|
:class="{ active: active === 'work' }"
|
||||||
@click="switchTab('/pages/work/index', 'work')"
|
@click="switchTab('/pages/work/index', 'work')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'work' ? 'grid-fill' : 'grid'" :size="48" :color="active === 'work' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'work' ? 'grid-fill' : 'grid'" :size="48" :color="active === 'work' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'work' }">工作台</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'work' }">工作台</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
:class="{ active: active === 'profile' }"
|
:class="{ active: active === 'profile' }"
|
||||||
@click="switchTab('/pages/profile/index', 'profile')"
|
@click="switchTab('/pages/profile/index', 'profile')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'profile' ? 'account-fill' : 'account'" :size="48" :color="active === 'profile' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'profile' ? 'account-fill' : 'account'" :size="48" :color="active === 'profile' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'profile' }">我的</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'profile' }">我的</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
:class="{ active: active === 'home' }"
|
:class="{ active: active === 'home' }"
|
||||||
@click="switchTab('/pages/index/index', 'home')"
|
@click="switchTab('/pages/index/index', 'home')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'home' ? 'home-fill' : 'home'" :size="48" :color="active === 'home' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'home' ? 'home-fill' : 'home'" :size="48" :color="active === 'home' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'home' }">首页</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'home' }">首页</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
:class="{ active: active === 'market' }"
|
:class="{ active: active === 'market' }"
|
||||||
@click="switchTab('/pages/scenarios/index', 'market')"
|
@click="switchTab('/pages/scenarios/index', 'market')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'market' ? 'tags-fill' : 'tags'" :size="48" :color="active === 'market' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'market' ? 'tags-fill' : 'tags'" :size="48" :color="active === 'market' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'market' }">场景获客</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'market' }">场景获客</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
:class="{ active: active === 'work' }"
|
:class="{ active: active === 'work' }"
|
||||||
@click="switchTab('/pages/index/index', 'work')"
|
@click="switchTab('/pages/index/index', 'work')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'work' ? 'grid-fill' : 'grid'" :size="48" :color="active === 'work' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'work' ? 'grid-fill' : 'grid'" :size="48" :color="active === 'work' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'work' }">工作台</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'work' }">工作台</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
:class="{ active: active === 'profile' }"
|
:class="{ active: active === 'profile' }"
|
||||||
@click="switchTab('/pages/profile/index', 'profile')"
|
@click="switchTab('/pages/profile/index', 'profile')"
|
||||||
>
|
>
|
||||||
<u-icon :name="active === 'profile' ? 'account-fill' : 'account'" :size="48" :color="active === 'profile' ? '#4080ff' : '#999999'"></u-icon>
|
<u-icon :name="active === 'profile' ? 'account-fill' : 'account'" :size="48" :color="active === 'profile' ? '#4080ff' : '#e9e9e9'"></u-icon>
|
||||||
<text class="tab-text" :class="{ 'active-text': active === 'profile' }">我的</text>
|
<text class="tab-text" :class="{ 'active-text': active === 'profile' }">我的</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
1715
Cunkebao/package-lock.json
generated
1715
Cunkebao/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -16,13 +16,17 @@
|
|||||||
"author": "CunkeBao Team",
|
"author": "CunkeBao Team",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"uview-ui": "^2.0.31"
|
"uview-ui": "^2.0.38"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"sass": "^1.32.13",
|
"@dcloudio/uni-cli-i18n": "^2.0.2-4050620250311002",
|
||||||
"sass-loader": "^10.1.1",
|
"@dcloudio/uni-cli-shared": "^2.0.2-4050620250311002",
|
||||||
|
"@dcloudio/vue-cli-plugin-uni": "^2.0.2-4050620250311002",
|
||||||
|
"autoprefixer": "^9.8.8",
|
||||||
|
"postcss": "^7.0.39",
|
||||||
"postcss-comment": "^2.0.0",
|
"postcss-comment": "^2.0.0",
|
||||||
"postcss-import": "^14.0.2",
|
"postcss-import": "^12.0.1",
|
||||||
"autoprefixer": "^10.3.1"
|
"sass": "^1.86.0",
|
||||||
|
"sass-loader": "^10.5.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
{
|
{
|
||||||
"pages": [
|
"pages": [
|
||||||
|
{
|
||||||
|
"path": "pages/login/index",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTitleText": "登录"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -7,15 +14,6 @@
|
|||||||
"navigationBarTitleText": "首页"
|
"navigationBarTitleText": "首页"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "pages/login/index",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom",
|
|
||||||
"navigationBarTitleText": "登录",
|
|
||||||
"navigationBarBackgroundColor": "#ffffff",
|
|
||||||
"navigationBarTextStyle": "black"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "pages/profile/index",
|
"path": "pages/profile/index",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -23,22 +21,6 @@
|
|||||||
"navigationBarTitleText": "我的"
|
"navigationBarTitleText": "我的"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "pages/agreement/user",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "用户协议",
|
|
||||||
"navigationBarBackgroundColor": "#ffffff",
|
|
||||||
"navigationBarTextStyle": "black"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/agreement/privacy",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": "隐私政策",
|
|
||||||
"navigationBarBackgroundColor": "#ffffff",
|
|
||||||
"navigationBarTextStyle": "black"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "pages/scenarios/index",
|
"path": "pages/scenarios/index",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ export default {
|
|||||||
|
|
||||||
.date {
|
.date {
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #999999;
|
color: #e9e9e9;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 60rpx;
|
margin-bottom: 60rpx;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ export default {
|
|||||||
|
|
||||||
.date {
|
.date {
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #999999;
|
color: #e9e9e9;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 60rpx;
|
margin-bottom: 60rpx;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 25rpx 30rpx;
|
padding: 25rpx 30rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e9e9e9;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-size: 45rpx;
|
font-size: 45rpx;
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="login-container">
|
<view class="login-container">
|
||||||
<!-- 登录方式切换 -->
|
<!-- 登录方式切换 -->
|
||||||
<view class="tabs-container">
|
<u-tabs
|
||||||
<u-tabs
|
:list="tabsList"
|
||||||
:list="tabsList"
|
:current="current"
|
||||||
:current="current"
|
@change="handleTabChange"
|
||||||
@change="handleTabChange"
|
activeStyle="color: #4080ff; font-size: 36rpx"
|
||||||
activeStyle="color: #4080ff; font-weight: bold; font-size: 36rpx"
|
inactiveStyle="color: #e9e9e9; font-size: 36rpx"
|
||||||
inactiveStyle="color: #999999; font-size: 36rpx"
|
itemStyle="height: 96rpx; padding: 0 30rpx;"
|
||||||
itemStyle="height: 96rpx; padding: 0 30rpx;"
|
lineColor="#4080ff"
|
||||||
lineColor="#4080ff"
|
lineWidth="48rpx"
|
||||||
lineWidth="48rpx"
|
lineHeight="4rpx"
|
||||||
lineHeight="4rpx"
|
:itemWidth="500"
|
||||||
:itemWidth="300"
|
></u-tabs>
|
||||||
></u-tabs>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 提示文字 -->
|
<!-- 提示文字 -->
|
||||||
<view class="login-hint">
|
<view class="login-hint">
|
||||||
@@ -24,7 +22,7 @@
|
|||||||
<!-- 表单区域 -->
|
<!-- 表单区域 -->
|
||||||
<view class="login-form">
|
<view class="login-form">
|
||||||
<!-- 手机号输入 -->
|
<!-- 手机号输入 -->
|
||||||
<u-form-item>
|
<view class="input-box">
|
||||||
<u--input
|
<u--input
|
||||||
v-model="form.mobile"
|
v-model="form.mobile"
|
||||||
placeholder="+86手机号"
|
placeholder="+86手机号"
|
||||||
@@ -34,12 +32,12 @@
|
|||||||
type="number"
|
type="number"
|
||||||
maxlength="11"
|
maxlength="11"
|
||||||
border="none"
|
border="none"
|
||||||
fontSize="36rpx"
|
fontSize="30rpx"
|
||||||
></u--input>
|
></u--input>
|
||||||
</u-form-item>
|
</view>
|
||||||
|
|
||||||
<!-- 验证码输入 -->
|
<!-- 验证码输入 -->
|
||||||
<u-form-item v-if="current === 0">
|
<view v-if="current === 0" class="input-box code-box">
|
||||||
<u--input
|
<u--input
|
||||||
v-model="form.code"
|
v-model="form.code"
|
||||||
placeholder="验证码"
|
placeholder="验证码"
|
||||||
@@ -48,43 +46,33 @@
|
|||||||
maxlength="6"
|
maxlength="6"
|
||||||
border="none"
|
border="none"
|
||||||
inputAlign="left"
|
inputAlign="left"
|
||||||
fontSize="36rpx"
|
fontSize="30rpx"
|
||||||
></u--input>
|
></u--input>
|
||||||
<template #right>
|
<view class="code-btn-wrap">
|
||||||
<view class="code-btn-wrap">
|
<u-button
|
||||||
<u-button
|
@tap="getCode"
|
||||||
@tap="getCode"
|
:text="codeTips"
|
||||||
:text="codeTips"
|
type="primary"
|
||||||
type="primary"
|
size="mini"
|
||||||
size="mini"
|
:disabled="!isValidMobile || sending"
|
||||||
:disabled="!isValidMobile || sending"
|
customStyle="width: 180rpx;height: 68rpx;font-size: 28rpx;"
|
||||||
customStyle="width: 200rpx;height: 76rpx;font-size: 32rpx;"
|
></u-button>
|
||||||
></u-button>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
|
||||||
</u-form-item>
|
|
||||||
|
|
||||||
<!-- 密码输入 -->
|
<!-- 密码输入 -->
|
||||||
<u-form-item v-if="current === 1">
|
<view v-if="current === 1" class="input-box">
|
||||||
<u--input
|
<u--input
|
||||||
v-model="form.password"
|
v-model="form.password"
|
||||||
placeholder="密码"
|
placeholder="密码"
|
||||||
prefixIcon="lock"
|
|
||||||
prefixIconStyle="font-size: 52rpx;color: #909399;padding-right: 16rpx;"
|
|
||||||
:password="!showPassword"
|
:password="!showPassword"
|
||||||
clearable
|
clearable
|
||||||
border="none"
|
border="none"
|
||||||
fontSize="36rpx"
|
fontSize="30rpx"
|
||||||
|
suffixIcon="eye"
|
||||||
|
@clickSuffixIcon="showPassword = !showPassword"
|
||||||
></u--input>
|
></u--input>
|
||||||
<template #right>
|
</view>
|
||||||
<u-icon
|
|
||||||
:name="showPassword ? 'eye' : 'eye-off'"
|
|
||||||
color="#909399"
|
|
||||||
size="52"
|
|
||||||
@click="showPassword = !showPassword"
|
|
||||||
></u-icon>
|
|
||||||
</template>
|
|
||||||
</u-form-item>
|
|
||||||
|
|
||||||
<!-- 用户协议 -->
|
<!-- 用户协议 -->
|
||||||
<view class="agreement">
|
<view class="agreement">
|
||||||
@@ -92,23 +80,22 @@
|
|||||||
v-model="isAgree"
|
v-model="isAgree"
|
||||||
shape="circle"
|
shape="circle"
|
||||||
activeColor="#4080ff"
|
activeColor="#4080ff"
|
||||||
iconSize="24"
|
iconSize="48"
|
||||||
></u-checkbox>
|
></u-checkbox>
|
||||||
<text class="agreement-text">
|
<text class="agreement-text">
|
||||||
已阅读并同意
|
已阅读并同意
|
||||||
<text class="link" @click="goToUserAgreement"> 用户协议 </text>
|
<text class="link" @click="goToUserAgreement">用户协议</text>
|
||||||
与
|
与
|
||||||
<text class="link" @click="goToPrivacyPolicy"> 隐私政策 </text>
|
<text class="link" @click="goToPrivacyPolicy">隐私政策</text>
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 登录按钮 -->
|
<!-- 登录按钮 -->
|
||||||
<u-button
|
<u-button
|
||||||
text="登录"
|
text="登录"
|
||||||
type="info"
|
type="primary"
|
||||||
:disabled="!canLogin"
|
|
||||||
@click="handleLogin"
|
@click="handleLogin"
|
||||||
customStyle="width: 100%; margin-top: 40rpx; height: 96rpx; border-radius: 24rpx; font-size: 40rpx; font-weight: bold; background-color: #2563eb;"
|
customStyle="width: 100%; margin-top: 40rpx; height: 96rpx; border-radius: 24rpx; font-size: 70rpx;"
|
||||||
></u-button>
|
></u-button>
|
||||||
|
|
||||||
<!-- 分割线 -->
|
<!-- 分割线 -->
|
||||||
@@ -121,26 +108,16 @@
|
|||||||
<!-- 第三方登录 -->
|
<!-- 第三方登录 -->
|
||||||
<view class="other-login">
|
<view class="other-login">
|
||||||
<!-- 微信登录 -->
|
<!-- 微信登录 -->
|
||||||
<u-button
|
<button class="wechat-btn" @click="handleWechatLogin">
|
||||||
text="使用微信登录"
|
<u-icon name="weixin-fill" size="56" color="#07c160" class="wechat-icon"></u-icon>
|
||||||
@click="handleWechatLogin"
|
<text>使用微信登录</text>
|
||||||
icon="weixin-fill"
|
</button>
|
||||||
iconSize="52"
|
|
||||||
plain
|
|
||||||
customStyle="width: 100%; margin-bottom: 20rpx; height: 96rpx; border-radius: 24rpx; border-color: #07c160; color: #07c160; font-size: 40rpx;"
|
|
||||||
></u-button>
|
|
||||||
|
|
||||||
<!-- Apple登录 -->
|
<!-- Apple登录 -->
|
||||||
<u-button
|
<button class="apple-btn" @click="handleAppleLogin">
|
||||||
text="使用 Apple 登录"
|
<u-icon name="apple-fill" size="56" color="#333333" class="apple-icon"></u-icon>
|
||||||
@click="handleAppleLogin"
|
<text>使用 Apple 登录</text>
|
||||||
plain
|
</button>
|
||||||
customStyle="width: 100%; margin-bottom: 20rpx; height: 96rpx; border-radius: 24rpx; border-color: #333333; color: #333333; font-size: 40rpx;"
|
|
||||||
>
|
|
||||||
<template #icon>
|
|
||||||
<image src="/static/images/apple.png" class="apple-icon"></image>
|
|
||||||
</template>
|
|
||||||
</u-button>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 联系我们 -->
|
<!-- 联系我们 -->
|
||||||
@@ -154,214 +131,78 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
tabsList: [
|
tabsList: [
|
||||||
{
|
{ name: '验证码登录' },
|
||||||
name: '验证码登录'
|
{ name: '密码登录' }
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '密码登录'
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
current: 0, // 当前选中的选项卡索引
|
current: 0,
|
||||||
form: {
|
form: {
|
||||||
mobile: '',
|
mobile: '',
|
||||||
password: '',
|
code: '',
|
||||||
code: ''
|
password: ''
|
||||||
},
|
},
|
||||||
showPassword: false, // 是否显示密码
|
showPassword: false,
|
||||||
isAgree: false, // 是否同意协议
|
isAgree: false,
|
||||||
sending: false, // 是否正在发送验证码
|
sending: false,
|
||||||
codeTips: '发送验证码' // 验证码按钮文字
|
codeTips: '发送验证码'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 手机号是否有效
|
|
||||||
isValidMobile() {
|
isValidMobile() {
|
||||||
return /^1\d{10}$/.test(this.form.mobile);
|
return /^1\d{10}$/.test(this.form.mobile)
|
||||||
},
|
},
|
||||||
// 是否可以登录
|
|
||||||
canLogin() {
|
canLogin() {
|
||||||
if (!this.isAgree || !this.isValidMobile) return false;
|
if (!this.isAgree || !this.isValidMobile) return false
|
||||||
|
return this.current === 0 ? !!this.form.code : !!this.form.password
|
||||||
if (this.current === 1) {
|
|
||||||
return !!this.form.password;
|
|
||||||
} else {
|
|
||||||
return !!this.form.code;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 处理选项卡切换
|
|
||||||
handleTabChange(index) {
|
handleTabChange(index) {
|
||||||
this.current = index;
|
this.current = index
|
||||||
},
|
},
|
||||||
|
|
||||||
// 处理登录
|
|
||||||
handleLogin() {
|
|
||||||
if (!this.canLogin) return;
|
|
||||||
|
|
||||||
if (this.current === 1) {
|
|
||||||
this.passwordLogin();
|
|
||||||
} else {
|
|
||||||
this.codeLogin();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 密码登录
|
|
||||||
passwordLogin() {
|
|
||||||
uni.showLoading({
|
|
||||||
title: '登录中...'
|
|
||||||
});
|
|
||||||
|
|
||||||
// 这里替换为实际的登录API调用
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.hideLoading();
|
|
||||||
uni.showToast({
|
|
||||||
title: '登录成功',
|
|
||||||
icon: 'success'
|
|
||||||
});
|
|
||||||
// 登录成功后跳转到个人中心页面
|
|
||||||
uni.switchTab({
|
|
||||||
url: '/pages/profile/index'
|
|
||||||
});
|
|
||||||
}, 1500);
|
|
||||||
},
|
|
||||||
|
|
||||||
// 验证码登录
|
|
||||||
codeLogin() {
|
|
||||||
uni.showLoading({
|
|
||||||
title: '登录中...'
|
|
||||||
});
|
|
||||||
|
|
||||||
// 这里替换为实际的登录API调用
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.hideLoading();
|
|
||||||
uni.showToast({
|
|
||||||
title: '登录成功',
|
|
||||||
icon: 'success'
|
|
||||||
});
|
|
||||||
// 登录成功后跳转到个人中心页面
|
|
||||||
uni.switchTab({
|
|
||||||
url: '/pages/profile/index'
|
|
||||||
});
|
|
||||||
}, 1500);
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取验证码
|
|
||||||
getCode() {
|
getCode() {
|
||||||
if (this.sending) return;
|
if (this.sending || !this.isValidMobile) return
|
||||||
|
this.sending = true
|
||||||
// 验证手机号
|
this.codeTips = '60s'
|
||||||
if (!this.isValidMobile) {
|
let seconds = 60
|
||||||
uni.showToast({
|
|
||||||
title: '请输入正确的手机号',
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
uni.showLoading({
|
|
||||||
title: '发送中...'
|
|
||||||
});
|
|
||||||
|
|
||||||
this.sending = true;
|
|
||||||
this.codeTips = '60s';
|
|
||||||
|
|
||||||
let secondsLeft = 60;
|
|
||||||
const timer = setInterval(() => {
|
const timer = setInterval(() => {
|
||||||
secondsLeft--;
|
seconds--
|
||||||
this.codeTips = `${secondsLeft}s`;
|
this.codeTips = `${seconds}s`
|
||||||
|
if (seconds <= 0) {
|
||||||
if (secondsLeft <= 0) {
|
clearInterval(timer)
|
||||||
clearInterval(timer);
|
this.sending = false
|
||||||
this.sending = false;
|
this.codeTips = '发送验证码'
|
||||||
this.codeTips = '发送验证码';
|
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000)
|
||||||
|
},
|
||||||
// 这里替换为实际的发送验证码API调用
|
handleLogin() {
|
||||||
setTimeout(() => {
|
if (!this.canLogin) return
|
||||||
uni.hideLoading();
|
uni.showToast({
|
||||||
uni.showToast({
|
title: '登录成功',
|
||||||
title: '验证码已发送',
|
icon: 'success'
|
||||||
icon: 'success'
|
})
|
||||||
});
|
|
||||||
}, 1000);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 微信登录
|
|
||||||
handleWechatLogin() {
|
handleWechatLogin() {
|
||||||
// #ifdef MP-WEIXIN
|
console.log('微信登录')
|
||||||
uni.login({
|
|
||||||
provider: 'weixin',
|
|
||||||
success: (res) => {
|
|
||||||
console.log('微信登录成功', res);
|
|
||||||
// 获取用户信息
|
|
||||||
uni.getUserInfo({
|
|
||||||
provider: 'weixin',
|
|
||||||
success: (infoRes) => {
|
|
||||||
console.log('获取用户信息成功', infoRes);
|
|
||||||
// 处理登录逻辑
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
fail: (err) => {
|
|
||||||
console.error('微信登录失败', err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// #ifdef H5 || APP-PLUS
|
|
||||||
uni.showToast({
|
|
||||||
title: '请在微信中打开',
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
// #endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Apple登录
|
|
||||||
handleAppleLogin() {
|
handleAppleLogin() {
|
||||||
// #ifdef APP-PLUS
|
console.log('Apple登录')
|
||||||
uni.login({
|
|
||||||
provider: 'apple',
|
|
||||||
success: (res) => {
|
|
||||||
console.log('Apple登录成功', res);
|
|
||||||
// 处理登录逻辑
|
|
||||||
},
|
|
||||||
fail: (err) => {
|
|
||||||
console.error('Apple登录失败', err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// #ifdef H5 || MP-WEIXIN
|
|
||||||
uni.showToast({
|
|
||||||
title: '请在iOS设备上使用',
|
|
||||||
icon: 'none'
|
|
||||||
});
|
|
||||||
// #endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 前往用户协议
|
|
||||||
goToUserAgreement() {
|
goToUserAgreement() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages/agreement/user'
|
url: '/pages/agreement/user'
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
// 前往隐私政策
|
|
||||||
goToPrivacyPolicy() {
|
goToPrivacyPolicy() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pages/agreement/privacy'
|
url: '/pages/agreement/privacy'
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
// 联系我们
|
|
||||||
handleContact() {
|
handleContact() {
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '联系我们',
|
title: '联系我们',
|
||||||
content: '客服电话:400-123-4567\n工作时间:9:00-18:00',
|
content: '客服电话:400-xxx-xxxx',
|
||||||
showCancel: false
|
showCancel: false
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -369,30 +210,52 @@ export default {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.login-container {
|
.login-container {
|
||||||
padding: 40rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
background-color: #ffffff;
|
||||||
|
padding: 0 40rpx;
|
||||||
.tabs-container {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-hint {
|
.login-hint {
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
color: #999999;
|
|
||||||
margin: 30rpx 0 60rpx;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
margin: 30rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-form {
|
.login-form {
|
||||||
.u-form-item {
|
margin-top: 40rpx;
|
||||||
|
|
||||||
|
.input-box {
|
||||||
|
height: 96rpx;
|
||||||
|
border: 2rpx solid #e9e9e9;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 0 24rpx;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.u-form-item {
|
||||||
|
flex: 1;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.code-btn-wrap {
|
.code-box {
|
||||||
margin-left: 20rpx;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-right: 12rpx;
|
||||||
|
|
||||||
|
.u--input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-btn-wrap {
|
||||||
|
margin-left: 12rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
|
||||||
|
.u-button {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -402,13 +265,14 @@ export default {
|
|||||||
margin: 40rpx 0;
|
margin: 40rpx 0;
|
||||||
|
|
||||||
.agreement-text {
|
.agreement-text {
|
||||||
font-size: 32rpx;
|
font-size: 28rpx;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
margin-left: 12rpx;
|
margin-left: 12rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
color: $primary-color;
|
color: #4080ff;
|
||||||
|
margin: 0 8rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,27 +283,57 @@ export default {
|
|||||||
|
|
||||||
.line {
|
.line {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
height: 2px;
|
height: 2rpx;
|
||||||
background-color: #eeeeee;
|
background-color: #eeeeee;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
color: #999999;
|
color: #999999;
|
||||||
padding: 0 30rpx;
|
padding: 0 30rpx;
|
||||||
font-size: 32rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.apple-icon {
|
.other-login {
|
||||||
width: 52rpx;
|
.wechat-btn, .apple-btn {
|
||||||
height: 52rpx;
|
display: flex;
|
||||||
margin-right: 16rpx;
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 96rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border: 2rpx solid #dddddd;
|
||||||
|
|
||||||
|
text {
|
||||||
|
color: #333333;
|
||||||
|
margin-left: 16rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wechat-btn {
|
||||||
|
text {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.apple-btn {
|
||||||
|
text {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-us {
|
.contact-us {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 32rpx;
|
font-size: 28rpx;
|
||||||
color: #666666;
|
color: #999999;
|
||||||
margin-top: 60rpx;
|
margin-top: 60rpx;
|
||||||
|
padding-bottom: 40rpx;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -170,7 +170,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 25rpx 30rpx;
|
padding: 25rpx 30rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e9e9e9;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -264,7 +264,7 @@ export default {
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 30rpx 40rpx;
|
padding: 30rpx 40rpx;
|
||||||
border-bottom: 2rpx solid #e5e5e5;
|
border-bottom: 2rpx solid #e9e9e9;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 25rpx 30rpx;
|
padding: 25rpx 30rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-bottom: 1px solid #e5e5e5;
|
border-bottom: 1px solid #e9e9e9;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
<!-- SVG 占位符,需要替换为实际的 Apple 图标 -->
|
<!-- SVG 占位符,需要替换为实际的 Apple 图标 -->
|
||||||
<!-- 这是一个占位文件,实际应该放置 png 格式的 Apple 图标 -->
|
<!-- 这是一个占位文件,实际应该放置 png 格式的 Apple 图标 -->
|
||||||
|
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF0WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzEzLTIyOjAxOjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMjNUMTU6NDc6MjgrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDMtMjNUMTU6NDc6MjgrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTAzLTIzVDE1OjQ3OjI4KzA4OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5OWIyZjI5LTM4ZTAtNDY4ZC1hMzA0LTNmOGQ2NjQ5MzM4YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY5OWIyZjI5LTM4ZTAtNDY4ZC1hMzA0LTNmOGQ2NjQ5MzM4YyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY5OWIyZjI5LTM4ZTAtNDY4ZC1hMzA0LTNmOGQ2NjQ5MzM4YyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5OWIyZjI5LTM4ZTAtNDY4ZC1hMzA0LTNmOGQ2NjQ5MzM4YyIgc3RFdnQ6d2hlbj0iMjAyMy0wMy0yM1QxNTo0NzoyOCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQQAAAAsAAAAABAAEAAAAkCcfwCAGQaicDjrIO9zKvRHcd0HjuNZoueZpurnLlr2vSr3TpzneY7jeMrxnGdZ1jOtZ3rW9bzvfOcb5znfO+d5CQA7
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="8" cy="8" r="6.5" stroke="#999999" stroke-width="1.5" stroke-dasharray="1 2"/>
|
<circle cx="8" cy="8" r="6.5" stroke="#e9e9e9" stroke-width="1.5" stroke-dasharray="1 2"/>
|
||||||
<circle cx="8" cy="8" r="2" fill="#999999"/>
|
<circle cx="8" cy="8" r="2" fill="#e9e9e9"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 282 B |
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="12" cy="8" r="4" stroke="#999999" stroke-width="1.5" fill="none"/>
|
<circle cx="12" cy="8" r="4" stroke="#e9e9e9" stroke-width="1.5" fill="none"/>
|
||||||
<path d="M6 20C6 16.6863 8.68629 14 12 14C15.3137 14 18 16.6863 18 20"
|
<path d="M6 20C6 16.6863 8.68629 14 12 14C15.3137 14 18 16.6863 18 20"
|
||||||
stroke="#999999"
|
stroke="#e9e9e9"
|
||||||
stroke-width="1.5"
|
stroke-width="1.5"
|
||||||
stroke-linecap="round"/>
|
stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 384 B After Width: | Height: | Size: 384 B |
1
Cunkebao/static/images/wechat.png
Normal file
1
Cunkebao/static/images/wechat.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGsWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzEzLTIyOjAxOjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDMtMjNUMTU6NDc6MjgrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMDMtMjNUMTU6NDc6MjgrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTAzLTIzVDE1OjQ3OjI4KzA4OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5OWIyZjI5LTM4ZTAtNDY4ZC1hMzA0LTNmOGQ2NjQ5MzM4YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY5OWIyZjI5LTM4ZTAtNDY4ZC1h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
|
||||||
@@ -8,7 +8,7 @@ $info-color: #909399;
|
|||||||
/* 文字颜色 */
|
/* 文字颜色 */
|
||||||
$text-color-main: #333333;
|
$text-color-main: #333333;
|
||||||
$text-color-regular: #666666;
|
$text-color-regular: #666666;
|
||||||
$text-color-secondary: #999999;
|
$text-color-secondary: #e9e9e9;
|
||||||
$text-color-placeholder: #c0c4cc;
|
$text-color-placeholder: #c0c4cc;
|
||||||
$text-color-white: #ffffff;
|
$text-color-white: #ffffff;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user