Compare commits

...

2 Commits

  1. 46
      niucloud/app/api/controller/apiController/ClassApi.php
  2. 36
      niucloud/app/api/controller/member/Member.php
  3. 14
      niucloud/app/api/route/member.php
  4. 9
      niucloud/app/service/api/apiService/jlClassService.php
  5. 154
      niucloud/app/service/api/member/MemberService.php
  6. 518
      uniapp/pages/coach/my/due_soon.vue
  7. 9
      uniapp/pages/coach/my/index.vue
  8. 2
      uniapp/pages/coach/my/schooling_statistics.vue
  9. 129
      uniapp/pages/coach/student/student_list.vue

46
niucloud/app/api/controller/apiController/ClassApi.php

@ -111,32 +111,40 @@ class ClassApi extends BaseApiService
public function addJlPublishJob(Request $request) public function addJlPublishJob(Request $request)
{ {
$id = $this->member_id; $id = $this->member_id;
// $data = $this->request->params([
// ["class_id",0],
// ["classes_id_name",''],
// ["description",''],
// ["content_type",''],
// ["course_id",0],
// ["course_id_name",''],
// ["student_id",''],
// ["students_ids_name",''],
// ["type",''],
// ["personnel_id",$id],
// ]);
// if (isset($data['student_id'])) {
// if (is_string($data['student_id']) && strpos($data['student_id'], ',') !== false) {
// $studentIds = explode(',', $data['student_id']);
// $studentIds = array_map('trim', $studentIds);
// } elseif (is_array($data['student_id'])) {
// $studentIds = $data['student_id'];
// } else {
// $studentIds = [(string)$data['student_id']];
// }
// $studentIds = array_map('intval', $studentIds);
// } else {
// $studentIds = [];
// }
// $data['student_id'] = $studentIds;
$data = $this->request->params([ $data = $this->request->params([
["class_id",0], ["class_id",0],
["classes_id_name",''],
["description",''], ["description",''],
["content_type",''],
["course_id",0], ["course_id",0],
["course_id_name",''],
["student_id",''], ["student_id",''],
["students_ids_name",''],
["type",''],
["personnel_id",$id], ["personnel_id",$id],
]); ]);
if (isset($data['student_id'])) {
if (is_string($data['student_id']) && strpos($data['student_id'], ',') !== false) {
$studentIds = explode(',', $data['student_id']);
$studentIds = array_map('trim', $studentIds);
} elseif (is_array($data['student_id'])) {
$studentIds = $data['student_id'];
} else {
$studentIds = [(string)$data['student_id']];
}
$studentIds = array_map('intval', $studentIds);
} else {
$studentIds = [];
}
$data['student_id'] = $studentIds;
return success('操作成功', (new jlClassService())->addPublishJob($data)); return success('操作成功', (new jlClassService())->addPublishJob($data));
} }
//获取我的页面统计个数 //获取我的页面统计个数

36
niucloud/app/api/controller/member/Member.php

@ -147,4 +147,40 @@ class Member extends BaseApiController
} }
public function get_assignments_list(){
return success(( new MemberService() )->get_assignments_list());
}
public function assignments_info(){
$data = $this->request->params([
[ 'id', '' ]
]);
return success(( new MemberService() )->assignments_info($data));
}
public function service_detail(){
$data = $this->request->params([
[ 'id', '' ]
]);
return success(( new MemberService() )->service_detail($data));
}
public function service_list(){
return success(( new MemberService() )->service_list());
}
//教练下全部学员
public function student_list(){
$data = $this->request->params([
[ 'type', 'all' ]
]);
return success(( new MemberService() )->student_list($data));
}
public function sktj(){
return success(( new MemberService() )->sktj());
}
} }

14
niucloud/app/api/route/member.php

@ -108,6 +108,20 @@ Route::group('member', function () {
Route::get('jl_index', 'member.Member/jl_index'); Route::get('jl_index', 'member.Member/jl_index');
Route::get('get_assignments_list', 'member.Member/get_assignments_list');
Route::get('assignments_info', 'member.Member/assignments_info');
Route::get('service/detail', 'member.Member/service_detail');
Route::get('service/list', 'member.Member/service_list');
//教练下全部学员
Route::get('student_list', 'member.Member/student_list');
Route::get('sktj', 'member.Member/sktj');
})->middleware(ApiChannel::class) })->middleware(ApiChannel::class)
->middleware(ApiPersonnelCheckToken::class, true) ->middleware(ApiPersonnelCheckToken::class, true)
->middleware(ApiLog::class); ->middleware(ApiLog::class);

9
niucloud/app/service/api/apiService/jlClassService.php

@ -149,10 +149,11 @@ class jlClassService extends BaseApiService
public function addPublishJob($data) public function addPublishJob($data)
{ {
$Assignment = new Assignment(); $Assignment = new Assignment();
foreach ($data['student_id'] as $v) { // foreach ($data['student_id'] as $v) {
$data['student_id'] = $v; // $data['student_id'] = $v;
$Assignment->create($data); // $Assignment->create($data);
} // }
$Assignment->create($data);
return true; return true;
} }

154
niucloud/app/service/api/member/MemberService.php

@ -12,12 +12,15 @@
namespace app\service\api\member; namespace app\service\api\member;
use app\model\assignment\Assignment; use app\model\assignment\Assignment;
use app\model\attendance\Attendance;
use app\model\campus\Campus; use app\model\campus\Campus;
use app\model\class_resources_rel\ClassResourcesRel;
use app\model\communication_records\CommunicationRecords; use app\model\communication_records\CommunicationRecords;
use app\model\course_schedule\CourseSchedule; use app\model\course_schedule\CourseSchedule;
use app\model\member\Member; use app\model\member\Member;
use app\model\person_course_schedule\PersonCourseSchedule; use app\model\person_course_schedule\PersonCourseSchedule;
use app\model\service_logs\ServiceLogs; use app\model\service_logs\ServiceLogs;
use app\model\student_courses\StudentCourses;
use app\service\core\member\CoreMemberService; use app\service\core\member\CoreMemberService;
use core\base\BaseApiService; use core\base\BaseApiService;
use core\exception\ApiException; use core\exception\ApiException;
@ -243,4 +246,155 @@ class MemberService extends BaseApiService
return ['course_list' => $course_list,'task_list' => $task_list,'service_list' => $service_list]; return ['course_list' => $course_list,'task_list' => $task_list,'service_list' => $service_list];
} }
public function get_assignments_list(){
$Assignment = new Assignment();
$search_model = $Assignment
->alias("a")
->join(['school_class' => 'b'],"a.class_id = b.id","left")
->join(['school_course' => 'c'],"a.course_id = c.id","left")
->field("a.id,a.create_time,b.class_name,c.course_name,a.status")
->where([
'a.personnel_id' => $this->member_id
])->order("a.create_time desc");
$list = $this->pageQuery($search_model, function ($item){
});
return $list;
}
public function assignments_info($data){
$Assignment = new Assignment();
$info = $Assignment
->alias("a")
->join(['school_personnel' => 'b'],'a.personnel_id = b.id','left')
->where(['a.id' => $data['id']])
->field("a.*,b.name as coach_name,b.head_img as coach_pic")
->find();
return $info ? $info->toArray() : [];
}
public function service_detail($data){
$service_logs = new ServiceLogs();
$info = $service_logs->alias("a")
->join(['school_customer_resources' => 'b'],'a.resource_id = b.id',"left")
->join(['school_course' => 'c'],'a.course_id = c.id',"left")
->join(['school_service' => 'd'],'a.service_id = d.id',"left")
->join(['school_personnel' => 'e'],'a.staff_id = e.id',"left")
->join(['school_campus' => 'f'],'b.campus = f.id',"left")
->where(['a.id' => $data['id']])
->field("
a.id,b.name as resource_id,c.course_name as course_id,d.service_name as service_id,a.service_remark,a.status,
e.name as staff_id,a.score,a.feedback,a.feedback_time,a.created_at,a.updated_at,f.campus_name as campus,
b.source_channel,b.source
")
->find();
$info['source'] = get_dict_value('source',$info['source']);
$info['channel'] = get_dict_value('SourceChannel',$info['source_channel']);
return $info ? $info->toArray() : [];
}
public function service_list(){
$service_logs = new ServiceLogs();
$search_model = $service_logs
->alias("a")
->join(['school_service' => 'd'],'a.service_id = d.id',"left")
->where([
'a.staff_id' => $this->member_id
])
->field("a.*,d.service_name,d.description")
->order("a.created_at desc");
$list = $this->pageQuery($search_model, function ($item){
});
return $list;
}
//教练下全部学员
public function student_list($data)
{
$where = [];
if($data['type'] == "daoqi"){
$where[] = ['a.end_date', 'between', [date('Y-m-d', strtotime('-6 days')), date('Y-m-d')]];
}
$student_courses = new StudentCourses();
$list = $student_courses
->alias("a")
->join(['school_student' => 'b'],"a.student_id = b.id","left")
->join(['school_campus' => 'c'],'b.campus_id = c.id',"left")
->join(['school_customer_resources' => 'e'],'e.id = b.user_id',"left")
->join(['school_member' => 'f'],'f.member_id = e.member_id',"left")
->join(['school_resource_sharing' => 'g'],'g.resource_id = e.id',"left")
->where($where)
->where("a.main_coach_id = {$this->member_id} OR a.education_id = {$this->member_id} OR find_in_set('{$this->member_id}', a.assistant_ids) ")
->field("
b.id,b.name,c.campus_name as campus,
a.total_hours,a.gift_hours,a.use_total_hours,a.use_gift_hours,a.end_date,f.headimg as avatar,g.id as resource_sharing_id
")
->select();
return $list ? $list->toArray() : [];
}
public function sktj(){
$course_schedule = new CourseSchedule();
$student_courses = new StudentCourses();
$class_resources_rel = new ClassResourcesRel();
$attendance = new Attendance();
$year = date('Y');
$currentMonth = date('n');
$results = [];
for ($m = $currentMonth; $m >= 1; $m--) {
$start = date("Y-m-01", strtotime("$year-$m"));
$end = date("Y-m-t", strtotime("$year-$m"));
$count = $course_schedule
->where("coach_id = {$this->member_id} OR education_id = {$this->member_id} OR find_in_set('{$this->member_id}', assistant_ids) ")
->where('course_date', 'between', [$start, $end])
->count();
$list = $student_courses
->where("main_coach_id = {$this->member_id} OR education_id = {$this->member_id} OR find_in_set('{$this->member_id}', assistant_ids) ")
->where('start_date', 'between', [$start, $end])
->select();
$yfzxy = count($list);
$class_id = [];
foreach($list as $k=>$v){
$class_id[] = $class_resources_rel->where(['resource_id' => $v['resource_id']])->value("class_id");
}
$class_id = array_unique($class_id);
$dk_count = $attendance->where(['staff_id' => $this->member_id])->where('attendance_date', 'between', [$start, $end])->count();
if ($count > 0) {
$rate = round($dk_count / $count * 100, 2); // 保留两位小数
} else {
$rate = 0;
}
$results[] = ['month_date' => "$year-$m",'ysks' => $count,'yfzxy' => $yfzxy,'zsbj' => count($class_id),'ydkl' => $rate];
}
return $results;
}
} }

518
uniapp/pages/coach/my/due_soon.vue

@ -1,323 +1,235 @@
<!--即将到期--> <!--即将到期-->
<template> <template>
<view class="main_box"> <view class="main_box">
<!--自定义导航栏--> <!--自定义导航栏-->
<!-- <view class="navbar_section">--> <!-- <view class="navbar_section">-->
<!-- <view class="title">班级详情</view>--> <!-- <view class="title">班级详情</view>-->
<!-- </view>--> <!-- </view>-->
<view class="main_section"> <view class="main_section">
<!-- 班级成员列表--> <!-- 班级成员列表-->
<view class="section_4"> <view class="section_4">
<view class="ul"> <view class="ul">
<!-- @click="openViewStudentInfo({id:1})" --> <!-- @click="openViewStudentInfo({id:1})" -->
<view class="li"> <view class="li" v-for="(item, index) in studentList" :key="index">
<view class="left"> <view class="left">
<view class="box_1"> <view class="box_1">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image> <image :src="item.avatar || '/static/icon-img/avatar.png'" mode="aspectFill" class="pic"></image>
<view class="tag_box"> <view class="tag_box">
即将到期 即将到期
</view> </view>
</view> </view>
<view class="box_2"> <view class="box_2">
<view class="name">黄明明</view> <view class="name">{{item.name}}</view>
<view class="date">课程截止时间2020.05:25</view> <view class="date">课程截止时间{{item.end_date}}</view>
</view> </view>
</view> </view>
<view class="right"> <view class="right">
<view class="item"> <view class="item">
<view>24</view> <view>{{
<view>已上课时</view> (item.use_total_hours + item.use_gift_hours)
</view> }}</view>
<view class="item"> <view>已上课时</view>
<view>24</view> </view>
<view>剩余课时</view> <view class="item">
</view> <view>{{
</view> (item.total_hours + item.gift_hours) - (item.use_total_hours + item.use_gift_hours)
</view> }}</view>
<view class="li"> <view>剩余课时</view>
<view class="left"> </view>
<view class="box_1"> </view>
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image> </view>
<view class="tag_box">
即将到期
</view>
</view>
<view class="box_2">
<view class="name">黄明明</view>
<view class="date">课程截止时间2020.05:25</view>
</view>
</view>
<view class="right">
<view class="item">
<view>24</view>
<view>已上课时</view>
</view>
<view class="item">
<view>24</view>
<view>剩余课时</view>
</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="box_1">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="tag_box">
即将到期
</view>
</view>
<view class="box_2">
<view class="name">黄明明</view>
<view class="date">课程截止时间2020.05:25</view>
</view>
</view>
<view class="right">
<view class="item">
<view>24</view>
<view>已上课时</view>
</view>
<view class="item">
<view>24</view>
<view>剩余课时</view>
</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="box_1">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="tag_box">
即将到期
</view>
</view>
<view class="box_2">
<view class="name">黄明明</view>
<view class="date">课程截止时间2020.05:25</view>
</view>
</view>
<view class="right">
<view class="item">
<view>24</view>
<view>已上课时</view>
</view>
<view class="item">
<view>24</view>
<view>剩余课时</view>
</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="box_1">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<view class="tag_box">
即将到期
</view>
</view>
<view class="box_2">
<view class="name">黄明明</view>
<view class="date">课程截止时间2020.05:25</view>
</view>
</view>
<view class="right">
<view class="item">
<view>24</view>
<view>已上课时</view>
</view>
<view class="item">
<view>24</view>
<view>剩余课时</view>
</view>
</view>
</view>
<view class="li">
<view class="left">
<view class="box_1">
<image class="pic" src="http://www.firstui.cn:4000/vipdoc/img/img_logo.png"></image>
<!-- <view class="tag_box">-->
<!-- 即将到期-->
<!-- </view>-->
</view>
<view class="box_2">
<view class="name">黄明明</view>
<view class="date">课程截止时间2020.05:25</view>
</view>
</view>
<view class="right">
<view class="item">
<view>24</view>
<view>已上课时</view>
</view>
<view class="item">
<view>24</view>
<view>剩余课时</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 底部导航--> </view>
<!-- <AQTabber/>--> </view>
</view> </view>
<!-- 底部导航-->
<!-- <AQTabber/>-->
</view>
</template> </template>
<script> <script>
// import user from '@/api/user.js'; import memberApi from '@/api/member.js';
import AQTabber from "@/components/AQ/AQTabber.vue" import AQTabber from "@/components/AQ/AQTabber.vue"
export default {
components: {
AQTabber,
},
data() {
return {
formData:{},
tabType:'1',//1=,2=
}
},
onLoad() {
},
methods: {
//tab
tabChange(tabType) {
this.tabType = tabType
},
// export default {
openViewCourseInfo(item){ components: {
this.$navigateTo({ AQTabber,
url: '/pages/coach/course/info' },
}) data() {
}, return {
// formData: {},
openViewStudentInfo(item){ tabType: '1', //1=,2=
this.$navigateTo({ studentList: []
url: '/pages/coach/student/info' }
}) },
}, onLoad() {
} this.getStudentList();
} },
methods: {
//tab
tabChange(tabType) {
this.tabType = tabType
},
async getStudentList() {
// API
const res = await memberApi.jlGetStudentList({
'type': 'daoqi'
});
if (res.code == 1) {
this.studentList = res.data || [];
} else {
uni.showToast({
title: res.msg || '获取学员列表失败',
icon: 'none'
});
}
},
//
openViewCourseInfo(item) {
this.$navigateTo({
url: '/pages/coach/course/info'
})
},
//
openViewStudentInfo(item) {
this.$navigateTo({
url: '/pages/coach/student/info'
})
},
}
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.main_box {
background: #292929;
}
//
.navbar_section {
display: flex;
justify-content: center;
align-items: center;
background: #292929;
.title {
padding: 40rpx 0rpx;
/* 小程序端样式 */
// #ifdef MP-WEIXIN
padding: 80rpx 0rpx;
// #endif
font-size: 30rpx;
color: #fff;
}
}
.main_section {
min-height: 100vh;
background: #292929 100%;
padding: 0 24rpx;
padding-top: 40rpx;
padding-bottom: 150rpx;
font-size: 24rpx;
color: #FFFFFF;
//
.section_4 {
.ul {
display: flex;
flex-direction: column;
gap: 10rpx;
.li {
padding: 20rpx 0;
padding-bottom: 40rpx;
border-bottom: 2px solid #D7D7D7;
display: flex;
justify-content: space-between;
.left {
display: flex;
align-items: center;
gap: 30rpx;
.box_1 {
padding-left: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
.pic {
width: 84rpx;
height: 84rpx;
border-radius: 50%;
}
.tag_box {
position: absolute;
bottom: -30rpx;
width: 120rpx;
height: 38rpx;
background-color: #F59A23;
border-radius: 4rpx;
line-height: 35rpx;
text-align: center;
font-size: 20rpx;
}
}
.box_2 {
display: flex;
flex-direction: column;
gap: 20rpx;
.main_box{ .name {
background: #292929 ; font-size: 28rpx;
} }
// .date {
.navbar_section{ font-size: 24rpx;
display: flex; }
justify-content: center; }
align-items: center; }
background: #292929;
.title{
padding: 40rpx 0rpx;
/* 小程序端样式 */ .right {
// #ifdef MP-WEIXIN display: flex;
padding: 80rpx 0rpx; align-items: center;
// #endif gap: 14rpx;
font-size: 30rpx; .item {
color: #fff; border: 1px solid #00E5BB;
} border-radius: 10rpx;
} width: 102rpx;
display: flex;
flex-direction: column;
.main_section{ view {
min-height: 100vh; text-align: center;
background: #292929 100%; height: 50rpx;
padding: 0 24rpx; line-height: 50rpx;
padding-top: 40rpx; }
padding-bottom: 150rpx;
font-size: 24rpx;
color: #FFFFFF;
//
.section_4{
.ul{
display: flex;
flex-direction: column;
gap: 10rpx;
.li{
padding: 20rpx 0;
padding-bottom: 40rpx;
border-bottom: 2px solid #D7D7D7;
display: flex;
justify-content: space-between;
.left{
display: flex;
align-items: center;
gap: 30rpx;
.box_1{
padding-left: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
.pic{
width: 84rpx;
height: 84rpx;
border-radius: 50%;
}
.tag_box{
position: absolute;
bottom: -30rpx;
width: 120rpx;
height: 38rpx;
background-color: #F59A23;
border-radius: 4rpx;
line-height: 35rpx;
text-align: center;
font-size: 20rpx;
}
}
.box_2{
display: flex;
flex-direction: column;
gap: 20rpx;
.name{
font-size: 28rpx;
}
.date{
font-size: 24rpx;
}
}
}
.right{
display: flex;
align-items: center;
gap: 14rpx;
.item{
border: 1px solid #00E5BB;
border-radius: 10rpx;
width: 102rpx;
display: flex;
flex-direction: column;
view{
text-align: center;
height: 50rpx;
line-height: 50rpx;
}
view:nth-child(1){
font-size: 32rpx;
background-color: #fff;
color: #00e5bb;
}
view:nth-child(2){
font-size: 20rpx;
background-color: #00e5bb;
}
}
}
}
}
}
}
view:nth-child(1) {
font-size: 32rpx;
background-color: #fff;
color: #00e5bb;
}
view:nth-child(2) {
font-size: 20rpx;
background-color: #00e5bb;
}
}
}
}
}
}
}
</style> </style>

9
uniapp/pages/coach/my/index.vue

@ -56,10 +56,10 @@
<view class="main_section"> <view class="main_section">
<view class="section_box"> <view class="section_box">
<view class="item" @click="openViewSportsVenue()"> <!-- <view class="item" @click="openViewSportsVenue()">
<view>我的体育场</view> <view>我的体育场</view>
<view>xxx场馆</view> <view>xxx场馆</view>
</view> </view> -->
<view class="item" @click="openViewDueSoon()"> <view class="item" @click="openViewDueSoon()">
<view>即将到期</view> <view>即将到期</view>
@ -128,13 +128,14 @@ export default {
} }
}, },
onLoad() { onLoad() {
}, },
onShow() { onShow() {
this.init(); this.init();
}, },
methods: { methods: {
async init(){ async init(){
this.getMemberInfo()
this.getStatistics() this.getStatistics()
}, },
@ -162,6 +163,8 @@ export default {
return return
} }
this.statisticsInfo = res.data this.statisticsInfo = res.data
this.getMemberInfo()
}, },
// //

2
uniapp/pages/coach/my/schooling_statistics.vue

@ -10,7 +10,7 @@
<view class="box"> <view class="box">
<view class="top"> <view class="top">
<view class="top_item"> <view class="top_item">
<view class="num">34</view> <view class="num">{{v.ysks}}</view>
<view class="explain">月授课数/</view> <view class="explain">月授课数/</view>
</view> </view>
<view class="top_item"> <view class="top_item">

129
uniapp/pages/coach/student/student_list.vue

@ -19,11 +19,13 @@
</view> </view>
<view class="info-row"> <view class="info-row">
<text class="info-label">剩余课程</text> <text class="info-label">剩余课程</text>
<text class="info-value">{{item.remainingCourses}}</text> <text class="info-value">{{
(item.total_hours + item.gift_hours) - (item.use_total_hours + item.use_gift_hours)
}}</text>
</view> </view>
<view class="info-row"> <view class="info-row">
<text class="info-label">到期时间</text> <text class="info-label">到期时间</text>
<text class="info-value">{{item.expiryDate}}</text> <text class="info-value">{{item.end_date}}</text>
</view> </view>
</view> </view>
<view class="arrow-right"> <view class="arrow-right">
@ -38,6 +40,7 @@
</template> </template>
<script> <script>
import memberApi from '@/api/member.js';
import AQTabber from "@/components/AQ/AQTabber.vue" import AQTabber from "@/components/AQ/AQTabber.vue"
export default { export default {
components: { components: {
@ -55,73 +58,73 @@
navigateBack() { navigateBack() {
uni.navigateBack(); uni.navigateBack();
}, },
getStudentList() { async getStudentList() {
// API // API
// const res = await memberApi.getStudentList({}); const res = await memberApi.jlGetStudentList({});
// if(res.code == 1) { if(res.code == 1) {
// this.studentList = res.data || []; this.studentList = res.data || [];
// } else { } else {
// uni.showToast({ uni.showToast({
// title: res.msg || '', title: res.msg || '获取学员列表失败',
// icon: 'none' icon: 'none'
// }); });
// } }
// 使 // 使
this.studentList = [ // this.studentList = [
{ // {
id: 1, // id: 1,
name: '张三', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '总部校区', // campus: '',
remainingCourses: 10, // remainingCourses: 10,
expiryDate: '2023-12-31' // expiryDate: '2023-12-31'
}, // },
{ // {
id: 2, // id: 2,
name: '李四', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '西区校区', // campus: '西',
remainingCourses: 5, // remainingCourses: 5,
expiryDate: '2023-11-15' // expiryDate: '2023-11-15'
}, // },
{ // {
id: 3, // id: 3,
name: '王五', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '东区校区', // campus: '',
remainingCourses: 15, // remainingCourses: 15,
expiryDate: '2024-01-20' // expiryDate: '2024-01-20'
}, // },
{ // {
id: 4, // id: 4,
name: '赵六', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '南区校区', // campus: '',
remainingCourses: 8, // remainingCourses: 8,
expiryDate: '2023-11-30' // expiryDate: '2023-11-30'
}, // },
{ // {
id: 5, // id: 5,
name: '刘七', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '北区校区', // campus: '',
remainingCourses: 20, // remainingCourses: 20,
expiryDate: '2024-02-15' // expiryDate: '2024-02-15'
}, // },
{ // {
id: 6, // id: 6,
name: '陈八', // name: '',
avatar: '/static/icon-img/avatar.png', // avatar: '/static/icon-img/avatar.png',
campus: '总部校区', // campus: '',
remainingCourses: 3, // remainingCourses: 3,
expiryDate: '2023-10-30' // expiryDate: '2023-10-30'
} // }
]; // ];
}, },
goToDetail(student) { goToDetail(student) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/market/clue/clue_info?resource_sharing_id=25` url: `/pages/market/clue/clue_info?resource_sharing_id=`+student.resource_sharing_id
}); });
} }
} }

Loading…
Cancel
Save