引导页、验证码登录、账号登录、注册页面、找回密码、首页(业务员、工程师、客服、客户)
|
@ -64,9 +64,10 @@
|
|||
button:after{content: none!important;}
|
||||
.borbot{border-bottom: 2rpx solid #E6E6E6;}
|
||||
.borbot:last-child{border-bottom: none;}
|
||||
.bbot{border-bottom: 2rpx solid #E6E6E6;}
|
||||
.bbot{border-bottom: 2rpx solid #EEEEEE;}
|
||||
.borbot-df{border: 2rpx solid #DFDFDF;}
|
||||
.borbot-cc{border: 2rpx solid #CCCCCC;}
|
||||
.bleft {border-left: 1rpx solid #EEEEEE;}
|
||||
|
||||
/* 行高 */
|
||||
.line-h30{line-height: 30rpx;}
|
||||
|
|
|
@ -23,12 +23,18 @@
|
|||
flex-shrink: 0;
|
||||
border: 1rpx solid #03affb;
|
||||
color: #03affb;
|
||||
width: 170rpx;
|
||||
height: 45rpx;
|
||||
line-height: 45rpx;
|
||||
border-radius: 24rpx;
|
||||
padding: 4rpx 20rpx;
|
||||
padding: 4rpx 0rpx;
|
||||
text-align: center;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.obtainIng {
|
||||
background-color: #03affb;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.placeholderColor {color: #bfbfbf;}
|
||||
.register-radio {transform: scale(0.5);margin-left: -10rpx;margin-right: -10rpx;}
|
||||
uni-radio .uni-radio-input {border: 1rpx solid #444444;}
|
||||
|
@ -38,6 +44,7 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
|
|||
position: absolute;right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
z-index: 1;
|
||||
}
|
||||
.clear-close {
|
||||
position: relative;
|
||||
|
@ -56,3 +63,145 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
|
|||
.clear-close span:first-child {transform: rotate(45deg);}
|
||||
.clear-close span:last-child {transform: rotate(-45deg);}
|
||||
|
||||
/* 登录 */
|
||||
.login-img {
|
||||
width: 100%;
|
||||
}
|
||||
.login-box {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 46%;
|
||||
padding: 0 50rpx;
|
||||
}
|
||||
.login-input-box {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1rpx solid #cbcccb;
|
||||
border-radius: 10rpx;
|
||||
padding: 20rpx;
|
||||
margin-bottom: 40rpx;
|
||||
}
|
||||
.login-code-btn {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background-color: #03affb;
|
||||
color: #FFFFFF;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.login-input-box input {
|
||||
border-left: 1rpx solid #EEEEEE;
|
||||
margin-left: 20rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.login-btn {
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
background-color: #03affb;
|
||||
border-radius: 10rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
/* 忘记密码 */
|
||||
.forget-title{color: #787a81;}
|
||||
.forget-input-box{
|
||||
border-bottom: 1rpx solid #EEEEEE;
|
||||
padding: 20rpx 0;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.forget-obtain-code {
|
||||
position: absolute;
|
||||
right: 0rpx;
|
||||
top: 0rpx;
|
||||
background-color: #03affb;
|
||||
color: #FFFFFF;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.forget-btn {
|
||||
width: 422rpx;
|
||||
height: 75rpx;
|
||||
line-height: 75rpx;
|
||||
text-align: center;
|
||||
background-color: #03affb;
|
||||
color: #FFFFFF;
|
||||
border-radius: 75rpx;
|
||||
margin: 0 auto;
|
||||
box-shadow: 0rpx 10rpx 30rpx rgba(3, 175, 251,0.3);
|
||||
margin-top: 80rpx;
|
||||
}
|
||||
/* 首页 */
|
||||
.home-message-box {line-height: 60rpx;}
|
||||
.home-message-box image {
|
||||
width: 30rpx;
|
||||
height: 35rpx;
|
||||
}
|
||||
.home-message-box view {
|
||||
position: absolute;
|
||||
left: 14rpx;
|
||||
top: -16rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
text-align: center;
|
||||
border-radius: 100%;
|
||||
font-size: 22rpx;
|
||||
background-color: #e93030;
|
||||
color: #FFFFFF;
|
||||
transform: scale(.8);
|
||||
}
|
||||
.project-notice-box {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background-color: #FFFFFF;
|
||||
margin: 20rpx 0;
|
||||
border-radius: 10rpx;
|
||||
box-shadow: 6rpx 6rpx 20rpx rgba(0, 162, 234, 0.3);
|
||||
margin-top: -70rpx;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
.home-fun-box {
|
||||
background-color: #FFFFFF;
|
||||
padding: 30rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.fun-title::before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 7rpx;
|
||||
height: 30rpx;
|
||||
background: linear-gradient(to top, #FFFFFF 0%, #03affb 40%, #03affb 100%);
|
||||
border-radius: 26%;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.home-solution {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
.solution-title {
|
||||
bottom: 6rpx;
|
||||
left: -40rpx;
|
||||
right: -40rpx;
|
||||
padding: 6rpx;
|
||||
background-color: rgba(255,255,255,0.6);
|
||||
transform: scale(.6);
|
||||
text-align: center;
|
||||
}
|
||||
.engineer-num {
|
||||
position: absolute;
|
||||
top: -16rpx;
|
||||
right: -12rpx;
|
||||
font-size: 24rpx;
|
||||
background-color: #f03232;
|
||||
width: 36rpx;
|
||||
height: 36rpx;
|
||||
line-height: 36rpx;
|
||||
text-align: center;
|
||||
border-radius: 100%;
|
||||
color: #FFFFFF;
|
||||
transform: scale(.8);
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ moreColor:显示更多的颜色
|
|||
},
|
||||
height: {
|
||||
type: Number,
|
||||
default: 80
|
||||
default: 40
|
||||
},
|
||||
showScale: {
|
||||
type: Boolean,
|
||||
|
|
|
@ -8,10 +8,11 @@
|
|||
<view class="status-nav"
|
||||
:style="{background: backgroudColor,height: navBarHeight+'px'}">
|
||||
<!-- 返回键 -->
|
||||
<view class="return-box" @tap="backEv" v-if="ifReturn"
|
||||
:style="{height: navBarHeight+'px'}">
|
||||
<slot name="leftContent"></slot>
|
||||
</view>
|
||||
<slot name="leftContent">
|
||||
<view class="return-box" @tap="backEv" v-if="ifReturn"
|
||||
:style="{height: navBarHeight+'px'}">
|
||||
</view>
|
||||
</slot>
|
||||
<!-- 标题 -->
|
||||
<view class="tab-title" v-if="ifTitle && ifNet"
|
||||
:style="{
|
||||
|
|
12
pages.json
|
@ -15,7 +15,8 @@
|
|||
,{
|
||||
"path" : "pages/login/login",
|
||||
"style" :{
|
||||
"navigationBarTitleText":""
|
||||
"navigationBarTitleText":"",
|
||||
"navigationStyle": "custom"//禁用原生导航栏,微信小程序可用
|
||||
}
|
||||
}
|
||||
,{
|
||||
|
@ -76,6 +77,15 @@
|
|||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/forget/forget",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "找回密码",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"subPackages": [
|
||||
{//A包
|
||||
|
|
|
@ -0,0 +1,206 @@
|
|||
<template>
|
||||
<view class="pad-zy30">
|
||||
<view class="fon52 bold mar-sx50">忘记密码?</view>
|
||||
<view class="fon28">
|
||||
<view class="forget-title mar-x10">手机号码</view>
|
||||
<view class="forget-input-box posir">
|
||||
<input @blur="inputBlurEv(0)" @focus="inputFocusEv(0)" @input="inputFocusEv(0)" class="fon24" type="number" maxlength="11" v-model="forget_phone" placeholder="请输入您的手机号码" placeholder-style="color:#c8c8c8;" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifPhone" @tap="clearInput(0)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<view class="forget-title mar-x10">手机验证码</view>
|
||||
<view class="forget-input-box posir">
|
||||
<input @blur="inputBlurEv(1)" @focus="inputFocusEv(1)" @input="inputFocusEv(1)" class="fon24" type="number" maxlength="6" v-model="forget_code" placeholder="请输入手机验证码" placeholder-style="color:#c8c8c8;" />
|
||||
<view class="forget-obtain-code" @tap="getCode">{{codeText}}</view>
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifCode" @tap="clearInput(1)" style="right: 260rpx;"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<view class="forget-title mar-x10">新密码</view>
|
||||
<view class="forget-input-box posir">
|
||||
<input @blur="inputBlurEv(2)" @focus="inputFocusEv(2)" @input="inputFocusEv(2)" class="fon24" type="text" password v-model="forget_password" placeholder="请输入新密码" placeholder-style="color:#c8c8c8;" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifPassword" @tap="clearInput(2)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<view class="forget-title mar-x10">确认密码</view>
|
||||
<view class="forget-input-box posir">
|
||||
<input @blur="inputBlurEv(3)" @focus="inputFocusEv(3)" @input="inputFocusEv(3)" class="fon24" type="text" password v-model="forget_qpassword" placeholder="请再次确认密码" placeholder-style="color:#c8c8c8;" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifqpassword" @tap="clearInput(3)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<view class="forget-title mar-x10">单位名称</view>
|
||||
<view class="forget-input-box posir">
|
||||
<input @blur="inputBlurEv(4)" @focus="inputFocusEv(4)" @input="inputFocusEv(4)" class="fon24" type="text" v-model="forget_unitname" placeholder="请输入单位名称" placeholder-style="color:#c8c8c8;" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifUnitname" @tap="clearInput(4)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 立即修改 -->
|
||||
<view class="forget-btn" @tap="submitEv">立即修改</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
ifPhone:false,
|
||||
forget_phone:'',
|
||||
ifCode:false,
|
||||
forget_code:'',
|
||||
ifPassword:false,
|
||||
forget_password:'',
|
||||
ifqpassword:false,
|
||||
forget_qpassword:'',
|
||||
ifUnitname:false,
|
||||
forget_unitname:'',
|
||||
codeText:'获取验证码' ,// 获取验证码按钮文字
|
||||
flagCode:true // 允许点击获取验证码
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 提交事件
|
||||
submitEv(){
|
||||
if(this.checkEmpty()){
|
||||
let params = {
|
||||
phone: this.forget_phone, // 手机号码
|
||||
sms_code:this.forget_code, // 短信验证码
|
||||
password: this.forget_password, // 密码
|
||||
confirm_password: this.forget_qpassword, // 确认密码
|
||||
affiliation: this.forget_unitname ,//单位名称
|
||||
}
|
||||
this.$requst.post('/universal/api.login/password_find',params).then(res=>{
|
||||
this.$toolAll.tools.showToast('找回成功');
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取验证码
|
||||
getCode(){
|
||||
if(this.$toolAll.tools.isPhone(this.forget_phone)) {
|
||||
this.$toolAll.tools.showToast('请输入正确的手机号');
|
||||
} else {
|
||||
if(this.flagCode) {
|
||||
this.flagCode = false;
|
||||
let count = 60;
|
||||
this.codeText = `${count}S重新获取`
|
||||
let countDown = setInterval(()=>{
|
||||
count--;
|
||||
count < 10 ? this.codeText = `0${count}S重新获取` : this.codeText = `${count}S重新获取`;
|
||||
if(count==0) {
|
||||
this.codeText = `重新获取`;
|
||||
clearInterval(countDown);
|
||||
this.flagCode = true;
|
||||
}
|
||||
},1000)
|
||||
// 调用获取短信事件
|
||||
this.getMessage(this.forget_phone);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 获取短信事件
|
||||
getMessage(phone){
|
||||
this.$requst.post('/universal/api.login/send_sms',{phone}).then(res=>{
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
})
|
||||
},
|
||||
// 检测是否某个输入框为空
|
||||
checkEmpty(){
|
||||
let ifEmpty = true;
|
||||
if(this.$toolAll.tools.isPhone(this.forget_phone)) {
|
||||
this.$toolAll.tools.showToast('手机号格式不正确');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(!this.forget_code) {
|
||||
this.$toolAll.tools.showToast('请输入验证码');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(!this.forget_password) {
|
||||
this.$toolAll.tools.showToast('密码不能为空');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(!this.forget_qpassword) {
|
||||
this.$toolAll.tools.showToast('确认密码不能为空');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(this.forget_password != this.forget_qpassword) {
|
||||
this.$toolAll.tools.showToast('两次输入的密码必须相同');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(!this.forget_unitname) {
|
||||
this.$toolAll.tools.showToast('请输入单位名称');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
return ifEmpty;
|
||||
},
|
||||
// 输入框获取焦点
|
||||
inputFocusEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.forget_phone ? this.ifPhone = true : this.ifPhone = false;
|
||||
break;
|
||||
case 1:
|
||||
this.forget_code ? this.ifCode = true : this.ifCode = false;
|
||||
break;
|
||||
case 2:
|
||||
this.forget_password ? this.ifPassword = true : this.ifPassword = false;
|
||||
break;
|
||||
case 3:
|
||||
this.forget_qpassword ? this.ifqpassword = true : this.ifqpassword = false;
|
||||
break;
|
||||
case 4:
|
||||
this.forget_unitname ? this.ifUnitname = true : this.ifUnitname = false;
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 输入框失去焦点
|
||||
inputBlurEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
setTimeout(()=>{this.ifPhone = false;},100)
|
||||
break;
|
||||
case 1:
|
||||
setTimeout(()=>{this.ifCode = false;},100)
|
||||
break;
|
||||
case 2:
|
||||
setTimeout(()=>{this.ifPassword = false;},100)
|
||||
break;
|
||||
case 3:
|
||||
setTimeout(()=>{this.ifqpassword = false;},100)
|
||||
break;
|
||||
case 4:
|
||||
setTimeout(()=>{this.ifUnitname = false;},100)
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 清除手机号
|
||||
clearInput(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.forget_phone = '';
|
||||
break;
|
||||
case 1:
|
||||
this.forget_code = '';
|
||||
break;
|
||||
case 2:
|
||||
this.forget_password = '';
|
||||
break;
|
||||
case 3:
|
||||
this.forget_qpassword = '';
|
||||
break;
|
||||
case 4:
|
||||
this.forget_unitname = '';
|
||||
break;
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<view style="display: flex;justify-content: center;align-items: center;height: 100vh;">
|
||||
引导页
|
||||
<view :style="{height: windowHeight+'px'}" style="overflow: hidden;">
|
||||
<image src="/static/public/icon-guide.png" mode="widthFix" style="width: 100%;"></image>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
@ -8,21 +8,11 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
windowHeight:uni.getSystemInfoSync().windowHeight
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
console.log(16);
|
||||
this.checkContext();
|
||||
// this.$requst.post('/universal/api.login/register',{
|
||||
// phone:'18888888888',
|
||||
// sms_code:'123456',
|
||||
// password:'123456',
|
||||
// confirm_password:'123456',
|
||||
// affiliation:'中国中铁七局'
|
||||
// }).then(res=>{
|
||||
// console.log(res,25);
|
||||
// })
|
||||
},
|
||||
methods: {
|
||||
// 检测是否是微信端
|
||||
|
@ -31,7 +21,6 @@
|
|||
if(uni.getSystemInfoSync().platform != "devtools"){//devtools:开发版 值域为:ios、android、mac(3.1.10+)、windows(3.1.10+)、linux(3.1.10+)
|
||||
console.log = () =>{}
|
||||
}
|
||||
console.log(35);
|
||||
setTimeout(()=>{
|
||||
uni.reLaunch({
|
||||
url:'/pages/login/login'
|
||||
|
@ -42,7 +31,6 @@
|
|||
if(uni.getSystemInfoSync().platform != "development"){//devtools:开发版 值域为:ios、android、mac(3.1.10+)、windows(3.1.10+)、linux(3.1.10+)
|
||||
console.log = () =>{}
|
||||
}
|
||||
console.log(46);
|
||||
setTimeout(()=>{
|
||||
uni.reLaunch({
|
||||
url:'/pages/login/login'
|
||||
|
@ -62,7 +50,6 @@
|
|||
// 正式版-配置全局域名
|
||||
// uni.setStorageSync('hostapi','https://hm.hmzfyy.cn/api/');
|
||||
}
|
||||
console.log(66);
|
||||
setTimeout(()=>{
|
||||
uni.reLaunch({
|
||||
url:'/pages/tabbar/pagehome/pagehome'
|
||||
|
|
|
@ -1,23 +1,240 @@
|
|||
<template>
|
||||
<view @tap="gohome" style="display: flex;align-items: center;justify-content: center;height: 100vh;">
|
||||
登录页
|
||||
<view>
|
||||
<view style="overflow: hidden;position: relative;" :style="{height: windowHeight + 'px'}">
|
||||
<image class="login-img" src="/static/public/icon-login.png" mode="widthFix"></image>
|
||||
<view class="login-box fon28">
|
||||
<!-- 手机号 -->
|
||||
<view class="login-input-box">
|
||||
<view style="width: 30rpx;">
|
||||
<image style="width: 30rpx;height: 28rpx;" src="/static/public/icon-people.png" mode=""></image>
|
||||
</view>
|
||||
<input type="number" @blur="inputBlurEv(0)" @focus="inputFocusEv(0)" @input="inputFocusEv(0)" v-model="login_phone" maxlength="11" placeholder="请输入手机号" placeholder-class="col9" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifPhone" @tap="clearInput(0)" style="right: 20rpx;"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<!-- 验证码 -->
|
||||
<view class="login-input-box" v-show="login_type=='mobile'">
|
||||
<view style="width: 30rpx;">
|
||||
<image style="width: 22rpx;height: 26rpx;" src="/static/public/icon-password.png" mode=""></image>
|
||||
</view>
|
||||
<input type="number" v-model="login_code" maxlength="6" @blur="inputBlurEv(1)" @focus="inputFocusEv(1)" @input="inputFocusEv(1)" placeholder="请输入验证码" placeholder-class="col9" />
|
||||
<view class="login-code-btn" @tap="getCode">{{codeText}}</view>
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifCode" @tap="clearInput(1)" style="right: 260rpx;"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<!-- 密码登录 -->
|
||||
<view class="login-input-box" v-show="login_type!='mobile'">
|
||||
<view style="width: 30rpx;">
|
||||
<image style="width: 22rpx;height: 26rpx;" src="/static/public/icon-password.png" mode=""></image>
|
||||
</view>
|
||||
<input type="text" password v-model="login_password" @blur="inputBlurEv(3)" @focus="inputFocusEv(3)" @input="inputFocusEv(3)" placeholder="请输入密码" placeholder-class="col9" />
|
||||
<view class="clear-box" v-show="ifPassword" @tap="clearInput(3)" style="right: 20rpx;"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<!-- 单位名称 -->
|
||||
<view class="login-input-box">
|
||||
<view style="width: 30rpx;">
|
||||
<image style="width: 26rpx;height: 26rpx;" src="/static/public/icon-unit.png" mode=""></image>
|
||||
</view>
|
||||
<input type="text" v-model="login_unitName" @blur="inputBlurEv(2)" @focus="inputFocusEv(2)" @input="inputFocusEv(2)" placeholder="请输入单位名称" placeholder-class="col9" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="ifunitName" @tap="clearInput(2)" style="right: 20rpx;"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<!-- 登入 -->
|
||||
<view class="login-btn fon32" @tap="submitEv">登录</view>
|
||||
<!-- 使用账号密码登录、忘记密码 -->
|
||||
<view class="fon24 disjbac mar-s20">
|
||||
<view @tap="switchType">使用{{login_type_text}}登录</view>
|
||||
<view class="col9" @tap="goForget">忘记密码?</view>
|
||||
</view>
|
||||
<!-- 注册工程师 -->
|
||||
<view @tap="goRegister" class="login-btn fon24 mar-s70" style="background-color: #f0f0f0;color: #333333;">注册工程师</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
|
||||
export default {
|
||||
components:{
|
||||
containerSubgroupTwo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
windowHeight: uni.getSystemInfoSync().windowHeight,
|
||||
ifPhone:false,
|
||||
login_phone:'',//登录手机号
|
||||
ifCode:false,
|
||||
login_code:'',//登录验证码
|
||||
ifunitName:false,
|
||||
login_unitName:'',//登录单位名称
|
||||
ifPassword:false,
|
||||
login_password:'',//登录密码
|
||||
codeText:'获取验证码' ,// 获取验证码按钮文字
|
||||
flagCode:true ,// 允许点击获取验证码
|
||||
countDown:null,
|
||||
login_type:'mobile',// 登录方式默认手机验证码登录 account:账号密码登陆
|
||||
login_type_text:'账号密码'
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
gohome(){
|
||||
// 提交事件
|
||||
submitEv(){
|
||||
// if(this.checkEmpty()){
|
||||
// let params = {
|
||||
// login_type: this.login_type, // 登陆手机类型: mobile:手机登陆、account:账号密码登陆
|
||||
// phone: this.login_type == 'mobile' ? this.login_phone : '', // 手机号码,login_type 为 mobile 时必填
|
||||
// password: this.login_password, // 密码,login_type 为 account 时必填
|
||||
// sms_code: this.login_code, // 短信验证码,login_type 为 mobile 时必填
|
||||
// username: this.login_type == 'account' ? this.login_phone : '', //账号,login_type 为 account 时必填
|
||||
// affiliation: this.login_unitName // 单位名称
|
||||
// }
|
||||
// this.$requst.post('/universal/api.login/login',params).then(res=>{
|
||||
// this.$toolAll.tools.showToast('登录成功');
|
||||
// })
|
||||
// }
|
||||
uni.reLaunch({
|
||||
url:'/pages/tabbar/pagehome/pagehome'
|
||||
})
|
||||
},
|
||||
// 获取验证码
|
||||
getCode(){
|
||||
if(this.$toolAll.tools.isPhone(this.login_phone)) {
|
||||
this.$toolAll.tools.showToast('请输入正确的手机号');
|
||||
} else {
|
||||
if(this.flagCode) {
|
||||
this.flagCode = false;
|
||||
let count = 60;
|
||||
this.codeText = `${count}S重新获取`
|
||||
this.countDown = setInterval(()=>{
|
||||
count--;
|
||||
count < 10 ? this.codeText = `0${count}S重新获取` : this.codeText = `${count}S重新获取`;
|
||||
if(count==0) {
|
||||
this.codeText = `重新获取`;
|
||||
clearInterval(this.countDown);
|
||||
this.flagCode = true;
|
||||
}
|
||||
},1000)
|
||||
// 调用获取短信事件
|
||||
this.getMessage(this.login_phone);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 获取短信事件
|
||||
getMessage(phone){
|
||||
this.$requst.post('/universal/api.login/send_sms',{phone}).then(res=>{
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
if(res.data.length==0) {
|
||||
this.codeText = '获取验证码';
|
||||
clearInterval(this.countDown);
|
||||
}
|
||||
})
|
||||
},
|
||||
// 检测是否某个输入框为空
|
||||
checkEmpty(){
|
||||
let ifEmpty = true;
|
||||
if(this.$toolAll.tools.isPhone(this.login_phone)) {
|
||||
this.$toolAll.tools.showToast('手机号格式不正确');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
if(this.login_type_text=='账号密码') {
|
||||
if(!this.login_code) {
|
||||
this.$toolAll.tools.showToast('请输入验证码');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if(!this.login_password) {
|
||||
this.$toolAll.tools.showToast('请输入密码');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!this.login_unitName) {
|
||||
this.$toolAll.tools.showToast('请输入单位名称');
|
||||
ifEmpty = false;
|
||||
return;
|
||||
}
|
||||
return ifEmpty;
|
||||
},
|
||||
// 输入框获取焦点
|
||||
inputFocusEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.login_phone ? this.ifPhone = true : this.ifPhone = false;
|
||||
break;
|
||||
case 1:
|
||||
this.login_code ? this.ifCode = true : this.ifCode = false;
|
||||
break;
|
||||
case 2:
|
||||
this.login_unitName ? this.ifunitName = true : this.ifunitName = false;
|
||||
break;
|
||||
case 3:
|
||||
this.login_password ? this.ifPassword = true : this.ifPassword = false;
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 输入框失去焦点
|
||||
inputBlurEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
setTimeout(()=>{this.ifPhone = false;},100)
|
||||
break;
|
||||
case 1:
|
||||
setTimeout(()=>{this.ifCode = false;},100)
|
||||
break;
|
||||
case 2:
|
||||
setTimeout(()=>{this.ifunitName = false;},100)
|
||||
break;
|
||||
case 3:
|
||||
setTimeout(()=>{this.ifPassword = false;},100)
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 清除手机号
|
||||
clearInput(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.login_phone = '';
|
||||
break;
|
||||
case 1:
|
||||
this.login_code = '';
|
||||
break;
|
||||
case 2:
|
||||
this.login_unitName = '';
|
||||
break;
|
||||
case 3:
|
||||
this.login_password = '';
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 切换登录方式
|
||||
switchType(){
|
||||
if(this.login_type_text=="账号密码") {
|
||||
this.login_type = 'account';
|
||||
this.login_type_text = '验证码';
|
||||
this.login_code = '';
|
||||
} else {
|
||||
this.login_type = 'mobile';
|
||||
this.login_type_text = '账号密码';
|
||||
this.login_password = '';
|
||||
}
|
||||
},
|
||||
// 前往注册页面
|
||||
goRegister(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/register/register'
|
||||
})
|
||||
},
|
||||
// 前往找回密码页面
|
||||
goForget(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/forget/forget'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,42 +18,43 @@
|
|||
<view class="disac mar-s30">
|
||||
<view class="disac fon30">+86 <view class="register-phone-img"></view></view>
|
||||
<view class="posir width100">
|
||||
<input class="clear-input" type="number" maxlength="11" v-model="register_phone" placeholder="请输入手机号" placeholder-class="placeholderColor" />
|
||||
<input @blur="inputBlurEv(0)" @focus="inputFocusEv(0)" @input="inputFocusEv(0)" class="clear-input" type="number" maxlength="11" v-model="register_phone" placeholder="请输入手机号" placeholder-class="placeholderColor" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="register_phone!=''" @tap="clearInput(0)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
<view class="clear-box" v-show="ifPhone" @tap="clearInput(0)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 验证码 -->
|
||||
<view class="disjbac mar-s50">
|
||||
<view class="posir width100">
|
||||
<input class="clear-input" type="number" maxlength="4" v-model="register_code" placeholder="请输入验证码" placeholder-class="placeholderColor" />
|
||||
<input @blur="inputBlurEv(1)" @focus="inputFocusEv(1)" @input="inputFocusEv(1)" class="clear-input" type="number" maxlength="6" v-model="register_code" placeholder="请输入验证码" placeholder-class="placeholderColor" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="register_code!=''" @tap="clearInput(1)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
<view class="clear-box" v-show="ifCode" @tap="clearInput(1)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
<view class="obtain-code">获取验证码</view>
|
||||
<!-- 获取验证码按钮 -->
|
||||
<view class="obtain-code" :class="!flagCode ? 'obtainIng' : ''" @tap="getCode">{{codeText}}</view>
|
||||
</view>
|
||||
<!-- 密码 -->
|
||||
<view class="disjbac mar-s50">
|
||||
<view class="posir width100">
|
||||
<input class="clear-input" type="text" maxlength="16" v-model="register_password" placeholder="请输入密码" placeholder-class="placeholderColor" />
|
||||
<input @blur="inputBlurEv(2)" @focus="inputFocusEv(2)" @input="inputFocusEv(2)" class="clear-input" type="text" password maxlength="16" v-model="register_password" placeholder="请输入密码" placeholder-class="placeholderColor" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="register_password!=''" @tap="clearInput(2)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
<view class="clear-box" v-show="ifPassword" @tap="clearInput(2)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 确认密码 -->
|
||||
<view class="disjbac mar-s50">
|
||||
<view class="posir width100">
|
||||
<input class="clear-input" type="text" maxlength="16" v-model="register_qpassword" placeholder="请再次确认密码" placeholder-class="placeholderColor" />
|
||||
<input @blur="inputBlurEv(3)" @focus="inputFocusEv(3)" @input="inputFocusEv(3)" class="clear-input" type="text" password maxlength="16" v-model="register_qpassword" placeholder="请再次确认密码" placeholder-class="placeholderColor" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="register_qpassword!=''" @tap="clearInput(3)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
<view class="clear-box" v-show="ifqpssword" @tap="clearInput(3)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 单位名称 -->
|
||||
<view class="disjbac mar-s50">
|
||||
<view class="posir width100">
|
||||
<input class="clear-input" type="text" v-model="register_unitName" placeholder="请输入单位名称" placeholder-class="placeholderColor" />
|
||||
<input @blur="inputBlurEv(4)" @focus="inputFocusEv(4)" @input="inputFocusEv(4)" class="clear-input" type="text" v-model="register_unitName" placeholder="请输入单位名称" placeholder-class="placeholderColor" />
|
||||
<!-- 清除按钮 -->
|
||||
<view class="clear-box" v-show="register_unitName!=''" @tap="clearInput(4)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
<view class="clear-box" v-show="ifunitName" @tap="clearInput(4)"><view class="clear-close"><span></span><span></span></view></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 协议、政策 -->
|
||||
|
@ -80,21 +81,68 @@
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
ifPhone:false, // 是否显示手机号清空按钮
|
||||
register_phone:'', // 注册时的手机号
|
||||
ifCode:false,
|
||||
register_code:'', // 注册时的验证码
|
||||
ifPassword:false,
|
||||
register_password:'', // 注册时的密码
|
||||
ifqpssword:false,
|
||||
register_qpassword:'', // 注册时的确认密码
|
||||
ifunitName:false,
|
||||
register_unitName:'', // 注册时的单位名称
|
||||
ifAgreen:false // 注册时是否勾选协议与政策
|
||||
ifAgreen:false ,// 注册时是否勾选协议与政策
|
||||
codeText:'获取验证码' ,// 获取验证码按钮文字
|
||||
flagCode:true // 允许点击获取验证码
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 提交事件
|
||||
submitEv(){
|
||||
if(this.checkEmpty()){
|
||||
console.log('执行事件');
|
||||
let params = {
|
||||
phone: this.register_phone, // 手机号码
|
||||
sms_code:this.register_code, // 短信验证码
|
||||
password: this.register_password, // 密码
|
||||
confirm_password: this.register_qpassword, // 确认密码
|
||||
affiliation: this.register_unitName //单位名称
|
||||
}
|
||||
this.$requst.post('/universal/api.login/register',params).then(res=>{
|
||||
this.$toolAll.tools.showToast('注册成功');
|
||||
// 调用前往登录页
|
||||
this.goLogin();
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取验证码
|
||||
getCode(){
|
||||
if(this.$toolAll.tools.isPhone(this.register_phone)) {
|
||||
this.$toolAll.tools.showToast('请输入正确的手机号');
|
||||
} else {
|
||||
if(this.flagCode) {
|
||||
this.flagCode = false;
|
||||
let count = 60;
|
||||
this.codeText = `${count}S重新获取`
|
||||
let countDown = setInterval(()=>{
|
||||
count--;
|
||||
count < 10 ? this.codeText = `0${count}S重新获取` : this.codeText = `${count}S重新获取`;
|
||||
if(count==0) {
|
||||
this.codeText = `重新获取`;
|
||||
clearInterval(countDown);
|
||||
this.flagCode = true;
|
||||
}
|
||||
},1000)
|
||||
// 调用获取短信事件
|
||||
this.getMessage(this.register_phone);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 获取短信事件
|
||||
getMessage(phone){
|
||||
this.$requst.post('/universal/api.login/send_sms',{phone}).then(res=>{
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
})
|
||||
},
|
||||
// 检测是否某个输入框为空
|
||||
checkEmpty(){
|
||||
let ifEmpty = true;
|
||||
|
@ -139,11 +187,52 @@
|
|||
goLogin(){
|
||||
uni.navigateBack({delta:1})
|
||||
},
|
||||
// 输入框获取焦点
|
||||
inputFocusEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.register_phone ? this.ifPhone = true : this.ifPhone = false;
|
||||
break;
|
||||
case 1:
|
||||
this.register_code ? this.ifCode = true : this.ifCode = false;
|
||||
break;
|
||||
case 2:
|
||||
this.register_password ? this.ifPassword = true : this.ifPassword = false;
|
||||
break;
|
||||
case 3:
|
||||
this.register_qpassword ? this.ifqpssword = true : this.ifqpssword = false;
|
||||
break;
|
||||
case 4:
|
||||
this.register_unitName ? this.ifunitName = true : this.ifunitName = false;
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 输入框失去焦点
|
||||
inputBlurEv(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
setTimeout(()=>{this.ifPhone = false;},100)
|
||||
break;
|
||||
case 1:
|
||||
setTimeout(()=>{this.ifCode = false;},100)
|
||||
break;
|
||||
case 2:
|
||||
setTimeout(()=>{this.ifPassword = false;},100)
|
||||
break;
|
||||
case 3:
|
||||
setTimeout(()=>{this.ifqpssword = false;},100)
|
||||
break;
|
||||
case 4:
|
||||
setTimeout(()=>{this.ifunitName = false;},100)
|
||||
break;
|
||||
}
|
||||
},
|
||||
// 清除手机号
|
||||
clearInput(index){
|
||||
switch (index){
|
||||
case 0:
|
||||
this.register_phone = '';
|
||||
console.log(this.register_phone);
|
||||
break;
|
||||
case 1:
|
||||
this.register_code = '';
|
||||
|
|
|
@ -1,20 +1,315 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="pad-x160">
|
||||
<status-nav-slot>
|
||||
<view slot="leftContent" style="width: 70px;">
|
||||
<view class="home-message-box posir disac">
|
||||
<image src="/static/public/icon-home-message.png" mode=""></image>
|
||||
<view v-if="messageNumber!=0">{{messageNumber}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view slot="centerContent" class="disjcac">
|
||||
<image style="width: 156rpx;height: 38rpx;" src="/static/public/icom-home-logo.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view slot="rightContent" class="disac">
|
||||
<image class="mar-y10" style="width: 26rpx;height: 26rpx;" src="/static/public/icon-home-phone.png" mode=""></image>
|
||||
<view class="fon26 col3">拨打电话</view>
|
||||
</view>
|
||||
</status-nav-slot>
|
||||
<!-- <view :style="{paddingTop: statusHeight +'px'}"> -->
|
||||
<!-- banner图 -->
|
||||
<image class="width100" src="/static/public/icon-home-banner.png" mode="widthFix"></image>
|
||||
<view class="pad-zy20">
|
||||
<!-- 项目总数、实时故障、公告 -->
|
||||
<view class="project-notice-box">
|
||||
<view class="disjcac pad-sx20 bbot">
|
||||
<view class="disjcac fc width50">
|
||||
<view class="fon26 col9">项目总数</view>
|
||||
<view class="fon60 bold">126</view>
|
||||
</view>
|
||||
<view class="bleft" style="height: 90rpx;"></view>
|
||||
<view class="disjcac fc width50">
|
||||
<view class="fon26 col9">实时故障</view>
|
||||
<view class="fon60 bold">116</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="disac pad-s30 pad-x10">
|
||||
<image class="mar-zy20" style="width: 64rpx;height: 27rpx;" src="/static/public/icon-home-notice.png" mode=""></image>
|
||||
<view class="fon24 color6 mar-y20 width100 bleft pad-z20">
|
||||
<lwNotice @dangGao="goNoticeDetail" :list="noticeList" :backgroundColor="'#FFFFFF'"></lwNotice>
|
||||
</view>
|
||||
<!-- <view class="clips1 col3 fon24 pad-z20 bleft">2021年11月06日公司团建,维修服务暂停一天。</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<!-- 客户可见 -->
|
||||
<view v-if="role==0 || role==3">
|
||||
<!-- 故障报修 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">故障报修</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in repairList" :key="index">
|
||||
<image :style="{width: [58,58,50][index]+'rpx',height:[53,56,58][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 数据查询 -->
|
||||
<view class="home-fun-box" v-if="role==3">
|
||||
<view class="fun-title col3 fon28 disac bold">数据查询</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in dataQueryList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [58,58,58][index]+'rpx',height:[46,56,50][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 增值服务 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">增值服务</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in incrementList" :key="index">
|
||||
<image :style="{width: [57,52,58,51][index]+'rpx',height:[56,56,50,56][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 工程师可见 -->
|
||||
<view v-if="role==1 || role==2">
|
||||
<!-- 项目维修 -->
|
||||
<view class="home-fun-box" v-if="role==1">
|
||||
<view class="fun-title col3 fon28 disac bold">项目维修</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in projectRepairList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [53,52,51][index]+'rpx',height:[58,58,58][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="role==2">
|
||||
<!-- 待办工单 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">待办工单</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in stayWorkOrderList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [53,48,51,58][index]+'rpx',height:[58,58,58,53][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 待办事件 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">待办事件</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in stayEventList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [58,58,50][index]+'rpx',height:[58,54,58][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 工单数据 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">工单数据</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in workOrderList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [59,56,58,58][index]+'rpx',height:[49,58,58,60][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 数据查询 -->
|
||||
<view class="home-fun-box" v-if="role==2">
|
||||
<view class="fun-title col3 fon28 disac bold">数据查询</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in dataQueryList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [58,58,58][index]+'rpx',height:[46,56,50][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 结算情况 -->
|
||||
<view class="home-fun-box" v-if="role==1">
|
||||
<view class="fun-title col3 fon28 disac bold">结算情况</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in settlementList" :key="index">
|
||||
<view class="posir">
|
||||
<image :style="{width: [58,50,58][index]+'rpx',height:[54,58,58][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="engineer-num" v-if="item.num!=0">{{item.num}}</view>
|
||||
</view>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 其他 -->
|
||||
<view class="home-fun-box">
|
||||
<view class="fun-title col3 fon28 disac bold">其他</view>
|
||||
<view class="disac mar-s30">
|
||||
<view class="disjcac fc width25" v-for="(item,index) in otherList" :key="index">
|
||||
<image :style="{width: [58,49,58][index]+'rpx',height:[51,58,55][index] + 'rpx'}" style="width: 58rpx;height: 53rpx;" :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="fon24 col3 mar-s10">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 解决方案 -->
|
||||
<view class="home-solution mar-x20 pad30">
|
||||
<view class="disjbac">
|
||||
<view>
|
||||
<view class="fon30 bold" style="color: #00a2e9;">畅想智能-场景化设计</view>
|
||||
<view class="fon34 bold col3 mar-s10">解决方案<text class="col9 mar-z10">Solution</text></view>
|
||||
</view>
|
||||
<image style="width: 50rpx;height: 50rpx;" src="/static/public/icon-home-solution.png" mode=""></image>
|
||||
</view>
|
||||
<view class="mar-s30">
|
||||
<scroll-view scroll-x>
|
||||
<view :class="solutionList.length <= 4 ? 'disjbac' : 'disac'">
|
||||
<view class="posir flexs" v-for="(item,index) in solutionList" :key="index" style="width: 23%;" :style="{marginRight: solutionList.length > 4 ? '20rpx' : ''}">
|
||||
<image style="width: 100%;" class="radius10 " :src="item.imgsrc" mode="widthFix"></image>
|
||||
<view class="posia solution-title">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 常见故障 -->
|
||||
<view class="bacf mar-zy20 pad-sx30 pad-zy10 radius10">
|
||||
<view class="fon34 bold col3">常见故障<text class="col9 mar-z10">Common faults</text></view>
|
||||
<view class="pad-sx20 bbot disjb" v-for="(item,index) in faultsList" :key="index">
|
||||
<view class="fon28 line-h38">
|
||||
<view class="col3 clips1">{{item.title}}</view>
|
||||
<view class="fon22 col6 clips3 mar-sx10">{{item.content}}</view>
|
||||
<view class="col9">{{item.views}}人看过</view>
|
||||
</view>
|
||||
<image class="flexs mar-z20" :src="item.imgsrc" style="width: 280rpx;height: 112rpx;" mode="widthFix" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 底部tab -->
|
||||
<foot-tab></foot-tab>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import statusNavSlot from '@/components/status-navs/status-nav-slot.vue';
|
||||
// 暂无更多组件
|
||||
import pitera from '@/components/nothing/pitera.vue';
|
||||
// 公告
|
||||
import lwNotice from '@/components/lw-notice/lw-notice.vue';
|
||||
export default {
|
||||
components:{
|
||||
pitera,
|
||||
statusNavSlot,
|
||||
lwNotice
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
role: 3, // 0:表示客户 1:表示工程师 2:表示客服 3:业务员
|
||||
statusHeight: uni.getSystemInfoSync().statusBarHeight + 50,
|
||||
messageNumber: 16 ,// 消息数量
|
||||
noticeList:['2021年11月06日公司团建,维修服务暂停一天服务暂停一天服务暂停一天。','51akslfj;dkpiojasdjf;j1ij'],//公告
|
||||
// 故障报修
|
||||
repairList:[
|
||||
{imgsrc:'/static/public/icon-home-repair.png',title:'报修'},
|
||||
{imgsrc:'/static/public/icon-home-dealt.png',title:'待办'},
|
||||
{imgsrc:'/static/public/icon-home-urge.png',title:'催一催'},
|
||||
],
|
||||
// 增值服务
|
||||
incrementList:[
|
||||
{imgsrc:'/static/public/icon-home-patrol.png',title:'巡检'},
|
||||
{imgsrc:'/static/public/icon-home-maintain.png',title:'保养'},
|
||||
{imgsrc:'/static/public/icon-home-movingScreen.png',title:'移屏'},
|
||||
{imgsrc:'/static/public/icon-home-screeRemoval.png',title:'拆屏'},
|
||||
],
|
||||
// 其他
|
||||
otherList:[
|
||||
{imgsrc:'/static/public/icon-home-largeScreen.png',title:'故障统计'},
|
||||
{imgsrc:'/static/public/icon-home-reportForm.png',title:'数据看板'},
|
||||
{imgsrc:'/static/public/icon-home-product.png',title:'新产品'},
|
||||
],
|
||||
// 解决方案
|
||||
solutionList:[
|
||||
{imgsrc:'/static/deleteImg/flying-img01.png',title:'控制室解决方案'},
|
||||
{imgsrc:'/static/deleteImg/flying-img02.png',title:'户外屏解决方案'},
|
||||
{imgsrc:'/static/deleteImg/flying-img03.png',title:'会议室解决方案'},
|
||||
{imgsrc:'/static/deleteImg/flying-img04.png',title:'实体店解决方案'},
|
||||
],
|
||||
// 项目维修
|
||||
projectRepairList:[
|
||||
{imgsrc:'/static/public/icon-home-staySingle.png',title:'待接单',num:0},
|
||||
{imgsrc:'/static/public/icon-home-stayImplement.png',title:'待执行',num:99},
|
||||
{imgsrc:'/static/public/icon-home-repairIng.png',title:'维修中',num:6},
|
||||
],
|
||||
// 工单数据
|
||||
workOrderList:[
|
||||
{imgsrc:'/static/public/icon-home-abnormalSingle.png',title:'异常单',num:0},
|
||||
{imgsrc:'/static/public/icon-home-overdueSingle.png',title:'逾期单',num:0},
|
||||
{imgsrc:'/static/public/icon-home-overtime.png',title:'超时单 ',num:0},
|
||||
{imgsrc:'/static/public/icon-home-workOrderPool.png',title:'工单池',num:6},
|
||||
],
|
||||
// 结算情况
|
||||
settlementList:[
|
||||
{imgsrc:'/static/public/icon-home-stayCollection.png',title:'待收款',num:0},
|
||||
{imgsrc:'/static/public/icon-home-received.png',title:'已收款',num:6},
|
||||
{imgsrc:'/static/public/icon-home-commission.png',title:'佣金',num:0},
|
||||
],
|
||||
// 待办工单
|
||||
stayWorkOrderList:[
|
||||
{imgsrc:'/static/public/icon-home-stayImplement.png',title:'待受理',num:0},
|
||||
{imgsrc:'/static/public/icon-home-stayAssign.png',title:'待指派',num:6},
|
||||
{imgsrc:'/static/public/icon-home-stayRepair.png',title:'待维修',num:6},
|
||||
{imgsrc:'/static/public/icon-home-returnVisit.png',title:'待回访',num:0},
|
||||
],
|
||||
// 待办事件
|
||||
stayEventList:[
|
||||
{imgsrc:'/static/public/icon-home-stayBatch.png',title:'待审批',num:0},
|
||||
{imgsrc:'/static/public/icon-home-stayCollection.png',title:'待收款',num:0},
|
||||
{imgsrc:'/static/public/icon-home-received.png',title:'已收款',num:0},
|
||||
],
|
||||
// 数据查询
|
||||
dataQueryList:[
|
||||
{imgsrc:'/static/public/icon-home-checkCustomer.png',title:'查客户',num:0},
|
||||
{imgsrc:'/static/public/icon-home-checkProject.png',title:'查项目',num:0},
|
||||
{imgsrc:'/static/public/icon-home-checkSparePart.png',title:'查备件',num:0},
|
||||
],
|
||||
// 常见故障
|
||||
faultsList:[
|
||||
{
|
||||
imgsrc:'/static/deleteImg/flying-img05.png',
|
||||
title:'1.启动时提示“大屏幕系统没有找到”',
|
||||
content:'故障原因:串口线或者USB线与发送卡没连接;电脑 COM或者USB口坏;串口线或者USB线坏;发送卡坏;没 有安装USB驱动。',
|
||||
views:4399
|
||||
},
|
||||
{
|
||||
imgsrc:'/static/deleteImg/flying-img05.png',
|
||||
title:'1.启动时提示“大屏幕系统没有找到”',
|
||||
content:'故障原因:串口线或者USB线与发送卡没连接;电脑 COM或者USB口坏;串口线或者USB线坏;发送卡坏;没 有安装USB驱动。',
|
||||
views:4399
|
||||
},
|
||||
{
|
||||
imgsrc:'/static/deleteImg/flying-img05.png',
|
||||
title:'1.启动时提示“大屏幕系统没有找到”',
|
||||
content:'故障原因:串口线或者USB线与发送卡没连接;电脑 COM或者USB口坏;串口线或者USB线坏;发送卡坏;没 有安装USB驱动。',
|
||||
views:4399
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
|
@ -22,11 +317,13 @@
|
|||
this.$toolAll.tools.obtainUrl();
|
||||
},
|
||||
methods: {
|
||||
goNoticeDetail(){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
page{background-color: #f7f7f7;}
|
||||
</style>
|
||||
|
|
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 794 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 827 B |
After Width: | Height: | Size: 868 B |
After Width: | Height: | Size: 981 B |