add: 我的课程\线上培训班。培训管理\线上培训班。 空页面显示

main
hcj 4 months ago
parent 22784c38c7
commit 51fae596c6
  1. 10
      pages.json
  2. 105
      pages/index/onlineTestCourse/onlineCourseInfo.vue
  3. 13
      pages/index/onlineTestCourse/verciInput.vue
  4. BIN
      pages/index/testtraining/arr.png
  5. BIN
      pages/index/testtraining/noCourse.png
  6. BIN
      pages/index/testtraining/noEvaluate.png
  7. BIN
      pages/index/testtraining/noUsePerson.png
  8. BIN
      pages/index/testtraining/noregister.png
  9. BIN
      pages/index/testtraining/olCourse.png
  10. 252
      pages/index/testtraining/onLineCourse.vue
  11. 1276
      pages/index/testtraining/testtraining.vue
  12. 17
      pages/personal/courseSign/courseSign.vue
  13. 164
      pages/personal/myCourse/myCourse.vue
  14. 1130
      pages/personal/personal.vue
  15. 1017
      pages/personal/setup/accountoverview.vue
  16. 5
      pages/personal/setup/myreview.vue
  17. 308
      pages/personal/setup/peixunban.vue
  18. 239
      pages/personal/setup/usepeople.vue
  19. 4
      utils/http.js

@ -99,6 +99,13 @@
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path": "pages/index/testtraining/onLineCourse",
"style": {
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path": "pages/index/testtraining/teacherSign",
"style": {
@ -386,7 +393,8 @@
"style" :
{
"navigationBarTitleText" : "",
"navigationBarBackgroundColor": "#284CD1"
"navigationBarBackgroundColor": "#284CD1",
"onReachBottomDistance": 50
}
},
{

@ -0,0 +1,105 @@
<template>
<view class="courseInfo">
<view>xxxxx</view>
<view @click="startLearn">开始学习</view>
<view @click="openInputCode">输入口令</view>
<view @click="pay">付费学习</view>
<u-modal v-model="show">
<view class="slot-content">
<view v-if="toggleFlag === 'tolearn'">
<label>www.baidu.com</label>
</view>
<view v-else class="input-list">
<!-- input输入框 -->
<input class="input-item" v-if="focus" adjust-position="false" auto-blur="true"
@blur="inputCodeBlur" @input="inputCode" :focus="focus" v-model="code" @focus="inputFocus"
type="number" oneTimeCode maxlength="6" />
<!-- 验证码输入框 -->
<view class="code-list" @click="focusClick">
<view class="code-item" v-for="(item, index) in 6" :key="index"
:style="(index == code.length && focus ? 'border-color:#3c9cff;' : '')">{{ code[index] || ''
}}
</view>
</view>
</view>
</view>
</u-modal>
</view>
</template>
<script>
export default {
data() {
return {
toggleFlag:'',
show: false,
focus: false,
code: ''
}
},
methods: {
startLearn() {
this.show = true
this.toggleFlag = 'tolearn'
},
focusClick() {
this.focus = true
},
pay() {
console.log('pay for this');
},
openInputCode() {
this.show = true
},
inputCode(e) {
let value = e.detail.value
this.code = value
},
inputFocus(e) {
console.log(e);
},
inputCodeBlur(e) {
let value = e.detail.value
this.focus = false
}
}
}
</script>
<style lang="scss">
.courseInfo {
.slot-content {
font-size: 28rpx;
color: $u-content-color;
padding-left: 30rpx;
}
.input-list {
display: flex;
align-items: center;
.input-item {
width: 0rpx;
}
.code-list {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.code-item {
width: 80rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
border: 1rpx solid #eee;
border-radius: 10rpx;
}
}
}
}
</style>

@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
}
</script>
<style>
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,252 @@
<template>
<view class="onLineCourseWrap">
<view class="onLineTitle">
<img src="./olCourse.png" alt="">
<view>{{ '如何使用性能测试工具' }}</view>
</view>
<view class="onLineTime">时间: {{ '今日:20:00' }}</view>
<view class="onLineTeacher">讲师:{{ '独孤求败' }}</view>
<view class="onLine">职称:{{ '气宗大师' }}</view>
<view class="onLineContent">授课内容: {{ '教导令狐冲' }}</view>
<view class="onLineMask" v-show="maskShow">
<img src="./arr.png" alt="">
<view class="learnBtnWrap">
<view class="learnBtn" @click="startLearn('pay')">付费学习</view>
<view class="learnBtn" @click="startLearn('code')">输入口令学习</view>
</view>
</view>
<view v-show="!maskShow" class="startLeranBtn">开始学习</view>
<u-modal v-model="show" title="请输入口令" :show-confirm-button="false">
<view class="slot-content">
<view v-if="toggleFlag === 'tolearn'">
<label>www.baidu.com</label>
</view>
<view v-else class="input-list">
<!-- input输入框 -->
<input class="input-item" v-if="focus" adjust-position="false" auto-blur="true"
@blur="inputCodeBlur" @input="inputCode" :focus="focus" v-model="code" @focus="inputFocus"
type="number" oneTimeCode maxlength="6" />
<!-- 验证码输入框 -->
<view class="code-list" @click="focusClick">
<view class="code-item" v-for="(item, index) in 4" :key="index"
:style="(index == code.length && focus ? 'border-color:#3c9cff;' : '')">{{ code[index] || ''
}}
</view>
</view>
</view>
<view class="codeBtnCoup">
<view class="codeBtn canle" @click="show = false">取消</view>
<view class="codeBtn sure" @click="show = false">确定</view>
</view>
</view>
</u-modal>
</view>
</template>
<script>
export default {
data() {
return {
maskShow: true,
toggleFlag: '',
show: false,
focus: false,
code: ''
}
},
methods: {
startLearn() {
this.maskShow = !this.maskShow
},
startLearn(val) {
if (val == 'code') {
this.show = true
}
// this.toggleFlag = 'tolearn'
},
focusClick() {
this.focus = true
},
pay() {
console.log('pay for this');
},
openInputCode() {
this.show = true
},
inputCode(e) {
let value = e.detail.value
this.code = value
},
inputFocus(e) {
console.log(e);
},
inputCodeBlur(e) {
let value = e.detail.value
this.focus = false
}
}
}
</script>
<style lang="scss" scoped>
.onLineCourseWrap {
margin: 25rpx;
height: calc(100% - 50rpx);
background: #FFFFFF;
border-radius: 10rpx;
padding: 24rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #404040;
.onLineTitle {
font-weight: bold;
font-size: 28rpx;
color: #000000;
line-height: 46rpx;
margin: 30rpx 0;
display: flex;
align-items: center;
img{
width: 38rpx;
height: 38rpx;
margin-right: 20rpx;
}
}
.onLineTime {
margin: 15rpx 0;
}
.onLineTeacher {
margin: 15rpx 0;
}
.onLine {
margin: 15rpx 0;
}
.onLineContent {
margin: 15rpx 0;
}
.onLineMask {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #1B81F9;
background: linear-gradient(180deg, #ffffff07, #1B81F9);
img {
width: 46rpx;
height: 111rpx;
margin: 619rpx 0 0 50%;
}
.learnBtnWrap {
width: 279rpx;
margin-top: 200rpx;
margin-left: 50%;
transform: translate(-50%);
.learnBtn {
margin-bottom: 50rpx;
height: 67rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
box-shadow: 0rpx 1rpx 20rpx 1rpx rgba(13, 92, 187, 0.53);
border-radius: 33rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
line-height: 65rpx;
text-align: center;
}
}
}
.startLeranBtn {
position: fixed;
bottom: 69rpx;
width: 646rpx;
height: 70rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
box-shadow: 0rpx 1rpx 20rpx 1rpx rgba(13, 92, 187, 0.4);
border-radius: 35rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
line-height: 65rpx;
text-align: center;
}
.slot-content {
font-size: 28rpx;
color: $u-content-color;
padding-left: 30rpx;
}
.input-list {
padding-top: 20rpx;
display: flex;
align-items: center;
.input-item {
width: 0rpx;
}
.code-list {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
.code-item {
width: 80rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
border: 1rpx solid #eee;
border-radius: 10rpx;
background: #EAEEF3;
}
}
}
.codeBtnCoup {
padding: 20rpx;
display: flex;
justify-content: space-between;
margin-top: 40rpx;
.codeBtn {
width: 250rpx;
line-height: 70rpx;
border-radius: 35rpx;
text-align: center;
font-size: 28rpx;
color: #FFFFFF;
}
.sure{
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
}
.canle{
color: #666666;
border: 1px solid #E0E0E0;
}
}
// & >>>.u-model__title {
// font-weight: bold;
// }
}
</style>

File diff suppressed because it is too large Load Diff

@ -98,25 +98,31 @@ export default {
.scanSuc {
font-family: PingFang SC;
padding-top: 80rpx;
.className {
font-weight: bold;
font-size: 30rpx;
color: #000000;
line-height: 46rpx;
line-height: 35rpx;
margin: 30rpx;
}
.courseName {
font-weight: 500;
font-size: 30rpx;
color: #4d4d4d;
line-height: 46rpx;
// line-height: 46rpx;
margin-left: 30rpx;
}
.signBtn {
margin: 0 auto;
margin-top: 300rpx;
background-color: #4899f7;
margin-top: 350rpx;
// background-color: #4899f7;
background: linear-gradient(90deg, #5ea6fa, #1b7cf2);
color: #fff;
box-shadow: 0rpx 0rpx 20rpx 4rpx rgba(0, 0, 0, 0.219);
border-radius: 50%;
width: 250rpx;
height: 250rpx;
@ -126,6 +132,7 @@ export default {
flex-direction: column;
align-items: center;
justify-content: center;
img {
width: 50rpx;
height: 50rpx;
@ -133,6 +140,7 @@ export default {
}
}
}
.scanFail {
margin: 0 auto;
margin-top: 500rpx;
@ -140,6 +148,7 @@ export default {
text-align: center;
font-weight: bold;
font-size: 30rpx;
img {
width: 50rpx;
height: 50rpx;

@ -1,5 +1,19 @@
<template>
<view class="courseWrapper">
<view v-if="courseList.length">
<view class="onlineTrain">
<view class="onLineTitle">
<view class="onLineClassName">软测课堂</view>
<view class="onLineCourseTime">时间{{ '今日 20:00' }}</view>
</view>
<view class="onLineCourse">如何使用性能测试工具</view>
<view class="onLineTeacher">讲师: 风清扬老师</view>
<view class="onLineBtnWrap">
<view class="onLineBtn toLearn" @click="toLearn">去学习</view>
<view class="onLineBtn toPay" @click="toLearn">付费学习: {{ '9.9' }}</view>
</view>
</view>
</view>
<view v-if="courseList.length">
<view class="courseItem" v-for="course in courseList" :key="course.courseId">
<view class="courseName">{{ course.courseName }}</view>
@ -7,10 +21,13 @@
<view class="courseSource" @click="courseDialog">课程资料</view>
<view class="signInfo" :style="{ background: course.status ? '#28D17C' : '#FBA02A' }">{{
course.status ? '已签到' : '未签到'
}}</view>
}}</view>
</view>
</view>
<view class="mycourseWrapper" v-else> 暂未配置课程 </view>
<view class="mycourseWrapper" v-else>
<img src="../../index/testtraining/noCourse.png" alt="">
<view>暂未配置课程</view>
</view>
</view>
</template>
@ -19,28 +36,53 @@ export default {
data() {
return {
courseList: [],
total: 10,
classId: '',
queryParams: {
pageSize: 10,
pageNum: 1,
},
}
},
onLoad(options) {
console.log('进入course')
const classId = options.id
const className = options.name
console.log(options)
// console.log(options)
this.classId = classId
uni.setNavigationBarTitle({ title: className })
this.getCourseList(classId)
this.getCourseList()
},
methods: {
async getCourseList(classId) {
this.http.quickGet(`/course/myCourse/class/${classId}`, true).then((res) => {
console.log(res)
toLearn() {
uni.navigateTo({
url: '/pages/index/testtraining/onLineCourse'
})
},
pagionChange(e) {
console.log(e);
this.queryParams.pageNum = e.current
this.getCourseList()
},
async getCourseList() {
const params = this.queryParams
this.http.get(`/course/myCourse/class/${this.classId}`, params, true).then((res) => {
this.total = res.data.total
this.courseList = res.data.rows
})
},
async onReachBottom() {
if (this.total <= this.queryParams.pageSize) {
return
}
this.queryParams.pageSize += 10
this.getCourseList()
console.log("onReachBottom");
},
courseDialog() {
const url = 'https://www.bjkeyware.com'
const url = 'https://www.bjkeyware.com'
uni.showModal({
title: '请去PC端下载资料',
content: 'PC端网址:'+url,
content: 'PC端网址:' + url,
showCancel: false,
confirmText: '复制网址',
success: function (res) {
@ -67,13 +109,20 @@ export default {
}
</script>
<style scoped>
.courseWrapper {
}
<style lang="scss" scoped>
.mycourseWrapper {
font-size: 23px;
font-weight: bold;
color: #9D9D9D;
text-align: center;
line-height: 300rpx;
margin-top: 100px;
img {
width: 338rpx;
height: 254rpx;
}
}
.courseItem {
position: relative;
margin: 25rpx;
@ -88,6 +137,7 @@ export default {
font-size: 24rpx;
line-height: 50rpx;
}
.courseName {
/* width: 369rpx; */
/* height: 29rpx; */
@ -95,12 +145,15 @@ export default {
font-size: 30rpx;
color: #000000;
}
.courseTime {
color: #4d4d4d;
}
.courseSource {
color: #2853e4;
}
.signInfo {
width: 110rpx;
/* height: 40rpx; */
@ -112,4 +165,87 @@ export default {
top: 85rpx;
right: 25rpx;
}
.onlineTrain {
margin: 30rpx 30rpx;
height: 270rpx;
background: #FFFFFF;
border-radius: 10rpx;
}
.onLineTitle {
display: flex;
font-family: PingFang SC;
font-weight: 500;
height: 88rpx;
line-height: 54rpx;
justify-content: space-between;
}
.onLineClassName {
height: 54rpx;
width: 183rpx;
text-align: center;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius: 9rpx 0rpx 46rpx 0rpx;
font-size: 24rpx;
color: #FFFFFF;
}
.onLineCourse {
font-size: 28rpx;
line-height: 46rpx;
font-family: PingFang SC;
font-weight: bold;
color: #1A1A1A;
margin-left: 24rpx;
}
.onLineCourseTime {
margin-left: 24rpx;
margin-right: 30rpx;
width: 174rpx;
line-height: 88rpx;
font-size: 22rpx;
color: #808080;
}
.onLineTeacher {
margin-top: 10rpx;
margin-left: 24rpx;
font-size: 24rpx;
font-weight: 500;
color: #666666;
line-height: 46rpx;
}
.onLineBtnWrap {
padding: 0 30rpx;
display: flex;
justify-content: flex-end;
}
.onLineBtn {
width: 209rpx;
height: 50rpx;
border-radius: 25rpx;
width: 209rpx;
width: 167rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 49rpx;
text-align: center;
}
.toLearn {
background: linear-gradient(90deg, #FB8C16, #FEC36E);
}
.toPay {
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border: 1px solid #AAD1FE;
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -26,7 +26,8 @@
</view>
</block>
<view v-else class="noreview">
暂无评价
<img style="width: 338rpx;height: 254rpx;" src="../../index/testtraining/noEvaluate.png" alt="">
<view>暂无评价</view>
</view>
</view>
</template>
@ -65,7 +66,7 @@
font-weight: bold;
color: #9D9D9D;
text-align: center;
margin-top: 40rpx;
margin-top: 100px;
}
.peixunbanpage {

@ -2,123 +2,243 @@
<view class="navTab">
<!-- <u-search v-model='keyware' placeholder='输入搜索内容' :actionStyle="customActionStyle"
showAction="true" actionText="搜索" :animation="false" @custom='seacrhko'></u-search> -->
<view v-if="signuplist.length>0">
<view v-for="(item,key) of signuplist" class="sign_list" :key="key">
<div class="sign_list" v-for="(item, key) of signuplist" :key="key">
<view style="display:flex;margin:0 12px 8px 0;justify-content: space-between;align-items: flex-end;">
<view class="rightb">
{{ item.trainClassName }}
</view>
</view>
<view class="fline"></view>
<view @click="catCourse(item)"
style="display: flex;justify-content: space-between;margin: 19px 15px 0 15px;align-items: center;">
<view style="color:#333333FF;font-size:13px;line-height:27px;">
<p>班级名称{{ item.trainClassName }}</p>
<!-- start_time -->
<p v-if="item.trainStartTime">
开课日期{{ item.trainStartTime.slice(0, 4) }}{{ item.trainStartTime.slice(5, 7) }}{{
item.trainStartTime.slice(8, 10) }}
</p>
<p v-if="item.trainEndTime">
结课时间{{ item.trainEndTime.slice(0, 4) }}{{ item.trainEndTime.slice(5, 7) }}{{
item.trainEndTime.slice(8, 10) }}
</p>
</view>
<div v-if="item.status == 1" class="sign_sataus"> 未开课 </div>
<div v-if="item.status == 2" class="sign_sataus"> 未开课 </div>
<div v-if="item.status == 3" class="sign_sataus" style="background: #FBA02A;"> 未开课 </div>
<div v-if="item.status == 4" class="sign_sataus" style="background: #28D17CFF;"> 开课中 </div>
<div v-if="item.status == 5" class="sign_sataus" style="background: #FE5555FF;"> 已结束 </div>
</view>
<view class="endClass">
<view class="reportUrl" @click="uploadReport('cat')">{{ item.reportName }}</view>
<view v-show="reportShow(item)" class="uploadBtn" @click="uploadReport">{{ item.reportName ?
'覆盖上传报告' : '上传结课报告' }}</view>
</view>
</div>
<view v-if="signuplist.length > 0">
<view v-for="(item, key) of signuplist" class="sign_list" :key="key">
<view style="display:flex;margin:0 12px 8px 0;justify-content: space-between;align-items: flex-end;">
<view class="rightb">
{{item.trainClassName}}
{{ item.trainClassName }}
</view>
<p v-if="item.registrationTime" style="font-size:24rpx;color: #808080;">报名时间{{ dateFormat(new Date(item.registrationTime))}} </p>
<p v-if="item.registrationTime" style="font-size:24rpx;color: #808080;">报名时间{{ dateFormat(new
Date(item.registrationTime)) }} </p>
</view>
<view class="fline"></view>
<view
@click="catCourse(item)"
<view @click="catCourse(item)"
style="display: flex;justify-content: space-between;margin: 19px 15px 0 15px;align-items: center;">
<view style="color:#333333FF;font-size:13px;line-height:27px;">
<p>班级名称{{item.trainClassName}}</p>
<view style="color:#333333FF;font-size:13px;line-height:27px;">
<p>班级名称{{ item.trainClassName }}</p>
<!-- start_time -->
<p v-if="item.trainStartTime" >开课日期{{item.trainStartTime.slice(0,4)}}{{item.trainStartTime.slice(5,7)}}{{item.trainStartTime.slice(8,10)}}</p>
<p v-if="item.trainEndTime" >结课时间{{item.trainEndTime.slice(0,4)}}{{item.trainEndTime.slice(5,7)}}{{item.trainEndTime.slice(8,10)}}</p>
<p v-if="item.trainStartTime">
开课日期{{ item.trainStartTime.slice(0, 4) }}{{ item.trainStartTime.slice(5, 7) }}{{
item.trainStartTime.slice(8, 10) }}
</p>
<p v-if="item.trainEndTime">
结课时间{{ item.trainEndTime.slice(0, 4) }}{{ item.trainEndTime.slice(5, 7) }}{{
item.trainEndTime.slice(8, 10) }}
</p>
</view>
<div v-if="item.status==1" class="sign_sataus" > 未开课 </div>
<div v-if="item.status==2" class="sign_sataus" > 未开课 </div>
<div v-if="item.status==3" class="sign_sataus" style="background: #FBA02A;"> 未开课 </div>
<div v-if="item.status==4" class="sign_sataus" style="background: #28D17CFF;"> 开课中 </div>
<div v-if="item.status==5" class="sign_sataus" style="background: #FE5555FF;"> 已结束 </div>
<div v-if="item.status == 1" class="sign_sataus"> 未开课 </div>
<div v-if="item.status == 2" class="sign_sataus"> 未开课 </div>
<div v-if="item.status == 3" class="sign_sataus" style="background: #FBA02A;"> 未开课 </div>
<div v-if="item.status == 4" class="sign_sataus" style="background: #28D17CFF;"> 开课中 </div>
<div v-if="item.status == 5" class="sign_sataus" style="background: #FE5555FF;"> 已结束 </div>
</view>
<view class="endClass">
<view class="reportUrl" @click="uploadReport('cat')">{{ item.reportName }}</view>
<view v-show="reportShow(item)" class="uploadBtn" @click="uploadReport">{{ item.reportName ?
'覆盖上传报告' : '上传结课报告' }}</view>
</view>
</view>
</view>
<view v-else style="font-size:46rpx;
font-weight: bold;
color: #9D9D9D; text-align:center;margin-top:100px">暂无报名信息</view>
<view v-else style="font-size:46rpx;font-weight: bold;color: #9D9D9D; text-align:center;margin-top:100px">
<img style="width: 338rpx;height: 254rpx;" src="../../index/testtraining/noregister.png" alt="">
<view>暂无报名信息</view>
</view>
<view style="height:10px;"></view>
</view>
</template>
<script>
import { dateFormat} from '@/utils/util.js'
export default {
data() {
return {
keyware:'',
customActionStyle: {
color: '#808080', //
fontSize: '16px' //
//
},
signuplist:[],
const endDay = 2
import { dateFormat } from '@/utils/util.js'
export default {
computed: {
reportShow(v) {
return function (val) {
const nowTime = new Date().getTime()
const endTime = new Date(val.trainEndTime).getTime()
const sub = (endTime - nowTime) / (1000 * 60 * 60 * 24)
// console.log(sub);
if (sub < endDay) {
return true
}
return false
}
},
onLoad() {
let wxUserInfo=uni.getStorageSync('wxUserInfo');
// ${wxUserInfo.phonenumber}
if(wxUserInfo){
// let phone='15802995503';
this.http.quickGet(`/train/myTrainingList`, true).then(res=>{
console.log('报名信息--',res)
this.signuplist=res.data.rows
})
}
},
methods: {
dateFormat,
seacrhko(){
},
data() {
return {
keyware: '',
customActionStyle: {
color: '#808080', //
fontSize: '16px' //
//
},
signupdetails(id){
uni.navigateTo({
url:`/pages/index/testtraining/signup?issueId=${id}&type=1`
})
},
catCourse(state){
console.log(state);
// if(state.status == '4'){
uni.navigateTo({
url:`/pages/personal/myCourse/myCourse?id=${state.trainClassId}&name=${state.trainClassName}`
})
// }
}
signuplist: [],
}
},
onLoad() {
let wxUserInfo = uni.getStorageSync('wxUserInfo');
// ${wxUserInfo.phonenumber}
if (wxUserInfo) {
// let phone='15802995503';
this.http.quickGet(`/train/myTrainingList`, true).then(res => {
console.log('报名信息--', res)
this.signuplist = res.data.rows
})
}
},
methods: {
dateFormat,
seacrhko() {
},
// onlineClass() {
// uni.navigateTo({
// url: `/pages/index/onlineTestCourse/onlineCourseInfo`
// })
// },
signupdetails(id) {
uni.navigateTo({
url: `/pages/index/testtraining/signup?issueId=${id}&type=1`
})
},
catCourse(state) {
console.log(state);
// if(state.status == '4'){
uni.navigateTo({
url: `/pages/personal/myCourse/myCourse?id=${state.trainClassId}&name=${state.trainClassName}`
})
// }
},
uploadReport(val) {
console.log(val);
const url = 'https://www.bjkeyware.com'
uni.showModal({
title: `请登录PC端${(val === 'cat') ? '查看' : '上传'}`,
content: 'PC端网址:' + url,
showCancel: false,
confirmText: '复制网址',
success: function (res) {
if (res.confirm) {
uni.setClipboardData({
data: url,
success: function () {
uni.showToast({
title: '复制成功',
})
},
fail: function () {
uni.showToast({
title: '复制失败',
})
},
})
console.log('用户点击确定')
}
},
})
}
}
}
</script>
<style>
.navTab{
padding:2vh 13px ;
}
.sign_list{
width: 100%;
background: #FFFFFF;
border-radius: 10px;
margin-bottom:20px;
padding-bottom:15px;
}
.rightb{
/* width: 183rpx; */
<style lang="scss">
.navTab {
padding: 2vh 13px;
}
.endClass {
color: #1F80F2;
display: flex;
justify-content: flex-end;
font-size: 24rpx;
line-height: 49rpx;
margin: 30rpx 0;
padding: 25rpx;
border-top: 1px solid #99999936;
;
align-content: center;
.reportUrl {}
.uploadBtn {
margin-left: 30rpx;
background: #EAF3FD;
border-radius: 20rpx;
border: 1px solid #AAD1FE;
padding: 0 20rpx;
height: 54rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius: 9px 0px 46px 0px;
color: #FFFFFF;
font-size:.8rem;
line-height: 54rpx;
text-align: center;
}
.fline{
width: 100%;
height: 1rpx;
border: 1px solid #999999;
opacity: 0.15;
}
.sign_sataus{
width: 75px;
height: 28px;
background: #A8AEB6;
border-radius: 13px;
font-size: 14px;
color: #FFFFFF;
line-height:28px;
text-align: center;
}
}
.sign_list {
width: 100%;
background: #FFFFFF;
border-radius: 10px;
margin-bottom: 20px;
// padding-bottom: 15px;
}
.rightb {
/* width: 183rpx; */
padding: 0 20rpx;
height: 54rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius: 9px 0px 46px 0px;
color: #FFFFFF;
font-size: .8rem;
line-height: 54rpx;
text-align: center;
}
.fline {
width: 100%;
height: 1rpx;
border: 1px solid #999999;
opacity: 0.15;
}
.sign_sataus {
width: 75px;
height: 28px;
background: #A8AEB6;
border-radius: 13px;
font-size: 14px;
color: #FFFFFF;
line-height: 28px;
text-align: center;
}
</style>

@ -1,23 +1,24 @@
<template>
<view class="peixunbanpage">
<view class="nodata" v-if="!useList.length">
暂无数据
<img src="../../index/testtraining/noUsePerson.png" alt="">
<view>暂无数据</view>
</view>
<view class="boxuser" v-else>
<view class="items" v-for="it in useList">
<view class="toptitle">
<view class="skill">
技能要求{{it.service}}
技能要求{{ it.service }}
</view>
<view class="peonum">
{{it.peopleNum}}
{{ it.peopleNum }}
</view>
</view>
<view class="bottominfo">
<view class="beizhu">
备注{{it.remark}}
备注{{ it.remark }}
</view>
<view v-if="it.status == 0 " class="btninfo nored">
<view v-if="it.status == 0" class="btninfo nored">
处理中
</view>
<view v-else class="btninfo yesred">
@ -33,125 +34,137 @@
</template>
<script>
export default {
data() {
return {
useList: []
}
},
onLoad() {
this.getList()
},
methods: {
async getList() {
const id = uni.getStorageSync('wxUserInfo').userId
const {
data
} = await this.http.quickGet(`/labor/my/demand/${id}`, true)
console.log(data)
if (data.code == 200) {
this.useList = data.rows
} else {
uni.showToast({
title: '获取数据失败'
})
}
},
gozixun() {
uni.navigateTo({
url: '/pages/index/test'
export default {
data() {
return {
useList: []
}
},
onLoad() {
this.getList()
},
methods: {
async getList() {
const id = uni.getStorageSync('wxUserInfo').userId
const {
data
} = await this.http.quickGet(`/labor/my/demand/${id}`, true)
console.log(data)
if (data.code == 200) {
this.useList = data.rows
} else {
uni.showToast({
title: '获取数据失败'
})
}
},
gozixun() {
uni.navigateTo({
url: '/pages/index/test'
})
}
}
}
</script>
<style scoped>
.peixunbanpage {
height: 100%;
width: 100%;
background: #f5f7fa;
}
.boxuser {
box-sizing: border-box;
padding: 40rpx;
}
.items {
width: 100%;
min-height: 200rpx;
margin-bottom: 30rpx;
background: #FFFFFF;
border-radius: 10rpx;
box-sizing: border-box;
padding: 10rpx 20rpx;
}
.toptitle {
display: flex;
justify-content: space-between;
align-items: center;
height: 75rpx;
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
}
.skill {
font-weight: 500;
font-size: 28rpx;
color: #1A1A1A;
}
.peonum {
font-weight: 500;
font-size: 28rpx;
color: #1F80F2;
}
.bottominfo {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 0;
}
.nodata {
display: flex;
.peixunbanpage {
height: 100%;
width: 100%;
background: #f5f7fa;
}
.boxuser {
box-sizing: border-box;
padding: 40rpx;
}
.items {
width: 100%;
min-height: 200rpx;
margin-bottom: 30rpx;
background: #FFFFFF;
border-radius: 10rpx;
box-sizing: border-box;
padding: 10rpx 20rpx;
}
.toptitle {
display: flex;
justify-content: space-between;
align-items: center;
height: 75rpx;
border-bottom: 1px solid rgba(153, 153, 153, 0.2);
}
.skill {
font-weight: 500;
font-size: 28rpx;
color: #1A1A1A;
}
.peonum {
font-weight: 500;
font-size: 28rpx;
color: #1F80F2;
}
.bottominfo {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 0;
}
.nodata {
/* display: flex;
justify-content: center;
align-items: center;
font-size: 46rpx;
font-weight: bold;
color: #9D9D9D;
text-align: center;
margin-top: 100px
}
.beizhu {
font-weight: 500;
font-size: 22rpx;
color: #808080;
width: 70%;
padding-right: 20rpx;
box-sizing: border-box;
}
.btninfo {
width: 170rpx;
height: 40rpx;
border-radius: 20rpx;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 40rpx;
text-align: center;
width: 30%;
}
.nored {
background: #FBA02A;
}
.yesred {
background: #28D17C;
}
margin-top: 100px */
font-size: 23px;
font-weight: bold;
color: #9D9D9D;
text-align: center;
margin-top: 100px;
}
.nodata img {
width: 338rpx;
height: 254rpx;
}
.beizhu {
font-weight: 500;
font-size: 22rpx;
color: #808080;
width: 70%;
padding-right: 20rpx;
box-sizing: border-box;
}
.btninfo {
width: 170rpx;
height: 40rpx;
border-radius: 20rpx;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 40rpx;
text-align: center;
width: 30%;
}
.nored {
background: #FBA02A;
}
.yesred {
background: #28D17C;
}
</style>

@ -1,8 +1,8 @@
import comstemutil from "./comstemutil";
//es6
// const baseUrl = 'http://192.168.0.230:9999';
const baseUrl = 'https://www.bjkeyware.com/test-api';
const baseUrl = 'http://192.168.0.229:9999';
// const baseUrl = 'https://www.bjkeyware.com/test-api';
// const baseUrl = 'https://www.bjkeyware.com/prod-api';
// const baseUrl = 'http://172.16.36.180:9999';

Loading…
Cancel
Save