登录页
|
|
@ -10,7 +10,7 @@ module.exports = {
|
|||
// 应用信息
|
||||
appInfo: {
|
||||
// 应用名称
|
||||
name: "gz_safety_app",
|
||||
name: "dining_hall_app",
|
||||
// 应用版本
|
||||
version: "1.1.0",
|
||||
// 应用logo
|
||||
|
|
|
|||
20
pages.json
|
|
@ -25,7 +25,7 @@
|
|||
{
|
||||
"path": "pages/work/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "工作台"
|
||||
"navigationBarTitleText": "订单"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -153,11 +153,23 @@
|
|||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/amendPassword",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/system",
|
||||
"style": {
|
||||
"navigationBarTitleText": "皖送e餐"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
"color": "#000000",
|
||||
"selectedColor": "#000000",
|
||||
"selectedColor": "#ED7234",
|
||||
"borderStyle": "white",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [
|
||||
|
|
@ -171,7 +183,7 @@
|
|||
"pagePath": "pages/work/index",
|
||||
"iconPath": "static/images/tabbar/work.png",
|
||||
"selectedIconPath": "static/images/tabbar/work_.png",
|
||||
"text": "工作台"
|
||||
"text": "订单"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/mine/index",
|
||||
|
|
@ -183,7 +195,7 @@
|
|||
},
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "贵州安全工机具",
|
||||
"navigationBarTitleText": "绿智食堂",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<template>
|
||||
<view>
|
||||
忘记密码
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
359
pages/login.vue
|
|
@ -1,18 +1,34 @@
|
|||
<template>
|
||||
<view class="normal-login-container">
|
||||
<view class="logo-content align-center justify-center flex">
|
||||
<image style="width: 100rpx;height: 100rpx;" :src="globalConfig.appInfo.logo" mode="widthFix">
|
||||
</image>
|
||||
<text class="title">若依移动端登录</text>
|
||||
</view>
|
||||
<div class="logo">
|
||||
<u-image src="../static/images/login/logo.jpg" width="120px" height="120px" />
|
||||
</div>
|
||||
<view class="login-form-content">
|
||||
<view class="input-item flex align-center">
|
||||
<view class="iconfont icon-user icon"></view>
|
||||
<input v-model="loginForm.username" class="input" type="text" placeholder="请输入账号" maxlength="30" />
|
||||
<view class="input-item">
|
||||
<div style="color: #777">手机号</div>
|
||||
<!-- <u-input
|
||||
v-model="loginForm.username"
|
||||
type="number"
|
||||
placeholder="请输入手机号"
|
||||
border="none"
|
||||
maxlength="11"
|
||||
></u-input> -->
|
||||
<u-input
|
||||
v-model="loginForm.username"
|
||||
placeholder="请输入手机号"
|
||||
border="none"
|
||||
maxlength="11"
|
||||
></u-input>
|
||||
</view>
|
||||
<view class="input-item flex align-center">
|
||||
<view class="iconfont icon-password icon"></view>
|
||||
<input v-model="loginForm.password" type="password" class="input" placeholder="请输入密码" maxlength="20" />
|
||||
<div style="color: #777">密码</div>
|
||||
<u-input
|
||||
v-model="loginForm.password"
|
||||
type="password"
|
||||
placeholder="请输入密码"
|
||||
border="none"
|
||||
maxlength="99"
|
||||
></u-input>
|
||||
</view>
|
||||
<!-- <view class="input-item flex align-center" style="width: 60%;margin: 0px;" v-if="captchaEnabled">
|
||||
<view class="iconfont icon-code icon"></view>
|
||||
|
|
@ -21,182 +37,225 @@
|
|||
<image :src="codeUrl" @click="getCode" class="login-code-img"></image>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- <u-radio-group v-model="remember" style="margin-bottom: 20px" @change="rememberPassword">
|
||||
<u-radio label="记住密码" :name="rememberName"></u-radio>
|
||||
</u-radio-group> -->
|
||||
<u-checkbox-group v-model="remember" shape="circle" @change="rememberPassword" style="margin-bottom: 20px">
|
||||
<u-checkbox label="记住密码" name="remember"></u-checkbox>
|
||||
</u-checkbox-group>
|
||||
<view class="action-btn">
|
||||
<button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">登录</button>
|
||||
<u-button text="登录" shape="circle" color="#FF6F25" size="small" @click="handleLogin"></u-button>
|
||||
<div class="forget" @click="amendPassword">忘记密码?去修改</div>
|
||||
</view>
|
||||
<view class="reg text-center" v-if="register">
|
||||
<!-- <view class="reg text-center" v-if="register">
|
||||
<text class="text-grey1">没有账号?</text>
|
||||
<text @click="handleUserRegister" class="text-blue">立即注册</text>
|
||||
</view>
|
||||
<view class="xieyi text-center">
|
||||
</view> -->
|
||||
<!-- <view class="xieyi text-center">
|
||||
<text class="text-grey1">登录即代表同意</text>
|
||||
<text @click="handleUserAgrement" class="text-blue">《用户协议》</text>
|
||||
<text @click="handlePrivacy" class="text-blue">《隐私协议》</text>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getCodeImg } from '@/api/login'
|
||||
import { getCodeImg } from '@/api/login'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
codeUrl: "",
|
||||
captchaEnabled: true,
|
||||
// 用户注册开关
|
||||
register: false,
|
||||
globalConfig: getApp().globalData.config,
|
||||
loginForm: {
|
||||
username: "bns", // admin - admin123
|
||||
password: "1769fb2837e10e9d22c1c25add76355a", // bns - 1769fb2837e10e9d22c1c25add76355a
|
||||
code: "",
|
||||
uuid: ''
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
codeUrl: '',
|
||||
captchaEnabled: true,
|
||||
// 用户注册开关
|
||||
register: false,
|
||||
globalConfig: getApp().globalData.config,
|
||||
loginForm: {
|
||||
username: uni.getStorageSync('remember') ? uni.getStorageSync('remember').username : 'bns', // 账号
|
||||
password: uni.getStorageSync('remember') ? uni.getStorageSync('remember').password : '1769fb2837e10e9d22c1c25add76355a', // 密码 1769fb2837e10e9d22c1c25add76355a', // bns - 1769fb2837e10e9d22c1c25add76355a
|
||||
code: '',
|
||||
uuid: ''
|
||||
},
|
||||
remember: uni.getStorageSync('remember') ? uni.getStorageSync('remember').remember : []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// this.getCode()
|
||||
},
|
||||
methods: {
|
||||
// 用户注册
|
||||
handleUserRegister() {
|
||||
this.$tab.redirectTo(`/pages/register`)
|
||||
},
|
||||
// 隐私协议
|
||||
handlePrivacy() {
|
||||
let site = this.globalConfig.appInfo.agreements[0]
|
||||
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
||||
},
|
||||
// 用户协议
|
||||
handleUserAgrement() {
|
||||
let site = this.globalConfig.appInfo.agreements[1]
|
||||
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
||||
},
|
||||
// 获取图形验证码
|
||||
getCode() {
|
||||
getCodeImg().then(res => {
|
||||
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
|
||||
if (this.captchaEnabled) {
|
||||
this.codeUrl = 'data:image/gif;base64,' + res.img
|
||||
this.loginForm.uuid = res.uuid
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
created() {
|
||||
// this.getCode()
|
||||
},
|
||||
methods: {
|
||||
// 用户注册
|
||||
handleUserRegister() {
|
||||
this.$tab.redirectTo(`/pages/register`)
|
||||
},
|
||||
// 隐私协议
|
||||
handlePrivacy() {
|
||||
let site = this.globalConfig.appInfo.agreements[0]
|
||||
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
||||
},
|
||||
// 用户协议
|
||||
handleUserAgrement() {
|
||||
let site = this.globalConfig.appInfo.agreements[1]
|
||||
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
||||
},
|
||||
// 获取图形验证码
|
||||
getCode() {
|
||||
getCodeImg().then(res => {
|
||||
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
|
||||
if (this.captchaEnabled) {
|
||||
this.codeUrl = 'data:image/gif;base64,' + res.img
|
||||
this.loginForm.uuid = res.uuid
|
||||
}
|
||||
})
|
||||
},
|
||||
// 登录方法
|
||||
async handleLogin() {
|
||||
if (this.loginForm.username === "") {
|
||||
this.$modal.msgError("请输入您的账号")
|
||||
} else if (this.loginForm.password === "") {
|
||||
this.$modal.msgError("请输入您的密码")
|
||||
// 登录方法
|
||||
async handleLogin() {
|
||||
if (this.loginForm.username === '') {
|
||||
this.$modal.msgError('请输入您的账号')
|
||||
} else if (this.loginForm.password === '') {
|
||||
this.$modal.msgError('请输入您的密码')
|
||||
// } else if (this.loginForm.code === "" && this.captchaEnabled) {
|
||||
// this.$modal.msgError("请输入验证码")
|
||||
} else {
|
||||
this.$modal.loading("登录中,请耐心等待...")
|
||||
this.pwdLogin()
|
||||
}
|
||||
},
|
||||
// 密码登录
|
||||
async pwdLogin() {
|
||||
this.$store.dispatch('Login', this.loginForm).then(() => {
|
||||
} else {
|
||||
this.$modal.loading('登录中,请耐心等待...')
|
||||
this.pwdLogin()
|
||||
}
|
||||
},
|
||||
// 密码登录
|
||||
async pwdLogin() {
|
||||
this.$store
|
||||
.dispatch('Login', this.loginForm)
|
||||
.then(() => {
|
||||
this.$modal.closeLoading() // 关闭加载框
|
||||
this.loginSuccess()
|
||||
}).catch(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
// if (this.captchaEnabled) {
|
||||
// this.getCode()
|
||||
// }
|
||||
})
|
||||
},
|
||||
// 登录成功后,处理函数
|
||||
loginSuccess(result) {
|
||||
// 设置用户信息
|
||||
this.$store.dispatch('GetInfo').then(res => {
|
||||
this.$tab.reLaunch('/pages/index')
|
||||
},
|
||||
// 登录成功后,处理函数
|
||||
loginSuccess(result) {
|
||||
// 设置用户信息
|
||||
this.$tab.reLaunch('/pages/system')
|
||||
// this.$store.dispatch('GetInfo').then(res => {
|
||||
// this.$tab.reLaunch('/pages/system2')
|
||||
// })
|
||||
},
|
||||
// 记住密码
|
||||
rememberPassword(e) {
|
||||
console.log(e)
|
||||
if (e.length > 0) {
|
||||
uni.setStorageSync('remember', {
|
||||
username: this.loginForm.username,
|
||||
password: this.loginForm.password,
|
||||
remember: e
|
||||
})
|
||||
} else {
|
||||
uni.removeStorageSync('remember')
|
||||
}
|
||||
},
|
||||
// 忘记密码
|
||||
amendPassword() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/amendPassword'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
page {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.normal-login-container {
|
||||
.logo {
|
||||
margin-top: 119px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.forget {
|
||||
margin-top: 20px;
|
||||
color: $u-primary;
|
||||
}
|
||||
|
||||
.normal-login-container {
|
||||
width: 100%;
|
||||
|
||||
.logo-content {
|
||||
width: 100%;
|
||||
font-size: 21px;
|
||||
text-align: center;
|
||||
padding-top: 15%;
|
||||
|
||||
.logo-content {
|
||||
width: 100%;
|
||||
font-size: 21px;
|
||||
text-align: center;
|
||||
padding-top: 15%;
|
||||
|
||||
image {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-left: 10px;
|
||||
}
|
||||
image {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.login-form-content {
|
||||
text-align: center;
|
||||
margin: 20px auto;
|
||||
margin-top: 15%;
|
||||
width: 80%;
|
||||
|
||||
.input-item {
|
||||
margin: 20px auto;
|
||||
background-color: #f5f6f7;
|
||||
height: 45px;
|
||||
border-radius: 20px;
|
||||
|
||||
.icon {
|
||||
font-size: 38rpx;
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.input {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
margin-top: 40px;
|
||||
height: 45px;
|
||||
}
|
||||
|
||||
.reg {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.xieyi {
|
||||
color: #333;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.login-code {
|
||||
height: 38px;
|
||||
float: right;
|
||||
|
||||
.login-code-img {
|
||||
height: 38px;
|
||||
position: absolute;
|
||||
margin-left: 10px;
|
||||
width: 200rpx;
|
||||
}
|
||||
}
|
||||
.title {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.login-form-content {
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
width: 80%;
|
||||
|
||||
.input-item {
|
||||
margin: 0 auto 20px;
|
||||
padding: 8px 15px;
|
||||
background-color: #f5f6f7;
|
||||
/* height: 45px; */
|
||||
border-radius: 3px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
|
||||
.icon {
|
||||
font-size: 38rpx;
|
||||
margin-left: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.input {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
padding-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
margin-top: 40px;
|
||||
height: 45px;
|
||||
}
|
||||
|
||||
.reg {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.xieyi {
|
||||
color: #333;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.login-code {
|
||||
height: 38px;
|
||||
float: right;
|
||||
|
||||
.login-code-img {
|
||||
height: 38px;
|
||||
position: absolute;
|
||||
margin-left: 10px;
|
||||
width: 200rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,68 @@
|
|||
<template>
|
||||
<view class="system">
|
||||
<div class="top-img">
|
||||
<u-image src="../static/images/system/top.png" width="351px" height="146px" />
|
||||
</div>
|
||||
<div class="cont-img">
|
||||
<div class="item" @click="handleItem(1)">
|
||||
<u-icon name="../static/images/system/1.png" size="38"></u-icon>
|
||||
<div>就餐服务</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<u-icon name="../static/images/system/2.png" size="38"></u-icon>
|
||||
<div>志愿者服务</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<u-icon name="../static/images/system/3.png" size="38"></u-icon>
|
||||
<div>驿站服务</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
methods: {
|
||||
handleItem(index) {
|
||||
if (index === 1) {
|
||||
this.$tab.reLaunch('/pages/index')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
min-height: 100vh;
|
||||
background-image: url("../static/images/system/bg.png");
|
||||
}
|
||||
.system {
|
||||
padding: 18px;
|
||||
.top-img {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.cont-img {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 15px;
|
||||
.item {
|
||||
padding: 15px 0;
|
||||
width: 109px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
div {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 718 B |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 784 B |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 431 B |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 339 B |