1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-17 15:55:31 +08:00

整理优化css

This commit is contained in:
koogua 2022-08-12 17:21:29 +08:00
parent cd9422afc1
commit 20fb468f0d
83 changed files with 538 additions and 348 deletions

1
.gitignore vendored
View File

@ -12,4 +12,5 @@
/public/robots.txt
/public/sitemap.xml
/public/h5
/storage/cache/purifier
*KgTest*

View File

@ -35,9 +35,12 @@ class CategoryController extends Controller
$categories = $categoryService->getTopCategories($type);
}
$showAddButton = $categoryService->showAddButton($type, $parent);
$this->view->setVar('type', $type);
$this->view->setVar('parent', $parent);
$this->view->setVar('categories', $categories);
$this->view->setVar('show_add_button', $showAddButton);
}
/**

View File

@ -17,6 +17,51 @@ use App\Validators\Category as CategoryValidator;
class Category extends Service
{
public function getCategoryOptions($type)
{
$cache = new CategoryTreeListCache();
$categories = $cache->get($type);
$result = [];
if (!$categories) return $result;
foreach ($categories as $category) {
$result[] = [
'id' => $category['id'],
'name' => $category['name'],
];
if (count($category['children']) > 0) {
foreach ($category['children'] as $child) {
$result[] = [
'id' => $child['id'],
'name' => sprintf('|--- %s', $child['name']),
];
}
}
}
return $result;
}
public function showAddButton($type, CategoryModel $parent)
{
$result = true;
if ($type == CategoryModel::TYPE_COURSE) {
$result = $parent->level < 2;
} elseif ($type == CategoryModel::TYPE_HELP) {
$result = $parent->level < 1;
} elseif ($type == CategoryModel::TYPE_ARTICLE) {
$result = $parent->level < 1;
} elseif ($type == CategoryModel::TYPE_QUESTION) {
$result = $parent->level < 1;
}
return $result;
}
public function getCategory($id)
{
return $this->findOrFail($id);

View File

@ -4,7 +4,6 @@
{% set back_url = url({'for':'admin.category.list'},{'type':type}) %}
{% set add_url = url({'for':'admin.category.add'},{'type':type,'parent_id':parent.id}) %}
{% set allow_add = (type == 1 and parent.level < 2) or (type == 2 and parent.level < 1) %}
<div class="kg-nav">
<div class="kg-nav-left">
@ -17,7 +16,7 @@
</span>
</div>
<div class="kg-nav-right">
{% if allow_add %}
{% if show_add_button %}
<a class="layui-btn layui-btn-sm" href="{{ add_url }}"><i class="layui-icon layui-icon-add-1"></i>添加分类</a>
{% endif %}
</div>

View File

@ -8,15 +8,6 @@
<div class="layui-form-mid layui-word-aux">人</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">原始价格</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="origin_price" value="{{ course.origin_price }}" lay-verify="number">
</div>
<div class="layui-form-mid layui-word-aux">元</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">市场价格</label>

View File

@ -1,4 +1,4 @@
{%- macro gift_type_info(value) %}
{%- macro gift_type(value) %}
{% if value == 1 %}
课程
{% elseif value == 2 %}
@ -8,7 +8,7 @@
{% endif %}
{%- endmacro %}
{%- macro redeem_status_info(value) %}
{%- macro redeem_status(value) %}
{% if value == 1 %}
处理中
{% elseif value == 2 %}

View File

@ -63,7 +63,7 @@
<tr>
<td>{{ item.id }}</td>
<td><a href="{{ edit_url }}">{{ item.name }}</a></td>
<td>{{ gift_type_info(item.type) }}</td>
<td>{{ gift_type(item.type) }}</td>
<td>{{ item.point }}</td>
<td>{{ item.stock }}</td>
<td>{{ item.redeem_limit }}</td>

View File

@ -46,14 +46,14 @@
<tr>
<td>
<p>物品名称:<a href="{{ gift_url }}" target="_blank">{{ item.gift_name }}</a>{{ item.gift_id }}</p>
<p>物品类型:{{ gift_type_info(item.gift_type) }}</p>
<p>物品类型:{{ gift_type(item.gift_type) }}</p>
</td>
<td>
<p>用户名称:<a href="{{ user_filter_url }}">{{ item.user_name }}</a>{{ item.user_id }}</p>
<p>联系方式:<a href="javascript:" class="layui-badge layui-bg-green kg-contact" data-name="{{ item.contact_name }}" data-phone="{{ item.contact_phone }}" data-address="{{ item.contact_address }}">查看</a></p>
</td>
<td>{{ item.gift_point }}</td>
<td>{{ redeem_status_info(item.status) }}</td>
<td>{{ redeem_status(item.status) }}</td>
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
<td class="center">
{% if item.gift_type == 2 %}

View File

@ -0,0 +1,30 @@
<?php
/**
* @copyright Copyright (c) 2021 深圳市酷瓜软件有限公司
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.koogua.com
*/
namespace App\Http\Home\Controllers;
/**
* @RoutePrefix("/point")
*/
class PointController extends Controller
{
/**
* @Get("/rule", name="home.point.rule")
*/
public function ruleAction()
{
$point = $this->getSettings('point');
$consumeRule = json_decode($point['consume_rule']);
$eventRule = json_decode($point['event_rule']);
$this->view->setVar('consume_rule', $consumeRule);
$this->view->setVar('event_rule', $eventRule);
}
}

View File

@ -38,7 +38,9 @@ class PointGiftController extends Controller
*/
public function listAction()
{
$this->seo->prependTitle('积分兑换');
$this->seo->prependTitle('积分商城');
$this->view->pick('point/gift/list');
}
/**
@ -53,6 +55,7 @@ class PointGiftController extends Controller
$pager->target = 'gift-list';
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
$this->view->pick('point/gift/pager');
$this->view->setVar('pager', $pager);
}
@ -78,6 +81,7 @@ class PointGiftController extends Controller
$this->seo->prependTitle(['积分兑换', $gift['name']]);
$this->view->pick('point/gift/show');
$this->view->setVar('gift', $gift);
$this->view->setVar('hot_gifts', $hotGifts);
$this->view->setVar('user_balance', $userBalance);

View File

@ -14,7 +14,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="content-wrap wrap">
<div class="layui-tab layui-tab-brief search-tab">

View File

@ -25,10 +25,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-sticky">
{{ partial('article/sticky') }}
</div>
<div class="layout-main">
<div class="layout-content">
<div class="article-info wrap">
<div class="title">{{ article.title }}</div>
@ -97,6 +94,10 @@
</div>
</div>
<div class="layout-sticky">
{{ partial('article/sticky') }}
</div>
{% set share_url = full_url({'for':'home.share'},{'id':article.id,'type':'article'}) %}
{% set qrcode_url = url({'for':'home.qrcode'},{'text':share_url}) %}

View File

@ -1,7 +1,7 @@
<div class="layui-card">
<div class="layui-card-header">关于作者</div>
<div class="layui-card-body">
<div class="sidebar-user-card clearfix">
<div class="sidebar-user-card">
<div class="avatar">
<img src="{{ article.owner.avatar }}!avatar_160" alt="{{ article.owner.name }}">
</div>

View File

@ -22,9 +22,6 @@
</div>
<div class="layout-main">
<div class="layout-sticky">
{{ partial('chapter/live/sticky') }}
</div>
<div class="layout-content">
<div class="player-wrap wrap">
<div id="player"></div>
@ -48,6 +45,10 @@
</div>
</div>
<div class="layout-sticky">
{{ partial('chapter/live/sticky') }}
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">

View File

@ -16,10 +16,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-sticky">
{{ partial('chapter/sticky') }}
</div>
<div class="layout-main">
<div class="layout-content">
<div class="article-info wrap">
<div class="title">{{ chapter.title }}</div>
@ -37,6 +34,10 @@
</div>
</div>
<div class="layout-sticky">
{{ partial('chapter/sticky') }}
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.plan_id" value="{{ chapter.me.plan_id }}">

View File

@ -17,10 +17,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-sticky">
{{ partial('chapter/sticky') }}
</div>
<div class="layout-main">
<div class="layout-content">
<div class="player-wrap wrap">
<div id="player"></div>
@ -35,6 +32,10 @@
</div>
</div>
<div class="layout-sticky">
{{ partial('chapter/sticky') }}
</div>
<div class="layui-hide">
<input type="hidden" name="chapter.id" value="{{ chapter.id }}">
<input type="hidden" name="chapter.position" value="{{ chapter.me.position }}">

View File

@ -32,7 +32,7 @@
{% endif %}
{% if comment.parent_id > 0 %}
<div class="comment-card clearfix">
<div class="comment-card">
<div class="avatar">
<a href="{{ owner_url }}" title="{{ comment.owner.name }}" target="_blank">
<img src="{{ comment.owner.avatar }}!avatar_160" alt="{{ comment.owner.name }}">

View File

@ -6,22 +6,22 @@
<div class="consult-info">
{% if consult.course.id is defined %}
<div class="item clearfix">
<div class="item">
<div class="label">课程:</div>
<div class="title">{{ consult.course.title }}</div>
</div>
{% endif %}
{% if consult.chapter.id is defined %}
<div class="item clearfix">
<div class="item">
<div class="label">章节:</div>
<div class="title">{{ consult.chapter.title }}</div>
</div>
{% endif %}
<div class="item clearfix">
<div class="item">
<div class="label">咨询:</div>
<div class="content">{{ consult.question }}</div>
</div>
<div class="item clearfix">
<div class="item">
<div class="label">回复:</div>
<div class="content">{{ consult.answer }}</div>
</div>

View File

@ -1,7 +1,7 @@
<div class="package-list">
{% for package in packages %}
{% set order_url = url({'for':'home.order.confirm'},{'item_id':package.id,'item_type':2}) %}
<div class="package-item clearfix">
<div class="package-item">
<div class="package-info">
<div class="title">{{ package.title }}</div>
<div class="origin-price">

View File

@ -1,7 +1,7 @@
{{ partial('macros/course') }}
{% if pager.total_pages > 0 %}
<div class="course-list clearfix">
<div class="course-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
<div class="layui-col-md3">

View File

@ -19,11 +19,7 @@
{{ partial('course/show_meta') }}
<div class="layout-main clearfix">
<div class="layout-sticky">
{{ partial('course/sticky') }}
</div>
<div class="layout-main">
{% set show_tab_chapters = course.lesson_count > 0 %}
{% set show_tab_packages = course.package_count > 0 %}
@ -93,6 +89,10 @@
</div>
<div class="layout-sticky">
{{ partial('course/sticky') }}
</div>
{% set share_url = full_url({'for':'home.share'},{'id':course.id,'type':'course'}) %}
{% set qrcode_url = url({'for':'home.qrcode'},{'text':share_url}) %}

View File

@ -97,13 +97,13 @@
<ul class="lesson-list">
{% for lesson in chapter.children %}
{% if lesson.model == 1 %}
<li class="lesson-item clearfix">{{ vod_lesson_info(lesson) }}</li>
<li class="lesson-item">{{ vod_lesson_info(lesson) }}</li>
{% elseif lesson.model == 2 %}
<li class="lesson-item clearfix">{{ live_lesson_info(lesson) }}</li>
<li class="lesson-item">{{ live_lesson_info(lesson) }}</li>
{% elseif lesson.model == 3 %}
<li class="lesson-item clearfix">{{ read_lesson_info(lesson) }}</li>
<li class="lesson-item">{{ read_lesson_info(lesson) }}</li>
{% elseif lesson.model == 4 %}
<li class="lesson-item clearfix">{{ offline_lesson_info(lesson) }}</li>
<li class="lesson-item">{{ offline_lesson_info(lesson) }}</li>
{% endif %}
{% endfor %}
</ul>

View File

@ -61,12 +61,8 @@
{%- macro meta_price_info(course) %}
<p class="item">
{% if course.origin_price > 0 %}
<span class="key">原始价格</span>
<span class="value origin-price">{{ '¥%0.2f'|format(course.origin_price) }}</span>
{% endif %}
{% if course.market_price > 0 %}
<span class="key">优惠价格</span>
<span class="key">市场价格</span>
<span class="value price">{{ '¥%0.2f'|format(course.market_price) }}</span>
{% else %}
<span class="key">优惠价格</span>
@ -93,7 +89,7 @@
</p>
{%- endmacro %}
<div class="course-meta wrap clearfix">
<div class="course-meta wrap">
<div class="cover">
<span class="model layui-badge layui-bg-green">{{ model_type(course.model) }}</span>
<img src="{{ course.cover }}" alt="{{ course.title }}">

View File

@ -5,7 +5,7 @@
<div class="layui-card-body">
{% for teacher in course.teachers %}
{% set teacher_url = url({'for':'home.user.show','id':teacher.id}) %}
<div class="sidebar-user-card clearfix">
<div class="sidebar-user-card">
<div class="avatar">
<img src="{{ teacher.avatar }}!avatar_160" alt="{{ teacher.name }}">
</div>

View File

@ -131,7 +131,7 @@
{% for item in date_sale.items %}
{% set class = item.selected == 1 ? 'layui-tab-item layui-show' : 'layui-tab-item' %}
<div class="{{ class }}">
<div class="index-course-list clearfix">
<div class="index-course-list">
<div class="layui-row layui-col-space20">
{% for sale in item.items %}
<div class="layui-col-md3">

View File

@ -12,7 +12,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="page-info wrap">
<div class="content ke-content">{{ help.content }}</div>

View File

@ -16,7 +16,7 @@
{% for item in items %}
{% set class = loop.first ? 'layui-tab-item layui-show' : 'layui-tab-item' %}
<div class="{{ class }}">
<div class="index-course-list clearfix">
<div class="index-course-list">
<div class="layui-row layui-col-space20">
{% for course in item.courses %}
<div class="layui-col-md3">

View File

@ -5,7 +5,7 @@
{{ partial('macros/course') }}
{%- macro show_courses(courses) %}
<div class="index-course-list clearfix">
<div class="index-course-list">
<div class="layui-row layui-col-space20">
{% for course in courses %}
<div class="layui-col-md3">

View File

@ -70,7 +70,7 @@
{%- macro sidebar_course_card(course) %}
{% set course_url = url({'for':'home.course.show','id':course.id}) %}
<div class="sidebar-course-card clearfix">
<div class="sidebar-course-card">
<div class="cover">
<img src="{{ course.cover }}!cover_270" alt="{{ course.title }}">
</div>

View File

@ -1,4 +1,4 @@
{%- macro gift_type_info(value) %}
{%- macro gift_type(value) %}
{% if value == 1 %}
课程
{% elseif value == 2 %}
@ -8,7 +8,7 @@
{% endif %}
{%- endmacro %}
{%- macro redeem_status_info(value) %}
{%- macro redeem_status(value) %}
{% if value == 1 %}
处理中
{% elseif value == 2 %}

View File

@ -1,8 +1,8 @@
{%- macro event_point_info(value) %}
{% if value > 0 %}
<span class="layui-badge layui-bg-green point">+{{ value }}</span>
<span class="layui-badge layui-bg-red point">+{{ value }}</span>
{% else %}
<span class="layui-badge layui-bg-red point">{{ value }}</span>
<span class="layui-badge layui-bg-green point">{{ value }}</span>
{% endif %}
{%- endmacro %}
@ -37,6 +37,8 @@
<span class="type">提问被赞</span>
{% elseif value == 15 %}
<span class="type">回答被赞</span>
{% else %}
<span class="type">N/A</span>
{% endif %}
{%- endmacro %}
@ -83,5 +85,7 @@
{% elseif type == 15 %}
{% set question_url = url({'for':'home.question.show','id':info.question.id}) %}
<p class="answer"><a href="{{ question_url }}" target="_blank">{{ info.question.title }}</a></p>
{% else %}
<p>N/A</p>
{% endif %}
{%- endmacro %}

View File

@ -6,14 +6,14 @@
{%- macro cart_course_card(course, user) %}
{% set course_url = url({'for':'home.course.show','id':course.id}) %}
<div class="cart-course-card clearfix">
<div class="cart-course-card">
<div class="cover">
<img src="{{ course.cover }}!cover_270" alt="{{ course.title }}">
</div>
<div class="info">
<p><a href="{{ course_url }}" target="_blank">{{ course.title }}</a></p>
<p>
<span class="key">优惠价格</span>
<span class="key">市场价格</span>
<span class="price">{{ '¥%0.2f'|format(course.market_price) }}</span>
<span class="key">会员价格</span>
<span class="price">{{ '¥%0.2f'|format(course.vip_price) }}</span>
@ -46,7 +46,7 @@
{% set course = item_info.course %}
{% set reward = item_info.reward %}
{% set course_url = url({'for':'home.course.show','id':course.id}) %}
<div class="cart-course-card clearfix">
<div class="cart-course-card">
<div class="cover">
<img src="{{ course.cover }}!cover_270" alt="{{ course.title }}">
</div>
@ -70,7 +70,7 @@
{%- macro cart_vip_card(item_info) %}
{% set vip = item_info.vip %}
<div class="cart-course-card clearfix">
<div class="cart-course-card">
<div class="cover">
<img src="{{ vip.cover }}!cover_270" alt="{{ vip.title }}">
</div>
@ -109,7 +109,7 @@
{% endif %}
</div>
<div class="cart-stats wrap clearfix">
<div class="cart-stats wrap">
<div class="info">
商品总价:<span class="amount">{{ '¥%0.2f'|format(confirm.total_amount) }}</span>
优惠金额:<span class="amount">{{ '¥%0.2f'|format(confirm.discount_amount) }}</span>

View File

@ -11,7 +11,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="page-info wrap">
<div class="content ke-content">{{ page.content }}</div>

View File

@ -1,12 +1,13 @@
{{ partial('macros/point_gift') }}
{% if pager.total_pages > 0 %}
<div class="course-list clearfix">
<div class="course-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set gift_url = url({'for':'home.point_gift.show','id':item.id}) %}
<div class="layui-col-md3">
<div class="course-card">
<span class="model layui-badge layui-bg-green">{{ gift_type(item.type) }}</span>
<div class="cover">
<a href="{{ gift_url }}">
<img src="{{ item.cover }}" alt="item.name">
@ -17,7 +18,6 @@
<a href="{{ gift_url }}">{{ item.name }}</a>
</div>
<div class="meta">
{{ gift_type_info(item.type) }}
<span class="price">{{ item.point }} 积分</span>
<span>{{ item.redeem_count }} 人兑换</span>
</div>

View File

@ -15,14 +15,14 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="layui-card">
<div class="layui-card-header">物品信息</div>
<div class="layui-card-body">
<div class="gift-meta clearfix">
<div class="gift-meta">
<div class="cover">
<span class="layui-badge layui-bg-green type">{{ gift_type_info(gift.type) }}</span>
<span class="layui-badge layui-bg-green type">{{ gift_type(gift.type) }}</span>
<img src="{{ gift.cover }}!cover_270" alt="{{ gift.name }}">
</div>
<div class="info">
@ -62,34 +62,34 @@
<div class="layout-sidebar">
<div class="sidebar">
<div class="layui-card">
<div class="layui-card-header">我的信息</div>
<div class="layui-card-header">物品兑换</div>
<div class="layui-card-body">
<div class="sidebar-user-card clearfix">
<div class="avatar">
<img src="{{ auth_user.avatar }}!avatar_160" alt="{{ auth_user.name }}">
<form class="layui-form">
<div class="layui-form-item">
<div class="layui-form-mid">
我的积分:<span class="red">{{ user_balance.point }} 积分</span>
</div>
</div>
<div class="info">
<div class="name">{{ auth_user.name }}</div>
<div class="meta"><span>当前积分</span><span class="point">{{ user_balance.point }}</span></div>
</div>
</div>
{% if gift.me.allow_redeem == 1 %}
<div class="layui-form-item">
<button class="layui-btn layui-bg-red layui-btn-fluid btn-redeem" data-url="{{ gift_redeem_url }}">立即兑换</button>
</div>
{% else %}
<div class="layui-form-item">
<button class="layui-btn layui-btn-fluid layui-btn-disabled">立即兑换</button>
</div>
{% endif %}
</form>
</div>
</div>
</div>
<div class="sidebar wrap">
{% if gift.me.allow_redeem == 1 %}
<button class="layui-btn layui-bg-red layui-btn-fluid btn-redeem" data-url="{{ gift_redeem_url }}">立即兑换</button>
{% else %}
<button class="layui-btn layui-btn-fluid layui-btn-disabled">立即兑换</button>
{% endif %}
</div>
<div class="sidebar">
<div class="layui-card">
<div class="layui-card-header">热门兑换</div>
<div class="layui-card-body">
{% for gift in hot_gifts %}
{% set gift_url = url({'for':'home.point_gift.show','id':gift.id}) %}
<div class="sidebar-course-card clearfix">
<div class="sidebar-course-card">
<div class="cover">
<a href="{{ gift_url }}" title="{{ gift.name }}">
<img src="{{ gift.cover }}!cover_270" alt="{{ gift.name }}">

View File

@ -0,0 +1,106 @@
{% extends 'templates/layer.volt' %}
{% block content %}
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th>奖励类型</th>
<th>奖励分值</th>
<th>每日上限</th>
</tr>
</thead>
<tbody>
{% if consume_rule.enabled == 1 %}
<tr>
<td>订单消费</td>
<td>消费金额 X {{ consume_rule.rate }}</td>
<td>N/A</td>
</tr>
{% endif %}
{% if event_rule.account_register.enabled == 1 %}
<tr>
<td>帐号注册</td>
<td>{{ event_rule.account_register.point }}</td>
<td>N/A</td>
</tr>
{% endif %}
{% if event_rule.site_visit.enabled == 1 %}
<tr>
<td>站点访问</td>
<td>{{ event_rule.site_visit.point }}</td>
<td>N/A</td>
</tr>
{% endif %}
{% if event_rule.course_review.enabled == 1 %}
<tr>
<td>课程评价</td>
<td>{{ event_rule.course_review.point }}</td>
<td>N/A</td>
</tr>
{% endif %}
{% if event_rule.chapter_study.enabled == 1 %}
<tr>
<td>课时学习</td>
<td>{{ event_rule.chapter_study.point }}</td>
<td>N/A</td>
</tr>
{% endif %}
{% if event_rule.comment_post.enabled == 1 %}
<tr>
<td>发表评论</td>
<td>{{ event_rule.comment_post.point }}</td>
<td>{{ event_rule.comment_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.article_post.enabled == 1 %}
<tr>
<td>发表文章</td>
<td>{{ event_rule.article_post.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.question_post.enabled == 1 %}
<tr>
<td>发布问题</td>
<td>{{ event_rule.question_post.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.answer_post.enabled == 1 %}
<tr>
<td>回答问题</td>
<td>{{ event_rule.answer_post.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.article_liked.enabled == 1 %}
<tr>
<td>文章被赞</td>
<td>{{ event_rule.article_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.question_liked.enabled == 1 %}
<tr>
<td>问题被赞</td>
<td>{{ event_rule.question_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
{% if event_rule.answer_liked.enabled == 1 %}
<tr>
<td>回答被赞</td>
<td>{{ event_rule.answer_liked.point }}</td>
<td>{{ event_rule.article_post.limit }}</td>
</tr>
{% endif %}
</tbody>
</table>
{% endblock %}

View File

@ -15,7 +15,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="content-wrap wrap">
<div class="layui-tab layui-tab-brief search-tab">

View File

@ -28,10 +28,7 @@
</span>
</div>
<div class="layout-main clearfix">
<div class="layout-sticky">
{{ partial('question/sticky') }}
</div>
<div class="layout-main">
<div class="layout-content">
<div class="article-info wrap">
<div class="title">{{ question.title }}</div>
@ -97,6 +94,10 @@
</div>
</div>
<div class="layout-sticky">
{{ partial('question/sticky') }}
</div>
{% set share_url = full_url({'for':'home.share'},{'id':question.id,'type':'question'}) %}
{% set qrcode_url = url({'for':'home.qrcode'},{'text':share_url}) %}

View File

@ -1,7 +1,7 @@
<div class="layui-card">
<div class="layui-card-header">关于作者</div>
<div class="layui-card-body">
<div class="sidebar-user-card clearfix">
<div class="sidebar-user-card">
<div class="avatar">
<img src="{{ question.owner.avatar }}!avatar_160" alt="{{ question.owner.name }}">
</div>

View File

@ -15,7 +15,7 @@
</div>
{% set tab_show = type %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="layout-content">
<div class="search-tab-wrap wrap">
<div class="layui-tab layui-tab-brief search-tab">

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<div class="tag-list clearfix">
<div class="tag-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set follow_url = url({'for':'home.tag.follow','id':item.id}) %}

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<div class="tag-list clearfix">
<div class="tag-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set follow_url = url({'for':'home.tag.follow','id':item.id}) %}

View File

@ -7,7 +7,7 @@
{% set status_types = {'all':'全部','pending':'待回复','replied':'已回复'} %}
{% set status = request.get('status','trim','all') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('teacher/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,7 +20,7 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table consult-table">
<table class="layui-table consult-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -4,7 +4,7 @@
{{ partial('macros/course') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('teacher/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -12,7 +12,7 @@
<span class="title">我的课程</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -4,7 +4,7 @@
{{ partial('macros/course') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('teacher/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -12,7 +12,7 @@
<span class="title">课程直播</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<div class="user-list teacher-list clearfix">
<div class="user-list teacher-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set user_url = url({'for':'home.teacher.show','id':item.id}) %}
@ -14,9 +14,6 @@
<a href="{{ user_url }}" title="{{ item.about }}" target="_blank">{{ item.name }}</a>
</div>
<div class="title layui-elip">{{ item.title|default('小小教书匠') }}</div>
<div class="action">
<span class="layui-btn apply-friend" data-id="{{ item.id }}" data-name="{{ item.name }}" data-avatar="{{ item.avatar }}">添加好友</span>
</div>
</div>
</div>
{% endfor %}

View File

@ -1,7 +1,7 @@
{{ partial('macros/course') }}
{% if pager.total_pages > 0 %}
<div class="course-list clearfix">
<div class="course-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
<div class="layui-col-md3">

View File

@ -2,7 +2,7 @@
{% block content %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -23,7 +23,7 @@
{% set edit_phone_url = url({'for':'home.uc.account'},{'type':'phone'}) %}
{% set edit_email_url = url({'for':'home.uc.account'},{'type':'email'}) %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -32,32 +32,42 @@
</div>
<div class="security-item-list">
<div class="security-item">
<span class="icon"><i class="layui-icon layui-icon-password"></i></span>
<span class="title">登录密码</span>
<span class="summary">经常更改密码有助于保护您的帐号安全</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-pwd" href="{{ edit_pwd_url }}">修改</a></span>
<div class="info">
<span class="icon"><i class="layui-icon layui-icon-password"></i></span>
<span class="title">登录密码</span>
<span class="summary">经常更改密码有助于保护您的帐号安全</span>
</div>
<div class="action">
<a class="layui-btn layui-btn-sm btn-edit-pwd" href="{{ edit_pwd_url }}">修改</a>
</div>
</div>
<div class="security-item">
<span class="icon"><i class="layui-icon layui-icon-cellphone"></i></span>
<span class="title">手机绑定</span>
{% if account.phone %}
<span class="summary">已绑定手机:{{ account.phone|anonymous }}</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-phone" href="{{ edit_phone_url }}">修改</a></span>
{% else %}
<span class="summary">可用于登录和重置密码</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-phone" href="{{ edit_phone_url }}">绑定</a></span>
{% endif %}
<div class="info">
<span class="icon"><i class="layui-icon layui-icon-cellphone"></i></span>
<span class="title">手机绑定</span>
{% if account.phone %}
<span class="summary">已绑定手机:{{ account.phone|anonymous }}</span>
{% else %}
<span class="summary">可用于登录和重置密码</span>
{% endif %}
</div>
<div class="action">
<a class="layui-btn layui-btn-sm btn-edit-phone" href="{{ edit_phone_url }}">绑定</a>
</div>
</div>
<div class="security-item">
<span class="icon"><i class="layui-icon layui-icon-email"></i></span>
<span class="title">邮箱绑定</span>
{% if account.email %}
<span class="summary">已绑定邮箱:{{ account.email|anonymous }}</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-email" href="{{ edit_email_url }}">修改</a></span>
{% else %}
<span class="summary">可用于登录和重置密码</span>
<span class="action"><a class="layui-btn layui-btn-sm btn-edit-email" href="{{ edit_email_url }}">绑定</a></span>
{% endif %}
<div class="info">
<span class="icon"><i class="layui-icon layui-icon-email"></i></span>
<span class="title">邮箱绑定</span>
{% if account.email %}
<span class="summary">已绑定邮箱:{{ account.email|anonymous }}</span>
{% else %}
<span class="summary">可用于登录和重置密码</span>
{% endif %}
</div>
<div class="action">
<a class="layui-btn layui-btn-sm btn-edit-email" href="{{ edit_email_url }}">绑定</a>
</div>
</div>
</div>
<div class="my-nav">
@ -66,19 +76,20 @@
{% if connects %}
<div class="connect-tips">已经绑定的第三方帐号</div>
<div class="connect-list">
<table class="layui-table">
<table class="layui-table" lay-skin="line">
<tr>
<td>提供方</td>
<td>用户信息</td>
<td>创建日期</td>
<td>更新日期</td>
<td width="15%">操作</td>
</tr>
{% for connect in connects %}
{% set url = url({'for':'home.uc.unconnect','id':connect.id}) %}
{% set time = connect.update_time > 0 ? connect.update_time : connect.create_time %}
<tr>
<td>{{ connect_provider(connect) }}</td>
<td>{{ connect_user(connect) }}</td>
<td>{{ date('Y-m-d H:i',connect.create_time) }}</td>
<td>{{ date('Y-m-d H:i',time) }}</td>
<td><a class="layui-btn layui-btn-danger layui-btn-sm kg-delete" href="javascript:" data-url="{{ url }}" data-tips="确定要解除绑定吗?">解绑</a></td>
</tr>
{% endfor %}

View File

@ -2,7 +2,7 @@
{% block content %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -2,7 +2,7 @@
{% block content %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -7,7 +7,7 @@
{% set published_types = {'0':'全部','1':'审核中','2':'已发布','3':'未通过'} %}
{% set published = request.get('published','trim','0') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,7 +20,7 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table review-table">
<table class="layui-table review-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -7,7 +7,7 @@
{% set published_types = {'0':'全部','1':'审核中','2':'已发布','3':'未通过'} %}
{% set published = request.get('published','trim','0') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,7 +20,7 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -4,7 +4,7 @@
{{ partial('macros/course') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -12,7 +12,7 @@
<span class="title">我的咨询</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table consult-table">
<table class="layui-table consult-table" lay-skin="line">
<colgroup>
<col>
<col width="20%">

View File

@ -4,7 +4,7 @@
{% set update_url = url({'for':'home.uc.update_contact'}) %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -5,7 +5,7 @@
{{ partial('macros/course_user') }}
{{ partial('macros/course') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -13,7 +13,7 @@
<span class="title">我的课程</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -5,7 +5,7 @@
{% set types = {'course':'课程','article':'文章','question':'问题'} %}
{% set type = request.get('type','trim','course') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -63,16 +63,6 @@
</div>
{% endif %}
<div class="layui-card">
<div class="layui-card-header">聊天设置</div>
<div class="layui-card-body">
<ul class="my-menu">
<li><a href="{{ url({'for':'home.uc.friends'}) }}">我的好友</a></li>
<li><a href="{{ url({'for':'home.uc.groups'}) }}">我的群组</a></li>
</ul>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header">个人设置</div>
<div class="layui-card-body">

View File

@ -4,7 +4,7 @@
{{ partial('macros/notification') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -15,7 +15,7 @@
{% for item in pager.items %}
{% set sender_url = url({'for':'home.user.show','id':item.sender.id}) %}
{% set receiver_url = url({'for':'home.user.show','id':item.receiver.id}) %}
<div class="comment-card notice-card clearfix">
<div class="comment-card notice-card">
<div class="avatar">
<a href="{{ sender_url }}" title="{{ item.sender.name }}" target="_blank">
<img src="{{ item.sender.avatar }}!avatar_160" alt="{{ item.sender.name }}">

View File

@ -7,7 +7,7 @@
{% set status_types = {'0':'全部','1':'待支付','3':'已完成','4':'已关闭','5':'已退款'} %}
{% set status = request.get('status','trim','0') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,28 +20,44 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<div class="order-list">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>
<col>
<col>
<col width="12%">
</colgroup>
<thead>
<tr>
<th>商品</th>
<th>促销</th>
<th>价格</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for item in pager.items %}
{% set order_info_url = url({'for':'home.order.info'},{'sn':item.sn}) %}
<div class="order-card">
<div class="header">
<span>编号:{{ item.sn }}</span>
<span>时间:{{ date('Y-m-d H:i:s',item.create_time) }}</span>
{% if item.promotion_type > 0 %}
促销:<span class="layui-badge layui-bg-blue">{{ promotion_type(item.promotion_type) }}</span>
{% endif %}
</div>
<div class="body clearfix">
<div class="column subject">{{ item.subject }}</div>
<div class="column price">{{ '¥%0.2f'|format(item.amount) }}</div>
<div class="column status">{{ order_status(item.status) }}</div>
<div class="column action">
<button class="layui-btn layui-btn-sm btn-order-info" data-url="{{ order_info_url }}">详情</button>
</div>
</div>
</div>
<tr>
<td>
<p>{{ item.subject }}</p>
<p class="meta">
<span>编号:{{ item.sn }}</span>
<span>时间:{{ date('Y-m-d',item.create_time) }}</span>
</p>
</td>
<td>{{ promotion_type(item.promotion_type) }}</td>
<td class="red">{{ '¥%0.2f'|format(item.amount) }}</td>
<td>{{ order_status(item.status) }}</td>
<td>
<button class="layui-btn layui-btn-sm btn-order-info" data-url="{{ order_info_url }}">详情</button>
</td>
</tr>
{% endfor %}
</div>
</tbody>
</table>
{{ partial('partials/pager') }}
{% endif %}
</div>

View File

@ -4,7 +4,7 @@
{{ partial('macros/point_gift') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -12,7 +12,7 @@
<span class="title">兑换记录</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>
@ -31,9 +31,9 @@
{% for item in pager.items %}
{% set gift_url = url({'for':'home.point_gift.show','id':item.gift.id}) %}
<tr>
<td><a href="{{ gift_url }}" target="_blank">{{ item.gift.name }}</a> {{ gift_type_info(item.gift.type) }}</td>
<td><a href="{{ gift_url }}" target="_blank">{{ item.gift.name }}</a> {{ gift_type(item.gift.type) }}</td>
<td>{{ item.gift.point }}</td>
<td>{{ redeem_status_info(item.status) }}</td>
<td>{{ redeem_status(item.status) }}</td>
<td>{{ date('Y-m-d',item.create_time) }}</td>
</tr>
{% endfor %}

View File

@ -4,15 +4,18 @@
{{ partial('macros/point_history') }}
<div class="layout-main clearfix">
{% set rule_url = url({'for':'home.point.rule'}) %}
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
<div class="my-nav">
<span class="title">积分记录</span>
<a href="javascript:" class="rule sub-nav" data-url="{{ rule_url }}">积分规则</a>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table" lay-size="lg">
<table class="layui-table" lay-size="lg" lay-skin="line">
<colgroup>
<col>
<col>
@ -33,7 +36,7 @@
<td>{{ event_type_info(item.event_type) }}</td>
<td>{{ event_point_info(item.event_point) }}</td>
<td>{{ event_detail_info(item.event_type,item.event_info) }}</td>
<td>{{ date('Y-m-d',item.create_time) }}</td>
<td>{{ date('Y-m-d H:i',item.create_time) }}</td>
</tr>
{% endfor %}
</tbody>
@ -44,4 +47,10 @@
</div>
</div>
{% endblock %}
{% block include_js %}
{{ js_include('home/js/point.rule.js') }}
{% endblock %}

View File

@ -7,7 +7,7 @@
{% set gender_female_checked = user.gender == 2 ? 'checked' : '' %}
{% set gender_none_checked = user.gender == 3 ? 'checked' : '' %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -7,7 +7,7 @@
{% set published_types = {'0':'全部','1':'审核中','2':'已发布','3':'未通过'} %}
{% set published = request.get('published','trim','0') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,7 +20,7 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -7,7 +7,7 @@
{% set status_types = {'0':'全部','1':'待处理','2':'已取消','3':'退款中','5':'已完成'} %}
{% set status = request.get('status','int','0') %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -20,25 +20,41 @@
{% endfor %}
</div>
{% if pager.total_pages > 0 %}
<div class="order-list">
<table class="layui-table" lay-skin="line">
<colgroup>
<col>
<col>
<col>
<col width="12%">
</colgroup>
<thead>
<tr>
<th>商品</th>
<th>价格</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for item in pager.items %}
{% set refund_info_url = url({'for':'home.refund.info'},{'sn':item.sn}) %}
<div class="order-card">
<div class="header">
<span class="sn">编号:{{ item.sn }}</span>
<span class="time">时间:{{ date('Y-m-d H:i:s',item.create_time) }}</span>
</div>
<div class="body clearfix">
<div class="column subject">{{ item.subject }}</div>
<div class="column price">{{ '¥%0.2f'|format(item.amount) }}</div>
<div class="column status">{{ refund_status(item.status) }}</div>
<div class="column action">
<button class="layui-btn layui-btn-sm btn-refund-info" data-url="{{ refund_info_url }}">详情</button>
</div>
</div>
</div>
<tr>
<td>
<p class="meta">{{ item.subject }}</p>
<p class="meta">
<span>编号:{{ item.sn }}</span>
<span>时间:{{ date('Y-m-d',item.create_time) }}</span>
</p>
</td>
<td class="red">{{ '¥%0.2f'|format(item.amount) }}</td>
<td>{{ refund_status(item.status) }}</td>
<td>
<button class="layui-btn layui-btn-sm btn-refund-info" data-url="{{ refund_info_url }}">详情</button>
</td>
</tr>
{% endfor %}
</div>
</tbody>
</table>
{{ partial('partials/pager') }}
{% endif %}
</div>

View File

@ -4,7 +4,7 @@
{{ partial('macros/course') }}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">
@ -12,7 +12,7 @@
<span class="title">我的评价</span>
</div>
{% if pager.total_pages > 0 %}
<table class="layui-table review-table">
<table class="layui-table review-table" lay-skin="line">
<colgroup>
<col>
<col>

View File

@ -2,7 +2,7 @@
{% block content %}
<div class="layout-main clearfix">
<div class="layout-main">
<div class="my-sidebar">{{ partial('user/console/menu') }}</div>
<div class="my-content">
<div class="wrap">

View File

@ -1,7 +1,7 @@
{{ partial('macros/course') }}
{% if pager.total_pages > 0 %}
<div class="course-list clearfix">
<div class="course-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
<div class="layui-col-md3">

View File

@ -20,7 +20,7 @@
</span>
</div>
<div class="user-profile wrap clearfix">
<div class="user-profile wrap">
<div class="{{ avatar_class }}">
<img src="{{ user.avatar }}!avatar_160" alt="{{ user.name }}">
</div>

View File

@ -1,7 +1,7 @@
{{ partial('macros/course') }}
{% if pager.total_pages > 0 %}
<div class="course-list clearfix">
<div class="course-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
<div class="layui-col-md3">

View File

@ -1,5 +1,5 @@
{% if pager.total_pages > 0 %}
<div class="user-list vip-user-list clearfix">
<div class="user-list vip-user-list">
<div class="layui-row layui-col-space20">
{% for item in pager.items %}
{% set user_url = url({'for':'home.user.show','id':item.id}) %}

View File

@ -6,7 +6,7 @@
{% for author in authors %}
{% set author.title = author.title ? author.title : '暂露头角' %}
{% set author_url = url({'for':'home.user.show','id':author.id}) %}
<div class="sidebar-user-card clearfix">
<div class="sidebar-user-card">
<div class="avatar">
<img src="{{ author.avatar }}!avatar_160" alt="{{ author.name }}">
</div>

View File

@ -139,6 +139,8 @@ class Course extends Model
/**
* 原始价格
*
* @deprecated since v1.5.7
*
* @var float
*/
public $origin_price = 0.00;

View File

@ -242,14 +242,6 @@ class User extends Model
public function afterUpdate()
{
if ($this->hasUpdated('name') || $this->hasUpdated('avatar')) {
$imUser = ImUser::findFirst($this->id);
$imUser->update([
'name' => $this->name,
'avatar' => $this->avatar,
]);
}
$userCache = new UserCache();
$userCache->rebuild($this->id);

View File

@ -12,7 +12,6 @@ use App\Models\Answer as AnswerModel;
use App\Models\Article as ArticleModel;
use App\Models\Comment as CommentModel;
use App\Models\CourseUser as CourseUserModel;
use App\Models\ImUser as ImUserModel;
use App\Models\Notification as NotificationModel;
use App\Models\Question as QuestionModel;
use App\Models\User as UserModel;
@ -164,15 +163,6 @@ class User extends Repository
]);
}
/**
* @param int $id
* @return ImUserModel|Model|bool
*/
public function findImUser($id)
{
return ImUserModel::findFirst($id);
}
/**
* @return ResultsetInterface|Resultset|UserModel[]
*/

View File

@ -8,7 +8,6 @@
namespace App\Services\Logic\User;
use App\Models\User as UserModel;
use App\Repos\User as UserRepo;
use App\Services\Logic\Service as LogicService;
use App\Services\Logic\UserTrait;
@ -26,10 +25,6 @@ class UserInfo extends LogicService
protected function handleUser(UserModel $user)
{
$userRepo = new UserRepo();
$imUser = $userRepo->findImUser($user->id);
return [
'id' => $user->id,
'name' => $user->name,
@ -46,8 +41,6 @@ class UserInfo extends LogicService
'question_count' => $user->question_count,
'answer_count' => $user->answer_count,
'comment_count' => $user->comment_count,
'friend_count' => $imUser->friend_count,
'group_count' => $imUser->group_count,
'vip_expiry_time' => $user->vip_expiry_time,
'lock_expiry_time' => $user->lock_expiry_time,
'active_time' => $user->active_time,

View File

@ -110,13 +110,16 @@
text-align: center;
}
.layout-main {
display: flex;
justify-content: space-between;
}
.layout-content {
float: left;
width: 800px;
}
.layout-sidebar {
float: right;
width: 320px;
}
@ -839,7 +842,7 @@
}
.course-card .info {
padding: 10px 5px;
padding: 10px;
}
.course-card .title {
@ -914,21 +917,24 @@
margin-right: 20px;
}
.course-meta {
display: flex;
}
.course-meta .cover {
float: left;
position: relative;
width: 270px;
height: 150px;
margin-right: 10px;
}
.course-meta .info {
float: left;
width: 560px;
width: 580px;
padding-top: 5px;
}
.course-meta .rating {
float: right;
padding: 10px 50px 0 0;
padding-top: 20px;
}
.course-meta p {
@ -936,8 +942,8 @@
}
.course-meta .cover img {
width: 270px;
height: 150px;
width: 100%;
height: 100%;
}
.course-meta .cover .model {
@ -1053,8 +1059,9 @@
}
.package-item {
display: flex;
margin-bottom: 20px;
border-bottom: 1px dashed #ccc;
border-bottom: 1px solid #f6f6f6;
}
.package-item:last-child {
@ -1064,7 +1071,6 @@
}
.package-info {
float: left;
width: 180px;
font-size: 12px;
text-align: center;
@ -1189,28 +1195,31 @@
}
.sidebar-user-card {
margin-bottom: 15px;
display: flex;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #f6f6f6;
}
.sidebar-user-card:last-child {
border-bottom: none;
padding-bottom: 0;
}
.sidebar-user-card .avatar {
float: left;
width: 60px;
height: 60px;
width: 48px;
height: 48px;
margin-right: 10px;
}
.sidebar-user-card .avatar img {
width: 100%;
height: 100%;
border-radius: 60px;
border-radius: 100%;
}
.sidebar-user-card .info {
float: left;
padding: 5px 0;
}
.sidebar-user-card .info .name {
line-height: 24px;
}
.sidebar-user-card .info .title {
@ -1218,10 +1227,6 @@
font-size: 12px;
}
.sidebar-user-card .info span {
margin-right: 5px;
}
.topic-badge,
.tag-badge {
padding: 2px 5px;
@ -1230,12 +1235,14 @@
}
.sidebar-course-card {
padding-bottom: 10px;
display: flex;
margin-bottom: 10px;
border-bottom: 1px dashed #ccc;
padding-bottom: 10px;
border-bottom: 1px solid #f6f6f6;
}
.sidebar-course-card:last-child {
padding-bottom: 0;
border-bottom: none;
}
@ -1678,23 +1685,24 @@
}
.user-profile {
position: relative;
display: flex;
align-items: center;
}
.user-profile .avatar {
float: left;
width: 96px;
height: 96px;
margin-right: 30px;
}
.user-profile .avatar img {
width: 96px;
height: 96px;
border-radius: 100px;
width: 100%;
height: 100%;
border-radius: 100%;
}
.user-profile .info {
float: left;
padding-top: 10px;
flex: 1;
}
.user-profile .info h3 {
@ -1713,9 +1721,6 @@
}
.user-profile .about {
position: absolute;
top: 25px;
right: 20px;
width: 400px;
height: 70px;
padding: 10px;
@ -1797,11 +1802,6 @@
margin-bottom: 10px;
}
.user-card .owner {
margin-bottom: 10px;
color: #666;
}
.user-card .title {
color: #666;
}
@ -1814,17 +1814,6 @@
margin-right: 5px;
}
.user-card .action {
margin-top: 15px;
}
.user-card .action .layui-btn {
padding: 0 5px;
height: 20px;
line-height: 20px;
font-size: 12px;
}
.user-card .type {
position: absolute;
top: 18px;
@ -1836,43 +1825,13 @@
}
.teacher-list .user-card {
height: 240px;
height: 200px;
}
.vip-user-list .user-card {
height: 200px;
}
.group-user-list .user-card {
box-shadow: none;
height: 200px;
}
.group-user-list .avatar {
margin: 15px 0;
}
.group-user-list .avatar img {
width: 64px;
height: 64px;
border-radius: 100%;
}
.group-list {
margin-bottom: 20px;
}
.group-list .user-card {
height: 240px;
}
.group-about {
padding: 15px;
min-height: 65px;
font-size: 12px;
color: #666;
}
.tag-card {
float: left;
width: 100%;
@ -1904,12 +1863,10 @@
}
.my-sidebar {
float: left;
width: 220px;
}
.my-content {
float: right;
width: 900px;
}
@ -1934,6 +1891,7 @@
}
.my-nav {
position: relative;
line-height: 30px;
padding-bottom: 10px;
margin-bottom: 20px;
@ -1945,10 +1903,21 @@
font-size: 16px;
}
.my-nav .sub-nav {
margin-right: 0;
position: absolute;
top: 0;
right: 0;
}
.my-nav a {
margin-right: 20px;
}
.sub-nav a {
margin-right: 0;
}
.profile-form {
width: 95%;
}
@ -1993,23 +1962,21 @@
}
.consult-info .item {
display: flex;
margin-bottom: 15px;
line-height: 1.5em;
}
.consult-info .item .label {
float: left;
width: 50px;
text-align: right;
}
.consult-info .item .title {
float: left;
width: 600px;
}
.consult-info .item .content {
float: left;
width: 600px;
color: #666;
word-wrap: break-word;
@ -2033,8 +2000,10 @@
}
.security-item {
line-height: 80px;
display: flex;
justify-content: space-between;
border-bottom: 1px dashed #ccc;
line-height: 80px;
}
.security-item:last-child {
@ -2053,10 +2022,6 @@
color: #666;
}
.security-item .action {
float: right;
}
.connect-list {
margin-bottom: 20px;
}
@ -2186,9 +2151,15 @@
margin-bottom: 0;
}
.gift-meta {
display: flex;
}
.gift-meta .cover {
float: left;
position: relative;
width: 270px;
height: 150px;
margin-right: 10px;
}
@ -2199,12 +2170,11 @@
}
.gift-meta .cover img {
width: 270px;
height: 150px;
width: 100%;
height: 100%;
}
.gift-meta .info {
float: left;
padding-top: 5px;
}
@ -2220,7 +2190,7 @@
color: #666;
}
.gift-meta .info .price, .sidebar-user-card .info .point {
.gift-meta .info .price {
color: red;
}

View File

@ -0,0 +1,16 @@
layui.use(['jquery', 'layer'], function () {
var $ = layui.jquery;
var layer = layui.layer;
$('.rule').on('click', function () {
var url = $(this).data('url');
layer.open({
type: 2,
title: '积分规则',
content: url,
area: ['720px', '480px']
});
});
});

View File

@ -6,6 +6,10 @@ img {
max-width: 50%;
}
p {
margin-bottom: 15px;
}
table {
width: 100%;
border: 1px solid #dedede;