Commit f660d87f authored by 李晓兵's avatar 李晓兵

'消息中心'

parent edef3e41
src/assets/login/passNoShow.png

932 Bytes | W: | H:

src/assets/login/passNoShow.png

1.12 KB | W: | H:

src/assets/login/passNoShow.png
src/assets/login/passNoShow.png
src/assets/login/passNoShow.png
src/assets/login/passNoShow.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/passShow.png

1.12 KB | W: | H:

src/assets/login/passShow.png

932 Bytes | W: | H:

src/assets/login/passShow.png
src/assets/login/passShow.png
src/assets/login/passShow.png
src/assets/login/passShow.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/password.png

788 Bytes | W: | H:

src/assets/login/password.png

970 Bytes | W: | H:

src/assets/login/password.png
src/assets/login/password.png
src/assets/login/password.png
src/assets/login/password.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/passwordConfirm.png

580 Bytes | W: | H:

src/assets/login/passwordConfirm.png

963 Bytes | W: | H:

src/assets/login/passwordConfirm.png
src/assets/login/passwordConfirm.png
src/assets/login/passwordConfirm.png
src/assets/login/passwordConfirm.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/phone.png

901 Bytes | W: | H:

src/assets/login/phone.png

985 Bytes | W: | H:

src/assets/login/phone.png
src/assets/login/phone.png
src/assets/login/phone.png
src/assets/login/phone.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/phone_code.png

987 Bytes | W: | H:

src/assets/login/phone_code.png

1.43 KB | W: | H:

src/assets/login/phone_code.png
src/assets/login/phone_code.png
src/assets/login/phone_code.png
src/assets/login/phone_code.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/login/user.png

1010 Bytes | W: | H:

src/assets/login/user.png

1001 Bytes | W: | H:

src/assets/login/user.png
src/assets/login/user.png
src/assets/login/user.png
src/assets/login/user.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -24,6 +24,7 @@ import directives from './scripts/directives'
import filter from './scripts/filter'
import './scripts/prototype'
/**
* 组件
*/
......
......@@ -99,7 +99,7 @@ export default {
}
},
registerNew: function () {
this.$router.push('regiester')
this.$router.push('regiester2')
},
pwdForgotten: function () {
this.$router.push('pwd-forgot')
......@@ -142,9 +142,9 @@ export default {
display: -webkit-flex;
margin: 5% 0 5% 14%;
.pwd-icon {
margin-bottom: 6px;
margin-right: 15px;
margin-left: 3px;
margin-top: 2px;
margin-right: 6px;
margin-left: 4px;
img {
width: 18px;
height: 20px;
......
......@@ -4,39 +4,50 @@
<div slot="center" class="top-word">消息通知</div>
</h-header>
<h-content class="content">
<!-- <div v-for="(item,index) in list" :key="index" class="card-info">
<div class="card-position">
<div class="card-top">
<img src="@/assets/messageCenter/messageIcon.png" class="icon" >
<span class="title">{{ item.notice_title }}</span>
<span class="time">{{ item.notice_time }}</span>
<section v-for="(item,parentIndex) in list" :key="parentIndex" class="msg-wrap">
<item-option>
<list-item>
<item :hasBorder="false" :proportion="[2,2]">
<div slot="left-icon" class="left-icon left-icon-box"><img src="@/assets/messageCenter/messageIcon.png"></div>
<div slot="name" class="font-color">{{ item.msg_title }}</div>
<div slot="content" class="time-color">{{ item.msg_time }}</div>
</item>
<div class="msg-content">
<div class="text">
<div
ref="textContainer" :class="{'retract': item.status}"
:style="{'max-height':item.status ? textHeight: ''}">
{{ item.msg_content }}
</div>
<div class="btn">
<p v-if="item.status" @click="item.status = false">展开</p>
<p v-if="item.status == false" @click="item.status = true">收起</p>
</div>
</div>
</div>
<div class="detail-wrap">
<div class="detail-wrap-content">
<span>查看详情</span>
<img src="@/assets/messageCenter/right-gray.png">
</div>
</div>
</list-item>
<div slot="buttons">
<option-button type="warn" text="删除" @click.native="deleteFun(parentIndex)"></option-button>
</div>
<img src="@/assets/messageCenter/messageIcon.png" class="arrow">
<div class="message">{{ item.notice_body }}</div>
</div>
</div>-->
<!--下面代码不要删****************************************************************-->
<section v-for="(item,index) in list" :key="index" class="msg-wrap">
</item-option>
</section>
<!--逾期消息-->
<section v-for="(item,Index) in overList" class="msg-wrap">
<list-item>
<item>
<img slot="left-icon" src="@/assets/messageCenter/messageIcon.png" class="left-icon">
<div slot="name">{{ item.msg_title }}</div>
<div slot="content">{{ item.msg_time }}</div>
<item :hasBorder="false" :proportion="[2,2]">
<div slot="left-icon" class="left-icon over-icon-box"><img src="@/assets/messageCenter/overIcon.png"></div>
<div slot="name" class="over-color">{{ item.msg_title }}</div>
<div slot="content" class="time-color">{{ item.msg_time }}</div>
</item>
<!-- <div class="msg-content" :class="{ 'nowrap': isFold}">
{{ item.msg_content }}<span>展开</span>
</div>-->
<div class="msg-content">
<div class="text">
<div
ref="textContainer" :class="{'retract': item.status}"
:style="{'max-height':item.status ? textHeight: ''}">
{{ item.msg_content }}
</div>
<div class="btn">
<p v-if="item.status" @click="item.status = false">展开</p>
<p v-if="item.status == false" @click="item.status = true">收起</p>
</div>
<div class="text" style="padding-bottom: 10px;">
<div>{{ item.msg_content }}</div>
</div>
</div>
</list-item>
......@@ -54,7 +65,7 @@ export default {
list: [
{
msg_title: '视频面签',
msg_content: '您有一条保证缴纳确认信息待您确认,请确认进件号:2001于2019-08-29进行视频面签,届时请注意接收视频消息!',
msg_content: '您有一条保证缴纳确认信息待您确认,请确认:2001于2019-08-29进行视频面签,届时请注意接收视频消息!',
msg_time: '2019-10-20',
},
{
......@@ -79,7 +90,7 @@ export default {
},
beforeRouteEnter (to, from, next) {
next(vm => {
//vm.getInfo()
// vm.getInfo()
})
},
mounted () {
......@@ -131,72 +142,41 @@ export default {
}
})
},
deleteFun(Index){
let vm = this
hlsPopup.showConfirm({
title: '提示',
content: '确认删除',
onConfirm: function (index) {
if (index === 1) {
vm.list.remove(Index)
vm.list.sort()
}
},
})
},
},
}
</script>
<style lang="less" scoped>
<style lang="less">
@import "../../styles/mixin";
#message-center {
/* .card-info {
width: 100%;
height: 78px;
background-color: #fff;
.card-position {
width: 90%;
margin: 0 auto;
.card-top {
padding-top: 16px;
display: flex;
align-items: center;
.time {
font-family: PingFangSC-Regular;
font-size: 12px;
color: rgba(56, 63, 69, 0.6);
flex:6;
}
}
.arrow{
width:10px;
height:12px;
float: right;
}
.title {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469c;
font-weight: bold;
margin-left: 11px;
flex:15;
}
.icon {
width: 13px;
height: 15px;
flex:1;
}
.message {
font-family: PingFangSC-Regular;
font-size: 13px;
color: #656464;
margin-top:10px;
margin-left:24px;
line-height:16px;
}
}
}
.card-info:not(:first-child) {
margin-top:8px;
}*/
.content {
padding-top: 10px;
}
.swipeout-list{
height: auto;
padding: 0;
.function{
right: -22% !important;
}
}
.msg-wrap {
margin: 0 2%;
margin: 0 2% 10px 2%;
.msg-content {
margin-left: 11%;
margin-left: 14%;
margin-right: 4%;
line-height: 20px;
font-family: PingFangSC-Regular;
......@@ -258,5 +238,81 @@ export default {
color: #666666;
visibility: hidden;
}
.left-icon-box{
position: relative;
width: 26px;
height: 26px;
background: #efefef;
border-radius: 8px;
img{
position: absolute;
left: 6px;
z-index: 100;
top: 6px;
}
}
.over-icon-box{
position: relative;
width: 26px;
height: 26px;
background: #FFFFE0;
border-radius: 8px;
img{
position: absolute;
left: 6px;
z-index: 100;
top: 6px;
}
}
.contents{
.add-name{
.font-color{
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #4B4A4B;
}
.over-color{
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #FDB62F;
}
}
.add-content{
.time-color{
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56,63,69,0.60);
}
}
img{
width: 14px;
height: 14px;
}
}
.detail-wrap{
margin-top: 10px;
width: 100%;
height: 40px;
padding: 0 4% 0 14%;
display: flex;
justify-content: center;
align-items: center;
.detail-wrap-content{
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.border-top;
span{
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
color: #4B4A4B;
}
img{
width: 14px;
}
}
}
}
</style>
<template>
<h-view id="register" class="public-style">
<h-content>
<div class="right-logo">
<img src="@/assets/login/registerLogo.png">
</div>
<div class="register-title">
<img src="@/assets/login/registerTitle.png">
</div>
<list-item>
<item :proportion="[0,4]" :item-height="64">
<img slot="left-icon" src="../assets/login/phone.png" class="left-icon">
<input slot="content" v-model="phone_number" placeholder="请输入手机号码">
<img
v-if="phone_number" slot="right-icon" class="right-icon" src="@/assets/login/registerDelete.png"
@click="clearAccount">
</item>
<item :proportion="[0,4]" :item-height="64">
<img slot="left-icon" src="../assets/login/phone_code.png" class="left-icon">
<input slot="content" v-model="verifiedCode" type="text" placeholder="请填写验证码">
<div slot="right-icon" class="verified-code">
<div v-if="!showTimer" class="verified-code-box" @click="getPhoneCode">点击获取</div>
<span v-if="showTimer" class="verified-code-des">{{ timerCount }}{{ text }}</span>
</div>
</item>
<item :proportion="[0,4]" :item-height="64">
<img slot="left-icon" src="../assets/login/passwordConfirm.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
slot="content" v-model="confirm" :type="pwdType" placeholder="请重新输入密码"
@blur="confirmCheck">
<img v-if="confirm" slot="right-icon" :src="openEye" class="right-icon" @click="changeType">
</item>
</list-item>
<div class="button submit" @click="submit">注册</div>
<div class="button return" @click="returnLogin">返回</div>
</h-content>
</h-view>
</template>
<script>
var CryptoJS = require('crypto-js')
export default {
data () {
return {
pwdType: 'password', // 密码类型
openEye: require('@/assets/login/registerNoshow.png'), // 图片地址
phone_number: '',
verifiedCode: '',
user_password: '',
confirm: '',
phoneNumberFlag: false,
verifiedCodeFlag: false,
passwordFlag: false,
confirmPassword: false,
captchaKey: '123456',
phoneCodeTimeOut: false,
timer: 60000,
showTimer: false,
timerCount: 60,
text: '获取验证码',
}
},
watch: {
verifiedCode (value) {
let vm = this
if (value.length === 6) {
vm.verifiedCodeFlag = false
if (vm.captchaKey.length === 0) {
hlsPopup.showLongCenter('请先获取验证码')
} else if (vm.phoneCodeTimeOut) {
hlsPopup.showLongCenter('验证码已失效,请从新获取')
} else {
vm.verifiedCodeFlag = true
}
}
},
user_password (value) {
if (value.length > 20) {
hlsPopup.showLongCenter('密码长度6~20位之间')
}
},
confirm (value) {
if (value.length > 20) {
hlsPopup.showLongCenter('密码长度6~20位之间')
}
},
},
created () {
let vm = this
let url = process.env.loginPath + 'admin'
let param = {}
vm.$post(url, param).then(function (res) {
window.localStorage.setItem('access_token', res.access_token)
})
},
methods: {
clearAccount: function () {
this.phone_number = ''
this.verifiedCode = ''
this.user_password = ''
this.confirm = ''
},
changeType () {
this.pwdType = this.pwdType === 'password' ? 'text' : 'password'
this.openEye = this.pwdType === 'password' ? require('@/assets/login/registerNoshow.png') : require('@/assets/login/registerShow.png')
},
checkPhone () {
let vm = this
vm.phoneNumberFlag = false
if (hlsUtil.phoneNumber(vm.phone_number) || hlsUtil.phoneNumber86(vm.phone_number)) {
vm.phoneNumberFlag = true
}
},
getPhoneCode () {
let vm = this
if (!vm.showTimer) {
if (hlsUtil.phoneNumber(vm.phone_number) || hlsUtil.phoneNumber86(vm.phone_number)) {
vm.phoneNumberFlag = true
vm.getVerifiedCode()
vm.showTimer = true
vm.text = '秒后失效'
let counter = setInterval(function () {
if (vm.timerCount >= 0) {
vm.timerCount = vm.timerCount - 1
}
}, 1000)
setTimeout(function () {
vm.text = '获取验证码'
vm.showTimer = false
clearInterval(counter)
vm.showTimer = false
vm.timerCount = vm.timer / 1000
}, vm.timer)
} else {
hlsPopup.showLongCenter('手机号不存在,请重新输入!')
}
}
},
passwordCheck () {
let vm = this
let length = vm.user_password.length
if (length < 6 || length > 20) {
hlsPopup.showLongCenter('密码长度6~20位之间')
} else {
vm.passwordFlag = true
}
},
confirmCheck () {
let vm = this
let length = vm.confirm.length
if (length < 6 || length > 20) {
hlsPopup.showLongCenter('密码长度6~20位之间')
} else if (vm.confirm !== vm.user_password) {
hlsPopup.showLongCenter('两次输入的密码不一致,请从新输入')
} else {
vm.confirmPassword = true
}
},
submit () {
let vm = this
if (!vm.phoneNumberFlag) {
hlsPopup.showLongCenter('请输入手机号!')
} else if (!vm.verifiedCodeFlag) {
hlsPopup.showLongCenter('验证码错误!')
} else if (!vm.passwordFlag) {
hlsPopup.showLongCenter('请输入密码!')
} else if (!vm.confirmPassword) {
hlsPopup.showLongCenter('请确认密码!')
} else {
let url = process.env.basePath + 'register'
let md5passwprd = CryptoJS.MD5(vm.user_password).toString().toUpperCase()
let params = {
phone: vm.phone_number,
password: md5passwprd,
}
hlsHttp.post(url, params).then(function (res) {
if (res.result === 'S') {
hlsPopup.showLongCenter('注册成功')
setTimeout(function () {
vm.$router.push('login')
}, 100)
}
})
}
},
returnLogin(){
this.$router.go(-1)
},
getVerifiedCode () {
let vm = this
hlsPopup.showLongCenter('测试验证码为123456')
/* let url = process.env.rootPath + '/aliyun/sms'
let params = {
phoneNumber: vm.phone_number,
signName: '车租易',
templateCode: 'SMS_154585462',
}
hlsHttp.post(url, params).then(function (res) {
if (res.code == 'OK') {
vm.captchaKey = res.captchaKey
vm.phoneCodeTimeOut = false
setTimeout(function () {
vm.captchaKey = ''
vm.phoneCodeTimeOut = true
}, 300000)
hlsPopup.showLongBottom('验证码发送成功!')
} else {
hlsPopup.showLongBottom(res.message)
}
}
) */
},
},
}
</script>
<style lang="less">
@import "../styles/mixin";
@import "../styles/vue-1px";
#register {
.content {
background-color: #FFFFFF;
}
.right-logo {
margin-left: 82%;
margin-top: 10%;
img {
width: 50px;
}
}
.register-title {
margin-top: 16%;
margin-left: 10%;
img {
width: 180px;
}
}
.hls-list-item {
width: 90%;
margin-left: 8%;
margin-top: 6%;
}
.hls-item .contents {
//.setBottomLine(rgba(29,63,255,0.25))
border-bottom: 1px solid rgba(29, 63, 255, 0.25);
}
.hls-item .contents .add-name .left-icon {
width: 26px;
}
.hls-item .contents .add-content input {
text-align: left;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #0D0D0D;
}
.add-content{
.right-icon{
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 {
opacity: 1;
background: @headerColor;
border-radius: 8px 0 0 8px;
height: 50px;
margin: 10% 0 6% 12%;
font-size:16px;
color: #FFFFFF;
display: flex;
display: -webkit-flex;
justify-content: center;
-webkit-justify-content: center;
align-items: center;
-webkit-align-items: center;
&.activated {
opacity: 0.8;
-webkit-transform: scale(1, 1);
transform: scale(1, 1)
}
}
.return{
opacity: 1;
background: #FFF;
border-radius: 8px 0 0 8px;
height: 50px;
margin: 0 0 6% 12%;
font-size:16px;
color: #000000;
display: flex;
display: -webkit-flex;
justify-content: center;
-webkit-justify-content: center;
align-items: center;
-webkit-align-items: center;
&.activated {
opacity: 0.8;
-webkit-transform: scale(1, 1);
transform: scale(1, 1)
}
}
}
</style>
......@@ -174,14 +174,14 @@
>
</item>
<item>
<div slot="name" class="required">居住地址</div>
<div slot="name" class="required">联系地址</div>
<textarea
slot="content"
ref="myTestareaLive"
v-model="baseInfo.living_address"
rows="1"
cols="30"
placeholder="请输入居住地址"
placeholder="请输入联系地址"
@input="addRowsLive(baseInfo.living_address)"
/>
</item>
......@@ -271,8 +271,8 @@
<input slot="content" v-model="baseInfo.working_place_sp" placeholder="请输入工作单位" >
</item>
<item>
<div slot="name" class="required">居住地址</div>
<input slot="content" v-model="baseInfo.address_sp" placeholder="请输入居住地址" >
<div slot="name" class="required">联系地址</div>
<input slot="content" v-model="baseInfo.address_sp" placeholder="请输入联系地址" >
</item>
</list-item>
</div>
......@@ -453,7 +453,7 @@ export default {
id_card_no: null,
id_card_date_from: '', // 身份证有效期从
id_card_date_to: '', // 身份证有效期到
cell_phone: null,
cell_phone: window.localStorage.getItem('user_phone'),
living_address: '',
address_on_resident_booklit: '',
marital_status: '',
......@@ -770,7 +770,7 @@ export default {
} else if (!vm.baseInfo.cell_phone) {
vm.hlsPopup.showLongCenter('手机号不能为空!')
} else if (!vm.baseInfo.living_address) {
vm.hlsPopup.showLongCenter('居住地址不能为空!')
vm.hlsPopup.showLongCenter('联系地址不能为空!')
} else if (!vm.baseInfo.address_on_resident_booklit) {
vm.hlsPopup.showLongCenter('户籍地址不能为空!')
} else if (!vm.baseInfo.academic_background) {
......@@ -793,7 +793,7 @@ export default {
) {
vm.hlsPopup.showLongCenter('配偶工作单位不能为空!')
} else if (vm.marital_status_n === '已婚' && !vm.baseInfo.address_sp) {
vm.hlsPopup.showLongCenter('配偶居住地址不能为空!')
vm.hlsPopup.showLongCenter('配偶联系地址不能为空!')
} else if (!vm.hlsUtil.phoneNumber(vm.baseInfo.cell_phone)) {
vm.hlsPopup.showLongCenter('手机号码有误!')
} else {
......
......@@ -313,14 +313,14 @@
<input slot="content" v-model="legal_personMsg.cell_phone" placeholder="请输入手机号" >
</item>
<item>
<div slot="name" class="font-color required">居住地址</div>
<div slot="name" class="font-color required">联系地址</div>
<textarea
ref="address"
slot="content"
v-model="legal_personMsg.living_address"
cols="30"
rows="1"
placeholder="请输入居住地址"
placeholder="请输入联系地址"
@input="addAddressRows(legal_personMsg.living_address)"
/>
</item>
......@@ -505,7 +505,7 @@ export default {
legal_personMsg: {
id_card_no: null,
// legal_person: '',
cell_phone: null,
cell_phone: window.localStorage.getItem('user_phone'),
living_address: '',
id_card_date_from: '', // 法定代表人身份证有效期从
id_card_date_to: '', // 法定代表人身份证有效期到
......@@ -856,7 +856,7 @@ export default {
vm.hlsPopup.showLongCenter('手机号未填写')
break
case 'living_address':
vm.hlsPopup.showLongCenter('居住地址未填写')
vm.hlsPopup.showLongCenter('联系地址未填写')
break
case 'id_card_date_from':
vm.hlsPopup.showLongCenter('身份证有效期从未填写')
......@@ -937,7 +937,7 @@ export default {
vm.hlsPopup.showLongCenter('手机号未填写')
break
case 'living_address':
vm.hlsPopup.showLongCenter('居住地址未填写')
vm.hlsPopup.showLongCenter('联系地址未填写')
break
case 'auth_person_name':
vm.hlsPopup.showLongCenter('授权人姓名未填写')
......
......@@ -11,6 +11,7 @@ import Router from 'vue-router'
import Guide from '@/pages/guide/guide'
import Login from '@/pages/login'
import Regiester from '@/pages/regiester'
import Regiester2 from '@/pages/regiester2'
import PwdForgot from '@/pages/pwd-forgotten'
import FingerLogin from '@/pages/finger-login'
import Home from '@/pages/home'
......@@ -157,6 +158,12 @@ export default new Router({
name: 'Regiester',
meta: {keepAlive: false},
},
{
path: '/regiester2',
component: Regiester2,
name: 'Regiester2',
meta: {keepAlive: false},
},
{
path: '/finger-login',
component: FingerLogin,
......
/**
*
* @param fmt
* @returns {*}
* @constructor
*/
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/**
* 移除数组的某个元素
* @param dx 下标
* @returns {boolean}
*/
Array.prototype.remove = function (dx) {
if (isNaN(dx) || dx > this.length) {
return false;
}
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
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