1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-07-25 01:11:44 +08:00

Merge branch 'koogua/v1.5.2'

This commit is contained in:
koogua 2022-04-30 11:39:53 +08:00
commit 450b4c5210
32 changed files with 87 additions and 66 deletions

View File

@ -1,3 +1,12 @@
### [v1.5.2](https://gitee.com/koogua/course-tencent-cloud/releases/v1.5.2)(2022-04-17)
- 补充话题列表课程数据结构
- 调整发送验证码相关样式
- 优化套餐和话题下拉课程数据显示
- 去除礼物详情中多出来的"}}"标签
- 修正关闭秒杀订单时没有回填库存的问题
- vditor编辑器切换为七牛cdn加速
### [v1.5.1](https://gitee.com/koogua/course-tencent-cloud/releases/v1.5.1)(2022-03-17) ### [v1.5.1](https://gitee.com/koogua/course-tencent-cloud/releases/v1.5.1)(2022-03-17)
- 推荐课程等列表补充属性 - 推荐课程等列表补充属性

View File

@ -45,7 +45,7 @@ class CourseTopicList extends Builder
'id', 'title', 'cover', 'id', 'title', 'cover',
'market_price', 'vip_price', 'market_price', 'vip_price',
'rating', 'model', 'level', 'attrs', 'rating', 'model', 'level', 'attrs',
'user_count', 'lesson_count', 'user_count', 'lesson_count', 'review_count', 'favorite_count',
]; ];
$courses = $courseRepo->findByIds($ids, $columns); $courses = $courseRepo->findByIds($ids, $columns);

View File

@ -8,6 +8,7 @@
namespace App\Console\Tasks; namespace App\Console\Tasks;
use App\Models\Order as OrderModel; use App\Models\Order as OrderModel;
use App\Repos\FlashSale as FlashSaleRepo;
use App\Services\Logic\FlashSale\Queue as FlashSaleQueue; use App\Services\Logic\FlashSale\Queue as FlashSaleQueue;
use App\Services\Logic\FlashSale\UserOrderCache; use App\Services\Logic\FlashSale\UserOrderCache;
use Phalcon\Mvc\Model\Resultset; use Phalcon\Mvc\Model\Resultset;
@ -27,6 +28,7 @@ class CloseFlashSaleOrderTask extends Task
echo '------ start close order task ------' . PHP_EOL; echo '------ start close order task ------' . PHP_EOL;
foreach ($orders as $order) { foreach ($orders as $order) {
$this->incrFlashSaleStock($order->promotion_id);
$this->pushFlashSaleQueue($order->promotion_id); $this->pushFlashSaleQueue($order->promotion_id);
$this->deleteUserOrderCache($order->owner_id, $order->promotion_id); $this->deleteUserOrderCache($order->owner_id, $order->promotion_id);
$order->status = OrderModel::STATUS_CLOSED; $order->status = OrderModel::STATUS_CLOSED;
@ -36,6 +38,17 @@ class CloseFlashSaleOrderTask extends Task
echo '------ end close order task ------' . PHP_EOL; echo '------ end close order task ------' . PHP_EOL;
} }
protected function incrFlashSaleStock($saleId)
{
$flashSaleRepo = new FlashSaleRepo();
$flashSale = $flashSaleRepo->findById($saleId);
$flashSale->stock += 1;
$flashSale->update();
}
protected function pushFlashSaleQueue($saleId) protected function pushFlashSaleQueue($saleId)
{ {
$queue = new FlashSaleQueue(); $queue = new FlashSaleQueue();

View File

@ -15,7 +15,6 @@ use App\Repos\Chapter as ChapterRepo;
use App\Repos\Course as CourseRepo; use App\Repos\Course as CourseRepo;
use App\Services\ChapterVod as ChapterVodService; use App\Services\ChapterVod as ChapterVodService;
use App\Services\CourseStat as CourseStatService; use App\Services\CourseStat as CourseStatService;
use App\Services\Vod as VodService;
use App\Validators\ChapterLive as ChapterLiveValidator; use App\Validators\ChapterLive as ChapterLiveValidator;
use App\Validators\ChapterOffline as ChapterOfflineValidator; use App\Validators\ChapterOffline as ChapterOfflineValidator;
use App\Validators\ChapterRead as ChapterReadValidator; use App\Validators\ChapterRead as ChapterReadValidator;
@ -134,28 +133,14 @@ class ChapterContent extends Service
$vod = $chapterRepo->findChapterVod($chapter->id); $vod = $chapterRepo->findChapterVod($chapter->id);
/**
* 无新文件上传
*/
if ($fileId == $vod->file_id) return;
/**
* 删除旧文件
*/
if ($vod->file_id) {
$this->deleteVodFile($vod->file_id);
}
$vod->file_id = $fileId; $vod->file_id = $fileId;
$vod->file_transcode = []; $vod->file_transcode = [];
$vod->update(); $vod->update();
$attrs = $chapter->attrs; $attrs = $chapter->attrs;
$attrs['duration'] = 0; $attrs['duration'] = 0;
$attrs['file']['status'] = ChapterModel::FS_UPLOADED; $attrs['file']['status'] = ChapterModel::FS_UPLOADED;
$chapter->attrs = $attrs; $chapter->attrs = $attrs;
$chapter->update(); $chapter->update();
$this->updateCourseVodAttrs($vod->course_id); $this->updateCourseVodAttrs($vod->course_id);
@ -331,13 +316,6 @@ class ChapterContent extends Service
$statService->updateOfflineAttrs($courseId); $statService->updateOfflineAttrs($courseId);
} }
protected function deleteVodFile($fileId)
{
$vodService = new VodService();
$vodService->deleteMedia($fileId);
}
protected function rebuildCatalogCache(ChapterModel $chapter) protected function rebuildCatalogCache(ChapterModel $chapter)
{ {
$cache = new CatalogCache(); $cache = new CatalogCache();

View File

@ -59,8 +59,9 @@ class Package extends Service
$result = []; $result = [];
foreach ($items as $item) { foreach ($items as $item) {
$price = $item->market_price > 0 ? sprintf("¥%0.2f", $item->market_price) : '免费';
$result[] = [ $result[] = [
'name' => sprintf('%s - %s¥%0.2f', $item->id, $item->title, $item->market_price), 'name' => sprintf('%s - %s¥%0.2f', $item->id, $item->title, $price),
'value' => $item->id, 'value' => $item->id,
'selected' => in_array($item->id, $courseIds), 'selected' => in_array($item->id, $courseIds),
]; ];

View File

@ -34,8 +34,9 @@ class Slide extends Service
$result = []; $result = [];
foreach ($items as $item) { foreach ($items as $item) {
$price = $item->market_price > 0 ? sprintf("¥%0.2f", $item->market_price) : '免费';
$result[] = [ $result[] = [
'name' => sprintf('%s(¥%0.2f', $item->title, $item->market_price), 'name' => sprintf('%s- %s%s', $item->id, $item->title, $price),
'value' => $item->id, 'value' => $item->id,
]; ];
} }

View File

@ -45,8 +45,9 @@ class Topic extends Service
$result = []; $result = [];
foreach ($items as $item) { foreach ($items as $item) {
$price = $item->market_price > 0 ? sprintf("¥%0.2f", $item->market_price) : '免费';
$result[] = [ $result[] = [
'name' => sprintf('%s - %s¥%0.2f', $item->id, $item->title, $item->market_price), 'name' => sprintf('%s - %s¥%0.2f', $item->id, $item->title, $price),
'value' => $item->id, 'value' => $item->id,
'selected' => in_array($item->id, $courseIds), 'selected' => in_array($item->id, $courseIds),
]; ];

View File

@ -29,13 +29,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -28,13 +28,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -25,13 +25,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('lib/xm-select.js') }} {{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}

View File

@ -50,7 +50,7 @@
{% block link_css %} {% block link_css %}
{% if chapter.model == 3 %} {% if chapter.model == 3 %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endif %} {% endif %}
{% endblock %} {% endblock %}
@ -59,7 +59,7 @@
{% if chapter.model == 3 %} {% if chapter.model == 3 %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% elseif chapter.model == 1 %} {% elseif chapter.model == 1 %}

View File

@ -41,13 +41,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('lib/xm-select.js') }} {{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/cover.upload.js') }} {{ js_include('admin/js/cover.upload.js') }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}

View File

@ -49,13 +49,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -56,13 +56,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -32,13 +32,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -45,13 +45,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endblock %} {% endblock %}

View File

@ -15,7 +15,7 @@
{% block link_css %} {% block link_css %}
{% if gift.type == 2 %} {% if gift.type == 2 %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endif %} {% endif %}
{% endblock %} {% endblock %}
@ -23,7 +23,7 @@
{% block include_js %} {% block include_js %}
{% if gift.type == 2 %} {% if gift.type == 2 %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('admin/js/cover.upload.js') }} {{ js_include('admin/js/cover.upload.js') }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}
{% endif %} {% endif %}

View File

@ -25,13 +25,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('lib/xm-select.js') }} {{ js_include('lib/xm-select.js') }}
{{ js_include('admin/js/vditor.js') }} {{ js_include('admin/js/vditor.js') }}

View File

@ -7,6 +7,8 @@
namespace App\Http\Home\Services; namespace App\Http\Home\Services;
use App\Models\Course as CourseModel;
use App\Repos\Chapter as ChapterRepo;
use App\Traits\Client as ClientTrait; use App\Traits\Client as ClientTrait;
class FullH5Url extends Service class FullH5Url extends Service
@ -118,7 +120,19 @@ class FullH5Url extends Service
public function getChapterInfoUrl($id) public function getChapterInfoUrl($id)
{ {
return sprintf('%s/chapter/info?id=%s', $this->baseUrl, $id); $chapterRepo = new ChapterRepo();
$chapter = $chapterRepo->findById($id);
if ($chapter->model == CourseModel::MODEL_VOD) {
return sprintf('%s/chapter/vod?id=%s', $this->baseUrl, $id);
} elseif ($chapter->model == CourseModel::MODEL_LIVE) {
return sprintf('%s/chapter/live?id=%s', $this->baseUrl, $id);
} elseif ($chapter->model == CourseModel::MODEL_READ) {
return sprintf('%s/chapter/read?id=%s', $this->baseUrl, $id);
} else {
return $this->getHomeUrl();
}
} }
public function getUserIndexUrl($id) public function getUserIndexUrl($id)

View File

@ -23,7 +23,7 @@
<input class="layui-input" type="text" name="verify_code" autocomplete="off" placeholder="验证码" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" autocomplete="off" placeholder="验证码" lay-verify="required">
</div> </div>
<div class="layui-input-inline verify-btn-inline"> <div class="layui-input-inline verify-btn-inline">
<button id="cv-emit-btn" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button> <button id="cv-emit-btn" class="layui-btn layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">

View File

@ -38,7 +38,7 @@
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
</div> </div>
<div class="layui-input-inline verify-btn-inline"> <div class="layui-input-inline verify-btn-inline">
<button id="cv-emit-btn" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button> <button id="cv-emit-btn" class="layui-btn layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">

View File

@ -41,13 +41,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('home/js/answer.edit.js') }} {{ js_include('home/js/answer.edit.js') }}
{{ js_include('home/js/vditor.js') }} {{ js_include('home/js/vditor.js') }}

View File

@ -36,13 +36,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('home/js/answer.edit.js') }} {{ js_include('home/js/answer.edit.js') }}
{{ js_include('home/js/vditor.js') }} {{ js_include('home/js/vditor.js') }}

View File

@ -76,13 +76,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('lib/xm-select.js') }} {{ js_include('lib/xm-select.js') }}
{{ js_include('home/js/article.edit.js') }} {{ js_include('home/js/article.edit.js') }}
{{ js_include('home/js/vditor.js') }} {{ js_include('home/js/vditor.js') }}

View File

@ -96,7 +96,7 @@
<div class="course-meta wrap clearfix"> <div class="course-meta wrap clearfix">
<div class="cover"> <div class="cover">
<span class="model layui-badge layui-bg-green">{{ model_type(course.model) }}</span> <span class="model layui-badge layui-bg-green">{{ model_type(course.model) }}</span>
<img src="{{ course.cover }}!cover_270" alt="{{ course.title }}"> <img src="{{ course.cover }}" alt="{{ course.title }}">
</div> </div>
<div class="info"> <div class="info">
{% if course.model == 1 %} {% if course.model == 1 %}

View File

@ -32,7 +32,7 @@
<a href="{{ course_url }}">{{ gift.name }}</a> <a href="{{ course_url }}">{{ gift.name }}</a>
</p> </p>
{% else %} {% else %}
<p class="item">{{ gift.name }} }}</p> <p class="item">{{ gift.name }}</p>
{% endif %} {% endif %}
<p class="item stats"> <p class="item stats">
<span class="key">兑换人次</span> <span class="key">兑换人次</span>

View File

@ -56,13 +56,13 @@
{% block link_css %} {% block link_css %}
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }} {{ css_link('https://cdn.staticfile.org/vditor/3.8.13/index.css', false) }}
{% endblock %} {% endblock %}
{% block include_js %} {% block include_js %}
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }} {{ js_include('https://cdn.staticfile.org/vditor/3.8.13/index.min.js', false) }}
{{ js_include('lib/xm-select.js') }} {{ js_include('lib/xm-select.js') }}
{{ js_include('home/js/question.edit.js') }} {{ js_include('home/js/question.edit.js') }}
{{ js_include('home/js/vditor.js') }} {{ js_include('home/js/vditor.js') }}

View File

@ -28,7 +28,7 @@
<input class="layui-input" type="text" name="verify_code" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" lay-verify="required">
</div> </div>
<div class="layui-input-inline verify-btn-inline"> <div class="layui-input-inline verify-btn-inline">
<button id="cv-emit-btn" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button> <button id="cv-emit-btn" class="layui-btn layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">

View File

@ -28,7 +28,7 @@
<input class="layui-input" type="text" name="verify_code" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" lay-verify="required">
</div> </div>
<div class="layui-input-inline verify-btn-inline"> <div class="layui-input-inline verify-btn-inline">
<button id="cv-emit-btn" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button> <button id="cv-emit-btn" class="layui-btn layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">

View File

@ -16,7 +16,7 @@ class AppInfo
protected $link = 'https://koogua.com'; protected $link = 'https://koogua.com';
protected $version = '1.5.'; protected $version = '1.5.2';
public function __get($name) public function __get($name)
{ {

View File

@ -52,7 +52,7 @@ $error['account.login_pwd_incorrect'] = '登录密码不正确';
$error['account.invalid_login_name'] = '无效的登录名'; $error['account.invalid_login_name'] = '无效的登录名';
$error['account.invalid_email'] = '无效的电子邮箱'; $error['account.invalid_email'] = '无效的电子邮箱';
$error['account.invalid_phone'] = '无效的手机号'; $error['account.invalid_phone'] = '无效的手机号';
$error['account.invalid_pwd'] = '无效的密码(字母或数字6-16位'; $error['account.invalid_pwd'] = '无效的密码(字母|数字|特殊字符6-16位';
$error['account.email_taken'] = '邮箱被占用'; $error['account.email_taken'] = '邮箱被占用';
$error['account.phone_taken'] = '手机号被占用'; $error['account.phone_taken'] = '手机号被占用';
$error['account.pwd_not_match'] = '密码不匹配'; $error['account.pwd_not_match'] = '密码不匹配';

View File

@ -1,6 +1,7 @@
layui.use(['jquery', 'util'], function () { layui.use(['jquery', 'layer', 'util'], function () {
var $ = layui.jquery; var $ = layui.jquery;
var layer = layui.layer;
var util = layui.util; var util = layui.util;
var timeCounting = false; var timeCounting = false;
@ -62,6 +63,9 @@ layui.use(['jquery', 'util'], function () {
type: 'POST', type: 'POST',
url: postUrl, url: postUrl,
data: postData, data: postData,
success: function () {
layer.msg('发送验证码成功', {icon: 1});
}
}); });
$submit.removeClass('layui-btn-disabled').removeAttr('disabled'); $submit.removeClass('layui-btn-disabled').removeAttr('disabled');
$emit.addClass('layui-btn-disabled').attr('disabled', 'disabled'); $emit.addClass('layui-btn-disabled').attr('disabled', 'disabled');