Browse Source

Merge remote-tracking branch 'origin/master'

master
liutong 1 year ago
parent
commit
daf370c3db
  1. 2
      components/AQ/AQTabber.vue
  2. 37
      pages.json
  3. 373
      pages/common/feedback.vue
  4. 43
      pages/common/privacy_agreement.vue
  5. 158
      pages/student/my/lesson_consumption.vue
  6. 36
      pages/student/my/my.vue
  7. 158
      pages/student/my/my_members.vue
  8. 22
      pages/student/my/personal_data.vue
  9. 17
      pages/student/my/set_up.vue
  10. 106
      pages/student/my/update_pass.vue

2
components/AQ/AQTabber.vue

@ -27,7 +27,7 @@
methods: { methods: {
async init(){ async init(){
uni.setStorageSync('userType','1') uni.setStorageSync('userType','3')
let userType = uni.getStorageSync('userType') let userType = uni.getStorageSync('userType')
this.userType = userType this.userType = userType

37
pages.json

@ -99,6 +99,15 @@
"navigationBarTextStyle": "black" "navigationBarTextStyle": "black"
} }
}, },
{
"path" : "pages/student/my/update_pass",
"style": {
"navigationBarTitleText": "修改密码",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
},
{ {
"path" : "pages/common/feedback", "path" : "pages/common/feedback",
"style": { "style": {
@ -108,6 +117,34 @@
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{
"path" : "pages/student/my/lesson_consumption",
"style": {
"navigationBarTitleText": "课时消耗",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#333333",
"navigationBarTextStyle": "white"
}
},
{
"path" : "pages/student/my/my_members",
"style": {
"navigationBarTitleText": "我的成员",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#333333",
"navigationBarTextStyle": "white"
}
},
{
"path" : "pages/student/my/personal_data",
"style": {
"navigationBarTitleText": "个人资料",
"navigationStyle": "default",
"navigationBarBackgroundColor": "#333333",
"navigationBarTextStyle": "white"
}
},

373
pages/common/feedback.vue

@ -1,189 +1,202 @@
<!--授课统计-详情--> <!--授课统计-详情-->
<template> <template>
<view class="main_box"> <view class="main_box">
<view class="main_section"> <view class="main_section">
<view class="section"> <view class="section">
<view class="text_input"> <view class="text_input">
<fui-textarea placeholder="请输入反馈内容"></fui-textarea> <fui-textarea placeholder="请输入反馈内容"></fui-textarea>
</view> </view>
</view> </view>
<view class="section"> <view class="section">
<view class="upload_box"> <view class="upload_box">
<view>上传图片</view> <view>上传图片</view>
<AQUplodeImgMulti :inputName="`images_arr`" :inputValue="formData.images_arr || []" @AQUploadSuccess="AQUploadSuccess"/> <AQUplodeImgMulti :inputName="`images_arr`" :inputValue="formData.images_arr || []"
</view> @AQUploadSuccess="AQUploadSuccess" />
</view> </view>
</view>
<view class="section">
<view class="input_box"> <view class="section">
<fui-input label="邮箱方式" borderTop placeholder="请输入邮箱"></fui-input> <view class="input_box">
</view> <fui-input label="邮箱方式" borderTop placeholder="请输入邮箱"></fui-input>
</view> </view>
</view>
<view class="btn">提交</view>
</view> <view class="describe">
</view> 反馈的相关问题会第一时间通过邮箱解答
</view>
<view class="btn">提交</view>
</view>
</view>
</template> </template>
<script> <script>
import user from '@/api/user.js'; import user from '@/api/user.js';
import AQUplodeImgMulti from '@/components/AQ/AQUplodeImgMulti'; import AQUplodeImgMulti from '@/components/AQ/AQUplodeImgMulti';
import AQTabber from "@/components/AQ/AQTabber" import AQTabber from "@/components/AQ/AQTabber"
export default { export default {
components: { components: {
AQTabber, AQTabber,
AQUplodeImgMulti, AQUplodeImgMulti,
}, },
data() { data() {
return { return {
formData:{ formData: {
images_arr:[] images_arr: []
}, },
// //
show_course:false,// show_course: false, //
// //
course_name:'课程',// course_name: '课程', //
options_course: [ options_course: [{
{ text: '请选择课程',
text: '请选择课程', value: '',
value: '', checked: true
checked: true }, {
}, { text: '羽毛球课程1',
text: '羽毛球课程1', value: '1'
value: '1' }, {
}, { text: '篮球课程2',
text: '篮球课程2', value: '2'
value: '2' }],
}
], //
show_classroom: false, //
// //
show_classroom:false,// classroom_name: '课室', //
// options_classroom: [{
classroom_name:'课室',// text: '请选择课室',
options_classroom: [ value: '',
{ checked: true
text: '请选择课室', }, {
value: '', text: '羽毛球201',
checked: true value: '1'
}, { }, {
text: '羽毛球201', text: '篮球室101',
value: '1' value: '2'
}, { }],
text: '篮球室101', }
value: '2' },
} onLoad() {},
], methods: {
} //######AQ######
}, //
onLoad() { AQUploadSuccess(res) {
}, console.log('接收AQ上传回调xxx1', res)
methods: { // 使 split
//######AQ###### let _inputValue = []
// if (res.filePathArr.length) {
AQUploadSuccess(res){ _inputValue = res.filePathArr
console.log('接收AQ上传回调xxx1',res) }
// 使 split this.formData[res.inputName] = _inputValue
let _inputValue = [] // console.log('AQxxx1',res)
if(res.filePathArr.length){ // console.log('AQxxx2',this.formData.member_store_certification_arr)
_inputValue = res.filePathArr },
} }
this.formData[res.inputName]=_inputValue }
// console.log('AQxxx1',res)
// console.log('AQxxx2',this.formData.member_store_certification_arr)
},
}
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.main_box {
.main_box{ background: #292929;
background: #292929 ; }
}
//
// .navbar_section {
.navbar_section{ display: flex;
display: flex; justify-content: center;
justify-content: center; align-items: center;
align-items: center; background: #29d3b4;
background: #29d3b4;
.title{ .title {
padding: 20rpx 0; padding: 20rpx 0;
font-size: 30rpx; font-size: 30rpx;
color: #315d55; color: #315d55;
} }
} }
.main_section{ .main_section {
min-height: 100vh; min-height: 100vh;
background: #292929 100%; background: #292929 100%;
padding: 0 0rpx; padding: 0 0rpx;
padding-top: 32rpx; padding-top: 32rpx;
padding-bottom: 150rpx; padding-bottom: 150rpx;
font-size: 28rpx; font-size: 28rpx;
color: #fff; color: #fff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 20rpx; gap: 20rpx;
.section{ .section {
background-color: #434544; background-color: #434544;
padding: 40rpx 40rpx; padding: 40rpx 40rpx;
.text_input{
border: 1px solid #434544; .text_input {
background-color: #434544 !important; border: 1px solid #434544;
::v-deep .fui-textarea__wrap{ background-color: #434544 !important;
border: 1px solid #797979;
background-color: #434544 !important; ::v-deep .fui-textarea__wrap {
} border: 1px solid #797979;
::v-deep .fui-textarea__background{ background-color: #434544 !important;
border: 0; }
background-color: #434544 !important;
} ::v-deep .fui-textarea__background {
} border: 0;
.upload_box{ background-color: #434544 !important;
display: flex; }
flex-direction: column; }
gap: 20rpx;
} .upload_box {
.input_box{ display: flex;
padding: 0; flex-direction: column;
color: #fff; gap: 20rpx;
::v-deep .fui-input__wrap{ }
background: #434544 !important;
padding-left: 0 !important; .input_box {
} padding: 0;
::v-deep .fui-input__label{ color: #fff;
span{
color: #fff !important; ::v-deep .fui-input__wrap {
} background: #434544 !important;
} padding-left: 0 !important;
::v-deep .uni-input-input{ }
color: #fff;
} ::v-deep .fui-input__label {
::v-deep .fui-input__background{ span {
background: #434544 !important; color: #fff !important;
} }
} }
}
.btn{ ::v-deep .uni-input-input {
margin: 0 auto; color: #fff;
margin-top: 40rpx; }
border: 1px solid #25a18b;
color: #25a18b; ::v-deep .fui-input__background {
width: 80%; background: #434544 !important;
height: 80rpx; }
line-height: 80rpx; }
text-align: center; }
}
.btn {
} margin: 0 auto;
margin-top: 40rpx;
border: 1px solid #25a18b;
color: #25a18b;
width: 80%;
height: 80rpx;
line-height: 80rpx;
text-align: center;
}
}
.describe {
color: #999999;
padding-left: 30rpx;
}
</style> </style>

43
pages/common/privacy_agreement.vue

@ -1,6 +1,6 @@
<template> <template>
<view> <view class="assemble">
<view class="html-style" v-html="text"></view>
</view> </view>
</template> </template>
@ -8,15 +8,46 @@
export default { export default {
data() { data() {
return { return {
type: 1, // 1,2
text: '',
} }
}, },
onLoad(item) {
console.log(item.type, '类型')
this.init(item.type)
},
methods: { methods: {
//
init(type) {
if (type == 1) {
//
this.text = '用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议用户协议'
uni.setNavigationBarTitle({
title: '用户协议'
});
} else if (type == 2) {
//
this.text = '隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略隐私策略'
uni.setNavigationBarTitle({
title: '隐私策略'
});
}
}
} }
} }
</script> </script>
<style> <style lang="less" scoped>
.assemble {
width: 100%;
height: 100vh;
overflow: auto;
background-color: #fff;
}
</style> .html-style {
padding: 10rpx 20rpx;
line-height: 1.8;
font-size: 30rpx;
}
</style>

158
pages/student/my/lesson_consumption.vue

@ -0,0 +1,158 @@
<template>
<view class="assemble">
<view style="height: 50rpx;"></view>
<view class="ul">
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">篮球少儿课</view>
<view class="date">上课时间2020.05.30 15:30 - 17:30</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">1课时</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
.assemble {
width: 100%;
height: 100vh;
background: #333333;
overflow: auto;
}
.ul {
display: flex;
flex-direction: column;
gap: 12rpx;
background-color: #fff;
width: 90%;
margin: 0 auto 30rpx;
padding: 26rpx;
border-radius: 16rpx;
}
.li {
padding: 30rpx 20rpx;
border: 1px solid #29D3B4;
border-radius: 18rpx;
background-color: rgba(41, 211, 180, 0.16);
font-size: 26rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.left {
display: flex;
flex-direction: column;
gap: 15rpx;
}
.btn {
width: 110rpx;
height: 44rpx;
line-height: 44rpx;
border-radius: 8rpx;
background-color: rgba(41, 211, 180, 1);
color: rgba(255, 255, 255, 1);
font-size: 20rpx;
text-align: center;
}
</style>

36
pages/student/my/my.vue

@ -5,7 +5,7 @@
<!--用户信息--> <!--用户信息-->
<view class="user_section"> <view class="user_section">
<view class="box"> <view class="box">
<view class="left"> <view class="left" @click="personal_data">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image> <image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="name">包子皮</view> <view class="name">包子皮</view>
</view> </view>
@ -44,11 +44,11 @@
<view class="main_section"> <view class="main_section">
<view class="section_box"> <view class="section_box">
<view class="item" style="border-radius: 16rpx 16rpx 0 0;"> <view class="item" style="border-radius: 16rpx 16rpx 0 0;" @click="lesson_consumption">
<view>课时消耗</view> <view>课时消耗</view>
</view> </view>
<view class="item"> <view class="item" @click="my_members">
<view>我的成员</view> <view>我的成员</view>
<view></view> <view></view>
</view> </view>
@ -68,7 +68,7 @@
<view>负责人</view> <view>负责人</view>
<view></view> <view></view>
</view> </view>
<view class="item"> <view class="item" @click="feedback">
<view>意见反馈</view> <view>意见反馈</view>
<view></view> <view></view>
</view> </view>
@ -81,8 +81,12 @@
</template> </template>
<script> <script>
import AQTabber from "@/components/AQ/AQTabber.vue"
import user from '@/api/user.js'; import user from '@/api/user.js';
export default { export default {
components: {
AQTabber,
},
data() { data() {
return { return {
@ -96,6 +100,30 @@
url: '/pages/student/my/set_up' url: '/pages/student/my/set_up'
}) })
}, },
//
feedback(){
uni.navigateTo({
url: '/pages/common/feedback'
})
},
//
lesson_consumption(){
uni.navigateTo({
url: '/pages/student/my/lesson_consumption'
})
},
//
my_members(){
uni.navigateTo({
url: '/pages/student/my/my_members'
})
},
//
personal_data(){
uni.navigateTo({
url: '/pages/student/my/personal_data'
})
}
} }
} }
</script> </script>

158
pages/student/my/my_members.vue

@ -0,0 +1,158 @@
<template>
<view class="assemble">
<view style="height: 50rpx;"></view>
<view class="ul">
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="title">智卓燕</view>
<view class="date">哥哥</view>
</view>
<view class="right">
<view class="btn" style="background-color: #29d3b4;">5课时</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
.assemble {
width: 100%;
height: 100vh;
background: #333333;
overflow: auto;
}
.ul {
display: flex;
flex-direction: column;
gap: 12rpx;
background-color: #fff;
width: 90%;
margin: 0 auto 30rpx;
padding: 26rpx;
border-radius: 16rpx;
}
.li {
padding: 30rpx 20rpx;
border: 1px solid #29D3B4;
border-radius: 18rpx;
background-color: rgba(41, 211, 180, 0.16);
font-size: 26rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.left {
display: flex;
flex-direction: column;
gap: 15rpx;
}
.btn {
width: 110rpx;
height: 44rpx;
line-height: 44rpx;
border-radius: 8rpx;
background-color: rgba(41, 211, 180, 1);
color: rgba(255, 255, 255, 1);
font-size: 20rpx;
text-align: center;
}
</style>

22
pages/student/my/personal_data.vue

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

17
pages/student/my/set_up.vue

@ -1,9 +1,9 @@
<template> <template>
<view class="assemble"> <view class="assemble">
<view style="height: 30rpx;"></view> <view style="height: 30rpx;"></view>
<view class="option">修改密码</view> <view class="option" @click="update_pass()">修改密码</view>
<view class="option">用户协议</view> <view class="option" @click="privacy_agreement(1)">用户协议</view>
<view class="option">隐私策略</view> <view class="option" @click="privacy_agreement(2)">隐私策略</view>
<view class="option">清空缓存</view> <view class="option">清空缓存</view>
<view style="width:90%;margin: 60rpx auto;"> <view style="width:90%;margin: 60rpx auto;">
@ -20,7 +20,16 @@
} }
}, },
methods: { methods: {
privacy_agreement(type){
uni.navigateTo({
url: '/pages/common/privacy_agreement?type='+type
})
},
update_pass(){
uni.navigateTo({
url: '/pages/student/my/update_pass'
})
}
} }
} }
</script> </script>

106
pages/student/my/update_pass.vue

@ -0,0 +1,106 @@
<template>
<view>
<view class="title">
<view :class="{'green-text': tset_style === 1}">1.验证手机号码</view>
<view :class="{'green-text': tset_style === 2}">2.设置新密码</view>
</view>
<view :style="{'background-color':'#fff','width':'100%','height':'100vh' }">
<view style="width: 95%;height: 30rpx;"></view>
<view v-if="tset_style == 1">
<view class="describe">
为保障您的账号安全修改密码前请填写原密码
</view>
<view style="width: 95%;margin:30rpx auto;">
<fui-input borderTop placeholder="请输入原登录密码" v-model="user" @input="input"
backgroundColor="#f2f2f2"></fui-input>
</view>
</view>
<view v-if="tset_style == 2">
<view style="width: 95%;margin:30rpx auto;">
<fui-input borderTop placeholder="请设置6-20位新的登录密码" v-model="user" @input="input"
backgroundColor="#f2f2f2"></fui-input>
</view>
<view style="width: 95%;margin: auto;">
<fui-input borderTop :padding="['20rpx','32rpx']" v-model="code" placeholder="请再次输入新的登录密码" @input="input"
backgroundColor="#f2f2f2">
</fui-input>
</view>
</view>
<view style="width: 95%;margin:60rpx auto;">
<fui-button background="#00be8c" radius="5rpx" @click="nextStep" v-if="tset_style == 1">下一步</fui-button>
<fui-button background="#00be8c" radius="5rpx" @click="submit" v-if="tset_style == 2">提交</fui-button>
<view style="width: 95%;margin:60rpx auto;">
<fui-button background="#fff" radius="5rpx" @click="forgot" color="#999999" v-if="tset_style == 1">忘记原密码</fui-button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
code: '',
user: '',
tset_style: 1,
}
},
onLoad() {
},
methods: {
sendCode() {
//
setTimeout(() => {
//
//...
//success
this.$refs.fui_cdv && this.$refs.fui_cdv.success()
}, 800)
},
nextStep(){
this.tset_style = 2
},
forgot() {
uni.navigateTo({
url: '/pages/student/login/forgot'
})
},
}
}
</script>
<style lang="less" scoped>
page {
font-weight: normal;
}
.fui-section__title {
margin-left: 32rpx;
}
.fui-left__icon {
padding-right: 24rpx;
}
.title {
display: flex;
justify-content: space-around;
align-items: center;
height: 100rpx;
width: 100%;
background-color: #fff;
font-size: 26rpx;
border: 4rpx #f5f5f5 solid;
}
.green-text{
color: #36d6b9;
}
.describe{
color: #999999;
padding-left: 30rpx;
}
</style>
Loading…
Cancel
Save