h5端完成
parent
1d674009d2
commit
519f4a8687
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 2.9 KiB |
69
src/App.vue
69
src/App.vue
|
@ -6,7 +6,18 @@
|
|||
|
||||
<style>
|
||||
/* 引入字体 */
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFangSC';
|
||||
src: url('./assets/css/common/PingFangSC-Semibold.otf');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Fzcs-Gbk';
|
||||
src: url('./assets/css/common/Fzcs-Gbk.ttf');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
*{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
@ -911,16 +922,17 @@ textarea {
|
|||
|
||||
/* 弹窗 */
|
||||
.my-confirm-bg{
|
||||
width: 100%;
|
||||
width: 100vw;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,.5);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 998;
|
||||
}
|
||||
.my-confirm{
|
||||
width: 5rem;
|
||||
padding: .4rem .5rem;
|
||||
width: 4rem;
|
||||
padding: .4rem .3rem;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: .3rem;
|
||||
box-shadow: 0 0 .13rem rgba(29,47,67,.1);
|
||||
|
@ -933,25 +945,26 @@ textarea {
|
|||
.my-confirm>p{
|
||||
font-size: .28rem;
|
||||
line-height: 1.5;
|
||||
text-align: justify;
|
||||
text-align: center;
|
||||
}
|
||||
.confirm-btns{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
justify-content: space-between;
|
||||
margin-top: .4rem;
|
||||
}
|
||||
.confirm-btns>span{
|
||||
width: 1.4rem;
|
||||
width: 1.6rem;
|
||||
line-height: .5rem;
|
||||
border-radius: .25rem;
|
||||
background-color: #333fc9;
|
||||
border: .02rem solid #333fc9;
|
||||
background-color: #FFFFFF;
|
||||
font-size: .26rem;
|
||||
color: #FFFFFF;
|
||||
color: #333fc9;
|
||||
text-align: center;
|
||||
margin: 0 .15rem;
|
||||
}
|
||||
.confirm-btns>span:first-child{
|
||||
background-color: #ff7716;
|
||||
background-color: #333fc9;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 咨询师详情页 */
|
||||
|
@ -1684,6 +1697,7 @@ textarea::-webkit-input-placeholder{
|
|||
height: 0;
|
||||
padding: 0 .3rem;
|
||||
background-color: #FFFFFF;
|
||||
margin-top: .02rem;
|
||||
margin-bottom: .48rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
@ -1693,6 +1707,12 @@ textarea::-webkit-input-placeholder{
|
|||
align-items: center;
|
||||
height: .7rem;
|
||||
}
|
||||
.report-list>li:first-child{
|
||||
margin-top: .15rem;
|
||||
}
|
||||
.report-list>li:last-child{
|
||||
margin-bottom: .15rem;
|
||||
}
|
||||
.report-list>li p{
|
||||
width: calc(100% - 2.2rem);
|
||||
font-size: .28rem;
|
||||
|
@ -1707,8 +1727,6 @@ textarea::-webkit-input-placeholder{
|
|||
color: #999999;
|
||||
}
|
||||
.report-list.open{
|
||||
margin-top: .02rem;
|
||||
padding: .15rem .3rem;
|
||||
height: auto;
|
||||
}
|
||||
.feedback-btn{
|
||||
|
@ -2231,7 +2249,9 @@ textarea::-webkit-input-placeholder{
|
|||
.edit-btn{
|
||||
width: 1.5rem;
|
||||
height: .6rem;
|
||||
border: .02rem solid #3844ce;
|
||||
background-color: #3844ce;
|
||||
color: #FFFFFF;
|
||||
font-size: .3rem;
|
||||
line-height: .6rem;
|
||||
border-radius: .1rem;
|
||||
|
@ -2250,6 +2270,10 @@ textarea::-webkit-input-placeholder{
|
|||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.edit-btn-other{
|
||||
background-color: #FFFFFF;
|
||||
color: #3844ce;
|
||||
}
|
||||
.personal-item .left{
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
@ -2338,4 +2362,23 @@ textarea::-webkit-input-placeholder{
|
|||
.bottom-box{
|
||||
margin-bottom: 1.3rem;
|
||||
}
|
||||
|
||||
|
||||
/* 提示框 */
|
||||
.toast{
|
||||
width: 3rem;
|
||||
padding: .2rem .25rem;
|
||||
background-color: rgba(255,255,255,.8);
|
||||
color: #333333;
|
||||
border-radius: .1rem;
|
||||
font-size: .28rem;
|
||||
line-height: 1.4;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
40
src/main.js
40
src/main.js
|
@ -8,23 +8,33 @@ import router from './router'
|
|||
Vue.prototype.host = 'https://ypzy.emingren.com'
|
||||
Vue.prototype.HOME = '/api'
|
||||
|
||||
|
||||
// 添加请求拦截器具
|
||||
axios.interceptors.request.use(config => {
|
||||
if (config.url!="/api/api/user/login-by-Phone"&&config.url!="/api/api/common/send-sms-captcha") {
|
||||
if (!localStorage.userData) {
|
||||
router.replace('/login');
|
||||
return config
|
||||
}else{
|
||||
config.headers.Authorization = "Bearer "+JSON.parse(localStorage.userData).token
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return config
|
||||
if (config.url != "/api/api/user/login-by-Phone" && config.url != "/api/api/common/send-sms-captcha") {
|
||||
if (!localStorage.userData) {
|
||||
router.replace('/login');
|
||||
return config
|
||||
} else {
|
||||
config.headers.Authorization = "Bearer " + JSON.parse(localStorage.userData).token
|
||||
}
|
||||
}
|
||||
return config
|
||||
})
|
||||
|
||||
// 添加响应拦截器
|
||||
// axios.interceptors.response.use(response => {
|
||||
// // console.log(response);
|
||||
// let res = {}
|
||||
// res.status = response.status
|
||||
// res.data = response.data
|
||||
// return res;
|
||||
// }, function(err) {
|
||||
// return Promise.reject(err)
|
||||
// });
|
||||
|
||||
|
||||
Vue.use(VueAxios, axios)
|
||||
new Vue({
|
||||
router,
|
||||
render: h => h(App)
|
||||
router,
|
||||
render: h => h(App)
|
||||
}).$mount('#app')
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -256,9 +256,7 @@
|
|||
</script>
|
||||
|
||||
<style scoped>
|
||||
.expert-list>li{
|
||||
}
|
||||
.my-content{
|
||||
padding-top: 1rem;
|
||||
}
|
||||
.expert-list{
|
||||
margin-top: 1.2rem;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -150,6 +150,7 @@
|
|||
this.isScroll = true;
|
||||
window.addEventListener("scroll", this.eventScrollTop);
|
||||
this.consult_amount = (JSON.parse(localStorage.getItem("centerUserData"))).consult_amount;
|
||||
console.log(this.consult_amount,3636)
|
||||
},
|
||||
mounted() {
|
||||
this.getBanner();
|
||||
|
|
|
@ -70,8 +70,8 @@
|
|||
<!-- 手机验证弹窗 -->
|
||||
<div class="my-confirm-bg" v-show="openPhoneTips" @click="openPhoneTips = !openPhoneTips"></div>
|
||||
<div class="my-confirm my-confirm2" v-show="openPhoneTips">
|
||||
<!-- <p>{{ tipsMsg }}</p> -->
|
||||
<div class="confirm-btns">
|
||||
<p>{{ tipsMsg }}</p>
|
||||
<div class="confirm-btns confirm-btns-one">
|
||||
<span @click="openPhoneTips = false">确认</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -84,6 +84,7 @@
|
|||
data() {
|
||||
return {
|
||||
isScrollTop: false,
|
||||
tipsMsg: '',
|
||||
mode: 1, //登录方式
|
||||
openAgreement: false, //阅读协议弹窗
|
||||
isAgreement: true, //阅读协议状态
|
||||
|
@ -128,14 +129,14 @@
|
|||
// 手机号登录
|
||||
phoneLogin() {
|
||||
let that = this;
|
||||
var reg_tel =
|
||||
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
|
||||
var reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
|
||||
if (this.phoneNumber == "") {
|
||||
alert("请填写您的手机号码!");
|
||||
|
||||
this.openPhoneTips = true;
|
||||
this.tipsMsg = '请填写您的手机号码!'
|
||||
return false;
|
||||
} else if (!reg_tel.test(this.phoneNumber)) {
|
||||
alert("请正确填写您的手机号码!");
|
||||
this.openPhoneTips = true;
|
||||
this.tipsMsg = '请正确填写您的手机号码!'
|
||||
return false;
|
||||
}
|
||||
this.axios
|
||||
|
@ -202,4 +203,7 @@
|
|||
</script>
|
||||
|
||||
<style scoped>
|
||||
.confirm-btns-one{
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
created() {
|
||||
this.isScroll = true;
|
||||
window.addEventListener("scroll", this.eventScrollTop);
|
||||
|
||||
this.phoneData = this.$route.query.phone
|
||||
const TIME_COUNT = 60;
|
||||
if (!this.timer) {
|
||||
|
@ -100,10 +101,15 @@
|
|||
sms_code: this.value,
|
||||
})
|
||||
.then(function(res) {
|
||||
console.log(res.data,252525)
|
||||
localStorage.userData = JSON.stringify(res.data.data);
|
||||
if (res.data.code == 0) {
|
||||
that.getUserData();
|
||||
that.goPages();
|
||||
if(res.data.data.userType == 1){
|
||||
that.$router.push('/consultant');
|
||||
}else{
|
||||
that.$router.push('/index');
|
||||
}
|
||||
} else {
|
||||
window.alert(res.msg);
|
||||
}
|
||||
|
@ -113,21 +119,6 @@
|
|||
});
|
||||
},
|
||||
|
||||
// 跳转页面
|
||||
goPages(){
|
||||
this.userType = (JSON.parse(localStorage.getItem("centerUserData"))).type;
|
||||
console.log(this.userType,2525)
|
||||
if(this.userType == 1){
|
||||
this.$router.push({
|
||||
path: "/consultant",
|
||||
});
|
||||
}else{
|
||||
this.$router.push({
|
||||
path: "/index",
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
handleSubmit() {
|
||||
this.$emit("input", this.value);
|
||||
},
|
||||
|
|
|
@ -13,6 +13,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<div @click="btnFeedback()" class="bind-btn">提交</div>
|
||||
|
||||
<!-- 提示框 -->
|
||||
<div class="addr-select-bg" v-show="isToast"></div>
|
||||
<div class="toast" v-show="isToast">
|
||||
<p>{{toastText}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -23,6 +29,8 @@
|
|||
return {
|
||||
isScrollTop: false,
|
||||
content: "",
|
||||
isToast: false,
|
||||
toastText: ''
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -34,6 +42,11 @@
|
|||
methods: {
|
||||
btnFeedback() {
|
||||
if (this.content == "") {
|
||||
this.toastText = '反馈内容不能为空',
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
return;
|
||||
}
|
||||
this.axios
|
||||
|
@ -43,10 +56,15 @@
|
|||
},
|
||||
)
|
||||
.then(function(res) {
|
||||
window.alert(res.data.msg)
|
||||
this.toastText = res.data.msg,
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
this.$router.push('/ucenter');
|
||||
})
|
||||
.catch(function(error) {
|
||||
console.log(error);
|
||||
.catch(function(err) {
|
||||
window.alert(err.data.msg)
|
||||
});
|
||||
},
|
||||
// 滚动改变样式
|
||||
|
|
|
@ -24,6 +24,11 @@
|
|||
</ul>
|
||||
</div>
|
||||
<div class="bind-btn" @click="setInfo()">提交</div>
|
||||
<!-- 提示框 -->
|
||||
<div class="addr-select-bg" v-show="isToast"></div>
|
||||
<div class="toast" v-show="isToast">
|
||||
<p>{{toastText}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -35,7 +40,9 @@
|
|||
isScrollTop: false,
|
||||
myAvatar: '',
|
||||
nickName:'',
|
||||
userDataAll:[]
|
||||
userDataAll:[],
|
||||
isToast:false,
|
||||
toastText:''
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -81,8 +88,12 @@
|
|||
})
|
||||
.then(function(res) {
|
||||
that.getUserData();
|
||||
that.$router.push('/ucenter');
|
||||
console.log(res)
|
||||
that.toastText = res.data.msg,
|
||||
that.isToast = true,
|
||||
setTimeout(()=> {
|
||||
that.isToast = false;
|
||||
that.$router.push('/ucenter');
|
||||
}, 1000)
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -125,6 +125,12 @@
|
|||
<img @click="goPage('/expert')" src="../../../assets/images/user/seekcard.png">
|
||||
<img @click="closeEV()" src="../../../assets/images/user/close.png">
|
||||
</div>
|
||||
|
||||
<!-- 提示框 -->
|
||||
<div class="addr-select-bg" v-show="isToast"></div>
|
||||
<div class="toast" v-show="isToast">
|
||||
<p>{{toastText}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -135,6 +141,9 @@
|
|||
return {
|
||||
isScrollTop: false,
|
||||
|
||||
isToast: false, //是否显示提示框
|
||||
toastText:'', //提示内容
|
||||
|
||||
addrArray: [], //城市名称列表
|
||||
addrData: [], //考籍列表
|
||||
addrIndex: 0,
|
||||
|
@ -333,7 +342,11 @@
|
|||
.subject_radio_group_list[0].indexOf(item) > -1)
|
||||
if (limitSubid != -1 && date != -1) {
|
||||
// 待提交科目数组id存在限制科目的id
|
||||
console.log('选择科目冲突');
|
||||
this.toastText = '选择科目冲突',
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
} else {
|
||||
// 待提交科目数组id不存在限制科目的id
|
||||
this.subjectArray[index].isActive = !this.subjectArray[index].isActive;
|
||||
|
@ -355,12 +368,15 @@
|
|||
this.temporaryCode.splice(existSubid, 1);
|
||||
this.subjectArray[existsubIndex].isActive = false;
|
||||
} else {
|
||||
console.log('提示框:xxxx');
|
||||
this.toastText = '最多选择'+this.addrData[this.addrIndex].subject_max+'科',
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 单选
|
||||
|
||||
// 清空暂存编号
|
||||
this.temporaryCode = [];
|
||||
// 取消所有选中项
|
||||
|
@ -383,8 +399,18 @@
|
|||
// 获取考生信息
|
||||
setStudentInfo() {
|
||||
let that = this;
|
||||
if (that.temporaryCode.length != that.addrData[that.addrIndex].subject_max) {
|
||||
console.log('弹框提示,必须选择多少个科目');
|
||||
if(that.studentName == ''){
|
||||
this.toastText = '姓名不能为空',
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
}else if (that.temporaryCode.length != that.addrData[that.addrIndex].subject_max) {
|
||||
this.toastText = '必须选择'+this.addrData[this.addrIndex].subject_max+'科',
|
||||
this.isToast = true,
|
||||
setTimeout(()=> {
|
||||
this.isToast = false
|
||||
}, 1000)
|
||||
} else {
|
||||
let that = this;
|
||||
this.axios
|
||||
|
|
|
@ -18,15 +18,15 @@
|
|||
</div>
|
||||
</div>
|
||||
<!-- 免费咨询卡 -->
|
||||
<div class="user-receive" @click="toPage()" v-if="isUse == 0">
|
||||
<div class="user-receive" @click="toPage()" v-if="!isExpire">
|
||||
<img src="../../../assets/images/user/card.png" />
|
||||
<div class="receive-txt">
|
||||
<span class="use-btn" v-if="isReceive == 1">立即使用</span>
|
||||
<span class="receive-btn" v-if="isReceive == 0">立即领取</span>
|
||||
<p>有效期:2022.2.1-2022.2.15</p>
|
||||
<span class="use-btn" v-if="consult_amount == 1">立即使用</span>
|
||||
<span class="receive-btn" v-if="consult_amount == 0">立即领取</span>
|
||||
<p v-if="consult_amount == 1">有效期:{{startTime}}-{{endTime}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line" v-if="isReceive == 1"></div>
|
||||
<div class="line" v-if="consult_amount == 1"></div>
|
||||
<ul class="student-information">
|
||||
<li v-if="userData.mobile">
|
||||
<span><img src="../../../assets/images/user/icon-phone.png" /></span>
|
||||
|
@ -57,7 +57,7 @@
|
|||
<p>我的报告</p>
|
||||
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" />
|
||||
</div>
|
||||
<ul :class="{ 'report-list': true, 'open': isOpen }">
|
||||
<ul :class="{'report-list': true, 'open': isOpen}">
|
||||
<li v-for="(item,index) in reportData" :key="index" @click="goReport(item.id)">
|
||||
<p>{{item.title}}</p>
|
||||
<span>{{item.done_at}}</span>
|
||||
|
@ -80,9 +80,10 @@
|
|||
centerUserData: {
|
||||
mobile: "",
|
||||
},
|
||||
isExpire: false, //是否失效
|
||||
consult_amount: 0,
|
||||
reportData: [],
|
||||
isScrollTop: false,
|
||||
isReceive: 1, //是否领取咨询机会
|
||||
isUse: 0, //是否使用
|
||||
isOpen: false,
|
||||
userData: {
|
||||
|
@ -108,6 +109,9 @@
|
|||
update_time: "",
|
||||
user_code: "",
|
||||
},
|
||||
student_first_complete:'' ,//领取咨询卡时间
|
||||
startTime: '', //有效期开始时间
|
||||
endTime: '', //有效期结束
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -115,8 +119,13 @@
|
|||
window.addEventListener("scroll", this.eventScrollTop);
|
||||
this.getUserData();
|
||||
this.getevaluationList()
|
||||
this.consult_amount = (JSON.parse(localStorage.getItem("centerUserData"))).consult_amount;
|
||||
},
|
||||
mounted() {
|
||||
this.getDate();
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 获取报告列表
|
||||
getevaluationList() {
|
||||
let that = this
|
||||
|
@ -132,9 +141,9 @@
|
|||
|
||||
// 判断跳转方式
|
||||
toPage() {
|
||||
if (this.isReceive == 1) {
|
||||
if (this.consult_amount == 1) {
|
||||
this.$router.push("/expert");
|
||||
} else if (this.isReceive == 0) {
|
||||
} else if (this.consult_amount == 0) {
|
||||
this.$router.push("/information");
|
||||
} else {
|
||||
return false;
|
||||
|
@ -165,6 +174,25 @@
|
|||
});
|
||||
},
|
||||
|
||||
// 获取有效时期
|
||||
getDate() {
|
||||
let starTime = (JSON.parse(localStorage.getItem("centerUserData"))).student.student_first_complete;
|
||||
let date = new Date(starTime.replace(/-/g, '/'));
|
||||
this.startTime = date.getFullYear()+"."+(date.getMonth()+1)+"."+date.getDate(); //有效期开始时间
|
||||
|
||||
let date1 = new Date(starTime.replace(/-/g, '/'));
|
||||
date1.setDate(date.getDate()+7);
|
||||
this.endTime = date1.getFullYear()+"."+(date1.getMonth()+1)+"."+date1.getDate(); //有效期结束时间
|
||||
|
||||
// 获取当前时间
|
||||
let date2 = new Date();
|
||||
if(date1.setDate(date.getDate()+7) <= date2.setDate(date.getDate())){
|
||||
this.isExpire = true;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 退出登录
|
||||
outLogin(){
|
||||
localStorage.clear();
|
||||
|
|
Loading…
Reference in New Issue