diff --git a/.editorconfig b/.editorconfig
index df031e2..b7c27c5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -322,7 +322,7 @@ ij_php_package_weight = 28
ij_php_param_weight = 0
ij_php_parentheses_expression_new_line_after_left_paren = false
ij_php_parentheses_expression_right_paren_on_new_line = false
-ij_php_phpdoc_blank_line_before_tags = true
+ij_php_phpdoc_blank_line_before_tags = false
ij_php_phpdoc_blank_lines_around_parameters = false
ij_php_phpdoc_keep_blank_lines = true
ij_php_phpdoc_param_spaces_between_name_and_description = 2
diff --git a/.env.docker-compose.example b/.env.docker-compose.example
deleted file mode 100644
index 4ce825d..0000000
--- a/.env.docker-compose.example
+++ /dev/null
@@ -1,17 +0,0 @@
-# Web 映射到宿主机的端口
-PORT=666
-
-# MySQL 映射到宿主机的端口
-MYSQL_PORT=3306
-
-# MySQL 数据库名
-MYSQL_DATABASE=code6
-
-# MySQL 用户名(请使用非 root 用户)
-MYSQL_USER=
-
-# MySQL 密码
-MYSQL_PASSWORD=
-
-# MySQL 挂载到宿主机的目录
-MYSQL_VOLUME_PATH=
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index d3c98c5..0000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,15 +0,0 @@
-## 安装方式
-Docker-Compose 安装、Docker 安装 或 源码安装
-
-## 问题描述
-请描述遇到的问题..
-
-## 运行环境
-```
-请复制 php doctor.php 运行结果
-```
-
-## 报错日志
-```
-日志目录:storage/logs
-```
diff --git a/.gitignore b/.gitignore
index 8f5f877..f5b7047 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,5 +11,3 @@ Homestead.yaml
npm-debug.log
yarn-error.log
.idea
-.DS_Store
-.env.docker-compose
diff --git a/Dockerfile b/Dockerfile
index 1e9bdec..374798b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,46 +2,37 @@ FROM php:7.4-apache
EXPOSE 80
-ENV MYSQL_HOST="mysql"
+ENV MYSQL_HOST="172.17.0.1"
ENV MYSQL_PORT="3306"
ENV MYSQL_DATABASE="code6"
ENV MYSQL_USERNAME=""
ENV MYSQL_PASSWORD=""
-ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
# 复制代码
COPY . /var/www/html
-COPY docker-entrypoint.sh docker-entrypoint.sh
WORKDIR /var/www/html
-# 使用阿里镜像并安装包
-RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak;\
-echo 'deb http://mirrors.aliyun.com/debian buster main'>> /etc/apt/sources.list;\
-echo 'deb http://mirrors.aliyun.com/debian buster-updates main'>> /etc/apt/sources.list;\
-apt-get update;\
-apt-get install -y --allow-downgrades zip cron vim zlib1g=1:1.2.11.dfsg-1+deb10u1 zlib1g-dev libpng-dev;\
-rm -rf /var/lib/apt/lists/*;\
# 安装 PHP 扩展
-docker-php-ext-install pdo_mysql;\
-docker-php-ext-install gd;\
+RUN docker-php-ext-install pdo_mysql
+
# 配置 Web 路径
-sed -ri -e "s!/var/www/html!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/sites-available/*.conf;\
-sed -ri -e "s!/var/www/!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf;\
-# 修改时区
-rm -rf /etc/localtime;\
-ln -s /usr/share/zoneinfo/PRC /etc/localtime;\
-# 设置别名
-echo "alias ll='ls -l'">> /etc/bash.bashrc;\
-# Vim 编码配置
-echo 'set fileencodings=utf-8'>> /etc/vim/vimrc;\
-echo 'set termencoding=utf-8'>> /etc/vim/vimrc;\
-echo 'set encoding=utf-8'>> /etc/vim/vimrc;\
+ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
+RUN sed -ri -e "s!/var/www/html!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/sites-available/*.conf
+RUN sed -ri -e "s!/var/www/!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
+
+# 使用阿里镜像并安装包
+RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
+RUN echo 'deb http://mirrors.aliyun.com/debian buster main'>> /etc/apt/sources.list
+RUN echo 'deb http://mirrors.aliyun.com/debian buster-updates main'>> /etc/apt/sources.list
+RUN apt-get update && apt-get install -y zip cron
+RUN rm -rf /var/lib/apt/lists/* && apt-get clean
+
# 安装 Composer 及项目依赖包
-curl -sO https://mirrors.aliyun.com/composer/composer.phar;\
-chmod +x composer.phar;\
-mv composer.phar /usr/local/bin/composer;\
-composer config repo.packagist composer https://mirrors.aliyun.com/composer/;\
-composer install --no-dev --no-progress --optimize-autoloader;\
-chmod +x docker-entrypoint.sh;
+RUN curl -O https://mirrors.aliyun.com/composer/composer.phar
+RUN chmod +x composer.phar
+RUN mv composer.phar /usr/local/bin/composer
+RUN composer config repo.packagist composer https://mirrors.aliyun.com/composer/
+RUN composer install --no-dev --optimize-autoloader
+RUN chmod +x docker-entrypoint.sh
ENTRYPOINT /bin/bash docker-entrypoint.sh
diff --git a/README.md b/README.md
index d99ab48..38f9eaf 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-
+


@@ -14,19 +14,12 @@
---
-> 因 GitHub 官方搜索架构调整,码小六即日起暂停维护,详见 https://github.com/4x99/code6/issues/264 ,感谢大家支持,后会有期! 2023年04月27日
-
----
-
## 系统特点
- 全可视化界面,操作简单
-- 支持移动端,随时随地解决问题
- 支持 GitHub 令牌管理及智能调度
-- 扫描配置灵活,可单独配置任务扫描参数
- 扫描结果信息丰富,支持批量操作
-- 支持代理配置,扫描 GitHub 更通畅
-- 支持白名单模式,可按仓库和文件名过滤
-- 支持邮件、钉钉、飞书、WebHook、Telegram、企业微信通知
+- 任务配置灵活,可单独配置任务扫描参数
+- 支持白名单模式,主动忽略白名单仓库
---
@@ -40,33 +33,15 @@
---
## 安装部署
-码小六支持 [Docker-Compose 部署](doc/deploy-docker-compose.md)(推荐)、[Docker 部署](doc/deploy-docker.md) 与 [源码部署](doc/deploy-source.md),请根据情况选择!
+码小六支持 [Docker 部署](doc/deploy-docker.md) 与 [源码部署](doc/deploy-source.md),请根据情况选择!
---
## 系统界面
请点击浏览大图 :P
-#### 登录页面
-
-
-#### 应用概况
-
-
-#### 扫描结果
-
-
-#### 令牌配置
-
-
-#### 任务配置
-
-
-#### 通知配置
-
+
-#### 白名单配置
-
+
-#### 手机移动版
-
+
diff --git a/app/Console/Commands/JobAddCommand.php b/app/Console/Commands/JobAddCommand.php
index 53804fb..1aef48e 100644
--- a/app/Console/Commands/JobAddCommand.php
+++ b/app/Console/Commands/JobAddCommand.php
@@ -49,28 +49,30 @@ public function __construct()
public function handle()
{
$this->log = Log::channel($this->signature);
- $this->log->info('Start adding job to the queue');
+ $this->log->info('Start job');
$configJobs = ConfigJob::all();
$time = floor(LARAVEL_START - LARAVEL_START % 60); // 启动时间(整点)
- $this->log->info('Get job config success', ['count' => $configJobs->count()]);
+ $this->log->info('Get config success', ['count' => $configJobs->count()]);
foreach ($configJobs as $configJob) {
- $job = ['keyword' => $configJob->keyword];
+ if (!$configJob->scan_interval_min) {
+ continue; // 尚未配置参数
+ }
if (($time % ($configJob->scan_interval_min * 60)) !== 0) {
- $this->log->Debug('The job has not yet reached the start time', $job);
continue; // 未到启动时间
}
+ $job = ['keyword' => $configJob->keyword];
$queueJob = QueueJob::firstOrCreate($job);
if (!$queueJob->wasRecentlyCreated) {
- $this->log->Debug('The job already exists in the queue', $job);
+ $this->log->Debug('Job already exists', $job);
continue; // 存在相同任务
}
- $this->log->info('Add job into the queue', $job);
+ $this->log->info('Add job', $job);
}
- $this->log->info('Work done');
+ $this->log->info('Close job');
}
}
diff --git a/app/Console/Commands/JobRunCommand.php b/app/Console/Commands/JobRunCommand.php
index a5997ea..5534d57 100644
--- a/app/Console/Commands/JobRunCommand.php
+++ b/app/Console/Commands/JobRunCommand.php
@@ -2,8 +2,8 @@
namespace App\Console\Commands;
-use App\Models\ConfigCommon;
use Exception;
+use Github\Client;
use App\Models\CodeFragment;
use App\Models\CodeLeak;
use App\Models\ConfigJob;
@@ -45,17 +45,10 @@ class JobRunCommand extends Command
*/
protected $whitelist;
- /**
- * 按文件名忽略
- *
- * @var array
- */
- protected $whitelistFile;
-
/**
* GitHub Service
*
- * @var GitHubService
+ * @var Client
*/
protected $service;
@@ -77,35 +70,32 @@ public function __construct()
public function handle()
{
$this->log = Log::channel($this->signature);
- $this->log->info('Start running scan job');
+ $this->log->info('Start job');
+
+ if (!QueueJob::count()) {
+ $this->log->info('The queue is empty');
+ exit;
+ }
$this->createGitHubService();
- $this->whitelist = ConfigWhitelist::pluck('value');
- $this->whitelistFile = json_decode(ConfigCommon::getValue(ConfigCommon::KEY_WHITELIST_FILE));
- $this->log->info('Get whitelist success');
+ $this->whitelist = ConfigWhitelist::all()->keyBy('value');
while ($job = $this->takeJob()) {
- try {
- $keyword = $job->keyword;
- $this->log->info('Get a job from the queue', ['keyword' => $keyword]);
- $configJob = ConfigJob::where('keyword', $keyword)->first();
- $configJob->last_scan_at = date('Y-m-d H:i:s');
- $page = 1;
- do {
- $client = $this->service->getClient();
- $data = $this->searchCode($client, $keyword, $page);
- $count = $this->store($data, $configJob);
- $this->log->info('Store record', ['count' => $count]);
- $lastResponse = ResponseMediator::getPagination($client->getLastResponse());
- } while ($lastResponse['next'] && (++$page <= $configJob->scan_page));
- $configJob->save();
- } catch (Exception $exception) {
- $this->log->error($exception->getMessage());
- }
- $job->delete();
+ $page = 1;
+ $keyword = $job->keyword;
+ $configJob = ConfigJob::where('keyword', $keyword)->first();
+ $configJob->last_scan_at = date('Y-m-d H:i:s');
+ do {
+ $client = $this->service->getClient();
+ $data = $this->searchCode($client, $keyword, $page);
+ $count = $this->store($data, $configJob);
+ $this->log->info('Stored', ['keyword' => $keyword, 'page' => $page, 'count' => $count]);
+ $lastResponse = ResponseMediator::getPagination($client->getLastResponse());
+ } while ($lastResponse['next'] && (++$page <= $configJob->scan_page));
+ $configJob->save();
}
- $this->log->info('Work done');
+ $this->log->info('Close job');
}
/**
@@ -114,7 +104,6 @@ public function handle()
private function createGitHubService()
{
$this->service = new GitHubService();
- $this->service->init();
if (count($this->service->clients) === 0) {
$this->log->error('No GitHub client available');
exit;
@@ -129,9 +118,10 @@ private function createGitHubService()
*/
private function takeJob()
{
- if (!$job = QueueJob::orderBy('id')->first()) {
+ if (!$job = QueueJob::orderBy('created_at')->first()) {
return false;
}
+ $job->delete();
return $job;
}
@@ -146,7 +136,7 @@ private function takeJob()
private function searchCode($client, $keyword, $page = 1)
{
try {
- $this->log->info('Search code', ['keyword' => $keyword, 'page' => $page]);
+ $keyword = sprintf('"%s"', $keyword); // 精确匹配
return $client->api('search')->setPage($page)->code($keyword, 'indexed');
} catch (Exception $e) {
$this->log->warning($e->getMessage());
@@ -198,17 +188,8 @@ private function storeLeak($item, $storeType)
$repoName = $item['repository']['name'];
// 扫描白名单
- foreach ($this->whitelist as $pattern) {
- if (fnmatch($pattern, "$repoOwner/$repoName")) {
- return false;
- }
- }
-
- // 按文件名忽略
- foreach ($this->whitelistFile as $pattern) {
- if (fnmatch($pattern, basename($item['path']))) {
- return false;
- }
+ if ($this->whitelist->has("$repoOwner/$repoName")) {
+ return false;
}
// 匹配 BLOB 值
@@ -217,15 +198,6 @@ private function storeLeak($item, $storeType)
return false;
}
- // 匹配代码片段(仅检查单个精确关键字)
- if (preg_match('/^[\w.@]+$/', $item['keyword'])) {
- $fragments = array_column($item['text_matches'], 'fragment');
- $fragments = implode(' ', $fragments);
- if (strpos($fragments, $item['keyword']) === false) {
- return false;
- }
- }
-
// 数据入库
$where = [];
$uuid = md5("$repoOwner/$repoName/$blob/{$item['path']}");
diff --git a/app/Console/Commands/NotifyCommand.php b/app/Console/Commands/NotifyCommand.php
deleted file mode 100644
index 0b6e717..0000000
--- a/app/Console/Commands/NotifyCommand.php
+++ /dev/null
@@ -1,109 +0,0 @@
-log = Log::channel($this->signature);
- $this->log->info('Start notifying user');
-
- $timestamp = floor(LARAVEL_START - LARAVEL_START % 60);
- $service = new NotifyService();
- $configs = ConfigNotify::where('enable', 1)->get();
- $time = date('H:i:s', $timestamp);
-
- foreach ($configs as $config) {
- if ($time < $config->start_time || $time> $config->end_time) {
- continue;
- }
-
- if ($timestamp % ($config->interval_min * 60) != 0) {
- continue;
- }
-
- $type = $config->type;
- if (!method_exists($service, $type)) {
- continue;
- }
-
- $data = $this->count($timestamp, $config->interval_min);
- if (!$data['count']) {
- continue;
- }
-
- $config = json_decode($config->value, true);
- $tpl = $service->getTemplate($type, $data['stime'], $data['etime'], $data['count']);
- $result = $service->$type($tpl['title'], $tpl['content'], $config);
- $this->log->info('Send complete', array_merge(['type' => $type], $result));
- }
-
- $this->log->info('Work done');
- }
-
- /**
- * @param $timestamp
- * @param $interval
- * @return mixed
- */
- private function count($timestamp, $interval)
- {
- $data = [];
- $data['stime'] = Carbon::createFromTimestamp($timestamp)->subMinutes($interval)->toDateTimeString();
- $data['etime'] = Carbon::createFromTimestamp($timestamp - 1)->toDateTimeString();
- $query = CodeLeak::where('status', CodeLeak::STATUS_PENDING);
- $query = $query->whereBetween('created_at', $data);
- $data['count'] = $query->count();
- return $data;
- }
-}
diff --git a/app/Console/Commands/TokenCheckCommand.php b/app/Console/Commands/TokenCheckCommand.php
new file mode 100644
index 0000000..df1df8e
--- /dev/null
+++ b/app/Console/Commands/TokenCheckCommand.php
@@ -0,0 +1,71 @@
+log = Log::channel($this->signature);
+ $this->log->info('Start job');
+
+ $count = ['abnormal' => 0, 'normal' => 0];
+ $tokens = ConfigToken::all(['token'])->pluck('token');
+ $clients = (new GitHubService())->clients;
+ $clients = array_column($clients, null, 'token');
+ foreach ($tokens as $token) {
+ $client = $clients[$token] ?? null;
+ $client ? $count['normal']++ : $count['abnormal']++;
+ ConfigToken::where('token', $token)->update([
+ 'status' => (int) $client,
+ 'api_limit' => (int) $client['limit'],
+ 'api_remaining' => (int) $client['remaining'],
+ 'api_reset_at' => $client['reset'] ? date('Y-m-d H:i:s', $client['reset']) : null,
+ ]);
+ }
+
+ $this->log->info('Close job', $count);
+ }
+}
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index e796ff9..a89353c 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -24,7 +24,7 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule)
{
- $schedule->command('code6:notify')->everyMinute()->runInBackground();
+ $schedule->command('code6:token-check')->everyMinute()->withoutOverlapping()->runInBackground();
$schedule->command('code6:job-add')->everyMinute();
$schedule->command('code6:job-run')->everyMinute()->withoutOverlapping();
}
diff --git a/app/Http/Controllers/CodeFragmentController.php b/app/Http/Controllers/CodeFragmentController.php
index 7fd8437..6f05ea9 100644
--- a/app/Http/Controllers/CodeFragmentController.php
+++ b/app/Http/Controllers/CodeFragmentController.php
@@ -17,9 +17,6 @@ public function index(Request $request)
$request->validate(['uuid' => ['required', 'string', 'max:255']]);
$uuid = $request->input('uuid');
$data = CodeFragment::where('uuid', $uuid)->orderByDesc('id')->get();
- foreach ($data as &$item) {
- $item->content = htmlspecialchars($item->content);
- }
return ['success' => true, 'data' => $data];
} catch (\Exception $e) {
return ['success' => false, 'message' => $e->getMessage()];
diff --git a/app/Http/Controllers/CodeLeakController.php b/app/Http/Controllers/CodeLeakController.php
index 5882458..8ccecb3 100644
--- a/app/Http/Controllers/CodeLeakController.php
+++ b/app/Http/Controllers/CodeLeakController.php
@@ -37,25 +37,14 @@ public function index(Request $request)
return $query->where('status', $request->input('status'));
});
- $query->when($request->input('keyword'), function ($query) use ($request) {
- return $query->where('keyword', $request->input('keyword'));
- });
-
- $query->when($search = $request->input('search'), function ($query) use ($search) {
- $query->where(function ($query) use ($search) {
- $query->where('path', 'like', "%$search%");
- foreach (['repo_name', 'repo_owner', 'repo_description', 'handle_user', 'description'] as $column) {
- $query->orwhere($column, 'like', "%$search%");
- }
+ foreach (['repo_owner', 'repo_name', 'keyword', 'path'] as $field) {
+ $query->when($request->input($field), function ($query, $value) use ($field) {
+ return $query->where($field, 'like', "%$value%");
});
- });
+ }
$perPage = $request->input('limit', 100);
- $data = $query->orderByDesc('id')->paginate($perPage);
- foreach ($data->items() as &$item) {
- $item->repo_description = htmlspecialchars($item->repo_description);
- }
- return $data;
+ return $query->orderByDesc('id')->paginate($perPage);
}
/**
@@ -113,8 +102,8 @@ public function batchUpdate(Request $request)
$data['handle_user'] = Auth::user()->email;
$success = CodeLeak::whereIn('uuid', $uuid)->update($data);
return ['success' => $success];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
+ } catch (\Exception $exception) {
+ return ['success' => false, 'message' => $exception->getMessage()];
}
}
@@ -129,11 +118,11 @@ public function batchDestroy(Request $request)
try {
$uuid = json_decode($request->input('uuid'), true);
if ($success = CodeLeak::whereIn('uuid', $uuid)->delete()) {
- CodeFragment::whereIn('uuid', $uuid)->delete();
+ $success = CodeFragment::whereIn('uuid', $uuid)->delete();
}
return ['success' => $success];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
+ } catch (\Exception $exception) {
+ return ['success' => false, 'message' => $exception->getMessage()];
}
}
}
diff --git a/app/Http/Controllers/ConfigJobController.php b/app/Http/Controllers/ConfigJobController.php
index 6df932d..7cfe2a7 100644
--- a/app/Http/Controllers/ConfigJobController.php
+++ b/app/Http/Controllers/ConfigJobController.php
@@ -3,11 +3,11 @@
namespace App\Http\Controllers;
use App\Models\ConfigJob;
-use App\Models\QueueJob;
use Illuminate\Http\Request;
class ConfigJobController extends Controller
{
+
public function view()
{
$data = ['title' => '任务配置'];
@@ -17,15 +17,12 @@ public function view()
/**
* 任务列表
*
+ * @param Request $request
* @return \Illuminate\Support\Collection
*/
- public function index()
+ public function index(Request $request)
{
- $data = ConfigJob::orderByDesc('id')->get();
- foreach ($data as &$item) {
- $item['next_scan_at'] = $this->getNextScanAt($item['scan_interval_min']);
- }
- return $data;
+ return ConfigJob::orderByDesc('id')->get();
}
/**
@@ -37,21 +34,20 @@ public function index()
public function store(Request $request)
{
try {
- $fail = 0;
- $request->validate(['keyword' => ['required', 'string']]);
- $keywords = explode(PHP_EOL, $request->input('keyword'));
- $keywords = array_filter(array_unique($keywords));
- $data = [
- 'scan_page' => $request->input('scan_page', 3),
- 'scan_interval_min' => $request->input('scan_interval_min', 60),
- 'store_type' => $request->input('store_type', ConfigJob::STORE_TYPE_ALL),
- 'description' => $request->input('description') ?? '',
- ];
- foreach ($keywords as $keyword) {
- $result = ConfigJob::firstOrCreate(['keyword' => $keyword], $data);
- !$result->wasRecentlyCreated && $fail++;
+ $request->validate(['keyword' => ['required', 'string', 'max:255']]);
+ $data = ConfigJob::firstOrCreate(
+ ['keyword' => $request->input('keyword')],
+ [
+ 'scan_page' => $request->input('scan_page', 100),
+ 'scan_interval_min' => $request->input('scan_interval_min', 60),
+ 'store_type' => $request->input('store_type', 0),
+ 'description' => $request->input('description') ?? ''
+ ]
+ );
+ if (!$data->wasRecentlyCreated) {
+ throw new \Exception('操作失败,可能已存在此任务!');
}
- return ['success' => true, 'message' => '操作成功!'.($fail ? "(失败:$fail 个)" : '')];
+ return ['success' => true, 'data' => $data];
} catch (\Exception $e) {
return ['success' => false, 'message' => $e->getMessage()];
}
@@ -71,7 +67,6 @@ public function update(Request $request, $id)
$fields = ['keyword', 'scan_page', 'scan_interval_min', 'store_type', 'description'];
$configJob = ConfigJob::find($id);
$success = $configJob->update($request->all($fields));
- $configJob['next_scan_at'] = $this->getNextScanAt($configJob['scan_interval_min']);
return ['success' => $success, 'data' => $configJob];
} catch (\Exception $e) {
return ['success' => false, 'message' => $e->getMessage()];
@@ -93,47 +88,4 @@ public function destroy($id)
return ['success' => false, 'message' => $e->getMessage()];
}
}
-
- /**
- * 批量删除任务
- *
- * @param Request $request
- * @return array
- */
- public function batchDestroy(Request $request)
- {
- try {
- $id = json_decode($request->input('id'), true);
- $success = ConfigJob::whereIn('id', $id)->delete();
- return ['success' => $success];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 任务队列
- *
- * @return array
- */
- public function queue()
- {
- $data = QueueJob::orderBy('id')->get()->toArray();
- foreach ($data as $k => $v) {
- $data[$k]['status'] = $k == 0 ? 1 : 0;
- }
- return $data;
- }
-
- /**
- * 下次扫描时间
- *
- * @param $interval
- * @return string
- */
- private function getNextScanAt($interval)
- {
- $nextScanAt = floor(LARAVEL_START - LARAVEL_START % ($interval * 60) + ($interval * 60));
- return date('Y-m-d H:i:s', $nextScanAt);
- }
}
diff --git a/app/Http/Controllers/ConfigNotifyController.php b/app/Http/Controllers/ConfigNotifyController.php
deleted file mode 100644
index 553b567..0000000
--- a/app/Http/Controllers/ConfigNotifyController.php
+++ /dev/null
@@ -1,77 +0,0 @@
- '通知配置',
- 'config' => $this->getConfig(),
- ];
- return view('configNotify.index', $data);
- }
-
- /**
- * 更新通知配置
- *
- * @param Request $request
- * @return array
- */
- public function store(Request $request)
- {
- try {
- $request->validate([
- 'type' => ['required', Rule::in(ConfigNotify::TYPE)],
- 'enable' => ['required'],
- ]);
- $commonField = ['enable', 'interval_min', 'start_time', 'end_time'];
- $data = $request->only($commonField);
- $data['value'] = json_encode($request->except(array_merge($commonField, ['type'])));
- $data = ConfigNotify::updateOrCreate(['type' => $request->input('type')], $data);
- return ['success' => true, 'data' => $data];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 通知测试
- *
- * @param Request $request
- * @return mixed
- */
- public function test(Request $request)
- {
- $config = $request->all();
- $type = $config['type'];
-
- $count = 'xxx';
- $etime = now()->toDateTimeString();
- $stiem = now()->subHour()->toDateTimeString();
-
- $service = new NotifyService();
- $tpl = $service->getTemplate($type, $stiem, $etime, $count);
- return $service->$type($tpl['title'], $tpl['content'], $config);
- }
-
- /**
- * 读取配置
- *
- * @return mixed
- */
- private function getConfig()
- {
- $config = ConfigNotify::get()->keyBy('type')->toArray();
- foreach ($config as &$value) {
- $value['value'] = json_decode($value['value'], true);
- }
- return $config;
- }
-}
diff --git a/app/Http/Controllers/ConfigNotifyTemplateController.php b/app/Http/Controllers/ConfigNotifyTemplateController.php
deleted file mode 100644
index 64651c8..0000000
--- a/app/Http/Controllers/ConfigNotifyTemplateController.php
+++ /dev/null
@@ -1,48 +0,0 @@
- true, 'data' => $data];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 更新通知模板
- *
- * @param Request $request
- * @return array
- */
- public function store(Request $request)
- {
- try {
- $title = $request->input('title');
- $content = $request->input('content');
- $value = json_encode(compact('title', 'content'));
- ConfigCommon::updateOrCreate(['key' => ConfigCommon::KEY_NOTIFY_TEMPLATE], ['value' => $value]);
- return ['success' => true];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-}
diff --git a/app/Http/Controllers/ConfigProxyController.php b/app/Http/Controllers/ConfigProxyController.php
deleted file mode 100644
index 332e59d..0000000
--- a/app/Http/Controllers/ConfigProxyController.php
+++ /dev/null
@@ -1,56 +0,0 @@
- true, 'data' => ConfigCommon::getValue(ConfigCommon::KEY_PROXY)];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 更新代理配置
- *
- * @param Request $request
- * @return array
- */
- public function store(Request $request)
- {
- try {
- ConfigCommon::updateOrCreate(['key' => ConfigCommon::KEY_PROXY], $request->all('value'));
- return ['success' => true];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 代理测试
- *
- * @param Request $request
- * @return array
- */
- public function test(Request $request)
- {
- $service = new GitHubService();
- if ($service->testProxy($request->input('value'))) {
- return ['success' => true];
- } else {
- return ['success' => false];
- }
- }
-}
diff --git a/app/Http/Controllers/ConfigTokenController.php b/app/Http/Controllers/ConfigTokenController.php
index 1f60faf..54462e6 100644
--- a/app/Http/Controllers/ConfigTokenController.php
+++ b/app/Http/Controllers/ConfigTokenController.php
@@ -3,7 +3,6 @@
namespace App\Http\Controllers;
use App\Models\ConfigToken;
-use App\Services\GitHubService;
use Illuminate\Http\Request;
class ConfigTokenController extends Controller
@@ -17,9 +16,10 @@ public function view()
/**
* 令牌列表
*
+ * @param Request $request
* @return \Illuminate\Support\Collection
*/
- public function index()
+ public function index(Request $request)
{
return ConfigToken::orderByDesc('id')->get();
}
@@ -38,12 +38,7 @@ public function store(Request $request)
['token' => $request->input('token')],
['description' => $request->input('description') ?? '']
);
- if ($data->wasRecentlyCreated) {
- $service = new GitHubService();
- $client['token'] = $data->token;
- $client['client'] = $service->createClient($client['token']);
- $service->updateClient($client);
- } else {
+ if (!$data->wasRecentlyCreated) {
throw new \Exception('操作失败,可能已存在此令牌!');
}
return ['success' => true, 'data' => ConfigToken::find($data->id)];
diff --git a/app/Http/Controllers/ConfigWhitelistController.php b/app/Http/Controllers/ConfigWhitelistController.php
index 0f6789a..4c154fd 100644
--- a/app/Http/Controllers/ConfigWhitelistController.php
+++ b/app/Http/Controllers/ConfigWhitelistController.php
@@ -7,7 +7,7 @@
class ConfigWhitelistController extends Controller
{
- public function view()
+ public function view(Request $request)
{
$data = ['title' => '白名单配置'];
return view('configWhitelist.index', $data);
@@ -45,28 +45,6 @@ public function store(Request $request)
}
}
- /**
- * 批量加入白名单
- *
- * @param Request $request
- * @return array
- */
- public function batchStore(Request $request)
- {
- try {
- $data = [];
- $values = json_decode($request->input('values'), true);
- $values = array_unique($values);
- foreach ($values as $value) {
- $data[] = ['value' => $value];
- }
- ConfigWhitelist::insertOrIgnore($data);
- return ['success' => true];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
/**
* 删除白名单
*
@@ -82,21 +60,4 @@ public function destroy($id)
return ['success' => false, 'message' => $e->getMessage()];
}
}
-
- /**
- * 批量删除白名单
- *
- * @param Request $request
- * @return array
- */
- public function batchDestroy(Request $request)
- {
- try {
- $id = json_decode($request->input('id'), true);
- $success = ConfigWhitelist::destroy($id);
- return ['success' => $success];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
}
diff --git a/app/Http/Controllers/ConfigWhitelistFileController.php b/app/Http/Controllers/ConfigWhitelistFileController.php
deleted file mode 100644
index 136cb1a..0000000
--- a/app/Http/Controllers/ConfigWhitelistFileController.php
+++ /dev/null
@@ -1,43 +0,0 @@
- true, 'data' => $data];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 保存文件名列表
- *
- * @param Request $request
- * @return array
- */
- public function store(Request $request)
- {
- try {
- $value = explode(PHP_EOL, $request->input('value'));
- $value = json_encode(array_values(array_filter(array_unique($value))));
- ConfigCommon::updateOrCreate(['key' => ConfigCommon::KEY_WHITELIST_FILE], ['value' => $value]);
- return ['success' => true];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-}
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index d97c8d1..e7cf9b1 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -8,14 +8,11 @@
use App\Models\CodeLeak;
use App\Models\ConfigJob;
use App\Models\ConfigToken;
-use App\Services\GitHubService;
use App\Utils\SystemUtil;
-use SimpleSoftwareIO\QrCode\Facades\QrCode;
class HomeController extends Controller
{
-
- public function view()
+ public function view(Request $request)
{
$data = [
'title' => '应用概况',
@@ -33,8 +30,8 @@ public function metric()
{
$data = [
'codeLeakCount' => CodeLeak::count(),
- 'codeLeakPending' => CodeLeak::where('status', CodeLeak::STATUS_PENDING)->count(),
- 'codeLeakSolved' => CodeLeak::where('status', CodeLeak::STATUS_SOLVED)->count(),
+ 'codeLeakPending' => CodeLeak::where('status', 0)->count(),
+ 'codeLeakSolved' => CodeLeak::where('status', 3)->count(),
'queueJobCount' => QueueJob::count(),
];
return ['success' => true, 'data' => $data];
@@ -74,9 +71,6 @@ public function disk()
public function memory()
{
$memory = SystemUtil::memory();
- if ((int) $memory['MemTotal'] <= 0) { - return ['success' => false];
- }
$used = $memory['MemTotal'] - $memory['MemFree'] - $memory['Cached'] - $memory['Buffers'];
$data = [
'used' => SystemUtil::conv($used),
@@ -94,8 +88,8 @@ public function memory()
public function tokenQuota()
{
try {
- $total = ConfigToken::where('status', ConfigToken::STATUS_NORMAL)->sum('api_limit');
- $remaining = ConfigToken::where('status', ConfigToken::STATUS_NORMAL)->sum('api_remaining');
+ $total = ConfigToken::where('status', 1)->sum('api_limit');
+ $remaining = ConfigToken::where('status', 1)->sum('api_remaining');
$used = $total - $remaining;
$data = [
[
@@ -134,37 +128,4 @@ public function tokenCount()
{
return ['success' => true, 'data' => ConfigToken::count()];
}
-
- /**
- * 升级检查
- *
- * @return array
- */
- public function upgradeCheck()
- {
- try {
- $query = ConfigToken::where('status', ConfigToken::STATUS_NORMAL);
- $token = $query->inRandomOrder()->take(1)->value('token');
- $client = (new GitHubService())->createClient($token);
- $release = $client->api('repo')->releases()->latest('4x99', 'code6');
- $new = version_compare($release['tag_name'], VERSION) === 1;
- $data = ['new' => $new, 'version' => $release['tag_name']];
- } catch (\Exception $e) {
- $data = ['new' => false];
- }
- return ['success' => true, 'data' => $data];
- }
-
- /**
- * 移动端二维码
- *
- * @param Request $request
- * @return string
- */
- public function mobileQrCode(Request $request)
- {
- $url = $request->getSchemeAndHttpHost().'/mobile';
- $qrCode = QrCode::format('png')->size(300)->generate($url);
- return sprintf('', base64_encode($qrCode));
- }
}
diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
index 458505a..cbfd56f 100644
--- a/app/Http/Controllers/IndexController.php
+++ b/app/Http/Controllers/IndexController.php
@@ -2,9 +2,11 @@
namespace App\Http\Controllers;
+use Illuminate\Http\Request;
+
class IndexController extends Controller
{
- public function view()
+ public function view(Request $request)
{
$data = ['title' => '码小六'];
return view('index.index', $data);
diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php
index e6f1526..69d97bd 100644
--- a/app/Http/Controllers/LoginController.php
+++ b/app/Http/Controllers/LoginController.php
@@ -7,6 +7,7 @@
class LoginController extends Controller
{
+
public function view()
{
$data = ['title' => '码小六'];
@@ -30,8 +31,8 @@ public function login(Request $request)
throw new \Exception('邮箱或密码错误!');
}
return ['success' => true, 'data' => Auth::user()];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
+ } catch (\Exception $exception) {
+ return ['success' => false, 'message' => $exception->getMessage()];
}
}
@@ -45,8 +46,8 @@ public function logout()
try {
Auth::logout();
return ['success' => true];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
+ } catch (\Exception $exception) {
+ return ['success' => false, 'message' => $exception->getMessage()];
}
}
}
diff --git a/app/Http/Controllers/MobileController.php b/app/Http/Controllers/MobileController.php
deleted file mode 100644
index d966cf7..0000000
--- a/app/Http/Controllers/MobileController.php
+++ /dev/null
@@ -1,24 +0,0 @@
-count();
- $data = ['title' => '码小六', 'page' => $page, 'tab' => $tab, 'count' => $count];
- return view('mobile.home', $data);
- }
-
- public function login()
- {
- $data = ['title' => '码小六'];
- return view('mobile.login', $data);
- }
-}
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index 805d636..730bb1e 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -27,8 +27,8 @@ public function update(Request $request)
}
$success = $user->update(['password' => Hash::make($request->password_new)]);
return ['success' => $success];
- } catch (\Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
+ } catch (\Exception $exception) {
+ return ['success' => false, 'message' => $exception->getMessage()];
}
}
}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 67ab43c..c3640f3 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -53,7 +53,6 @@ class Kernel extends HttpKernel
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
- 'auth.mobile' => \App\Http\Middleware\AuthenticateMobile::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
diff --git a/app/Http/Middleware/AuthenticateMobile.php b/app/Http/Middleware/AuthenticateMobile.php
deleted file mode 100644
index 939a644..0000000
--- a/app/Http/Middleware/AuthenticateMobile.php
+++ /dev/null
@@ -1,29 +0,0 @@
-guest()) {
- if ($request->ajax() || $request->wantsJson()) {
- return response()->json(['success' => false, 'message' => 'Unauthorized'])->setStatusCode(401);
- } else {
- return redirect()->guest('mobile/login');
- }
- }
- return $next($request);
- }
-}
diff --git a/app/Models/CodeLeak.php b/app/Models/CodeLeak.php
index 4009aad..1257289 100644
--- a/app/Models/CodeLeak.php
+++ b/app/Models/CodeLeak.php
@@ -4,10 +4,6 @@
class CodeLeak extends ModelBase
{
- const STATUS_PENDING = 0;
- const STATUS_FALSE = 1;
- const STATUS_ABNORMAL = 2;
- const STATUS_SOLVED = 3;
protected $table = 'code_leak';
protected $fillable = [
'uuid',
diff --git a/app/Models/ConfigCommon.php b/app/Models/ConfigCommon.php
deleted file mode 100644
index 8f20c79..0000000
--- a/app/Models/ConfigCommon.php
+++ /dev/null
@@ -1,23 +0,0 @@
-value('value');
- }
-}
diff --git a/app/Models/ConfigNotify.php b/app/Models/ConfigNotify.php
deleted file mode 100644
index bbe8059..0000000
--- a/app/Models/ConfigNotify.php
+++ /dev/null
@@ -1,24 +0,0 @@
-userAgent = config('app.name');
- $this->proxy = ConfigCommon::getValue(ConfigCommon::KEY_PROXY);
- }
-
- /**
- * 服务初始化
- */
- public function init()
- {
- $this->proxy = $this->proxy ? ($this->testProxy($this->proxy) ? $this->proxy : null) : null;
- $tokens = ConfigToken::inRandomOrder()->get()->pluck('token');
- foreach ($tokens as $token) {
- $client = ['token' => $token];
- $client['client'] = $this->createClient($token);
- if ($this->updateClient($client)) {
- $this->clients[] = $client;
- }
- }
- }
-
- /**
- * 创建客户端
- *
- * @param $token
- * @return Client
- */
- public function createClient($token)
- {
- $handlerStack = HandlerStack::create(new CurlHandler());
- $handlerStack->push(Middleware::retry($this->retryDecider()));
- $builder = new Builder(GuzzleClient::createWithConfig([
- 'timeout' => self::HTTP_TIMEOUT,
- 'delay' => self::HTTP_DELAY,
- 'headers' => ['User-Agent' => $this->userAgent],
- 'handler' => $handlerStack,
- 'proxy' => $this->proxy,
- ]));
- $client = new Client($builder, 'v3.text-match');
- if ($token) {
- $client->authenticate($token, null, Client::AUTH_HTTP_TOKEN);
- }
- return $client;
+ $this->createClients();
}
/**
@@ -99,107 +40,58 @@ public function getClient()
$client = &$this->clients[$this->currentKey];
// 更新接口配额
- if (time()>= $client['api_reset_at']) {
+ if (time()>= $client['reset']) {
$this->updateClient($client);
}
// 当前客户端配额是否耗尽
- if ($client['api_remaining'] <= 0) { + if ($client['remaining'] <= 0) { sleep(1); continue; } // 返回客户端 - $client['api_remaining']--; - $this->updateConfigToken($client);
+ $client['remaining']--;
return $client['client'];
}
}
/**
- * 更新客户端
- *
- * @param $client
- * @return bool
+ * 创建客户端
*/
- public function updateClient(&$client)
+ private function createClients()
{
- $code = $resource = null;
- try {
- $resource = $client['client']->api('rate_limit')->getResource('search');
- } catch (Exception $e) {
- $code = $e->getCode();
- Log::debug($e->getMessage(), ['token' => $client['token']]);
- }
-
- $client['api_limit'] = $resource ? $resource->getLimit() : 0;
- $client['api_reset_at'] = $resource ? $resource->getReset() : null;
- $client['api_remaining'] = $resource ? $resource->getRemaining() : 0;
- if ($code == self::HTTP_CODE_UNAUTHORIZED || $client['api_limit'] == self::RATE_LIMIT_UNAUTHENTICATED) {
- $client['status'] = ConfigToken::STATUS_ABNORMAL;
- } else {
- $client['status'] = $resource ? ConfigToken::STATUS_NORMAL : ConfigToken::STATUS_UNKNOWN;
+ $tokens = ConfigToken::inRandomOrder()->get()->pluck('token');
+ foreach ($tokens as $token) {
+ $client = ['token' => $token];
+ $builder = new Builder(GuzzleClient::createWithConfig(['timeout' => 30]));
+ $client['client'] = new Client($builder, 'v3.text-match');
+ $client['client']->authenticate($token, null, Client::AUTH_HTTP_TOKEN);
+ if ($this->updateClient($client)) {
+ $this->clients[] = $client;
+ }
}
-
- $this->updateConfigToken($client);
- return $client['status'] == ConfigToken::STATUS_NORMAL;
}
/**
- * 代理测试
+ * 更新客户端
*
- * @param $proxy
+ * @param $client
* @return bool
*/
- public function testProxy($proxy)
+ private function updateClient(&$client)
{
try {
- $builder = new Builder(GuzzleClient::createWithConfig([
- 'proxy' => $proxy,
- 'timeout' => self::HTTP_TIMEOUT_TEST,
- ]));
- $client = new Client($builder, 'v3.text-match');
- $client->api('repo')->releases()->latest('4x99', 'code6');
- return true;
- } catch (Exception $e) {
- Log::error("Proxy $proxy not available", [$e->getMessage()]);
- return false;
- }
- }
-
- /**
- * 更新数据库
- *
- * @param $client
- * @return mixed
- */
- private function updateConfigToken($client)
- {
- $data = Arr::only($client, ['status', 'api_limit', 'api_remaining']);
- $data['api_reset_at'] = $client['api_reset_at'] ? date('Y-m-d H:i:s', $client['api_reset_at']) : null;
- return ConfigToken::where('token', $client['token'])->update($data);
- }
-
- /**
- * 决定是否重试请求
- *
- * @return Closure (true:重试 false:不重试)
- */
- protected function retryDecider()
- {
- return function ($retries, Request $request, Response $response = null, RequestException $e = null) {
- // 最大次数
- if ($retries>= self::HTTP_MAX_RETRIES) {
+ if (!$resource = $client['client']->api('rate_limit')->getResource('search')) {
return false;
}
-
- // 请求失败
- if (!is_null($e)) {
- Log::debug('Retry request', ['exception' => $e->getMessage()]);
- return true;
- }
-
+ $client['limit'] = $resource->getLimit();
+ $client['reset'] = $resource->getReset();
+ $client['remaining'] = $resource->getRemaining();
+ } catch (Exception $e) {
+ Log::warning($e->getMessage(), ['token' => $client['token']]);
return false;
- };
+ }
+ return true;
}
}
diff --git a/app/Services/NotifyService.php b/app/Services/NotifyService.php
deleted file mode 100644
index 8d0a2e7..0000000
--- a/app/Services/NotifyService.php
+++ /dev/null
@@ -1,233 +0,0 @@
- 'smtp',
- 'host' => $config['host'],
- 'port' => $config['port'] ?? 465,
- 'username' => $config['username'],
- 'password' => $config['password'],
- 'encryption' => $config['encryption'] ?? 'SSL',
- ]);
-
- try {
- Mail::send('email.index', compact('content'), function ($message) use ($config, $title) {
- $message->from($config['username']);
- $message->subject($title);
- foreach (explode(PHP_EOL, $config['to']) as $email) {
- if ($email = trim($email)) {
- $message->to($email);
- }
- }
- });
- return ['success' => true];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * Webhook
- *
- * @param $title
- * @param $content
- * @param $config
- * @return array
- */
- public function webhook($title, $content, $config)
- {
- try {
- $headers = $formParams = [];
- $config['headers'] = $config['headers'] ?? '';
- $config['params'] = $config['params'] ?? '';
-
- // 设置头部信息
- foreach (explode(PHP_EOL, $config['headers']) as $header) {
- list($key, $val) = explode(':', $header);
- $headers[trim($key)] = trim($val);
- }
-
- // 设置请求参数
- foreach (explode(PHP_EOL, $config['params']) as $param) {
- list($key, $val) = explode(':', $param);
- $val = str_replace(['{{title}}', '{{content}}'], [$title, $content], trim($val));
- Arr::set($formParams, trim($key), trim($val));
- }
-
- $response = $this->post($config['webhook'], ['headers' => $headers, 'form_params' => $formParams]);
- return ['success' => true, 'data' => $response];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * Telegram
- *
- * @param $title
- * @param $content
- * @param $config
- * @return array
- */
- public function telegram($title, $content, $config)
- {
- try {
- $content = $title.PHP_EOL.$content;
- $url = sprintf(self::URL_TELEGRAM, $config['token'], $config['chat_id'], urlencode($content));
- $response = $this->post($url);
- $response = json_decode($response, true);
- if ($response['ok'] != true) {
- throw new Exception($response['description']);
- }
- return ['success' => true, 'data' => $response];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 飞书
- *
- * @param $title
- * @param $content
- * @param $config
- * @return array
- */
- public function feishu($title, $content, $config)
- {
- $data = [
- 'msg_type' => 'text',
- 'content' => ['text' => $title.PHP_EOL.$content],
- ];
-
- try {
- $url = $config['webhook'];
- $response = $this->post($url, ['json' => $data]);
- $response = json_decode($response, true);
- if ($response['code']> 0) {
- throw new Exception($response['msg']);
- }
- return ['success' => true, 'data' => $response];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 钉钉
- *
- * @param $title
- * @param $content
- * @param $config
- * @return array
- */
- public function dingTalk($title, $content, $config)
- {
- $data = [
- 'msgtype' => 'text',
- 'text' => ['content' => $title.PHP_EOL.$content],
- ];
-
- try {
- $url = $config['webhook'];
- $response = $this->post($url, ['json' => $data]);
- $response = json_decode($response, true);
- if ($response['errcode'] != 0) {
- throw new Exception($response['errmsg']);
- }
- return ['success' => true, 'data' => $response];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 企业微信
- *
- * @param $title
- * @param $content
- * @param $config
- * @return array
- */
- public function workWechat($title, $content, $config)
- {
- $data = [
- 'msgtype' => 'text',
- 'text' => ['content' => $title.PHP_EOL.$content],
- ];
-
- try {
- $url = $config['webhook'];
- $response = $this->post($url, ['json' => $data]);
- $response = json_decode($response, true);
- if ($response['errcode'] != 0) {
- throw new Exception($response['errmsg']);
- }
- return ['success' => true, 'data' => $response];
- } catch (Exception $e) {
- return ['success' => false, 'message' => $e->getMessage()];
- }
- }
-
- /**
- * 获取通知模板消息
- *
- * @param $type
- * @param $stime
- * @param $etime
- * @param $count
- * @return array
- */
- public function getTemplate($type, $stime, $etime, $count)
- {
- $config = ConfigCommon::getValue(ConfigCommon::KEY_NOTIFY_TEMPLATE);
- $config = json_decode($config, true);
- $title = $config['title'] ?? self::TEMPLATE_DEFAULT_TITLE;
- $content = $config['content'] ?? self::TEMPLATE_DEFAULT_CONTENT;
- if ($type === ConfigNotify::TYPE_EMAIL) {
- $content = str_replace(PHP_EOL, '
', $content);
- }
- $content = str_replace(['{{stime}}', '{{etime}}', '{{count}}'], [$stime, $etime, $count], $content);
- return compact('title', 'content');
- }
-
- /**
- * POST
- *
- * @param $url
- * @param array $options
- * @return string
- */
- private function post($url, $options = [])
- {
- $options['verify'] = false;
- $client = new Client(['timeout' => 10, 'connect_timeout' => 10]);
- $response = $client->post($url, $options);
- return $response->getBody()->getContents();
- }
-}
diff --git a/app/Utils/SystemUtil.php b/app/Utils/SystemUtil.php
index 10a1241..6c223ee 100644
--- a/app/Utils/SystemUtil.php
+++ b/app/Utils/SystemUtil.php
@@ -13,7 +13,7 @@ public static function memory()
{
$data = [];
$info = file_get_contents('/proc/meminfo');
- foreach (explode(PHP_EOL, $info) as $item) {
+ foreach (explode("\n", $info) as $item) {
if (preg_match('/^(\w+):\s+(\d+)\skB$/', $item, $matches)) {
$data[$matches[1]] = $matches[2] * 1024;
}
diff --git a/composer.json b/composer.json
index eef738a..c86833d 100644
--- a/composer.json
+++ b/composer.json
@@ -15,8 +15,7 @@
"knplabs/github-api": "^2.13",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
- "php-http/guzzle6-adapter": "^1.1",
- "simplesoftwareio/simple-qrcode": "1.3.*"
+ "php-http/guzzle6-adapter": "^1.1"
},
"require-dev": {
"facade/ignition": "^2.0",
diff --git a/composer.lock b/composer.lock
index 353364e..7f05ee3 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "2974d32666f68c3bc4c600532ad8ae38",
+ "content-hash": "19f4a70aaf850272d32b0f200e9e8a47",
"packages": [
{
"name": "asm89/stack-cors",
@@ -64,58 +64,6 @@
],
"time": "2019-12-24T22:41:47+00:00"
},
- {
- "name": "bacon/bacon-qr-code",
- "version": "1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/Bacon/BaconQrCode.git",
- "reference": "5a91b62b9d37cee635bbf8d553f4546057250bee"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/5a91b62b9d37cee635bbf8d553f4546057250bee",
- "reference": "5a91b62b9d37cee635bbf8d553f4546057250bee",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
- },
- "require": {
- "ext-iconv": "*",
- "php": "^5.4|^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8"
- },
- "suggest": {
- "ext-gd": "to generate QR code images"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "BaconQrCode": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-2-Clause"
- ],
- "authors": [
- {
- "name": "Ben Scholzen 'DASPRiD'",
- "email": "mail@dasprids.de",
- "homepage": "http://www.dasprids.de",
- "role": "Developer"
- }
- ],
- "description": "BaconQrCode is a QR code generator for PHP.",
- "homepage": "https://github.com/Bacon/BaconQrCode",
- "time": "2017-10-17T09:59:25+00:00"
- },
{
"name": "brick/math",
"version": "0.8.15",
@@ -173,12 +121,12 @@
"version": "v1.4.1",
"source": {
"type": "git",
- "url": "https://github.com/clue/stream-filter.git",
+ "url": "https://github.com/clue/php-stream-filter.git",
"reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/clue/stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
+ "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
"reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
"shasum": "",
"mirrors": [
@@ -883,16 +831,16 @@
},
{
"name": "knplabs/github-api",
- "version": "v2.20.0",
+ "version": "v2.14.0",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/php-github-api.git",
- "reference": "939869394c6414768547685945fdba4fe3f061b5"
+ "reference": "953c9b453d3258a97755ec3557d112f271176f74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/939869394c6414768547685945fdba4fe3f061b5",
- "reference": "939869394c6414768547685945fdba4fe3f061b5",
+ "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/953c9b453d3258a97755ec3557d112f271176f74",
+ "reference": "953c9b453d3258a97755ec3557d112f271176f74",
"shasum": "",
"mirrors": [
{
@@ -916,14 +864,12 @@
"guzzlehttp/psr7": "^1.2",
"php-http/guzzle6-adapter": "^1.0 || ^2.0",
"php-http/mock-client": "^1.2",
- "phpstan/phpstan": "^0.12.23",
"phpunit/phpunit": "^7.0 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-2.x": "2.20.x-dev",
- "dev-master": "3.2.x-dev"
+ "dev-master": "2.14.x-dev"
}
},
"autoload": {
@@ -954,17 +900,7 @@
"gist",
"github"
],
- "support": {
- "issues": "https://github.com/KnpLabs/php-github-api/issues",
- "source": "https://github.com/KnpLabs/php-github-api/tree/v2.20.0"
- },
- "funding": [
- {
- "url": "https://github.com/acrobat",
- "type": "github"
- }
- ],
- "time": "2021-04-16T09:36:20+00:00"
+ "time": "2020-04-25T20:36:03+00:00"
},
{
"name": "laravel/framework",
@@ -2835,63 +2771,6 @@
],
"time": "2020-03-29T20:13:32+00:00"
},
- {
- "name": "simplesoftwareio/simple-qrcode",
- "version": "1.3.3",
- "source": {
- "type": "git",
- "url": "https://github.com/SimpleSoftwareIO/simple-qrcode.git",
- "reference": "17c5e45c79c40f717d4bc08cf5e568f29ebf9333"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/SimpleSoftwareIO/simple-qrcode/zipball/17c5e45c79c40f717d4bc08cf5e568f29ebf9333",
- "reference": "17c5e45c79c40f717d4bc08cf5e568f29ebf9333",
- "shasum": "",
- "mirrors": [
- {
- "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
- "preferred": true
- }
- ]
- },
- "require": {
- "bacon/bacon-qr-code": "1.0.*",
- "ext-gd": "*",
- "illuminate/support": ">=4.2.0",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "mockery/mockery": "0.9.*",
- "phpunit/phpunit": "4.7.*"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "SimpleSoftwareIO\\QrCode\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Simple Software LLC",
- "email": "support@simplesoftware.io"
- }
- ],
- "description": "Simple QrCode is a QR code generator made for Laravel.",
- "homepage": "http://www.simplesoftware.io",
- "keywords": [
- "Simple",
- "generator",
- "laravel",
- "qrcode",
- "wrapper"
- ],
- "time": "2016-01-31T02:09:25+00:00"
- },
{
"name": "swiftmailer/swiftmailer",
"version": "v6.2.3",
@@ -5390,7 +5269,6 @@
"faker",
"fixtures"
],
- "abandoned": true,
"time": "2019-12-12T13:22:17+00:00"
},
{
@@ -6294,7 +6172,6 @@
"keywords": [
"tokenizer"
],
- "abandoned": true,
"time": "2019-09-17T06:23:10+00:00"
},
{
@@ -7215,12 +7092,12 @@
"version": "1.8.0",
"source": {
"type": "git",
- "url": "https://github.com/webmozarts/assert.git",
+ "url": "https://github.com/webmozart/assert.git",
"reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
"reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6",
"shasum": "",
"mirrors": [
@@ -7274,5 +7151,5 @@
"php": "^7.2.5"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "1.1.0"
}
diff --git a/config/app.php b/config/app.php
index 495a7bd..3812ccd 100644
--- a/config/app.php
+++ b/config/app.php
@@ -175,8 +175,6 @@
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
- SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class
-
],
/*
diff --git a/config/logging.php b/config/logging.php
index 8bf2267..de47540 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -51,16 +51,16 @@
'days' => 7,
],
- 'code6:job-run' => [
+ 'code6:token-check' => [
'driver' => 'daily',
- 'path' => storage_path('logs/job-run.log'),
+ 'path' => storage_path('logs/token-check.log'),
'level' => 'info',
'days' => 7,
],
- 'code6:notify' => [
+ 'code6:job-run' => [
'driver' => 'daily',
- 'path' => storage_path('logs/notify.log'),
+ 'path' => storage_path('logs/job-run.log'),
'level' => 'info',
'days' => 7,
],
diff --git a/config/session.php b/config/session.php
index fb0fee6..bc9174f 100644
--- a/config/session.php
+++ b/config/session.php
@@ -31,7 +31,7 @@
|
*/
- 'lifetime' => env('SESSION_LIFETIME', 60 * 24 * 7),
+ 'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
diff --git a/database/migrations/2020_07_03_091934_change_status_to_config_token_table.php b/database/migrations/2020_07_03_091934_change_status_to_config_token_table.php
deleted file mode 100644
index 4da66cc..0000000
--- a/database/migrations/2020_07_03_091934_change_status_to_config_token_table.php
+++ /dev/null
@@ -1,33 +0,0 @@
-id();
- $table->string('type', 32)->unique();
- $table->time('start_time');
- $table->time('end_time');
- $table->integer('interval_min')->default(1);
- $table->boolean('enable')->default(1);
- $table->text('value')->nullable();
- $table->timestamps();
- });
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('config_notify');
- }
-}
diff --git a/database/migrations/2021_05_08_104925_create_config_whitelist_file_table.php b/database/migrations/2021_05_08_104925_create_config_whitelist_file_table.php
deleted file mode 100644
index 7a03c29..0000000
--- a/database/migrations/2021_05_08_104925_create_config_whitelist_file_table.php
+++ /dev/null
@@ -1,32 +0,0 @@
-id();
- $table->string('value', 255)->unique();
- });
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('config_whitelist_file');
- }
-}
diff --git a/database/migrations/2021_06_01_111745_create_config_common_table.php b/database/migrations/2021_06_01_111745_create_config_common_table.php
deleted file mode 100644
index ecb4ee9..0000000
--- a/database/migrations/2021_06_01_111745_create_config_common_table.php
+++ /dev/null
@@ -1,49 +0,0 @@
-id();
- $table->string('key', 255);
- $table->text('value');
- $table->unique(['key']);
- });
- $this->migrate();
- }
-
- /**
- * 数据迁移
- */
- private function migrate()
- {
- if (Schema::hasTable('config_whitelist_file')) {
- $values = DB::table('config_whitelist_file')->pluck('value');
- $values = json_encode($values);
- ConfigCommon::create(['key' => ConfigCommon::KEY_WHITELIST_FILE, 'value' => $values]);
- Schema::dropIfExists('config_whitelist_file');
- }
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('config_common');
- }
-}
diff --git a/doc/deploy-docker-compose.md b/doc/deploy-docker-compose.md
deleted file mode 100644
index 19975b9..0000000
--- a/doc/deploy-docker-compose.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Docker-Compose 部署
-## 克隆代码
-```
-git clone https://github.com/4x99/code6.git
-```
-
----
-
-## 修改配置
-```
-cd code6
-cp .env.docker-compose.example .env.docker-compose
-vim .env.docker-compose
-```
-
-请根据实际情况修改配置,这里 Web 端口以 `666` 为例:
-```
-# Web 映射到宿主机的端口
-PORT=666
-
-# MySQL 映射到宿主机的端口
-MYSQL_PORT=3306
-
-# MySQL 数据库名
-MYSQL_DATABASE=code6
-
-# MySQL 用户名(请使用非 root 用户)
-MYSQL_USER=
-
-# MySQL 密码
-MYSQL_PASSWORD=
-
-# MySQL 挂载到宿主机的目录
-MYSQL_VOLUME_PATH=
-```
-
----
-
-## 启动容器
-启动容器,码小六将自动连接 MySQL 并导入数据表:
-```
-docker-compose --env-file .env.docker-compose up -d --build
-```
-
----
-
-## 创建用户
-```
-docker exec -it code6-server /bin/bash
-php artisan code6:user-add <邮箱> <密码>
-```
-
-如需查看用户列表或删除用户请执行:
-```
-php artisan code6:user-list
-php artisan code6:user-delete <邮箱>
-```
-
----
-
-## 访问系统
-```
-http://<宿主机 IP>:666
-```
-
----
-
-## 配置令牌与任务
-进入系统后请前往 `[ 令牌配置 ]` 和 `[ 任务配置 ]` 模块进行配置,配置完毕即可使用!
diff --git a/doc/deploy-source.md b/doc/deploy-source.md
index e50707c..e17a50c 100644
--- a/doc/deploy-source.md
+++ b/doc/deploy-source.md
@@ -87,6 +87,7 @@ crontab -e -u <用户>
## 创建用户
```
+docker exec -it code6-server /bin/bash
php artisan code6:user-add <邮箱> <密码>
```
diff --git a/docker-compose.yaml b/docker-compose.yaml
deleted file mode 100644
index cc94741..0000000
--- a/docker-compose.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-version: "3.9"
-services:
- mysql:
- image: mysql/mysql-server:5.7
- container_name: code6-mysql
- restart: always
- env_file:
- - .env.docker-compose
- networks:
- - code6-network
- ports:
- - ${MYSQL_PORT}:3306
- volumes:
- - /etc/localtime:/etc/localtime:ro
- - ${MYSQL_VOLUME_PATH}:/var/lib/mysql
- healthcheck:
- test: mysql ${MYSQL_DATABASE} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e 'SELECT 1'
- interval: 5s
- retries: 10
- start_period: 60s
- code6:
- image: code6
- build:
- context: .
- dockerfile: Dockerfile
- container_name: code6-server
- depends_on:
- mysql:
- condition: service_healthy
- restart: always
- env_file:
- - .env.docker-compose
- environment:
- MYSQL_HOST: mysql
- MYSQL_PORT: 3306
- MYSQL_USERNAME: ${MYSQL_USER}
- ports:
- - ${PORT}:80
- networks:
- - code6-network
- links:
- - mysql
-networks:
- code6-network:
- name: code6-network
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index c125229..deb9fec 100644
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -1,22 +1,20 @@
#!/bin/bash
# 项目配置
-if [ ! -e '.env' ];then
- cp -i .env.example .env
- chmod -R 755 storage
- chown -R www-data:www-data storage
- php artisan key:generate
- sed -i "s!DB_HOST=127.0.0.1!DB_HOST=$MYSQL_HOST!" .env
- sed -i "s!DB_PORT=3306!DB_PORT=$MYSQL_PORT!" .env
- sed -i "s!DB_DATABASE=code6!DB_DATABASE=$MYSQL_DATABASE!" .env
- sed -i "s!DB_USERNAME=!DB_USERNAME=$MYSQL_USERNAME!" .env
- sed -i "s!DB_PASSWORD=!DB_PASSWORD=$MYSQL_PASSWORD!" .env
- php artisan migrate --force
-fi
+cp .env.example .env
+chmod -R 755 storage
+chown -R www-data:www-data storage
+php artisan key:generate
+sed -i "s!DB_HOST=127.0.0.1!DB_HOST=$MYSQL_HOST!" .env
+sed -i "s!DB_PORT=3306!DB_PORT=$MYSQL_PORT!" .env
+sed -i "s!DB_DATABASE=code6!DB_DATABASE=$MYSQL_DATABASE!" .env
+sed -i "s!DB_USERNAME=!DB_USERNAME=$MYSQL_USERNAME!" .env
+sed -i "s!DB_PASSWORD=!DB_PASSWORD=$MYSQL_PASSWORD!" .env
+php artisan migrate --force
# 配置任务调度
service cron start
-echo "* * * * * cd /var/www/html && /usr/local/bin/php artisan schedule:run>> /dev/null 2>&1"> /etc/cron.d/code6
+echo "* * * * * cd /var/www/html && /usr/local/bin/php artisan schedule:run>> /dev/null 2>&1">> /etc/cron.d/code6
crontab /etc/cron.d/code6
# 配置 Apache
diff --git a/doctor.php b/doctor.php
deleted file mode 100644
index 5c61a46..0000000
--- a/doctor.php
+++ /dev/null
@@ -1,106 +0,0 @@
-=') ? '' : 'PHP 版本需>= 7.3.0';
-console('PHP 版本', PHP_VERSION, $err);
-
-// PDO 扩展
-$pdo = class_exists('pdo');
-$err = $pdo ? '' : '请先安装 PHP PDO 扩展';
-console('PDO 扩展', $pdo ? '已安装' : '未安装', $err);
-
-// Laravel 密钥
-$err = $env['APP_KEY'] ? '' : '请执行命令 php artisan key:generate 生成密钥';
-console('Laravel 密钥', $env['APP_KEY'] ? '已生成' : '未生成', $err);
-
-// Storage 目录
-$writable = is_writable(ROOT.'/storage');
-$err = $writable ? '' : '请设置 storage 目录为可读写';
-console('Storage 目录', $writable ? '可读写' : '不可读写', $err);
-
-// Composer Package
-$import = file_exists(ROOT.'/vendor/autoload.php');
-$err = $import ? '' : '请安装 Composer 并执行 composer install 安装包';
-console('Composer Package', $import ? '已导入' : '未导入', $err);
-
-// MySQL 连接
-try {
- $dberr = '';
- $dsn = "mysql:host={$env['DB_HOST']}:{$env['DB_PORT']};dbname={$env['DB_DATABASE']}";
- $db = new PDO($dsn, $env['DB_USERNAME'], $env['DB_PASSWORD'], [PDO::ATTR_TIMEOUT => 3]);
-} catch (Exception $e) {
- $dberr = $e->getMessage();
-}
-console('MySQL 连接', $dberr ? '失败' : '成功', $dberr);
-
-// MySQL 数据表
-try {
- if ($dberr) {
- throw new Exception($dberr);
- }
- $err = false;
- $tables = $db->query("show tables like 'code_leak'")->fetchAll(PDO::FETCH_ASSOC)[0];
- if (!count($tables)) {
- throw new Exception('请执行 php artisan migrate 导入数据表');
- }
-} catch (Exception $e) {
- $err = $e->getMessage();
-}
-console('MySQL 数据表', $err ? '未导入' : '已导入', $err);
-
-// GitHub API
-try {
- $apierr = false;
- $url = 'https://api.github.com';
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT, 5);
- curl_setopt($ch, CURLOPT_USERAGENT, 'code6');
- $result = json_decode(curl_exec($ch), true);
- if (empty($result)) {
- throw new Exception("请求 $url 错误");
- }
- curl_close($ch);
-} catch (Exception $e) {
- $apierr = $e->getMessage();
-}
-console('GitHub API', $apierr ? '请求错误' : '请求成功', $apierr);
-
-// PHP 禁用函数
-$disFuns = get_cfg_var('disable_functions') ?: '无';
-echo "PHP 禁用函数:$disFuns\n";
-
-// PHP 已编译模块
-$exts = implode(',', get_loaded_extensions());
-echo "PHP 已编译模块:$exts\n";
-
-echo DIVIDER."[ 系统信息 ]\n";
-
-// 码小六版本
-$version = trim(file_get_contents(ROOT.'/version'));
-echo "码小六版本:$version\n";
-
-// 框架运行环境
-$appEnv = $env['APP_ENV'] ?? '无';
-echo "框架运行环境:$appEnv\n";
-
-// 框架调试开关
-$appDebug = $env['APP_DEBUG'] ?? '无';
-echo "框架调试开关:$appDebug\n";
-
-echo DIVIDER."\n有任何问题和建议请联系-> https://github.com/4x99/code6/issues\n\n";
diff --git a/public/css/configJob.css b/public/css/configJob.css
index 2624b68..b51b528 100644
--- a/public/css/configJob.css
+++ b/public/css/configJob.css
@@ -1,9 +1,3 @@
-.x-grid-cell-inner {
- white-space: pre-wrap;
- word-break: break-all;
- line-height: 20px;
-}
-
.x-window-text a, .x-window-text span {
color: #0070D5;
}
@@ -11,3 +5,7 @@
.x-window-text a:hover {
color: #F44336;
}
+
+.x-form-trigger {
+ background-position: 0 center !important;
+}
diff --git a/public/css/configNotify.css b/public/css/configNotify.css
deleted file mode 100644
index bc7226a..0000000
--- a/public/css/configNotify.css
+++ /dev/null
@@ -1,16 +0,0 @@
-.x-window-text a, .x-window-text span {
- color: #0070D5;
-}
-
-.x-window-text a:hover {
- color: #F44336;
-}
-
-.tip {
- font-size: 13px;
-}
-
-b {
- font-weight: 400;
- color: #0070D5;
-}
diff --git a/public/css/configToken.css b/public/css/configToken.css
index 36ad7bd..dc96008 100644
--- a/public/css/configToken.css
+++ b/public/css/configToken.css
@@ -1,11 +1,3 @@
-.tag {
- min-width: 70px;
-}
-
-.x-form-trigger {
- background-position: 0 center !important;
-}
-
.tip-title, .x-window-text a {
color: #0070D5;
}
@@ -19,7 +11,7 @@
}
.progress> div {
- background: #C2DDF2;
+ background: #FFE082;
line-height: 20px;
}
diff --git a/public/css/configWhitelist.css b/public/css/configWhitelist.css
deleted file mode 100644
index 7c47121..0000000
--- a/public/css/configWhitelist.css
+++ /dev/null
@@ -1,9 +0,0 @@
-.tip {
- margin: 0;
- letter-spacing: 3px;
-}
-
-.tip b {
- font-weight: 400;
- color: #0070D5;
-}
diff --git a/public/css/home.css b/public/css/home.css
index df660bf..3ae1691 100644
--- a/public/css/home.css
+++ b/public/css/home.css
@@ -19,7 +19,7 @@
}
.metric {
- padding: 6px 0;
+ padding: 5px 0;
text-align: center;
height: 100px;
}
@@ -29,7 +29,6 @@
}
.metric-value {
- font-family: Verdana, 'Microsoft YaHei', sans-serif !important;
font-size: 24px;
}
@@ -43,36 +42,3 @@
height: 100%;
background: #1890FF;
}
-
-.config-item {
- margin: 0 8px;
-}
-
-.config-icon {
- width: 16px;
- height: 16px;
- cursor: default;
- opacity: 0.8;
-}
-
-.help {
- margin: 10px;
-}
-
-.help b {
- font-weight: 400;
- color: #0070D5;
-}
-
-.help p {
- margin: 0;
- letter-spacing: 3px;
-}
-
-.version {
- color: #0070D5;
-}
-
-.version:hover {
- color: #1890FF;
-}
diff --git a/public/css/index.css b/public/css/index.css
index 1396c5b..d498ba2 100644
--- a/public/css/index.css
+++ b/public/css/index.css
@@ -26,8 +26,8 @@ body {
position: absolute;
top: 50%;
left: 50%;
- margin-left: -50px;
- width: 100px;
+ margin-left: -30px;
+ width: 60px;
height: 60px;
text-align: center;
font-size: 10px;
diff --git a/public/css/login.css b/public/css/login.css
index 9594016..4ff697e 100644
--- a/public/css/login.css
+++ b/public/css/login.css
@@ -38,7 +38,6 @@ input {
border: 1px solid #BBB;
letter-spacing: 2px;
color: #666;
- filter: none;
}
input:-webkit-autofill {
diff --git a/public/css/mobile.css b/public/css/mobile.css
deleted file mode 100644
index a003b7e..0000000
--- a/public/css/mobile.css
+++ /dev/null
@@ -1,80 +0,0 @@
-body {
- font-family: Consolas, -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
- padding-bottom: 50px;
- color: #666;
-}
-
-.header {
- padding-top: 20px;
- width: 100%;
-}
-
-.logo {
- margin: 0 auto;
- width: 120px;
- height: 26px;
- background: url("../image/logo-mobile.png") no-repeat;
- background-size: 100%;
-}
-
-.tag {
- display: inline-block;
- padding: 3px 5px 1px 7px;
- font-size: 12px;
- line-height: 1.3em;
- letter-spacing: 2px;
- border-radius: 2px;
- text-align: center;
- color: #FFF;
-}
-
-.item .van-cell__title {
- overflow: hidden;
-}
-
-.title {
- margin-left: 6px;
- font-weight: normal;
- color: #666;
-}
-
-.item .van-cell__label {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
-}
-
-.van-action-sheet__cancel, .van-action-sheet__item {
- font-size: 14px;
-}
-
-.van-pagination__item {
- color: inherit;
-}
-
-.van-pagination__item--active, .van-pagination__item:active {
- color: #1890FF;
- background: inherit;
-}
-
-.van-pagination__item::after {
- border-width: 0;
-}
-
-/* Scroll Bar */
-::-webkit-scrollbar-track-piece {
- background: #F5F5F5;
-}
-
-::-webkit-scrollbar {
- width: 10px;
- height: 10px;
-}
-
-::-webkit-scrollbar-thumb {
- background: #D5D5D5;
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: #CDCDCD;
-}
diff --git a/public/css/style.css b/public/css/style.css
index 1da105b..5a2a33f 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -1,5 +1,5 @@
* {
- font-family: -apple-system, BlinkMacSystemFont, Consolas, 'Microsoft YaHei', sans-serif !important;
+ font-family: -apple-system, BlinkMacSystemFont, Verdana, 'Microsoft YaHei', sans-serif !important;
color: #666;
}
@@ -20,15 +20,7 @@ a {
text-decoration: none;
}
-textarea::-webkit-input-placeholder, input::-webkit-input-placeholder {
- color: #AAA;
-}
-
/* ExtJS */
-.x-panel-header-title-default {
- font-size: 14px;
-}
-
.x-menu-item-text-default {
letter-spacing: 3px;
color: #666;
@@ -84,14 +76,6 @@ textarea::-webkit-input-placeholder, input::-webkit-input-placeholder {
color: #666;
}
-.x-datepicker-today {
- border-color: transparent;
-}
-
-.x-datepicker-selected {
- border-color: #3892d4 !important;
-}
-
/* Remove ExtJS focused style */
.x-focus {
box-shadow: none !important;
@@ -173,30 +157,10 @@ textarea::-webkit-input-placeholder, input::-webkit-input-placeholder {
background: url(../image/icon/bullet-red.png) no-repeat;
}
-.icon-cog {
- background: url(../image/icon/cog.png) no-repeat;
-}
-
.icon-cross {
background: url(../image/icon/cross.png) no-repeat;
}
-.icon-ding-talk {
- background: url(../image/icon/ding-talk.png) no-repeat;
-}
-
-.icon-email {
- background: url(../image/icon/email.png) no-repeat;
-}
-
-.icon-excel {
- background: url(../image/icon/excel.png) no-repeat;
-}
-
-.icon-feishu {
- background: url(../image/icon/feishu.png) no-repeat;
-}
-
.icon-folder-page {
background: url(../image/icon/folder-page.png) no-repeat;
}
@@ -209,30 +173,14 @@ textarea::-webkit-input-placeholder, input::-webkit-input-placeholder {
background: url(../image/icon/key.png) no-repeat;
}
-.icon-page-lightning {
- background: url(../image/icon/page-lightning.png) no-repeat;
-}
-
.icon-page {
background: url(../image/icon/page.png) no-repeat;
}
-.icon-page-db {
- background: url(../image/icon/page-db.png) no-repeat;
-}
-
.icon-page-edit {
background: url(../image/icon/page-edit.png) no-repeat;
}
-.icon-page-get {
- background: url(../image/icon/page-get.png) no-repeat;
-}
-
-.icon-page-key {
- background: url(../image/icon/page-key.png) no-repeat;
-}
-
.icon-page-star {
background: url(../image/icon/page-star.png) no-repeat;
}
@@ -241,30 +189,14 @@ textarea::-webkit-input-placeholder, input::-webkit-input-placeholder {
background: url(../image/icon/page-wrench.png) no-repeat;
}
-.icon-phone {
- background: url(../image/icon/phone.png) no-repeat;
-}
-
-.icon-telegram {
- background: url(../image/icon/telegram.png) no-repeat;
-}
-
.icon-tick {
background: url(../image/icon/tick.png) no-repeat;
}
-.icon-user {
- background: url(../image/icon/user.png) no-repeat;
-}
-
.icon-warning {
background: url(../image/icon/warning.png) no-repeat;
}
-.icon-work-wechat {
- background: url(../image/icon/work-wechat.png) no-repeat;
-}
-
.icon-zoom {
background: url(../image/icon/zoom.png) no-repeat;
}
diff --git a/public/css/vant.css b/public/css/vant.css
deleted file mode 100644
index bdf1b5f..0000000
--- a/public/css/vant.css
+++ /dev/null
@@ -1 +0,0 @@
-html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Segoe UI,Arial,Roboto,'PingFang SC','Hiragino Sans GB','Microsoft Yahei',sans-serif}a{text-decoration:none}button,input,textarea{color:inherit;font:inherit}[class*=van-]:focus,a:focus,button:focus,input:focus,textarea:focus{outline:0}ol,ul{margin:0;padding:0;list-style:none}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}.van-clearfix::after{display:table;clear:both;content:''}[class*=van-hairline]::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--top::after{border-top-width:1px}.van-hairline--left::after{border-left-width:1px}.van-hairline--right::after{border-right-width:1px}.van-hairline--bottom::after{border-bottom-width:1px}.van-hairline--top-bottom::after,.van-hairline-unset--top-bottom::after{border-width:1px 0}.van-hairline--surround::after{border-width:1px}@-webkit-keyframes van-slide-up-enter{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-enter{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-down-enter{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-enter{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-left-enter{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-enter{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-right-enter{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-enter{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-fade-in{from{opacity:0}to{opacity:1}}@keyframes van-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes van-fade-out{from{opacity:1}to{opacity:0}}@keyframes van-fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes van-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes van-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.van-fade-enter-active{-webkit-animation:.3s van-fade-in both ease-out;animation:.3s van-fade-in both ease-out}.van-fade-leave-active{-webkit-animation:.3s van-fade-out both ease-in;animation:.3s van-fade-out both ease-in}.van-slide-up-enter-active{-webkit-animation:van-slide-up-enter .3s both ease-out;animation:van-slide-up-enter .3s both ease-out}.van-slide-up-leave-active{-webkit-animation:van-slide-up-leave .3s both ease-in;animation:van-slide-up-leave .3s both ease-in}.van-slide-down-enter-active{-webkit-animation:van-slide-down-enter .3s both ease-out;animation:van-slide-down-enter .3s both ease-out}.van-slide-down-leave-active{-webkit-animation:van-slide-down-leave .3s both ease-in;animation:van-slide-down-leave .3s both ease-in}.van-slide-left-enter-active{-webkit-animation:van-slide-left-enter .3s both ease-out;animation:van-slide-left-enter .3s both ease-out}.van-slide-left-leave-active{-webkit-animation:van-slide-left-leave .3s both ease-in;animation:van-slide-left-leave .3s both ease-in}.van-slide-right-enter-active{-webkit-animation:van-slide-right-enter .3s both ease-out;animation:van-slide-right-enter .3s both ease-out}.van-slide-right-leave-active{-webkit-animation:van-slide-right-leave .3s both ease-in;animation:van-slide-right-leave .3s both ease-in}.van-overlay{position:fixed;top:0;left:0;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.7)}.van-info{position:absolute;top:0;right:0;box-sizing:border-box;min-width:16px;padding:0 3px;color:#fff;font-weight:500;font-size:12px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;line-height:14px;text-align:center;background-color:#ee0a24;border:1px solid #fff;border-radius:16px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%}.van-info--dot{width:8px;min-width:0;height:8px;background-color:#ee0a24;border-radius:100%}.van-sidebar-item{position:relative;display:block;box-sizing:border-box;padding:20px 12px;overflow:hidden;color:#323233;font-size:14px;line-height:20px;word-wrap:break-word;background-color:#f7f8fa;cursor:pointer;-webkit-user-select:none;user-select:none}.van-sidebar-item:active{background-color:#f2f3f5}.van-sidebar-item__text{position:relative;display:inline-block}.van-sidebar-item:not(:last-child)::after{border-bottom-width:1px}.van-sidebar-item--select{color:#323233;font-weight:500}.van-sidebar-item--select,.van-sidebar-item--select:active{background-color:#fff}.van-sidebar-item--select::before{position:absolute;top:50%;left:0;width:4px;height:16px;background-color:#ee0a24;-webkit-transform:translateY(-50%);transform:translateY(-50%);content:''}.van-sidebar-item--disabled{color:#c8c9cc;cursor:not-allowed}.van-sidebar-item--disabled:active{background-color:#f7f8fa}@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(https://img.yzcdn.cn/vant/vant-icon-6ae417.woff2) format('woff2'),url(https://img.yzcdn.cn/vant/vant-icon-6ae417.woff) format('woff'),url(https://img.yzcdn.cn/vant/vant-icon-6ae417.ttf) format('truetype')}.van-icon{position:relative;display:inline-block;font:normal normal normal 14px/1 vant-icon;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon::before{display:inline-block}.van-icon-add-o::before{content:'\F000'}.van-icon-add-square::before{content:'\F001'}.van-icon-add::before{content:'\F002'}.van-icon-after-sale::before{content:'\F003'}.van-icon-aim::before{content:'\F004'}.van-icon-alipay::before{content:'\F005'}.van-icon-apps-o::before{content:'\F006'}.van-icon-arrow-down::before{content:'\F007'}.van-icon-arrow-left::before{content:'\F008'}.van-icon-arrow-up::before{content:'\F009'}.van-icon-arrow::before{content:'\F00A'}.van-icon-ascending::before{content:'\F00B'}.van-icon-audio::before{content:'\F00C'}.van-icon-award-o::before{content:'\F00D'}.van-icon-award::before{content:'\F00E'}.van-icon-bag-o::before{content:'\F00F'}.van-icon-bag::before{content:'\F010'}.van-icon-balance-list-o::before{content:'\F011'}.van-icon-balance-list::before{content:'\F012'}.van-icon-balance-o::before{content:'\F013'}.van-icon-balance-pay::before{content:'\F014'}.van-icon-bar-chart-o::before{content:'\F015'}.van-icon-bars::before{content:'\F016'}.van-icon-bell::before{content:'\F017'}.van-icon-bill-o::before{content:'\F018'}.van-icon-bill::before{content:'\F019'}.van-icon-birthday-cake-o::before{content:'\F01A'}.van-icon-bookmark-o::before{content:'\F01B'}.van-icon-bookmark::before{content:'\F01C'}.van-icon-browsing-history-o::before{content:'\F01D'}.van-icon-browsing-history::before{content:'\F01E'}.van-icon-brush-o::before{content:'\F01F'}.van-icon-bulb-o::before{content:'\F020'}.van-icon-bullhorn-o::before{content:'\F021'}.van-icon-calender-o::before{content:'\F022'}.van-icon-card::before{content:'\F023'}.van-icon-cart-circle-o::before{content:'\F024'}.van-icon-cart-circle::before{content:'\F025'}.van-icon-cart-o::before{content:'\F026'}.van-icon-cart::before{content:'\F027'}.van-icon-cash-back-record::before{content:'\F028'}.van-icon-cash-on-deliver::before{content:'\F029'}.van-icon-cashier-o::before{content:'\F02A'}.van-icon-certificate::before{content:'\F02B'}.van-icon-chart-trending-o::before{content:'\F02C'}.van-icon-chat-o::before{content:'\F02D'}.van-icon-chat::before{content:'\F02E'}.van-icon-checked::before{content:'\F02F'}.van-icon-circle::before{content:'\F030'}.van-icon-clear::before{content:'\F031'}.van-icon-clock-o::before{content:'\F032'}.van-icon-clock::before{content:'\F033'}.van-icon-close::before{content:'\F034'}.van-icon-closed-eye::before{content:'\F035'}.van-icon-cluster-o::before{content:'\F036'}.van-icon-cluster::before{content:'\F037'}.van-icon-column::before{content:'\F038'}.van-icon-comment-circle-o::before{content:'\F039'}.van-icon-comment-circle::before{content:'\F03A'}.van-icon-comment-o::before{content:'\F03B'}.van-icon-comment::before{content:'\F03C'}.van-icon-completed::before{content:'\F03D'}.van-icon-contact::before{content:'\F03E'}.van-icon-coupon-o::before{content:'\F03F'}.van-icon-coupon::before{content:'\F040'}.van-icon-credit-pay::before{content:'\F041'}.van-icon-cross::before{content:'\F042'}.van-icon-debit-pay::before{content:'\F043'}.van-icon-delete::before{content:'\F044'}.van-icon-descending::before{content:'\F045'}.van-icon-description::before{content:'\F046'}.van-icon-desktop-o::before{content:'\F047'}.van-icon-diamond-o::before{content:'\F048'}.van-icon-diamond::before{content:'\F049'}.van-icon-discount::before{content:'\F04A'}.van-icon-down::before{content:'\F04B'}.van-icon-ecard-pay::before{content:'\F04C'}.van-icon-edit::before{content:'\F04D'}.van-icon-ellipsis::before{content:'\F04E'}.van-icon-empty::before{content:'\F04F'}.van-icon-enlarge::before{content:'\F0E4'}.van-icon-envelop-o::before{content:'\F050'}.van-icon-exchange::before{content:'\F051'}.van-icon-expand-o::before{content:'\F052'}.van-icon-expand::before{content:'\F053'}.van-icon-eye-o::before{content:'\F054'}.van-icon-eye::before{content:'\F055'}.van-icon-fail::before{content:'\F056'}.van-icon-failure::before{content:'\F057'}.van-icon-filter-o::before{content:'\F058'}.van-icon-fire-o::before{content:'\F059'}.van-icon-fire::before{content:'\F05A'}.van-icon-flag-o::before{content:'\F05B'}.van-icon-flower-o::before{content:'\F05C'}.van-icon-free-postage::before{content:'\F05D'}.van-icon-friends-o::before{content:'\F05E'}.van-icon-friends::before{content:'\F05F'}.van-icon-gem-o::before{content:'\F060'}.van-icon-gem::before{content:'\F061'}.van-icon-gift-card-o::before{content:'\F062'}.van-icon-gift-card::before{content:'\F063'}.van-icon-gift-o::before{content:'\F064'}.van-icon-gift::before{content:'\F065'}.van-icon-gold-coin-o::before{content:'\F066'}.van-icon-gold-coin::before{content:'\F067'}.van-icon-good-job-o::before{content:'\F068'}.van-icon-good-job::before{content:'\F069'}.van-icon-goods-collect-o::before{content:'\F06A'}.van-icon-goods-collect::before{content:'\F06B'}.van-icon-graphic::before{content:'\F06C'}.van-icon-home-o::before{content:'\F06D'}.van-icon-hot-o::before{content:'\F06E'}.van-icon-hot-sale-o::before{content:'\F06F'}.van-icon-hot-sale::before{content:'\F070'}.van-icon-hot::before{content:'\F071'}.van-icon-hotel-o::before{content:'\F072'}.van-icon-idcard::before{content:'\F073'}.van-icon-info-o::before{content:'\F074'}.van-icon-info::before{content:'\F075'}.van-icon-invition::before{content:'\F076'}.van-icon-label-o::before{content:'\F077'}.van-icon-label::before{content:'\F078'}.van-icon-like-o::before{content:'\F079'}.van-icon-like::before{content:'\F07A'}.van-icon-live::before{content:'\F07B'}.van-icon-location-o::before{content:'\F07C'}.van-icon-location::before{content:'\F07D'}.van-icon-lock::before{content:'\F07E'}.van-icon-logistics::before{content:'\F07F'}.van-icon-manager-o::before{content:'\F080'}.van-icon-manager::before{content:'\F081'}.van-icon-map-marked::before{content:'\F082'}.van-icon-medal-o::before{content:'\F083'}.van-icon-medal::before{content:'\F084'}.van-icon-more-o::before{content:'\F085'}.van-icon-more::before{content:'\F086'}.van-icon-music-o::before{content:'\F087'}.van-icon-music::before{content:'\F088'}.van-icon-new-arrival-o::before{content:'\F089'}.van-icon-new-arrival::before{content:'\F08A'}.van-icon-new-o::before{content:'\F08B'}.van-icon-new::before{content:'\F08C'}.van-icon-newspaper-o::before{content:'\F08D'}.van-icon-notes-o::before{content:'\F08E'}.van-icon-orders-o::before{content:'\F08F'}.van-icon-other-pay::before{content:'\F090'}.van-icon-paid::before{content:'\F091'}.van-icon-passed::before{content:'\F092'}.van-icon-pause-circle-o::before{content:'\F093'}.van-icon-pause-circle::before{content:'\F094'}.van-icon-pause::before{content:'\F095'}.van-icon-peer-pay::before{content:'\F096'}.van-icon-pending-payment::before{content:'\F097'}.van-icon-phone-circle-o::before{content:'\F098'}.van-icon-phone-circle::before{content:'\F099'}.van-icon-phone-o::before{content:'\F09A'}.van-icon-phone::before{content:'\F09B'}.van-icon-photo-o::before{content:'\F09C'}.van-icon-photo::before{content:'\F09D'}.van-icon-photograph::before{content:'\F09E'}.van-icon-play-circle-o::before{content:'\F09F'}.van-icon-play-circle::before{content:'\F0A0'}.van-icon-play::before{content:'\F0A1'}.van-icon-plus::before{content:'\F0A2'}.van-icon-point-gift-o::before{content:'\F0A3'}.van-icon-point-gift::before{content:'\F0A4'}.van-icon-points::before{content:'\F0A5'}.van-icon-printer::before{content:'\F0A6'}.van-icon-qr-invalid::before{content:'\F0A7'}.van-icon-qr::before{content:'\F0A8'}.van-icon-question-o::before{content:'\F0A9'}.van-icon-question::before{content:'\F0AA'}.van-icon-records::before{content:'\F0AB'}.van-icon-refund-o::before{content:'\F0AC'}.van-icon-replay::before{content:'\F0AD'}.van-icon-scan::before{content:'\F0AE'}.van-icon-search::before{content:'\F0AF'}.van-icon-send-gift-o::before{content:'\F0B0'}.van-icon-send-gift::before{content:'\F0B1'}.van-icon-service-o::before{content:'\F0B2'}.van-icon-service::before{content:'\F0B3'}.van-icon-setting-o::before{content:'\F0B4'}.van-icon-setting::before{content:'\F0B5'}.van-icon-share::before{content:'\F0B6'}.van-icon-shop-collect-o::before{content:'\F0B7'}.van-icon-shop-collect::before{content:'\F0B8'}.van-icon-shop-o::before{content:'\F0B9'}.van-icon-shop::before{content:'\F0BA'}.van-icon-shopping-cart-o::before{content:'\F0BB'}.van-icon-shopping-cart::before{content:'\F0BC'}.van-icon-shrink::before{content:'\F0BD'}.van-icon-sign::before{content:'\F0BE'}.van-icon-smile-comment-o::before{content:'\F0BF'}.van-icon-smile-comment::before{content:'\F0C0'}.van-icon-smile-o::before{content:'\F0C1'}.van-icon-smile::before{content:'\F0C2'}.van-icon-star-o::before{content:'\F0C3'}.van-icon-star::before{content:'\F0C4'}.van-icon-stop-circle-o::before{content:'\F0C5'}.van-icon-stop-circle::before{content:'\F0C6'}.van-icon-stop::before{content:'\F0C7'}.van-icon-success::before{content:'\F0C8'}.van-icon-thumb-circle-o::before{content:'\F0C9'}.van-icon-thumb-circle::before{content:'\F0CA'}.van-icon-todo-list-o::before{content:'\F0CB'}.van-icon-todo-list::before{content:'\F0CC'}.van-icon-tosend::before{content:'\F0CD'}.van-icon-tv-o::before{content:'\F0CE'}.van-icon-umbrella-circle::before{content:'\F0CF'}.van-icon-underway-o::before{content:'\F0D0'}.van-icon-underway::before{content:'\F0D1'}.van-icon-upgrade::before{content:'\F0D2'}.van-icon-user-circle-o::before{content:'\F0D3'}.van-icon-user-o::before{content:'\F0D4'}.van-icon-video-o::before{content:'\F0D5'}.van-icon-video::before{content:'\F0D6'}.van-icon-vip-card-o::before{content:'\F0D7'}.van-icon-vip-card::before{content:'\F0D8'}.van-icon-volume-o::before{content:'\F0D9'}.van-icon-volume::before{content:'\F0DA'}.van-icon-wap-home-o::before{content:'\F0DB'}.van-icon-wap-home::before{content:'\F0DC'}.van-icon-wap-nav::before{content:'\F0DD'}.van-icon-warn-o::before{content:'\F0DE'}.van-icon-warning-o::before{content:'\F0DF'}.van-icon-warning::before{content:'\F0E0'}.van-icon-weapp-nav::before{content:'\F0E1'}.van-icon-wechat::before{content:'\F0E2'}.van-icon-youzan-shield::before{content:'\F0E3'}.van-icon__image{width:1em;height:1em;object-fit:contain}.van-tabbar-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#646566;font-size:12px;line-height:1;cursor:pointer}.van-tabbar-item__icon{position:relative;margin-bottom:5px;font-size:18px}.van-tabbar-item__icon .van-icon{display:block;min-width:1em}.van-tabbar-item__icon img{display:block;height:18px}.van-tabbar-item--active{color:#1989fa}.van-tabbar-item .van-info{margin-top:2px}.van-step{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#969799;font-size:14px}.van-step__circle{display:block;width:5px;height:5px;background-color:#969799;border-radius:50%}.van-step__line{position:absolute;background-color:#ebedf0;-webkit-transition:background-color .3s;transition:background-color .3s}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child{position:absolute;right:1px;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:-8px;z-index:1;padding:0 8px;background-color:#fff;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:12px;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media (max-width:321px){.van-step--horizontal .van-step__title{font-size:11px}}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:12px}.van-step--horizontal .van-step--process{color:#323233}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:18px}.van-step--vertical:not(:last-child)::after{border-bottom-width:1px}.van-step--vertical:first-child::before{position:absolute;top:0;left:-15px;z-index:1;width:1px;height:20px;background-color:#fff;content:''}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:2;font-size:12px;line-height:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:#323233}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:#07c160}.van-step__icon,.van-step__title{-webkit-transition:color .3s;transition:color .3s}.van-step__icon--active,.van-step__title--active{color:#07c160}.van-rate{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none}.van-rate__item{position:relative}.van-rate__item:not(:last-child){padding-right:4px}.van-rate__icon{display:block;width:1em;color:#c8c9cc;font-size:20px}.van-rate__icon--half{position:absolute;top:0;left:0;width:.5em;overflow:hidden}.van-rate__icon--full{color:#ee0a24}.van-rate__icon--disabled{color:#c8c9cc}.van-rate--disabled{cursor:not-allowed}.van-rate--readonly{cursor:default}.van-notice-bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:40px;padding:0 16px;color:#ed6a0c;font-size:14px;line-height:24px;background-color:#fffbe8}.van-notice-bar__left-icon,.van-notice-bar__right-icon{min-width:24px;font-size:16px}.van-notice-bar__right-icon{text-align:right;cursor:pointer}.van-notice-bar__wrap{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:100%;overflow:hidden}.van-notice-bar__content{position:absolute;white-space:nowrap;-webkit-transition-timing-function:linear;transition-timing-function:linear}.van-notice-bar__content.van-ellipsis{max-width:100%}.van-notice-bar--wrapable{height:auto;padding:8px 16px}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal;word-wrap:break-word}.van-nav-bar{position:relative;z-index:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:46px;line-height:1.5;text-align:center;background-color:#fff;-webkit-user-select:none;user-select:none}.van-nav-bar .van-icon{color:#1989fa}.van-nav-bar__arrow{min-width:1em;margin-right:4px;font-size:16px}.van-nav-bar--fixed{position:fixed;top:0;left:0;width:100%}.van-nav-bar__title{max-width:60%;margin:0 auto;color:#323233;font-weight:500;font-size:16px}.van-nav-bar__left,.van-nav-bar__right{position:absolute;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 16px;font-size:14px;cursor:pointer}.van-nav-bar__left:active,.van-nav-bar__right:active{opacity:.7}.van-nav-bar__left{left:0}.van-nav-bar__right{right:0}.van-nav-bar__text{color:#1989fa}.van-grid-item{position:relative;box-sizing:border-box}.van-grid-item--square{height:0}.van-grid-item__icon{font-size:28px}.van-grid-item__icon-wrapper{position:relative}.van-grid-item__text{color:#646566;font-size:12px;line-height:1.5;word-wrap:break-word}.van-grid-item__icon+.van-grid-item__text{margin-top:8px}.van-grid-item__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;box-sizing:border-box;height:100%;padding:16px 8px;background-color:#fff}.van-grid-item__content::after{z-index:1;border-width:0 1px 1px 0}.van-grid-item__content--square{position:absolute;top:0;right:0;left:0}.van-grid-item__content--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-grid-item__content--horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.van-grid-item__content--horizontal .van-grid-item__icon+.van-grid-item__text{margin-top:0;margin-left:8px}.van-grid-item__content--surround::after{border-width:1px}.van-grid-item__content--clickable{cursor:pointer}.van-grid-item__content--clickable:active{background-color:#f2f3f5}.van-goods-action-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:48px;height:100%;color:#646566;font-size:10px;line-height:1;text-align:center;background-color:#fff;cursor:pointer}.van-goods-action-icon:active{background-color:#f2f3f5}.van-goods-action-icon__icon{position:relative;width:1em;margin:0 auto 5px;color:#323233;font-size:18px}.van-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-checkbox--disabled{cursor:not-allowed}.van-checkbox--label-disabled{cursor:default}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-checkbox__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-checkbox__icon--round .van-icon{border-radius:100%}.van-checkbox__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-checkbox__icon--disabled{cursor:not-allowed}.van-checkbox__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-checkbox__icon--disabled.van-checkbox__icon--checked .van-icon{color:#c8c9cc}.van-checkbox__label{margin-left:8px;color:#323233;line-height:20px}.van-checkbox__label--left{margin:0 8px 0 0}.van-checkbox__label--disabled{color:#c8c9cc}.van-coupon{margin:0 12px 12px;overflow:hidden;background-color:#fff;border-radius:8px;box-shadow:0 0 4px rgba(0,0,0,.1)}.van-coupon:active{background-color:#f2f3f5}.van-coupon__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;min-height:84px;padding:14px 0;color:#323233}.van-coupon__head{position:relative;min-width:96px;padding:0 8px;color:#ee0a24;text-align:center}.van-coupon__amount,.van-coupon__condition,.van-coupon__name,.van-coupon__valid{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-coupon__amount{margin-bottom:6px;font-weight:500;font-size:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-coupon__amount span{font-weight:400;font-size:40%}.van-coupon__amount span:not(:empty){margin-left:2px}.van-coupon__condition{font-size:12px;line-height:16px;white-space:pre-wrap}.van-coupon__body{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;border-radius:0 8px 8px 0}.van-coupon__name{margin-bottom:10px;font-weight:700;font-size:14px;line-height:20px}.van-coupon__valid{font-size:12px}.van-coupon__corner{position:absolute;top:0;right:16px;bottom:0}.van-coupon__description{padding:8px 16px;font-size:12px;border-top:1px dashed #ebedf0}.van-coupon--disabled:active{background-color:#fff}.van-coupon--disabled .van-coupon-item__content{height:74px}.van-coupon--disabled .van-coupon__head{color:inherit}.van-image{position:relative;display:inline-block}.van-image--round{overflow:hidden;border-radius:50%}.van-image--round img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;width:100%;height:100%}.van-image__error,.van-image__loading{position:absolute;top:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#969799;font-size:14px;background-color:#f7f8fa}.van-image__loading-icon{font-size:22px}.van-image__error-icon{font-size:22px}.van-radio{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:12px}.van-radio__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:#c8c9cc}.van-radio__label{margin-left:8px;color:#323233;line-height:20px}.van-radio__label--left{margin:0 8px 0 0}.van-radio__label--disabled{color:#c8c9cc}.van-tag{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:.2em .5em;color:#fff;font-size:10px;line-height:normal;border-radius:.2em}.van-tag::after{border-color:currentColor;border-radius:.4em}.van-tag--default{background-color:#969799}.van-tag--default.van-tag--plain{color:#969799}.van-tag--danger{background-color:#ee0a24}.van-tag--danger.van-tag--plain{color:#ee0a24}.van-tag--primary{background-color:#1989fa}.van-tag--primary.van-tag--plain{color:#1989fa}.van-tag--success{background-color:#07c160}.van-tag--success.van-tag--plain{color:#07c160}.van-tag--warning{background-color:#ff976a}.van-tag--warning.van-tag--plain{color:#ff976a}.van-tag--plain{background-color:#fff}.van-tag--mark{padding-right:.7em}.van-tag--mark,.van-tag--mark::after{border-radius:0 999px 999px 0}.van-tag--round,.van-tag--round::after{border-radius:999px}.van-tag--medium{font-size:12px}.van-tag--large{font-size:14px}.van-tag__close{min-width:1em;margin-left:2px;cursor:pointer}.van-card{position:relative;box-sizing:border-box;padding:8px 16px;color:#323233;font-size:12px;background-color:#fafafa}.van-card:not(:first-child){margin-top:8px}.van-card__header{display:-webkit-box;display:-webkit-flex;display:flex}.van-card__thumb{position:relative;-webkit-box-flex:0;-webkit-flex:none;flex:none;width:88px;height:88px;margin-right:8px}.van-card__thumb img{border-radius:8px}.van-card__content{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;min-width:0;min-height:88px}.van-card__content--centered{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{max-height:32px;font-weight:500;line-height:16px}.van-card__desc{max-height:20px;color:#646566;line-height:20px}.van-card__bottom{line-height:20px}.van-card__price{display:inline-block;color:#323233;font-weight:500;font-size:12px}.van-card__price-integer{font-size:16px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-card__price-decimal{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-card__origin-price{display:inline-block;margin-left:5px;color:#969799;font-size:10px;text-decoration:line-through}.van-card__num{float:right;color:#969799}.van-card__tag{position:absolute;top:2px;left:0}.van-card__footer{-webkit-box-flex:0;-webkit-flex:none;flex:none;text-align:right}.van-card__footer .van-button{margin-left:5px}.van-cell{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;overflow:hidden;color:#323233;font-size:14px;line-height:24px;background-color:#fff}.van-cell::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-cell--borderless::after,.van-cell:last-child::after{display:none}.van-cell__label{margin-top:4px;color:#969799;font-size:12px;line-height:18px}.van-cell__title,.van-cell__value{-webkit-box-flex:1;-webkit-flex:1;flex:1}.van-cell__value{position:relative;overflow:hidden;color:#969799;text-align:right;vertical-align:middle;word-wrap:break-word}.van-cell__value--alone{color:#323233;text-align:left}.van-cell__left-icon,.van-cell__right-icon{min-width:1em;height:24px;font-size:16px;line-height:24px}.van-cell__left-icon{margin-right:5px}.van-cell__right-icon{margin-left:5px;color:#969799}.van-cell--clickable{cursor:pointer}.van-cell--clickable:active{background-color:#f2f3f5}.van-cell--required{overflow:visible}.van-cell--required::before{position:absolute;left:8px;color:#ee0a24;font-size:14px;content:'*'}.van-cell--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-cell--large{padding-top:12px;padding-bottom:12px}.van-cell--large .van-cell__title{font-size:16px}.van-cell--large .van-cell__label{font-size:14px}.van-coupon-cell--selected{color:#323233}.van-contact-card{padding:16px}.van-contact-card__value{margin-left:5px;line-height:20px}.van-contact-card--add .van-contact-card__value{line-height:40px}.van-contact-card--add .van-cell__left-icon{color:#1989fa;font-size:40px}.van-contact-card::before{position:absolute;right:0;bottom:0;left:0;height:2px;background:-webkit-repeating-linear-gradient(135deg,#ff6c6c 0,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background:repeating-linear-gradient(-45deg,#ff6c6c 0,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background-size:80px;content:''}.van-collapse-item{position:relative}.van-collapse-item--border::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:0;right:16px;left:16px;border-top:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-collapse-item__title .van-cell__right-icon::before{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.van-collapse-item__title::after{right:16px;display:none}.van-collapse-item__title--expanded .van-cell__right-icon::before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.van-collapse-item__title--expanded::after{display:block}.van-collapse-item__title--borderless::after{display:none}.van-collapse-item__title--disabled{cursor:not-allowed}.van-collapse-item__title--disabled,.van-collapse-item__title--disabled .van-cell__right-icon{color:#c8c9cc}.van-collapse-item__title--disabled:active{background-color:#fff}.van-collapse-item__wrapper{overflow:hidden;-webkit-transition:height .3s ease-in-out;transition:height .3s ease-in-out;will-change:height}.van-collapse-item__content{padding:12px 16px;color:#969799;font-size:14px;line-height:1.5;background-color:#fff}.van-field__label{-webkit-box-flex:0;-webkit-flex:none;flex:none;box-sizing:border-box;width:6.2em;margin-right:12px;color:#646566;text-align:left;word-wrap:break-word}.van-field__label--center{text-align:center}.van-field__label--right{padding-right:16px;text-align:right}.van-field--disabled .van-field__label{color:#c8c9cc}.van-field__value{overflow:visible}.van-field__body{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-field__control{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;line-height:inherit;text-align:left;background-color:transparent;border:0;resize:none}.van-field__control::-webkit-input-placeholder{color:#c8c9cc}.van-field__control::placeholder{color:#c8c9cc}.van-field__control:disabled{color:#c8c9cc;background-color:transparent;cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.van-field__control:read-only{cursor:default}.van-field__control--center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-field__control--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;text-align:right}.van-field__control--custom{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:24px}.van-field__control[type=date],.van-field__control[type=datetime-local],.van-field__control[type=time]{min-height:24px}.van-field__control[type=search]{-webkit-appearance:none}.van-field__button,.van-field__clear,.van-field__icon,.van-field__right-icon{-webkit-flex-shrink:0;flex-shrink:0}.van-field__clear,.van-field__right-icon{margin-right:-8px;padding:0 8px;line-height:inherit}.van-field__clear{color:#c8c9cc;font-size:16px;cursor:pointer}.van-field__left-icon .van-icon,.van-field__right-icon .van-icon{display:block;min-width:1em;font-size:16px;line-height:inherit}.van-field__left-icon{margin-right:5px}.van-field__right-icon{color:#969799}.van-field__button{padding-left:8px}.van-field__error-message{color:#ee0a24;font-size:12px;text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{margin-top:4px;color:#646566;font-size:12px;line-height:16px;text-align:right}.van-field--error .van-field__control::-webkit-input-placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--error .van-field__control,.van-field--error .van-field__control::placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--min-height .van-field__control{min-height:60px}.van-search{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;padding:10px 12px;background-color:#fff}.van-search__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-left:8px;background-color:#f7f8fa;border-radius:2px}.van-search__content--round{border-radius:999px}.van-search__label{padding:0 5px;color:#323233;font-size:14px;line-height:34px}.van-search .van-cell{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:5px 8px 5px 0;background-color:transparent}.van-search .van-cell__left-icon{color:#969799}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:0 8px;color:#323233;font-size:14px;line-height:34px;cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:#f2f3f5}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;background-color:#fff;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:20px}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 20px 20px}.van-popup--right{top:50%;right:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:20px 0 0 20px}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:20px 20px 0 0}.van-popup--left{top:50%;left:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 20px 20px 0}.van-popup--safe-area-inset-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-popup-slide-bottom-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-top-enter-active{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.van-popup-slide-bottom-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-top-leave-active{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.van-popup-slide-top-enter,.van-popup-slide-top-leave-active{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter,.van-popup-slide-right-leave-active{-webkit-transform:translate3d(100%,-50%,0);transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter,.van-popup-slide-bottom-leave-active{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.van-popup-slide-left-enter,.van-popup-slide-left-leave-active{-webkit-transform:translate3d(-100%,-50%,0);transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-popup__close-icon:active{color:#969799}.van-popup__close-icon--top-left{top:16px;left:16px}.van-popup__close-icon--top-right{top:16px;right:16px}.van-popup__close-icon--bottom-left{bottom:16px;left:16px}.van-popup__close-icon--bottom-right{right:16px;bottom:16px}.van-share-sheet__header{padding:12px 16px 4px;text-align:center}.van-share-sheet__title{margin-top:8px;color:#323233;font-weight:400;font-size:14px;line-height:20px}.van-share-sheet__description{display:block;margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-share-sheet__options{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;padding:16px 0 16px 8px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.van-share-sheet__options--border::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:0;right:0;left:16px;border-top:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-share-sheet__options::-webkit-scrollbar{height:0}.van-share-sheet__option{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.van-share-sheet__option:active{opacity:.7}.van-share-sheet__icon{width:48px;height:48px;margin:0 16px}.van-share-sheet__name{margin-top:8px;padding:0 4px;color:#646566;font-size:12px}.van-share-sheet__option-description{padding:0 4px;color:#c8c9cc;font-size:12px}.van-share-sheet__cancel{display:block;width:100%;padding:0;font-size:16px;line-height:48px;text-align:center;background:#fff;border:none;cursor:pointer}.van-share-sheet__cancel::before{display:block;height:8px;background-color:#f7f8fa;content:' '}.van-share-sheet__cancel:active{background-color:#f2f3f5}.van-notify{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:8px 16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word}.van-notify--primary{background-color:#1989fa}.van-notify--success{background-color:#07c160}.van-notify--danger{background-color:#ee0a24}.van-notify--warning{background-color:#ff976a}.van-dropdown-item{position:fixed;right:0;left:0;z-index:10;overflow:hidden}.van-dropdown-item__icon{display:block;line-height:inherit}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active{color:#1989fa}.van-dropdown-item__option--active .van-dropdown-item__icon{color:#1989fa}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__content{position:absolute;max-height:80%}.van-loading{position:relative;color:#c8c9cc;font-size:0;vertical-align:middle}.van-loading__spinner{position:relative;display:inline-block;width:30px;max-width:100%;height:30px;max-height:100%;vertical-align:middle;-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--spinner i{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__spinner--spinner i::before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:' '}.van-loading__spinner--circular{-webkit-animation-duration:2s;animation-duration:2s}.van-loading__circular{display:block;width:100%;height:100%}.van-loading__circular circle{-webkit-animation:van-circular 1.5s ease-in-out infinite;animation:van-circular 1.5s ease-in-out infinite;stroke:currentColor;stroke-width:3;stroke-linecap:round}.van-loading__text{display:inline-block;margin-left:8px;color:#969799;font-size:14px;vertical-align:middle}.van-loading--vertical{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-loading--vertical .van-loading__text{margin:8px 0 0}@-webkit-keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}100%{stroke-dasharray:90,150;stroke-dashoffset:-120}}@keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}100%{stroke-dasharray:90,150;stroke-dashoffset:-120}}.van-loading__spinner--spinner i:nth-of-type(1){-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__spinner--spinner i:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__spinner--spinner i:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__spinner--spinner i:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__spinner--spinner i:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__spinner--spinner i:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__spinner--spinner i:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__spinner--spinner i:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__spinner--spinner i:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__spinner--spinner i:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__spinner--spinner i:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__spinner--spinner i:nth-of-type(12){-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:.3125}.van-pull-refresh{overflow:hidden;-webkit-user-select:none;user-select:none}.van-pull-refresh__track{position:relative;height:100%;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-pull-refresh__head{position:absolute;left:0;width:100%;height:50px;overflow:hidden;color:#969799;font-size:14px;line-height:50px;text-align:center;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.van-number-keyboard{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#f2f3f5;-webkit-user-select:none;user-select:none}.van-number-keyboard--with-title{border-radius:20px 20px 0 0}.van-number-keyboard__header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:content-box;height:30px;padding-top:6px;color:#646566;font-size:14px}.van-number-keyboard__title{display:inline-block;font-weight:400}.van-number-keyboard__title-left{position:absolute;left:0}.van-number-keyboard__body{display:-webkit-box;display:-webkit-flex;display:flex;padding:6px 0 0 6px}.van-number-keyboard__keys{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:3;-webkit-flex:3;flex:3;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-number-keyboard__close{position:absolute;right:0;height:100%;padding:0 16px;color:#576b95;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-number-keyboard__close:active{opacity:.7}.van-number-keyboard__sidebar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-number-keyboard--unfit{padding-bottom:0}.van-key{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:56px;font-size:28px;line-height:1.5;background-color:#fff;border-radius:8px;cursor:pointer}.van-key--large{height:100%}.van-key--blue,.van-key--delete{font-size:16px}.van-key--active{background-color:#ebedf0}.van-key--blue{color:#fff;background-color:#1989fa}.van-key--blue.van-key--active{background-color:#0570db}.van-key__wrapper{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-flex-basis:33%;flex-basis:33%;box-sizing:border-box;padding:0 6px 6px 0}.van-key__wrapper--wider{-webkit-flex-basis:66%;flex-basis:66%}.van-key__delete-icon{width:32px;height:22px}.van-key__collapse-icon{width:30px;height:24px}.van-key__loading-icon{color:#fff}.van-list__error-text,.van-list__finished-text,.van-list__loading{color:#969799;font-size:14px;line-height:50px;text-align:center}.van-list__placeholder{height:0;pointer-events:none}.van-switch{position:relative;display:inline-block;box-sizing:content-box;width:2em;height:1em;font-size:30px;background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:1em;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.van-switch__node{position:absolute;top:0;left:0;z-index:1;width:1em;height:1em;background-color:#fff;border-radius:100%;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05);-webkit-transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05),-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05)}.van-switch__loading{top:25%;left:25%;width:50%;height:50%;line-height:1}.van-switch--on{background-color:#1989fa}.van-switch--on .van-switch__node{-webkit-transform:translateX(1em);transform:translateX(1em)}.van-switch--on .van-switch__loading{color:#1989fa}.van-switch--disabled{cursor:not-allowed;opacity:.5}.van-switch--loading{cursor:default}.van-switch-cell{padding-top:9px;padding-bottom:9px}.van-switch-cell--large{padding-top:11px;padding-bottom:11px}.van-switch-cell .van-switch{float:right}.van-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:1.2;text-align:center;border-radius:2px;cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-appearance:none}.van-button::before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:' '}.van-button:active::before{opacity:.1}.van-button--disabled::before,.van-button--loading::before{display:none}.van-button--default{color:#323233;background-color:#fff;border:1px solid #ebedf0}.van-button--primary{color:#fff;background-color:#07c160;border:1px solid #07c160}.van-button--info{color:#fff;background-color:#1989fa;border:1px solid #1989fa}.van-button--danger{color:#fff;background-color:#ee0a24;border:1px solid #ee0a24}.van-button--warning{color:#fff;background-color:#ff976a;border:1px solid #ff976a}.van-button--plain{background-color:#fff}.van-button--plain.van-button--primary{color:#07c160}.van-button--plain.van-button--info{color:#1989fa}.van-button--plain.van-button--danger{color:#ee0a24}.van-button--plain.van-button--warning{color:#ff976a}.van-button--large{width:100%;height:50px}.van-button--normal{padding:0 15px;font-size:14px}.van-button--small{height:32px;padding:0 8px;font-size:12px}.van-button__loading{color:inherit;font-size:inherit}.van-button--mini{height:24px;padding:0 4px;font-size:10px}.van-button--mini+.van-button--mini{margin-left:4px}.van-button--block{display:block;width:100%}.van-button--disabled{cursor:not-allowed;opacity:.5}.van-button--loading{cursor:default}.van-button--round{border-radius:999px}.van-button--square{border-radius:0}.van-button__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%}.van-button__icon{min-width:1em;font-size:1.2em;line-height:inherit}.van-button__icon+.van-button__text,.van-button__loading+.van-button__text{margin-left:5px}.van-button--hairline{border-width:0}.van-button--hairline::after{border-color:inherit;border-radius:4px}.van-button--hairline.van-button--round::after{border-radius:999px}.van-button--hairline.van-button--square::after{border-radius:0}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff;-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:8px 12px;color:#f56723;font-size:12px;line-height:1.5;background-color:#fff7cc}.van-submit-bar__tip-icon{min-width:18px;font-size:12px;vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;height:50px;padding:0 16px;font-size:14px}.van-submit-bar__text{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-right:12px;color:#323233;text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:5px;font-weight:500}.van-submit-bar__price{color:#ee0a24;font-weight:500;font-size:12px}.van-submit-bar__price--integer{font-size:20px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-submit-bar__button{width:110px;height:40px;font-weight:500;border:none}.van-submit-bar__button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}.van-submit-bar--unfit{padding-bottom:0}.van-goods-action-button{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;font-weight:500;font-size:14px;border:none}.van-goods-action-button--first{margin-left:5px;border-top-left-radius:999px;border-bottom-left-radius:999px}.van-goods-action-button--last{margin-right:5px;border-top-right-radius:999px;border-bottom-right-radius:999px}.van-goods-action-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(to right,#ffd01e,#ff8917)}.van-goods-action-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}@media (max-width:321px){.van-goods-action-button{font-size:13px}}.van-dialog{position:fixed;top:45%;left:50%;width:320px;overflow:hidden;font-size:16px;background-color:#fff;border-radius:16px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:.3s;transition:.3s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}@media (max-width:321px){.van-dialog{width:90%}}.van-dialog__header{padding-top:24px;font-weight:500;line-height:24px;text-align:center}.van-dialog__header--isolated{padding:24px 0}.van-dialog__message{max-height:60vh;padding:24px;overflow-y:auto;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:12px;color:#646566}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__footer{overflow:hidden;-webkit-user-select:none;user-select:none}.van-dialog__footer--buttons{display:-webkit-box;display:-webkit-flex;display:flex}.van-dialog__footer--buttons .van-button{-webkit-box-flex:1;-webkit-flex:1;flex:1}.van-dialog .van-button{border:0}.van-dialog__confirm,.van-dialog__confirm:active{color:#1989fa}.van-dialog-bounce-enter{-webkit-transform:translate3d(-50%,-50%,0) scale(.7);transform:translate3d(-50%,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9);opacity:0}.van-contact-edit{padding:16px}.van-contact-edit__fields{overflow:hidden;border-radius:4px}.van-contact-edit__fields .van-field__label{width:4em}.van-contact-edit__switch-cell{margin-top:10px;padding-top:9px;padding-bottom:9px;border-radius:4px}.van-contact-edit__buttons{padding:32px 0}.van-contact-edit .van-button{margin-bottom:12px;font-size:16px}.van-toast{position:fixed;top:50%;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:content-box;width:88px;max-width:70%;min-height:88px;padding:16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word;background-color:rgba(50,50,51,.88);border-radius:8px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-toast--unclickable{overflow:hidden}.van-toast--unclickable *{pointer-events:none}.van-toast--html,.van-toast--text{width:-webkit-fit-content;width:fit-content;min-width:96px;min-height:0;padding:8px 12px}.van-toast--html .van-toast__text,.van-toast--text .van-toast__text{margin-top:0}.van-toast--top{top:50px}.van-toast--bottom{top:auto;bottom:50px}.van-toast__icon{font-size:40px}.van-toast__loading{padding:4px;color:#fff}.van-toast__text{margin-top:8px}.van-calendar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;height:100%;background-color:#fff}.van-calendar__popup.van-popup--bottom,.van-calendar__popup.van-popup--top{height:80%}.van-calendar__popup.van-popup--left,.van-calendar__popup.van-popup--right{height:100%}.van-calendar__popup .van-popup__close-icon{top:11px}.van-calendar__header{-webkit-flex-shrink:0;flex-shrink:0;box-shadow:0 2px 10px rgba(125,126,128,.16)}.van-calendar__header-subtitle,.van-calendar__header-title,.van-calendar__month-title{height:44px;font-weight:500;line-height:44px;text-align:center}.van-calendar__header-title{font-size:16px}.van-calendar__header-subtitle{font-size:14px}.van-calendar__month-title{font-size:14px}.van-calendar__weekdays{display:-webkit-box;display:-webkit-flex;display:flex}.van-calendar__weekday{-webkit-box-flex:1;-webkit-flex:1;flex:1;font-size:12px;line-height:30px;text-align:center}.van-calendar__body{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.van-calendar__days{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;color:rgba(242,243,245,.8);font-size:160px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:none}.van-calendar__day,.van-calendar__selected-day{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:64px;font-size:16px;cursor:pointer}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{color:#fff;background-color:#ee0a24}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:#ee0a24}.van-calendar__day--middle::after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;opacity:.1;content:''}.van-calendar__day--disabled{color:#c8c9cc;cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{position:absolute;right:0;left:0;font-size:10px;line-height:14px}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{width:54px;height:54px;color:#fff;background-color:#ee0a24;border-radius:4px}.van-calendar__footer{-webkit-flex-shrink:0;flex-shrink:0;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer--unfit{padding-bottom:0}.van-calendar__confirm{height:36px;margin:7px 0}.van-picker{position:relative;background-color:#fff;-webkit-user-select:none;user-select:none}.van-picker__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;height:44px}.van-picker__cancel,.van-picker__confirm{height:100%;padding:0 16px;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-picker__cancel:active,.van-picker__confirm:active{opacity:.7}.van-picker__confirm{color:#576b95}.van-picker__cancel{color:#969799}.van-picker__title{max-width:50%;font-weight:500;font-size:16px;line-height:20px;text-align:center}.van-picker__columns{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;cursor:grab}.van-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#1989fa;background-color:rgba(255,255,255,.9)}.van-picker__frame{position:absolute;top:50%;right:16px;left:16px;z-index:3;-webkit-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none}.van-picker__mask{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-image:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-repeat:no-repeat;background-position:top,bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none}.van-picker-column{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:hidden;font-size:16px}.van-picker-column__wrapper{-webkit-transition-timing-function:cubic-bezier(.23,1,.68,1);transition-timing-function:cubic-bezier(.23,1,.68,1)}.van-picker-column__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding:0 4px;color:#000}.van-picker-column__item--disabled{cursor:not-allowed;opacity:.3}.van-address-edit{padding:12px}.van-address-edit__fields{overflow:hidden;border-radius:8px}.van-address-edit__fields .van-field__label{width:4em}.van-address-edit__default{margin-top:12px;overflow:hidden;border-radius:8px}.van-address-edit__buttons{padding:32px 4px}.van-address-edit__buttons .van-button{margin-bottom:12px}.van-address-edit-detail{padding:0}.van-address-edit-detail__search-item{background-color:#f2f3f5}.van-address-edit-detail__keyword{color:#ee0a24}.van-address-edit-detail__finish{color:#1989fa;font-size:12px}.van-action-sheet{max-height:80%;color:#323233}.van-action-sheet__cancel,.van-action-sheet__item{display:block;width:100%;padding:14px 16px;font-size:16px;background-color:#fff;border:none;cursor:pointer}.van-action-sheet__cancel:active,.van-action-sheet__item:active{background-color:#f2f3f5}.van-action-sheet__item{line-height:22px}.van-action-sheet__item--disabled,.van-action-sheet__item--loading{color:#c8c9cc}.van-action-sheet__item--disabled:active,.van-action-sheet__item--loading:active{background-color:#fff}.van-action-sheet__item--disabled{cursor:not-allowed}.van-action-sheet__item--loading{cursor:default}.van-action-sheet__subname{margin-top:8px;color:#969799;font-size:12px;line-height:20px}.van-action-sheet__gap{display:block;height:8px;background-color:#f7f8fa}.van-action-sheet__header{font-weight:500;font-size:16px;line-height:44px;text-align:center}.van-action-sheet__description{position:relative;padding:20px 16px;color:#969799;font-size:14px;line-height:20px;text-align:center}.van-action-sheet__description::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-action-sheet__close{position:absolute;top:0;right:0;padding:0 16px;color:#c8c9cc;font-size:22px;line-height:inherit}.van-action-sheet__close:active{color:#969799}.van-radio-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-contact-list{box-sizing:border-box;height:100%;padding-bottom:50px}.van-contact-list__item{padding:16px}.van-contact-list__item-value{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding-right:32px;padding-left:8px}.van-contact-list__item-tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-contact-list__group{box-sizing:border-box;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-contact-list__edit{font-size:16px}.van-contact-list__bottom{position:fixed;right:0;bottom:0;left:0;z-index:999;padding:5px 16px;background-color:#fff}.van-contact-list__add{height:40px;line-height:38px}.van-address-list{box-sizing:border-box;height:100%;padding:12px 12px 100px}.van-address-list__bottom{position:fixed;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-address-list__add{height:40px;margin:5px 0;line-height:38px}.van-address-list__disabled-text{padding:20px 0 16px;color:#969799;font-size:14px;line-height:20px}.van-address-item{padding:12px;background-color:#fff;border-radius:8px}.van-address-item:not(:last-child){margin-bottom:12px}.van-address-item__value{padding-right:44px}.van-address-item__name{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-bottom:8px;font-size:16px;line-height:22px}.van-address-item__tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-address-item__address{color:#323233;font-size:13px;line-height:18px}.van-address-item--disabled .van-address-item__address,.van-address-item--disabled .van-address-item__name{color:#c8c9cc}.van-address-item__edit{position:absolute;top:50%;right:16px;color:#969799;font-size:20px;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.van-address-item .van-cell{padding:0}.van-address-item .van-radio__label{margin-left:12px}.van-address-item .van-radio__icon--checked .van-icon{background-color:#ee0a24;border-color:#ee0a24}.van-cell-group{background-color:#fff}.van-cell-group__title{padding:16px 16px 8px;color:#969799;font-size:14px;line-height:16px}.van-panel{background:#fff}.van-panel__header-value{color:#ee0a24}.van-panel__footer{padding:8px 16px}.van-checkbox-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-circle{position:relative;display:inline-block;text-align:center}.van-circle svg{position:absolute;top:0;left:0;width:100%;height:100%}.van-circle__layer{fill:none;stroke-linecap:round}.van-circle__text{position:absolute;top:50%;left:0;box-sizing:border-box;width:100%;padding:0 4px;color:#323233;font-weight:500;font-size:14px;line-height:18px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-col{float:left;box-sizing:border-box;min-height:1px}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}.van-count-down{color:#323233;font-size:14px;line-height:20px}.van-tab__pane,.van-tab__pane-wrapper{-webkit-flex-shrink:0;flex-shrink:0;box-sizing:border-box;width:100%}.van-tab__pane-wrapper--inactive{height:0;overflow:visible}.van-sticky--fixed{position:fixed;top:0;right:0;left:0;z-index:99}.van-tab{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0 4px;color:#646566;font-size:14px;cursor:pointer}.van-tab--active{color:#323233;font-weight:500}.van-tab--disabled{color:#c8c9cc;cursor:not-allowed}.van-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.van-tab__text-wrapper{position:relative}.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__wrap--scrollable .van-tab{-webkit-box-flex:0;-webkit-flex:0 0 22%;flex:0 0 22%}.van-tabs__wrap--scrollable .van-tab--complete{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.van-tabs__wrap--scrollable .van-tabs__nav{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-tabs__wrap--scrollable .van-tabs__nav::-webkit-scrollbar{display:none}.van-tabs__nav{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;background-color:#fff;-webkit-user-select:none;user-select:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:15px}.van-tabs__nav--card{box-sizing:border-box;height:30px;margin:0 16px;border:1px solid #ee0a24;border-radius:2px}.van-tabs__nav--card .van-tab{color:#ee0a24;border-right:1px solid #ee0a24}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{color:#fff;background-color:#ee0a24}.van-tabs__nav--card .van-tab--disabled{color:#c8c9cc}.van-tabs__line{position:absolute;bottom:15px;left:0;z-index:1;height:3px;background-color:#ee0a24;border-radius:3px}.van-tabs__track{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:44px}.van-tabs--card>.van-tabs__wrap{height:30px}.van-coupon-list{position:relative;height:100%;background-color:#f7f8fa}.van-coupon-list__field{padding:5px 0 5px 16px}.van-coupon-list__field .van-field__body{height:34px;padding-left:12px;line-height:34px;background:#f7f8fa;border-radius:17px}.van-coupon-list__field .van-field__body::-webkit-input-placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__body::placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__clear{margin-right:0}.van-coupon-list__exchange-bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background-color:#fff}.van-coupon-list__exchange{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:32px;font-size:16px;line-height:30px;border:0}.van-coupon-list .van-tabs__wrap{box-shadow:0 6px 12px -12px #969799}.van-coupon-list__list{box-sizing:border-box;padding:16px 0 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-coupon-list__list--with-bottom{padding-bottom:66px}.van-coupon-list__bottom{position:absolute;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:5px 16px;font-weight:500;background-color:#fff}.van-coupon-list__close{height:40px}.van-coupon-list__empty{padding-top:60px;text-align:center}.van-coupon-list__empty p{margin:16px 0;color:#969799;font-size:14px;line-height:20px}.van-coupon-list__empty img{width:200px;height:200px}.van-divider{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:16px 0;color:#969799;font-size:14px;line-height:24px;border-color:#ebedf0;border-style:solid;border-width:0}.van-divider::after,.van-divider::before{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;height:1px;border-color:inherit;border-style:inherit;border-width:1px 0 0}.van-divider::before{content:''}.van-divider--hairline::after,.van-divider--hairline::before{-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--content-center::before,.van-divider--content-left::before,.van-divider--content-right::before{margin-right:16px}.van-divider--content-center::after,.van-divider--content-left::after,.van-divider--content-right::after{margin-left:16px;content:''}.van-divider--content-left::before{max-width:10%}.van-divider--content-right::after{max-width:10%}.van-dropdown-menu{-webkit-user-select:none;user-select:none}.van-dropdown-menu__bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:48px;background-color:#fff;box-shadow:0 2px 12px rgba(100,101,102,.08)}.van-dropdown-menu__bar--opened{z-index:11}.van-dropdown-menu__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:0;cursor:pointer}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:#969799}.van-dropdown-menu__title{position:relative;box-sizing:border-box;max-width:100%;padding:0 8px;color:#323233;font-size:15px;line-height:22px}.van-dropdown-menu__title::after{position:absolute;top:50%;right:-4px;margin-top:-5px;border:3px solid;border-color:transparent transparent #dcdee0 #dcdee0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:.8;content:''}.van-dropdown-menu__title--active{color:#1989fa}.van-dropdown-menu__title--active::after{border-color:transparent transparent currentColor currentColor}.van-dropdown-menu__title--down::after{margin-top:-1px;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:32px 0}.van-empty__image{width:160px;height:160px}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:16px;padding:0 60px;color:#969799;font-size:14px;line-height:20px}.van-empty__bottom{margin-top:24px}.van-goods-action{position:fixed;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:content-box;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-goods-action--unfit{padding-bottom:0}.van-grid{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-swipe{position:relative;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.van-swipe__track{display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.van-swipe__track--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-swipe__indicators{position:absolute;bottom:12px;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.van-swipe__indicators--vertical{top:50%;bottom:auto;left:12px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child){margin-bottom:6px}.van-swipe__indicator{width:6px;height:6px;background-color:#ebedf0;border-radius:100%;opacity:.3;-webkit-transition:opacity .2s;transition:opacity .2s}.van-swipe__indicator:not(:last-child){margin-right:6px}.van-swipe__indicator--active{background-color:#1989fa;opacity:1}.van-swipe-item{position:relative;-webkit-flex-shrink:0;flex-shrink:0;width:100%;height:100%}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%}.van-image-preview__swipe{height:100%}.van-image-preview__swipe-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;overflow:hidden}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image{width:100%;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-image-preview__image--vertical{width:auto;height:100%}.van-image-preview__image img{-webkit-user-drag:none}.van-image-preview__image .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:16px;left:50%;color:#fff;font-size:14px;line-height:22px;text-shadow:0 1px 1px #323233;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.van-image-preview__overlay{background-color:rgba(0,0,0,.9)}.van-image-preview__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-image-preview__close-icon:active{color:#969799}.van-image-preview__close-icon--top-left{top:16px;left:16px}.van-image-preview__close-icon--top-right{top:16px;right:16px}.van-image-preview__close-icon--bottom-left{bottom:16px;left:16px}.van-image-preview__close-icon--bottom-right{right:16px;bottom:16px}.van-uploader{position:relative;display:inline-block}.van-uploader__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-uploader__wrapper--disabled{opacity:.5}.van-uploader__input{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;cursor:pointer;opacity:0}.van-uploader__input-wrapper{position:relative}.van-uploader__input:disabled{cursor:not-allowed}.van-uploader__upload{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;width:80px;height:80px;margin:0 8px 8px 0;background-color:#f7f8fa}.van-uploader__upload:active{background-color:#f2f3f5}.van-uploader__upload-icon{color:#dcdee0;font-size:24px}.van-uploader__upload-text{margin-top:8px;color:#969799;font-size:12px}.van-uploader__preview{position:relative;margin:0 8px 8px 0;cursor:pointer}.van-uploader__preview-image{display:block;width:80px;height:80px;overflow:hidden}.van-uploader__preview-delete{position:absolute;top:0;right:0;width:14px;height:14px;background-color:rgba(0,0,0,.7);border-radius:0 0 0 12px}.van-uploader__preview-delete-icon{position:absolute;top:-2px;right:-2px;color:#fff;font-size:16px;-webkit-transform:scale(.5);transform:scale(.5)}.van-uploader__preview-cover{position:absolute;top:0;right:0;bottom:0;left:0}.van-uploader__mask{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;background-color:rgba(50,50,51,.88)}.van-uploader__mask-icon{font-size:22px}.van-uploader__mask-message{margin-top:6px;padding:0 4px;font-size:12px;line-height:14px}.van-uploader__loading{width:22px;height:22px;color:#fff}.van-uploader__file{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:80px;height:80px;background-color:#f7f8fa}.van-uploader__file-icon{color:#646566;font-size:20px}.van-uploader__file-name{box-sizing:border-box;width:100%;margin-top:8px;padding:0 4px;color:#646566;font-size:12px;text-align:center}.van-index-anchor{z-index:1;box-sizing:border-box;padding:0 16px;color:#323233;font-weight:500;font-size:14px;line-height:32px;background-color:transparent}.van-index-anchor--sticky{position:fixed;top:0;right:0;left:0;color:#07c160;background-color:#fff}.van-index-bar__sidebar{position:fixed;top:50%;right:0;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;-webkit-user-select:none;user-select:none}.van-index-bar__index{padding:0 4px 0 16px;font-weight:500;font-size:10px;line-height:14px}.van-index-bar__index--active{color:#07c160}.van-pagination{display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px}.van-pagination__item,.van-pagination__page-desc{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-pagination__item{-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;min-width:36px;height:40px;color:#1989fa;background-color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.van-pagination__item:active{color:#fff;background-color:#1989fa}.van-pagination__item::after{border-width:1px 0 1px 1px}.van-pagination__item:last-child::after{border-right-width:1px}.van-pagination__item--active{color:#fff;background-color:#1989fa}.van-pagination__next,.van-pagination__prev{padding:0 4px;cursor:pointer}.van-pagination__item--disabled,.van-pagination__item--disabled:active{color:#646566;background-color:#f7f8fa;cursor:not-allowed;opacity:.5}.van-pagination__page{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0}.van-pagination__page-desc{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;color:#646566}.van-pagination--simple .van-pagination__next::after,.van-pagination--simple .van-pagination__prev::after{border-width:1px}.van-password-input{position:relative;margin:0 16px;-webkit-user-select:none;user-select:none}.van-password-input__error-info,.van-password-input__info{margin-top:16px;font-size:14px;text-align:center}.van-password-input__info{color:#969799}.van-password-input__error-info{color:#ee0a24}.van-password-input__security{display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:50px;cursor:pointer}.van-password-input__security::after{border-radius:6px}.van-password-input__security li{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;font-size:20px;line-height:1.2;background-color:#fff}.van-password-input__security i{position:absolute;top:50%;left:50%;width:10px;height:10px;background-color:#000;border-radius:100%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:hidden}.van-password-input__cursor{position:absolute;top:50%;left:50%;width:1px;height:40%;background-color:#323233;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:1s van-cursor-flicker infinite;animation:1s van-cursor-flicker infinite}@-webkit-keyframes van-cursor-flicker{from{opacity:0}50%{opacity:1}100%{opacity:0}}@keyframes van-cursor-flicker{from{opacity:0}50%{opacity:1}100%{opacity:0}}.van-progress{position:relative;height:4px;background:#ebedf0;border-radius:4px}.van-progress__portion{position:absolute;left:0;height:100%;background:#1989fa;border-radius:inherit}.van-progress__pivot{position:absolute;top:50%;box-sizing:border-box;min-width:3.6em;padding:0 5px;color:#fff;font-size:10px;line-height:1.6;text-align:center;word-break:keep-all;background-color:#1989fa;border-radius:1em;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.van-row::after{display:table;clear:both;content:''}.van-row--flex{display:-webkit-box;display:-webkit-flex;display:flex}.van-row--flex::after{display:none}.van-row--justify-center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-row--justify-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.van-row--justify-space-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.van-row--justify-space-around{-webkit-justify-content:space-around;justify-content:space-around}.van-row--align-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-row--align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end}.van-sidebar{width:85px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-tree-select{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px;-webkit-user-select:none;user-select:none}.van-tree-select__nav{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.van-tree-select__nav-item{padding:14px 12px}.van-tree-select__content{-webkit-box-flex:2;-webkit-flex:2;flex:2;overflow-y:auto;background-color:#fff;-webkit-overflow-scrolling:touch}.van-tree-select__item{position:relative;padding:0 32px 0 16px;font-weight:500;line-height:48px;cursor:pointer}.van-tree-select__item--active{color:#ee0a24}.van-tree-select__item--disabled{color:#c8c9cc;cursor:not-allowed}.van-tree-select__selected{position:absolute;top:50%;right:16px;margin-top:-8px;font-size:16px}.van-skeleton{display:-webkit-box;display:-webkit-flex;display:flex;padding:0 16px}.van-skeleton__avatar{-webkit-flex-shrink:0;flex-shrink:0;margin-right:16px;background-color:#f2f3f5}.van-skeleton__avatar--round{border-radius:999px}.van-skeleton__content{width:100%}.van-skeleton__avatar+.van-skeleton__content{padding-top:8px}.van-skeleton__row,.van-skeleton__title{height:16px;background-color:#f2f3f5}.van-skeleton__title{margin:0}.van-skeleton__row:not(:first-child){margin-top:12px}.van-skeleton__title+.van-skeleton__row{margin-top:20px}.van-skeleton--animate{-webkit-animation:van-skeleton-blink 1.2s ease-in-out infinite;animation:van-skeleton-blink 1.2s ease-in-out infinite}.van-skeleton--round .van-skeleton__row,.van-skeleton--round .van-skeleton__title{border-radius:999px}@-webkit-keyframes van-skeleton-blink{50%{opacity:.6}}@keyframes van-skeleton-blink{50%{opacity:.6}}.van-stepper{font-size:0;-webkit-user-select:none;user-select:none}.van-stepper__minus,.van-stepper__plus{position:relative;box-sizing:border-box;width:28px;height:28px;margin:0;padding:0;color:#323233;vertical-align:middle;background-color:#f2f3f5;border:0;cursor:pointer}.van-stepper__minus::before,.van-stepper__plus::before{width:50%;height:1px}.van-stepper__minus::after,.van-stepper__plus::after{width:1px;height:50%}.van-stepper__minus::after,.van-stepper__minus::before,.van-stepper__plus::after,.van-stepper__plus::before{position:absolute;top:50%;left:50%;background-color:currentColor;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);content:''}.van-stepper__minus:active,.van-stepper__plus:active{background-color:#e8e8e8}.van-stepper__minus--disabled,.van-stepper__plus--disabled{color:#c8c9cc;background-color:#f7f8fa;cursor:not-allowed}.van-stepper__minus--disabled:active,.van-stepper__plus--disabled:active{background-color:#f7f8fa}.van-stepper__minus{border-radius:4px 0 0 4px}.van-stepper__minus::after{display:none}.van-stepper__plus{border-radius:0 4px 4px 0}.van-stepper__input{box-sizing:border-box;width:32px;height:28px;margin:0 2px;padding:0;color:#323233;font-size:14px;line-height:normal;text-align:center;vertical-align:middle;background-color:#f2f3f5;border:0;border-width:1px 0;border-radius:0;-webkit-appearance:none}.van-stepper__input:disabled{color:#c8c9cc;background-color:#f2f3f5;-webkit-text-fill-color:currentColor;opacity:1}.van-stepper__input:read-only{cursor:default}.van-stepper--round .van-stepper__input{background-color:transparent}.van-stepper--round .van-stepper__minus,.van-stepper--round .van-stepper__plus{border-radius:100%}.van-stepper--round .van-stepper__minus:active,.van-stepper--round .van-stepper__plus:active{opacity:.7}.van-stepper--round .van-stepper__minus--disabled,.van-stepper--round .van-stepper__minus--disabled:active,.van-stepper--round .van-stepper__plus--disabled,.van-stepper--round .van-stepper__plus--disabled:active{opacity:.3}.van-stepper--round .van-stepper__plus{color:#fff;background-color:#ee0a24}.van-stepper--round .van-stepper__minus{color:#ee0a24;background-color:#fff;border:1px solid #ee0a24}.van-sku-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;min-height:50%;max-height:80%;overflow-y:visible;font-size:14px;background:#fff}.van-sku-body{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;min-height:44px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-sku-body::-webkit-scrollbar{display:none}.van-sku-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;margin:0 16px}.van-sku-header__img-wrap{width:96px;height:96px;margin:12px 12px 12px 0;overflow:hidden;border-radius:4px}.van-sku-header__goods-info{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;padding:12px 20px 12px 0}.van-sku-header-item{margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-sku__price-symbol{font-size:16px;vertical-align:bottom}.van-sku__price-num{font-weight:500;font-size:22px;vertical-align:bottom;word-wrap:break-word}.van-sku__goods-price{color:#ee0a24}.van-sku__price-tag{position:relative;display:inline-block;margin-left:8px;padding:0 5px;overflow:hidden;color:#ee0a24;font-size:12px;line-height:16px;border-radius:8px}.van-sku__price-tag::before{position:absolute;top:0;left:0;width:100%;height:100%;background:currentColor;opacity:.1;content:''}.van-sku-group-container{padding-top:12px}.van-sku-group-container--hide-soldout .van-sku-row__item--disabled{display:none}.van-sku-row{margin:0 16px 12px}.van-sku-row:last-child{margin-bottom:0}.van-sku-row__image-item,.van-sku-row__item{position:relative;overflow:hidden;color:#323233;border-radius:4px;cursor:pointer}.van-sku-row__image-item::before,.van-sku-row__item::before{position:absolute;top:0;left:0;width:100%;height:100%;background:#f7f8fa;content:''}.van-sku-row__image-item--active,.van-sku-row__item--active{color:#ee0a24}.van-sku-row__image-item--active::before,.van-sku-row__item--active::before{background:currentColor;opacity:.1}.van-sku-row__item{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:40px;margin:0 12px 12px 0;font-size:13px;line-height:16px;vertical-align:middle}.van-sku-row__item-img{z-index:1;width:24px;height:24px;margin:4px 0 4px 4px;object-fit:cover;border-radius:2px}.van-sku-row__item-name{z-index:1;padding:8px}.van-sku-row__item--disabled{color:#c8c9cc;background:#f2f3f5;cursor:not-allowed}.van-sku-row__item--disabled .van-sku-row__item-img{opacity:.3}.van-sku-row__image{margin-right:0}.van-sku-row__image-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;width:110px;margin:0 4px 4px 0;border:1px solid transparent}.van-sku-row__image-item:last-child{margin-right:0}.van-sku-row__image-item-img{width:100%;height:110px}.van-sku-row__image-item-img-icon{position:absolute;top:0;right:0;z-index:3;width:18px;height:18px}.van-sku-row__image-item-name{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;height:40px;padding:4px;font-size:12px;line-height:16px}.van-sku-row__image-item-name span{word-wrap:break-word}.van-sku-row__image-item--active{border-color:currentColor}.van-sku-row__image-item--disabled{color:#c8c9cc;cursor:not-allowed}.van-sku-row__image-item--disabled::before{z-index:2;background:#f2f3f5;opacity:.4}.van-sku-row__title{padding-bottom:12px}.van-sku-row__title-multiple{color:#969799}.van-sku-row__scroller{margin:0 -16px;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-sku-row__scroller::-webkit-scrollbar{display:none}.van-sku-row__row{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;margin-bottom:4px;padding:0 16px}.van-sku-row__indicator{width:40px;height:4px;background:#ebedf0;border-radius:2px}.van-sku-row__indicator-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding-bottom:16px}.van-sku-row__indicator-slider{width:50%;height:100%;background-color:#ee0a24;border-radius:2px}.van-sku-stepper-stock{padding:12px 16px;overflow:hidden;line-height:30px}.van-sku__stepper{float:right;padding-left:4px}.van-sku__stepper-title{float:left}.van-sku__stepper-quota{float:right;color:#ee0a24;font-size:12px}.van-sku__stock{display:inline-block;margin-right:8px;color:#969799;font-size:12px}.van-sku__stock-num--highlight{color:#ee0a24}.van-sku-messages{padding-bottom:32px}.van-sku-messages__image-cell .van-cell__title{max-width:6.2em;margin-right:12px;color:#646566;text-align:left;word-wrap:break-word}.van-sku-messages__image-cell .van-cell__value{overflow:visible;text-align:left}.van-sku-messages__image-cell-label{color:#969799;font-size:12px;line-height:18px}.van-sku-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;padding:8px 16px}.van-sku-actions .van-button{height:40px;font-weight:500;font-size:14px;border:none;border-radius:0}.van-sku-actions .van-button:first-of-type{border-top-left-radius:20px;border-bottom-left-radius:20px}.van-sku-actions .van-button:last-of-type{border-top-right-radius:20px;border-bottom-right-radius:20px}.van-sku-actions .van-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(to right,#ffd01e,#ff8917)}.van-sku-actions .van-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}.van-slider{position:relative;width:100%;height:2px;background-color:#ebedf0;border-radius:999px;cursor:pointer}.van-slider::before{position:absolute;top:-8px;right:0;bottom:-8px;left:0;content:''}.van-slider__bar{position:relative;width:100%;height:100%;background-color:#1989fa;border-radius:inherit;-webkit-transition:width .2s,height .2s;transition:width .2s,height .2s}.van-slider__button{width:24px;height:24px;background-color:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.5)}.van-slider__button-wrapper{position:absolute;top:50%;right:0;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0);cursor:grab}.van-slider--disabled{cursor:not-allowed;opacity:.5}.van-slider--disabled .van-slider__button-wrapper{cursor:not-allowed}.van-slider--vertical{display:inline-block;width:2px;height:100%}.van-slider--vertical .van-slider__button-wrapper{top:auto;right:50%;bottom:0;-webkit-transform:translate3d(50%,50%,0);transform:translate3d(50%,50%,0)}.van-slider--vertical::before{top:0;right:-8px;bottom:0;left:-8px}.van-steps{overflow:hidden;background-color:#fff}.van-steps--horizontal{padding:10px 10px 0}.van-steps--horizontal .van-steps__items{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;margin:0 0 10px;padding-bottom:22px}.van-steps--vertical{padding:0 0 0 32px}.van-swipe-cell{position:relative;overflow:hidden;cursor:grab}.van-swipe-cell__wrapper{-webkit-transition-timing-function:cubic-bezier(.18,.89,.32,1);transition-timing-function:cubic-bezier(.18,.89,.32,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.van-tabbar{z-index:1;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:content-box;width:100%;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--unfit{padding-bottom:0}
\ No newline at end of file
diff --git a/public/image/icon/cog.png b/public/image/icon/cog.png
deleted file mode 100644
index 648587e..0000000
Binary files a/public/image/icon/cog.png and /dev/null differ
diff --git a/public/image/icon/ding-talk.png b/public/image/icon/ding-talk.png
deleted file mode 100644
index 35d25d1..0000000
Binary files a/public/image/icon/ding-talk.png and /dev/null differ
diff --git a/public/image/icon/email.png b/public/image/icon/email.png
deleted file mode 100644
index 7348aed..0000000
Binary files a/public/image/icon/email.png and /dev/null differ
diff --git a/public/image/icon/excel.png b/public/image/icon/excel.png
deleted file mode 100644
index 3f47759..0000000
Binary files a/public/image/icon/excel.png and /dev/null differ
diff --git a/public/image/icon/feishu.png b/public/image/icon/feishu.png
deleted file mode 100644
index 411df23..0000000
Binary files a/public/image/icon/feishu.png and /dev/null differ
diff --git a/public/image/icon/page-db.png b/public/image/icon/page-db.png
deleted file mode 100644
index 44b3fd7..0000000
Binary files a/public/image/icon/page-db.png and /dev/null differ
diff --git a/public/image/icon/page-get.png b/public/image/icon/page-get.png
deleted file mode 100644
index 7c6ed41..0000000
Binary files a/public/image/icon/page-get.png and /dev/null differ
diff --git a/public/image/icon/page-key.png b/public/image/icon/page-key.png
deleted file mode 100644
index 06ffd1f..0000000
Binary files a/public/image/icon/page-key.png and /dev/null differ
diff --git a/public/image/icon/page-lightning.png b/public/image/icon/page-lightning.png
deleted file mode 100644
index c4974a1..0000000
Binary files a/public/image/icon/page-lightning.png and /dev/null differ
diff --git a/public/image/icon/phone.png b/public/image/icon/phone.png
deleted file mode 100644
index 701a60a..0000000
Binary files a/public/image/icon/phone.png and /dev/null differ
diff --git a/public/image/icon/telegram.png b/public/image/icon/telegram.png
deleted file mode 100644
index 0971f69..0000000
Binary files a/public/image/icon/telegram.png and /dev/null differ
diff --git a/public/image/icon/user.png b/public/image/icon/user.png
deleted file mode 100644
index e460307..0000000
Binary files a/public/image/icon/user.png and /dev/null differ
diff --git a/public/image/icon/work-wechat.png b/public/image/icon/work-wechat.png
deleted file mode 100644
index 5c15b54..0000000
Binary files a/public/image/icon/work-wechat.png and /dev/null differ
diff --git a/public/image/logo-mobile.png b/public/image/logo-mobile.png
deleted file mode 100644
index 6877f7c..0000000
Binary files a/public/image/logo-mobile.png and /dev/null differ
diff --git a/public/js/axios.min.js b/public/js/axios.min.js
deleted file mode 100644
index b87c0e3..0000000
--- a/public/js/axios.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* axios v0.19.2 | (c) 2020 by Matt Zabriskie */
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new s(e),n=i(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var o=n(2),i=n(3),s=n(4),a=n(22),u=n(10),c=r(u);c.Axios=s,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===j.call(e)}function o(e){return"undefined"==typeof e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function s(e){return"[object ArrayBuffer]"===j.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===j.call(e)}function l(e){return"[object File]"===j.call(e)}function h(e){return"[object Blob]"===j.call(e)}function m(e){return"[object Function]"===j.call(e)}function y(e){return p(e)&&m(e.pipe)}function g(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function v(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function w(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n
=200&&e<300}};u.headers={common:{accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){u.headers[e]={}}),i.forEach(["post","put","patch"],function(e){u.headers[e]=i.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(5),s=n(16),a=n(19),u=n(20),c=n(14);e.exports=function(e){return new Promise(function(t,f){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var y=s(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in l?a(l.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:r,status:l.status,statusText:l.statusText,headers:n,config:e,request:l};o(t,f,i),l=null}},l.onabort=function(){l&&(f(c("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){f(c("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=n(21),v=(e.withCredentials||u(y))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),f(e),l=null)}),void 0===p&&(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(17),o=n(18);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,function(e){"undefined"!=typeof t[e]&&(n[e]=t[e])}),r.forEach(i,function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!=typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!=typeof e[o]&&(n[o]=e[o])}),r.forEach(s,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])});var a=o.concat(i).concat(s),u=Object.keys(t).filter(function(e){return a.indexOf(e)===-1});return r.forEach(u,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])}),n}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])});
-//# sourceMappingURL=axios.min.map
\ No newline at end of file
diff --git a/public/js/extjs/locale-zh_CN.js b/public/js/extjs/locale-zh_CN.js
index c8ac702..1fe6333 100644
--- a/public/js/extjs/locale-zh_CN.js
+++ b/public/js/extjs/locale-zh_CN.js
@@ -1 +1 @@
-Ext.onReady(function(){var a;if(Ext.Date){Ext.Date.monthNames=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];Ext.Date.dayNames=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];Ext.Date.formatCodes.a="(this.getHours() < 12 ? '上午' : '下午')";Ext.Date.formatCodes.A="(this.getHours() < 12 ? '上午' : '下午')";a={g:1,c:"if (/(上午)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(上午|下午)",calcAtEnd:true};Ext.Date.parseCodes.a=Ext.Date.parseCodes.A=a}if(Ext.util&&Ext.util.Format){Ext.apply(Ext.util.Format,{thousandSeparator:",",decimalSeparator:".",currencySign:"\u00a5",dateFormat:"y年m月d日"})}});Ext.define("Ext.locale.zh_CN.view.View",{override:"Ext.view.View",emptyText:""});Ext.define("Ext.locale.zh_CN.grid.plugin.DragDrop",{override:"Ext.grid.plugin.DragDrop",dragText:"选择了 {0} 行"});Ext.define("Ext.locale.zh_CN.tab.Tab",{override:"Ext.tab.Tab",closeText:"关闭此标签"});Ext.define("Ext.locale.zh_CN.form.field.Base",{override:"Ext.form.field.Base",invalidText:"输入值非法"});Ext.define("Ext.locale.zh_CN.view.AbstractView",{override:"Ext.view.AbstractView",loadingText:"读取中..."});Ext.define("Ext.locale.zh_CN.picker.Date",{override:"Ext.picker.Date",todayText:"今天",minText:"日期必须大于最小允许日期",maxText:"日期必须小于最大允许日期",disabledDaysText:"",disabledDatesText:"",nextText:"下个月 (Ctrl+Right)",prevText:"上个月 (Ctrl+Left)",monthYearText:"选择一个月 (Control+Up/Down 来改变年份)",todayTip:"{0} (空格键选择)",format:"y年m月d日",ariaTitle:"{0}",ariaTitleDateFormat:"Y\u5e74m\u6708d\u65e5",longDayFormat:"Y\u5e74m\u6708d\u65e5",monthYearFormat:"Y\u5e74m\u6708",getDayInitial:function(a){return a.substr(a.length-1)}});Ext.define("Ext.locale.zh_CN.picker.Month",{override:"Ext.picker.Month",okText:"确定",cancelText:"取消"});Ext.define("Ext.locale.zh_CN.toolbar.Paging",{override:"Ext.PagingToolbar",beforePageText:"第",afterPageText:"页,共 {0} 页",firstText:"第一页",prevText:"上一页",nextText:"下一页",lastText:"最后页",refreshText:"刷新",displayMsg:"显示 {0} - {1}条,共 {2} 条",emptyMsg:"没有数据"});Ext.define("Ext.locale.zh_CN.form.field.Text",{override:"Ext.form.field.Text",minLengthText:"该输入项的最小长度是 {0} 个字符",maxLengthText:"该输入项的最大长度是 {0} 个字符",blankText:"该输入项为必填项",regexText:"",emptyText:null});Ext.define("Ext.locale.zh_CN.form.field.Number",{override:"Ext.form.field.Number",minText:"该输入项的最小值是 {0}",maxText:"该输入项的最大值是 {0}",nanText:"{0} 不是有效数值"});Ext.define("Ext.locale.zh_CN.form.field.Date",{override:"Ext.form.field.Date",disabledDaysText:"禁用",disabledDatesText:"禁用",minText:"该输入项的日期必须在 {0} 之后",maxText:"该输入项的日期必须在 {0} 之前",invalidText:"{0} 是无效的日期 - 必须符合格式: {1}",format:"y年m月d日"});Ext.define("Ext.locale.zh_CN.form.field.ComboBox",{override:"Ext.form.field.ComboBox",valueNotFoundText:undefined},function(){Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig,{loadingText:"读取中..."})});Ext.define("Ext.locale.zh_CN.form.field.VTypes",{override:"Ext.form.field.VTypes",emailText:'该输入项必须是电子邮件地址,格式如: "user@example.com"',urlText:'该输入项必须是URL地址,格式如: "http://www.example.com"',alphaText:"该输入项只能包含半角字母和_",alphanumText:"该输入项只能包含半角字母,数字和_"});Ext.define("Ext.locale.zh_CN.form.field.HtmlEditor",{override:"Ext.form.field.HtmlEditor",createLinkText:"添加超级链接:"},function(){Ext.apply(Ext.form.field.HtmlEditor.prototype,{buttonTips:{bold:{title:"粗体 (Ctrl+B)",text:"将选中的文字设置为粗体",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"斜体 (Ctrl+I)",text:"将选中的文字设置为斜体",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"下划线 (Ctrl+U)",text:"给所选文字加下划线",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"增大字体",text:"增大字号",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"缩小字体",text:"减小字号",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"以不同颜色突出显示文本",text:"使文字看上去像是用荧光笔做了标记一样",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"字体颜色",text:"更改字体颜色",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"左对齐",text:"将文字左对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"居中",text:"将文字居中对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"右对齐",text:"将文字右对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"项目符号",text:"开始创建项目符号列表",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"编号",text:"开始创建编号列表",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"转成超级链接",text:"将所选文本转换成超级链接",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"代码视图",text:"以代码的形式展现文本",cls:Ext.baseCSSPrefix+"html-editor-tip"}}})});Ext.define("Ext.locale.zh_CN.grid.header.Container",{override:"Ext.grid.header.Container",sortAscText:"正序",sortDescText:"倒序",lockText:"锁定列",unlockText:"解除锁定",columnsText:"列"});Ext.define("Ext.locale.zh_CN.grid.PropertyColumnModel",{override:"Ext.grid.PropertyColumnModel",nameText:"名称",valueText:"值",dateFormat:"y年m月d日"});Ext.define("Ext.locale.zh_CN.window.MessageBox",{override:"Ext.window.MessageBox",buttonText:{ok:"确定",cancel:"取消",yes:"是",no:"否"}});Ext.define("Ext.locale.zh_CN.Component",{override:"Ext.Component"});Ext.define("Ext.locale.zh_CN.window.Window",{override:"Ext.window.Window",closeToolText:"关闭"});Ext.define("Ext.locale.zh_CN.panel.Panel",{override:"Ext.panel.Panel",collapseToolText:"收起",expandToolText:"展开"});Ext.define("Ext.locale.zh_CN.grid.filters.Filters",{override:"Ext.grid.filters.Filters",menuFilterText:"过滤"});Ext.define("Ext.grid.feature.Grouping",{override:"Ext.grid.feature.Grouping",expandTip:"点击展开(按Ctrl点击折叠其他分组)",collapseTip:"点击折叠(按Ctrl点击折叠其他分组)",showGroupsText:"显示分组",groupByText:"按此字段分组"});Ext.define("Ext.grid.locking.Lockable",{override:"Ext.grid.locking.Lockable",unlockText:"解锁",lockText:"锁定"}); +Ext.onReady(function(){var a;if(Ext.Date){Ext.Date.monthNames=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];Ext.Date.dayNames=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];Ext.Date.formatCodes.a="(this.getHours() < 12 ? '上午' : '下午')";Ext.Date.formatCodes.A="(this.getHours() < 12 ? '上午' : '下午')";a={g:1,c:"if (/(上午)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(上午|下午)",calcAtEnd:true};Ext.Date.parseCodes.a=Ext.Date.parseCodes.A=a}if(Ext.util&&Ext.util.Format){Ext.apply(Ext.util.Format,{thousandSeparator:",",decimalSeparator:".",currencySign:"\u00a5",dateFormat:"y年m月d日"})}});Ext.define("Ext.locale.zh_CN.view.View",{override:"Ext.view.View",emptyText:""});Ext.define("Ext.locale.zh_CN.grid.plugin.DragDrop",{override:"Ext.grid.plugin.DragDrop",dragText:"选择了 {0} 行"});Ext.define("Ext.locale.zh_CN.tab.Tab",{override:"Ext.tab.Tab",closeText:"关闭此标签"});Ext.define("Ext.locale.zh_CN.form.field.Base",{override:"Ext.form.field.Base",invalidText:"输入值非法"});Ext.define("Ext.locale.zh_CN.view.AbstractView",{override:"Ext.view.AbstractView",loadingText:"读取中..."});Ext.define("Ext.locale.zh_CN.picker.Date",{override:"Ext.picker.Date",todayText:"今天",minText:"日期必须大于最小允许日期",maxText:"日期必须小于最大允许日期",disabledDaysText:"",disabledDatesText:"",nextText:"下个月 (Ctrl+Right)",prevText:"上个月 (Ctrl+Left)",monthYearText:"选择一个月 (Control+Up/Down 来改变年份)",todayTip:"{0} (空格键选择)",format:"y年m月d日",ariaTitle:"{0}",ariaTitleDateFormat:"Y\u5e74m\u6708d\u65e5",longDayFormat:"Y\u5e74m\u6708d\u65e5",monthYearFormat:"Y\u5e74m\u6708",getDayInitial:function(a){return a.substr(a.length-1)}});Ext.define("Ext.locale.zh_CN.picker.Month",{override:"Ext.picker.Month",okText:"确定",cancelText:"取消"});Ext.define("Ext.locale.zh_CN.toolbar.Paging",{override:"Ext.PagingToolbar",beforePageText:"第",afterPageText:"页,共 {0} 页",firstText:"第一页",prevText:"上一页",nextText:"下一页",lastText:"最后页",refreshText:"刷新",displayMsg:"显示 {0} - {1}条,共 {2} 条",emptyMsg:"没有数据"});Ext.define("Ext.locale.zh_CN.form.field.Text",{override:"Ext.form.field.Text",minLengthText:"该输入项的最小长度是 {0} 个字符",maxLengthText:"该输入项的最大长度是 {0} 个字符",blankText:"该输入项为必输项",regexText:"",emptyText:null});Ext.define("Ext.locale.zh_CN.form.field.Number",{override:"Ext.form.field.Number",minText:"该输入项的最小值是 {0}",maxText:"该输入项的最大值是 {0}",nanText:"{0} 不是有效数值"});Ext.define("Ext.locale.zh_CN.form.field.Date",{override:"Ext.form.field.Date",disabledDaysText:"禁用",disabledDatesText:"禁用",minText:"该输入项的日期必须在 {0} 之后",maxText:"该输入项的日期必须在 {0} 之前",invalidText:"{0} 是无效的日期 - 必须符合格式: {1}",format:"y年m月d日"});Ext.define("Ext.locale.zh_CN.form.field.ComboBox",{override:"Ext.form.field.ComboBox",valueNotFoundText:undefined},function(){Ext.apply(Ext.form.field.ComboBox.prototype.defaultListConfig,{loadingText:"读取中..."})});Ext.define("Ext.locale.zh_CN.form.field.VTypes",{override:"Ext.form.field.VTypes",emailText:'该输入项必须是电子邮件地址,格式如: "user@example.com"',urlText:'该输入项必须是URL地址,格式如: "http://www.example.com"',alphaText:"该输入项只能包含半角字母和_",alphanumText:"该输入项只能包含半角字母,数字和_"});Ext.define("Ext.locale.zh_CN.form.field.HtmlEditor",{override:"Ext.form.field.HtmlEditor",createLinkText:"添加超级链接:"},function(){Ext.apply(Ext.form.field.HtmlEditor.prototype,{buttonTips:{bold:{title:"粗体 (Ctrl+B)",text:"将选中的文字设置为粗体",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"斜体 (Ctrl+I)",text:"将选中的文字设置为斜体",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"下划线 (Ctrl+U)",text:"给所选文字加下划线",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"增大字体",text:"增大字号",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"缩小字体",text:"减小字号",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"以不同颜色突出显示文本",text:"使文字看上去像是用荧光笔做了标记一样",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"字体颜色",text:"更改字体颜色",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"左对齐",text:"将文字左对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"居中",text:"将文字居中对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"右对齐",text:"将文字右对齐",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"项目符号",text:"开始创建项目符号列表",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"编号",text:"开始创建编号列表",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"转成超级链接",text:"将所选文本转换成超级链接",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"代码视图",text:"以代码的形式展现文本",cls:Ext.baseCSSPrefix+"html-editor-tip"}}})});Ext.define("Ext.locale.zh_CN.grid.header.Container",{override:"Ext.grid.header.Container",sortAscText:"正序",sortDescText:"倒序",lockText:"锁定列",unlockText:"解除锁定",columnsText:"列"});Ext.define("Ext.locale.zh_CN.grid.PropertyColumnModel",{override:"Ext.grid.PropertyColumnModel",nameText:"名称",valueText:"值",dateFormat:"y年m月d日"});Ext.define("Ext.locale.zh_CN.window.MessageBox",{override:"Ext.window.MessageBox",buttonText:{ok:"确定",cancel:"取消",yes:"是",no:"否"}});Ext.define("Ext.locale.zh_CN.Component",{override:"Ext.Component"});Ext.define("Ext.locale.zh_CN.window.Window",{override:"Ext.window.Window",closeToolText:"关闭"});Ext.define("Ext.locale.zh_CN.panel.Panel",{override:"Ext.panel.Panel",collapseToolText:"收起",expandToolText:"展开"});Ext.define("Ext.locale.zh_CN.grid.filters.Filters",{override:"Ext.grid.filters.Filters",menuFilterText:"过滤"});Ext.define("Ext.grid.feature.Grouping",{override:"Ext.grid.feature.Grouping",expandTip:"点击展开(按Ctrl点击折叠其他分组)",collapseTip:"点击折叠(按Ctrl点击折叠其他分组)",showGroupsText:"显示分组",groupByText:"按此字段分组"});Ext.define("Ext.grid.locking.Lockable",{override:"Ext.grid.locking.Lockable",unlockText:"解锁",lockText:"锁定"}); \ No newline at end of file diff --git a/public/js/extjs/plugin/export.js b/public/js/extjs/plugin/export.js deleted file mode 100644 index 49fd892..0000000 --- a/public/js/extjs/plugin/export.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * 导出数据 - */ -Ext.define('plugin.export', { - extend: 'Ext.Button', - text: '导出数据', - iconCls: 'icon-excel', - onClick: function () { - var data = this.getData(); - this.saveCsv(data); - }, - // 读取数据 - getData: function () { - var header = [], value = []; - var grid = this.up('gridpanel'); - var store = grid.store; - var columns = grid.columns ? grid.columns : grid.columnManager.columns; - Ext.each(store.getData().items, function (record, index) { - var row = []; - if (store.filters && !store.filters.filterFn(record)) { - return true; - } - Ext.each(columns, function (column) { - if (column.hidden || column.xtype === 'widgetcolumn') { - return true; - } - if (index === 0) { - header.push(column.text); - } - var value = record.get(column.dataIndex); - if (column.renderer) { - value = column.renderer(value, {}, record); - } - value = String(value).replace(/\n+|(
)+/ig, ' '); // 去除换行
- value = Ext.util.Format.stripTags(value);
- row.push(`"${value}"`);
- });
- value.push(row.join(','));
- });
- return header.join(',') + '\n' + value.join('\n');
- },
- // 保存 CSV 文件
- saveCsv: function (data) {
- const blob = new Blob([data], {type: 'text/csv'});
- const url = window.URL.createObjectURL(blob)
- const a = document.createElement('a')
- a.href = url;
- a.download = Ext.Date.format(new Date(), 'YmdHis') + '.csv'
- a.click()
- a.remove();
- }
-});
diff --git a/public/js/extjs/plugin/grid.js b/public/js/extjs/plugin/grid.js
index 6bddff7..93c86c7 100644
--- a/public/js/extjs/plugin/grid.js
+++ b/public/js/extjs/plugin/grid.js
@@ -17,14 +17,6 @@ Ext.define('plugin.grid', {
xtype: 'pagingtoolbar',
dock: 'bottom',
displayInfo: true,
- listeners: {
- change: function (obj) {
- var view = obj.up('grid').getView();
- if (typeof(view.scrollTo) == 'function') {
- view.scrollTo(0, 0);
- }
- }
- }
}
]
});
diff --git a/public/js/extjs/plugin/toast.js b/public/js/extjs/plugin/toast.js
index b56e0ae..b554f22 100644
--- a/public/js/extjs/plugin/toast.js
+++ b/public/js/extjs/plugin/toast.js
@@ -11,7 +11,7 @@ Ext.define('plugin.toast', {
this.div.applyStyles({
position: 'fixed',
right: '20px',
- bottom: '48px',
+ bottom: '20px',
width: '300px',
zIndex: 99999,
fontSize: '14px',
diff --git a/public/js/script.js b/public/js/script.js
index cad83c1..c1cf680 100644
--- a/public/js/script.js
+++ b/public/js/script.js
@@ -79,7 +79,7 @@ tool.ajax = function (method, url, params, callback) {
tool.winOpen = function (url, width, height) {
width = width ? width : 1200;
height = height ? height : 800;
- var left = (screen.width - width) / 2;
+ var left = (screen.width - width) / 2 + screenLeft;
var top = (screen.height - height) / 2;
window.open(url, '', 'width=' + width + ', height=' + height + ', left=' + left + ', top=' + top);
}
diff --git a/public/js/vant.min.js b/public/js/vant.min.js
deleted file mode 100644
index 8f69156..0000000
--- a/public/js/vant.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define("vant",["vue"],e):"object"==typeof exports?exports.vant=e(require("vue")):t.vant=e(t.Vue)}("undefined"!=typeof self?self:this,(function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=13)}([function(t,e,i){"use strict";i.d(e,"b",(function(){return r})),i.d(e,"g",(function(){return s})),i.d(e,"h",(function(){return o})),i.d(e,"c",(function(){return a})),i.d(e,"d",(function(){return l})),i.d(e,"e",(function(){return c})),i.d(e,"f",(function(){return u})),i.d(e,"a",(function(){return h}));var n=i(4),r="undefined"!=typeof window,s=i.n(n).a.prototype.$isServer;function o(){}function a(t){return null!=t}function l(t){return"function"==typeof t}function c(t){return null!==t&&"object"==typeof t}function u(t){return c(t)&&l(t.then)&&l(t.catch)}function h(t,e){var i=e.split("."),n=t;return i.forEach((function(t){var e;n=null!=(e=n[t])?e:""})),n}},function(t,e,i){"use strict";function n(){return(n=Object.assign||function(t){for(var e,i=1;i=0?e.ownerDocument.body:l(e)&&d(e)?e:t(p(e))}(t),n="body"===c(i),r=s(i),o=n?[r].concat(r.visualViewport||[],d(i)?i:[]):i,a=e.concat(o);return n?a:a.concat(m(p(o)))}function v(t){return["table","td","th"].indexOf(c(t))>=0}function g(t){if(!l(t)||"fixed"===h(t).position)return null;var e=t.offsetParent;if(e){var i=u(e);if("body"===c(e)&&"static"===h(e).position&&"static"!==h(i).position)return i}return e}function b(t){for(var e=s(t),i=g(t);i&&v(i)&&"static"===h(i).position;)i=g(i);return i&&"body"===c(i)&&"static"===h(i).position?e:i||function(t){for(var e=p(t);l(e)&&["html","body"].indexOf(c(e))<0;){var i=h(e);if("none"!==i.transform||"none"!==i.perspective||i.willChange&&"auto"!==i.willChange)return e;e=e.parentNode}return null}(t)||e}Object.defineProperty(e,"__esModule",{value:!0});var y="top",S="right",k="left",x=[].concat([y,"bottom",S,k],["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),w=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function C(t){var e=new Map,i=new Set,n=[];return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||function t(r){i.add(r.name),[].concat(r.requires||[],r.requiresIfExists||[]).forEach((function(n){if(!i.has(n)){var r=e.get(n);r&&t(r)}})),n.push(r)}(t)})),n}function O(t){return t.split("-")[0]}var T={placement:"bottom",modifiers:[],strategy:"absolute"};function $(){for(var t=arguments.length,e=new Array(t),i=0;i=0?"x":"y"}(s):null;if(null!=c){var u="y"===c?"height":"width";switch(o){case"start":e[c]=Math.floor(e[c])-Math.floor(i[u]/2-n[u]/2);break;case"end":e[c]=Math.floor(e[c])+Math.ceil(i[u]/2-n[u]/2)}}return e}({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,r=i.gpuAcceleration,s=void 0===r||r,o=i.adaptive,a=void 0===o||o,l={placement:O(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=n(n({},e.styles.popper),E(n(n({},l),{},{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a})))),null!=e.modifiersData.arrow&&(e.styles.arrow=n(n({},e.styles.arrow),E(n(n({},l),{},{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1})))),e.attributes.popper=n(n({},e.attributes.popper),{},{"data-popper-placement":e.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},r=e.attributes[t]||{},s=e.elements[t];l(s)&&c(s)&&(n(s.style,i),Object.keys(r).forEach((function(t){var e=r[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return n(e.elements.popper.style,i.popper),e.elements.arrow&&n(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var r=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});l(r)&&c(r)&&(n(r.style,o),Object.keys(s).forEach((function(t){r.removeAttribute(t)})))}))}},requires:["computeStyles"]}]});var P={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,r=t.name,s=i.offset,o=void 0===s?[0,0]:s,a=x.reduce((function(t,i){return t[i]=function(t,e,i){var r=O(t),s=[k,y].indexOf(r)>=0?-1:1,o="function"==typeof i?i(n(n({},e),{},{placement:t})):i,a=o[0],l=o[1];return a=a||0,l=(l||0)*s,[k,S].indexOf(r)>=0?{x:l,y:a}:{x:a,y:l}}(i,e.rects,o),t}),{}),l=a[e.placement],c=l.x,u=l.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=c,e.modifiersData.popperOffsets.y+=u),e.modifiersData[r]=a}};e.createPopper=j,e.offsetModifier=P},function(t,e,i){"use strict";function n(t){return function(e,i){return e&&"string"!=typeof e&&(i=e,e=""),""+(e=e?t+"__"+e:t)+function t(e,i){return i?"string"==typeof i?" "+e+"--"+i:Array.isArray(i)?i.reduce((function(i,n){return i+t(e,n)}),""):Object.keys(i).reduce((function(n,r){return n+(i[r]?t(e,r):"")}),""):""}(e,i)}}i.d(e,"a",(function(){return d}));var r=i(0),s=i(2),o={methods:{slots:function(t,e){void 0===t&&(t="default");var i=this.$slots,n=this.$scopedSlots[t];return n?n(e):i[t]}}};i(4);function a(t){var e=this.name;t.component(e,this),t.component(Object(s.a)("-"+e),this)}function l(t){return{functional:!0,props:t.props,model:t.model,render:function(e,i){return t(e,i.props,function(t){var e=t.scopedSlots||t.data.scopedSlots||{},i=t.slots();return Object.keys(i).forEach((function(t){e[t]||(e[t]=function(){return i[t]})})),e}(i),i)}}}function c(t){return function(e){return Object(r.d)(e)&&(e=l(e)),e.functional||(e.mixins=e.mixins||[],e.mixins.push(o)),e.name=t,e.install=a,e}}var u=i(7);function h(t){var e=Object(s.a)(t)+".";return function(t){for(var i=u.a.messages(),n=Object(r.a)(i,e+t)||Object(r.a)(i,t),s=arguments.length,o=new Array(s>1?s-1:0),a=1;a
- * Released under the MIT License.
- */
- t.exports=function(){"use strict";function t(t){t=t||{};var n=arguments.length,r=0;if(1===n)return t;for(;++r-1?t.splice(i,1):void 0}}function s(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var i=t.getAttribute("data-srcset"),n=[],r=t.parentNode.offsetWidth*e,s=void 0,o=void 0,a=void 0;(i=i.trim().split(",")).map((function(t){t=t.trim(),-1===(s=t.lastIndexOf(" "))?(o=t,a=999998):(o=t.substr(0,s),a=parseInt(t.substr(s+1,t.length-s-2),10)),n.push([a,o])})),n.sort((function(t,e){if(t[0]e[0])return 1;if(t[0]===e[0]){if(-1!==e[1].indexOf(".webp",e[1].length-5))return 1;if(-1!==t[1].indexOf(".webp",t[1].length-5))return-1}return 0}));for(var l="",c=void 0,u=n.length,h=0;h=r){l=c[1];break}return l}}function o(t,e){for(var i=void 0,n=0,r=t.length;n0&&void 0!==arguments[0]?arguments[0]:1;return g&&window.devicePixelRatio||t},w=function(){if(g){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}(),C={on:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];w?t.addEventListener(e,i,{capture:n,passive:!0}):t.addEventListener(e,i,n)},off:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t.removeEventListener(e,i,n)}},O=function(t,e,i){var n=new Image;n.src=t.src,n.onload=function(){e({naturalHeight:n.naturalHeight,naturalWidth:n.naturalWidth,src:n.src})},n.onerror=function(t){i(t)}},T=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},$=function(t){return T(t,"overflow")+T(t,"overflow-y")+T(t,"overflow-x")},B={},I=function(){function t(e){var i=e.el,n=e.src,r=e.error,s=e.loading,o=e.bindType,a=e.$parent,l=e.options,c=e.elRenderer;u(this,t),this.el=i,this.src=n,this.error=r,this.loading=s,this.bindType=o,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=l,this.rect=null,this.$parent=a,this.elRenderer=c,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render("loading",!1)}return h(t,[{key:"initState",value:function(){this.el.dataset.src=this.src,this.state={error:!1,loaded:!1,rendered:!1}}},{key:"record",value:function(t){this.performanceData[t]=Date.now()}},{key:"update",value:function(t){var e=t.src,i=t.loading,n=t.error,r=this.src;this.src=e,this.loading=i,this.error=n,this.filter(),r!==this.src&&(this.attempt=0,this.initState())}},{key:"getRect",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:"checkInView",value:function(){return this.getRect(),this.rect.topthis.options.preLoadTop&&this.rect.left0}},{key:"filter",value:function(){var t=this;(function(t){if(!(t instanceof Object))return[];if(Object.keys)return Object.keys(t);var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);return e})(this.options.filter).map((function(e){t.options.filter[e](t,t.options)}))}},{key:"renderLoading",value:function(t){var e=this;O({src:this.loading},(function(i){e.render("loading",!1),t()}),(function(){t(),e.options.silent||console.warn("VueLazyload log: load failed with loading image("+e.loading+")")}))}},{key:"load",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;return this.attempt>this.options.attempt-1&&this.state.error?(this.options.silent||console.log("VueLazyload log: "+this.src+" tried too more than "+this.options.attempt+" times"),void e()):this.state.loaded||B[this.src]?(this.state.loaded=!0,e(),this.render("loaded",!0)):void this.renderLoading((function(){t.attempt++,t.record("loadStart"),O({src:t.src},(function(i){t.naturalHeight=i.naturalHeight,t.naturalWidth=i.naturalWidth,t.state.loaded=!0,t.state.error=!1,t.record("loadEnd"),t.render("loaded",!1),B[t.src]=1,e()}),(function(e){!t.options.silent&&console.error(e),t.state.error=!0,t.state.loaded=!1,t.render("error",!1)}))}))}},{key:"render",value:function(t,e){this.elRenderer(this,t,e)}},{key:"performance",value:function(){var t="loading",e=0;return this.state.loaded&&(t="loaded",e=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(t="error"),{src:this.src,state:t,time:e}}},{key:"destroy",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),t}(),D="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",E=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],j={rootMargin:"0px",threshold:0},P=function(t){return function(){function e(t){var i=t.preLoad,n=t.error,r=t.throttleWait,s=t.preLoadTop,o=t.dispatchEvent,l=t.loading,c=t.attempt,h=t.silent,d=void 0===h||h,f=t.scale,p=t.listenEvents,m=(t.hasbind,t.filter),v=t.adapter,g=t.observer,b=t.observerOptions;u(this,e),this.version="1.2.3",this.mode=y,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:d,dispatchEvent:!!o,throttleWait:r||200,preLoad:i||1.3,preLoadTop:s||0,error:n||D,loading:l||D,attempt:c||3,scale:f||x(f),ListenEvents:p||E,hasbind:!1,supportWebp:a(),filter:m||{},adapter:v||{},observer:!!g,observerOptions:b||j},this._initEvent(),this.lazyLoadHandler=function(t,e){var i=null,n=0;return function(){if(!i){var r=Date.now()-n,s=this,o=arguments,a=function(){n=Date.now(),i=!1,t.apply(s,o)};r>=e?a():i=setTimeout(a,e)}}}(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?S:y)}return h(e,[{key:"config",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this.options,t)}},{key:"performance",value:function(){var t=[];return this.ListenerQueue.map((function(e){t.push(e.performance())})),t}},{key:"addLazyBox",value:function(t){this.ListenerQueue.push(t),g&&(this._addListenerTarget(window),this._observer&&this._observer.observe(t.el),t.$el&&t.$el.parentNode&&this._addListenerTarget(t.$el.parentNode))}},{key:"add",value:function(e,i,n){var r=this;if(function(t,e){for(var i=!1,n=0,r=t.length;n0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}},N=function(){function t(e){var i=e.lazy;u(this,t),this.lazy=i,i.lazyContainerMananger=this,this._queue=[]}return h(t,[{key:"bind",value:function(t,e,i){var n=new M({el:t,binding:e,vnode:i,lazy:this.lazy});this._queue.push(n)}},{key:"update",value:function(t,e,i){var n=o(this._queue,(function(e){return e.el===t}));n&&n.update({el:t,binding:e,vnode:i})}},{key:"unbind",value:function(t,e,i){var n=o(this._queue,(function(e){return e.el===t}));n&&(n.clear(),r(this._queue,n))}}]),t}(),A={selector:"img"},M=function(){function t(e){var i=e.el,n=e.binding,r=e.vnode,s=e.lazy;u(this,t),this.el=null,this.vnode=r,this.binding=n,this.options={},this.lazy=s,this._queue=[],this.update({el:i,binding:n})}return h(t,[{key:"update",value:function(t){var e=this,i=t.el,n=t.binding;this.el=i,this.options=v({},A,n.value),this.getImgs().forEach((function(t){e.lazy.add(t,v({},e.binding,{value:{src:t.dataset.src,error:t.dataset.error,loading:t.dataset.loading}}),e.vnode)}))}},{key:"getImgs",value:function(){return function(t){for(var e=t.length,i=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{},i=P(t),n=new i(e),r=new N({lazy:n}),s="2"===t.version.split(".")[0];t.prototype.$Lazyload=n,e.lazyComponent&&t.component("lazy-component",L(n)),s?(t.directive("lazy",{bind:n.add.bind(n),update:n.update.bind(n),componentUpdated:n.lazyLoadHandler.bind(n),unbind:n.remove.bind(n)}),t.directive("lazy-container",{bind:r.bind.bind(r),update:r.update.bind(r),unbind:r.unbind.bind(r)})):(t.directive("lazy",{bind:n.lazyLoadHandler.bind(n),update:function(t,e){v(this.vm.$refs,this.vm.$els),n.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){n.remove(this.el)}}),t.directive("lazy-container",{update:function(t,e){r.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){r.unbind(this.el)}}))}}}()},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){"use strict";function n(){return(n=Object.assign||function(t){for(var e=1;e2?i-2:0),r=2;ri&&e>10?"horizontal":i>e&&i>10?"vertical":"")},resetTouchStatus:function(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},bindTouchEvent:function(t){var e=this.onTouchStart,i=this.onTouchMove,n=this.onTouchEnd;b(t,"touchstart",e),b(t,"touchmove",i),n&&(b(t,"touchend",n),b(t,"touchcancel",n))}}};function H(t){var e=void 0===t?{}:t,i=e.ref,n=e.afterPortal;return{props:{getContainer:[String,Function]},watch:{getContainer:"portal"},mounted:function(){this.getContainer&&this.portal()},methods:{portal:function(){var t,e,r=this.getContainer,s=i?this.$refs[i]:this.$el;r?t="string"==typeof(e=r)?document.querySelector(e):e():this.$parent&&(t=this.$parent.$el),t&&t!==s.parentNode&&t.appendChild(s),n&&n.call(this)}}}}var _=0;function W(t){var e="binded_"+_++;function i(){this[e]||(t.call(this,b,!0),this[e]=!0)}function n(){this[e]&&(t.call(this,y,!1),this[e]=!1)}return{mounted:i,activated:i,deactivated:n,beforeDestroy:n}}var q={mixins:[W((function(t,e){this.handlePopstate(e&&this.closeOnPopstate)}))],props:{closeOnPopstate:Boolean},data:function(){return{bindStatus:!1}},watch:{closeOnPopstate:function(t){this.handlePopstate(t)}},methods:{onPopstate:function(){this.close(),this.shouldReopen=!1},handlePopstate:function(t){this.$isServer||this.bindStatus!==t&&(this.bindStatus=t,(t?b:y)(window,"popstate",this.onPopstate))}}},K={transitionAppear:Boolean,value:Boolean,overlay:Boolean,overlayStyle:Object,overlayClass:String,closeOnClickOverlay:Boolean,zIndex:[Number,String],lockScroll:{type:Boolean,default:!0},lazyRender:{type:Boolean,default:!0}};function U(t){return void 0===t&&(t={}),{mixins:[R,q,H({afterPortal:function(){this.overlay&&D()}})],props:K,data:function(){return{inited:this.value}},computed:{shouldRender:function(){return this.inited||!this.lazyRender}},watch:{value:function(e){var i=e?"open":"close";this.inited=this.inited||this.value,this[i](),t.skipToggleEvent||this.$emit(i)},overlay:"renderOverlay"},mounted:function(){this.value&&this.open()},activated:function(){this.shouldReopen&&(this.$emit("input",!0),this.shouldReopen=!1)},beforeDestroy:function(){var t,e;t=this,(e=p.find(t))&&B(e.overlay.$el),this.opened&&this.removeLock(),this.getContainer&&B(this.$el)},deactivated:function(){this.value&&(this.close(),this.shouldReopen=!0)},methods:{open:function(){this.$isServer||this.opened||(void 0!==this.zIndex&&(p.zIndex=this.zIndex),this.opened=!0,this.renderOverlay(),this.addLock())},addLock:function(){this.lockScroll&&(b(document,"touchstart",this.touchStart),b(document,"touchmove",this.onTouchMove),p.lockCount||document.body.classList.add("van-overflow-hidden"),p.lockCount++)},removeLock:function(){this.lockScroll&&p.lockCount&&(p.lockCount--,y(document,"touchstart",this.touchStart),y(document,"touchmove",this.onTouchMove),p.lockCount||document.body.classList.remove("van-overflow-hidden"))},close:function(){this.opened&&(j(this),this.opened=!1,this.removeLock(),this.$emit("input",!1))},onTouchMove:function(t){this.touchMove(t);var e=this.deltaY>0?"10":"01",i=N(t.target,this.$el),n=i.scrollHeight,r=i.offsetHeight,s=i.scrollTop,o="11";0===s?o=r>=n?"00":"01":s+r>=n&&(o="10"),"11"===o||"vertical"!==this.direction||parseInt(o,2)&parseInt(e,2)||k(t,!0)},renderOverlay:function(){var t=this;!this.$isServer&&this.value&&this.$nextTick((function(){t.updateZIndex(t.overlay?1:0),t.overlay?E(t,{zIndex:p.zIndex++,duration:t.duration,className:t.overlayClass,customStyle:t.overlayStyle}):j(t)}))},updateZIndex:function(t){void 0===t&&(t=0),this.$el.style.zIndex=++p.zIndex+t}}}}var Y=i(6),X=Object(o.a)("info"),Q=X[0],G=X[1];function Z(t,e,i,n){var r=e.dot,o=e.info,a=Object(m.c)(o)&&""!==o;if(r||a)return t("div",s()([{class:G({dot:r})},h(n,!0)]),[r?"":e.info])}Z.props={dot:Boolean,info:[Number,String]};var J=Q(Z),tt=Object(o.a)("icon"),et=tt[0],it=tt[1];var nt={medel:"medal","medel-o":"medal-o","calender-o":"calendar-o"};function rt(t,e,i,n){var r,o=function(t){return t&&nt[t]||t}(e.name),a=function(t){return!!t&&-1!==t.indexOf("/")}(o);return t(e.tag,s()([{class:[e.classPrefix,a?"":e.classPrefix+"-"+o],style:{color:e.color,fontSize:Object(Y.a)(e.size)}},h(n,!0)]),[i.default&&i.default(),a&&t("img",{class:it("image"),attrs:{src:o}}),t(J,{attrs:{dot:e.dot,info:null!=(r=e.badge)?r:e.info}})])}rt.props={dot:Boolean,name:String,size:[Number,String],info:[Number,String],badge:[Number,String],color:String,tag:{type:String,default:"i"},classPrefix:{type:String,default:it()}};var st=et(rt),ot=Object(o.a)("popup"),at=ot[0],lt=ot[1],ct=at({mixins:[U()],props:{round:Boolean,duration:[Number,String],closeable:Boolean,transition:String,safeAreaInsetBottom:Boolean,closeIcon:{type:String,default:"cross"},closeIconPosition:{type:String,default:"top-right"},position:{type:String,default:"center"},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}},beforeCreate:function(){var t=this,e=function(e){return function(i){return t.$emit(e,i)}};this.onClick=e("click"),this.onOpened=e("opened"),this.onClosed=e("closed")},methods:{onClickCloseIcon:function(t){this.$emit("click-close-icon",t),this.close()}},render:function(){var t,e=arguments[0];if(this.shouldRender){var i=this.round,n=this.position,r=this.duration,s="center"===n,o=this.transition||(s?"van-fade":"van-popup-slide-"+n),a={};if(Object(m.c)(r)){var l=s?"animationDuration":"transitionDuration";a[l]=r+"s"}return e("transition",{attrs:{appear:this.transitionAppear,name:o},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[e("div",{directives:[{name:"show",value:this.value}],style:a,class:lt((t={round:i},t[n]=n,t["safe-area-inset-bottom"]=this.safeAreaInsetBottom,t)),on:{click:this.onClick}},[this.slots(),this.closeable&&e(st,{attrs:{role:"button",tabindex:"0",name:this.closeIcon},class:lt("close-icon",this.closeIconPosition),on:{click:this.onClickCloseIcon}})])])}}}),ut=Object(o.a)("loading"),ht=ut[0],dt=ut[1];function ft(t,e){if("spinner"===e.type){for(var i=[],n=0;n<12;n++)i.push(t("i"));return i}return t("svg",{class:dt("circular"),attrs:{viewBox:"25 25 50 50"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])}function pt(t,e,i){if(i.default){var n,r={fontSize:Object(Y.a)(e.textSize),color:null!=(n=e.textColor)?n:e.color};return t("span",{class:dt("text"),style:r},[i.default()])}}function mt(t,e,i,n){var r=e.color,o=e.size,a=e.type,l={color:r};if(o){var c=Object(Y.a)(o);l. t("div",s()([{class:dt([a,{vertical:e.vertical}])},h(n,!0)]),[t("span",{class:dt("spinner",a),style:l},[ft(t,e)]),pt(t,e,i)])}mt.props={color:String,size:[Number,String],vertical:Boolean,textSize:[Number,String],textColor:String,type:{type:String,default:"circular"}};var vt=ht(mt),gt=Object(o.a)("action-sheet"),bt=gt[0],yt=gt[1];function St(t,e,i,n){var r=e.title,o=e.cancelText,a=e.closeable;function l(){d(n,"input",!1),d(n,"cancel")}return t(ct,s()([{class:yt(),attrs:{position:"bottom",round:e.round,value:e.value,overlay:e.overlay,duration:e.duration,lazyRender:e.lazyRender,lockScroll:e.lockScroll,getContainer:e.getContainer,closeOnPopstate:e.closeOnPopstate,closeOnClickOverlay:e.closeOnClickOverlay,safeAreaInsetBottom:e.safeAreaInsetBottom}},h(n,!0)]),[function(){if(r)return t("div",{class:yt("header")},[r,a&&t(st,{attrs:{name:e.closeIcon},class:yt("close"),on:{click:l}})])}(),function(){var n=(null==i.description?void 0:i.description())||e.description;if(n)return t("div",{class:yt("description")},[n])}(),t("div",{class:yt("content")},[e.actions&&e.actions.map((function(i,r){var s=i.disabled,o=i.loading,a=i.callback;return t("button",{attrs:{type:"button"},class:[yt("item",{disabled:s,loading:o}),i.className],style:{color:i.color},on:{click:function(t){t.stopPropagation(),s||o||(a&&a(i),d(n,"select",i,r),e.closeOnClickAction&&d(n,"input",!1))}}},[o?t(vt,{class:yt("loading-icon")}):[t("span",{class:yt("name")},[i.name]),i.subname&&t("div",{class:yt("subname")},[i.subname])]])})),null==i.default?void 0:i.default()]),function(){if(o)return[t("div",{class:yt("gap")}),t("button",{attrs:{type:"button"},class:yt("cancel"),on:{click:l}},[o])]}()])}St.props=n({},K,{title:String,actions:Array,duration:[Number,String],cancelText:String,description:String,getContainer:[String,Function],closeOnPopstate:Boolean,closeOnClickAction:Boolean,round:{type:Boolean,default:!0},closeable:{type:Boolean,default:!0},closeIcon:{type:String,default:"cross"},safeAreaInsetBottom:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}});var kt=bt(St);function xt(t){return t=t.replace(/[^-|\d]/g,""),/^((\+86)|(86))?(1)\d{10}$/.test(t)||/^0[0-9-]{10,13}$/.test(t)}var wt={title:String,loading:Boolean,readonly:Boolean,itemHeight:[Number,String],showToolbar:Boolean,cancelButtonText:String,confirmButtonText:String,allowHtml:{type:Boolean,default:!0},visibleItemCount:{type:[Number,String],default:6},swipeDuration:{type:[Number,String],default:1e3}},Ct="#ee0a24",Ot="van-hairline",Tt=Ot+"--top",$t=Ot+"--bottom",Bt=Ot+"--top-bottom",It=i(8);function Dt(t){return Array.isArray(t)?t.map((function(t){return Dt(t)})):"object"==typeof t?Object(It.a)({},t):t}function Et(t,e,i){return Math.min(Math.max(t,e),i)}function jt(t,e,i){var n=t.indexOf(e),r="";return-1===n?t:"-"===e&&0!==n?t.slice(0,n):("."===e&&t.match(/^(\.|-\.)/)&&(r=n?"-0":"0"),r+t.slice(0,n+1)+t.slice(n).replace(i,""))}function Pt(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=!0),t=e?jt(t,".",/\./g):t.split(".")[0];var n=e?/[^-0-9.]/g:/[^-0-9]/g;return(t=i?jt(t,"-",/-/g):t.replace(/-/,"")).replace(n,"")}var Lt=Object(o.a)("picker-column"),Nt=Lt[0],At=Lt[1];function Mt(t){return Object(m.e)(t)&&t.disabled}var zt=Nt({mixins:[R],props:{valueKey:String,readonly:Boolean,allowHtml:Boolean,className:String,itemHeight:Number,defaultIndex:Number,swipeDuration:[Number,String],visibleItemCount:[Number,String],initialOptions:{type:Array,default:function(){return[]}}},data:function(){return{offset:0,duration:0,options:Dt(this.initialOptions),currentIndex:this.defaultIndex}},created:function(){this.$parent.children&&this.$parent.children.push(this),this.setIndex(this.currentIndex)},mounted:function(){this.bindTouchEvent(this.$el)},destroyed:function(){var t=this.$parent.children;t&&t.splice(t.indexOf(this),1)},watch:{initialOptions:"setOptions",defaultIndex:function(t){this.setIndex(t)}},computed:{count:function(){return this.options.length},baseOffset:function(){return this.itemHeight*(this.visibleItemCount-1)/2}},methods:{setOptions:function(t){JSON.stringify(t)!==JSON.stringify(this.options)&&(this.options=Dt(t),this.setIndex(this.defaultIndex))},onTouchStart:function(t){if(!this.readonly){if(this.touchStart(t),this.moving){var e=function(t){var e=window.getComputedStyle(t),i=e.transform||e.webkitTransform,n=i.slice(7,i.length-1).split(", ")[5];return Number(n)}(this.$refs.wrapper);this.offset=Math.min(0,e-this.baseOffset),this.startOffset=this.offset}else this.startOffset=this.offset;this.duration=0,this.transitionEndTrigger=null,this.touchStartTime=Date.now(),this.momentumOffset=this.startOffset}},onTouchMove:function(t){if(!this.readonly){this.touchMove(t),"vertical"===this.direction&&(this.moving=!0,k(t,!0)),this.offset=Et(this.startOffset+this.deltaY,-this.count*this.itemHeight,this.itemHeight);var e=Date.now();e-this.touchStartTime>300&&(this.touchStartTime=e,this.momentumOffset=this.offset)}},onTouchEnd:function(){var t=this;if(!this.readonly){var e=this.offset-this.momentumOffset,i=Date.now()-this.touchStartTime;if(i<300&&math.abs(e)>15)this.momentum(e,i);else{var n=this.getIndexByOffset(this.offset);this.duration=200,this.setIndex(n,!0),setTimeout((function(){t.moving=!1}),0)}}},onTransitionEnd:function(){this.stopMomentum()},onClickItem:function(t){this.moving||this.readonly||(this.transitionEndTrigger=null,this.duration=200,this.setIndex(t,!0))},adjustIndex:function(t){for(var e=t=Et(t,0,this.count);e=0;i--)if(!Mt(this.options[i]))return i},getOptionText:function(t){return Object(m.e)(t)&&this.valueKey in t?t[this.valueKey]:t},setIndex:function(t,e){var i=this,n=-(t=this.adjustIndex(t)||0)*this.itemHeight,r=function(){t!==i.currentIndex&&(i.currentIndex=t,e&&i.$emit("change",t))};this.moving&&n!==this.offset?this.transitionEndTrigger=r:r(),this.offset=n},setValue:function(t){for(var e=this.options,i=0;ii&&(t=this.value&&this.value.length===+i?this.value:t.slice(0,i)),"number"===this.type||"digit"===this.type){var n="number"===this.type;t=Pt(t,n,n)}this.formatter&&e===this.formatTrigger&&(t=this.formatter(t));var r=this.$refs.input;r&&t!==r.value&&(r.value=t),t!==this.value&&this.$emit("input",t)},onInput:function(t){t.target.composing||this.updateValue(t.target.value)},onFocus:function(t){this.focused=!0,this.$emit("focus",t),this.getProp("readonly")&&this.blur()},onBlur:function(t){this.focused=!1,this.updateValue(this.value,"onBlur"),this.$emit("blur",t),this.validateWithTrigger("onBlur"),se()},onClick:function(t){this.$emit("click",t)},onClickInput:function(t){this.$emit("click-input",t)},onClickLeftIcon:function(t){this.$emit("click-left-icon",t)},onClickRightIcon:function(t){this.$emit("click-right-icon",t)},onClear:function(t){k(t),this.$emit("input",""),this.$emit("clear",t)},onKeypress:function(t){13===t.keyCode&&(this.getProp("submitOnEnter")||"textarea"===this.type||k(t),"search"===this.type&&this.blur());this.$emit("keypress",t)},adjustSize:function(){var t=this.$refs.input;if("textarea"===this.type&&this.autosize&&t){t.style.height="auto";var e=t.scrollHeight;if(Object(m.e)(this.autosize)){var i=this.autosize,n=i.maxHeight,r=i.minHeight;n&&(e=Math.min(e,n)),r&&(e=Math.max(e,r))}e&&(t.style.height=e+"px")}},genInput:function(){var t=this.$createElement,e=this.type,i=this.getProp("disabled"),r=this.getProp("readonly"),o=this.slots("input"),a=this.getProp("inputAlign");if(o)return t("div",{class:le("control",[a,"custom"]),on:{click:this.onClickInput}},[o]);var l={ref:"input",class:le("control",a),domProps:{value:this.value},attrs:n({},this.$attrs,{name:this.name,disabled:i,readonly:r,placeholder:this.placeholder}),on:this.listeners,directives:[{name:"model",value:this.value}]};if("textarea"===e)return t("textarea",s()([{},l]));var c,u=e;return"number"===e&&(u="text",c="decimal"),"digit"===e&&(u="tel",c="numeric"),t("input",s()([{attrs:{type:u,inputmode:c}},l]))},genLeftIcon:function(){var t=this.$createElement;if(this.slots("left-icon")||this.leftIcon)return t("div",{class:le("left-icon"),on:{click:this.onClickLeftIcon}},[this.slots("left-icon")||t(st,{attrs:{name:this.leftIcon,classPrefix:this.iconPrefix}})])},genRightIcon:function(){var t=this.$createElement,e=this.slots;if(e("right-icon")||this.rightIcon)return t("div",{class:le("right-icon"),on:{click:this.onClickRightIcon}},[e("right-icon")||t(st,{attrs:{name:this.rightIcon,classPrefix:this.iconPrefix}})])},genWordLimit:function(){var t=this.$createElement;if(this.showWordLimit&&this.maxlength){var e=(this.value||"").length;return t("div",{class:le("word-limit")},[t("span",{class:le("word-num")},[e]),"/",this.maxlength])}},genMessage:function(){var t=this.$createElement;if(!this.vanForm||!1!==this.vanForm.showErrorMessage){var e=this.errorMessage||this.validateMessage;if(e){var i=this.getProp("errorMessageAlign");return t("div",{class:le("error-message",i)},[e])}}},getProp:function(t){return Object(m.c)(this[t])?this[t]:this.vanForm&&Object(m.c)(this.vanForm[t])?this.vanForm[t]:void 0},genLabel:function(){var t=this.$createElement,e=this.getProp("colon")?":":"";return this.slots("label")?[this.slots("label"),e]:this.label?t("span",[this.label+e]):void 0}},render:function(){var t,e=arguments[0],i=this.slots,n=this.getProp("disabled"),r=this.getProp("labelAlign"),s={icon:this.genLeftIcon},o=this.genLabel();o&&(s.title=function(){return o});var a=this.slots("extra");return a&&(s.extra=function(){return a}),e(ne,{attrs:{icon:this.leftIcon,size:this.size,center:this.center,border:this.border,isLink:this.isLink,required:this.required,clickable:this.clickable,titleStyle:this.labelStyle,valueClass:le("value"),titleClass:[le("label",r),this.labelClass],arrowDirection:this.arrowDirection},scopedSlots:s,class:le((t={error:this.showError,disabled:n},t["label-"+r]=r,t["min-height"]="textarea"===this.type&&!this.autosize,t)),on:{click:this.onClick}},[e("div",{class:le("body")},[this.genInput(),this.showClear&&e(st,{attrs:{name:"clear"},class:le("clear"),on:{touchstart:this.onClear}}),this.genRightIcon(),i("button")&&e("div",{class:le("button")},[i("button")])]),this.genWordLimit(),this.genMessage()])}}),ue=0;var he=Object(o.a)("toast"),de=he[0],fe=he[1],pe=de({mixins:[U()],props:{icon:String,className:null,iconPrefix:String,loadingType:String,forbidClick:Boolean,closeOnClick:Boolean,message:[Number,String],type:{type:String,default:"text"},position:{type:String,default:"middle"},transition:{type:String,default:"van-fade"},lockScroll:{type:Boolean,default:!1}},data:function(){return{clickable:!1}},mounted:function(){this.toggleClickable()},destroyed:function(){this.toggleClickable()},watch:{value:"toggleClickable",forbidClick:"toggleClickable"},methods:{onClick:function(){this.closeOnClick&&this.close()},toggleClickable:function(){var t=this.value&&this.forbidClick;this.clickable!==t&&(this.clickable=t,t?(ue||document.body.classList.add("van-toast--unclickable"),ue++):--ue||document.body.classList.remove("van-toast--unclickable"))},onAfterEnter:function(){this.$emit("opened"),this.onOpened&&this.onOpened()},onAfterLeave:function(){this.$emit("closed")},genIcon:function(){var t=this.$createElement,e=this.icon,i=this.type,n=this.iconPrefix,r=this.loadingType;return e||"success"===i||"fail"===i?t(st,{class:fe("icon"),attrs:{classPrefix:n,name:e||i}}):"loading"===i?t(vt,{class:fe("loading"),attrs:{type:r}}):void 0},genMessage:function(){var t=this.$createElement,e=this.type,i=this.message;if(Object(m.c)(i)&&""!==i)return"html"===e?t("div",{class:fe("text"),domProps:{innerHTML:i}}):t("div",{class:fe("text")},[i])}},render:function(){var t,e=arguments[0];return e("transition",{attrs:{name:this.transition},on:{afterEnter:this.onAfterEnter,afterLeave:this.onAfterLeave}},[e("div",{directives:[{name:"show",value:this.value}],class:[fe([this.position,(t={},t[this.type]=!this.icon,t)]),this.className],on:{click:this.onClick}},[this.genIcon(),this.genMessage()])])}}),me={icon:"",type:"text",mask:!1,value:!0,message:"",className:"",overlay:!1,onClose:null,onOpened:null,duration:2e3,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,getContainer:"body",overlayStyle:null,closeOnClick:!1,closeOnClickOverlay:!1},ve={},ge=[],be=!1,ye=n({},me);function Se(t){return Object(m.e)(t)?t:{message:t}}function ke(){if(m.g)return{};if(!(ge=ge.filter((function(t){return!t.$el.parentNode||(e=t.$el,document.body.contains(e));var e}))).length||be){var t=new(l.a.extend(pe))({el:document.createElement("div")});t.$on("input",(function(e){t.value=e})),ge.push(t)}return ge[ge.length-1]}function xe(t){void 0===t&&(t={});var e=ke();return e.value&&e.updateZIndex(),t=Se(t),(t=n({},ye,ve[t.type||ye.type],t)).clear=function(){e.value=!1,t.onClose&&(t.onClose(),t.onClose=null),be&&!m.g&&e.$on("closed",(function(){clearTimeout(e.timer),ge=ge.filter((function(t){return t!==e})),B(e.$el),e.$destroy()}))},n(e,function(t){return n({},t,{overlay:t.mask||t.overlay,mask:void 0,duration:void 0})}(t)),clearTimeout(e.timer),t.duration>0&&(e.timer=setTimeout((function(){e.clear()}),t.duration)),e}["loading","success","fail"].forEach((function(t){var e;xe[t]=(e=t,function(t){return xe(n({type:e},Se(t)))})})),xe.clear=function(t){ge.length&&(t?(ge.forEach((function(t){t.clear()})),ge=[]):be?ge.shift().clear():ge[0].clear())},xe.setDefaultOptions=function(t,e){"string"==typeof t?ve[t]=e:n(ye,t)},xe.resetDefaultOptions=function(t){"string"==typeof t?ve[t]=null:(ye=n({},me),ve={})},xe.allowMultiple=function(t){void 0===t&&(t=!0),be=t},xe.install=function(){l.a.use(pe)},l.a.prototype.$toast=xe;var we=xe,Ce=Object(o.a)("button"),Oe=Ce[0],Te=Ce[1];function $e(t,e,i,n){var r,o=e.tag,a=e.icon,l=e.type,c=e.color,u=e.plain,f=e.disabled,p=e.loading,m=e.hairline,v=e.loadingText,g=e.iconPosition,b={};c&&(b.color=u?c:"white",u||(b.background=c),-1!==c.indexOf("gradient")?b.border=0:b.borderColor=c);var y,S,k=[Te([l,e.size,{plain:u,loading:p,disabled:f,hairline:m,block:e.block,round:e.round,square:e.square}]),(r={},r["van-hairline--surround"]=m,r)];function x(){return p?i.loading?i.loading():t(vt,{class:Te("loading"),attrs:{size:e.loadingSize,type:e.loadingType,color:"currentColor"}}):a?t(st,{attrs:{name:a,classPrefix:e.iconPrefix},class:Te("icon")}):void 0}return t(o,s()([{style:b,class:k,attrs:{type:e.nativeType,disabled:f},on:{click:function(t){p||f||(d(n,"click",t),Qt(n))},touchstart:function(t){d(n,"touchstart",t)}}},h(n)]),[t("div",{class:Te("content")},[(S=[],"left"===g&&S.push(x()),(y=p?v:i.default?i.default():e.text)&&S.push(t("span",{class:Te("text")},[y])),"right"===g&&S.push(x()),S)])])}$e.props=n({},Gt,{text:String,icon:String,color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:String,loadingText:String,loadingType:String,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},loadingSize:{type:String,default:"20px"},iconPosition:{type:String,default:"left"}});var Be=Oe($e);function Ie(t,e){var i=e.$vnode.componentOptions;if(i&&i.children){var n=function(t){var e=[];return function t(i){i.forEach((function(i){e.push(i),i.componentInstance&&t(i.componentInstance.$children.map((function(t){return t.$vnode}))),i.children&&t(i.children)}))}(t),e}(i.children);t.sort((function(t,e){return n.indexOf(t.$vnode)-n.indexOf(e.$vnode)}))}}function De(t,e){var i,n;void 0===e&&(e={});var r=e.indexKey||"index";return{inject:(i={},i[t]={default:null},i),computed:(n={parent:function(){return this.disableBindRelation?null:this[t]}},n[r]=function(){return this.bindRelation(),this.parent?this.parent.children.indexOf(this):null},n),watch:{disableBindRelation:function(t){t||this.bindRelation()}},mounted:function(){this.bindRelation()},beforeDestroy:function(){var t=this;this.parent&&(this.parent.children=this.parent.children.filter((function(e){return e!==t})))},methods:{bindRelation:function(){if(this.parent&&-1===this.parent.children.indexOf(this)){var t=[].concat(this.parent.children,[this]);Ie(t,this.parent),this.parent.children=t}}}}}function Ee(t){return{provide:function(){var e;return(e={})[t]=this,e},data:function(){return{children:[]}}}}var je,Pe=Object(o.a)("goods-action"),Le=Pe[0],Ne=Pe[1],Ae=Le({mixins:[Ee("vanGoodsAction")],props:{safeAreaInsetBottom:{type:Boolean,default:!0}},render:function(){var t=arguments[0];return t("div",{class:Ne({unfit:!this.safeAreaInsetBottom})},[this.slots()])}}),Me=Object(o.a)("goods-action-button"),ze=Me[0],Fe=Me[1],Ve=ze({mixins:[De("vanGoodsAction")],props:n({},Gt,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean}),computed:{isFirst:function(){var t=this.parent&&this.parent.children[this.index-1];return!t||t.$options.name!==this.$options.name},isLast:function(){var t=this.parent&&this.parent.children[this.index+1];return!t||t.$options.name!==this.$options.name}},methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)}},render:function(){var t=arguments[0];return t(Be,{class:Fe([{first:this.isFirst,last:this.isLast},this.type]),attrs:{size:"large",type:this.type,icon:this.icon,color:this.color,loading:this.loading,disabled:this.disabled},on:{click:this.onClick}},[this.slots()||this.text])}}),Re=Object(o.a)("dialog"),He=Re[0],_e=Re[1],We=Re[2],qe=He({mixins:[U()],props:{title:String,theme:String,width:[Number,String],message:String,className:null,callback:Function,beforeClose:Function,messageAlign:String,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showCancelButton:Boolean,overlay:{type:Boolean,default:!0},allowHtml:{type:Boolean,default:!0},transition:{type:String,default:"van-dialog-bounce"},showConfirmButton:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!1}},data:function(){return{loading:{confirm:!1,cancel:!1}}},methods:{onClickOverlay:function(){this.handleAction("overlay")},handleAction:function(t){var e=this;this.$emit(t),this.value&&(this.beforeClose?(this.loading[t]=!0,this.beforeClose(t,(function(i){!1!==i&&e.loading[t]&&e.onClose(t),e.loading.confirm=!1,e.loading.cancel=!1}))):this.onClose(t))},onClose:function(t){this.close(),this.callback&&this.callback(t)},onOpened:function(){this.$emit("opened")},onClosed:function(){this.$emit("closed")},genRoundButtons:function(){var t=this,e=this.$createElement;return e(Ae,{class:_e("footer")},[this.showCancelButton&&e(Ve,{attrs:{size:"large",type:"warning",text:this.cancelButtonText||We("cancel"),color:this.cancelButtonColor,loading:this.loading.cancel},class:_e("cancel"),on:{click:function(){t.handleAction("cancel")}}}),this.showConfirmButton&&e(Ve,{attrs:{size:"large",type:"danger",text:this.confirmButtonText||We("confirm"),color:this.confirmButtonColor,loading:this.loading.confirm},class:_e("confirm"),on:{click:function(){t.handleAction("confirm")}}})])},genButtons:function(){var t,e=this,i=this.$createElement,n=this.showCancelButton&&this.showConfirmButton;return i("div",{class:[Tt,_e("footer")]},[this.showCancelButton&&i(Be,{attrs:{size:"large",loading:this.loading.cancel,text:this.cancelButtonText||We("cancel")},class:_e("cancel"),style:{color:this.cancelButtonColor},on:{click:function(){e.handleAction("cancel")}}}),this.showConfirmButton&&i(Be,{attrs:{size:"large",loading:this.loading.confirm,text:this.confirmButtonText||We("confirm")},class:[_e("confirm"),(t={},t["van-hairline--left"]=n,t)],style:{color:this.confirmButtonColor},on:{click:function(){e.handleAction("confirm")}}})])},genContent:function(t,e){var i=this.$createElement;if(e)return i("div",{class:_e("content")},[e]);var n=this.message,r=this.messageAlign;if(n){var o,a,l={class:_e("message",(o={"has-title":t},o[r]=r,o)),domProps:(a={},a[this.allowHtml?"innerHTML":"textContent"]=n,a)};return i("div",{class:_e("content",{isolated:!t})},[i("div",s()([{},l]))])}}},render:function(){var t=arguments[0];if(this.shouldRender){var e=this.message,i=this.slots(),n=this.slots("title")||this.title,r=n&&t("div",{class:_e("header",{isolated:!e&&!i})},[n]);return t("transition",{attrs:{name:this.transition},on:{afterEnter:this.onOpened,afterLeave:this.onClosed}},[t("div",{directives:[{name:"show",value:this.value}],attrs:{role:"dialog","aria-labelledby":this.title||e},class:[_e([this.theme]),this.className],style:{width:Object(Y.a)(this.width)}},[r,this.genContent(n,i),"round-button"===this.theme?this.genRoundButtons():this.genButtons()])])}}});function Ke(t){return m.g?Promise.resolve():new Promise((function(e,i){var r;je&&(r=je.$el,document.body.contains(r))||(je&&je.$destroy(),(je=new(l.a.extend(qe))({el:document.createElement("div"),propsData:{lazyRender:!1}})).$on("input",(function(t){je.value=t}))),n(je,Ke.currentOptions,t,{resolve:e,reject:i})}))}Ke.defaultOptions={value:!0,title:"",width:"",theme:null,message:"",overlay:!0,className:"",allowHtml:!0,lockScroll:!0,transition:"van-dialog-bounce",beforeClose:null,overlayClass:"",overlayStyle:null,messageAlign:"",getContainer:"body",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1,callback:function(t){je["confirm"===t?"resolve":"reject"](t)}},Ke.alert=Ke,Ke.confirm=function(t){return Ke(n({showCancelButton:!0},t))},Ke.close=function(){je&&(je.value=!1)},Ke.setDefaultOptions=function(t){n(Ke.currentOptions,t)},Ke.resetDefaultOptions=function(){Ke.currentOptions=n({},Ke.defaultOptions)},Ke.resetDefaultOptions(),Ke.install=function(){l.a.use(qe)},Ke.Component=qe,l.a.prototype.$dialog=Ke;var Ue=Ke,Ye=Object(o.a)("address-edit-detail"),Xe=Ye[0],Qe=Ye[1],Ge=Ye[2],Ze=!m.g&&/android/.test(navigator.userAgent.toLowerCase()),Je=Xe({props:{value:String,errorMessage:String,focused:Boolean,detailRows:[Number,String],searchResult:Array,detailMaxlength:[Number,String],showSearchResult:Boolean},computed:{shouldShowSearchResult:function(){return this.focused&&this.searchResult&&this.showSearchResult}},methods:{onSelect:function(t){this.$emit("select-search",t),this.$emit("input",((t.address||"")+" "+(t.name||"")).trim())},onFinish:function(){this.$refs.field.blur()},genFinish:function(){var t=this.$createElement;if(this.value&&this.focused&&Ze)return t("div",{class:Qe("finish"),on:{click:this.onFinish}},[Ge("complete")])},genSearchResult:function(){var t=this,e=this.$createElement,i=this.value,n=this.shouldShowSearchResult,r=this.searchResult;if(n)return r.map((function(n){return e(ne,{key:n.name+n.address,attrs:{clickable:!0,border:!1,icon:"location-o",label:n.address},class:Qe("search-item"),on:{click:function(){t.onSelect(n)}},scopedSlots:{title:function(){if(n.name){var t=n.name.replace(i,""+i+"");return e("div",{domProps:{innerHTML:t}})}}}})}))}},render:function(){var t=arguments[0];return t(ne,{class:Qe()},[t(ce,{attrs:{autosize:!0,rows:this.detailRows,clearable:!Ze,type:"textarea",value:this.value,errorMessage:this.errorMessage,border:!this.shouldShowSearchResult,label:Ge("label"),maxlength:this.detailMaxlength,placeholder:Ge("placeholder")},ref:"field",scopedSlots:{icon:this.genFinish},on:n({},this.$listeners)}),this.genSearchResult()])}}),ti={size:[Number,String],value:null,loading:Boolean,disabled:Boolean,activeColor:String,inactiveColor:String,activeValue:{type:null,default:!0},inactiveValue:{type:null,default:!1}},ei={inject:{vanField:{default:null}},watch:{value:function(){var t=this.vanField;t&&(t.resetValidation(),t.validateWithTrigger("onChange"))}},created:function(){var t=this.vanField;t&&!t.children&&(t.children=this)}},ii=Object(o.a)("switch"),ni=ii[0],ri=ii[1],si=ni({mixins:[ei],props:ti,computed:{checked:function(){return this.value===this.activeValue},style:function(){return{fontSize:Object(Y.a)(this.size),backgroundColor:this.checked?this.activeColor:this.inactiveColor}}},methods:{onClick:function(t){if(this.$emit("click",t),!this.disabled&&!this.loading){var e=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",e),this.$emit("change",e)}},genLoading:function(){var t=this.$createElement;if(this.loading){var e=this.checked?this.activeColor:this.inactiveColor;return t(vt,{class:ri("loading"),attrs:{color:e}})}}},render:function(){var t=arguments[0],e=this.checked,i=this.loading,n=this.disabled;return t("div",{class:ri({on:e,loading:i,disabled:n}),attrs:{role:"switch","aria-checked":String(e)},style:this.style,on:{click:this.onClick}},[t("div",{class:ri("node")},[this.genLoading()])])}}),oi=Object(o.a)("address-edit"),ai=oi[0],li=oi[1],ci=oi[2],ui={name:"",tel:"",country:"",province:"",city:"",county:"",areaCode:"",postalCode:"",addressDetail:"",isDefault:!1};var hi=ai({props:{areaList:Object,isSaving:Boolean,isDeleting:Boolean,validator:Function,showDelete:Boolean,showPostal:Boolean,searchResult:Array,telMaxlength:[Number,String],showSetDefault:Boolean,saveButtonText:String,areaPlaceholder:String,deleteButtonText:String,showSearchResult:Boolean,showArea:{type:Boolean,default:!0},showDetail:{type:Boolean,default:!0},disableArea:Boolean,detailRows:{type:[Number,String],default:1},detailMaxlength:{type:[Number,String],default:200},addressInfo:{type:Object,default:function(){return n({},ui)}},telValidator:{type:Function,default:xt},postalValidator:{type:Function,default:function(t){return/^\d{6}$/.test(t)}},areaColumnsPlaceholder:{type:Array,default:function(){return[]}}},data:function(){return{data:{},showAreaPopup:!1,detailFocused:!1,errorInfo:{tel:"",name:"",areaCode:"",postalCode:"",addressDetail:""}}},computed:{areaListLoaded:function(){return Object(m.e)(this.areaList)&&Object.keys(this.areaList).length},areaText:function(){var t=this.data,e=t.country,i=t.province,n=t.city,r=t.county;if(t.areaCode){var s=[e,i,n,r];return i&&i===n&&s.splice(1,1),s.filter((function(t){return t})).join("/")}return""},hideBottomFields:function(){var t=this.searchResult;return t&&t.length&&this.detailFocused}},watch:{addressInfo:{handler:function(t){this.data=n({},ui,t),this.setAreaCode(t.areaCode)},deep:!0,immediate:!0},areaList:function(){this.setAreaCode(this.data.areaCode)}},methods:{onFocus:function(t){this.errorInfo[t]="",this.detailFocused="addressDetail"===t,this.$emit("focus",t)},onChangeDetail:function(t){this.data.addressDetail=t,this.$emit("change-detail",t)},onAreaConfirm:function(t){(t=t.filter((function(t){return!!t}))).some((function(t){return!t.code}))?we(ci("areaEmpty")):(this.showAreaPopup=!1,this.assignAreaValues(),this.$emit("change-area",t))},assignAreaValues:function(){var t=this.$refs.area;if(t){var e=t.getArea();e.areaCode=e.code,delete e.code,n(this.data,e)}},onSave:function(){var t=this,e=["name","tel"];this.showArea&&e.push("areaCode"),this.showDetail&&e.push("addressDetail"),this.showPostal&&e.push("postalCode"),e.every((function(e){var i=t.getErrorMessage(e);return i&&(t.errorInfo[e]=i),!i}))&&!this.isSaving&&this.$emit("save",this.data)},getErrorMessage:function(t){var e=String(this.data[t]||"").trim();if(this.validator){var i=this.validator(t,e);if(i)return i}switch(t){case"name":return e?"":ci("nameEmpty");case"tel":return this.telValidator(e)?"":ci("telInvalid");case"areaCode":return e?"":ci("areaEmpty");case"addressDetail":return e?"":ci("addressEmpty");case"postalCode":return e&&!this.postalValidator(e)?ci("postalEmpty"):""}},onDelete:function(){var t=this;Ue.confirm({title:ci("confirmDelete")}).then((function(){t.$emit("delete",t.data)})).catch((function(){t.$emit("cancel-delete",t.data)}))},getArea:function(){return this.$refs.area?this.$refs.area.getValues():[]},setAreaCode:function(t){this.data.areaCode=t||"",t&&this.$nextTick(this.assignAreaValues)},setAddressDetail:function(t){this.data.addressDetail=t},onDetailBlur:function(){var t=this;setTimeout((function(){t.detailFocused=!1}))},genSetDefaultCell:function(t){var e=this;if(this.showSetDefault){var i={"right-icon":function(){return t(si,{attrs:{size:"24"},on:{change:function(t){e.$emit("change-default",t)}},model:{value:e.data.isDefault,callback:function(t){e.$set(e.data,"isDefault",t)}}})}};return t(ne,{directives:[{name:"show",value:!this.hideBottomFields}],attrs:{center:!0,title:ci("defaultAddress")},class:li("default"),scopedSlots:i})}return t()}},render:function(t){var e=this,i=this.data,n=this.errorInfo,r=this.disableArea,s=this.hideBottomFields,o=function(t){return function(){return e.onFocus(t)}};return t("div",{class:li()},[t("div",{class:li("fields")},[t(ce,{attrs:{clearable:!0,label:ci("name"),placeholder:ci("namePlaceholder"),errorMessage:n.name},on:{focus:o("name")},model:{value:i.name,callback:function(t){e.$set(i,"name",t)}}}),t(ce,{attrs:{clearable:!0,type:"tel",label:ci("tel"),maxlength:this.telMaxlength,placeholder:ci("telPlaceholder"),errorMessage:n.tel},on:{focus:o("tel")},model:{value:i.tel,callback:function(t){e.$set(i,"tel",t)}}}),t(ce,{directives:[{name:"show",value:this.showArea}],attrs:{readonly:!0,clickable:!r,label:ci("area"),placeholder:this.areaPlaceholder||ci("areaPlaceholder"),errorMessage:n.areaCode,rightIcon:r?null:"arrow",value:this.areaText},on:{focus:o("areaCode"),click:function(){e.$emit("click-area"),e.showAreaPopup=!r}}}),t(Je,{directives:[{name:"show",value:this.showDetail}],attrs:{focused:this.detailFocused,value:i.addressDetail,errorMessage:n.addressDetail,detailRows:this.detailRows,detailMaxlength:this.detailMaxlength,searchResult:this.searchResult,showSearchResult:this.showSearchResult},on:{focus:o("addressDetail"),blur:this.onDetailBlur,input:this.onChangeDetail,"select-search":function(t){e.$emit("select-search",t)}}}),this.showPostal&&t(ce,{directives:[{name:"show",value:!s}],attrs:{type:"tel",maxlength:"6",label:ci("postal"),placeholder:ci("postal"),errorMessage:n.postalCode},on:{focus:o("postalCode")},model:{value:i.postalCode,callback:function(t){e.$set(i,"postalCode",t)}}}),this.slots()]),this.genSetDefaultCell(t),t("div",{directives:[{name:"show",value:!s}],class:li("buttons")},[t(Be,{attrs:{block:!0,round:!0,loading:this.isSaving,type:"danger",text:this.saveButtonText||ci("save")},on:{click:this.onSave}}),this.showDelete&&t(Be,{attrs:{block:!0,round:!0,loading:this.isDeleting,text:this.deleteButtonText||ci("delete")},on:{click:this.onDelete}})]),t(ct,{attrs:{round:!0,position:"bottom",lazyRender:!1,getContainer:"body"},model:{value:e.showAreaPopup,callback:function(t){e.showAreaPopup=t}}},[t(Yt,{ref:"area",attrs:{value:i.areaCode,loading:!this.areaListLoaded,areaList:this.areaList,columnsPlaceholder:this.areaColumnsPlaceholder},on:{confirm:this.onAreaConfirm,cancel:function(){e.showAreaPopup=!1}}})])])}}),di=Object(o.a)("radio-group"),fi=di[0],pi=di[1],mi=fi({mixins:[Ee("vanRadio"),ei],props:{value:null,disabled:Boolean,direction:String,checkedColor:String,iconSize:[Number,String]},watch:{value:function(t){this.$emit("change",t)}},render:function(){var t=arguments[0];return t("div",{class:pi([this.direction]),attrs:{role:"radiogroup"}},[this.slots()])}}),vi=Object(o.a)("tag"),gi=vi[0],bi=vi[1];function yi(t,e,i,n){var r,o=e.type,a=e.mark,l=e.plain,c=e.color,u=e.round,f=e.size,p=((r={})[l?"color":"backgroundColor"]=c,r);e.textColor&&(p.color=e.textColor);var m={mark:a,plain:l,round:u};f&&(m[f]=f);var v=e.closeable&&t(st,{attrs:{name:"cross"},class:bi("close"),on:{click:function(t){t.stopPropagation(),d(n,"close")}}});return t("transition",{attrs:{name:e.closeable?"van-fade":null}},[t("span",s()([{key:"content",style:p,class:bi([m,o])},h(n,!0)]),[null==i.default?void 0:i.default(),v])])}yi.props={size:String,mark:Boolean,color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean,type:{type:String,default:"default"}};var Si=gi(yi),ki=function(t){var e=t.parent,i=t.bem,n=t.role;return{mixins:[De(e),ei],props:{name:null,value:null,disabled:Boolean,iconSize:[Number,String],checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"},bindGroup:{type:Boolean,default:!0}},computed:{disableBindRelation:function(){return!this.bindGroup},isDisabled:function(){return this.parent&&this.parent.disabled||this.disabled},direction:function(){return this.parent&&this.parent.direction||null},iconStyle:function(){var t=this.checkedColor||this.parent&&this.parent.checkedColor;if(t&&this.checked&&!this.isDisabled)return{borderColor:t,backgroundColor:t}},tabindex:function(){return this.isDisabled||"radio"===n&&!this.checked?-1:0}},methods:{onClick:function(t){var e=this,i=t.target,n=this.$refs.icon,r=n===i||n.contains(i);this.isDisabled||!r&&this.labelDisabled?this.$emit("click",t):(this.toggle(),setTimeout((function(){e.$emit("click",t)})))},genIcon:function(){var t=this.$createElement,e=this.checked,n=this.iconSize||this.parent&&this.parent.iconSize;return t("div",{ref:"icon",class:i("icon",[this.shape,{disabled:this.isDisabled,checked:e}]),style:{fontSize:Object(Y.a)(n)}},[this.slots("icon",{checked:e})||t(st,{attrs:{name:"success"},style:this.iconStyle})])},genLabel:function(){var t=this.$createElement,e=this.slots();if(e)return t("span",{class:i("label",[this.labelPosition,{disabled:this.isDisabled}])},[e])}},render:function(){var t=arguments[0],e=[this.genIcon()];return"left"===this.labelPosition?e.unshift(this.genLabel()):e.push(this.genLabel()),t("div",{attrs:{role:n,tabindex:this.tabindex,"aria-checked":String(this.checked)},class:i([{disabled:this.isDisabled,"label-disabled":this.labelDisabled},this.direction]),on:{click:this.onClick}},[e])}}},xi=Object(o.a)("radio"),wi=(0,xi[0])({mixins:[ki({bem:xi[1],role:"radio",parent:"vanRadio"})],computed:{currentValue:{get:function(){return this.parent?this.parent.value:this.value},set:function(t){(this.parent||this).$emit("input",t)}},checked:function(){return this.currentValue===this.name}},methods:{toggle:function(){this.currentValue=this.name}}}),Ci=Object(o.a)("address-item"),Oi=Ci[0],Ti=Ci[1];function $i(t,e,i,r){var o=e.disabled,a=e.switchable;function l(){if(e.data.isDefault&&e.defaultTagText)return t(Si,{attrs:{type:"danger",round:!0},class:Ti("tag")},[e.defaultTagText])}return t("div",{class:Ti({disabled:o}),on:{click:function(){a&&d(r,"select"),d(r,"click")}}},[t(ne,s()([{attrs:{border:!1,valueClass:Ti("value")},scopedSlots:{default:function(){var i=e.data,n=[t("div",{class:Ti("name")},[i.name+" "+i.tel,l()]),t("div",{class:Ti("address")},[i.address])];return a&&!o?t(wi,{attrs:{name:i.id,iconSize:18}},[n]):n},"right-icon":function(){return t(st,{attrs:{name:"edit"},class:Ti("edit"),on:{click:function(t){t.stopPropagation(),d(r,"edit"),d(r,"click")}}})}}},h(r)])),null==i.bottom?void 0:i.bottom(n({},e.data,{disabled:o}))])}$i.props={data:Object,disabled:Boolean,switchable:Boolean,defaultTagText:String};var Bi=Oi($i),Ii=Object(o.a)("address-list"),Di=Ii[0],Ei=Ii[1],ji=Ii[2];function Pi(t,e,i,n){function r(r,s){if(r)return r.map((function(r,o){return t(Bi,{attrs:{data:r,disabled:s,switchable:e.switchable,defaultTagText:e.defaultTagText},key:r.id,scopedSlots:{bottom:i["item-bottom"]},on:{select:function(){d(n,s?"select-disabled":"select",r,o),s||d(n,"input",r.id)},edit:function(){d(n,s?"edit-disabled":"edit",r,o)},click:function(){d(n,"click-item",r,o)}}})}))}var o=r(e.list),a=r(e.disabledList,!0);return t("div",s()([{class:Ei()},h(n)]),[null==i.top?void 0:i.top(),t(mi,{attrs:{value:e.value}},[o]),e.disabledText&&t("div",{class:Ei("disabled-text")},[e.disabledText]),a,null==i.default?void 0:i.default(),t("div",{class:Ei("bottom")},[t(Be,{attrs:{round:!0,block:!0,type:"danger",text:e.addButtonText||ji("add")},class:Ei("add"),on:{click:function(){d(n,"add")}}})])])}Pi.props={list:Array,value:[Number,String],disabledList:Array,disabledText:String,addButtonText:String,defaultTagText:String,switchable:{type:Boolean,default:!0}};var Li=Di(Pi),Ni=i(5),Ai=Object(o.a)("badge"),Mi=Ai[0],zi=Ai[1],Fi=Mi({props:{dot:Boolean,max:[Number,String],color:String,content:[Number,String],tag:{type:String,default:"div"}},methods:{hasContent:function(){return!!(this.$scopedSlots.content||Object(m.c)(this.content)&&""!==this.content)},renderContent:function(){var t=this.dot,e=this.max,i=this.content;if(!t&&this.hasContent())return this.$scopedSlots.content?this.$scopedSlots.content():Object(m.c)(e)&&Object(Ni.b)(i)&&+i>e?e+"+":i},renderBadge:function(){var t=this.$createElement;if(this.hasContent()||this.dot)return t("div",{class:zi({dot:this.dot,fixed:!!this.$scopedSlots.default}),style:{background:this.color}},[this.renderContent()])}},render:function(){var t=arguments[0];if(this.$scopedSlots.default){var e=this.tag;return t(e,{class:zi("wrapper")},[this.$scopedSlots.default(),this.renderBadge()])}return this.renderBadge()}}),Vi=i(3);function Ri(t){return"[object Date]"===Object.prototype.toString.call(t)&&!Object(Ni.a)(t.getTime())}var Hi=Object(o.a)("calendar"),_i=Hi[0],Wi=Hi[1],qi=Hi[2];function Ki(t,e){var i=t.getFullYear(),n=e.getFullYear(),r=t.getMonth(),s=e.getMonth();return i===n?r===s?0:r>s?1:-1:i>n?1:-1}function Ui(t,e){var i=Ki(t,e);if(0===i){var n=t.getDate(),r=e.getDate();return n===r?0:n>r?1:-1}return i}function Yi(t,e){return(t=new Date(t)).setDate(t.getDate()+e),t}function Xi(t){return Yi(t,1)}function Qi(t){return new Date(t)}function Gi(t){return Array.isArray(t)?t.map((function(t){return null===t?t:Qi(t)})):Qi(t)}function Zi(t,e){return 32-new Date(t,e-1,32).getDate()}var Ji=(0,Object(o.a)("calendar-month")[0])({props:{date:Date,type:String,color:String,minDate:Date,maxDate:Date,showMark:Boolean,rowHeight:[Number,String],formatter:Function,lazyRender:Boolean,currentDate:[Date,Array],allowSameDay:Boolean,showSubtitle:Boolean,showMonthTitle:Boolean,firstDayOfWeek:Number},data:function(){return{visible:!1}},computed:{title:function(){return t=this.date,qi("monthTitle",t.getFullYear(),t.getMonth()+1);var t},rowHeightWithUnit:function(){return Object(Y.a)(this.rowHeight)},offset:function(){var t=this.firstDayOfWeek,e=this.date.getDay();return t?(e+7-this.firstDayOfWeek)%7:e},totalDay:function(){return Zi(this.date.getFullYear(),this.date.getMonth()+1)},shouldRender:function(){return this.visible||!this.lazyRender},placeholders:function(){for(var t=[],e=Math.ceil((this.totalDay+this.offset)/7),i=1;i<=e;i++)t.push({type:"placeholder"});return t},days:function(){for(var t=[],e=this.date.getFullYear(),i=this.date.getMonth(),n=1;n<=this.totalday;n++){var r=new Date(e,i,n),s=this.getDayType(r),o={date:r,type:s,text:n,bottomInfo:this.getBottomInfo(s)};this.formatter&&(o=this.formatter(o)),t.push(o)}return t}},methods:{getHeight:function(){return this.height||(this. e=this.$refs,i=e.days,n=e.month,r=(this.showSubtitle?i:n).getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop;M(t,r)},getMultipleDayType:function(t){var e=this,i=function(t){return e.currentDate.some((function(e){return 0===Ui(e,t)}))};if(i(t)){var n=Yi(t,-1),r=Xi(t),s=i(n),o=i(r);return s&&o?"multiple-middle":s?"end":o?"start":"multiple-selected"}return""},getRangeDayType:function(t){var e=this.currentDate,i=e[0],n=e[1];if(!i)return"";var r=Ui(t,i);if(!n)return 0===r?"start":"";var s=Ui(t,n);return 0===r&&0===s&&this.allowSameDay?"start-end":0===r?"start":0===s?"end":r>0&&s<0?"middle":void 0},getDayType:function(t){var e=this.type,i=this.minDate,n=this.maxDate,r=this.currentDate;return Ui(t,i)<0||ui(t,n)>0?"disabled":null!==r?"single"===e?0===Ui(t,r)?"selected":"":"multiple"===e?this.getMultipleDayType(t):"range"===e?this.getRangeDayType(t):void 0:void 0},getBottomInfo:function(t){if("range"===this.type){if("start"===t||"end"===t)return qi(t);if("start-end"===t)return qi("startEnd")}},getDayStyle:function(t,e){var i={height:this.rowHeightWithUnit};return"placeholder"===t?(i.width="100%",i):(0===e&&(i.marginLeft=100*this.offset/7+"%"),this.color&&("start"===t||"end"===t||"start-end"===t||"multiple-selected"===t||"multiple-middle"===t?i.background=this.color:"middle"===t&&(i.color=this.color)),i)},genTitle:function(){var t=this.$createElement;if(this.showMonthTitle)return t("div",{class:Wi("month-title")},[this.title])},genMark:function(){var t=this.$createElement;if(this.showMark&&this.shouldRender)return t("div",{class:Wi("month-mark")},[this.date.getMonth()+1])},genDays:function(){var t=this.$createElement,e=this.shouldRender?this.days:this.placeholders;return t("div",{ref:"days",attrs:{role:"grid"},class:Wi("days")},[this.genMark(),e.map(this.genDay)])},genDay:function(t,e){var i=this,n=this.$createElement,r=t.type,s=t.topInfo,o=t.bottomInfo,a=this.getDayStyle(r,e),l="disabled"===r,c=function(){l||i.$emit("click",t)},u=s&&n("div",{class:Wi("top-info")},[s]),h=o&&n("div",{class:Wi("bottom-info")},[o]);return"selected"===r?n("div",{attrs:{role:"gridcell",tabindex:-1},style:a,class:[Wi("day"),t.className],on:{click:c}},[n("div",{class:Wi("selected-day"),style:{width:this.rowHeightWithUnit,height:this.rowHeightWithUnit,background:this.color}},[u,t.text,h])]):n("div",{attrs:{role:"gridcell",tabindex:l?null:-1},style:a,class:[Wi("day",r),t.className],on:{click:c}},[u,t.text,h])}},render:function(){var t=arguments[0];return t("div",{class:Wi("month"),ref:"month"},[this.genTitle(),this.genDays()])}}),tn=(0,Object(o.a)("calendar-header")[0])({props:{title:String,subtitle:String,showTitle:Boolean,showSubtitle:Boolean,firstDayOfWeek:Number},methods:{genTitle:function(){var t=this.$createElement;if(this.showTitle){var e=this.slots("title")||this.title||qi("title");return t("div",{class:Wi("header-title")},[e])}},genSubtitle:function(){var t=this.$createElement;if(this.showSubtitle)return t("div",{class:Wi("header-subtitle")},[this.subtitle])},genWeekDays:function(){var t=this.$createElement,e=qi("weekdays"),i=this.firstDayOfWeek,n=[].concat(e.slice(i,7),e.slice(0,i));return t("div",{class:Wi("weekdays")},[n.map((function(e){return t("span",{class:Wi("weekday")},[e])}))])}},render:function(){var t=arguments[0];return t("div",{class:Wi("header")},[this.genTitle(),this.genSubtitle(),this.genWeekDays()])}}),en=_i({props:{title:String,color:String,value:Boolean,readonly:Boolean,formatter:Function,rowHeight:[Number,String],confirmText:String,rangePrompt:String,defaultDate:[Date,Array],getContainer:[String,Function],allowSameDay:Boolean,confirmDisabledText:String,type:{type:String,default:"single"},round:{type:Boolean,default:!0},position:{type:String,default:"bottom"},poppable:{type:Boolean,default:!0},maxRange:{type:[Number,String],default:null},lazyRender:{type:Boolean,default:!0},showMark:{type:Boolean,default:!0},showTitle:{type:Boolean,default:!0},showConfirm:{type:Boolean,default:!0},showSubtitle:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},minDate:{type:Date,validator:Ri,default:function(){return new Date}},maxDate:{type:Date,validator:Ri,default:function(){var t=new Date;return new Date(t.getFullYear(),t.getMonth()+6,t.getDate())}},firstDayOfWeek:{type:[Number,String],default:0,validator:function(t){return t>=0&&t<=6}}},data:function(){return{subtitle:"",currentdate:this.getinitialdate()}},computed:{months:function(){var t=[],e=new Date(this.minDate);e.setDate(1);do{t.push(new Date(e)),e.setMonth(e.getMonth()+1)}while(1!==Ki(e,this.maxDate));return t},buttonDisabled:function(){var t=this.type,e=this.currentDate;if(e){if("range"===t)return!e[0]||!e[1];if("multiple"===t)return!e.length}return!e},dayOffset:function(){return this.firstDayOfWeek?this.firstDayOfWeek%7:0}},watch:{value:"init",type:function(){this.reset()},defaultDate:function(t){this.currentDate=t,this.scrollIntoView()}},mounted:function(){this.init()},activated:function(){this.init()},methods:{reset:function(t){void 0===t&&(t=this.getInitialDate()),this.currentDate=t,this.scrollIntoView()},init:function(){var t=this;this.poppable&&!this.value||this.$nextTick((function(){t.body e=this;Object(Vi.c)((function(){var i=e.value||!e.poppable;t&&i&&e.months.some((function(i,n){if(0===Ki(i,t)){var r=e.$refs,s=r.body;return r.months[n].scrollIntoView(s),!0}return!1}))}))},scrollIntoView:function(){var t=this.currentDate;if(t){var e="single"===this.type?t:t[0];this.scrollToDate(e)}},getInitialDate:function(){var t=this.type,e=this.minDate,i=this.maxDate,n=this.defaultDate;if(null===n)return n;var r=new Date;if(-1===Ui(r,e)?r=e:1===Ui(r,i)&&(r=i),"range"===t){var s=n||[];return[s[0]||r,s[1]||Xi(r)]}return"multiple"===t?n||[r]:n||r},onScroll:function(){var t=this.$refs,e=t.body,i=t.months,n=A(e),r=n+this.bodyHeight,s=i.map((function(t){return t.getHeight()}));if(!(r>s.reduce((function(t,e){return t+e}),0)&&n>0)){for(var o,a=0,l=[-1,-1],c=0;c=n&&(l[1]=c,o||(o=i[c],l[0]=c),i[c].showed||(i[c].showed=!0,this.$emit("month-show",{date:i[c].date,title:i[c].title}))),a+=s[c]}i.forEach((function(t,e){t.visible=e>=l[0]-1&&e<=l[1]+1})),o&&(this.subtitle=o.title)}},onclickday:function(t){if(!this.readonly){var e=t.date,i=this.type,n=this.currentDate;if("range"===i){if(!n)return void this.select([e,null]);var r=n[0],s=n[1];if(r&&!s){var o=Ui(e,r);1===o?this.select([r,e],!0):-1===o?this.select([e,null]):this.allowSameDay&&this.select([e,e],!0)}else this.select([e,null])}else if("multiple"===i){if(!n)return void this.select([e]);var a;if(this.currentDate.some((function(t,i){var n=0===Ui(t,e);return n&&(a=i),n}))){var l=n.splice(a,1)[0];this.$emit("unselect",Qi(l))}else this.maxRange&&n.length>=this.maxRange?we(this.rangePrompt||qi("rangePrompt",this.maxRange)):this.select([].concat(n,[e]))}else this.select(e,!0)}},togglePopup:function(t){this.$emit("input",t)},select:function(t,e){var i=this,n=function(t){i.currentDate=t,i.$emit("select",Gi(i.currentDate))};if(e&&"range"===this.type&&!this.checkRange(t))return void(this.showConfirm?n([t[0],Yi(t[0],this.maxRange-1)]):n(t));n(t),e&&!this.showConfirm&&this.onConfirm()},checkRange:function(t){var e=this.maxRange,i=this.rangePrompt;return!(e&&function(t){var e=t[0].getTime();return(t[1].getTime()-e)/864e5+1}(t)>e)||(we(i||qi("rangePrompt",e)),!1)},onConfirm:function(){this.$emit("confirm",Gi(this.currentDate))},genMonth:function(t,e){var i=this.$createElement,n=0!==e||!this.showSubtitle;return i(Ji,{ref:"months",refInFor:!0,attrs:{date:t,type:this.type,color:this.color,minDate:this.minDate,maxDate:this.maxDate,showMark:this.showMark,formatter:this.formatter,rowHeight:this.rowHeight,lazyRender:this.lazyRender,currentDate:this.currentDate,showSubtitle:this.showSubtitle,allowSameDay:this.allowSameDay,showMonthTitle:n,firstDayOfWeek:this.dayOffset},on:{click:this.onClickDay}})},genFooterContent:function(){var t=this.$createElement,e=this.slots("footer");if(e)return e;if(this.showConfirm){var i=this.buttonDisabled?this.confirmDisabledText:this.confirmText;return t(Be,{attrs:{round:!0,block:!0,type:"danger",color:this.color,disabled:this.buttonDisabled,nativeType:"button"},class:Wi("confirm"),on:{click:this.onConfirm}},[i||qi("confirm")])}},genFooter:function(){return(0,this.$createElement)("div",{class:Wi("footer",{unfit:!this.safeAreaInsetBottom})},[this.genFooterContent()])},genCalendar:function(){var t=this,e=this.$createElement;return e("div",{class:Wi()},[e(tn,{attrs:{title:this.title,showTitle:this.showTitle,subtitle:this.subtitle,showSubtitle:this.showSubtitle,firstDayOfWeek:this.dayOffset},scopedSlots:{title:function(){return t.slots("title")}}}),e("div",{ref:"body",class:Wi("body"),on:{scroll:this.onScroll}},[this.months.map(this.genMonth)]),this.genFooter()])}},render:function(){var t=this,e=arguments[0];if(this.poppable){var i,n=function(e){return function(){return t.$emit(e)}};return e(ct,{attrs:(i={round:!0,value:this.value},i.round=this.round,i.position=this.position,i.closeable=this.showTitle||this.showSubtitle,i.getContainer=this.getContainer,i.closeOnPopstate=this.closeOnPopstate,i.closeOnClickOverlay=this.closeOnClickOverlay,i),class:Wi("popup"),on:{input:this.togglePopup,open:n("open"),opened:n("opened"),close:n("close"),closed:n("closed")}},[this.genCalendar()])}return this.genCalendar()}}),nn=Object(o.a)("image"),rn=nn[0],sn=nn[1],on=rn({props:{src:String,fit:String,alt:String,round:Boolean,width:[Number,String],height:[Number,String],radius:[Number,String],lazyLoad:Boolean,iconPrefix:String,showError:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},errorIcon:{type:String,default:"photo-fail"},loadingIcon:{type:String,default:"photo"}},data:function(){return{loading:!0,error:!1}},watch:{src:function(){this.loading=!0,this.error=!1}},computed:{style:function(){var t={};return Object(m.c)(this.width)&&(t.width=Object(Y.a)(this.width)),Object(m.c)(this.height)&&(t.height=Object(Y.a)(this.height)),Object(m.c)(this.radius)&&(t.overflow="hidden",t.borderRadius=Object(Y.a)(this.radius)),t}},created:function(){var t=this.$Lazyload;t&&m.b&&(t.$on("loaded",this.onLazyLoaded),t.$on("error",this.onLazyLoadError))},beforeDestroy:function(){var t=this.$Lazyload;t&&(t.$off("loaded",this.onLazyLoaded),t.$off("error",this.onLazyLoadError))},methods:{onLoad:function(t){this.loading=!1,this.$emit("load",t)},onLazyLoaded:function(t){t.el===this.$refs.image&&this.loading&&this.onLoad()},onLazyLoadError:function(t){t.el!==this.$refs.image||this.error||this.onError()},onError:function(t){this.error=!0,this.loading=!1,this.$emit("error",t)},onClick:function(t){this.$emit("click",t)},genPlaceholder:function(){var t=this.$createElement;return this.loading&&this.showLoading?t("div",{class:sn("loading")},[this.slots("loading")||t(st,{attrs:{name:this.loadingIcon,classPrefix:this.iconPrefix},class:sn("loading-icon")})]):this.error&&this.showError?t("div",{class:sn("error")},[this.slots("error")||t(st,{attrs:{name:this.errorIcon,classPrefix:this.iconPrefix},class:sn("error-icon")})]):void 0},genImage:function(){var t=this.$createElement,e={class:sn("img"),attrs:{alt:this.alt},style:{objectFit:this.fit}};if(!this.error)return this.lazyLoad?t("img",s()([{ref:"image",directives:[{name:"lazy",value:this.src}]},e])):t("img",s()([{attrs:{src:this.src},on:{load:this.onLoad,error:this.onError}},e]))}},render:function(){var t=arguments[0];return t("div",{class:sn({round:this.round}),style:this.style,on:{click:this.onClick}},[this.genImage(),this.genPlaceholder(),this.slots()])}}),an=Object(o.a)("card"),ln=an[0],cn=an[1];function un(t,e,i,n){var r,o=e.thumb,a=i.num||Object(m.c)(e.num),l=i.price||Object(m.c)(e.price),c=i["origin-price"]||Object(m.c)(e.originPrice),u=a||l||c||i.bottom;function f(t){d(n,"click-thumb",t)}function p(){if(i.tag||e.tag)return t("div",{class:cn("tag")},[i.tag?i.tag():t(Si,{attrs:{mark:!0,type:"danger"}},[e.tag])])}return t("div",s()([{class:cn()},h(n,!0)]),[t("div",{class:cn("header")},[function(){if(i.thumb||o)return t("a",{attrs:{href:e.thumbLink},class:cn("thumb"),on:{click:f}},[i.thumb?i.thumb():t(on,{attrs:{src:o,width:"100%",height:"100%",fit:"cover","lazy-load":e.lazyLoad}}),p()])}(),t("div",{class:cn("content",{centered:e.centered})},[t("div",[i.title?i.title():e.title?t("div",{class:[cn("title"),"van-multi-ellipsis--l2"]},[e.title]):void 0,i.desc?i.desc():e.desc?t("div",{class:[cn("desc"),"van-ellipsis"]},[e.desc]):void 0,null==i.tags?void 0:i.tags()]),u&&t("div",{class:"van-card__bottom"},[null==(r=i["price-top"])?void 0:r.call(i),function(){if(l)return t("div",{class:cn("price")},[i.price?i.price():(n=e.price.toString().split("."),t("div",[t("span",{class:cn("price-currency")},[e.currency]),t("span",{class:cn("price-integer")},[n[0]]),".",t("span",{class:cn("price-decimal")},[n[1]])]))]);var n}(),function(){if(c){var n=i["origin-price"];return t("div",{class:cn("origin-price")},[n?n():e.currency+" "+e.originPrice])}}(),function(){if(a)return t("div",{class:cn("num")},[i.num?i.num():"x"+e.num])}(),null==i.bottom?void 0:i.bottom()])])]),function(){if(i.footer)return t("div",{class:cn("footer")},[i.footer()])}()])}un.props={tag:String,desc:String,thumb:String,title:String,centered:Boolean,lazyLoad:Boolean,thumbLink:String,num:[Number,String],price:[Number,String],originPrice:[Number,String],currency:{type:String,default:"\"}};var hn,dn=ln(un),fn=Object(o.a)("tab"),pn=fn[0],mn=fn[1],vn=pn({mixins:[De("vanTabs")],props:n({},Gt,{dot:Boolean,name:[Number,String],info:[Number,String],badge:[Number,String],title:String,titleStyle:null,titleClass:null,disabled:Boolean}),data:function(){return{inited:!1}},computed:{computedName:function(){var t;return null!=(t=this.name)?t:this.index},isActive:function(){var t=this.computedName===this.parent.currentName;return t&&(this.inited=!0),t}},watch:{title:function(){this.parent.setLine(),this.parent.scrollIntoView()},inited:function(t){var e=this;this.parent.lazyRender&&t&&this.$nextTick((function(){e.parent.$emit("rendered",e.computedName,e.title)}))}},render:function(t){var e=this.slots,i=this.parent,n=this.isActive,r=e();if(r||i.animated){var s=i.scrollspy||n,o=this.inited||i.scrollspy||!i.lazyRender?r:t();return i.animated?t("div",{attrs:{role:"tabpanel","aria-hidden":!n},class:mn("pane-wrapper",{inactive:!n})},[t("div",{class:mn("pane")},[o])]):t("div",{directives:[{name:"show",value:s}],attrs:{role:"tabpanel"},class:mn("pane")},[o])}}});function gn(t){var e=window.getComputedStyle(t),i="none"===e.display,n=null===t.offsetParent&&"fixed"!==e.position;return i||n}function bn(t){var e=t.interceptor,i=t.args,n=t.done;if(e){var r=e.apply(void 0,i);Object(m.f)(r)?r.then((function(t){t&&n()})).catch(m.h):r&&n()}else n()}var yn=Object(o.a)("tab"),Sn=yn[0],kn=yn[1],xn=Sn({props:{dot:Boolean,type:String,info:[Number,String],color:String,title:String,isActive:Boolean,disabled:Boolean,scrollable:Boolean,activeColor:String,inactiveColor:String},computed:{style:function(){var t={},e=this.color,i=this.isActive,n="card"===this.type;e&&n&&(t.borderColor=e,this.disabled||(i?t.backgroundColor=e:t.color=e));var r=i?this.activeColor:this.inactiveColor;return r&&(t.color=r),t}},methods:{onClick:function(){this.$emit("click")},genText:function(){var t=this.$createElement,e=t("span",{class:kn("text",{ellipsis:!this.scrollable})},[this.slots()||this.title]);return this.dot||Object(m.c)(this.info)&&""!==this.info?t("span",{class:kn("text-wrapper")},[e,t(J,{attrs:{dot:this.dot,info:this.info}})]):e}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"tab","aria-selected":this.isActive},class:[kn({active:this.isActive,disabled:this.disabled})],style:this.style,on:{click:this.onClick}},[this.genText()])}}),wn=Object(o.a)("sticky"),Cn=wn[0],On=wn[1],Tn=Cn({mixins:[W((function(t,e){if(this.scroller||(this.scroller=N(this.$el)),this.observer){var i=e?"observe":"unobserve";this.observer[i](this.$el)}t(this.scroller,"scroll",this.onScroll,!0),this.onScroll()}))],props:{zIndex:[Number,String],container:null,offsetTop:{type:[Number,String],default:0}},data:function(){return{fixed:!1,height:0,transform:0}},computed:{offsetTopPx:function(){return Object(Y.b)(this.offsetTop)},style:function(){if(this.fixed){var t={};return Object(m.c)(this.zIndex)&&(t.zIndex=this.zIndex),this.offsetTopPx&&this.fixed&&(t.top=this.offsetTopPx+"px"),this.transform&&(t.transform="translate3d(0, "+this.transform+"px, 0)"),t}}},created:function(){var t=this;!m.g&&window.IntersectionObserver&&(this.observer=new IntersectionObserver((function(e){e[0].intersectionRatio>0&&t.onScroll()}),{root:document.body}))},methods:{onScroll:function(){var t=this;if(!gn(this.$el)){this.height=this.$el.offsetHeight;var e=this.container,i=this.offsetTopPx,n=A(window),r=V(this.$el),s=function(){t.$emit("scroll",{scrollTop:n,isFixed:t.fixed})};if(e){var o=r+e.offsetHeight;if(n+i+this.height>o){var a=this.height+n-o;return ar?(this.fixed=!0,this.transform=0):this.fixed=!1,s()}}},render:function(){var t=arguments[0],e=this.fixed,i={height:e?this.height+"px":null};return t("div",{style:i},[t("div",{class:On({fixed:e}),style:this.style},[this.slots()])])}}),$n=Object(o.a)("tabs"),Bn=$n[0],In=$n[1],Dn=Bn({mixins:[R],props:{count:Number,duration:[Number,String],animated:Boolean,swipeable:Boolean,currentIndex:Number},computed:{style:function(){if(this.animated)return{transform:"translate3d("+-1*this.currentIndex*100+"%, 0, 0)",transitionDuration:this.duration+"s"}},listeners:function(){if(this.swipeable)return{touchstart:this.touchStart,touchmove:this.touchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}}},methods:{onTouchEnd:function(){var t=this.direction,e=this.deltaX,i=this.currentIndex;"horizontal"===t&&this.offsetX>=50&&(e>0&&0!==i?this.$emit("change",i-1):e<0&&i!==this.count-1&&this.$emit("change",i+1))},genchildren:function(){var t=this.$createElement;return this.animated?t("div",{class:In("track"),style:this.style},[this.slots()]):this.slots()}},render:function(){var t=arguments[0];return t("div",{class:In("content",{animated:this.animated}),on:n({},this.listeners)},[this.genChildren()])}}),En=Object(o.a)("tabs"),jn=En[0],Pn=En[1],Ln=jn({mixins:[Ee("vanTabs"),W((function(t){this.scroller||(this.scroller=N(this.$el)),t(window,"resize",this.resize,!0),this.scrollspy&&t(this.scroller,"scroll",this.onScroll,!0)}))],model:{prop:"active"},props:{color:String,border:Boolean,sticky:Boolean,animated:Boolean,swipeable:Boolean,scrollspy:Boolean,background:String,lineWidth:[Number,String],lineHeight:[Number,String],beforeChange:Function,titleActiveColor:String,titleInactiveColor:String,type:{type:String,default:"line"},active:{type:[Number,String],default:0},ellipsis:{type:Boolean,default:!0},duration:{type:[Number,String],default:.3},offsetTop:{type:[Number,String],default:0},lazyRender:{type:Boolean,default:!0},swipeThreshold:{type:[Number,String],default:5}},data:function(){return{position:"",currentIndex:null,lineStyle:{backgroundColor:this.color}}},computed:{scrollable:function(){return this.children.length>this.swipeThreshold||!this.ellipsis},navStyle:function(){return{borderColor:this.color,background:this.background}},currentName:function(){var t=this.children[this.currentIndex];if(t)return t.computedName},offsetTopPx:function(){return Object(Y.b)(this.offsetTop)},scrollOffset:function(){return this.sticky?this.offsetTopPx+this.tabHeight:0}},watch:{color:"setLine",active:function(t){t!==this.currentName&&this.setCurrentIndexByName(t)},children:function(){var t=this;this.setCurrentIndexByName(this.active||this.currentName),this.setLine(),this.$nextTick((function(){t.scrollIntoView(!0)}))},currentIndex:function(){this.scrollIntoView(),this.setLine(),this.stickyFixed&&!this.scrollspy&&F(Math.ceil(V(this.$el)-this.offsetTopPx))},scrollspy:function(t){t?b(this.scroller,"scroll",this.onScroll,!0):y(this.scroller,"scroll",this.onScroll)}},mounted:function(){this.init()},activated:function(){this.init(),this.setLine()},methods:{resize:function(){this.setLine()},init:function(){var t=this;this.$nextTick((function(){var e;t.inited=!0,t.tabHeight=P(e=t.$refs.wrap)?e.innerHeight:e.getBoundingClientRect().height,t.scrollIntoView(!0)}))},setLine:function(){var t=this,e=this.inited;this.$nextTick((function(){var i=t.$refs.titles;if(i&&i[t.currentIndex]&&"line"===t.type&&!gn(t.$el)){var n=i[t.currentIndex].$el,r=t.lineWidth,s=t.lineHeight,o=n.offsetLeft+n.offsetWidth/2,a={width:Object(Y.a)(r),backgroundColor:t.color,transform:"translateX("+o+"px) translateX(-50%)"};if(e&&(a.transitionDuration=t.duration+"s"),Object(m.c)(s)){var l=Object(Y.a)(s);a.height=l,a.borderRadius=l}t.lineStyle=a}}))},setCurrentIndexByName:function(t){var e=this.children.filter((function(e){return e.computedName===t})),i=(this.children[0]||{}).index||0;this.setCurrentIndex(e.length?e[0].index:i)},setCurrentIndex:function(t){var e=this.findAvailableTab(t);if(Object(m.c)(e)){var i=this.children[e],n=i.computedName,r=null!==this.currentIndex;this.currentIndex=e,n!==this.active&&(this.$emit("input",n),r&&this.$emit("change",n,i.title))}},findAvailableTab:function(t){for(var e=t=0&&te||!s&&re?Object(Vi.c)(i):n&&Object(Vi.c)(n)}()}(this.scroller,r,t?0:+this.duration,(function(){e.lockScroll=!1}))}}},onScroll:function(){if(this.scrollspy&&!this.lockScroll){var t=this.getCurrentIndexOnScroll();this.setCurrentIndex(t)}},getCurrentIndexOnScroll:function(){for(var t,e=this.children,i=0;ithis.scrollOffset)return 0===i?0:i-1}return e.length-1}},render:function(){var t,e=this,i=arguments[0],n=this.type,r=this.animated,s=this.scrollable,o=this.children.map((function(t,r){var o;return i(xn,{ref:"titles",refInFor:!0,attrs:{type:n,dot:t.dot,info:null!=(o=t.badge)?o:t.info,title:t.title,color:e.color,isActive:r===e.currentIndex,disabled:t.disabled,scrollable:s,activeColor:e.titleActiveColor,inactiveColor:e.titleInactiveColor},style:t.titleStyle,class:t.titleClass,scopedSlots:{default:function(){return t.slots("title")}},on:{click:function(){e.onClick(t,r)}}})})),a=i("div",{ref:"wrap",class:[Pn("wrap",{scrollable:s}),(t={},t[Bt]="line"===n&&this.border,t)]},[i("div",{ref:"nav",attrs:{role:"tablist"},class:Pn("nav",[n,{complete:this.scrollable}]),style:this.navStyle},[this.slots("nav-left"),o,"line"===n&&i("div",{class:Pn("line"),style:this.lineStyle}),this.slots("nav-right")])]);return i("div",{class:Pn([n])},[this.sticky?i(Tn,{attrs:{container:this.$el,offsetTop:this.offsetTop},on:{scroll:this.onSticktScroll}},[a]):a,i(Dn,{attrs:{count:this.children.length,animated:r,duration:this.duration,swipeable:this.swipeable,currentIndex:this.currentIndex},on:{change:this.setCurrentIndex}},[this.slots()])])}}),Nn=Object(o.a)("cascader"),An=Nn[0],Mn=Nn[1],zn=Nn[2],Fn=An({props:{title:String,value:[Number,String],fieldNames:Object,placeholder:String,activeColor:String,options:{type:Array,default:function(){return[]}},closeable:{type:Boolean,default:!0}},data:function(){return{tabs:[],activeTab:0}},computed:{textKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.text)||"text"},valueKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.value)||"value"},childrenKey:function(){var t;return(null==(t=this.fieldNames)?void 0:t.children)||"children"}},watch:{options:{deep:!0,handler:"updateTabs"},value:function(t){var e=this;if((t||0===t)&&-1!==this.tabs.map((function(t){var i;return null==(i=t.selectedOption)?void 0:i[e.valueKey]})).indexOf(t))return;this.updateTabs()}},created:function(){this.updateTabs()},methods:{getSelectedOptionsByValue:function(t,e){for(var i=0;ie+1&&(this.tabs=this.tabs.slice(0,e+1)),t[this.childrenKey]){var n={options:t[this.childrenKey],selectedOption:null};this.tabs[e+1]?this.$set(this.tabs,e+1,n):this.tabs.push(n),this.$nextTick((function(){i.activeTab++}))}var r=this.tabs.map((function(t){return t.selectedOption})).filter((function(t){return!!t})),s={value:t[this.valueKey],tabIndex:e,selectedOptions:r};this.$emit("input",t[this.valueKey]),this.$emit("change",s),t[this.childrenKey]||this.$emit("finish",s)},onClose:function(){this.$emit("close")},renderHeader:function(){var t=this.$createElement;return t("div",{class:Mn("header")},[t("h2",{class:Mn("title")},[this.slots("title")||this.title]),this.closeable?t(st,{attrs:{name:"cross"},class:Mn("close-icon"),on:{click:this.onClose}}):null])},renderOptions:function(t,e,i){var n=this,r=this.$createElement;return r("ul",{class:Mn("options")},[t.map((function(t){var s=e&&t[n.valueKey]===e[n.valueKey];return r("li",{class:Mn("option",{selected:s}),style:{color:s?n.activeColor:null},on:{click:function(){n.onSelect(t,i)}}},[r("span",[t[n.textKey]]),s?r(st,{attrs:{name:"success"},class:Mn("selected-icon")}):null])}))])},renderTab:function(t,e){var i=this.$createElement,n=t.options,r=t.selectedOption,s=r?r[this.textKey]:this.placeholder||zn("select");return i(vn,{attrs:{title:s,titleClass:Mn("tab",{unselected:!r})}},[this.renderOptions(n,r,e)])},renderTabs:function(){var t=this;return(0,this.$createElement)(Ln,{attrs:{animated:!0,swipeable:!0,swipeThreshold:0,color:this.activeColor},class:Mn("tabs"),model:{value:t.activeTab,callback:function(e){t.activeTab=e}}},[this.tabs.map(this.renderTab)])}},render:function(){var t=arguments[0];return t("div",{class:Mn()},[this.renderHeader(),this.renderTabs()])}}),Vn=Object(o.a)("cell-group"),Rn=Vn[0],Hn=Vn[1];function _n(t,e,i,n){var r,o=t("div",s()([{class:[Hn(),(r={},r[Bt]=e.border,r)]},h(n,!0)]),[null==i.default?void 0:i.default()]);return e.title||i.title?t("div",[t("div",{class:Hn("title")},[i.title?i.title():e.title]),o]):o}_n.props={title:String,border:{type:Boolean,default:!0}};var Wn=Rn(_n),qn=Object(o.a)("checkbox"),Kn=(0,qn[0])({mixins:[ki({bem:qn[1],role:"checkbox",parent:"vanCheckbox"})],computed:{checked:{get:function(){return this.parent?-1!==this.parent.value.indexOf(this.name):this.value},set:function(t){this.parent?this.setParentValue(t):this.$emit("input",t)}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggle:function(t){var e=this;void 0===t&&(t=!this.checked),clearTimeout(this.toggleTask),this.toggleTask=setTimeout((function(){e.checked=t}))},setParentValue:function(t){var e=this.parent,i=e.value.slice();if(t){if(e.max&&i.length>=e.max)return;-1===i.indexOf(this.name)&&(i.push(this.name),e.$emit("input",i))}else{var n=i.indexOf(this.name);-1!==n&&(i.splice(n,1),e.$emit("input",i))}}}}),Un=Object(o.a)("checkbox-group"),Yn=Un[0],Xn=Un[1],Qn=Yn({mixins:[Ee("vanCheckbox"),ei],props:{max:[Number,String],disabled:Boolean,direction:String,iconSize:[Number,String],checkedColor:String,value:{type:Array,default:function(){return[]}}},watch:{value:function(t){this.$emit("change",t)}},methods:{toggleAll:function(t){void 0===t&&(t={}),"boolean"==typeof t&&(t={checked:t});var e=t,i=e.checked,n=e.skipDisabled,r=this.children.filter((function(t){return t.disabled&&n?t.checked:null!=i?i:!t.checked})).map((function(t){return t.name}));this.$emit("input",r)}},render:function(){var t=arguments[0];return t("div",{class:Xn([this.direction])},[this.slots()])}}),Gn=Object(o.a)("circle"),Zn=Gn[0],Jn=Gn[1],tr=0;function er(t){return Math.min(Math.max(t,0),100)}var ir=Zn({props:{text:String,size:[Number,String],color:[String,Object],layerColor:String,strokeLinecap:String,value:{type:Number,default:0},speed:{type:[Number,String],default:0},fill:{type:String,default:"none"},rate:{type:[Number,String],default:100},strokeWidth:{type:[Number,String],default:40},clockwise:{type:Boolean,default:!0}},beforeCreate:function(){this.uid="van-circle-gradient-"+tr++},computed:{style:function(){var t=Object(Y.a)(this.size);return{width:t,height:t}},path:function(){return t=this.clockwise,"M "+(e=this.viewBoxSize)/2+" "+e/2+" m 0, -500 a 500, 500 0 1, "+(i=t?1:0)+" 0, 1000 a 500, 500 0 1, "+i+" 0, -1000";var t,e,i},viewBoxSize:function(){return+this.strokeWidth+1e3},layerStyle:function(){return{fill:""+this.fill,stroke:""+this.layerColor,strokeWidth:this.strokeWidth+"px"}},hoverStyle:function(){var t=3140*this.value/100;return{stroke:""+(this.gradient?"url(#"+this.uid+")":this.color),strokeWidth:+this.strokeWidth+1+"px",strokeLinecap:this.strokeLinecap,strokeDasharray:t+"px 3140px"}},gradient:function(){return Object(m.e)(this.color)},LinearGradient:function(){var t=this,e=this.$createElement;if(this.gradient){var i=Object.keys(this.color).sort((function(t,e){return parseFloat(t)-parseFloat(e)})).map((function(i,n){return e("stop",{key:n,attrs:{offset:i,"stop-color":t.color[i]}})}));return e("defs",[e("linearGradient",{attrs:{id:this.uid,x1:"100%",y1:"0%",x2:"0%",y2:"0%"}},[i])])}}},watch:{rate:{handler:function(t){this.startTime=Date.now(),this.startRate=this.value,this.endRate=er(t),this.increase=this.endRate>this.startRate,this.duration=Math.abs(1e3*(this.startRate-this.endRate)/this.speed),this.speed?(Object(Vi.a)(this.rafId),this.rafId=Object(Vi.c)(this.animate)):this.$emit("input",this.endRate)},immediate:!0}},methods:{animate:function(){var t=Date.now(),e=Math.min((t-this.startTime)/this.duration,1)*(this.endRate-this.startRate)+this.startRate;this.$emit("input",er(parseFloat(e.toFixed(1)))),(this.increase?ethis.endRate)&&(this.rafId=Object(Vi.c)(this.animate))}},render:function(){var t=arguments[0];return t("div",{class:Jn(),style:this.style},[t("svg",{attrs:{viewBox:"0 0 "+this.viewBoxSize+" "+this.viewBoxSize}},[this.LinearGradient,t("path",{class:Jn("layer"),style:this.layerStyle,attrs:{d:this.path}}),t("path",{attrs:{d:this.path},class:Jn("hover"),style:this.hoverStyle})]),this.slots()||this.text&&t("div",{class:Jn("text")},[this.text])])}}),nr=Object(o.a)("col"),rr=nr[0],sr=nr[1],or=rr({mixins:[De("vanRow")],props:{span:[Number,String],offset:[Number,String],tag:{type:String,default:"div"}},computed:{style:function(){var t=this.index,e=(this.parent||{}).spaces;if(e&&e[t]){var i=e[t],n=i.left,r=i.right;return{paddingLeft:n?n+"px":null,paddingRight:r?r+"px":null}}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],i=this.span,n=this.offset;return e(this.tag,{style:this.style,class:sr((t={},t[i]=i,t["offset-"+n]=n,t)),on:{click:this.onClick}},[this.slots()])}}),ar=Object(o.a)("collapse"),lr=ar[0],cr=ar[1],ur=lr({mixins:[Ee("vanCollapse")],props:{accordion:Boolean,value:[String,Number,Array],border:{type:Boolean,default:!0}},methods:{switch:function(t,e){this.accordion||(t=e?this.value.concat(t):this.value.filter((function(e){return e!==t}))),this.$emit("change",t),this.$emit("input",t)}},render:function(){var t,e=arguments[0];return e("div",{class:[cr(),(t={},t[Bt]=this.border,t)]},[this.slots()])}}),hr=Object(o.a)("collapse-item"),dr=hr[0],fr=hr[1],pr=["title","icon","right-icon"],mr=dr({mixins:[De("vanCollapse")],props:n({},Zt,{name:[Number,String],disabled:Boolean,isLink:{type:Boolean,default:!0}}),data:function(){return{show:null,inited:null}},computed:{currentName:function(){var t;return null!=(t=this.name)?t:this.index},expanded:function(){var t=this;if(!this.parent)return null;var e=this.parent,i=e.value;return e.accordion?i===this.currentName:i.some((function(e){return e===t.currentName}))}},created:function(){this.show=this.expanded,this.inited=this.expanded},watch:{expanded:function(t,e){var i=this;null!==e&&(t&&(this.show=!0,this.inited=!0),(t?this.$nextTick:Vi.c)((function(){var e=i.$refs,n=e.content,r=e.wrapper;if(n&&r){var s=n.offsetHeight;if(s){var o=s+"px";r.style.height=t?0:o,Object(Vi.b)((function(){r.style.height=t?o:0}))}else i.onTransitionEnd()}})))}},methods:{onClick:function(){this.disabled||this.toggle()},toggle:function(t){void 0===t&&(t=!this.expanded);var e=this.parent,i=this.currentName,n=e.accordion&&i===e.value?"":i;this.parent.switch(n,t)},onTransitionEnd:function(){this.expanded?this.$refs.wrapper.style.height="":this.show=!1},genTitle:function(){var t=this,e=this.$createElement,i=this.border,r=this.disabled,s=this.expanded,o=pr.reduce((function(e,i){return t.slots(i)&&(e[i]=function(){return t.slots(i)}),e}),{});return this.slots("value")&&(o.default=function(){return t.slots("value")}),e(ne,{attrs:{role:"button",tabindex:r?-1:0,"aria-expanded":String(s)},class:fr("title",{disabled:r,expanded:s,borderless:!i}),on:{click:this.onClick},scopedSlots:o,props:n({},this.$props)})},genContent:function(){var t=this.$createElement;if(this.inited)return t("div",{directives:[{name:"show",value:this.show}],ref:"wrapper",class:fr("wrapper"),on:{transitionend:this.onTransitionEnd}},[t("div",{ref:"content",class:fr("content")},[this.slots()])])}},render:function(){var t=arguments[0];return t("div",{class:[fr({border:this.index&&this.border})]},[this.genTitle(),this.genContent()])}}),vr=Object(o.a)("contact-card"),gr=vr[0],br=vr[1],yr=vr[2];function Sr(t,e,i,n){var r=e.type,o=e.editable;return t(ne,s()([{attrs:{center:!0,border:!1,isLink:o,valueClass:br("value"),icon:"edit"===r?"contact":"add-square"},class:br([r]),on:{click:function(t){o&&d(n,"click",t)}}},h(n)]),["add"===r?e.addText||yr("addText"):[t("div",[yr("name")+":"+e.name]),t("div",[yr("tel")+":"+e.tel])]])}Sr.props={tel:String,name:String,addText:String,editable:{type:Boolean,default:!0},type:{type:String,default:"add"}};var kr=gr(Sr),xr=Object(o.a)("contact-edit"),wr=xr[0],Cr=xr[1],Or=xr[2],Tr={tel:"",name:""},$r=wr({props:{isEdit:Boolean,isSaving:Boolean,isDeleting:Boolean,showSetDefault:Boolean,setDefaultLabel:String,contactInfo:{type:Object,default:function(){return n({},Tr)}},telValidator:{type:Function,default:xt}},data:function(){return{data:n({},Tr,this.contactInfo),errorInfo:{name:"",tel:""}}},watch:{contactInfo:function(t){this.data=n({},Tr,t)}},methods:{onFocus:function(t){this.errorInfo[t]=""},getErrorMessageByKey:function(t){var e=this.data[t].trim();switch(t){case"name":return e?"":Or("nameInvalid");case"tel":return this.telValidator(e)?"":Or("telInvalid")}},onSave:function(){var t=this;["name","tel"].every((function(e){var i=t.getErrorMessageByKey(e);return i&&(t.errorInfo[e]=i),!i}))&&!this.isSaving&&this.$emit("save",this.data)},onDelete:function(){var t=this;Ue.confirm({title:Or("confirmDelete")}).then((function(){t.$emit("delete",t.data)}))}},render:function(){var t=this,e=arguments[0],i=this.data,n=this.errorInfo,r=function(e){return function(){return t.onFocus(e)}};return e("div",{class:Cr()},[e("div",{class:Cr("fields")},[e(ce,{attrs:{clearable:!0,maxlength:"30",label:Or("name"),placeholder:Or("nameEmpty"),errorMessage:n.name},on:{focus:r("name")},model:{value:i.name,callback:function(e){t.$set(i,"name",e)}}}),e(ce,{attrs:{clearable:!0,type:"tel",label:Or("tel"),placeholder:Or("telEmpty"),errorMessage:n.tel},on:{focus:r("tel")},model:{value:i.tel,callback:function(e){t.$set(i,"tel",e)}}})]),this.showSetDefault&&e(ne,{attrs:{title:this.setDefaultLabel,border:!1},class:Cr("switch-cell")},[e(si,{attrs:{size:24},slot:"right-icon",on:{change:function(e){t.$emit("change-default",e)}},model:{value:i.isDefault,callback:function(e){t.$set(i,"isDefault",e)}}})]),e("div",{class:Cr("buttons")},[e(Be,{attrs:{block:!0,round:!0,type:"danger",text:Or("save"),loading:this.isSaving},on:{click:this.onSave}}),this.isEdit&&e(Be,{attrs:{block:!0,round:!0,text:Or("delete"),loading:this.isDeleting},on:{click:this.onDelete}})])])}}),Br=Object(o.a)("contact-list"),Ir=Br[0],Dr=Br[1],Er=Br[2];function jr(t,e,i,n){var r=e.list&&e.list.map((function(i,r){function s(){d(n,"input",i.id),d(n,"select",i,r)}return t(ne,{key:i.id,attrs:{isLink:!0,center:!0,valueClass:Dr("item-value")},class:Dr("item"),scopedSlots:{icon:function(){return t(st,{attrs:{name:"edit"},class:Dr("edit"),on:{click:function(t){t.stopPropagation(),d(n,"edit",i,r)}}})},default:function(){var n=[i.name+","+i.tel];return i.isDefault&&e.defaultTagText&&n.push(t(Si,{attrs:{type:"danger",round:!0},class:Dr("item-tag")},[e.defaultTagText])),n},"right-icon":function(){return t(wi,{attrs:{name:i.id,iconSize:16,checkedColor:Ct},on:{click:s}})}},on:{click:s}})}));return t("div",s()([{class:Dr()},h(n)]),[t(mi,{attrs:{value:e.value},class:Dr("group")},[r]),t("div",{class:Dr("bottom")},[t(Be,{attrs:{round:!0,block:!0,type:"danger",text:e.addText||Er("addText")},class:Dr("add"),on:{click:function(){d(n,"add")}}})])])}jr.props={value:null,list:Array,addText:String,defaultTagText:String};var Pr=Ir(jr),Lr=i(2);var Nr=Object(o.a)("count-down"),Ar=Nr[0],Mr=Nr[1],zr=Ar({props:{millisecond:Boolean,time:{type:[Number,String],default:0},format:{type:String,default:"HH:mm:ss"},autoStart:{type:Boolean,default:!0}},data:function(){return{remain:0}},computed:{timeData:function(){return t=this.remain,{days:Math.floor(t/864e5),hours:Math.floor(t%864e5/36e5),minutes:Math.floor(t%36e5/6e4),seconds:Math.floor(t%6e4/1e3),milliseconds:Math.floor(t%1e3)};var t},formattedTime:function(){return function(t,e){var i=e.days,n=e.hours,r=e.minutes,s=e.seconds,o=e.milliseconds;if(-1===t.indexOf("DD")?n+=24*i:t=t.replace("DD",Object(Lr.b)(i)),-1===t.indexOf("HH")?r+=60*n:t=t.replace("HH",Object(Lr.b)(n)),-1===t.indexOf("mm")?s+=60*r:t=t.replace("mm",Object(Lr.b)(r)),-1===t.indexOf("ss")?o+=1e3*s:t=t.replace("ss",Object(Lr.b)(s)),-1!==t.indexOf("S")){var a=Object(Lr.b)(o,3);t=-1!==t.indexOf("SSS")?t.replace("SSS",a):-1!==t.indexOf("SS")?t.replace("SS",a.slice(0,2)):t.replace("S",a.charAt(0))}return t}(this.format,this.timeData)}},watch:{time:{immediate:!0,handler:"reset"}},activated:function(){this.keepAlivePaused&&(this.counting=!0,this.keepAlivePaused=!1,this.tick())},deactivated:function(){this.counting&&(this.pause(),this.keepAlivePaused=!0)},beforeDestroy:function(){this.pause()},methods:{start:function(){this.counting||(this.counting=!0,this.endTime=Date.now()+this.remain,this.tick())},pause:function(){this.counting=!1,Object(Vi.a)(this.rafId)},reset:function(){this.pause(),this.remain=+this.time,this.autoStart&&this.start()},tick:function(){m.b&&(this.millisecond?this.microTick():this.macroTick())},microTick:function(){var t=this;this.rafId=Object(Vi.c)((function(){t.counting&&(t.setRemain(t.getRemain()),t.remain>0&&t.microTick())}))},macroTick:function(){var t=this;this.rafId=Object(Vi.c)((function(){if(t.counting){var e,i,n=t.getRemain();e=n,i=t.remain,(Math.floor(e/1e3)!==Math.floor(i/1e3)||0===n)&&t.setRemain(n),t.remain>0&&t.macroTick()}}))},getRemain:function(){return Math.max(this.endTime-Date.now(),0)},setRemain:function(t){this.remain=t,this.$emit("change",this.timeData),0===t&&(this.pause(),this.$emit("finish"))}},render:function(){var t=arguments[0];return t("div",{class:Mr()},[this.slots("default",this.timeData)||this.formattedTime])}}),Fr=Object(o.a)("coupon"),Vr=Fr[0],Rr=Fr[1],Hr=Fr[2];function _r(t){var e=new Date(1e3*t);return e.getFullYear()+"."+Object(Lr.b)(e.getMonth()+1)+"."+Object(Lr.b)(e.getDate())}function Wr(t){return(t/100).toFixed(t%100==0?0:t%10==0?1:2)}var qr=Vr({props:{coupon:Object,chosen:Boolean,disabled:Boolean,currency:{type:String,default:"\"}},computed:{validPeriod:function(){var t=this.coupon,e=t.startAt,i=t.endAt;return _r(e)+" - "+_r(i)},faceAmount:function(){var t,e=this.coupon;if(e.valueDesc)return e.valueDesc+""+(e.unitDesc||"")+"";if(e.denominations){var i=Wr(e.denominations);return""+this.currency+" "+i}return e.discount?Hr("discount",((t=e.discount)/10).toFixed(t%10==0?0:1)):""},conditionMessage:function(){var t=Wr(this.coupon.originCondition);return"0"===t?Hr("unlimited"):Hr("condition",t)}},render:function(){var t=arguments[0],e=this.coupon,i=this.disabled,n=i&&e.reason||e.description;return t("div",{class:Rr({disabled:i})},[t("div",{class:Rr("content")},[t("div",{class:Rr("head")},[t("h2",{class:Rr("amount"),domProps:{innerHTML:this.faceAmount}}),t("p",{class:Rr("condition")},[this.coupon.condition||this.conditionMessage])]),t("div",{class:Rr("body")},[t("p",{class:Rr("name")},[e.name]),t("p",{class:Rr("valid")},[this.validPeriod]),!this.disabled&&t(Kn,{attrs:{size:18,value:this.chosen,checkedColor:Ct},class:Rr("corner")})])]),n&&t("p",{class:Rr("description")},[n])])}}),Kr=Object(o.a)("coupon-cell"),Ur=Kr[0],Yr=Kr[1],Xr=Kr[2];function Qr(t,e,i,n){var r=e.coupons[+e.chosenCoupon],o=function(t){var e=t.coupons,i=t.chosenCoupon,n=t.currency,r=e[+i];if(r){var s=0;return Object(m.c)(r.value)?s=r.value:Object(m.c)(r.denominations)&&(s=r.denominations),"-"+n+" "+(s/100).toFixed(2)}return 0===e.length?Xr("tips"):Xr("count",e.length)}(e);return t(ne,s()([{class:Yr(),attrs:{value:o,title:e.title||Xr("title"),border:e.border,isLink:e.editable,valueClass:Yr("value",{selected:r})}},h(n,!0)]))}Qr.model={prop:"chosenCoupon"},Qr.props={title:String,coupons:{type:Array,default:function(){return[]}},currency:{type:String,default:"\"},border:{type:Boolean,default:!0},editable:{type:Boolean,default:!0},chosenCoupon:{type:[Number,String],default:-1}};var Gr=Ur(Qr),Zr=Object(o.a)("coupon-list"),Jr=Zr[0],ts=Zr[1],es=Zr[2],is=Jr({model:{prop:"code"},props:{code:String,closeButtonText:String,inputPlaceholder:String,enabledTitle:String,disabledTitle:String,exchangeButtonText:String,exchangeButtonLoading:Boolean,exchangeButtonDisabled:Boolean,exchangeMinLength:{type:Number,default:1},chosenCoupon:{type:Number,default:-1},coupons:{type:Array,default:function(){return[]}},disabledCoupons:{type:Array,default:function(){return[]}},displayedCouponIndex:{type:Number,default:-1},showExchangeBar:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showCount:{type:Boolean,default:!0},currency:{type:String,default:"\"},emptyImage:{type:String,default:"https://img01.yzcdn.cn/vant/coupon-empty.png"}},data:function(){return{tab:0,winHeight:window.innerHeight,currentCode:this.code||""}},computed:{buttonDisabled:function(){return!this.exchangeButtonLoading&&(this.exchangeButtonDisabled||!this.currentCode||this.currentCode.length1))return 0;t=t.slice(1)}return parseInt(t,10)}(n.originColumns[e].values[s[e]])};"month-day"===r?(t=this.innerValue.getFullYear(),e=o("month"),i=o("day")):(t=o("year"),e=o("month"),i="year-month"===r?1:o("day"));var a=Zi(t,e);i=i>a?a:i;var l=0,c=0;"datehour"===r&&(l=o("hour")),"datetime"===r&&(l=o("hour"),c=o("minute"));var u=new Date(t,e-1,i,l,c);this.innerValue=this.formatValue(u)},onChange:function(t){var e=this;this.updateInnerValue(),this.$nextTick((function(){e.$nextTick((function(){e.$emit("change",t)}))}))},updateColumnValue:function(){var t=this,e=this.innerValue,i=this.formatter,n=this.originColumns.map((function(t){switch(t.type){case"year":return i("year",""+e.getFullYear());case"month":return i("month",Object(Lr.b)(e.getMonth()+1));case"day":return i("day",Object(Lr.b)(e.getDate()));case"hour":return i("hour",Object(Lr.b)(e.getHours()));case"minute":return i("minute",Object(Lr.b)(e.getMinutes()));default:return null}}));this.$nextTick((function(){t.getPicker().setValues(n)}))}}}),ls=Object(o.a)("datetime-picker"),cs=ls[0],us=ls[1],hs=cs({props:n({},ss.props,as.props),methods:{getPicker:function(){return this.$refs.root.getPicker()}},render:function(){var t=arguments[0],e="time"===this.type?ss:as;return t(e,{ref:"root",class:us(),scopedSlots:this.$scopedSlots,props:n({},this.$props),on:n({},this.$listeners)})}}),ds=Object(o.a)("divider"),fs=ds[0],ps=ds[1];function ms(t,e,i,n){var r;return t("div",s()([{attrs:{role:"separator"},style:{borderColor:e.borderColor},class:ps((r={dashed:e.dashed,hairline:e.hairline},r["content-"+e.contentPosition]=i.default,r))},h(n,!0)]),[i.default&&i.default()])}ms.props={dashed:Boolean,hairline:{type:Boolean,default:!0},contentPosition:{type:String,default:"center"}};var vs=fs(ms),gs=Object(o.a)("dropdown-item"),bs=gs[0],ys=gs[1],Ss=bs({mixins:[H({ref:"wrapper"}),De("vanDropdownMenu")],props:{value:null,title:String,disabled:Boolean,titleClass:String,options:{type:Array,default:function(){return[]}},lazyRender:{type:Boolean,default:!0}},data:function(){return{transition:!0,showPopup:!1,showWrapper:!1}},computed:{displayTitle:function(){var t=this;if(this.title)return this.title;var e=this.options.filter((function(e){return e.value===t.value}));return e.length?e[0].text:""}},watch:{showPopup:function(t){this.bindScroll(t)}},beforeCreate:function(){var t=this,e=function(e){return function(){return t.$emit(e)}};this.onOpen=e("open"),this.onClose=e("close"),this.onOpened=e("opened")},methods:{toggle:function(t,e){void 0===t&&(t=!this.showPopup),void 0===e&&(e={}),t!==this.showPopup&&(this.transition=!e.immediate,this.showPopup=t,t&&(this.parent.updateOffset(),this.showWrapper=!0))},bindScroll:function(t){(t?b:y)(this.parent.scroller,"scroll",this.onScroll,!0)},onScroll:function(){this.parent.updateOffset()},onClickWrapper:function(t){this.getContainer&&t.stopPropagation()}},render:function(){var t=this,e=arguments[0],i=this.parent,n=i.zIndex,r=i.offset,s=i.overlay,o=i.duration,a=i.direction,l=i.activeColor,c=i.closeOnClickOverlay,u=this.options.map((function(i){var n=i.value===t.value;return e(ne,{attrs:{clickable:!0,icon:i.icon,title:i.text},key:i.value,class:ys("option",{active:n}),style:{color:n?l:""},on:{click:function(){t.showPopup=!1,i.value!==t.value&&(t.$emit("input",i.value),t.$emit("change",i.value))}}},[n&&e(st,{class:ys("icon"),attrs:{color:l,name:"success"}})])})),h={zIndex:n};return"down"===a?h.top=r+"px":h.bottom=r+"px",e("div",[e("div",{directives:[{name:"show",value:this.showWrapper}],ref:"wrapper",style:h,class:ys([a]),on:{click:this.onClickWrapper}},[e(ct,{attrs:{overlay:s,position:"down"===a?"top":"bottom",duration:this.transition?o:0,lazyRender:this.lazyRender,overlayStyle:{position:"absolute"},closeOnClickOverlay:c},class:ys("content"),on:{open:this.onOpen,close:this.onClose,opened:this.onOpened,closed:function(){t.showWrapper=!1,t.$emit("closed")}},model:{value:t.showPopup,callback:function(e){t.showPopup=e}}},[u,this.slots("default")])])])}}),ks=function(t){return{props:{closeOnClickOutside:{type:Boolean,default:!0}},data:function(){var e=this;return{clickOutsideHandler:function(i){e.closeOnClickOutside&&!e.$el.contains(i.target)&&e[t.method]()}}},mounted:function(){b(document,t.event,this.clickOutsideHandler)},beforeDestroy:function(){y(document,t.event,this.clickOutsideHandler)}}},xs=Object(o.a)("dropdown-menu"),ws=xs[0],Cs=xs[1],Os=ws({mixins:[Ee("vanDropdownMenu"),ks({event:"click",method:"onClickOutside"})],props:{zIndex:[Number,String],activeColor:String,overlay:{type:Boolean,default:!0},duration:{type:[Number,String],default:.2},direction:{type:String,default:"down"},closeOnClickOverlay:{type:Boolean,default:!0}},data:function(){return{offset:0}},computed:{scroller:function(){return N(this.$el)},opened:function(){return this.children.some((function(t){return t.showWrapper}))},barStyle:function(){if(this.opened&&Object(m.c)(this.zIndex))return{zIndex:1+this.zIndex}}},methods:{updateOffset:function(){if(this.$refs.bar){var t=this.$refs.bar.getBoundingClientRect();"down"===this.direction?this.offset=t.bottom:this.offset=window.innerHeight-t.top}},toggleItem:function(t){this.children.forEach((function(e,i){i===t?e.toggle():e.showPopup&&e.toggle(!1,{immediate:!0})}))},onClickOutside:function(){this.children.forEach((function(t){t.toggle(!1)}))}},render:function(){var t=this,e=arguments[0],i=this.children.map((function(i,n){return e("div",{attrs:{role:"button",tabindex:i.disabled?-1:0},class:Cs("item",{disabled:i.disabled}),on:{click:function(){i.disabled||t.toggleItem(n)}}},[e("span",{class:[Cs("title",{active:i.showPopup,down:i.showPopup===("down"===t.direction)}),i.titleClass],style:{color:i.showPopup?t.activeColor:""}},[e("div",{class:"van-ellipsis"},[i.slots("title")||i.displayTitle])])])}));return e("div",{class:Cs()},[e("div",{ref:"bar",style:this.barStyle,class:Cs("bar",{opened:this.opened})},[i]),this.slots("default")])}}),Ts={render:function(){var t=arguments[0],e=function(e,i,n){return t("stop",{attrs:{"stop-color":e,offset:i+"%","stop-opacity":n}})};return t("svg",{attrs:{viewBox:"0 0 160 160",xmlns:"http://www.w3.org/2000/svg"}},[t("defs",[t("linearGradient",{attrs:{id:"c",x1:"64.022%",y1:"100%",x2:"64.022%",y2:"0%"}},[e("#FFF",0,.5),e("#F2F3F5",100)]),t("linearGradient",{attrs:{id:"d",x1:"64.022%",y1:"96.956%",x2:"64.022%",y2:"0%"}},[e("#F2F3F5",0,.3),e("#F2F3F5",100)]),t("linearGradient",{attrs:{id:"h",x1:"50%",y1:"0%",x2:"50%",y2:"84.459%"}},[e("#EBEDF0",0),e("#DCDEE0",100,0)]),t("linearGradient",{attrs:{id:"i",x1:"100%",y1:"0%",x2:"100%",y2:"100%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:"k",x1:"100%",y1:"100%",x2:"100%",y2:"0%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:"m",x1:"0%",y1:"43.982%",x2:"100%",y2:"54.703%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("linearGradient",{attrs:{id:"n",x1:"94.535%",y1:"43.837%",x2:"5.465%",y2:"54.948%"}},[e("#EAEDF0",0),e("#DCDEE0",100)]),t("radialGradient",{attrs:{id:"g",cx:"50%",cy:"0%",fx:"50%",fy:"0%",r:"100%",gradientTransform:"matrix(0 1 -.54835 0 .5 -.5)"}},[e("#EBEDF0",0),e("#FFF",100,0)])]),t("g",{attrs:{fill:"none","fill-rule":"evenodd"}},[t("g",{attrs:{opacity:".8"}},[t("path",{attrs:{d:"M0 124V46h20v20h14v58H0z",fill:"url(#c)",transform:"matrix(-1 0 0 1 36 7)"}}),t("path",{attrs:{d:"M40.5 5a8.504 8.504 0 018.13 6.009l.12-.005L49 11a8 8 0 11-1 15.938V27H34v-.174a6.5 6.5 0 11-1.985-12.808A8.5 8.5 0 0140.5 5z",fill:"url(#d)",transform:"translate(2 7)"}}),t("path",{attrs:{d:"M96.016 0a4.108 4.108 0 013.934 2.868l.179-.004c2.138 0 3.871 1.71 3.871 3.818 0 2.109-1.733 3.818-3.871 3.818-.164 0-.325-.01-.484-.03v.03h-6.774v-.083a3.196 3.196 0 01-.726.083C90.408 10.5 89 9.111 89 7.398c0-1.636 1.284-2.976 2.911-3.094a3.555 3.555 0 01-.008-.247c0-2.24 1.842-4.057 4.113-4.057z",fill:"url(#d)",transform:"translate(2 7)"}}),t("path",{attrs:{d:"M121 8h22.231v14H152v77.37h-31V8z",fill:"url(#c)",transform:"translate(2 7)"}})]),t("path",{attrs:{fill:"url(#g)",d:"M0 139h160v21H0z"}}),t("path",{attrs:{d:"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z",fill:"url(#h)","fill-rule":"nonzero",transform:"translate(43 36)"}}),t("g",{attrs:{opacity:".6","stroke-linecap":"round","stroke-width":"7"}},[t("path",{attrs:{d:"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#i)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#i)",transform:"translate(43 36)"}}),t("path",{attrs:{d:"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12",stroke:"url(#k)",transform:"rotate(-180 76.483 42.257)"}}),t("path",{attrs:{d:"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145",stroke:"url(#k)",transform:"rotate(-180 89.791 42.146)"}})]),t("g",{attrs:{transform:"translate(31 105)","fill-rule":"nonzero"}},[t("rect",{attrs:{fill:"url(#m)",width:"98",height:"34",rx:"2"}}),t("rect",{attrs:{fill:"#FFF",x:"9",y:"8",width:"80",height:"18",rx:"1.114"}}),t("rect",{attrs:{fill:"url(#n)",x:"15",y:"12",width:"18",height:"6",rx:"1.114"}})])])])}},$s=Object(o.a)("empty"),Bs=$s[0],Is=$s[1],Ds=["error","search","default"],Es=Bs({props:{imageSize:[Number,String],description:String,image:{type:String,default:"default"}},methods:{genImageContent:function(){var t=this.$createElement,e=this.slots("image");if(e)return e;if("network"===this.image)return t(Ts);var i=this.image;return-1!==Ds.indexOf(i)&&(i="https://img01.yzcdn.cn/vant/empty-image-"+i+".png"),t("img",{attrs:{src:i}})},genImage:function(){var t=this.$createElement,e={width:Object(Y.a)(this.imageSize),height:Object(Y.a)(this.imageSize)};return t("div",{class:Is("image"),style:e},[this.genImageContent()])},genDescription:function(){var t=this.$createElement,e=this.slots("description")||this.description;if(e)return t("p",{class:Is("description")},[e])},genBottom:function(){var t=this.$createElement,e=this.slots();if(e)return t("div",{class:Is("bottom")},[e])}},render:function(){var t=arguments[0];return t("div",{class:Is()},[this.genImage(),this.genDescription(),this.genBottom()])}}),js=Object(o.a)("form"),Ps=js[0],Ls=js[1],Ns=Ps({props:{colon:Boolean,disabled:Boolean,readonly:Boolean,labelWidth:[Number,String],labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,errorMessageAlign:String,submitOnEnter:{type:Boolean,default:!0},validateTrigger:{type:String,default:"onBlur"},showError:{type:Boolean,default:!0},showErrorMessage:{type:Boolean,default:!0}},provide:function(){return{vanForm:this}},data:function(){return{fields:[]}},methods:{getFieldsByNames:function(t){return t?this.fields.filter((function(e){return-1!==t.indexOf(e.name)})):this.fields},validateSeq:function(t){var e=this;return new Promise((function(i,n){var r=[];e.getFieldsByNames(t).reduce((function(t,e){return t.then((function(){if(!r.length)return e.validate().then((function(t){t&&r.push(t)}))}))}),Promise.resolve()).then((function(){r.length?n(r):i()}))}))},validateFields:function(t){var e=this;return new Promise((function(i,n){var r=e.getFieldsByNames(t);Promise.all(r.map((function(t){return t.validate()}))).then((function(t){(t=t.filter((function(t){return t}))).length?n(t):i()}))}))},validate:function(t){return t&&!Array.isArray(t)?this.validateField(t):this.validateFirst?this.validateSeq(t):this.validateFields(t)},validateField:function(t){var e=this.fields.filter((function(e){return e.name===t}));return e.length?new Promise((function(t,i){e[0].validate().then((function(e){e?i(e):t()}))})):Promise.reject()},resetValidation:function(t){t&&!Array.isArray(t)&&(t=[t]),this.getFieldsByNames(t).forEach((function(t){t.resetValidation()}))},scrollToField:function(t,e){this.fields.some((function(i){return i.name===t&&(i.$el.scrollIntoView(e),!0)}))},addField:function(t){this.fields.push(t),Ie(this.fields,this)},removeField:function(t){this.fields=this.fields.filter((function(e){return e!==t}))},getValues:function(){return this.fields.reduce((function(t,e){return t[e.name]=e.formValue,t}),{})},onSubmit:function(t){t.preventDefault(),this.submit()},submit:function(){var t=this,e=this.getValues();this.validate().then((function(){t.$emit("submit",e)})).catch((function(i){t.$emit("failed",{values:e,errors:i}),t.scrollToError&&t.scrollToField(i[0].name)}))}},render:function(){var t=arguments[0];return t("form",{class:Ls(),on:{submit:this.onSubmit}},[this.slots()])}}),As=Object(o.a)("goods-action-icon"),Ms=As[0],zs=As[1],Fs=Ms({mixins:[De("vanGoodsAction")],props:n({},Gt,{dot:Boolean,text:String,icon:String,color:String,info:[Number,String],badge:[Number,String],iconClass:null}),methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)},genIcon:function(){var t,e=this.$createElement,i=this.slots("icon"),n=null!=(t=this.badge)?t:this.info;return i?e("div",{class:zs("icon")},[i,e(J,{attrs:{dot:this.dot,info:n}})]):e(st,{class:[zs("icon"),this.iconClass],attrs:{tag:"div",dot:this.dot,info:n,name:this.icon,color:this.color}})}},render:function(){var t=arguments[0];return t("div",{attrs:{role:"button",tabindex:"0"},class:zs(),on:{click:this.onClick}},[this.genIcon(),this.slots()||this.text])}}),Vs=Object(o.a)("grid"),Rs=Vs[0],Hs=Vs[1],_s=Rs({mixins:[Ee("vanGrid")],props:{square:Boolean,gutter:[Number,String],iconSize:[Number,String],direction:String,clickable:Boolean,columnNum:{type:[Number,String],default:4},center:{type:Boolean,default:!0},border:{type:Boolean,default:!0}},computed:{style:function(){var t=this.gutter;if(t)return{paddingLeft:Object(Y.a)(t)}}},render:function(){var t,e=arguments[0];return e("div",{style:this.style,class:[Hs(),(t={},t[Tt]=this.border&&!this.gutter,t)]},[this.slots()])}}),Ws=Object(o.a)("grid-item"),qs=Ws[0],Ks=Ws[1],Us=qs({mixins:[De("vanGrid")],props:n({},Gt,{dot:Boolean,text:String,icon:String,iconPrefix:String,info:[Number,String],badge:[Number,String]}),computed:{style:function(){var t=this.parent,e=t.square,i=t.gutter,n=t.columnNum,r=100/n+"%",s={flexBasis:r};if(e)s.paddingTop=r;else if(i){var o=Object(Y.a)(i);s.paddingRight=o,this.index>=n&&(s.marginTop=o)}return s},contentStyle:function(){var t=this.parent,e=t.square,i=t.gutter;if(e&&i){var n=Object(Y.a)(i);return{right:n,bottom:n,height:"auto"}}}},methods:{onClick:function(t){this.$emit("click",t),Xt(this.$router,this)},genIcon:function(){var t,e=this.$createElement,i=this.slots("icon"),n=null!=(t=this.badge)?t:this.info;return i?e("div",{class:Ks("icon-wrapper")},[i,e(J,{attrs:{dot:this.dot,info:n}})]):this.icon?e(st,{attrs:{name:this.icon,dot:this.dot,badge:n,size:this.parent.iconSize,classPrefix:this.iconPrefix},class:Ks("icon")}):void 0},getText:function(){var t=this.$createElement,e=this.slots("text");return e||(this.text?t("span",{class:Ks("text")},[this.text]):void 0)},genContent:function(){var t=this.slots();return t||[this.genIcon(),this.getText()]}},render:function(){var t,e=arguments[0],i=this.parent,n=i.center,r=i.border,s=i.square,o=i.gutter,a=i.direction,l=i.clickable;return e("div",{class:[Ks({square:s})],style:this.style},[e("div",{style:this.contentStyle,attrs:{role:l?"button":null,tabindex:l?0:null},class:[Ks("content",[a,{center:n,square:s,clickable:l,surround:r&&o}]),(t={},t[Ot]=r,t)],on:{click:this.onClick}},[this.genContent()])])}}),Ys=Object(o.a)("image-preview"),Xs=Ys[0],Qs=Ys[1],Gs=Object(o.a)("swipe"),Zs=Gs[0],Js=Gs[1],to=Zs({mixins:[R,Ee("vanSwipe"),W((function(t,e){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0),t(window,"visibilitychange",this.onVisibilityChange),e?this.initialize():this.clear()}))],props:{width:[Number,String],height:[Number,String],autoplay:[Number,String],vertical:Boolean,lazyRender:Boolean,indicatorColor:String,loop:{type:Boolean,default:!0},duration:{type:[Number,String],default:500},touchable:{type:Boolean,default:!0},initialSwipe:{type:[Number,String],default:0},showIndicators:{type:Boolean,default:!0},stopPropagation:{type:Boolean,default:!0}},data:function(){return{rect:null,offset:0,active:0,deltaX:0,deltaY:0,swiping:!1,computedWidth:0,computedHeight:0}},watch:{children:function(){this.initialize()},initialSwipe:function(){this.initialize()},autoplay:function(t){t>0?this.autoPlay():this.clear()}},computed:{count:function(){return this.children.length},maxCount:function(){return Math.ceil(Math.abs(this.minOffset)/this.size)},delta:function(){return this.vertical?this.deltaY:this.deltaX},size:function(){return this[this.vertical?"computedHeight":"computedWidth"]},trackSize:function(){return this.count*this.size},activeIndicator:function(){return(this.active+this.count)%this.count},isCorrectDirection:function(){var t=this.vertical?"vertical":"horizontal";return this.direction===t},trackStyle:function(){var t={transitionDuration:(this.swiping?0:this.duration)+"ms",transform:"translate"+(this.vertical?"Y":"X")+"("+this.offset+"px)"};if(this.size){var e=this.vertical?"height":"width",i=this.vertical?"width":"height";t[e]=this.trackSize+"px",t[i]=this[i]?this[i]+"px":""}return t},indicatorStyle:function(){return{backgroundColor:this.indicatorColor}},minOffset:function(){return(this.vertical?this.rect.height:this.rect.width)-this.size*this.count}},mounted:function(){this.bindTouchEvent(this.$refs.track)},methods:{initialize:function(t){if(void 0===t&&(t=+this.initialSwipe),this.$el&&!gn(this.$el)){clearTimeout(this.timer);var e=this.$el.getBoundingClientRect();this.rect=e,this.swiping=!0,this.active=t,this.computedWidth=+this.width||e.width,this.computedHeight=+this.height||e.height,this.offset=this.getTargetOffset(t),this.children.forEach((function(t){t.offset=0})),this.autoPlay()}},resize:function(){this.initialize(this.activeIndicator)},onVisibilityChange:function(){document.hidden?this.clear():this.autoPlay()},onTouchStart:function(t){this.touchable&&(this.clear(),this.touchStartTime=Date.now(),this.touchStart(t),this.correctPosition())},onTouchMove:function(t){this.touchable&&this.swiping&&(this.touchMove(t),this.isCorrectDirection&&(k(t,this.stopPropagation),this.move({offset:this.delta})))},onTouchEnd:function(){if(this.touchable&&this.swiping){var t=this.size,e=this.delta,i=e/(Date.now()-this.touchStartTime);if((Math.abs(i)>.25||Math.abs(e)>t/2)&&this.isCorrectDirection){var n=this.vertical?this.offsetY:this.offsetX,r=0;r=this.loop?n>0?e>0?-1:1:0:-Math[e>0?"ceil":"floor"](e/t),this.move({pace:r,emitChange:!0})}else e&&this.move({pace:0});this.swiping=!1,this.autoPlay()}},getTargetActive:function(t){var e=this.active,i=this.count,n=this.maxCount;return t?this.loop?Et(e+t,-1,i):Et(e+t,0,n):e},getTargetOffset:function(t,e){void 0===e&&(e=0);var i=t*this.size;this.loop||(i=Math.min(i,-this.minOffset));var n=e-i;return this.loop||(n=Et(n,this.minOffset,0)),n},move:function(t){var e=t.pace,i=void 0===e?0:e,n=t.offset,r=void 0===n?0:n,s=t.emitChange,o=this.loop,a=this.count,l=this.active,c=this.children,u=this.trackSize,h=this.minOffset;if(!(a<=1)){var d=this.getTargetActive(i),f=this.getTargetOffset(d,r);if(o){if(c[0]&&f!==h){var p=f0;c[a-1].offset=m?-u:0}}this.active=d,this.offset=f,s&&d!==l&&this.$emit("change",this.activeIndicator)}},prev:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){t.swiping=!1,t.move({pace:-1,emitChange:!0})}))},next:function(){var t=this;this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){t.swiping=!1,t.move({pace:1,emitChange:!0})}))},swipeTo:function(t,e){var i=this;void 0===e&&(e={}),this.correctPosition(),this.resetTouchStatus(),Object(Vi.b)((function(){var n;n=i.loop&&t===i.count?0===i.active?0:t:t%i.count,e.immediate?Object(Vi.b)((function(){i.swiping=!1})):i.swiping=!1,i.move({pace:n-i.active,emitChange:!0})}))},correctPosition:function(){this.swiping=!0,this.active<=-1&&this.move({pace:this.count}),this.active>=this.count&&this.move({pace:-this.count})},clear:function(){clearTimeout(this.timer)},autoPlay:function(){var t=this,e=this.autoplay;e>0&&this.count>1&&(this.clear(),this.timer=setTimeout((function(){t.next(),t.autoPlay()}),e))},genIndicator:function(){var t=this,e=this.$createElement,i=this.count,n=this.activeIndicator,r=this.slots("indicator");return r||(this.showIndicators&&i>1?e("div",{class:Js("indicators",{vertical:this.vertical})},[Array.apply(void 0,Array(i)).map((function(i,r){return e("i",{class:Js("indicator",{active:r===n}),style:r===n?t.indicatorStyle:null})}))]):void 0)}},render:function(){var t=arguments[0];return t("div",{class:Js()},[t("div",{ref:"track",style:this.trackStyle,class:Js("track",{vertical:this.vertical})},[this.slots()]),this.genIndicator()])}}),eo=Object(o.a)("swipe-item"),io=eo[0],no=eo[1],ro=io({mixins:[De("vanSwipe")],data:function(){return{offset:0,inited:!1,mounted:!1}},mounted:function(){var t=this;this.$nextTick((function(){t.mounted=!0}))},computed:{style:function(){var t={},e=this.parent,i=e.size,n=e.vertical;return i&&(t[n?"height":"width"]=i+"px"),this.offset&&(t.transform="translate"+(n?"Y":"X")+"("+this.offset+"px)"),t},shouldRender:function(){var t=this.index,e=this.inited,i=this.parent,n=this.mounted;if(!i.lazyRender||e)return!0;if(!n)return!1;var r=i.activeIndicator,s=i.count-1,o=0===r&&i.loop?s:r-1,a=r===s&&i.loop?0:r+1,l=t===r||t===o||t===a;return l&&(this.inited=!0),l}},render:function(){var t=arguments[0];return t("div",{class:no(),style:this.style,on:n({},this.$listeners)},[this.shouldRender&&this.slots()])}});function so(t){return Math.sqrt(Math.pow(t[0].clientX-t[1].clientX,2)+Math.pow(t[0].clientY-t[1].clientY,2))}var oo,ao={mixins:[R],props:{src:String,show:Boolean,active:Number,minZoom:[Number,String],maxZoom:[Number,String],rootWidth:Number,rootHeight:Number},data:function(){return{scale:1,moveX:0,moveY:0,moving:!1,zooming:!1,imageRatio:0,displayWidth:0,displayHeight:0}},computed:{vertical:function(){var t=this.rootWidth,e=this.rootHeight/t;return this.imageRatio>e},imageStyle:function(){var t=this.scale,e={transitionDuration:this.zooming||this.moving?"0s":".3s"};if(1!==t){var i=this.moveX/t,n=this.moveY/t;e.transform="scale("+t+", "+t+") translate("+i+"px, "+n+"px)"}return e},maxMoveX:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight/this.imageRatio:this.rootWidth;return Math.max(0,(this.scale*t-this.rootWidth)/2)}return 0},maxMoveY:function(){if(this.imageRatio){var t=this.vertical?this.rootHeight:this.rootWidth*this.imageRatio;return Math.max(0,(this.scale*t-this.rootHeight)/2)}return 0}},watch:{active:"resetScale",show:function(t){t||this.resetScale()}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{resetScale:function(){this.setScale(1),this.moveX=0,this.moveY=0},setScale:function(t){(t=Et(t,+this.minZoom,+this.maxZoom))!==this.scale&&(this.scale=t,this.$emit("scale",{scale:this.scale,index:this.active}))},toggleScale:function(){var t=this.scale>1?1:2;this.setScale(t),this.moveX=0,this.moveY=0},onTouchStart:function(t){var e=t.touches,i=this.offsetX,n=void 0===i?0:i;this.touchStart(t),this.touchStartTime=new Date,this.startMoveX=this.moveX,this.startMoveY=this.moveY,this.moving=1===e.length&&1!==this.scale,this.zooming=2===e.length&&!n,this.zooming&&(this.startScale=this.scale,this.startDistance=so(t.touches))},onTouchMove:function(t){var e=t.touches;if(this.touchMove(t),(this.moving||this.zooming)&&k(t,!0),this.moving){var i=this.deltaX+this.startMoveX,n=this.deltaY+this.startMoveY;this.moveX=Et(i,-this.maxMoveX,this.maxMoveX),this.moveY=Et(n,-this.maxMoveY,this.maxMoveY)}if(this.zooming&&2===e.length){var r=so(e),s=this.startScale*r/this.startDistance;this.setScale(s)}},onTouchEnd:function(t){var e=!1;(this.moving||this.zooming)&&(e=!0,this.moving&&this.startMoveX===this.moveX&&this.startMoveY===this.moveY&&(e=!1),t.touches.length||(this.zooming&&(this.moveX=Et(this.moveX,-this.maxMoveX,this.maxMoveX),this.moveY=Et(this.moveY,-this.maxMoveY,this.maxMoveY),this.zooming=!1),this.moving=!1,this.startMoveX=0,this.startMoveY=0,this.startScale=1,this.scale<1&&this.resetscale())),k(t,e),this.checktap(),this.resettouchstatus()},checktap:function(){var t=this,e=this.offsetX,i=void 0===e?0:e,n=this.offsetY,r=void 0===n?0:n,s=new Date-this.touchStartTime;i<10&&r<10&&s<250&&(this.doubletaptimer?(cleartimeout(this.doubletaptimer),this.doubletaptimer=null,this.togglescale()):this.doubletaptimer=settimeout((function(){t.$emit("close"),t.doubletaptimer=null}),250))},onload:function(t){var e=t.target,i=e.naturalWidth,n=e.naturalHeight;this.imageRatio=n/i}},render:function(){var t=arguments[0],e={loading:function(){return t(vt,{attrs:{type:"spinner"}})}};return t(ro,{class:Qs("swipe-item")},[t(on,{attrs:{src:this.src,fit:"contain"},class:Qs("image",{vertical:this.vertical}),style:this.imageStyle,scopedSlots:e,on:{load:this.onLoad}})])}},lo=Xs({mixins:[R,U({skipToggleEvent:!0}),W((function(t){t(window,"resize",this.resize,!0),t(window,"orientationchange",this.resize,!0)}))],props:{className:null,closeable:Boolean,asyncClose:Boolean,showIndicators:Boolean,images:{type:Array,default:function(){return[]}},loop:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},minZoom:{type:[Number,String],default:1/3},maxZoom:{type:[Number,String],default:3},showIndex:{type:Boolean,default:!0},swipeDuration:{type:[Number,String],default:300},startPosition:{type:[Number,String],default:0},overlayClass:{type:String,default:Qs("overlay")},closeIcon:{type:String,default:"clear"},closeOnPopstate:{type:Boolean,default:!0},closeIconPosition:{type:String,default:"top-right"}},data:function(){return{active:0,rootWidth:0,rootHeight:0,doubleClickTimer:null}},mounted:function(){this.resize()},watch:{startPosition:"setActive",value:function(t){var e=this;t?(this.setActive(+this.startPosition),this.$nextTick((function(){e.resize(),e.$refs.swipe.swipeTo(+e.startPosition,{immediate:!0})}))):this.$emit("close",{index:this.active,url:this.images[this.active]})}},methods:{resize:function(){if(this.$el&&this.$el.getBoundingClientRect){var t=this.$el.getBoundingClientRect();this.rootinput",!1)},emitScale:function(t){this.$emit("scale",t)},setActive:function(t){t!==this.active&&(this.active=t,this.$emit("change",t))},genIndex:function(){var" t=this.$createElement;if(this.showIndex)return t("div",{class:Qs("index")},[this.slots("index",{index:this.active})||this.active+1+" / "+this.images.length])},genCover:function(){var t=this.$createElement,e=this.slots("cover");if(e)return t("div",{class:Qs("cover")},[e])},genImages:function(){var t=this,e=this.$createElement;return e(to,{ref:"swipe",attrs:{lazyRender:!0,loop:this.loop,duration:this.swipeDuration,initialSwipe:this.startPosition,showIndicators:this.showIndicators,indicatorColor:"white"},class:Qs("swipe"),on:{change:this.setActive}},[this.images.map((function(i){return e(ao,{attrs:{src:i,show:t.value,active:t.active,maxZoom:t.maxZoom,minZoom:t.minZoom,rootWidth:t.rootWidth,rootHeight:t.rootHeight},on:{scale:t.emitScale,close:t.emitClose}})}))])},genClose:function(){var t=this.$createElement;if(this.closeable)return t(st,{attrs:{role:"button",name:this.closeIcon},class:Qs("close-icon",this.closeIconPosition),on:{click:this.emitClose}})},onClosed:function(){this.$emit("closed")},swipeTo:function(t,e){this.$refs.swipe&&this.$refs.swipe.swipeTo(t,e)}},render:function(){var t=arguments[0];if(this.shouldRender)return t("transition",{attrs:{name:"van-fade"},on:{afterLeave:this.onClosed}},[t("div",{directives:[{name:"show",value:this.value}],class:[Qs(),this.className]},[this.genClose(),this.genImages(),this.genIndex(),this.genCover()])])}}),co={loop:!0,value:!0,images:[],maxZoom:3,minZoom:1/3,onClose:null,onChange:null,className:"",showIndex:!0,closeable:!1,closeIcon:"clear",asyncClose:!1,getContainer:"body",startPosition:0,swipeDuration:300,showIndicators:!1,closeOnPopstate:!0,closeIconPosition:"top-right"},uo=function(t,e){if(void 0===e&&(e=0),!m.g){oo||(oo=new(l.a.extend(lo))({el:document.createElement("div")}),document.body.appendChild(oo.$el),oo.$on("change",(function(t){oo.onChange&&oo.onChange(t)})),oo.$on("scale",(function(t){oo.onScale&&oo.onScale(t)})));var i=Array.isArray(t)?{images:t,startPosition:e}:t;return n(oo,co,i),oo.$once("input",(function(t){oo.value=t})),oo.$once("closed",(function(){oo.images=[]})),i.onClose&&(oo.$off("close"),oo.$once("close",i.onClose)),oo}};uo.Component=lo,uo.install=function(){l.a.use(lo)};var ho=uo,fo=Object(o.a)("index-anchor"),po=fo[0],mo=fo[1],vo=po({mixins:[De("vanIndexBar",{indexKey:"childrenIndex"})],props:{index:[Number,String]},data:function(){return{top:0,left:null,rect:{top:0,height:0},width:null,active:!1}},computed:{sticky:function(){return this.active&&this.parent.sticky},anchorStyle:function(){if(this.sticky)return{zIndex:""+this.parent.zIndex,left:this.left?this.left+"px":null,width:this.width?this.width+"px":null,transform:"translate3d(0, "+this.top+"px, 0)",color:this.parent.highlightColor}}},mounted:function(){var t=this.$el.getBoundingClientRect();this.rect.height="t.height},methods:{scrollIntoView:function(){this.$el.scrollIntoView()},getRect:function(t,e){var" i=this.$el.getBoundingClientRect();return this.rect.height="i.height,t===window||t===document.body?this.rect.top=i.top+z():this.rect.top=i.top+A(t)-e.top,this.rect}},render:function(){var" t,e=arguments[0],i=this.sticky;return e("div",{style:{height:i?this.rect.height+"px":null}},[e("div",{style:this.anchorStyle,class:[mo({sticky:i}),(t={},t[$t]=i,t)]},[this.slots("default")||this.index])])}});var go=Object(o.a)("index-bar"),bo=go[0],yo=go[1],So=bo({mixins:[R,Ee("vanIndexBar"),W((function(t){this.scroller||(this.scroller=N(this.$el)),t(this.scroller,"scroll",this.onScroll)}))],props:{zIndex:[Number,String],highlightColor:String,sticky:{type:Boolean,default:!0},stickyOffsetTop:{type:Number,default:0},indexList:{type:Array,default:function(){for(var t=[],e="A".charCodeAt(0),i=0;i<26;i++)t.push(string.fromcharcode(e+i));return t}}},data:function(){return{activeAnchorIndex:null}},computed:{sidebarStyle:function(){if(Object(m.c)(this.zIndex))return{zIndex:this.zIndex+1}},highlightStyle:function(){var t=this.highlightColor;if(t)return{color:t}}},watch:{indexList:function(){this.$nextTick(this.onScroll)},activeAnchorIndex:function(t){t&&this.$emit("change",t)}},methods:{onScroll:function(){var t=this;if(!gn(this.$el)){var e=A(this.scroller),i=this.getScrollerRect(),n=this.children.map((function(e){return e.getRect(t.scroller,i)})),r=this.getActiveAnchorIndex(e,n);this.activeAnchorIndex=this.indexList[r],this.sticky&&this.children.forEach((function(s,o){if(o===r||o===r-1){var a=s.$el.getBoundingClientRect();s.left=a.left,s. s.left=null,s.width="null;if(o===r)s.active=!0,s.top=Math.max(t.stickyOffsetTop,n[o].top-e)+i.top;else" if(o===r-1){var l=n[r].top-e;s.active=l>0,s.top=l+i.top-n[o].height}else s.active=!1}))}},getScrollerRect:function(){return this.scroller.getBoundingClientRect?this.scroller.getBoundingClientRect():{top:0,left:0}},getActiveAnchorIndex:function(t,e){for(var i=this.children.length-1;i>=0;i--){var n=i>0?e[i-1].height:0;if(t+(this.sticky?n+this.stickyOffsetTop:0)>=e[i].top)return i}return-1},onClick:function(t){this.scrollToElement(t.target)},onTouchMove:function(t){if(this.touchMove(t),"vertical"===this.direction){k(t);var e=t.touches[0],i=e.clientX,n=e.clientY,r=document.elementFromPoint(i,n);if(r){var s=r.dataset.index;this.touchActiveIndex!==s&&(this.touchActiveIndex=s,this.scrollToElement(r))}}},scrollTo:function(t){var e=this.children.filter((function(e){return String(e.index)===t}));e[0]&&(e[0].scrollIntoView(),this.sticky&&this.stickyOffsetTop&&F(z()-this.stickyOffsetTop),this.$emit("select",e[0].index))},scrollToElement:function(t){var e=t.dataset.index;this.scrollTo(e)},onTouchEnd:function(){this.active=null}},render:function(){var t=this,e=arguments[0],i=this.indexList.map((function(i){var n=i===t.activeAnchorIndex;return e("span",{class:yo("index",{active:n}),style:n?t.highlightStyle:null,attrs:{"data-index":i}},[i])}));return e("div",{class:yo()},[e("div",{class:yo("sidebar"),style:this.sidebarStyle,on:{click:this.onClick,touchstart:this.touchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}},[i]),this.slots("default")])}}),ko=i(11),xo=i.n(ko).a,wo=Object(o.a)("list"),Co=wo[0],Oo=wo[1],To=wo[2],$o=Co({mixins:[W((function(t){this.scroller||(this.scroller=N(this.$el)),t(this.scroller,"scroll",this.check)}))],model:{prop:"loading"},props:{error:Boolean,loading:Boolean,finished:Boolean,errorText:String,loadingText:String,finishedText:String,immediateCheck:{type:Boolean,default:!0},offset:{type:[Number,String],default:300},direction:{type:String,default:"down"}},data:function(){return{innerLoading:this.loading}},updated:function(){this.innerLoading=this.loading},mounted:function(){this.immediateCheck&&this.check()},watch:{loading:"check",finished:"check"},methods:{check:function(){var t=this;this.$nextTick((function(){if(!(t.innerLoading||t.finished||t.error)){var e,i=t.$el,n=t.scroller,r=t.offset,s=t.direction;if(!((e=n.getBoundingClientRect?n.getBoundingClientRect():{top:0,bottom:n.innerHeight}).bottom-e.top)||gn(i))return!1;var o=t.$refs.placeholder.getBoundingClientRect();("up"===s?e.top-o.top<=r:o.bottom-e.bottom<=r)&&(t.innerloading=!0,t.$emit("input",!0),t.$emit("load"))}}))},clickerrortext:function(){this.$emit("update:error",!1),this.check()},genloading:function(){var t=this.$createElement;if(this.innerLoading&&!this.finished)return t("div",{key:"loading",class:Oo("loading")},[this.slots("loading")||t(vt,{attrs:{size:"16"}},[this.loadingText||To("loading")])])},genFinishedText:function(){var t=this.$createElement;if(this.finished){var e=this.slots("finished")||this.finishedText;if(e)return t("div",{class:Oo("finished-text")},[e])}},genErrorText:function(){var t=this.$createElement;if(this.error){var e=this.slots("error")||this.errorText;if(e)return t("div",{on:{click:this.clickErrorText},class:Oo("error-text")},[e])}}},render:function(){var t=arguments[0],e=t("div",{ref:"placeholder",key:"placeholder",class:Oo("placeholder")});return t("div",{class:Oo(),attrs:{role:"feed","aria-busy":this.innerLoading}},["down"===this.direction?this.slots():e,this.genLoading(),this.genFinishedText(),this.genErrorText(),"up"===this.direction?this.slots():e])}}),Bo=i(7),Io=Object(o.a)("nav-bar"),Do=Io[0],Eo=Io[1],jo=Do({props:{title:String,fixed:Boolean,zIndex:[Number,String],leftText:String,rightText:String,leftArrow:Boolean,placeholder:Boolean,safeAreaInsetTop:Boolean,border:{type:Boolean,default:!0}},data:function(){return{height:null}},mounted:function(){this.placeholder&&this.fixed&&(this. t=this.$createElement,e=this.slots("left");return e||[this.leftArrow&&t(st,{class:Eo("arrow"),attrs:{name:"arrow-left"}}),this.leftText&&t("span",{class:Eo("text")},[this.leftText])]},genRight:function(){var t=this.$createElement,e=this.slots("right");return e||(this.rightText?t("span",{class:Eo("text")},[this.rightText]):void 0)},genNavBar:function(){var t,e=this.$createElement;return e("div",{ref:"navBar",style:{zIndex:this.zIndex},class:[Eo({fixed:this.fixed,"safe-area-inset-top":this.safeAreaInsetTop}),(t={},t[$t]=this.border,t)]},[e("div",{class:Eo("content")},[this.hasLeft()&&e("div",{class:Eo("left"),on:{click:this.onClickLeft}},[this.genLeft()]),e("div",{class:[Eo("title"),"van-ellipsis"]},[this.slots("title")||this.title]),this.hasRight()&&e("div",{class:Eo("right"),on:{click:this.onClickRight}},[this.genRight()])])])},hasLeft:function(){return this.leftArrow||this.leftText||this.slots("left")},hasRight:function(){return this.rightText||this.slots("right")},onClickLeft:function(t){this.$emit("click-left",t)},onClickRight:function(t){this.$emit("click-right",t)}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:Eo("placeholder"),style:{height:this.height+"px"}},[this.genNavBar()]):this.genNavBar()}}),Po=Object(o.a)("notice-bar"),Lo=Po[0],No=Po[1],Ao=Lo({mixins:[W((function(t){t(window,"pageshow",this.start)}))],props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null},delay:{type:[Number,String],default:1},speed:{type:[Number,String],default:50}},data:function(){return{show:!0,offset:0,duration:0,wrapWidth:0,contentWidth:0}},watch:{scrollable:"start",text:{handler:"start",immediate:!0}},activated:function(){this.start()},methods:{onClickIcon:function(t){"closeable"===this.mode&&(this.show=!1,this.$emit("close",t))},onTransitionEnd:function(){var t=this;this.offset=this.wrapWidth,this.duration=0,Object(Vi.c)((function(){Object(Vi.b)((function(){t.offset=-t.contentWidth,t.duration=(t.contentWidth+t.wrapWidth)/t.speed,t.$emit("replay")}))}))},reset:function(){this.offset=0,this.duration=0,this.wrapWidth="0,this.contentWidth=0},start:function(){var" t=this,e=Object(m.c)(this.delay)?1e3*this.delay:0;this.reset(),clearTimeout(this.startTimer),this.startTimer=setTimeout((function(){var e=t.$refs,i=e.wrap,n=e.content;if(i&&n&&!1!==t.scrollable){var r=i.getBoundingClientRect().width,s=n.getBoundingClientRect().width;(t.scrollable||s>r)&&Object(Vi.b)((function(){t.offset=-s,t.duration=s/t.speed,t.wrapWidth=r,t.contentWidth=s}))}}),e)}},render:function(){var t=this,e=arguments[0],i=this.slots,n=this.mode,r=this.leftIcon,s=this.onClickIcon,o={color:this.color,background:this.background},a={transform:this.offset?"translateX("+this.offset+"px)":"",transitionDuration:this.duration+"s"};function l(){var t=i("left-icon");return t||(r?e(st,{class:No("left-icon"),attrs:{name:r}}):void 0)}function c(){var t,r=i("right-icon");return r||("closeable"===n?t="cross":"link"===n&&(t="arrow"),t?e(st,{class:No("right-icon"),attrs:{name:t},on:{click:s}}):void 0)}return e("div",{attrs:{role:"alert"},directives:[{name:"show",value:this.show}],class:No({wrapable:this.wrapable}),style:o,on:{click:function(e){t.$emit("click",e)}}},[l(),e("div",{ref:"wrap",class:No("wrap"),attrs:{role:"marquee"}},[e("div",{ref:"content",class:[No("content"),{"van-ellipsis":!1===this.scrollable&&!this.wrapable}],style:a,on:{transitionend:this.onTransitionEnd}},[this.slots()||this.text])]),c()])}}),Mo=Object(o.a)("notify"),zo=Mo[0],Fo=Mo[1];function Vo(t,e,i,n){var r={color:e.color,background:e.background};return t(ct,s()([{attrs:{value:e.value,position:"top",overlay:!1,duration:.2,lockScroll:!1},style:r,class:[Fo([e.type]),e.className]},h(n,!0)]),[(null==i.default?void 0:i.default())||e.message])}Vo.props=n({},K,{color:String,message:[Number,String],duration:[Number,String],className:null,background:String,getContainer:[String,Function],type:{type:String,default:"danger"}});var Ro,Ho,_o=zo(Vo);function Wo(t){var e;if(!m.g)return Ho||(Ho=f(_o,{on:{click:function(t){Ho.onClick&&Ho.onClick(t)},close:function(){Ho.onClose&&Ho.onClose()},opened:function(){Ho.onOpened&&Ho.onOpened()}}})),t=n({},Wo.currentOptions,(e=t,Object(m.e)(e)?e:{message:e})),n(Ho,t),clearTimeout(Ro),t.duration&&t.duration>0&&(Ro=setTimeout(Wo.clear,t.duration)),Ho}Wo.clear=function(){Ho&&(Ho.value=!1)},Wo.currentOptions={type:"danger",value:!0,message:"",color:void 0,background:void 0,duration:3e3,className:"",onClose:null,onClick:null,onOpened:null},Wo.setDefaultOptions=function(t){n(Wo.currentOptions,t)},Wo.resetDefaultOptions=function(){Wo.currentOptions={type:"danger",value:!0,message:"",color:void 0,background:void 0,duration:3e3,className:"",onClose:null,onClick:null,onOpened:null}},Wo.install=function(){l.a.use(_o)},Wo.Component=_o,l.a.prototype.$notify=Wo;var qo=Wo,Ko={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 32 22",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M28.016 0A3.991 3.991 0 0132 3.987v14.026c0 2.2-1.787 3.987-3.98 3.987H10.382c-.509 0-.996-.206-1.374-.585L.89 13.09C.33 12.62 0 11.84 0 11.006c0-.86.325-1.62.887-2.08L9.01.585A1.936 1.936 0 0110.383 0zm0 1.947H10.368L2.24 10.28c-.224.226-.312.432-.312.73 0 .287.094.51.312.729l8.128 8.333h17.648a2.041 2.041 0 002.037-2.04V3.987c0-1.127-.915-2.04-2.037-2.04zM23.028 6a.96.96 0 01.678.292.95.95 0 01-.003 1.377l-3.342 3.348 3.326 3.333c.189.188.292.43.292.679 0 .248-.103.49-.292.679a.96.96 0 01-.678.292.959.959 0 01-.677-.292L18.99 12.36l-3.343 3.345a.96.96 0 01-.677.292.96.96 0 01-.678-.292.962.962 0 01-.292-.68c0-.248.104-.49.292-.679l3.342-3.348-3.342-3.348A.963.963 0 0114 6.971c0-.248.104-.49.292-.679A.96.96 0 0114.97 6a.96.96 0 01.677.292l3.358 3.348 3.345-3.348A.96.96 0 0123.028 6z",fill:"currentColor"}})])}},Uo={render:function(){var t=arguments[0];return t("svg",{attrs:{viewBox:"0 0 30 24",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M25.877 12.843h-1.502c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.5c.187 0 .187 0 .187-.188v-1.511c0-.19 0-.191-.185-.191zM17.999 10.2c0 .188 0 .188.188.188h1.687c.188 0 .188 0 .188-.188V8.688c0-.187.004-.187-.186-.19h-1.69c-.187 0-.187 0-.187.19V10.2zm2.25-3.967h1.5c.188 0 .188 0 .188-.188v-1.7c0-.19 0-.19-.188-.19h-1.5c-.189 0-.189 0-.189.19v1.7c0 .188 0 .188.19.188zm2.063 4.157h3.563c.187 0 .187 0 .187-.189V4.346c0-.19.004-.19-.185-.19h-1.69c-.187 0-.187 0-.187.188v4.155h-1.688c-.187 0-.187 0-.187.189v1.514c0 .19 0 .19.187.19zM14.812 24l2.812-3.4H12l2.813 3.4zm-9-11.157H4.31c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.502c.187 0 .187 0 .187-.188v-1.511c0-.19.01-.191-.189-.191zm15.937 0H8.25c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h13.5c.188 0 .188 0 .188-.188v-1.511c0-.19 0-.191-.188-.191zm-11.438-2.454h1.5c.188 0 .188 0 .188-.188V8.688c0-.187 0-.187-.188-.189h-1.5c-.187 0-.187 0-.187.189V10.2c0 .188 0 .188.187.188zM27.94 0c.563 0 .917.21 1.313.567.518.466.748.757.748 1.51v14.92c0 .567-.188 1.134-.562 1.512-.376.378-.938.566-1.313.566H2.063c-.563 0-.938-.188-1.313-.566-.562-.378-.75-.945-.75-1.511V2.078C0 1.51.188.944.562.567.938.189 1.5 0 1.875 0zm-.062 2H2v14.92h25.877V2zM5.81 4.157c.19 0 .19 0 .19.189v1.762c-.003.126-.024.126-.188.126H4.249c-.126-.003-.126-.023-.126-.188v-1.7c-.187-.19 0-.19.188-.19zm10.5 2.077h1.503c.187 0 .187 0 .187-.188v-1.7c0-.19 0-.19-.187-.19h-1.502c-.188 0-.188.001-.188.19v1.7c0 .188 0 .188.188.188zM7.875 8.5c.187 0 .187.002.187.189V10.2c0 .188 0 .188-.187.188H4.249c-.126-.002-.126-.023-.126-.188V8.625c.003-.126.024-.126.188-.126zm7.875 0c.19.002.19.002.19.189v1.575c-.003.126-.024.126-.19.126h-1.563c-.126-.002-.126-.023-.126-.188V8.625c.002-.126.023-.126.189-.126zm-6-4.342c.187 0 .187 0 .187.189v1.7c0 .188 0 .188-.187.188H8.187c-.126-.003-.126-.023-.126-.188V4.283c.003-.126.024-.126.188-.126zm3.94 0c.185 0 .372 0 .372.189v1.762c-.002.126-.023.126-.187.126h-1.75C12 6.231 12 6.211 12 6.046v-1.7c0-.19.187-.19.187-.19z",fill:"currentColor"}})])}},Yo=Object(o.a)("key"),Xo=Yo[0],Qo=Yo[1],Go=Xo({mixins:[R],props:{type:String,text:[Number,String],color:String,wider:Boolean,large:Boolean,loading:Boolean},data:function(){return{active:!1}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{onTouchStart:function(t){t.stopPropagation(),this.touchStart(t),this.active=!0},onTouchMove:function(t){this.touchMove(t),this.direction&&(this.active=!1)},onTouchEnd:function(t){this.active&&(this.slots("default")||t.preventDefault(),this.active=!1,this.$emit("press",this.text,this.type))},genContent:function(){var t=this.$createElement,e="extra"===this.type,i="delete"===this.type,n=this.slots("default")||this.text;return this.loading?t(vt,{class:Qo("loading-icon")}):i?n||t(Ko,{class:Qo("delete-icon")}):e?n||t(Uo,{class:Qo("collapse-icon")}):n}},render:function(){var t=arguments[0];return t("div",{class:Qo("wrapper",{wider:this.wider})},[t("div",{attrs:{role:"button",tabindex:"0"},class:Qo([this.color,{large:this.large,active:this.active,delete:"delete"===this.type}])},[this.genContent()])])}}),Zo=Object(o.a)("number-keyboard"),Jo=Zo[0],ta=Zo[1],ea=Jo({mixins:[H(),W((function(t){this.hideOnClickOutside&&t(document.body,"touchstart",this.onBlur)}))],model:{event:"update:value"},props:{show:Boolean,title:String,zIndex:[Number,String],randomKeyOrder:Boolean,closeButtonText:String,deleteButtonText:String,closeButtonLoading:Boolean,theme:{type:String,default:"default"},value:{type:String,default:""},extraKey:{type:[String,Array],default:""},maxlength:{type:[Number,String],default:Number.MAX_VALUE},transition:{type:Boolean,default:!0},showDeleteKey:{type:Boolean,default:!0},hideOnClickOutside:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0}},watch:{show:function(t){this.transition||this.$emit(t?"show":"hide")}},computed:{keys:function(){return"custom"===this.theme?this.genCustomKeys():this.genDefaultKeys()}},methods:{genBasicKeys:function(){for(var t=[],e=1;e<=9;e++)t.push({text:e});return this.randomKeyOrder&&t.sort((function(){return Math.random()>.5?1:-1})),t},genDefaultKeys:function(){return[].concat(this.genBasicKeys(),[{text:this.extraKey,type:"extra"},{text:0},{text:this.showDeleteKey?this.deleteButtonText:"",type:this.showDeleteKey?"delete":""}])},genCustomKeys:function(){var t=this.genBasicKeys(),e=this.extraKey,i=Array.isArray(e)?e:[e];return 1===i.length?t.push({text:0,wider:!0},{text:i[0],type:"extra"}):2===i.length&&t.push({text:i[0],type:"extra"},{text:0},{text:i[1],type:"extra"}),t},onBlur:function(){this.show&&this.$emit("blur")},onClose:function(){this.$emit("close"),this.onBlur()},onAnimationEnd:function(){this.$emit(this.show?"show":"hide")},onPress:function(t,e){if(""!==t){var i=this.value;"delete"===e?(this.$emit("delete"),this.$emit("update:value",i.slice(0,i.length-1))):"close"===e?this.onClose():i.lengthe&&(n=(r=e)-i+1);for(var o=n;o<=r;o++){var a=oa(o,o,o===this.value);t.push(a)}if(s&&i>0&&this.forceEllipses){if(n>1){var l=oa(n-1,"...",!1);t.unshift(l)}if(r=0&&t<=100}},showpivot:{type:boolean,default:!0}},data:function(){return{pivotwidth:0,progresswidth:0}},mounted:function(){this.resize()},watch:{showpivot:"resize",pivottext:"resize"},methods:{resize:function(){var t=this;this.$nextTick((function(){t.progress t=arguments[0],e=this.pivotText,i=this.percentage,n=null!=e?e:i+"%",r=this.showPivot&&n,s=this.inactive?"#cacaca":this.color,o={color:this.textColor,left:(this.progressWidth-this.pivotWidth)*i/100+"px",background:this.pivotColor||s},a={background:s,width:this.progressWidth*i/100+"px"},l={background:this.trackColor,height:Object(Y.a)(this.strokeWidth)};return t("div",{class:Oa(),style:l},[t("span",{class:Oa("portion"),style:a},[r&&t("span",{ref:"pivot",style:o,class:Oa("pivot")},[n])])])}}),$a=Object(o.a)("pull-refresh"),Ba=$a[0],Ia=$a[1],Da=$a[2],Ea=["pulling","loosing","success"],ja=Ba({mixins:[R],props:{disabled:Boolean,successText:String,pullingText:String,loosingText:String,loadingText:String,value:{type:Boolean,required:!0},successDuration:{type:[Number,String],default:500},animationDuration:{type:[Number,String],default:300},headHeight:{type:[Number,String],default:50}},data:function(){return{status:"normal",distance:0,duration:0}},computed:{touchable:function(){return"loading"!==this.status&&"success"!==this.status&&!this.disabled},headStyle:function(){if(50!==this.headHeight)return{height:this.headHeight+"px"}}},watch:{value:function(t){this.duration=this.animationDuration,t?this.setStatus(+this.headHeight,!0):this.slots("success")||this.successText?this.showSuccessTip():this.setStatus(0,!1)}},mounted:function(){this.bindTouchEvent(this.$refs.track),this.scrollEl=N(this.$el)},methods:{checkPullStart:function(t){this.ceiling=0===A(this.scrollEl),this.ceiling&&(this.duration=0,this.touchStart(t))},onTouchStart:function(t){this.touchable&&this.checkPullStart(t)},onTouchMove:function(t){this.touchable&&(this.ceiling||this.checkPullStart(t),this.touchMove(t),this.ceiling&&this.deltaY>=0&&"vertical"===this.direction&&(k(t),this.setStatus(this.ease(this.deltaY))))},onTouchEnd:function(){var t=this;this.touchable&&this.ceiling&&this.deltaY&&(this.duration=this.animationDuration,"loosing"===this.status?(this.setStatus(+this.headHeight,!0),this.$emit("input",!0),this.$nextTick((function(){t.$emit("refresh")}))):this.setStatus(0))},ease:function(t){var e=+this.headHeight;return t>e&&(t=t<2*e?e+(t-e)/2:1.5*e+(t-2*e)/4),math.round(t)},setstatus:function(t,e){var i;i=e?"loading":0===t?"normal":t=e?"full":t+.5>=e&&i?"half":"void"));return n},sizeWithUnit:function(){return Object(Y.a)(this.size)},gutterWithUnit:function(){return Object(Y.a)(this.gutter)}},mounted:function(){this.bindTouchEvent(this.$el)},methods:{select:function(t){this.disabled||this.readonly||t===this.value||(this.$emit("input",t),this.$emit("change",t))},onTouchStart:function(t){var e=this;if(!this.readonly&&!this.disabled&&this.touchable){this.touchStart(t);var i=this.$refs.items.map((function(t){return t.getBoundingClientRect()})),n=[];i.forEach((function(t,i){e.allowHalf?n.push({score:i+.5,left:t.left},{score:i+1,left:t.left+t.width/2}):n.push({score:i+1,left:t.left})})),this.ranges=n}},onTouchMove:function(t){if(!this.readonly&&!this.disabled&&this.touchable&&(this.touchMove(t),"horizontal"===this.direction)){k(t);var e=t.touches[0].clientX;this.select(this.getScoreByPosition(e))}},getScoreByPosition:function(t){for(var e=this.ranges.length-1;e>0;e--)if(t>this.ranges[e].left)return this.ranges[e].score;return this.allowHalf?.5:1},genStar:function(t,e){var i,n=this,r=this.$createElement,s=this.icon,o=this.color,a=this.count,l=this.voidIcon,c=this.disabled,u=this.voidColor,h=this.disabledColor,d=e+1,f="full"===t,p="void"===t;return this.gutterWithUnit&&d!==+a&&(i={paddingRight:this.gutterWithUnit}),r("div",{ref:"items",refInFor:!0,key:e,attrs:{role:"radio",tabindex:"0","aria-setsize":a,"aria-posinset":d,"aria-checked":String(!p)},style:i,class:Na("item")},[r(st,{attrs:{size:this.sizeWithUnit,name:f?s:l,color:c?h:f?o:u,classPrefix:this.iconPrefix,"data-score":d},class:Na("icon",{disabled:c,full:f}),on:{click:function(){n.select(d)}}}),this.allowHalf&&r(st,{attrs:{size:this.sizeWithUnit,name:p?l:s,color:c?h:p?u:o,classPrefix:this.iconPrefix,"data-score":d-.5},class:Na("icon",["half",{disabled:c,full:!p}]),on:{click:function(){n.select(d-.5)}}})])}},render:function(){var t=this,e=arguments[0];return e("div",{class:Na({readonly:this.readonly,disabled:this.disabled}),attrs:{tabindex:"0",role:"radiogroup"}},[this.list.map((function(e,i){return t.genStar(e,i)}))])}}),Ma=Object(o.a)("row"),za=Ma[0],Fa=Ma[1],Va=za({mixins:[Ee("vanRow")],props:{type:String,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},computed:{spaces:function(){var t=Number(this.gutter);if(t){var e=[],i=[[]],n=0;return this.children.forEach((function(t,e){(n+=Number(t.span))>24?(i.push([e]),n-=24):i[i.length-1].push(e)})),i.forEach((function(i){var n=t*(i.length-1)/i.length;i.forEach((function(i,r){if(0===r)e.push({right:n});else{var s=t-e[i-1].right,o=n-s;e.push({left:s,right:o})}}))})),e}}},methods:{onClick:function(t){this.$emit("click",t)}},render:function(){var t,e=arguments[0],i=this.align,n=this.justify,r="flex"===this.type;return e(this.tag,{class:Fa((t={flex:r},t["align-"+i]=r&&i,t["justify-"+n]=r&&n,t)),on:{click:this.onClick}},[this.slots()])}}),Ra=Object(o.a)("search"),Ha=Ra[0],_a=Ra[1],Wa=Ra[2];function qa(t,e,i,r){var o={attrs:r.data.attrs,on:n({},r.listeners,{keypress:function(t){13===t.keyCode&&(k(t),d(r,"search",e.value)),d(r,"keypress",t)}})},a=h(r);return a.attrs=void 0,t("div",s()([{class:_a({"show-action":e.showAction}),style:{background:e.background}},a]),[null==i.left?void 0:i.left(),t("div",{class:_a("content",e.shape)},[function(){if(i.label||e.label)return t("div",{class:_a("label")},[i.label?i.label():e.label])}(),t(ce,s()([{attrs:{type:"search",border:!1,value:e.value,leftIcon:e.leftIcon,rightIcon:e.rightIcon,clearable:e.clearable,clearTrigger:e.clearTrigger},scopedSlots:{"left-icon":i["left-icon"],"right-icon":i["right-icon"]}},o]))]),function(){if(e.showAction)return t("div",{class:_a("action"),attrs:{role:"button",tabindex:"0"},on:{click:function(){i.action||(d(r,"input",""),d(r,"cancel"))}}},[i.action?i.action():e.actionText||Wa("cancel")])}()])}qa.props={value:String,label:String,rightIcon:String,actionText:String,background:String,showAction:Boolean,clearTrigger:String,shape:{type:String,default:"square"},clearable:{type:Boolean,default:!0},leftIcon:{type:String,default:"search"}};var Ka=Ha(qa),Ua=["qq","link","weibo","wechat","poster","qrcode","weapp-qrcode","wechat-moments"],Ya=Object(o.a)("share-sheet"),Xa=Ya[0],Qa=Ya[1],Ga=Ya[2],Za=Xa({props:n({},K,{title:String,cancelText:String,description:String,getContainer:[String,Function],options:{type:Array,default:function(){return[]}},overlay:{type:Boolean,default:!0},closeOnPopstate:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}}),methods:{onCancel:function(){this.toggle(!1),this.$emit("cancel")},onSelect:function(t,e){this.$emit("select",t,e)},toggle:function(t){this.$emit("input",t)},getIconURL:function(t){return-1!==Ua.indexOf(t)?"https://img01.yzcdn.cn/vant/share-sheet-"+t+".png":t},genHeader:function(){var t=this.$createElement,e=this.slots("title")||this.title,i=this.slots("description")||this.description;if(e||i)return t("div",{class:Qa("header")},[e&&t("h2",{class:Qa("title")},[e]),i&&t("span",{class:Qa("description")},[i])])},genOptions:function(t,e){var i=this,n=this.$createElement;return n("div",{class:Qa("options",{border:e})},[t.map((function(t,e){return n("div",{attrs:{role:"button",tabindex:"0"},class:[Qa("option"),t.className],on:{click:function(){i.onSelect(t,e)}}},[n("img",{attrs:{src:i.getIconURL(t.icon)},class:Qa("icon")}),t.name&&n("span",{class:Qa("name")},[t.name]),t.description&&n("span",{class:Qa("option-description")},[t.description])])}))])},genRows:function(){var t=this,e=this.options;return Array.isArray(e[0])?e.map((function(e,i){return t.genOptions(e,0!==i)})):this.genOptions(e)},genCancelText:function(){var t,e=this.$createElement,i=null!=(t=this.cancelText)?t:Ga("cancel");if(i)return e("button",{attrs:{type:"button"},class:Qa("cancel"),on:{click:this.onCancel}},[i])},onClickOverlay:function(){this.$emit("click-overlay")}},render:function(){var t=arguments[0];return t(ct,{attrs:{round:!0,value:this.value,position:"bottom",overlay:this.overlay,duration:this.duration,lazyRender:this.lazyRender,lockScroll:this.lockScroll,getContainer:this.getContainer,closeOnPopstate:this.closeOnPopstate,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:Qa(),on:{input:this.toggle,"click-overlay":this.onClickOverlay}},[this.genHeader(),this.genRows(),this.genCancelText()])}}),Ja=Object(o.a)("sidebar"),tl=Ja[0],el=Ja[1],il=tl({mixins:[Ee("vanSidebar")],model:{prop:"activeKey"},props:{activeKey:{type:[Number,String],default:0}},data:function(){return{index:+this.activeKey}},watch:{activeKey:function(){this.setIndex(+this.activeKey)}},methods:{setIndex:function(t){t!==this.index&&(this.index=t,this.$emit("change",t))}},render:function(){var t=arguments[0];return t("div",{class:el()},[this.slots()])}}),nl=Object(o.a)("sidebar-item"),rl=nl[0],sl=nl[1],ol=rl({mixins:[De("vanSidebar")],props:n({},Gt,{dot:Boolean,info:[Number,String],badge:[Number,String],title:String,disabled:Boolean}),computed:{select:function(){return this.index===+this.parent.activeKey}},methods:{onClick:function(){this.disabled||(this.$emit("click",this.index),this.parent.$emit("input",this.index),this.parent.setIndex(this.index),Xt(this.$router,this))}},render:function(){var t,e,i=arguments[0];return i("a",{class:sl({select:this.select,disabled:this.disabled}),on:{click:this.onClick}},[i("div",{class:sl("text")},[null!=(t=this.slots("title"))?t:this.title,i(J,{attrs:{dot:this.dot,info:null!=(e=this.badge)?e:this.info},class:sl("info")})])])}}),al=Object(o.a)("skeleton"),ll=al[0],cl=al[1];function ul(t,e,i,n){if(!e.loading)return i.default&&i.default();return t("div",s()([{class:cl({animate:e.animate,round:e.round})},h(n)]),[function(){if(e.avatar){var i=Object(Y.a)(e.avatarSize);return t("div",{class:cl("avatar",e.avatarShape),style:{width:i,height:i}})}}(),t("div",{class:cl("content")},[function(){if(e.title)return t("h3",{class:cl("title"),style:{width:Object(Y.a)(e.titleWidth)}})}(),function(){for(var i,n=[],r=e.rowWidth,s=0;s0},yl=function(t,e){var i=function(t){var e={};return t.forEach((function(t){var i={};t.v.forEach((function(t){i[t.id]=t})),e[t.k_id]=i})),e}(t);return Object.keys(e).reduce((function(t,r){return e[r].forEach((function(e){t.push(n({},i[r][e]))})),t}),[])},Sl=function(t,e){var i=[];return(t||[]).forEach((function(t){if(e[t.k_id]&&e[t.k_id].length>0){var r=[];t.v.forEach((function(i){e[t.k_id].indexOf(i.id)>-1&&r.push(n({},i))})),i.push(n({},t,{v:r}))}})),i},kl={normalizeSkuTree:pl,getSkuComb:vl,getSelectedSkuValues:gl,isAllSelected:ml,isSkuChoosable:bl,getSelectedPropValues:yl,getSelectedProperties:Sl},xl=Object(o.a)("sku-header"),wl=xl[0],Cl=xl[1];function Ol(t,e,i,r){var o,a=e.sku,l=e.goods,c=e.skuEventBus,u=e.selectedSku,d=e.showHeaderImage,f=void 0===d||d,p=function(t,e){var i;return t.tree.some((function(t){var r=e[t.k_s];if(r&&t.v){var s=t.v.filter((function(t){return t.id===r}))[0]||{},o=s.previewImgUrl||s.imgUrl||s.img_url;if(o)return i=n({},s,{ks:t.k_s,imgUrl:o}),!0}return!1})),i}(a,u),m=p?p.imgUrl:l.picture;return t("div",s()([{class:[Cl(),$t]},h(r)]),[f&&t(on,{attrs:{fit:"cover",src:m},class:Cl("img-wrap"),on:{click:function(){c.$emit("sku:previewImage",p)}}},[null==(o=i["sku-header-image-extra"])?void 0:o.call(i)]),t("div",{class:Cl("goods-info")},[null==i.default?void 0:i.default()])])}Ol.props={sku:Object,goods:Object,skuEventBus:Object,selectedSku:Object,showHeaderImage:Boolean};var Tl=wl(Ol),$l=Object(o.a)("sku-header-item"),Bl=$l[0],Il=$l[1];var Dl=Bl((function(t,e,i,n){return t("div",s()([{class:Il()},h(n)]),[i.default&&i.default()])})),El=Object(o.a)("sku-row"),jl=El[0],Pl=El[1],Ll=El[2],Nl=jl({mixins:[Ee("vanSkuRows"),W((function(t){this.scrollable&&this.$refs.scroller&&t(this.$refs.scroller,"scroll",this.onScroll)}))],props:{skuRow:Object},data:function(){return{progress:0}},computed:{scrollable:function(){return this.skuRow.largeImageMode&&this.skuRow.v.length>6}},methods:{onScroll:function(){var t=this.$refs,e=t.scroller,i=t.row.offsetWidth-e.offsetWidth;this.progress=e.scrollLeft/i},genTitle:function(){var t=this.$createElement;return t("div",{class:Pl("title")},[this.skuRow.k,this.skuRow.is_multiple&&t("span",{class:Pl("title-multiple")},["(",Ll("multiple"),")"])])},genIndicator:function(){var t=this.$createElement;if(this.scrollable){var e={transform:"translate3d("+20*this.progress+"px, 0, 0)"};return t("div",{class:Pl("indicator-wrapper")},[t("div",{class:Pl("indicator")},[t("div",{class:Pl("indicator-slider"),style:e})])])}},genContent:function(){var t=this.$createElement,e=this.slots();if(this.skuRow.largeImageMode){var i=[],n=[];return e.forEach((function(t,e){(Math.floor(e/3)%2==0?i:n).push(t)})),t("div",{class:Pl("scroller"),ref:"scroller"},[t("div",{class:Pl("row"),ref:"row"},[i]),n.length?t("div",{class:Pl("row")},[n]):null])}return e},centerItem:function(t){if(this.skuRow.largeImageMode&&t){var e=this.children,i=void 0===e?[]:e,n=this.$refs,r=n.scroller,s=n.row,o=i.find((function(e){return+e.skuValue.id==+t}));if(r&&s&&o&&o.$el){var a=o.$el,l=a.offsetLeft-(r.offsetWidth-a.offsetWidth)/2;r.scrollLeft=l}}}},render:function(){var t=arguments[0];return t("div",{class:[Pl(),$t]},[this.genTitle(),this.genContent(),this.genIndicator()])}}),Al=(0,Object(o.a)("sku-row-item")[0])({mixins:[De("vanSkuRows")],props:{lazyLoad:Boolean,skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedSku:Object,largeImageMode:Boolean,disableSoldoutSku:Boolean,skuList:{type:Array,default:function(){return[]}}},computed:{imgUrl:function(){var t=this.skuValue.imgUrl||this.skuValue.img_url;return this.largeImageMode?t||"https://img01.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png":t},choosable:function(){return!this.disableSoldoutSku||bl(this.skuList,this.selectedSku,{key:this.skuKeyStr,valueId:this.skuValue.id})}},methods:{onSelect:function(){this.choosable&&this.skuEventBus.$emit("sku:select",n({},this.skuValue,{skuKeyStr:this.skuKeyStr}))},onPreviewImg:function(t){t.stopPropagation();var e=this.skuValue,i=this.skuKeyStr;this.skuEventBus.$emit("sku:previewImage",n({},e,{ks:i,imgUrl:e.imgUrl||e.img_url}))},genImage:function(t){var e=this.$createElement;if(this.imgUrl)return e(on,{attrs:{fit:"cover",src:this.imgUrl,lazyLoad:this.lazyLoad},class:t+"-img"})}},render:function(){var t=arguments[0],e=this.skuValue.id===this.selectedSku[this.skuKeyStr],i=this.largeImageMode?Pl("image-item"):Pl("item");return t("span",{class:[i,e?i+"--active":"",this.choosable?"":i+"--disabled"],on:{click:this.onSelect}},[this.genImage(i),t("div",{class:i+"-name"},[this.largeImageMode?t("span",{class:{"van-multi-ellipsis--l2":this.largeImageMode}},[this.skuValue.name]):this.skuValue.name]),this.largeImageMode&&t(st,{attrs:{name:"enlarge"},class:i+"-img-icon",on:{click:this.onPreviewImg}})])}}),Ml=(0,Object(o.a)("sku-row-prop-item")[0])({props:{skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedProp:Object,multiple:Boolean},computed:{choosed:function(){var t=this.selectedProp,e=this.skuKeyStr,i=this.skuValue;return!(!t||!t[e])&&t[e].indexOf(i.id)>-1}},methods:{onSelect:function(){this.skuEventBus.$emit("sku:propSelect",n({},this.skuValue,{skuKeyStr:this.skuKeyStr,multiple:this.multiple}))}},render:function(){var t=arguments[0];return t("span",{class:["van-sku-row__item",{"van-sku-row__item--active":this.choosed}],on:{click:this.onSelect}},[t("span",{class:"van-sku-row__item-name"},[this.skuValue.name])])}}),zl=Object(o.a)("stepper"),Fl=zl[0],Vl=zl[1];function Rl(t,e){return String(t)===String(e)}var Hl=Fl({mixins:[ei],props:{value:null,theme:String,integer:Boolean,disabled:Boolean,allowEmpty:Boolean,inputWidth:[Number,String],buttonSize:[Number,String],asyncChange:Boolean,placeholder:String,disablePlus:Boolean,disableMinus:Boolean,disableInput:Boolean,decimalLength:[Number,String],name:{type:[Number,String],default:""},min:{type:[Number,String],default:1},max:{type:[Number,String],default:1/0},step:{type:[Number,String],default:1},defaultValue:{type:[Number,String],default:1},showPlus:{type:Boolean,default:!0},showMinus:{type:Boolean,default:!0},showInput:{type:Boolean,default:!0},longPress:{type:Boolean,default:!0}},data:function(){var t,e=null!=(t=this.value)?t:this.defaultValue,i=this.format(e);return Rl(i,this.value)||this.$emit("input",i),{currentValue:i}},computed:{minusDisabled:function(){return this.disabled||this.disableMinus||this.currentValue<=+this.min},plusdisabled:function(){return this.disabled||this.disablePlus||this.currentValue>=+this.max},inputStyle:function(){var t={};return this.inputWidth&&(t.width=Object(Y.a)(this.inputWidth)),this.buttonSize&&(t.height=Object(Y.a)(this.buttonSize)),t},buttonStyle:function(){if(this.buttonSize){var t=Object(Y.a)(this.buttonSize);return{width:t,height:t}}}},watch:{max:"check",min:"check",integer:"check",decimalLength:"check",value:function(t){Rl(t,this.currentValue)||(this.currentValue=this.format(t))},currentValue:function(t){this.$emit("input",t),this.$emit("change",t,{name:this.name})}},methods:{check:function(){var t=this.format(this.currentValue);Rl(t,this.currentValue)||(this.currentValue=t)},formatNumber:function(t){return Pt(String(t),!this.integer)},format:function(t){return this.allowEmpty&&""===t||(t=""===(t=this.formatNumber(t))?0:+t,t=Object(Ni.a)(t)?this.min:t,t=Math.max(Math.min(this.max,t),this.min),Object(m.c)(this.decimalLength)&&(t=t.toFixed(this.decimalLength))),t},onInput:function(t){var e=t.target.value,i=this.formatNumber(e);if(Object(m.c)(this.decimalLength)&&-1!==i.indexOf(".")){var n=i.split(".");i=n[0]+"."+n[1].slice(0,this.decimalLength)}Rl(e,i)||(t.target.value=i),i===String(+i)&&(i=+i),this.emitChange(i)},emitChange:function(t){this.asyncChange?(this.$emit("input",t),this.$emit("change",t,{name:this.name})):this.currentValue=t},onChange:function(){var t=this.type;if(this[t+"Disabled"])this.$emit("overlimit",t);else{var e,i,n,r="minus"===t?-this.step:+this.step,s=this.format((e=+this.currentValue,i=r,n=Math.pow(10,10),Math.round((e+i)*n)/n));this.emitChange(s),this.$emit(t)}},onFocus:function(t){this.disableInput&&this.$refs.input?this.$refs.input.blur():this.$emit("focus",t)},onBlur:function(t){var e=this.format(t.target.value);t.target.value=e,this.currentValue=e,this.$emit("blur",t),se()},longPressStep:function(){var t=this;this.longPressTimer=setTimeout((function(){t.onChange(),t.longPressStep(t.type)}),200)},onTouchStart:function(){var t=this;this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress=!1,this.longPressTimer=setTimeout((function(){t.isLongPress=!0,t.onChange(),t.longPressStep()}),600))},onTouchEnd:function(t){this.longPress&&(clearTimeout(this.longPressTimer),this.isLongPress&&k(t))},onMousedown:function(t){this.disableInput&&t.preventDefault()}},render:function(){var t=this,e=arguments[0],i=function(e){return{on:{click:function(i){i.preventDefault(),t.type=e,t.onChange()},touchstart:function(){t.type=e,t.onTouchStart()},touchend:t.onTouchEnd,touchcancel:t.onTouchEnd}}};return e("div",{class:Vl([this.theme])},[e("button",s()([{directives:[{name:"show",value:this.showMinus}],attrs:{type:"button"},style:this.buttonStyle,class:Vl("minus",{disabled:this.minusDisabled})},i("minus")])),e("input",{directives:[{name:"show",value:this.showInput}],ref:"input",attrs:{type:this.integer?"tel":"text",role:"spinbutton",disabled:this.disabled,readonly:this.disableInput,inputmode:this.integer?"numeric":"decimal",placeholder:this.placeholder,"aria-valuemax":this.max,"aria-valuemin":this.min,"aria-valuenow":this.currentValue},class:Vl("input"),domProps:{value:this.currentValue},style:this.inputStyle,on:{input:this.onInput,focus:this.onFocus,blur:this.onBlur,mousedown:this.onMousedown}}),e("button",s()([{directives:[{name:"show",value:this.showPlus}],attrs:{type:"button"},style:this.buttonStyle,class:Vl("plus",{disabled:this.plusDisabled})},i("plus")]))])}}),_l=Object(o.a)("sku-stepper"),Wl=_l[0],ql=_l[2],Kl=dl.QUOTA_LIMIT,Ul=dl.STOCK_LIMIT,Yl=Wl({props:{stock:Number,skuEventBus:Object,skuStockNum:Number,selectedNum:Number,stepperTitle:String,disableStepperInput:Boolean,customStepperConfig:Object,hideQuotaText:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1}},data:function(){return{currentNum:this.selectedNum,limitType:Ul}},watch:{currentNum:function(t){var e=parseInt(t,10);e>=this.stepperMinLimit&&e<=this.stepperlimit&&this.skueventbus.$emit("sku:numchange",e)},stepperlimit:function(t){tthis.currentNum||t>this.stepperLimit)&&(this.currentNum=t),this.checkState(t,this.stepperLimit)}},computed:{stepperLimit:function(){var t,e=this.quota-this.quotaUsed;return this.quota>0&&e<=this.stock?(t=e<0?0:e,this.limittype=kl):(t=this.stock,this.limittype=ul),t},stepperminlimit:function(){return this.startSaleNum<1?1:this.startsalenum},quotatext:function(){var t=this.customStepperConfig,e=t.quotaText;if(t.hideQuotaText)return"";var i="";if(e)i=e;else{var n=[];this.startSaleNum>1&&n.push(ql("quotaStart",this.startSaleNum)),this.quota>0&&n.push(ql("quotaLimit",this.quota)),i=n.join(ql("comma"))}return i}},created:function(){this.checkState(this.stepperMinLimit,this.stepperLimit)},methods:{setCurrentNum:function(t){this.currentNum=t,this.checkState(this.stepperMinLimit,this.stepperLimit)},onOverLimit:function(t){this.skuEventBus.$emit("sku:overLimit",{action:t,limitType:this.limitType,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum})},onChange:function(t){var e=parseInt(t,10),i=this.customStepperConfig.handleStepperChange;i&&i(e),this.$emit("change",e)},checkState:function(t,e){this.currentNume?this.currentNum=t:this.currentNum>e&&(this.currentNum=e),this.skuEventBus.$emit("sku:stepperState",{valid:t<=e,min:t,max:e,limittype:this.limittype,quota:this.quota,quotaused:this.quotaused,startsalenum:this.startsalenum})}},render:function(){var t=this,e=arguments[0];return e("div",{class:"van-sku-stepper-stock"},[e("div",{class:"van-sku__stepper-title"},[this.stepperTitle||ql("num")]),e(Hl,{attrs:{integer:!0,min:this.stepperMinLimit,max:this.stepperLimit,disableInput:this.disableStepperInput},class:"van-sku__stepper",on:{overlimit:this.onOverLimit,change:this.onChange},model:{value:t.currentNum,callback:function(e){t.currentNum=e}}}),!this.hideQuotaText&&this.quotaText&&e("span",{class:"van-sku__stepper-quota"},["(",this.quotaText,")"])])}});function Xl(t){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t)}function Ql(t){return Array.isArray(t)?t:[t]}function Gl(t,e){return new Promise((function(i){if("file"!==e){var n=new FileReader;n.dataUrl"===e?n.readAsDataURL(t):"text"===e&&n.readAsText(t)}else" i()}))}var Zl=/\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;function Jl(t){return!!t.isImage||(t.file&&t.file.type?0===t.file.type.indexOf("image"):t.url?(e=t.url,Zl.test(e)):!!t.content&&0===t.content.indexOf("data:image"));var e}var tc=Object(o.a)("uploader"),ec=tc[0],ic=tc[1],nc=ec({inheritAttrs:!1,mixins:[ei],model:{prop:"fileList"},props:{disabled:Boolean,lazyLoad:Boolean,uploadText:String,afterRead:Function,beforeRead:Function,beforeDelete:Function,previewSize:[Number,String],previewOptions:Object,name:{type:[Number,String],default:""},accept:{type:String,default:"image/*"},fileList:{type:Array,default:function(){return[]}},maxSize:{type:[Number,String],default:Number.MAX_VALUE},maxCount:{type:[Number,String],default:Number.MAX_VALUE},deletable:{type:Boolean,default:!0},showUpload:{type:Boolean,default:!0},previewImage:{type:Boolean,default:!0},previewFullImage:{type:Boolean,default:!0},imageFit:{type:String,default:"cover"},resultType:{type:String,default:"dataUrl"},uploadIcon:{type:String,default:"photograph"}},computed:{previewSizeWithUnit:function(){return Object(Y.a)(this.previewSize)},value:function(){return this.fileList}},methods:{getDetail:function(t){return void 0===t&&(t=this.fileList.length),{name:this.name,index:t}},onChange:function(t){var e=this,i=t.target.files;if(!this.disabled&&i.length){if(i=1===i.length?i[0]:[].slice.call(i),this.beforeRead){var n=this.beforeRead(i,this.getDetail());if(!n)return void this.resetInput();if(Object(m.f)(n))return void n.then((function(t){t?e.readFile(t):e.readFile(i)})).catch(this.resetInput)}this.readFile(i)}},readFile:function(t){var e=this,i=function(t,e){return Ql(t).some((function(t){return t.size>e}))}(t,this.maxSize);if(Array.isArray(t)){var n=this.maxCount-this.fileList.length;t.length>n&&(t=t.slice(0,n)),Promise.all(t.map((function(t){return Gl(t,e.resultType)}))).then((function(n){var r=t.map((function(t,e){var i={file:t,status:"",message:""};return n[e]&&(i.content=n[e]),i}));e.onAfterRead(r,i)}))}else Gl(t,this.resultType).then((function(n){var r={file:t,status:"",message:""};n&&(r.content=n),e.onAfterRead(r,i)}))},onAfterRead:function(t,e){var i=this;this.resetInput();var n=t;if(e){var r=t;Array.isArray(t)?(r=[],n=[],t.forEach((function(t){t.file&&(t.file.size>i.maxSize?r.push(t):n.push(t))}))):n=null,this.$emit("oversize",r,this.getDetail())}(Array.isArray(n)?Boolean(n.length):Boolean(n))&&(this.$emit("input",[].concat(this.fileList,Ql(n))),this.afterRead&&this.afterRead(n,this.getDetail()))},onDelete:function(t,e){var i,n=this,r=null!=(i=t.beforeDelete)?i:this.beforeDelete;if(r){var s=r(t,this.getDetail(e));if(!s)return;if(Object(m.f)(s))return void s.then((function(){n.deleteFile(t,e)})).catch(m.h)}this.deleteFile(t,e)},deleteFile:function(t,e){var i=this.fileList.slice(0);i.splice(e,1),this.$emit("input",i),this.$emit("delete",t,this.getDetail(e))},resetInput:function(){this.$refs.input&&(this.$refs.input.value="")},onPreviewImage:function(t){var e=this;if(this.previewFullImage){var i=this.fileList.filter((function(t){return Jl(t)})),r=i.map((function(t){return t.content||t.url}));this.imagePreview=ho(n({images:r,startPosition:i.indexOf(t),onClose:function(){e.$emit("close-preview")}},this.previewOptions))}},closeImagePreview:function(){this.imagePreview&&this.imagePreview.close()},chooseFile:function(){this.disabled||this.$refs.input&&this.$refs.input.click()},genPreviewMask:function(t){var e=this.$createElement,i=t.status,n=t.message;if("uploading"===i||"failed"===i){var r="failed"===i?e(st,{attrs:{name:"close"},class:ic("mask-icon")}):e(vt,{class:ic("loading")}),s=Object(m.c)(n)&&""!==n;return e("div",{class:ic("mask")},[r,s&&e("div",{class:ic("mask-message")},[n])])}},genPreviewItem:function(t,e){var i,r,s,o=this,a=this.$createElement,l=null!=(i=t.deletable)?i:this.deletable,c="uploading"!==t.status&&l&&a("div",{class:ic("preview-delete"),on:{click:function(i){i.stopPropagation(),o.onDelete(t,e)}}},[a(st,{attrs:{name:"cross"},class:ic("preview-delete-icon")})]),u=this.slots("preview-cover",n({index:e},t)),h=u&&a("div",{class:ic("preview-cover")},[u]),d=null!=(r=t.previewSize)?r:this.previewSize,f=null!=(s=t.imageFit)?s:this.imageFit,p=Jl(t)?a(on,{attrs:{fit:f,src:t.content||t.url,width:d,height:d,lazyLoad:this.lazyLoad},class:ic("preview-image"),on:{click:function(){o.onPreviewImage(t)}}},[h]):a("div",{class:ic("file"),style:{width:this.previewSizeWithUnit,height:this.previewSizeWithUnit}},[a(st,{class:ic("file-icon"),attrs:{name:"description"}}),a("div",{class:[ic("file-name"),"van-ellipsis"]},[t.file?t.file.name:t.url]),h]);return a("div",{class:ic("preview"),on:{click:function(){o.$emit("click-preview",t,o.getDetail(e))}}},[p,this.genPreviewMask(t),c])},genPreviewList:function(){if(this.previewImage)return this.fileList.map(this.genPreviewItem)},genUpload:function(){var t=this.$createElement;if(!(this.fileList.length>=this.maxCount)&&this.showUpload){var e,i=this.slots(),r=t("input",{attrs:n({},this.$attrs,{type:"file",accept:this.accept,disabled:this.disabled}),ref:"input",class:ic("input"),on:{change:this.onChange}});if(i)return t("div",{class:ic("input-wrapper")},[i,r]);if(this.previewSize){var s=this.previewSizeWithUnit;e={width:s,height:s}}return t("div",{class:ic("upload"),style:e},[t(st,{attrs:{name:this.uploadIcon},class:ic("upload-icon")}),this.uploadText&&t("span",{class:ic("upload-text")},[this.uploadText]),r])}}},render:function(){var t=arguments[0];return t("div",{class:ic()},[t("div",{class:ic("wrapper",{disabled:this.disabled})},[this.genPreviewList(),this.genUpload()])])}}),rc=Object(o.a)("sku-img-uploader"),sc=rc[0],oc=rc[2],ac=sc({props:{value:String,uploadImg:Function,maxSize:{type:Number,default:6}},data:function(){return{fileList:[]}},watch:{value:function(t){this.fileList=t?[{url:t,isImage:!0}]:[]}},methods:{afterReadFile:function(t){var e=this;t.status="uploading",t.message=oc("uploading"),this.uploadImg(t.file,t.content).then((function(i){t.status="done",e.$emit("input",i)})).catch((function(){t.status="failed",t.message=oc("fail")}))},onOversize:function(){this.$toast(oc("oversize",this.maxSize))},onDelete:function(){this.$emit("input","")}},render:function(){var t=this,e=arguments[0];return e(nc,{attrs:{maxCount:1,afterRead:this.afterReadFile,maxSize:1024*this.maxSize*1024},on:{oversize:this.onOversize,delete:this.onDelete},model:{value:t.fileList,callback:function(e){t.fileList=e}}})}});var lc=Object(o.a)("sku-datetime-field"),cc=lc[0],uc=lc[2],hc=cc({props:{value:String,label:String,required:Boolean,placeholder:String,type:{type:String,default:"date"}},data:function(){return{showDatePicker:!1,currentDate:"time"===this.type?"":new Date,minDate:new Date((new Date).getFullYear()-60,0,1)}},watch:{value:function(t){switch(this.type){case"time":this.currentDate=t;break;case"date":case"datetime":this.currentDate=((e=t)?new Date(e.replace(/-/g,"/")):null)||new Date}var e}},computed:{title:function(){return uc("title."+this.type)}},methods:{onClick:function(){this.showDatePicker=!0},onConfirm:function(t){var e=t;"time"!==this.type&&(e=function(t,e){if(void 0===e&&(e="date"),!t)return"";var i=t.getFullYear(),n=t.getMonth()+1,r=t.getDate(),s=i+"-"+Object(Lr.b)(n)+"-"+Object(Lr.b)(r);if("datetime"===e){var o=t.getHours(),a=t.getMinutes();s+=" "+Object(Lr.b)(o)+":"+Object(Lr.b)(a)}return s}(t,this.type)),this.$emit("input",e),this.showDatePicker=!1},onCancel:function(){this.showDatePicker=!1},formatter:function(t,e){return""+e+uc("format."+t)}},render:function(){var t=this,e=arguments[0];return e(ce,{attrs:{readonly:!0,"is-link":!0,center:!0,value:this.value,label:this.label,required:this.required,placeholder:this.placeholder},on:{click:this.onClick}},[e(ct,{attrs:{round:!0,position:"bottom",getContainer:"body"},slot:"extra",model:{value:t.showDatePicker,callback:function(e){t.showDatePicker=e}}},[e(hs,{attrs:{type:this.type,title:this.title,value:this.currentDate,minDate:this.minDate,formatter:this.formatter},on:{cancel:this.onCancel,confirm:this.onConfirm}})])])}}),dc=Object(o.a)("sku-messages"),fc=dc[0],pc=dc[1],mc=dc[2],vc=fc({props:{messageConfig:Object,goodsId:[Number,String],messages:{type:Array,default:function(){return[]}}},data:function(){return{messageValues:this.resetMessageValues(this.messages)}},watch:{messages:function(t){this.messageValues=this.resetMessageValues(t)}},methods:{resetMessageValues:function(t){var e=this.messageConfig.initialMessages,i=void 0===e?{}:e;return(t||[]).map((function(t){return{value:i[t.name]||""}}))},getType:function(t){return 1==+t.multiple?"textarea":"id_no"===t.type?"text":t.datetime>0?"datetime":t.type},getMessages:function(){var t={};return this.messageValues.forEach((function(e,i){t["message_"+i]=e.value})),t},getCartMessages:function(){var t=this,e={};return this.messageValues.forEach((function(i,n){var r=t.messages[n];e[r.name]=i.value})),e},getPlaceholder:function(t){var e=1==+t.multiple?"textarea":t.type,i=this.messageConfig.placeholderMap||{};return t.placeholder||i[e]||mc("placeholder."+e)},validateMessages:function(){for(var t=this.messageValues,e=0;e18))return mc("invalid.id_no")}}},getFormatter:function(t){return function(e){return"mobile"===t.type||"tel"===t.type?e.replace(/[^\d.]/g,""):e}},genMessage:function(t,e){var i=this,n=this.$createElement;return"image"===t.type?n(ne,{key:this.goodsId+"-"+e,attrs:{title:t.name,required:"1"===String(t.required),valueClass:pc("image-cell-value")},class:pc("image-cell")},[n(ac,{attrs:{maxSize:this.messageConfig.uploadMaxSize,uploadImg:this.messageConfig.uploadImg},model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}}),n("div",{class:pc("image-cell-label")},[mc("imageLabel")])]):["date","time"].indexOf(t.type)>-1?n(hc,{attrs:{label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t)},key:this.goodsId+"-"+e,model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}}):n(ce,{attrs:{maxlength:"200",center:!t.multiple,label:t.name,required:"1"===String(t.required),placeholder:this.getPlaceholder(t),type:this.getType(t),formatter:this.getFormatter(t)},key:this.goodsId+"-"+e,model:{value:i.messageValues[e].value,callback:function(t){i.$set(i.messageValues[e],"value",t)}}})}},render:function(){var t=arguments[0];return t("div",{class:pc()},[this.messages.map(this.genMessage)])}}),gc=Object(o.a)("sku-actions"),bc=gc[0],yc=gc[1],Sc=gc[2];function kc(t,e,i,n){var r=function(t){return function(){e.skuEventBus.$emit(t)}};return t("div",s()([{class:yc()},h(n)]),[e.showAddCartBtn&&t(Be,{attrs:{size:"large",type:"warning",text:e.addCartText||Sc("addCart")},on:{click:r("sku:addCart")}}),t(Be,{attrs:{size:"large",type:"danger",text:e.buyText||Sc("buy")},on:{click:r("sku:buy")}})])}kc.props={buyText:String,addCartText:String,skuEventBus:Object,showAddCartBtn:Boolean};var xc=bc(kc),wc=Object(o.a)("sku"),Cc=wc[0],Oc=wc[1],Tc=wc[2],$c=dl.QUOTA_LIMIT,Bc=Cc({props:{sku:Object,goods:Object,value:Boolean,buyText:String,goodsId:[Number,String],priceTag:String,lazyLoad:Boolean,hideStock:Boolean,properties:Array,addCartText:String,stepperTitle:String,getContainer:[String,Function],hideQuotaText:Boolean,hideSelectedText:Boolean,resetStepperOnHide:Boolean,customSkuValidator:Function,disableStepperInput:Boolean,resetSelectedSkuOnHide:Boolean,quota:{type:Number,default:0},quotaUsed:{type:Number,default:0},startSaleNum:{type:Number,default:1},initialSku:{type:Object,default:function(){return{}}},stockThreshold:{type:Number,default:50},showSoldoutSku:{type:Boolean,default:!0},showAddCartBtn:{type:Boolean,default:!0},disableSoldoutSku:{type:Boolean,default:!0},customStepperConfig:{type:Object,default:function(){return{}}},showHeaderImage:{type:Boolean,default:!0},previewOnClickImage:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},bodyOffsetTop:{type:Number,default:200},messageConfig:{type:Object,default:function(){return{initialMessages:{},placeholderMap:{},uploadImg:function(){return Promise.resolve()},uploadMaxSize:5}}}},data:function(){return{selectedSku:{},selectedProp:{},selectedNum:1,show:this.value}},watch:{show:function(t){this.$emit("input",t),t||(this.$emit("sku-close",{selectedSkuValues:this.selectedSkuValues,selectedNum:this.selectedNum,selectedSkuComb:this.selectedSkuComb}),this.resetStepperOnHide&&this.resetStepper(),this.resetSelectedSkuOnHide&&this.resetSelectedSku())},value:function(t){this.show=t},skuTree:"resetSelectedSku",initialSku:function(){this.resetStepper(),this.resetSelectedSku()}},computed:{skuGroupClass:function(){return["van-sku-group-container",{"van-sku-group-container--hide-soldout":!this.showSoldoutSku}]},bodyStyle:function(){if(!this.$isServer)return{maxHeight:window.innerHeight-this.bodyOffsetTop+"px"}},isSkuCombSelected:function(){var t=this;return!(this.hasSku&&!ml(this.skuTree,this.selectedSku))&&!this.propList.some((function(e){return(t.selectedProp[e.k_id]||[]).length<1}))},isskuempty:function(){return 0===Object.keys(this.sku).length},hasSku:function(){return!this.sku.none_sku},hasSkuOrAttr:function(){return this.hasSku||this.propList.length>0},selectedSkuComb:function(){var t=null;return this.isSkuCombSelected&&(t=this.hasSku?vl(this.skuList,this.selectedSku):{id:this.sku.collection_id,price:Math.round(100*this.sku.price),stock_num:this.sku.stock_num})&&(t.properties=Sl(this.propList,this.selectedProp),t.property_price=this.selectedPropValues.reduce((function(t,e){return t+(e.price||0)}),0)),t},selectedSkuValues:function(){return gl(this.skuTree,this.selectedSku)},selectedPropValues:function(){return yl(this.propList,this.selectedProp)},price:function(){return this.selectedSkuComb?((this.selectedSkuComb.price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.price},originPrice:function(){return this.selectedSkuComb&&this.selectedSkuComb.origin_price?((this.selectedSkuComb.origin_price+this.selectedSkuComb.property_price)/100).toFixed(2):this.sku.origin_price},skuTree:function(){return this.sku.tree||[]},skuList:function(){return this.sku.list||[]},propList:function(){return this.properties||[]},imageList:function(){var t=[this.goods.picture];return this.skuTree.length>0&&this.skuTree.forEach((function(e){e.v&&e.v.forEach((function(e){var i=e.previewImgUrl||e.imgUrl||e.img_url;i&&-1===t.indexOf(i)&&t.push(i)}))})),t},stock:function(){var t=this.customStepperConfig.stockNum;return void 0!==t?t:this.selectedSkuComb?this.selectedSkuComb.stock_num:this.sku.stock_num},stockText:function(){var t=this.$createElement,e=this.customStepperConfig.stockFormatter;return e?e(this.stock):[Tc("stock")+" ",t("span",{class:Oc("stock-num",{highlight:this.stock0&&this.$nextTick((function(){t.$emit("sku-selected",{skuValue:e[e.length-1],selectedSku:t.selectedSku,selectedSkuComb:t.selectedSkuComb})})),this.selectedProp={};var i=this.initialSku.selectedProp,n=void 0===i?{}:i;this.propList.forEach((function(e){e.v&&1===e.v.length?t.selectedProp[e.k_id]=[e.v[0].id]:n[e.k_id]&&(t.selectedProp[e.k_id]=n[e.k_id])}));var r=this.selectedPropValues;r.length>0&&this.$emit("sku-prop-selected",{propValue:r[r.length-1],selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.$emit("sku-reset",{selectedSku:this.selectedSku,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb}),this.centerInitialSku()},getSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getMessages():{}},getSkuCartMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.getCartMessages():{}},validateSkuMessages:function(){return this.$refs.skuMessages?this.$refs.skuMessages.validateMessages():""},validateSku:function(){if(0===this.selectedNum)return Tc("unavailable");if(this.isSkuCombSelected)return this.validateSkuMessages();if(this.customSkuValidator){var t=this.customSkuValidator(this);if(t)return t}return Tc("selectSku")},onSelect:function(t){var e,i;this.selectedSku=this.selectedSku[t.skuKeyStr]===t.id?n({},this.selectedSku,((e={})[t.skuKeyStr]="",e)):n({},this.selectedSku,((i={})[t.skuKeyStr]=t.id,i)),this.$emit("sku-selected",{skuValue:t,selectedSku:this.selectedSku,selectedSkuComb:this.selectedSkuComb})},onPropSelect:function(t){var e,i=this.selectedProp[t.skuKeyStr]||[],r=i.indexOf(t.id);r>-1?i.splice(r,1):t.multiple?i.push(t.id):i.splice(0,1,t.id),this.selectedProp=n({},this.selectedProp,((e={})[t.skuKeyStr]=i,e)),this.$emit("sku-prop-selected",{propValue:t,selectedProp:this.selectedProp,selectedSkuComb:this.selectedSkuComb})},onNumChange:function(t){this.selectedNum=t},onPreviewImage:function(t){var e=this,i=this.imageList,r=0,s=i[0];t&&t.imgUrl&&(this.imageList.some((function(e,i){return e===t.imgUrl&&(r=i,!0)})),s=t.imgUrl);var o=n({},t,{index:r,imageList:this.imageList,indexImage:s});this.$emit("open-preview",o),this.previewOnClickImage&&ho({images:this.imageList,startPosition:r,onClose:function(){e.$emit("close-preview",o)}})},onOverLimit:function(t){var e=t.action,i=t.limitType,n=t.quota,r=t.quotaUsed,s=this.customStepperConfig.handleOverLimit;s?s(t):"minus"===e?this.startSaleNum>1?we(Tc("minusStartTip",this.startSaleNum)):we(Tc("minusTip")):"plus"===e&&we(i===$c?r>0?Tc("quotaUsedTip",n,r):Tc("quotaTip",n):Tc("soldout"))},onStepperState:function(t){this.stepperError=t.valid?null:n({},t,{action:"plus"})},onAddCart:function(){this.onBuyOrAddCart("add-cart")},onBuy:function(){this.onBuyOrAddCart("buy-clicked")},onBuyOrAddCart:function(t){if(this.stepperError)return this.onOverLimit(this.stepperError);var e=this.validateSku();e?we(e):this.$emit(t,this.getSkuData())},getSkuData:function(){return{goodsId:this.goodsId,messages:this.getSkuMessages(),selectedNum:this.selectedNum,cartMessages:this.getSkuCartMessages(),selectedSkuComb:this.selectedSkuComb}},onOpened:function(){this.centerInitialSku()},centerInitialSku:function(){var t=this;(this.$refs.skuRows||[]).forEach((function(e){var i=(e.skuRow||{}).k_s;e.centerItem(t.initialSku[i])}))}},render:function(){var t=this,e=arguments[0];if(!this.isSkuEmpty){var i=this.sku,n=this.skuList,r=this.goods,s=this.price,o=this.lazyLoad,a=this.originPrice,l=this.skuEventBus,c=this.selectedSku,u=this.selectedProp,h=this.selectedNum,d=this.stepperTitle,f=this.selectedSkuComb,p=this.showHeaderImage,m=this.disableSoldoutSku,v={price:s,originPrice:a,selectedNum:h,skuEventBus:l,selectedSku:c,selectedSkuComb:f},g=function(e){return t.slots(e,v)},b=g("sku-header")||e(Tl,{attrs:{sku:i,goods:r,skuEventBus:l,selectedSku:c,showHeaderImage:p}},[e("template",{slot:"sku-header-image-extra"},[g("sku-header-image-extra")]),g("sku-header-price")||e("div",{class:"van-sku__goods-price"},[e("span",{class:"van-sku__price-symbol"},["\"]),e("span",{class:"van-sku__price-num"},[s]),this.priceTag&&e("span",{class:"van-sku__price-tag"},[this.priceTag])]),g("sku-header-origin-price")||a&&e(Dl,[Tc("originPrice")," \",a]),!this.hideStock&&e(Dl,[e("span",{class:"van-sku__stock"},[this.stockText])]),this.hasSkuOrAttr&&!this.hideSelectedText&&e(Dl,[this.selectedText]),g("sku-header-extra")]),y=g("sku-group")||this.hasSkuOrAttr&&e("div",{class:this.skuGroupClass},[this.skuTree.map((function(t){return e(Nl,{attrs:{skuRow:t},ref:"skuRows",refInFor:!0},[t.v.map((function(i){return e(Al,{attrs:{skuList:n,lazyLoad:o,skuValue:i,skuKeyStr:t.k_s,selectedSku:c,skuEventBus:l,disableSoldoutSku:m,largeImageMode:t.largeImageMode}})}))])})),this.propList.map((function(t){return e(Nl,{attrs:{skuRow:t}},[t.v.map((function(i){return e(Ml,{attrs:{skuValue:i,skuKeyStr:t.k_id+"",selectedProp:u,skuEventBus:l,multiple:t.is_multiple}})}))])}))]),S=g("sku-stepper")||e(Yl,{ref:"skuStepper",attrs:{stock:this.stock,quota:this.quota,quotaUsed:this.quotaUsed,startSaleNum:this.startSaleNum,skuEventBus:l,selectedNum:h,stepperTitle:d,skuStockNum:i.stock_num,disableStepperInput:this.disableStepperInput,customStepperConfig:this.customStepperConfig,hideQuotaText:this.hideQuotaText},on:{change:function(e){t.$emit("stepper-change",e)}}}),k=g("sku-messages")||e(vc,{ref:"skuMessages",attrs:{goodsId:this.goodsId,messageConfig:this.messageConfig,messages:i.messages}}),x=g("sku-actions")||e(xc,{attrs:{buyText:this.buyText,skuEventBus:l,addCartText:this.addCartText,showAddCartBtn:this.showAddCartBtn}});return e(ct,{attrs:{round:!0,closeable:!0,position:"bottom",getContainer:this.getContainer,closeOnClickOverlay:this.closeOnClickOverlay,safeAreaInsetBottom:this.safeAreaInsetBottom},class:"van-sku-container",on:{opened:this.onOpened},model:{value:t.show,callback:function(e){t.show=e}}},[b,e("div",{class:"van-sku-body",style:this.bodyStyle},[g("sku-body-top"),y,g("extra-sku-group"),S,k]),g("sku-actions-top"),x])}}});Bo.a.add({"zh-CN":{vanSku:{select:"请选择",selected:"已选",selectSku:"请先选择商品规格",soldout:"库存不足",originPrice:"原价",minusTip:"至少选择一件",minusStartTip:function(t){return t+"件起售"},unavailable:"商品已经无法购买啦",stock:"剩余",stockUnit:"件",quotaTip:function(t){return"每人限购"+t+"件"},quotaUsedTip:function(t,e){return"每人限购"+t+"件,你已购买"+e+"件"}},vanSkuActions:{buy:"立即购买",addCart:"加入购物车"},vanSkuImgUploader:{oversize:function(t){return"最大可上传图片为"+t+"MB,请尝试压缩图片尺寸"},fail:"上传失败",uploading:"上传中..."},vanSkuStepper:{quotaLimit:function(t){return"限购"+t+"件"},quotaStart:function(t){return t+"件起售"},comma:",",num:"购买数量"},vanSkuMessages:{fill:"请填写",upload:"请上传",imageLabel:"仅限一张",invalid:{tel:"请填写正确的数字格式留言",mobile:"手机号长度为6-20位数字",email:"请填写正确的邮箱",id_no:"请填写正确的身份证号码"},placeholder:{id_no:"请填写身份证号",text:"请填写留言",tel:"请填写数字",email:"请填写邮箱",date:"请选择日期",time:"请选择时间",textarea:"请填写留言",mobile:"请填写手机号"}},vanSkuRow:{multiple:"可多选"},vanSkuDatetimeField:{title:{date:"选择年月日",time:"选择时间",datetime:"选择日期时间"},format:{year:"年",month:"月",day:"日",hour:"时",minute:"分"}}}}),Bc.SkuActions=xc,Bc.SkuHeader=Tl,Bc.SkuHeaderItem=Dl,Bc.SkuMessages=vc,Bc.SkuStepper=Yl,Bc.SkuRow=Nl,Bc.SkuRowItem=Al,Bc.SkuRowPropItem=Ml,Bc.skuHelper=kl,Bc.skuConstants=fl;var Ic=Bc,Dc=Object(o.a)("slider"),Ec=Dc[0],jc=Dc[1],Pc=function(t,e){return JSON.stringify(t)===JSON.stringify(e)},Lc=Ec({mixins:[R,ei],props:{disabled:Boolean,vertical:Boolean,range:Boolean,barHeight:[Number,String],buttonSize:[Number,String],activeColor:String,inactiveColor:String,min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},value:{type:[Number,Array],default:0}},data:function(){return{dragStatus:""}},computed:{scope:function(){return this.max-this.min},buttonStyle:function(){if(this.buttonSize){var t=Object(Y.a)(this.buttonSize);return{width:t,height:t}}}},created:function(){this.updateValue(this.value)},mounted:function(){this.range?(this.bindTouchEvent(this.$refs.wrapper0),this.bindTouchEvent(this.$refs.wrapper1)):this.bindTouchEvent(this.$refs.wrapper)},methods:{onTouchStart:function(t){this.disabled||(this.touchStart(t),this.currentValue=this.value,this.range?this.startValue=this.value.map(this.format):this.startValue=this.format(this.value),this.dragStatus="start")},onTouchMove:function(t){if(!this.disabled){"start"===this.dragStatus&&this.$emit("drag-start"),k(t,!0),this.touchMove(t),this.dragStatus="draging";var e=this.$el.getBoundingClientRect(),i=(this.vertical?this.deltaY:this.deltaX)/(this.vertical?e.height:e.width)*this.scope;this.range?this.currentValue[this.index]=this.startValue[this.index]+i:this.currentValue=this.startValue+i,this.updateValue(this.currentValue)}},onTouchEnd:function(){this.disabled||("draging"===this.dragStatus&&(this.updateValue(this.currentValue,!0),this.$emit("drag-end")),this.dragStatus="")},onClick:function(t){if(t.stopPropagation(),!this.disabled){var e=this.$el.getBoundingClientRect(),i=this.vertical?t.clientY-e.top:t.clientX-e.left,n=this.vertical?e.height:e.width,r=+this.min+i/n*this.scope;if(this.range){var s=this.value,o=s[0],a=s[1];r<=(o+a)/2?o=r:a=r,r=[o,a]}this.startvalue=this.value,this.updatevalue(r,!0)}},handleoverlap:function(t){return t[0]>t[1]?(t=Dt(t)).reverse():t},updateValue:function(t,e){t=this.range?this.handleOverlap(t).map(this.format):this.format(t),Pc(t,this.value)||this.$emit("input",t),e&&!Pc(t,this.startValue)&&this.$emit("change",t)},format:function(t){return Math.round(Math.max(this.min,Math.min(t,this.max))/this.step)*this.step}},render:function(){var t,e,i=this,n=arguments[0],r=this.vertical,s=r?"height":"width",o=r?"width":"height",a=((t={background:this.inactiveColor})[o]=Object(Y.a)(this.barHeight),t),l=function(){var t=i.value,e=i.min,n=i.range,r=i.scope;return n?100*(t[1]-t[0])/r+"%":100*(t-e)/r+"%"},c=function(){var t=i.value,e=i.min,n=i.range,r=i.scope;return n?100*(t[0]-e)/r+"%":null},u=((e={})[s]=l(),e.left=this.vertical?null:c(),e.top=this.vertical?c():null,e.background=this.activeColor,e);this.dragStatus&&(u.transition="none");var h=function(t){var e=["left","right"],r="number"==typeof t;return n("div",{ref:r?"wrapper"+t:"wrapper",attrs:{role:"slider",tabindex:i.disabled?-1:0,"aria-valuemin":i.min,"aria-valuenow":i.value,"aria-valuemax":i.max,"aria-orientation":i.vertical?"vertical":"horizontal"},class:jc(r?"button-wrapper-"+e[t]:"button-wrapper"),on:{touchstart:function(){r&&(i.index=t)},click:function(t){return t.stopPropagation()}}},[i.slots("button")||n("div",{class:jc("button"),style:i.buttonStyle})])};return n("div",{style:a,class:jc({disabled:this.disabled,vertical:r}),on:{click:this.onClick}},[n("div",{class:jc("bar"),style:u},[this.range?[h(0),h(1)]:h()])])}}),Nc=Object(o.a)("step"),Ac=Nc[0],Mc=Nc[1],zc=Ac({mixins:[De("vanSteps")],computed:{status:function(){return this.index0?"left":"right"),this.dragging=!1,setTimeout((function(){t.lockClick=!1}),0))},toggle:function(t){var e=Math.abs(this.offset),i=this.opened?.85:.15,n=this.computedLeftWidth,r=this.computedRightWidth;r&&"right"===t&&e>r*i?this.open("right"):n&&"left"===t&&e>n*i?this.open("left"):this.close()},onClick:function(t){void 0===t&&(t="outside"),this.$emit("click",t),this.opened&&!this.lockClick&&(this.beforeClose?this.beforeClose({position:t,name:this.name,instance:this}):this.onClose?this.onClose(t,this,{name:this.name}):this.close(t))},getClickHandler:function(t,e){var i=this;return function(n){e&&n.stopPropagation(),i.onClick(t)}},genLeftPart:function(){var t=this.$createElement,e=this.slots("left");if(e)return t("div",{ref:"left",class:Gc("left"),on:{click:this.getClickHandler("left",!0)}},[e])},genRightPart:function(){var t=this.$createElement,e=this.slots("right");if(e)return t("div",{ref:"right",class:Gc("right"),on:{click:this.getClickHandler("right",!0)}},[e])}},render:function(){var t=arguments[0],e={transform:"translate3d("+this.offset+"px, 0, 0)",transitionDuration:this.dragging?"0s":".6s"};return t("div",{class:Gc(),on:{click:this.getClickHandler("cell")}},[t("div",{class:Gc("wrapper"),style:e},[this.genLeftPart(),this.slots(),this.genRightPart()])])}}),Jc=Object(o.a)("switch-cell"),tu=Jc[0],eu=Jc[1];function iu(t,e,i,r){return t(ne,s()([{attrs:{center:!0,size:e.cellSize,title:e.title,border:e.border},class:eu([e.cellSize])},h(r)]),[t(si,{props:n({},e),on:n({},r.listeners)})])}iu.props=n({},ti,{title:String,cellSize:String,border:{type:Boolean,default:!0},size:{type:String,default:"24px"}});var nu=tu(iu),ru=Object(o.a)("tabbar"),su=ru[0],ou=ru[1],au=su({mixins:[Ee("vanTabbar")],props:{route:Boolean,zIndex:[Number,String],placeholder:Boolean,activeColor:String,beforeChange:Function,inactiveColor:String,value:{type:[Number,String],default:0},border:{type:Boolean,default:!0},fixed:{type:Boolean,default:!0},safeAreaInsetBottom:{type:Boolean,default:null}},data:function(){return{height:null}},computed:{fit:function(){return null!==this.safeAreaInsetBottom?this.safeAreaInsetBottom:this.fixed}},watch:{value:"setActiveItem",children:"setActiveItem"},mounted:function(){this.placeholder&&this.fixed&&(this.height=this.$refs.tabbar.getBoundingClientRect().height)},methods:{setActiveItem:function(){var t=this;this.children.forEach((function(e,i){e.active=(e.name||i)===t.value}))},onChange:function(t){var e=this;t!==this.value&&bn({interceptor:this.beforeChange,args:[t],done:function(){e.$emit("input",t),e.$emit("change",t)}})},genTabbar:function(){var t;return(0,this.$createElement)("div",{ref:"tabbar",style:{zIndex:this.zIndex},class:[(t={},t[Bt]=this.border,t),ou({unfit:!this.fit,fixed:this.fixed})]},[this.slots()])}},render:function(){var t=arguments[0];return this.placeholder&&this.fixed?t("div",{class:ou("placeholder"),style:{height:this.height+"px"}},[this.genTabbar()]):this.genTabbar()}}),lu=Object(o.a)("tabbar-item"),cu=lu[0],uu=lu[1],hu=cu({mixins:[De("vanTabbar")],props:n({},Gt,{dot:Boolean,icon:String,name:[Number,String],info:[Number,String],badge:[Number,String],iconPrefix:String}),data:function(){return{active:!1}},computed:{routeActive:function(){var t=this.to,e=this.$route;if(t&&e){var i=Object(m.e)(t)?t:{path:t},n=i.path===e.path,r=Object(m.c)(i.name)&&i.name===e.name;return n||r}}},methods:{onClick:function(t){this.parent.onChange(this.name||this.index),this.$emit("click",t),Xt(this.$router,this)},genIcon:function(t){var e=this.$createElement,i=this.slots("icon",{active:t});return i||(this.icon?e(st,{attrs:{name:this.icon,classPrefix:this.iconPrefix}}):void 0)}},render:function(){var t,e=arguments[0],i=this.parent.route?this.routeActive:this.active,n=this.parent[i?"activeColor":"inactiveColor"];return e("div",{class:uu({active:i}),style:{color:n},on:{click:this.onClick}},[e("div",{class:uu("icon")},[this.genIcon(i),e(J,{attrs:{dot:this.dot,info:null!=(t=this.badge)?t:this.info}})]),e("div",{class:uu("text")},[this.slots("default",{active:i})])])}}),du=Object(o.a)("tree-select"),fu=du[0],pu=du[1];function mu(t,e,i,n){var r=e.items,o=e.height,a=e.activeId,l=e.selectedIcon,c=e.mainActiveIndex;var u=(r[+c]||{}).children||[],f=Array.isArray(a);function p(t){return f?-1!==a.indexOf(t):a===t}var m=r.map((function(e){var i;return t(ol,{attrs:{dot:e.dot,info:null!=(i=e.badge)?i:e.info,title:e.text,disabled:e.disabled},class:[pu("nav-item"),e.className]})}));return t("div",s()([{class:pu(),style:{height:Object(Y.a)(o)}},h(n)]),[t(il,{class:pu("nav"),attrs:{activeKey:c},on:{change:function(t){d(n,"update:main-active-index",t),d(n,"click-nav",t),d(n,"navclick",t)}}},[m]),t("div",{class:pu("content")},[i.content?i.content():u.map((function(i){return t("div",{key:i.id,class:["van-ellipsis",pu("item",{active:p(i.id),disabled:i.disabled})],on:{click:function(){if(!i.disabled){var t=i.id;if(f){var r=(t=a.slice()).indexOf(i.id);-1!==r?t.splice(r,1):t.length=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-1ドル").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(z)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!z&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!y(i,"default"))a=!1;else if(""===a||a===C(e)){var c=Pe(String,i.type);(c<0||s0&&(st((u=e(u,(a||"")+"_"+c))[0])&&st(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?st(f)?s[l]=he(f.text+u):""!==u&&s.push(he(u)):st(u)&&st(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(e):void 0}function st(e){return n(e)&&n(e.text)&&!1===e.isComment}function ct(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=pt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=dt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,"$stable",a),R(i,"$key",s),R(i,"$hasNormal",o),i}function pt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:at(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function dt(e,t){return function(){return e[t]}}function vt(e,t){var r,i,a,s,c;if(Array.isArray(e)||"string"==typeof e)for(r=new Array(e.length),i=0,a=e.length;idocument.createEvent("Event").timeStamp&&(sn=function(){return cn.now()})}function un(){var e,t;for(an=sn(),rn=!0,Qt.sort(function(e,t){return e.id-t.id}),on=0;onon&&Qt[n].id>e.id;)n--;Qt.splice(n+1,0,e)}else Qt.push(e);nn||(nn=!0,Ye(un))}}(this)},fn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Re(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},fn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},fn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},fn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:S,set:S};function dn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}function vn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Me(o,t,n,e);xe(r,o,a),o in e||dn(e,"_props",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return Re(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&dn(e,"_data",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new fn(e,a||S,S,hn)),i in e||mn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===a.call(n)&&e.test(t));var n}function An(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!t(s)&&On(n,o,r,i)}}}function On(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=bn++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De($n(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&qt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=ut(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Pt(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pt(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,"$attrs",o&&o.attrs||e,null,!0),xe(t,"$listeners",n._parentListeners||e,null,!0)}(n),Yt(n,"beforeCreate"),function(e){var t=ct(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),vn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Yt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(wn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return _n(this,e,t,n);(n=n||{}).user=!0;var r=new fn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Re(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(wn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?k(t):t;for(var n=k(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;iparseInt(this.max)&&On(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Ye,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),M.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,Tn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),Cn(e),function(e){M.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(wn),Object.defineProperty(wn.prototype,"$isServer",{get:te}),Object.defineProperty(wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wn,"FunctionalRenderContext",{value:Tt}),wn.version="2.6.11";var En=p("style,class"),Nn=p("input,textarea,option,select,progress"),jn=function(e,t,n){return"value"===n&&Nn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Dn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Mn=function(e,t){return Hn(t)||"false"===t?"false":"contenteditable"===e&&Ln(t)?t:"true"},In=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Fn="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Rn=function(e){return Pn(e)?e.slice(6,e.length):""},Hn=function(e){return null==e||!1===e};function Bn(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Un(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Un(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Vn(t));return""}(t.staticClass,t.class)}function Un(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Vn(e){return Array.isArray(e)?function(e){for(var t,r="",i=0,o=e.length;i-1?hr(e,t,n):In(t)?Hn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Dn(t)?e.setAttribute(t,Mn(t,n)):Pn(t)?Hn(n)?e.removeAttributeNS(Fn,Rn(t)):e.setAttributeNS(Fn,t,n):hr(e,t,n)}function hr(e,t,n){if(Hn(n))e.removeAttribute(t);else{if(q&&!W&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var mr={create:dr,update:dr};function yr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Bn(r),c=i._transitionClasses;n(c)&&(s=zn(s,Vn(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}var gr,_r,br,$r,wr,Cr,xr={create:yr,update:yr},kr=/[\w).+\-_$\]]/;function Ar(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r=0&&" "===(h=e.charAt(v));v--);h&&kr.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r-1?{exp:e.slice(0,$r),key:'"'+e.slice($r+1)+'"'}:{exp:e,key:null};_r=e,$r=wr=Cr=0;for(;!zr();)Vr(br=Ur())?Jr(br):91===br&&Kr(br);return{exp:e.slice(0,wr),key:e.slice(wr+1,Cr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Ur(){return _r.charCodeAt(++$r)}function zr(){return $r>=gr}function Vr(e){return 34===e||39===e}function Kr(e){var t=1;for(wr=$r;!zr();)if(Vr(e=Ur()))Jr(e);else if(91===e&&t++,93===e&&t--,0===t){Cr=$r;break}}function Jr(e){for(var t=e;!zr()&&(e=Ur())!==t;);}var qr,Wr="__r",Zr="__c";function Gr(e,t,n){var r=qr;return function i(){null!==t.apply(null,arguments)&&Qr(e,i,n,r)}}var Xr=Ve&&!(X&&Number(X[1])<=53);function Yr(e,t,n,r){if(Xr){var i=an,o=t;t=o._wrapper=function(e){if(e.>=i||e.timeStamp<=0||e.target.ownerdocument!==document)return o.apply(this,arguments)}}qr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function Qr(e,t,n,r){(r||qr).removeEventListener(e,t._wrapper||t,n)}function ei(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};qr=r.elm,function(e){if(n(e[Wr])){var t=q?"change":"input";e[t]=[].concat(e[Wr],e[t]||[]),delete e[Wr]}n(e[Zr])&&(e.change=[].concat(e[Zr],e.change||[]),delete e[Zr])}(i),rt(i,o,Yr,Qr,Gr,r.context),qr=void 0}}var ti,ni={create:ei,update:ei};function ri(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=o;var u=t(o)?"":String(o);ii(a,u)&&(a.value=u)}else if("innerHTML"===i&&qn(a.tagName)&&t(a.innerHTML)){(ti=ti||document.createElement("div")).innerHTML="";for(var l=ti.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function ii(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var oi={create:ri,update:ri},ai=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function si(e){var t=ci(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ci(e){return Array.isArray(e)?O(e):"string"==typeof e?ai(e):e}var ui,li=/^--/,fi=/\s*!important$/,pi=function(e,t,n){if(li.test(t))e.style.setProperty(t,n);else if(fi.test(n))e.style.setProperty(C(t),n.replace(fi,""),"important");else{var r=vi(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(yi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setattribute("class",(n+t).trim())}}function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function bi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,$i(e.name||"v")),A(t,e),t}return"string"==typeof e?$i(e):void 0}}var $i=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),wi=z&&!W,Ci="transition",xi="animation",ki="transition",Ai="transitionend",Oi="animation",Si="animationend";wi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ki="WebkitTransition",Ai="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Si="webkitAnimationEnd"));var Ti=z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ti(function(){Ti(e)})}function Ni(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),gi(e,t))}function ji(e,t){e._transitionClasses&&h(e._transitionClasses,t),_i(e,t)}function Di(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ci?Ai:Si,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.>=a&&u()};setTimeout(function(){c0&&(n=Ci,l=a,f=o.length):t===xi?u>0&&(n=xi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Ci:xi:null)?n===Ci?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Ci&&Li.test(r[ki+"Property"])}}function Ii(e,t){for(;e.length1}function Ui(e,t){!0!==t.data.show&&Pi(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;ov?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,o)):n(h)?$(h,0,h.length-1):n(e.text)&&u.setTextContent(p,""):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o-1,a.selected!==o&&(a.selected=o);else if(N(Wi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function qi(e,t){return t.every(function(t){return!N(t,e)})}function Wi(e){return"_value"in e?e._value:e.value}function Zi(e){e.target.composing=!0}function Gi(e){e.target.composing&&(e.target.composing=!1,Xi(e.target,"input"))}function Xi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Yi(e){return!e.componentInstance||e.data&&e.data.transition?e:Yi(e.componentInstance._vnode)}var Qi={model:Vi,show:{bind:function(e,t,n){var r=t.value,i=(n=Yi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Pi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Yi(n)).data&&n.data.transition?(n.data.show=!0,r?Pi(n,function(){e.style.display=e.__vOriginalDisplay}):Ri(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},eo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function to(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?to(zt(t.children)):e}function no(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function ro(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var io=function(e){return e.tag||Ut(e)},oo=function(e){return"show"===e.name},ao={name:"transition",props:eo,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(io)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=to(o);if(!a)return o;if(this._leaving)return ro(e,o);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=no(this),u=this._vnode,l=to(u);if(a.data.directives&&a.data.directives.some(oo)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!Ut(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if("out-in"===r)return this._leaving=!0,it(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),ro(e,o);if("in-out"===r){if(Ut(a))return u;var p,d=function(){p()};it(c,"afterEnter",d),it(c,"enterCancelled",d),it(f,"delayLeave",function(e){p=e})}}return o}}},so=A({tag:String,moveClass:String},eo);function co(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function uo(e){e.data.newPos=e.elm.getBoundingClientRect()}function lo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete so.mode;var fo={Transition:ao,TransitionGroup:{props:so,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Zt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=no(this),s=0;s-1?Gn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Gn[e]=/HTMLUnknownElement/.test(t.toString())},A(wn.options.directives,Qi),A(wn.options.components,fo),wn.prototype.__patch__=z?zi:S,wn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Yt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new fn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Yt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Yt(e,"mounted")),e}(this,e=e&&z?Yn(e):void 0,t)},z&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",wn)},0);var po=/\{\{((?:.|\r?\n)+?)\}\}/g,vo=/[-.*+?^${}()|[\]\/\\]/g,ho=g(function(e){var t=e[0].replace(vo,"\\$&"),n=e[1].replace(vo,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var mo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Fr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Ir(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var yo,go={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Fr(e,"style");n&&(e.staticStyle=JSON.stringify(ai(n)));var r=Ir(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},_o=function(e){return(yo=yo||document.createElement("div")).innerHTML=e,yo.textContent},bo=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),$o=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),wo=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Co=/^\s*([^\s"'\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=`]+)))?/,xo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=`]+)))?/,ko="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+P.source+"]*",Ao="((?:"+ko+"\\:)?"+ko+")",Oo=new RegExp("^<"+ao),so=/^\s*(\/?)>/,To=new RegExp("^<\\/"+ao+"[^>]*>"),Eo=/^]+>/i,No=/^",""":'"',"&":"&","
":"\n"," ":"\t","'":"'"},Io=/&(?:lt|gt|quot|amp|#39);/g,Fo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Po=p("pre,textarea",!0),Ro=function(e,t){return e&&Po(e)&&"\n"===t[0]};function Ho(e,t){var n=t?Fo:Io;return e.replace(n,function(e){return Mo[e]})}var Bo,Uo,zo,Vo,Ko,Jo,qo,Wo,Zo=/^@|^v-on:/,Go=/^v-|^@|^:|^#/,Xo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qo=/^\(|\)$/g,ea=/^\[.*\]$/,ta=/:(.*)$/,na=/^:|^\.|^v-bind:/,ra=/\.[^.\]]+(?=[^\]]*$)/g,ia=/^v-slot(:|$)|^#/,oa=/[\r\n]/,aa=/\s+/g,sa=g(_o),ca="_empty_";function ua(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ma(t),rawAttrsMap:{},parent:n,children:[]}}function la(e,t){Bo=t.warn||Sr,Jo=t.isPreTag||T,qo=t.mustUseProp||T,Wo=t.getTagNamespace||T;t.isReservedTag;zo=Tr(t.modules,"transformNode"),Vo=Tr(t.modules,"preTransformNode"),Ko=Tr(t.modules,"postTransformNode"),Uo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=fa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&da(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&da(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),Jo(e.tag)&&(c=!1);for(var f=0;f]*>)","i")),p=e.replace(f,function(e,n,r){return u=r.length,Do(l)||"noscript"===l||(n=n.replace(//g,"1ドル").replace(//g,"1ドル")),Ro(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf("<");if(0===d){if(no.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(jo.test(e)){var h=e.indexOf("]>");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(To);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ro(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(To.test($)||Oo.test($)||No.test($)||jo.test($)||(w=$.indexOf("<",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&c(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(Oo);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(So))&&(r=e.match(xo)||e.match(Co));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&wo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Bo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Wo(e);q&&"svg"===p&&(o=function(e){for(var t=[],n=0;nc&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Ar(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Mr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+br(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Br(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Br(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null";Er(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Mr(e,"change",Br(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Wr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Br(t,l);c&&(f="if($event.target.composing)return;"+f),Er(e,"value","("+t+")"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,"blur","$forceUpdate()")}(e,r,i);else if(!F.isReservedTag(o))return Hr(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Er(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:jn,canBeLeftOpenTag:$o,isReservedTag:Wn,getTagNamespace:Zn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(ba)},xa=g(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function ka(e,t){e&&($a=xa(t.staticKeys||""),wa=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!wa(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every($a)))}(t);if(1===t.type){if(!wa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,Oa=/\([^)]*?\);*$/,Sa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ta={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Na=function(e){return"if("+e+")return null;"},ja={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Na("$event.target !== $event.currentTarget"),ctrl:Na("!$event.ctrlKey"),shift:Na("!$event.shiftKey"),alt:Na("!$event.altKey"),meta:Na("!$event.metaKey"),left:Na("'button' in $event && $event.button !== 0"),middle:Na("'button' in $event && $event.button !== 1"),right:Na("'button' in $event && $event.button !== 2")};function Da(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=La(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function La(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return La(e)}).join(",")+"]";var t=Sa.test(e.value),n=Aa.test(e.value),r=Sa.test(e.value.replace(Oa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(ja[s])o+=ja[s],Ta[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Na(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ma).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ma(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Ta[e],r=Ea[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Ia={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:S},Fa=function(e){this.options=e,this.warn=e.warn||Sr,this.transforms=Tr(e.modules,"transformCode"),this.dataGenFns=Tr(e.modules,"genData"),this.directives=A(A({},Ia),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Pa(e,t){var n=new Fa(t);return{render:"with(this){return "+(e?Ra(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ra(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ha(e,t);if(e.once&&!e.onceProcessed)return Ba(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Ua(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=qa(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Ga((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:qa(t,n,!0);return"_c("+e+","+Va(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Va(e,t));var i=e.inlineTemplate?null:qa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Ga(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ka(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ka))}function Ja(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ua(e,t,Ja,"null");if(e.for&&!e.forProcessed)return za(e,t,Ja);var r=e.slotScope===ca?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(qa(e,t)||"undefined")+":undefined":qa(e,t)||"undefined":Ra(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function qa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ra)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r':'',ts.innerHTML.indexOf("
")>0}var os=!!z&&is(!1),as=!!z&&is(!0),ss=g(function(e){var t=Yn(e);return t&&t.innerHTML}),cs=wn.prototype.$mount;return wn.prototype.$mount=function(e,t){if((e=e&&Yn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ss(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=rs(r,{outputSourceRange:!1,shouldDecodeNewlines:os,shouldDecodeNewlinesForHref:as,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return cs.call(this,e,t)},wn.compile=rs,wn});
\ No newline at end of file
diff --git a/resources/views/codeLeak/index.blade.php b/resources/views/codeLeak/index.blade.php
index 7c2fdf5..4d7b6f9 100644
--- a/resources/views/codeLeak/index.blade.php
+++ b/resources/views/codeLeak/index.blade.php
@@ -63,40 +63,35 @@
{
xtype: 'combo',
valueField: 'value',
- width: 120,
name: 'status',
emptyText: '状态',
store: {data: status}
},
{
- xtype: 'combo',
- width: 120,
- name: 'keyword',
- displayField: 'keyword',
- valueField: 'keyword',
- emptyText: '匹配关键字',
- queryMode: 'local',
- listConfig: {
- minWidth: 318,
- },
- store: {
- autoLoad: true,
- pageSize: 1000,
- proxy: {
- type: 'ajax',
- url: '/api/configJob',
- },
- },
+ xtype: 'textfield',
+ name: 'repo_owner',
+ emptyText: '用户名',
},
{
xtype: 'textfield',
- width: 380,
- name: 'search',
- emptyText: '用户名 / 仓库名 / 文件路径 / 仓库描述 / 处理人 / 说明',
+ name: 'repo_name',
+ emptyText: '仓库名',
+ },
+ {
+ xtype: 'textfield',
+ name: 'path',
+ emptyText: '文件路径',
+ width: 150,
+ },
+ {
+ xtype: 'textfield',
+ name: 'keyword',
+ emptyText: '匹配关键字',
+ width: 150,
},
{
xtype: 'buttongroup',
- baseCls: '',
+ baseCls: 'border:0',
width: 150,
items: [
{
@@ -164,7 +159,7 @@
var params = this.up('form').getValues();
batchOp('PUT', 'batchUpdate', params);
win.close();
- }, true);
+ }, true)
}
},
{
@@ -173,38 +168,12 @@
handler: function () {
batchOpWithConfirm('DELETE', 'batchDestroy', {});
}
- },
- {
- text: '加入白名单',
- iconCls: 'icon-add',
- handler: function () {
- batchAddWhiteList();
- }
}
]
}
}
]
},
- dockedItems: [
- {
- xtype: 'pagingtoolbar',
- dock: 'bottom',
- displayInfo: true,
- items: [
- '-',
- Ext.create('plugin.export'),
- ],
- listeners: {
- change: function (obj) {
- let view = obj.up('grid').getView();
- if (typeof (view.scrollTo) == 'function') {
- view.scrollTo(0, 0);
- }
- }
- }
- }
- ],
columns: [
{
text: 'ID',
@@ -277,22 +246,13 @@
flex: 1,
align: 'center',
},
- {
- text: '处理人',
- dataIndex: 'handle_user',
- width: 120,
- align: 'center',
- renderer: function (value) {
- return value ? value.substring(0, value.indexOf('@')) : '-';
- }
- },
{
text: '说明',
dataIndex: 'description',
flex: 1,
align: 'center',
renderer: function (value) {
- return value ? Ext.String.htmlEncode(value) : '-';
+ return value ? value : '-';
}
},
{
@@ -303,7 +263,7 @@
xtype: 'widgetcolumn',
widget: {
xtype: 'buttongroup',
- baseCls: '',
+ baseCls: 'border:0',
layout: {
type: 'hbox',
pack: 'center',
@@ -356,7 +316,7 @@
var params = this.up('form').getValues();
update(record, 'description', params.description);
win.close();
- }, false);
+ }, false)
}
},
{
@@ -391,7 +351,7 @@
},
{
text: '更多',
- iconCls: 'icon-bullet-blue',
+ iconCls: 'icon-bullet-orange',
margin: '0 0 0 10',
menu: {
items: [
@@ -418,7 +378,7 @@
var content = '';
Ext.each(rsp.data, function (item) {
- content += '' + item.content + '';
+ content += '' + Ext.String.htmlEncode(item.content) + '';
})
winFragment.setHtml('' + content + '
');
});
@@ -464,7 +424,7 @@ function winForm(value, handler, modal) {
return Ext.create('Ext.window.Window', {
title: '编辑信息',
iconCls: 'icon-add',
- width: 600,
+ width: 350,
modal: modal,
layout: 'fit',
items: [
@@ -476,9 +436,8 @@ function winForm(value, handler, modal) {
{
fieldLabel: '说明',
name: 'description',
- xtype: 'textareafield',
+ xtype: 'textfield',
value: value,
- fieldStyle: 'min-height:150px',
}
],
buttons: [
@@ -491,7 +450,7 @@ function winForm(value, handler, modal) {
{
text: '提交',
formBind: true,
- handler: handler,
+ handler: handler
}
]
}
@@ -556,40 +515,6 @@ function batchOp(method, route, params) {
});
}
- // 批量操作
- function batchAddWhiteList() {
- var records = grid.getSelectionModel().getSelection();
- if (!records.length) {
- tool.toast('请先勾选记录!');
- return;
- }
-
- Ext.Msg.show({
- title: '提示',
- iconCls: 'icon-page-star',
- message: '确定执行此操作?',
- buttons: Ext.Msg.YESNO,
- fn: function (btn) {
- if (btn !== 'yes') {
- return;
- }
- var values = [];
- for (var record of records) {
- values.push(record.get('repo_owner') + '/' + record.get('repo_name'));
- }
-
- tool.ajax('POST', '/api/configWhitelist/batchStore', {values: Ext.encode(values)}, function (rsp) {
- if (rsp.success) {
- tool.toast('操作成功!', 'success');
- grid.getSelectionModel().deselectAll();
- } else {
- tool.toast(rsp.message, 'error');
- }
- });
- }
- });
- }
-
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
height: '100%',
diff --git a/resources/views/configJob/index.blade.php b/resources/views/configJob/index.blade.php
index 161c92c..2684b5b 100644
--- a/resources/views/configJob/index.blade.php
+++ b/resources/views/configJob/index.blade.php
@@ -6,6 +6,8 @@
Ext.onReady(function () {
Ext.QuickTips.init(true, {dismissDelay: 0});
+ var GitHub = 'https://github.com/';
+
Ext.create('Ext.data.Store', {
storeId: 'store',
pageSize: 99999, // 不分页
@@ -17,79 +19,17 @@
});
var storeType = [
- {value: 0, text: '记录文件的每个版本', qtip: '即文件每次提交(包含关键字)都会产生一条新的未审记录'},
+ {value: 0, text: '记录文件的每个版本', qtip: '即文件每次提交(包含关键字)会产生一条新的未审记录'},
{value: 1, text: '一个文件只记录一次', qtip: '一个文件只记录一次'},
{value: 2, text: '一个仓库只记录一次', qtip: '一个仓库只记录一次'},
];
- var queue = {
- config: [
- {text: '待执行', color: 'gray'},
- {text: '执行中', color: 'green'},
- ],
- tpl: new Ext.XTemplate('{text}
'),
- }
-
var grid = Ext.create('plugin.grid', {
store: Ext.data.StoreManager.lookup('store'),
- bufferedRenderer: false,
- selType: 'checkboxmodel',
tbar: {
margin: '5 12 15 18',
items: [
- {
- text: '关键字说明',
- iconCls: 'icon-page-star',
- handler: winHelp,
- },
'->',
- {
- text: '任务队列',
- iconCls: 'icon-page-db',
- handler: winQueue,
- },
- '-',
- {
- text: '批量删除',
- iconCls: 'icon-cross',
- handler: function () {
- var records = grid.getSelectionModel().getSelection();
- if (!records.length) {
- tool.toast('请先勾选任务!');
- return;
- }
-
- Ext.Msg.show({
- title: '提示',
- iconCls: 'icon-page',
- message: '确定执行此操作?',
- buttons: Ext.Msg.YESNO,
- fn: function (btn) {
- if (btn !== 'yes') {
- return;
- }
-
-
- var id = [];
- for (var record of records) {
- id.push(record.get('id'));
- }
-
- var params = {id: Ext.encode(id)};
- tool.ajax('DELETE', '/api/configJob/batchDestroy', params, function (rsp) {
- if (rsp.success) {
- tool.toast('操作成功!', 'success');
- grid.store.reload();
- grid.getSelectionModel().clearSelections();
- } else {
- tool.toast(rsp.message, 'error');
- }
- });
- }
- });
- }
- },
- '-',
{
text: '新增任务',
iconCls: 'icon-add',
@@ -112,47 +52,32 @@
dataIndex: 'keyword',
flex: 1,
align: 'center',
- renderer: function (value) {
- return Ext.String.htmlEncode(value);
- }
},
{
text: '扫描页数',
dataIndex: 'scan_page',
- width: 110,
+ width: 180,
align: 'center',
},
{
- text: '扫描间隔',
+ text: '扫描间隔(分钟)',
dataIndex: 'scan_interval_min',
- width: 110,
+ width: 180,
align: 'center',
- renderer: function (value) {
- return value + ' 分钟';
- }
},
{
text: '扫描结果',
dataIndex: 'store_type',
- width: 160,
+ width: 180,
align: 'center',
renderer: function (value) {
return storeType[value].text;
}
},
{
- text: '下次扫描时间',
- dataIndex: 'next_scan_at',
- width: 160,
- align: 'center',
- renderer: function (value) {
- return value ? value : '-';
- }
- },
- {
- text: '最近扫描时间',
+ text: '最后扫描时间',
dataIndex: 'last_scan_at',
- width: 160,
+ width: 180,
align: 'center',
renderer: function (value) {
return value ? value : '-';
@@ -164,18 +89,18 @@
flex: 1,
align: 'center',
renderer: function (value) {
- return value ? Ext.String.htmlEncode(value) : '-';
+ return value ? value : '-';
}
},
{
text: '操作',
sortable: false,
- width: 220,
+ width: 250,
align: 'center',
xtype: 'widgetcolumn',
widget: {
xtype: 'buttongroup',
- baseCls: '',
+ baseCls: 'border:0',
layout: {
type: 'hbox',
pack: 'center',
@@ -187,7 +112,7 @@
margin: '0 20 0 0',
handler: function (obj) {
var record = obj.up().getWidgetRecord();
- winForm(record.data);
+ winForm(record.data)
}
},
{
@@ -241,18 +166,15 @@ function winForm(data) {
},
items: [
{
- xtype: data.id ? 'textfield' : 'textareafield',
name: 'keyword',
fieldLabel: '扫描关键字',
value: data.keyword,
- emptyText: data.id ? '' : '支持批量添加(一行一个关键字)',
},
{
xtype: 'numberfield',
name: 'scan_page',
fieldLabel: '扫描页数(每页 30 条)',
minValue: 1,
- allowDecimals: false,
value: data.scan_page ? data.scan_page : 3,
},
{
@@ -260,7 +182,6 @@ function winForm(data) {
name: 'scan_interval_min',
fieldLabel: '扫描间隔(分钟)',
minValue: 1,
- allowDecimals: false,
value: data.scan_interval_min ? data.scan_interval_min : 60,
},
{
@@ -275,7 +196,7 @@ function winForm(data) {
tpl: [
'',
'{text}',
- '',
+ ''
]
}
},
@@ -284,7 +205,6 @@ function winForm(data) {
fieldLabel: '说 明',
allowBlank: true,
value: data.description,
- emptyText: '备注信息(选填)..',
}
],
buttons: [
@@ -304,14 +224,9 @@ function winForm(data) {
tool.ajax(method, url, params, function (rsp) {
if (rsp.success) {
win.close();
- if (data.id) {
- tool.toast('操作成功', 'success');
- var index = data.id ? grid.store.indexOfId(data.id) : 0;
- grid.store.insert(Math.max(0, index), rsp.data);
- } else {
- grid.store.reload();
- tool.toast(rsp.message, 'success');
- }
+ tool.toast('操作成功', 'success');
+ var index = data.id ? grid.store.indexOfId(data.id) : 0;
+ grid.store.insert(Math.max(0, index), rsp.data);
} else {
tool.toast(rsp.message, 'warning');
}
@@ -324,88 +239,6 @@ function winForm(data) {
}).show();
}
- function winHelp() {
- var content = '';
- content += '
1. 精确匹配:keyword
';
- content += '
2. 关键字有空格或其他符号(引号):"hello world"
';
- content += '
3. 匹配多个关键字(AND):mysql AND password(同时匹配 mysql 和 password)
';
- content += '
4. 排除特定关键字(NOT):mysql NOT localhost(匹配 mysql 但不含 localhost)
';
- content += '
5. 匹配指定语言类型(language):mysql language:go(匹配含 mysql 的 go 文件)
';
- content += '
6. 扫描时 GitHub 会忽略以下符号:@ . , : ; / \\ ` \' " = * ! ? # $ & + ^ | ~ ( ) { } [ ]';
- content += '
7. 可通过 https://github.com/search?o=desc&s=indexed&type=code&q=关键字 预览扫描结果';
- content += '
';
-
- Ext.Msg.show({
- title: '关键字设置说明',
- maxWidth: 800,
- maxHeight: 600,
- modal: false,
- iconCls: 'icon-page-star',
- message: content,
- }).removeCls('x-unselectable');
- }
-
- var taskRunner = new Ext.util.TaskRunner();
-
- function newTask(interval, run) {
- var task = taskRunner.newTask({
- run: run,
- interval: interval,
- fireOnStart: true,
- });
- task.start();
- return task;
- }
-
- function winQueue() {
- var gridQueue = Ext.create('plugin.grid', {
- disableSelection: true,
- viewConfig: {
- loadMask: false,
- emptyText: '任务队列为空..
'
- },
- store: {
- autoLoad: true,
- pageSize: 99999,
- proxy: {
- type: 'ajax',
- url: '/api/configJob/queue',
- },
- },
- columns: [
- {
- text: '关键字',
- dataIndex: 'keyword',
- align: 'center',
- flex: 2,
- },
- {
- text: '状态',
- dataIndex: 'status',
- align: 'center',
- flex: 1,
- renderer: function (value) {
- return queue.tpl.apply(queue.config[value]);
- },
- },
- ]
- });
-
- Ext.create('Ext.window.Window', {
- title: '任务队列',
- iconCls: 'icon-page-db',
- width: 800,
- height: 500,
- layout: 'fit',
- items: [gridQueue],
- }).show();
-
- // 每 5 秒自动刷新
- newTask(5000, function () {
- gridQueue.store.reload();
- });
- }
-
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
height: '100%',
diff --git a/resources/views/configNotify/index.blade.php b/resources/views/configNotify/index.blade.php
deleted file mode 100644
index 5369e4d..0000000
--- a/resources/views/configNotify/index.blade.php
+++ /dev/null
@@ -1,513 +0,0 @@
-@extends('base')
-@section('content')
-
-
-@endsection
diff --git a/resources/views/configToken/index.blade.php b/resources/views/configToken/index.blade.php
index 960b6a6..2f4e5a0 100644
--- a/resources/views/configToken/index.blade.php
+++ b/resources/views/configToken/index.blade.php
@@ -16,44 +16,16 @@
}
});
- var status = {
- '-1': {
- color: 'gray',
- text: '未同步',
- tooltip: '状态将在稍后自动更新..',
- },
- '0': {
- color: 'blue',
- text: '未知',
- tooltip: '没有读取到此令牌状态(可能是当前请求 GitHub 网络不通畅)',
- },
- '1': {
- color: 'green',
- text: '正常',
- tooltip: '此令牌可正常使用',
- },
- '2': {
- color: 'red',
- text: '异常',
- tooltip: '此令牌无法使用(请检查 GitHub 账号及令牌是否异常)',
- },
- }
-
- var urlNewToken = 'https://github.com/settings/tokens/new';
-
var content = '';
content += '1. 令牌是什么?
';
content += '用来请求 GitHub API 的 Token(即 GitHub personal access token)
';
content += '2. 如何申请令牌?
';
content += 'GitHub - Settings - Developer settings - Personal access tokens - Generate new token';
- content += '(直达)
';
- content += '提示:填写 Note 信息后直接点击 Generate token 按钮生成,无需设置其他选项。
';
+ content += '(直达)
';
content += '3. 为何需要配置多个令牌?
';
- content += 'GitHub 限制了 API 的请求速率';
- content += '(文档),';
- content += '系统需要调度多个令牌用于轮询请求(建议至少配置 3 个)
';
- content += '4. 可以用一个 GitHub 账号创建多个令牌吗?
';
- content += '不可以,同一账号多个令牌共享配额,需要多个 GitHub 账号,每个账号创建一个令牌。
';
+ content += '监控需要大量请求 GitHub API,而 GitHub 限制了 API 的请求速率';
+ content += '(GitHub API v3 - Rate limiting)
';
+ content += '因此需要多个 GitHub 账号创建令牌用于轮询请求(建议至少配置 5 个令牌)
';
var grid = Ext.create('plugin.grid', {
store: Ext.data.StoreManager.lookup('store'),
@@ -70,7 +42,7 @@
modal: false,
maxWidth: 800,
message: content,
- }).removeCls('x-unselectable');
+ });
}
},
'->',
@@ -96,21 +68,16 @@
dataIndex: 'token',
width: 380,
align: 'center',
- renderer: function (value) {
- return Ext.String.htmlEncode(value);
- }
},
{
text: '状态',
+ tooltip: '每分钟更新',
dataIndex: 'status',
width: 150,
align: 'center',
- renderer: function (value, cellmeta, record) {
- var data = record.data.created_at !== record.data.updated_at ? status[value] : status['-1'];
- var tpl = new Ext.XTemplate('{text}
');
- cellmeta.tdAttr = 'data-qtip="' + data.tooltip + '"'
- return tpl.apply(data);
- }
+ xtype: 'booleancolumn',
+ trueText: '正常
',
+ falseText: '异常
',
},
{
text: '创建时间',
@@ -121,16 +88,17 @@
},
{
text: 'GitHub接口请求配额',
+ tooltip: '每分钟更新',
columns: [
{
- text: '已用配额/上限',
- width: 200,
+ text: '接口用量',
+ tooltip: '已用次数 / 最大允许请求次数',
+ width: 180,
renderer: function (value, cellmeta, record) {
var item = [], data = record.data;
item.limit = data.api_limit;
item.used = Math.max(0, item.limit - data.api_remaining);
- item.percent = parseFloat((1 - item.used / item.limit) * 100);
- item.percent = item.limit> 0 ? item.percent : 0;
+ item.percent = parseFloat(item.used / item.limit * 100);
return new Ext.XTemplate(
'',
'
',
@@ -141,10 +109,10 @@
}
},
{
- text: '配额重置时间',
+ text: '重置时间',
dataIndex: 'api_reset_at',
align: 'center',
- width: 200,
+ width: 180,
renderer: function (value) {
return value ? value : '-';
}
@@ -157,7 +125,7 @@
align: 'center',
flex: 1,
renderer: function (value) {
- return value ? Ext.String.htmlEncode(value) : '-';
+ return value ? value : '-';
}
},
{
@@ -168,7 +136,7 @@
xtype: 'widgetcolumn',
widget: {
xtype: 'buttongroup',
- baseCls: '',
+ baseCls: 'border:0',
layout: {
type: 'hbox',
pack: 'center',
@@ -180,7 +148,7 @@
margin: '0 20 0 0',
handler: function (obj) {
var record = obj.up().getWidgetRecord();
- winForm(record.data);
+ winForm(record.data)
}
},
{
@@ -234,23 +202,12 @@ function winForm(data) {
fieldLabel: '令牌',
allowBlank: false,
value: data.token,
- emptyText: '点击右侧图标申请..',
- triggers: {
- search: {
- cls: 'icon-page-key',
- tooltip: '前往 GitHub 申请令牌',
- handler: function () {
- tool.winOpen(urlNewToken);
- }
- }
- }
},
{
name: 'description',
xtype: 'textfield',
fieldLabel: '说明',
value: data.description,
- emptyText: '备注信息(选填)..',
}
],
buttons: [
@@ -264,12 +221,6 @@ function winForm(data) {
text: '提交',
formBind: true,
handler: function () {
- Ext.MessageBox.show({
- msg: '令牌状态同步中..',
- width: 300,
- wait: {interval: 200},
- });
-
var params = this.up('form').getValues();
var method = data.id ? 'PUT' : 'POST';
var url = data.id ? '/api/configToken/' + data.id : '/api/configToken';
@@ -282,7 +233,6 @@ function winForm(data) {
} else {
tool.toast(rsp.message, 'warning');
}
- Ext.MessageBox.hide();
});
}
}
diff --git a/resources/views/configWhitelist/index.blade.php b/resources/views/configWhitelist/index.blade.php
index b7b99b6..8d30cec 100644
--- a/resources/views/configWhitelist/index.blade.php
+++ b/resources/views/configWhitelist/index.blade.php
@@ -1,7 +1,5 @@
@extends('base')
@section('content')
-
-
@endsection
diff --git a/resources/views/index/index.blade.php b/resources/views/index/index.blade.php
index 04af0c0..3e09d69 100644
--- a/resources/views/index/index.blade.php
+++ b/resources/views/index/index.blade.php
@@ -12,8 +12,6 @@
@endsection
diff --git a/resources/views/login/index.blade.php b/resources/views/login/index.blade.php
index e555773..6c037fe 100644
--- a/resources/views/login/index.blade.php
+++ b/resources/views/login/index.blade.php
@@ -30,7 +30,7 @@ function login() {
function register() {
var msg = '
请通过命令行方式创建用户:
';
- msg += '
php artisan code6:user-add <邮箱> <密码>
';
+ msg += '
php <项目路径>/artisan code6:user-add <邮箱> <密码>
';
Ext.Msg.show({
title: '注册用户',
diff --git a/resources/views/mobile/home.blade.php b/resources/views/mobile/home.blade.php
deleted file mode 100644
index 878c273..0000000
--- a/resources/views/mobile/home.blade.php
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-
-
{{ $title }}
-
-
-
-
-
-
-
-
-
-
-
-
{{ $title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [[item.created_at]]
-
-
-
- 关键字:[[item.keyword]]
-
- 仓 库:[[item.repo_owner]]/[[item.repo_name]]
-
- 文 件:[[item.path]]
-
- 描 述:[[item.repo_description]]无
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 全部
- 未审
- 误报
- 异常
- 解决
-
-
-
-
-
-
diff --git a/resources/views/mobile/login.blade.php b/resources/views/mobile/login.blade.php
deleted file mode 100644
index 3bd2655..0000000
--- a/resources/views/mobile/login.blade.php
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
{{ $title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 登 录
-
-
-
-
-
-
diff --git a/routes/web.php b/routes/web.php
index 96d8e66..fa69069 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -32,8 +32,6 @@
Route::get('/api/home/tokenQuota', 'HomeController@tokenQuota');
Route::get('/api/home/jobCount', 'HomeController@jobCount');
Route::get('/api/home/tokenCount', 'HomeController@tokenCount');
- Route::get('/api/home/upgradeCheck', 'HomeController@upgradeCheck');
- Route::get('/api/home/mobileQrCode', 'HomeController@mobileQrCode');
Route::get('/codeLeak', 'CodeLeakController@view');
Route::put('/api/codeLeak/batchUpdate', 'CodeLeakController@batchUpdate');
@@ -41,32 +39,13 @@
Route::resource('/api/codeLeak', 'CodeLeakController');
Route::get('/configJob', 'ConfigJobController@view');
- Route::get('/api/configJob/queue', 'ConfigJobController@queue');
- Route::delete('/api/configJob/batchDestroy', 'ConfigJobController@batchDestroy');
Route::resource('/api/configJob', 'ConfigJobController');
Route::get('/configToken', 'ConfigTokenController@view');
Route::resource('/api/configToken', 'ConfigTokenController');
Route::get('/configWhitelist', 'ConfigWhitelistController@view');
- Route::post('/api/configWhitelist/batchStore', 'ConfigWhitelistController@batchStore');
- Route::delete('/api/configWhitelist/batchDestroy', 'ConfigWhitelistController@batchDestroy');
Route::resource('/api/configWhitelist', 'ConfigWhitelistController');
- Route::resource('/api/configWhitelistFile', 'ConfigWhitelistFileController');
-
- Route::post('/api/configProxy/test', 'ConfigProxyController@test');
- Route::resource('/api/configProxy', 'ConfigProxyController');
-
- Route::get('/configNotify', 'ConfigNotifyController@view');
- Route::post('/api/test', 'ConfigNotifyController@test');
- Route::resource('/api/configNotify', 'ConfigNotifyController');
- Route::resource('/api/configNotifyTemplate', 'ConfigNotifyTemplateController');
-
Route::resource('/api/codeFragment', 'CodeFragmentController');
});
-
-Route::get('/mobile/login', 'MobileController@login');
-Route::group(['middleware' => ['auth.mobile']], function () {
- Route::get('/mobile', 'MobileController@home');
-});
diff --git a/version b/version
index 9edc58b..9084fa2 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-1.6.4
+1.1.0