1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00

会员页细分畅学和优惠课程

This commit is contained in:
xiaochong0302 2020-07-30 20:50:11 +08:00
parent fdce89a4e7
commit 8c90b35991
29 changed files with 259 additions and 88 deletions

View File

@ -32,7 +32,7 @@
<legend>上传视频</legend>
</fieldset>
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<form class="layui-form kg-form" id="vod-form" method="POST" action="{{ url({'for':'admin.chapter.content','id':chapter.id}) }}">
<div class="layui-form-item" id="upload-block">
<label class="layui-form-label">视频文件</label>
@ -54,7 +54,7 @@
<div class="layui-form-item">
<label class="layui-form-label">文件编号</label>
<div class="layui-input-block">
<input class="layui-input" type="text" name="file_id" value="{{ vod.file_id }}" readonly="true" lay-verify="required">
<input class="layui-input" type="text" name="file_id" value="{{ vod.file_id }}" readonly="readonly" lay-verify="required">
</div>
</div>

View File

@ -50,10 +50,9 @@
uploader.done().then(function (result) {
$('input[name=file_id]').val(result.fileId);
var chapterId = $('input[name=chapter_id]').val();
$.ajax({
type: 'POST',
url: '/admin/chapter/' + chapterId + '/content',
url: $('#vod-form').attr('action'),
data: {file_id: result.fileId}
});
});

View File

@ -18,6 +18,14 @@ class ImGroupController extends Controller
}
/**
* @Get("/{id:[0-9]+}", name="web.im_group.show")
*/
public function showAction($id)
{
}
/**
* @Get("/{id:[0-9]+}/users", name="web.im_group.users")
*/

View File

@ -30,11 +30,13 @@ class VipController extends Controller
*/
public function coursesAction()
{
$type = $this->request->getQuery('type', 'trim', 'discount');
$service = new VipCourseListService();
$pager = $service->handle();
$pager = $service->handle($type);
$pager->items = kg_array_object($pager->items);
$pager->target = 'tab-courses';
$pager->target = "tab-{$type}-courses";
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
$this->view->setVar('pager', $pager);

View File

@ -30,26 +30,26 @@
<div class="layout-main clearfix">
{% set show_tab_chapters = course.lesson_count > 0 ? 1 : 0 %}
{% set show_tab_packages = course.package_count > 0 ? 1 : 0 %}
{% set show_tab_consults = course.consult_count > 0 ? 1 : 0 %}
{% set show_tab_reviews = course.review_count > 0 ? 1 : 0 %}
{% set show_tab_chapters = course.lesson_count > 0 %}
{% set show_tab_packages = course.package_count > 0 %}
{% set show_tab_consults = course.consult_count > 0 %}
{% set show_tab_reviews = course.review_count > 0 %}
<div class="layout-content">
<div class="course-tab-wrap wrap">
<div class="layui-tab layui-tab-brief course-tab">
<ul class="layui-tab-title">
<li class="layui-this">详情</li>
{% if show_tab_chapters == 1 %}
{% if show_tab_chapters %}
<li>目录<span class="tab-count">{{ course.lesson_count }}</span></li>
{% endif %}
{% if show_tab_packages == 1 %}
{% if show_tab_packages %}
<li>套餐<span class="tab-count">{{ course.package_count }}</span></li>
{% endif %}
{% if show_tab_consults == 1 %}
{% if show_tab_consults %}
<li>咨询<span class="tab-count">{{ course.consult_count }}</span></li>
{% endif %}
{% if show_tab_reviews == 1 %}
{% if show_tab_reviews %}
<li>评价<span class="tab-count">{{ course.review_count }}</span></li>
{% endif %}
</ul>
@ -57,19 +57,19 @@
<div class="layui-tab-item layui-show">
<div class="course-details">{{ course.details }}</div>
</div>
{% if show_tab_chapters == 1 %}
{% if show_tab_chapters %}
{% set chapters_url = url({'for':'web.course.chapters','id':course.id}) %}
<div class="layui-tab-item" id="tab-chapters" data-url="{{ chapters_url }}"></div>
{% endif %}
{% if show_tab_packages == 1 %}
{% if show_tab_packages %}
{% set packages_url = url({'for':'web.course.packages','id':course.id}) %}
<div class="layui-tab-item" id="tab-packages" data-url="{{ packages_url }}"></div>
{% endif %}
{% if show_tab_consults == 1 %}
{% if show_tab_consults %}
{% set consults_url = url({'for':'web.course.consults','id':course.id}) %}
<div class="layui-tab-item" id="tab-consults" data-url="{{ consults_url }}"></div>
{% endif %}
{% if show_tab_reviews == 1 %}
{% if show_tab_reviews %}
{% set reviews_url = url({'for':'web.course.reviews','id':course.id}) %}
<div class="layui-tab-item" id="tab-reviews" data-url="{{ reviews_url }}"></div>
{% endif %}

View File

@ -5,7 +5,7 @@
<div class="layui-col-md2">
<div class="user-card">
{% if item.vip == 1 %}
<span class="vip">会员</span>
<span class="vip">VIP</span>
{% endif %}
<div class="avatar">
<a href="javascript:" title="{{ item.about|e }}"><img src="{{ item.avatar }}" alt="{{ item.name }}"></a>

View File

@ -14,6 +14,16 @@
<div class="name">{{ auth_user.name }} {{ vip_info(auth_user) }}</div>
</div>
<div class="layui-card">
<div class="layui-card-header">教学中心</div>
<div class="layui-card-body">
<ul class="my-menu">
<li><a href="{{ url({'for':'web.my.refunds'}) }}">我的直播</a></li>
<li><a href="{{ url({'for':'web.my.orders'}) }}">用户咨询</a></li>
</ul>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">课程中心</div>
<div class="layui-card-body">

View File

@ -93,7 +93,7 @@
{%- macro learning_course_card(item) %}
{% set course_title = item.course.title|e %}
{% set course_url = url({'for':'web.course.show','id':item.course.id}) %}
<div class="course-card learning-course-card">
<div class="course-card">
<div class="cover">
<a href="{{ course_url }}" title="{{ course_title }}">
<img src="{{ item.course.cover }}!cover_270" alt="{{ course_title }}">
@ -103,12 +103,10 @@
<div class="title layui-elip">
<a href="{{ course_url }}" title="{{ course_title }}">{{ course_title }}</a>
</div>
<div class="progress">
<div class="layui-progress" lay-showPercent="yes">
<div class="layui-progress-bar" lay-percent="{{ item.progress }}%"></div>
</div>
<div class="meta">
<span>已学习 {{ item.duration|duration }}</span>
<span>已完成 {{ item.progress }}%</span>
</div>
<div class="duration">已学习 {{ item.duration|duration }}</div>
</div>
</div>
{%- endmacro %}

View File

@ -1,17 +1,19 @@
{% if pager.total_pages > 0 %}
<div class="teach-user-list clearfix">
<div class="user-list clearfix">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set user_title = item.title ? item.title : '小小教书匠' %}
{% set user_about = item.about ? item.about|e : '这个人很懒,什么都没留下' %}
{% set user_about = item.about ? item.about : '这个人很懒,什么都没留下' %}
{% set user_url = url({'for':'web.teacher.show','id':item.id}) %}
<div class="layui-col-md3">
<div class="layui-col-md2">
<div class="user-card">
<div class="avatar">
<a href="{{ user_url }}" title="{{ user_about }}"><img src="{{ item.avatar }}" alt="{{ item.name }}"></a>
<a href="{{ user_url }}" title="{{ user_about }}">
<img src="{{ item.avatar }}" alt="{{ item.name }}">
</a>
</div>
<div class="name layui-elip">
<a href="{{ user_url }}">{{ item.name }}</a>
<a href="{{ user_url }}" title="{{ user_about }}">{{ item.name }}</a>
</div>
<div class="title layui-elip">{{ user_title }}</div>
</div>

View File

@ -1,18 +1,24 @@
{% if pager.total_pages > 0 %}
<div class="teach-user-list clearfix">
<div class="user-list clearfix">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set user_about = item.about ? item.about : '这个人很懒,什么都没留下' %}
{% set user_url = url({'for':'web.user.show','id':item.id}) %}
<div class="layui-col-md2">
<div class="user-card">
{% if item.vip == 1 %}
<span class="vip">会员</span>
<span class="vip">VIP</span>
{% endif %}
<div class="avatar">
<a href="javascript:" title="{{ item.about }}"><img src="{{ item.avatar }}" alt="{{ item.name }}"></a>
<a href="{{ user_url }}" title="{{ user_about }}">
<img src="{{ item.avatar }}" alt="{{ item.name }}">
</a>
</div>
<div class="name layui-elip">
<a href="{{ user_url }}" title="{{ user_about }}">{{ item.name }}</a>
</div>
<div class="name layui-elip" title="{{ item.name }}">{{ item.name }}</div>
<div class="action">
<a href="javascript:" class="layui-badge-rim apply-friend" data-id="{{ item.id }}" data-name="{{ item.name }}" data-avatar="{{ item.avatar }}">加为好友</a>
<button class="layui-btn apply-friend" data-id="{{ item.id }}">加为好友</button>
</div>
</div>
</div>

View File

@ -0,0 +1,25 @@
{% if pager.total_pages > 0 %}
<div class="user-list clearfix">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set group_url = url({'for':'web.im_group.show','id':item.id}) %}
<div class="layui-col-md3">
<div class="user-card">
<div class="avatar">
<a href="{{ group_url }}" title="{{ item.about }}">
<img src="{{ item.avatar }}" alt="{{ item.name }}">
</a>
</div>
<div class="name layui-elip">
<a href="{{ group_url }}" title="{{ item.name }}">{{ item.name }}</a>
</div>
<div class="action">
<button class="layui-btn apply-group" data-id="{{ item.id }}">申请加入</button>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{{ partial('partials/pager_ajax') }}
{% endif %}

View File

@ -11,7 +11,7 @@
<img src="{{ user.avatar }}" alt="{{ user.name }}">
</div>
<div class="info">
<h3>{{ user.name }} {{ vip_flag }}</h3>
<p><span class="name">{{ user.name }}</span> {{ vip_flag }}</p>
<p><span><i class="layui-icon layui-icon-location"></i></span><span>{{ user.location }}</span></p>
<p><span><i class="layui-icon layui-icon-time"></i></span><span>{{ date('Y-m-d H:i',user.active_time) }}</span></p>
</div>
@ -20,21 +20,41 @@
{% endif %}
</div>
{% set courses_url = url({'for':'web.user.courses','id':user.id},{'limit':12}) %}
{% set favorites_url = url({'for':'web.user.favorites','id':user.id},{'limit':12}) %}
{% set friends_url = url({'for':'web.user.friends','id':user.id},{'limit':12}) %}
{% set show_tab_courses = user.course_count > 0 %}
{% set show_tab_favorites = user.favorite_count > 0 %}
{% set show_tab_friends = user.friend_count > 0 %}
{% set show_tab_groups = user.group_count > 0 %}
{% set courses_url = url({'for':'web.user.courses','id':user.id}) %}
{% set favorites_url = url({'for':'web.user.favorites','id':user.id}) %}
{% set friends_url = url({'for':'web.user.friends','id':user.id}) %}
{% set groups_url = url({'for':'web.user.groups','id':user.id}) %}
<div class="tab-wrap">
<div class="layui-tab layui-tab-brief user-tab">
<ul class="layui-tab-title">
<li class="layui-this">课程</li>
<li>收藏</li>
<li>好友</li>
<li class="layui-this">课程<span class="tab-count">{{ user.course_count }}</span></li>
{% if show_tab_favorites %}
<li>收藏<span class="tab-count">{{ user.favorite_count }}</span></li>
{% endif %}
{% if show_tab_friends %}
<li>好友<span class="tab-count">{{ user.friend_count }}</span></li>
{% endif %}
{% if show_tab_groups %}
<li>群组<span class="tab-count">{{ user.group_count }}</span></li>
{% endif %}
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show" id="tab-courses" data-url="{{ courses_url }}"></div>
<div class="layui-tab-item" id="tab-favorites" data-url="{{ favorites_url }}"></div>
<div class="layui-tab-item" id="tab-friends" data-url="{{ friends_url }}"></div>
{% if show_tab_favorites %}
<div class="layui-tab-item" id="tab-favorites" data-url="{{ favorites_url }}"></div>
{% endif %}
{% if show_tab_friends %}
<div class="layui-tab-item" id="tab-friends" data-url="{{ friends_url }}"></div>
{% endif %}
{% if show_tab_groups %}
<div class="layui-tab-item" id="tab-groups" data-url="{{ groups_url }}"></div>
{% endif %}
</div>
</div>
</div>

View File

@ -30,17 +30,20 @@
</div>
</div>
{% set courses_url = url({'for':'web.vip.courses'},{'limit':12}) %}
{% set users_url = url({'for':'web.vip.users'},{'limit':12}) %}
{% set free_courses_url = url({'for':'web.vip.courses'},{'type':'free'}) %}
{% set discount_courses_url = url({'for':'web.vip.courses'},{'type':'discount'}) %}
{% set users_url = url({'for':'web.vip.users'}) %}
<div class="vip-tab-wrap">
<div class="layui-tab layui-tab-brief user-tab">
<ul class="layui-tab-title">
<li class="layui-this">课程</li>
<li>成员</li>
<li class="layui-this">优惠课程</li>
<li>畅学课程</li>
<li>新进会员</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show" id="tab-courses" data-url="{{ courses_url }}"></div>
<div class="layui-tab-item layui-show" id="tab-discount-courses" data-url="{{ discount_courses_url }}"></div>
<div class="layui-tab-item" id="tab-free-courses" data-url="{{ free_courses_url }}"></div>
<div class="layui-tab-item" id="tab-users" data-url="{{ users_url }}"></div>
</div>
</div>

View File

@ -1,19 +1,24 @@
{% if pager.total_pages > 0 %}
<div class="vip-user-list clearfix">
<div class="user-list clearfix">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set user_about = item.about ? item.about|e : '这个人很懒,什么都没留下' %}
{% set user_about = item.about ? item.about : '这个人很懒,什么都没留下' %}
{% set user_url = url({'for':'web.user.show','id':item.id}) %}
<div class="layui-col-md3">
<div class="user-card" title="{{ user_about }}">
<div class="layui-col-md2">
<div class="user-card">
{% if item.vip == 1 %}
<span class="vip">VIP</span>
{% endif %}
<div class="avatar">
<a href="{{ user_url }}"><img src="{{ item.avatar }}" alt="{{ item.name }}"></a>
<a href="{{ user_url }}" title="{{ user_about }}">
<img src="{{ item.avatar }}" alt="{{ item.name }}">
</a>
</div>
<div class="name layui-elip">
<a href="{{ user_url }}">{{ item.name }}</a>
<a href="{{ user_url }}" title="{{ user_about }}">{{ item.name }}</a>
</div>
<div class="title layui-elip">
<span class="layui-badge layui-bg-orange">vip</span>
<div class="action">
<button class="layui-btn apply-friend" data-url="{{ item.id }}">加为好友</button>
</div>
</div>
</div>

View File

@ -293,9 +293,10 @@ function kg_time_ago($time)
* 格式化时长
*
* @param int $time
* @param string $mode
* @return string
*/
function kg_duration($time)
function kg_duration($time, $mode = 'simple')
{
$result = '00分钟';
@ -319,6 +320,10 @@ function kg_duration($time)
$format[] = sprintf('%02d秒', $seconds);
}
if ($mode == 'simple') {
$format = array_slice($format, 0, 2);
}
$result = implode('', $format);
}

View File

@ -5,7 +5,7 @@ namespace App\Library\Utils;
class FileInfo
{
static function isVideo($mine)
public static function isVideo($mine)
{
$case1 = self::isSecure($mine);
@ -14,7 +14,7 @@ class FileInfo
return $case1 && $case2;
}
static function isAudio($mine)
public static function isAudio($mine)
{
$case1 = self::isSecure($mine);
@ -23,7 +23,7 @@ class FileInfo
return $case1 && $case2;
}
static function isImage($mine)
public static function isImage($mine)
{
$case1 = self::isSecure($mine);
@ -32,12 +32,26 @@ class FileInfo
return $case1 && $case2;
}
static function isSecure($mine)
public static function isSecure($mine)
{
return in_array($mine, self::mineTypes());
return in_array($mine, self::getMineTypes());
}
static function mineTypes()
public static function getMineType($file)
{
$info = new \finfo(FILEINFO_MIME_TYPE);
return $info->file($file);
}
public static function getMineTypeByExt($ext)
{
$mineTypes = self::getMineTypes();
return $mineTypes[$ext] ?? null;
}
public static function getMineTypes()
{
return [
'aac' => 'audio/aac',

View File

@ -76,9 +76,11 @@ class Course extends Repository
if ($sort == 'free') {
$builder->andWhere('market_price = 0');
} elseif ($sort == 'vip') {
} elseif ($sort == 'vip_discount') {
$builder->andWhere('vip_price < market_price');
$builder->andWhere('vip_price > 0');
} elseif ($sort == 'vip_free') {
$builder->andWhere('market_price > 0');
$builder->andWhere('vip_price = 0');
}

View File

@ -162,4 +162,20 @@ class ImUser extends Repository
]);
}
public function countFriends($userId)
{
return (int)ImFriendUserModel::count([
'conditions' => 'user_id = :user_id:',
'bind' => ['user_id' => $userId],
]);
}
public function countGroups($userId)
{
return (int)ImGroupUserModel::count([
'conditions' => 'user_id = :user_id:',
'bind' => ['user_id' => $userId],
]);
}
}

View File

@ -3,6 +3,9 @@
namespace App\Repos;
use App\Library\Paginator\Adapter\QueryBuilder as PagerQueryBuilder;
use App\Models\CourseFavorite as CourseFavoriteModel;
use App\Models\CourseUser as CourseUserModel;
use App\Models\ImUser as ImUserModel;
use App\Models\User as UserModel;
use Phalcon\Mvc\Model;
use Phalcon\Mvc\Model\Resultset;
@ -98,6 +101,15 @@ class User extends Repository
->execute();
}
/**
* @param int $id
* @return ImUserModel|Model|bool
*/
public function findImUser($id)
{
return ImUserModel::findFirst($id);
}
/**
* @return ResultsetInterface|Resultset|UserModel[]
*/
@ -113,7 +125,23 @@ class User extends Repository
public function countUsers()
{
return (int)UserModel::count(['conditions' => 'deleted = 0']);
return (int)UserModel::count();
}
public function countCourses($userId)
{
return (int)CourseUserModel::count([
'conditions' => 'user_id = :user_id: AND deleted = 0',
'bind' => ['user_id' => $userId],
]);
}
public function countFavorites($userId)
{
return (int)CourseFavoriteModel::count([
'conditions' => 'user_id = :user_id: AND deleted = 0',
'bind' => ['user_id' => $userId],
]);
}
}

View File

@ -4,7 +4,6 @@ namespace App\Services\Frontend\User;
use App\Builders\CourseUserList as CourseUserListBuilder;
use App\Library\Paginator\Query as PagerQuery;
use App\Models\CourseUser as CourseUserModel;
use App\Repos\CourseUser as CourseUserRepo;
use App\Services\Frontend\Service as FrontendService;
use App\Services\Frontend\UserTrait;
@ -23,7 +22,6 @@ class CourseList extends FrontendService
$params = $pagerQuery->getParams();
$params['user_id'] = $user->id;
$params['role_type'] = CourseUserModel::ROLE_STUDENT;
$params['deleted'] = 0;
$sort = $pagerQuery->getSort();

View File

@ -3,6 +3,7 @@
namespace App\Services\Frontend\User;
use App\Models\User as UserModel;
use App\Repos\User as UserRepo;
use App\Services\Frontend\Service as FrontendService;
use App\Services\Frontend\UserTrait;
@ -20,6 +21,10 @@ class UserInfo extends FrontendService
protected function handleUser(UserModel $user)
{
$userRepo = new UserRepo();
$imUser = $userRepo->findImUser($user->id);
return [
'id' => $user->id,
'name' => $user->name,
@ -30,6 +35,10 @@ class UserInfo extends FrontendService
'gender' => $user->gender,
'vip' => $user->vip,
'locked' => $user->locked,
'course_count' => $user->course_count,
'favorite_count' => $user->favorite_count,
'friend_count' => $imUser->friend_count,
'group_count' => $imUser->group_count,
'active_time' => $user->active_time,
'create_time' => $user->create_time,
];

View File

@ -9,7 +9,7 @@ use App\Services\Frontend\Service as FrontendService;
class CourseList extends FrontendService
{
public function handle()
public function handle($type)
{
$pagerQuery = new PagerQuery();
@ -18,7 +18,7 @@ class CourseList extends FrontendService
$params['published'] = 1;
$params['deleted'] = 0;
$sort = 'vip';
$sort = $type == 'discount' ? 'vip_discount' : 'vip_free';
$page = $pagerQuery->getPage();
$limit = $pagerQuery->getLimit();

View File

@ -51,6 +51,7 @@ class UserList extends FrontendService
'avatar' => $user['avatar'],
'title' => $user['title'],
'about' => $user['about'],
'vip' => $user['vip'],
];
}

View File

@ -2,6 +2,7 @@
namespace App\Services;
use App\Library\Utils\FileInfo;
use App\Models\ContentImage as ContentImageModel;
use Phalcon\Logger\Adapter\File as FileLogger;
use Qcloud\Cos\Client as CosClient;
@ -104,6 +105,9 @@ class Storage extends Service
$files = $this->request->getUploadedFiles(true);
foreach ($files as $file) {
if (!FileInfo::isImage($file->getRealType())) {
continue;
}
$extension = $this->getFileExtension($file->getName());
$keyName = $this->generateFileName($extension, $prefix);
$path = $this->putFile($keyName, $file->getTempName());
@ -136,6 +140,7 @@ class Storage extends Service
} catch (\Exception $e) {
$this->logger->error('Put String Exception ' . kg_json_encode([
'line' => $e->getLine(),
'code' => $e->getCode(),
'message' => $e->getMessage(),
]));
@ -168,6 +173,7 @@ class Storage extends Service
} catch (\Exception $e) {
$this->logger->error('Put File Exception ' . kg_json_encode([
'line' => $e->getLine(),
'code' => $e->getCode(),
'message' => $e->getMessage(),
]));
@ -200,6 +206,7 @@ class Storage extends Service
} catch (\Exception $e) {
$this->logger->error('Delete Object Exception ' . kg_json_encode([
'line' => $e->getLine(),
'code' => $e->getCode(),
'message' => $e->getMessage(),
]));
@ -223,12 +230,11 @@ class Storage extends Service
/**
* 获取数据万象图片URL
*
* @param string $key
* @param int $width
* @param int $height
* @return string
*/
public function getCiImageUrl($key, $width = 0, $height = 0)
public function getCiImageUrl($key)
{
return $this->getCiBaseUrl() . $key;
}
@ -287,7 +293,7 @@ class Storage extends Service
}
/**
* 获取 CosClient
* 获取CosClient
*
* @return CosClient
*/

View File

@ -4,6 +4,7 @@
"ext-redis": "~4.3",
"ext-pdo": "*",
"ext-json": "*",
"ext-fileinfo": "*",
"phalcon/incubator": "^3.4",
"guzzlehttp/guzzle": "^6.3",
"swiftmailer/swiftmailer": "^6.0",

1
public/static/lib/spark-md5.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1266,12 +1266,8 @@ body {
color: #666;
}
.teach-user-list {
margin-bottom: 30px;
}
.vip-user-list {
margin-bottom: 30px;
.user-list {
margin-bottom: 20px;
}
.user-card {
@ -1302,6 +1298,7 @@ body {
}
.user-card .name {
padding: 0 10px;
margin-bottom: 15px;
}
@ -1310,6 +1307,13 @@ body {
font-size: 12px;
}
.user-card .action button {
padding: 0 5px;
height: 20px;
line-height: 20px;
font-size: 12px;
}
.user-card .vip {
position: absolute;
top: 8px;
@ -1317,16 +1321,12 @@ body {
padding: 1px 3px;
border-radius: 2px;
text-align: center;
font-size: 12px;
font-size: 10px;
line-height: 1.5em;
background-color: orange;
color: white;
}
.user-card .action span {
cursor: pointer;
}
.my-sidebar {
float: left;
width: 220px;

View File

@ -7,13 +7,20 @@ layui.use(['jquery', 'helper'], function () {
var $tabCourses = $('#tab-courses');
helper.ajaxLoadHtml($tabCourses.data('url'), $tabCourses.attr('id'));
}
if ($('#tab-favorites').length > 0) {
var $tabFavorites = $('#tab-favorites');
helper.ajaxLoadHtml($tabFavorites.data('url'), $tabFavorites.attr('id'));
}
if ($('#tab-friends').length > 0) {
var $tabFriends = $('#tab-friends');
helper.ajaxLoadHtml($tabFriends.data('url'), $tabFriends.attr('id'));
}
if ($('#tab-groups').length > 0) {
var $tabGroups = $('#tab-groups');
helper.ajaxLoadHtml($tabGroups.data('url'), $tabGroups.attr('id'));
}
});

View File

@ -3,9 +3,14 @@ layui.use(['jquery', 'helper'], function () {
var $ = layui.jquery;
var helper = layui.helper;
if ($('#tab-courses').length > 0) {
var $tabCourses = $('#tab-courses');
helper.ajaxLoadHtml($tabCourses.data('url'), $tabCourses.attr('id'));
if ($('#tab-discount-courses').length > 0) {
var $tabDiscountCourses = $('#tab-discount-courses');
helper.ajaxLoadHtml($tabDiscountCourses.data('url'), $tabDiscountCourses.attr('id'));
}
if ($('#tab-free-courses').length > 0) {
var $tabFreeCourses = $('#tab-free-courses');
helper.ajaxLoadHtml($tabFreeCourses.data('url'), $tabFreeCourses.attr('id'));
}
if ($('#tab-users').length > 0) {