Commit 3caedc26 authored by linxin's avatar linxin

Merge branch 'liuxin' into develop

parents 7afcd28d 8848772d
...@@ -207,7 +207,7 @@ export default { ...@@ -207,7 +207,7 @@ export default {
let url = process.env.basePath + 'do_car_confirm' let url = process.env.basePath + 'do_car_confirm'
let param = { let param = {
master: { master: {
contract_id: '123', project_id: this.$route.params.project_id,
confirm_status: 'APPROVED', confirm_status: 'APPROVED',
}, },
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
:updateData="[showList]" :updateData="[showList]"
:pullUp="true" :pullUp="true"
> >
<div v-for="(item,index) in showList" :key="index" class="item" @click="changePage(item.project_id)"> <div v-for="(item,index) in showList" :key="index" class="item" @click="changePage(item)">
<div class="left"> <div class="left">
<span> <span>
<img src="@/assets/contractStart/icon.png" > <img src="@/assets/contractStart/icon.png" >
...@@ -107,7 +107,7 @@ export default { ...@@ -107,7 +107,7 @@ export default {
this.$router.push({ this.$router.push({
name: 'ConfirmDetail', name: 'ConfirmDetail',
params: { params: {
project_id: e, project_id: e.project_id,
}, },
}) })
}, },
......
<template> <template>
<scroll id="login" ref="scroll" class="content"> <scroll id="login" ref="scroll" class="content">
<div class="bird-icon"/> <div class="bird-icon" />
<div class="login-wrap"> <div class="login-wrap">
<img class="title" src="../assets/login/title.png" >
<div class="pwd"> <div class="pwd">
<div class="pwd-icon"><img src="../assets/login/user.png"></div> <div class="pwd-input">
<div class="pwd-input"><input v-model="username" type="text" placeholder="请输入用户名/手机号"></div> <input v-model="username" class="user" type="text" placeholder="请输入用户名/手机号" >
<div v-if="username" class="delete" @click="clearAccount"><img src="../assets/login/delete.png"></div> </div>
<div v-if="username" class="delete" @click="clearAccount">
<img src="../assets/login/login-delete.png" >
</div>
</div> </div>
<div class="pwd"> <div class="pwd">
<div class="pwd-icon"><img src="../assets/login/password.png"></div> <div class="pwd-input">
<div class="pwd-input"><input id="passwordInput" v-model="password" :type="pwdType" placeholder="请输入密码"></div> <input id="passwordInput" v-model="password" :type="pwdType" placeholder="请输入密码" >
<div v-if="password" class="delete" @click="changeType"><img :src="openEye"></div> </div>
<div v-if="password" class="delete" @click="changeType">
<img :src="openEye" >
</div>
</div> </div>
<div class="button submit" @click="access">登录</div>
<div class="other-function"> <div class="other-function">
<div class="register" @click="registerNew">注册</div> <div class="register" @click="registerNew">注册</div>
<div class="pwd-forgotten" @click="pwdForgotten">忘记密码?</div> <div class="pwd-forgotten" @click="pwdForgotten">忘记密码?</div>
</div> </div>
<div class="button submit" @click="access">登录</div>
</div> </div>
</scroll> </scroll>
</template> </template>
...@@ -28,8 +34,10 @@ export default { ...@@ -28,8 +34,10 @@ export default {
data () { data () {
return { return {
pwdType: 'password', // 密码类型 pwdType: 'password', // 密码类型
openEye: require('@/assets/login/passNoShow.png'), // 图片地址 openEye: require('@/assets/login/pwd.png'), // 图片地址
username: window.localStorage.username ? window.localStorage.username : '', username: window.localStorage.username
? window.localStorage.username
: '',
password: '', password: '',
version: process.env.currentVersion, version: process.env.currentVersion,
routeName: this.$route.params.routeName || '', routeName: this.$route.params.routeName || '',
...@@ -42,19 +50,23 @@ export default { ...@@ -42,19 +50,23 @@ export default {
}, },
methods: { methods: {
changeType () { changeType () {
this.pwdType = this.pwdType === 'password' ? 'text' : 'password' this.pwdType = this.pwdType === 'password' ? 'text' : 'password';
this.openEye = this.pwdType === 'password' ? require('@/assets/login/passNoShow.png') : require('@/assets/login/passShow.png') this.openEye =
this.pwdType === 'password'
? require('@/assets/login/passNoShow.png')
: require('@/assets/login/passShow.png')
}, },
login: function () { login: function () {
let vm = this let vm = this
// vm.password = CryptoJS.MD5(vm.password).toString().toUpperCase(); // vm.password = CryptoJS.MD5(vm.password).toString().toUpperCase();
let md5passwprd = CryptoJS.MD5(vm.password).toString().toUpperCase() let md5passwprd = CryptoJS.MD5(vm.password)
.toString()
.toUpperCase()
let param = { let param = {
'phone': vm.username, phone: vm.username,
'password': md5passwprd, password: md5passwprd,
} }
vm.$post(process.env.basePath + 'app_login', param) vm.$post(process.env.basePath + 'app_login', param).then(function (res) {
.then(function (res) {
if (res.result === 'S' && res.info.login_flag === 'Y') { if (res.result === 'S' && res.info.login_flag === 'Y') {
vm.hlsPopup.hideLoading() vm.hlsPopup.hideLoading()
window.localStorage.setItem('user_phone', vm.username) window.localStorage.setItem('user_phone', vm.username)
...@@ -88,7 +100,7 @@ export default { ...@@ -88,7 +100,7 @@ export default {
} else if (!vm.password || vm.password === undefined) { } else if (!vm.password || vm.password === undefined) {
vm.hlsPopup.showLongCenter('请输入密码') vm.hlsPopup.showLongCenter('请输入密码')
} else { } else {
let url = process.env.loginPath + 'admin' let url = process.env.loginPath + 'admin';
let param = {} let param = {}
vm.hlsPopup.showLoading('请稍等') vm.hlsPopup.showLoading('请稍等')
vm.$post(url, param).then(function (res) { vm.$post(url, param).then(function (res) {
...@@ -105,42 +117,55 @@ export default { ...@@ -105,42 +117,55 @@ export default {
this.$router.push('pwd-forgot') this.$router.push('pwd-forgot')
}, },
clearAccount: function () { clearAccount: function () {
this.username = '' this.username = '';
this.password = '' this.password = '';
}, },
clearPassword: function () { clearPassword: function () {
this.password = '' this.password = '';
}, },
}, },
} }
</script> </script>
<style lang="less" scoped type="text/less"> <style lang="less" scoped type="text/less">
#login { #login {
background: url("../assets/login/bg@2x.png") no-repeat; background: url("../assets/login/back.png") no-repeat;
background-size: cover; background-size: 100% 100%;
background-position-x: 0px; background-position-x: 0px;
color: #FFFFFF; color: #ffffff;
width: 100%; width: 100%;
height: 100%; height: 100%;
margin: 0 auto; margin: 0 auto;
.scrollContent{ .scrollContent {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.bird-icon{ .bird-icon {
padding-top: 20%; padding-top: 30%;
background: url("../assets/login/right.png") 90% no-repeat;
background-size: 51px 25px;
}
.login-wrap {
width: 87%;
height: 355px;
margin: 0 auto;
background-color: #fff;
border-radius: 8px;
margin-top: 15%;
padding: 32px 24px;
.title {
width: 227px;
height: 71px;
margin-left: -10px;
} }
.login-wrap{
width: 100%;
margin-top: 60%;
} }
.pwd { .pwd {
border-bottom: 1px solid #5D98F6; position: relative;
width: 279px;
margin: 0 auto;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
margin: 5% 0 5% 14%;
.pwd-icon { .pwd-icon {
margin-top: 2px; margin-top: 2px;
margin-right: 6px; margin-right: 6px;
...@@ -151,61 +176,69 @@ export default { ...@@ -151,61 +176,69 @@ export default {
} }
} }
.pwd-input { .pwd-input {
margin-left: 4%;
width: 100%; width: 100%;
margin-bottom: 10px; .user {
display: flex; background: url("../assets/login/phone.png") 2px 2px no-repeat;
display: -webkit-flex; background-size: 25px 25px;
align-items: center; }
-webkit-align-items: center; #passwordInput {
// background-color: #0057C3 !important; background: url("../assets/login/passwordConfirm.png") 2px 2px no-repeat;
background-size: 25px 25px;
}
input { input {
width: 100%; width: 100%;
height: 100%; text-indent: 30px;
font-size: 16px; font-family: PingFangSC-Regular;
color: #fff; font-size: 14px;
line-height: 22px; color: #2a2a2a;
background-color: rgba(0,87,195,0) !important; height: 35px;
display: flex;
align-items: center;
border-bottom: 1px solid rgba(42, 42, 42, 0.4);
margin-top: 30px;
}
input:focus {
border-bottom: 1px solid #1d3fff;
} }
input::-webkit-input-placeholder { input::-webkit-input-placeholder {
font-size: 16px; font-family: PingFangSC-Regular;
color: #CDD1D3; font-size: 14px;
color: rgba(75, 74, 75, 0.4);
} }
} }
.delete { .delete {
position: absolute;
right: -15px;
top: 30px;
img { img {
margin-right: 20px; margin-right: 20px;
margin-top: 5px; margin-top: 5px;
width: 14px; width: 20px;
height: 14px; // height: 14px;
} }
} }
} }
.other-function { .other-function {
width: 64%; width: 279px;
margin: 0 auto;
display: flex; display: flex;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #1d3fff;
margin-top: 8px;
font-weight: 500;
display: -webkit-flex; display: -webkit-flex;
justify-content: space-between; justify-content: space-between;
-webkit-justify-content: space-between; -webkit-justify-content: space-between;
margin: 0 0 0 23%;
.register {
color: #FDFDFD;
font-size: 15px;
}
.pwd-forgotten {
color: #FDFDFD;
font-size: 15px;
}
} }
.submit { .submit {
background: #1d3fff;
opacity: 1; border-radius: 4px;
background: #FDFDFD; width: 279px;
border-radius: 8px 0 0 8px; margin-top: 32px;
height: 50px; height: 49px;
margin: 10% 0 6% 14%; font-size: 16px;
font-size:16px; color: #fff;
color: #000000;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: center; justify-content: center;
...@@ -215,8 +248,8 @@ export default { ...@@ -215,8 +248,8 @@ export default {
&.activated { &.activated {
opacity: 0.8; opacity: 0.8;
-webkit-transform: scale(1, 1); -webkit-transform: scale(1, 1);
transform: scale(1, 1) transform: scale(1, 1);
}
} }
} }
}
</style> </style>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</template> </template>
<script> <script>
var CryptoJS = require('crypto-js') var CryptoJS = require('crypto-js')
export default { export default {
data () { data () {
return { return {
...@@ -167,7 +167,7 @@ export default { ...@@ -167,7 +167,7 @@ export default {
let md5passwprd = CryptoJS.MD5(vm.user_password).toString().toUpperCase() let md5passwprd = CryptoJS.MD5(vm.user_password).toString().toUpperCase()
let params = { let params = {
phone: vm.phone_number, phone: vm.phone_number,
password: md5passwprd password: md5passwprd,
} }
hlsHttp.post(url, params).then(function (res) { hlsHttp.post(url, params).then(function (res) {
if (res.result === 'S') { if (res.result === 'S') {
......
...@@ -2,44 +2,49 @@ ...@@ -2,44 +2,49 @@
<h-view id="register" class="public-style"> <h-view id="register" class="public-style">
<h-content> <h-content>
<div class="right-logo"> <div class="right-logo">
<img src="@/assets/login/registerLogo.png"> <img src="@/assets/login/return.png" @click="returnLogin">
<img src="@/assets/login/right.png" >
</div> </div>
<div class="register-title"> <div class="box">
<img src="@/assets/login/registerTitle.png"> <div class="box-content">
</div> <img class="register-title" src="../assets/login/reg-logo.png" >
<list-item> <div class="reg-item">
<item :proportion="[0,4]" :item-height="64"> <img src="../assets/login/reg-user.png" class="left-icon" >
<img slot="left-icon" src="../assets/login/phone.png" class="left-icon"> <input v-model="phone_number" placeholder="请输入手机号码" >
<input slot="content" v-model="phone_number" placeholder="请输入手机号码">
<img <img
v-if="phone_number" slot="right-icon" class="right-icon" src="@/assets/login/registerDelete.png" v-if="phone_number"
@click="clearAccount"> class="right-icon"
</item> src="@/assets/login/reg-de.png"
<item :proportion="[0,4]" :item-height="64"> @click="clearAccount"
<img slot="left-icon" src="../assets/login/phone_code.png" class="left-icon"> >
<input slot="content" v-model="verifiedCode" type="text" placeholder="请填写验证码"> </div>
<div slot="right-icon" class="verified-code"> <div class="reg-item">
<img src="../assets/login/check.png" class="left-icon" >
<input v-model="verifiedCode" type="text" placeholder="请填写验证码" >
<div class="verified-code">
<div v-if="!showTimer" class="verified-code-box" @click="getPhoneCode">点击获取</div> <div v-if="!showTimer" class="verified-code-box" @click="getPhoneCode">点击获取</div>
<span v-if="showTimer" class="verified-code-des">{{ timerCount }}{{ text }}</span> <span v-if="showTimer" class="verified-code-des">{{ timerCount }}{{ text }}</span>
</div> </div>
</item> </div>
<item :proportion="[0,4]" :item-height="64"> <div class="reg-item">
<img slot="left-icon" src="../assets/login/passwordConfirm.png" class="left-icon"> <img src="../assets/login/pass.png" class="left-icon" >
<input
slot="content" v-model="user_password" :type="pwdType" placeholder="请输入6~20位密码"
maxlength="20" @blur="passwordCheck">
<img v-if="user_password" slot="right-icon" :src="openEye" class="right-icon" @click="changeType">
</item>
<item :proportion="[0,4]" :item-height="64">
<img slot="left-icon" src="../assets/login/passwordConfirm.png" class="left-icon">
<input <input
slot="content" v-model="confirm" :type="pwdType" placeholder="请重新输入密码" v-model="user_password"
@blur="confirmCheck"> :type="pwdType"
<img v-if="confirm" slot="right-icon" :src="openEye" class="right-icon" @click="changeType"> placeholder="请输入6~20位密码"
</item> maxlength="20"
</list-item> @blur="passwordCheck"
>
<img v-if="user_password" :src="openEye" class="right-icon" @click="changeType" >
</div>
<div class="reg-item">
<img src="../assets/login/pass.png" class="left-icon" >
<input v-model="confirm" :type="pwdType" placeholder="请重新输入密码" @blur="confirmCheck" >
<img v-if="confirm" :src="openEye" class="right-icon" @click="changeType" >
</div>
<div class="button submit" @click="submit">注册</div> <div class="button submit" @click="submit">注册</div>
<div class="button return" @click="returnLogin">返回</div> </div>
</div>
</h-content> </h-content>
</h-view> </h-view>
</template> </template>
...@@ -50,7 +55,7 @@ export default { ...@@ -50,7 +55,7 @@ export default {
data () { data () {
return { return {
pwdType: 'password', // 密码类型 pwdType: 'password', // 密码类型
openEye: require('@/assets/login/registerNoshow.png'), // 图片地址 openEye: require('@/assets/login/passNoShow.png'), // 图片地址
phone_number: '', phone_number: '',
verifiedCode: '', verifiedCode: '',
user_password: '', user_password: '',
...@@ -111,19 +116,28 @@ export default { ...@@ -111,19 +116,28 @@ export default {
}, },
changeType () { changeType () {
this.pwdType = this.pwdType === 'password' ? 'text' : 'password' this.pwdType = this.pwdType === 'password' ? 'text' : 'password'
this.openEye = this.pwdType === 'password' ? require('@/assets/login/registerNoshow.png') : require('@/assets/login/registerShow.png') this.openEye =
this.pwdType === 'password'
? require('@/assets/login/passNoShow.png')
: require('@/assets/login/passShow.png')
}, },
checkPhone () { checkPhone () {
let vm = this let vm = this
vm.phoneNumberFlag = false vm.phoneNumberFlag = false
if (hlsUtil.phoneNumber(vm.phone_number) || hlsUtil.phoneNumber86(vm.phone_number)) { if (
hlsUtil.phoneNumber(vm.phone_number) ||
hlsUtil.phoneNumber86(vm.phone_number)
) {
vm.phoneNumberFlag = true vm.phoneNumberFlag = true
} }
}, },
getPhoneCode () { getPhoneCode () {
let vm = this let vm = this
if (!vm.showTimer) { if (!vm.showTimer) {
if (hlsUtil.phoneNumber(vm.phone_number) || hlsUtil.phoneNumber86(vm.phone_number)) { if (
hlsUtil.phoneNumber(vm.phone_number) ||
hlsUtil.phoneNumber86(vm.phone_number)
) {
vm.phoneNumberFlag = true vm.phoneNumberFlag = true
vm.getVerifiedCode() vm.getVerifiedCode()
vm.showTimer = true vm.showTimer = true
...@@ -177,7 +191,9 @@ export default { ...@@ -177,7 +191,9 @@ export default {
hlsPopup.showLongCenter('请确认密码!') hlsPopup.showLongCenter('请确认密码!')
} else { } else {
let url = process.env.basePath + 'register' let url = process.env.basePath + 'register'
let md5passwprd = CryptoJS.MD5(vm.user_password).toString().toUpperCase() let md5passwprd = CryptoJS.MD5(vm.user_password)
.toString()
.toUpperCase()
let params = { let params = {
phone: vm.phone_number, phone: vm.phone_number,
password: md5passwprd, password: md5passwprd,
...@@ -192,7 +208,7 @@ export default { ...@@ -192,7 +208,7 @@ export default {
}) })
} }
}, },
returnLogin(){ returnLogin () {
this.$router.go(-1) this.$router.go(-1)
}, },
getVerifiedCode () { getVerifiedCode () {
...@@ -224,27 +240,105 @@ export default { ...@@ -224,27 +240,105 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
@import "../styles/mixin"; @import "../styles/mixin";
@import "../styles/vue-1px"; @import "../styles/vue-1px";
#register {
#register {
.content { .content {
background-color: #FFFFFF; background: url("../assets/login/register.png");
background-size: 100% 100%;
}
.box {
width: 327px;
height: 512px;
margin: 0 auto;
margin-top:80px;
background: #1d3fff;
border-radius: 8px;
.box-content {
width: 279px;
margin: 0 auto;
.register-title {
width: 156px;
} }
.reg-item {
.right-logo { position: relative;
margin-left: 82%; width: 100%;
margin-top: 10%; height: 40px;
margin-top: 30px;
line-height: 30px;
img { img {
width: 28px;
height: 28px;
}
.left-icon {
position: absolute;
}
.right-icon {
width: 24px;
height: 24px;
position: absolute;
right: 0px;
top: 5px;
}
.verified-code {
position: absolute;
right: 0px;
top: 0px;
.verified-code-box {
padding-left: 12px;
border-left: 1px solid #ffffff;
color: #fff;
font-family: PingFangSC-Regular;
font-size: 14px;
line-height: 30px;
}
.verified-code-des {
font-size: 10px;
color: #fff;
}
}
input {
width: 100%;
text-indent: 30px;
background-color: #1d3fff;
font-family: PingFangSC-Regular;
padding-bottom: 8px;
font-size: 14px;
color: #ffffff;
border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(255, 255, 255, 0.6);
}
input:focus {
border-bottom: 1px solid #fff;
}
}
}
}
.right-logo {
width: 327px;
margin: 0 auto;
margin-top:10%;
img:last-child{
float: right;
width: 50px; width: 50px;
} }
img:first-child{
float:left;
width: 20px;
}
// img {
// width: 50px;
// }
} }
.register-title { .register-title {
margin-top: 16%; margin-top: 16%;
margin-left: 10%; // margin-left: 10%;
img { img {
width: 180px; width: 180px;
...@@ -255,11 +349,12 @@ export default { ...@@ -255,11 +349,12 @@ export default {
width: 90%; width: 90%;
margin-left: 8%; margin-left: 8%;
margin-top: 6%; margin-top: 6%;
background: #1d3fff;
} }
.hls-item .contents { .hls-item .contents {
//.setBottomLine(rgba(29,63,255,0.25)) //.setBottomLine(rgba(29,63,255,0.25))
border-bottom: 1px solid rgba(29, 63, 255, 0.25); border-bottom: 1px solid rgba(255, 255, 255, 0.4);
} }
.hls-item .contents .add-name .left-icon { .hls-item .contents .add-name .left-icon {
...@@ -268,40 +363,29 @@ export default { ...@@ -268,40 +363,29 @@ export default {
.hls-item .contents .add-content input { .hls-item .contents .add-content input {
text-align: left; text-align: left;
font-family: PingFangSC-Semibold; background-color: #1d3fff;
font-size: 16px; font-family: PingFangSC-Regular;
color: #0D0D0D; font-size: 14px;
} color: #ffffff;
.add-content{ }
.right-icon{ .hls-item .contents .add-content input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(255, 255, 255, 0.6);
}
.add-content {
.right-icon {
width: 14px; width: 14px;
} }
} }
.verified-code {
.wh(60%, 100%);
text-align: right;
.verified-code-box {
margin-left: 14px;
border-left:1px solid rgba(29, 63, 255, 0.25);
color: @headerColor;
line-height: 30px;
}
.verified-code-des {
font-size: 10px;
color: @headerColor;
}
}
.submit { .submit {
opacity: 1; background: #ffffff;
background: @headerColor; border-radius: 4px;
border-radius: 8px 0 0 8px; color: @headerColor;
height: 50px; width: 279px;
margin: 10% 0 6% 12%; height: 40px;
font-size:16px; margin-top: 50px;
color: #FFFFFF;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
justify-content: center; justify-content: center;
...@@ -311,17 +395,16 @@ export default { ...@@ -311,17 +395,16 @@ export default {
&.activated { &.activated {
opacity: 0.8; opacity: 0.8;
-webkit-transform: scale(1, 1); -webkit-transform: scale(1, 1);
transform: scale(1, 1) transform: scale(1, 1);
} }
} }
.return{ .return {
opacity: 1; opacity: 1;
background: #FFF; background: #fff;
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
height: 50px; height: 50px;
margin: 0 0 6% 12%; margin: 0 0 6% 12%;
font-size:16px; font-size: 16px;
color: #000000; color: #000000;
display: flex; display: flex;
display: -webkit-flex; display: -webkit-flex;
...@@ -332,9 +415,8 @@ export default { ...@@ -332,9 +415,8 @@ export default {
&.activated { &.activated {
opacity: 0.8; opacity: 0.8;
-webkit-transform: scale(1, 1); -webkit-transform: scale(1, 1);
transform: scale(1, 1) transform: scale(1, 1);
}
} }
} }
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment