Compare commits
116 Commits
83536ed7bf
...
ozq-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d8e22d270 | ||
|
|
f154f3ddf6 | ||
|
|
2073a27ef7 | ||
|
|
e301fc7e94 | ||
|
|
f9251d944e | ||
|
|
1e6187801d | ||
|
|
346dcebba3 | ||
| ab7b23e5d1 | |||
| 325221bd67 | |||
|
|
721e91dc31 | ||
|
|
12e51c6f46 | ||
|
|
8ba9006173 | ||
|
|
a7d413871b | ||
|
|
ce6a882c17 | ||
|
|
7e7cfeacbc | ||
|
|
e1961d2a83 | ||
|
|
d313617e2b | ||
|
|
f0c82c848f | ||
|
|
f606dc64a5 | ||
|
|
39dc3c4e1a | ||
|
|
52b265f36e | ||
|
|
5f9fb74696 | ||
|
|
b251c78b2f | ||
|
|
2e1c83d46d | ||
|
|
0265cb0629 | ||
|
|
68d66b2925 | ||
|
|
601403bf3e | ||
|
|
bbe2197b38 | ||
|
|
ee955a3674 | ||
|
|
e45df84312 | ||
|
|
4e0891da97 | ||
|
|
f9b895732e | ||
|
|
e72ecd55f4 | ||
|
|
558b418d18 | ||
|
|
78cbc5de6e | ||
|
|
f7b610df72 | ||
|
|
b1522a365b | ||
|
|
48906ec9cd | ||
|
|
b57cb8dfd6 | ||
|
|
7d70c55557 | ||
|
|
4fdda8435d | ||
|
|
7a96809bfe | ||
|
|
62b3e2798f | ||
|
|
bfeac736ea | ||
|
|
74ea50b7e4 | ||
|
|
8a617c06e9 | ||
|
|
efa8acaf12 | ||
|
|
d3ff726e90 | ||
|
|
7880c18e85 | ||
|
|
e80ba5ac7d | ||
| 20b5fd901b | |||
| e38c00f59c | |||
| a18706f7d4 | |||
| 4ff2ee4a76 | |||
| 2ca708fd4a | |||
| 29761f551d | |||
| fdb75e4888 | |||
| 5fde7159e0 | |||
| 6068efa03f | |||
| 738b293ea2 | |||
| a1be105c31 | |||
| 03374856e4 | |||
| f07741ff19 | |||
| c64450d74c | |||
| e462b38ff9 | |||
| b96021d21d | |||
| 12d6fdc3a6 | |||
| cd3f651a2a | |||
| 1e4b416cac | |||
| e38446f3fd | |||
| 06b9d42ae4 | |||
| 99d78069d5 | |||
| 342a3754aa | |||
| 51e9c8ced1 | |||
| b13d481e1e | |||
| da8f204167 | |||
| c1979da1af | |||
| 1802f57906 | |||
| 3fa3b8fb63 | |||
| fb2b1455bc | |||
| cc497b2ebc | |||
| 2b450a2e9c | |||
| e266e89a97 | |||
| 2a94a7ecec | |||
| 9137335ce3 | |||
| b8946f223a | |||
| 3a8440c2b9 | |||
| c2bba7fb56 | |||
| 052570fefa | |||
| 09b1f9f14c | |||
| 37825f88ba | |||
| 1c7434b591 | |||
| 585da730ea | |||
| 2ecc51d8a9 | |||
| ad7148ccfc | |||
| 1e00db6c97 | |||
| 5ed692a672 | |||
| 5f7156470e | |||
| 3aafcd3f3b | |||
| 9b339d6364 | |||
| 09f9bfd301 | |||
| 910a07ea47 | |||
| c27d529b82 | |||
| b6724c0361 | |||
| d4fa15f671 | |||
| 60229ae058 | |||
| 6cf27d8b9c | |||
| 6ba7181e3f | |||
| 4334c2db66 | |||
| d7e93567d9 | |||
| e19ba6a315 | |||
| a8e7ad2430 | |||
| 55c8762255 | |||
| 43a4f5f706 | |||
| c6cff2e97d | |||
| 5d53c26c5c |
@@ -26,6 +26,13 @@ TTL=3600
|
|||||||
REFRESH_TTL=20160
|
REFRESH_TTL=20160
|
||||||
SECRET=b43e6276644ed60e65c50d1b324ba10b
|
SECRET=b43e6276644ed60e65c50d1b324ba10b
|
||||||
|
|
||||||
|
# 七牛云存储配置
|
||||||
|
[QINIU_CLOUD]
|
||||||
|
BUCKET = orico-official-website
|
||||||
|
BASE_URL = //ow.static.f2b211.com
|
||||||
|
ACCESS_KEY = dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms
|
||||||
|
SECRET_KEY = KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q
|
||||||
|
|
||||||
# 后台不需要登录的接口
|
# 后台不需要登录的接口
|
||||||
[ADMIN_AUTH]
|
[ADMIN_AUTH]
|
||||||
WHITE_LIST[] = v1/user/login
|
WHITE_LIST[] = v1/user/login
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -8,6 +8,8 @@ Thumbs.db
|
|||||||
.env.local
|
.env.local
|
||||||
.env.prod
|
.env.prod
|
||||||
|
|
||||||
|
public/dist
|
||||||
|
public/opendoc
|
||||||
/.idea
|
/.idea
|
||||||
/.vscode
|
/.vscode
|
||||||
/vendor
|
/vendor
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ class ReceiveProductSync
|
|||||||
}
|
}
|
||||||
|
|
||||||
$category = ProductCategoryModel::language($lang_id)->tcoId($tco_category['id'])->find();
|
$category = ProductCategoryModel::language($lang_id)->tcoId($tco_category['id'])->find();
|
||||||
|
if (!empty($category)) {
|
||||||
$tco_parent = ProductTcoCategoryModel::language($lang_id)->tcoId($tco_category['tco_pid'])->find();
|
$tco_parent = ProductTcoCategoryModel::language($lang_id)->tcoId($tco_category['tco_pid'])->find();
|
||||||
if (!empty($tco_parent)) {
|
if (!empty($tco_parent)) {
|
||||||
$parent = ProductCategoryModel::language($lang_id)->tcoId($tco_parent['id'])->find();
|
$parent = ProductCategoryModel::language($lang_id)->tcoId($tco_parent['id'])->find();
|
||||||
@@ -109,10 +110,11 @@ class ReceiveProductSync
|
|||||||
$category['path'] = $parent['path'] . $parent['pid'];
|
$category['path'] = $parent['path'] . $parent['pid'];
|
||||||
$category['level'] = $parent['level'] + 1;
|
$category['level'] = $parent['level'] + 1;
|
||||||
}
|
}
|
||||||
if (!$category->save($category)) {
|
if (!$category->save()) {
|
||||||
throw new \Exception('产品分类更新失败');
|
throw new \Exception('产品分类更新失败');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ class Article
|
|||||||
private function getExportArticleData()
|
private function getExportArticleData()
|
||||||
{
|
{
|
||||||
$server = request()->server();
|
$server = request()->server();
|
||||||
$image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . config('filesystem.disks.public.url') . '/';
|
$image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . '/';
|
||||||
$param = request()->param(['title', 'category_id', 'release_time']);
|
$param = request()->param(['title', 'category_id', 'release_time']);
|
||||||
$data = ArticleModel::field([
|
$data = ArticleModel::field([
|
||||||
'*',
|
'*',
|
||||||
@@ -253,7 +253,7 @@ class Article
|
|||||||
])
|
])
|
||||||
->bindAttr('category', ['category_name' => 'name'])
|
->bindAttr('category', ['category_name' => 'name'])
|
||||||
->each(function ($item) use($image_host) {
|
->each(function ($item) use($image_host) {
|
||||||
$item->image = !empty($item->image) ? $image_host . $item->image : '';
|
$item->image = !empty($item->image) ? url_join($image_host, $item->image) : '';
|
||||||
return $item;
|
return $item;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -262,11 +262,9 @@ class BannerItem
|
|||||||
// 获取导出数据
|
// 获取导出数据
|
||||||
private function getBannerExportData()
|
private function getBannerExportData()
|
||||||
{
|
{
|
||||||
$param = request()->param([
|
$server = request()->server();
|
||||||
'title',
|
$image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . '/';
|
||||||
'banner_id',
|
$param = request()->param(['title', 'banner_id', 'created_at']);
|
||||||
'created_at'
|
|
||||||
]);
|
|
||||||
return SysBannerItemModel::alias('item')
|
return SysBannerItemModel::alias('item')
|
||||||
->field([
|
->field([
|
||||||
'item.id',
|
'item.id',
|
||||||
@@ -311,7 +309,13 @@ class BannerItem
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
->order(['item.sort' => 'asc', 'item.id' => 'desc'])
|
->order(['item.sort' => 'asc', 'item.id' => 'desc'])
|
||||||
->select();
|
->select()
|
||||||
|
->each(function($item) use($image_host) {
|
||||||
|
$item->image = !empty($item->image) ? url_join($image_host, $item->image) : '';
|
||||||
|
$item->extra_image = !empty($item->extra_image) ? url_join($image_host, $item->extra_image) : '';
|
||||||
|
$item->video = !empty($item->video) ? url_join($image_host, $item->video) : '';
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ class Product
|
|||||||
private function getExportProductData()
|
private function getExportProductData()
|
||||||
{
|
{
|
||||||
$server = request()->server();
|
$server = request()->server();
|
||||||
$image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . config('filesystem.disks.public.url') . '/';
|
$image_host = $server['REQUEST_SCHEME'] . "://" . $server['SERVER_NAME'] . '/';
|
||||||
$param = request()->param([
|
$param = request()->param([
|
||||||
'name',
|
'name',
|
||||||
'spu',
|
'spu',
|
||||||
@@ -360,10 +360,10 @@ class Product
|
|||||||
'spu',
|
'spu',
|
||||||
'name',
|
'name',
|
||||||
'short_name',
|
'short_name',
|
||||||
'CONCAT("' . $image_host . '", `cover_image`)' => 'cover_image',
|
'cover_image',
|
||||||
'desc',
|
'desc',
|
||||||
'CONCAT("' . $image_host . '", `video_img`)' => 'video_img',
|
'video_img',
|
||||||
'CONCAT("' . $image_host . '", `video_url`)' => 'video_url',
|
'video_url',
|
||||||
'CASE WHEN is_new = 1 THEN "是" ELSE "否" END' => 'is_new',
|
'CASE WHEN is_new = 1 THEN "是" ELSE "否" END' => 'is_new',
|
||||||
'CASE WHEN is_hot = 1 THEN "是" ELSE "否" END' => 'is_hot',
|
'CASE WHEN is_hot = 1 THEN "是" ELSE "否" END' => 'is_hot',
|
||||||
'CASE WHEN is_sale = 1 THEN "是" ELSE "否" END' => 'is_sale',
|
'CASE WHEN is_sale = 1 THEN "是" ELSE "否" END' => 'is_sale',
|
||||||
@@ -390,7 +390,18 @@ class Product
|
|||||||
->order(['id' => 'asc'])
|
->order(['id' => 'asc'])
|
||||||
->select()
|
->select()
|
||||||
->bindAttr('category', ['category_name' => 'name'])
|
->bindAttr('category', ['category_name' => 'name'])
|
||||||
->hidden(['category_id', 'category']);
|
->hidden(['category_id', 'category'])
|
||||||
|
->each(function($item) use($image_host) {
|
||||||
|
if (!empty($item["cover_image"])) {
|
||||||
|
$item["cover_image"] = url_join($image_host, $item["cover_image"]);
|
||||||
|
}
|
||||||
|
if (!empty($item["video_img"])) {
|
||||||
|
$item["video_img"] = url_join($image_host, $item["video_img"]);
|
||||||
|
}
|
||||||
|
if (!empty($item["video_url"])) {
|
||||||
|
$item["video_url"] = url_join($image_host, $item["video_url"]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (!$products->isEmpty()) {
|
if (!$products->isEmpty()) {
|
||||||
// 产品参数
|
// 产品参数
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ class ProductTcoCategory
|
|||||||
$param = request()->param(['name']);
|
$param = request()->param(['name']);
|
||||||
|
|
||||||
$categorys = ProductTcoCategoryModel::field([
|
$categorys = ProductTcoCategoryModel::field([
|
||||||
'tco_id' => 'id',
|
'id',
|
||||||
'tco_pid' => 'pid',
|
'tco_id',
|
||||||
|
'tco_pid',
|
||||||
'name',
|
'name',
|
||||||
])
|
])
|
||||||
->withSearch(['name'], [
|
->withSearch(['name'], [
|
||||||
@@ -25,10 +26,10 @@ class ProductTcoCategory
|
|||||||
])
|
])
|
||||||
->language(request()->lang_id)
|
->language(request()->lang_id)
|
||||||
->enabled()
|
->enabled()
|
||||||
->order(['id' => 'asc'])
|
->order(['tco_id' => 'asc'])
|
||||||
->select()
|
->select()
|
||||||
->toArray();
|
->toArray();
|
||||||
|
|
||||||
return success('获取成功', array_to_tree($categorys, 0, 'pid', false));
|
return success('获取成功', array_to_tree($categorys, 0, 'tco_pid', false, true, 'tco_id'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -209,9 +209,6 @@ class Video
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$domain = request()->domain();
|
$domain = request()->domain();
|
||||||
$image_path = Config::get('filesystem.disks.image.url');
|
|
||||||
$video_path = Config::get('filesystem.disks.video.url');
|
|
||||||
|
|
||||||
return VideoModel::withoutField([
|
return VideoModel::withoutField([
|
||||||
'language_id',
|
'language_id',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
@@ -230,13 +227,9 @@ class Video
|
|||||||
->select()
|
->select()
|
||||||
->bindAttr('category', ['category_name' => 'name'])
|
->bindAttr('category', ['category_name' => 'name'])
|
||||||
->hidden(['category_id', 'category'])
|
->hidden(['category_id', 'category'])
|
||||||
->each(function ($item) use($domain, $image_path, $video_path) {
|
->each(function ($item) use($domain) {
|
||||||
if (!empty($item->image)) {
|
$item->image = !empty($item->image) ? url_join($domain, $item->image) : '';
|
||||||
$item->image = $domain . $image_path . '/' . $item->image;
|
$item->video = !empty($item->video) ? url_join($domain, $item->video) : '';
|
||||||
}
|
|
||||||
if (!empty($item->video)) {
|
|
||||||
$item->video = $domain . $video_path . '/' . $item->video;
|
|
||||||
}
|
|
||||||
$item->recommend = $item->recommend == 1 ? '是' : '否';
|
$item->recommend = $item->recommend == 1 ? '是' : '否';
|
||||||
$item->status = $item->status == 1 ? '启用' : '禁用';
|
$item->status = $item->status == 1 ? '启用' : '禁用';
|
||||||
return $item;
|
return $item;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class SysBannerItemValidate extends Validate
|
|||||||
'extra_image' => 'max:255',
|
'extra_image' => 'max:255',
|
||||||
'video' => 'max:255',
|
'video' => 'max:255',
|
||||||
'link_to' => 'requireIf:type,image|max:64|in:article,article_category,product,product_category,system_page,custom',
|
'link_to' => 'requireIf:type,image|max:64|in:article,article_category,product,product_category,system_page,custom',
|
||||||
'link' => 'max:255',
|
'link' => 'max:510',
|
||||||
'sort' => 'integer',
|
'sort' => 'integer',
|
||||||
'status' => 'in:-1,1'
|
'status' => 'in:-1,1'
|
||||||
];
|
];
|
||||||
@@ -54,7 +54,7 @@ class SysBannerItemValidate extends Validate
|
|||||||
'link_to.requireIf' => '链接类型不能为空',
|
'link_to.requireIf' => '链接类型不能为空',
|
||||||
'link_to.max' => '链接类型最多不能超过64个字符',
|
'link_to.max' => '链接类型最多不能超过64个字符',
|
||||||
'link_to.in' => '链接类型必须是article,article_category,product,product_category,system_page,custom中之一',
|
'link_to.in' => '链接类型必须是article,article_category,product,product_category,system_page,custom中之一',
|
||||||
'link.max' => '链接最多不能超过255个字符',
|
'link.max' => '链接最多不能超过512个字符',
|
||||||
'sort.integer' => '排序值必须是整数',
|
'sort.integer' => '排序值必须是整数',
|
||||||
'status.in' => '状态必须是-1或1'
|
'status.in' => '状态必须是-1或1'
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class VideoValidate extends Validate
|
|||||||
'id' => 'require|integer',
|
'id' => 'require|integer',
|
||||||
'language_id' => 'require|integer',
|
'language_id' => 'require|integer',
|
||||||
'category_id' => 'require|integer',
|
'category_id' => 'require|integer',
|
||||||
'name' => 'require|max:64',
|
'name' => 'require|max:128',
|
||||||
'desc' => 'max:512',
|
'desc' => 'max:512',
|
||||||
'image' => 'max:125',
|
'image' => 'max:125',
|
||||||
'video' => 'max:125',
|
'video' => 'max:125',
|
||||||
@@ -43,7 +43,7 @@ class VideoValidate extends Validate
|
|||||||
'category_id.require' => '分类不能为空',
|
'category_id.require' => '分类不能为空',
|
||||||
'category_id.integer' => '分类参数类型错误',
|
'category_id.integer' => '分类参数类型错误',
|
||||||
'name.require' => '名称不能为空',
|
'name.require' => '名称不能为空',
|
||||||
'name.max' => '名称不能超过64个字符',
|
'name.max' => '名称不能超过128个字符',
|
||||||
'desc.max' => '描述不能超过512个字符',
|
'desc.max' => '描述不能超过512个字符',
|
||||||
'image.max' => '图片不能超过125个字符',
|
'image.max' => '图片不能超过125个字符',
|
||||||
'video.max' => '视频不能超过125个字符',
|
'video.max' => '视频不能超过125个字符',
|
||||||
|
|||||||
42
app/command/OpenApiMgr/AddClient.php
Normal file
42
app/command/OpenApiMgr/AddClient.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\command\OpenApiMgr;
|
||||||
|
|
||||||
|
use oauth\OAuthStorage;
|
||||||
|
use think\console\Command;
|
||||||
|
use think\console\Input;
|
||||||
|
use think\console\input\Argument;
|
||||||
|
use think\console\input\Option;
|
||||||
|
use think\console\Output;
|
||||||
|
|
||||||
|
class AddClient extends Command
|
||||||
|
{
|
||||||
|
protected function configure()
|
||||||
|
{
|
||||||
|
// 指令配置
|
||||||
|
$this->setName('OpenApiMgr:AddClient')
|
||||||
|
->addArgument('salt', Argument::OPTIONAL, "开放API的client_secret密钥的盐值")
|
||||||
|
->setDescription('开放API的client管理');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(Input $input, Output $output)
|
||||||
|
{
|
||||||
|
$salt = $input->getArgument('salt');
|
||||||
|
$salt = empty($salt) ? null : trim($salt);
|
||||||
|
|
||||||
|
// 指令输出
|
||||||
|
$oauth = new OAuthStorage($salt);
|
||||||
|
|
||||||
|
$client_id = random_str(13, 'all', 0);
|
||||||
|
$client_secret = random_str(32, 'all', 0);
|
||||||
|
|
||||||
|
$ok = $oauth->addClient($client_id, $client_secret, null);
|
||||||
|
if (!$ok) {
|
||||||
|
$output->writeln("添加失败");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output->writeln("添加成功:\nClientID: {$client_id}\nClientSecret: {$client_secret}\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -80,7 +80,7 @@ if (!function_exists('array_to_tree')) {
|
|||||||
* @param bool $keep_pid 是否保留pid
|
* @param bool $keep_pid 是否保留pid
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function array_to_tree(array $data, int $pid, string $with = 'pid', int|bool $level = 1, bool $keep_pid = true)
|
function array_to_tree(array $data, int $pid, string $with = 'pid', int|bool $level = 1, bool $keep_pid = true, $with_ref = 'id')
|
||||||
{
|
{
|
||||||
$ret = [];
|
$ret = [];
|
||||||
foreach ($data as $item) {
|
foreach ($data as $item) {
|
||||||
@@ -93,7 +93,7 @@ if (!function_exists('array_to_tree')) {
|
|||||||
if ($keep_pid === false) {
|
if ($keep_pid === false) {
|
||||||
unset($item[$with]);
|
unset($item[$with]);
|
||||||
}
|
}
|
||||||
$children = array_to_tree($data, $item['id'], $with, $lv, $keep_pid);
|
$children = array_to_tree($data, $item[$with_ref], $with, $lv, $keep_pid, $with_ref);
|
||||||
if ($children) {
|
if ($children) {
|
||||||
$item['children'] = $children;
|
$item['children'] = $children;
|
||||||
}
|
}
|
||||||
@@ -153,9 +153,13 @@ if (!function_exists('get_filesystem_url')) {
|
|||||||
* @param string $disk 磁盘配置 key
|
* @param string $disk 磁盘配置 key
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function get_filesystem_url(string $url, string $disk): string
|
function get_filesystem_url(string|null $url, string $disk): string
|
||||||
{
|
{
|
||||||
if (\think\helper\Str::startsWith($url, ['http://', 'https://'])) {
|
if (is_null($url)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (\think\helper\Str::startsWith($url, ['http://', 'https://', '//'])) {
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
if (empty($disk)) {
|
if (empty($disk)) {
|
||||||
@@ -171,8 +175,12 @@ if (!function_exists('url_filesystem_detect')) {
|
|||||||
* @param string $url 文件地址
|
* @param string $url 文件地址
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function url_filesystem_detect(string $url): string
|
function url_filesystem_detect(string|null $url): string
|
||||||
{
|
{
|
||||||
|
if (is_null($url)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
$idx = strrpos($url, '.');
|
$idx = strrpos($url, '.');
|
||||||
if ($idx === false) {
|
if ($idx === false) {
|
||||||
return $url;
|
return $url;
|
||||||
@@ -191,3 +199,36 @@ if (!function_exists('url_filesystem_detect')) {
|
|||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!function_exists('url_join')) {
|
||||||
|
/**
|
||||||
|
* 合并URL
|
||||||
|
* @param string $url 基础URL
|
||||||
|
* @param string $path 路径
|
||||||
|
* @param bool $remove_slash 是否移除首尾的斜杠
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function url_join(string $url, string $path, bool $remove_slash = true): string
|
||||||
|
{
|
||||||
|
if (empty($url)) {
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
if (empty($path)) {
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
if (\think\helper\Str::startsWith($path, ['http://', 'https://', '//'])) {
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($remove_slash) {
|
||||||
|
if (str_ends_with($url, '/') && str_starts_with($path, '/')) {
|
||||||
|
return $url . substr($path, 1);
|
||||||
|
}
|
||||||
|
if (!str_ends_with($url, '/') && !str_starts_with($path, '/')) {
|
||||||
|
return $url . '/' . $path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $url . $path;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -192,6 +192,8 @@ class TopicNas extends Common
|
|||||||
{
|
{
|
||||||
// 获取文章分类及文章数据
|
// 获取文章分类及文章数据
|
||||||
$parent = ArticleCategoryModel::uniqueLabel('CATEGORY_681182e0a4529')->language($this->lang_id)->value('id');
|
$parent = ArticleCategoryModel::uniqueLabel('CATEGORY_681182e0a4529')->language($this->lang_id)->value('id');
|
||||||
|
$parent_two = ArticleCategoryModel::parent($parent)->language($this->lang_id)->column('id');//二级分类id
|
||||||
|
array_push($parent_two,$parent);
|
||||||
$article_categorys = ArticleCategoryModel::with(['article' => function($query) {
|
$article_categorys = ArticleCategoryModel::with(['article' => function($query) {
|
||||||
$query->field(['id', 'title', 'category_id'])
|
$query->field(['id', 'title', 'category_id'])
|
||||||
->order(['sort' => 'asc', 'id' => 'desc'])
|
->order(['sort' => 'asc', 'id' => 'desc'])
|
||||||
@@ -199,15 +201,48 @@ class TopicNas extends Common
|
|||||||
}])
|
}])
|
||||||
->field([
|
->field([
|
||||||
'id',
|
'id',
|
||||||
|
'pid',
|
||||||
'name',
|
'name',
|
||||||
'icon'
|
'icon'
|
||||||
])
|
])
|
||||||
->language($this->lang_id)
|
->language($this->lang_id)
|
||||||
->parent($parent)
|
// ->parent($parent)
|
||||||
|
->parentChild($parent_two)
|
||||||
->isShow(true)
|
->isShow(true)
|
||||||
->order(['sort' => 'asc', 'id' => 'desc'])
|
->order(['sort' => 'asc', 'id' => 'desc'])
|
||||||
->select();
|
->select();
|
||||||
View::assign('article_categorys', $article_categorys);
|
//查询三级分类
|
||||||
|
$article_categorys_new = [];
|
||||||
|
$article_categorys_two = [];
|
||||||
|
// dump($article_categorys->toArray());exit;
|
||||||
|
if (!$article_categorys->isEmpty()) {
|
||||||
|
foreach ($article_categorys->toArray() as $kk=>$vv) {
|
||||||
|
if ( $parent == $vv['pid'] ) {
|
||||||
|
array_push($article_categorys_new,$vv);
|
||||||
|
} else {
|
||||||
|
$article_categorys_two[$vv['pid']][] = $vv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !empty($article_categorys_two) ) {
|
||||||
|
foreach ($article_categorys_new as &$vvv) {
|
||||||
|
$articles = $vvv['article'];
|
||||||
|
if ( isset($article_categorys_two[$vvv['id']]) ) {
|
||||||
|
foreach ($article_categorys_two[$vvv['id']] as $v) {
|
||||||
|
foreach ($v['article'] as $av) {
|
||||||
|
if ( count($articles) < 3 ) {
|
||||||
|
array_push($articles,$av);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$vvv['article'] = $articles;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
View::assign('article_categorys', $article_categorys_new);
|
||||||
|
// View::assign('article_categorys', $article_categorys);
|
||||||
|
|
||||||
$contacts = [];
|
$contacts = [];
|
||||||
// 获取banner数据
|
// 获取banner数据
|
||||||
@@ -246,20 +281,46 @@ class TopicNas extends Common
|
|||||||
|
|
||||||
// 获取文章分类及文章数据
|
// 获取文章分类及文章数据
|
||||||
$parent = ArticleCategoryModel::uniqueLabel('CATEGORY_681182e0a4529')->language($this->lang_id)->value('id');
|
$parent = ArticleCategoryModel::uniqueLabel('CATEGORY_681182e0a4529')->language($this->lang_id)->value('id');
|
||||||
|
$parent_two = ArticleCategoryModel::parent($parent)->language($this->lang_id)->column('id');//二级分类id
|
||||||
|
array_push($parent_two,$parent);
|
||||||
$article_categorys = ArticleCategoryModel::with(['article' => function ($query) {
|
$article_categorys = ArticleCategoryModel::with(['article' => function ($query) {
|
||||||
$query->field(['id', 'title', 'category_id'])->order(['sort' => 'asc', 'id' => 'desc']);
|
$query->field(['id', 'title', 'category_id'])->order(['sort' => 'asc', 'id' => 'desc']);
|
||||||
}])
|
}])
|
||||||
->field([
|
->field([
|
||||||
'id',
|
'id',
|
||||||
|
'pid',
|
||||||
'name',
|
'name',
|
||||||
'icon'
|
'icon'
|
||||||
])
|
])
|
||||||
->language($this->lang_id)
|
->language($this->lang_id)
|
||||||
->parent($parent)
|
// ->parent($parent)
|
||||||
|
->parentChild($parent_two)
|
||||||
->isShow(true)
|
->isShow(true)
|
||||||
->order(['sort' => 'asc', 'id' => 'desc'])
|
->order(['sort' => 'asc', 'id' => 'desc'])
|
||||||
->select();
|
->select();
|
||||||
View::assign('article_categorys', $article_categorys);
|
// dump($article_categorys->toArray());exit;
|
||||||
|
//查询三级分类
|
||||||
|
$article_categorys_new = [];
|
||||||
|
$article_categorys_two = [];
|
||||||
|
if (!$article_categorys->isEmpty()) {
|
||||||
|
foreach ($article_categorys->toArray() as $kk=>$vv) {
|
||||||
|
if ( $parent == $vv['pid'] ) {
|
||||||
|
$vv['child'] = '';
|
||||||
|
array_push($article_categorys_new,$vv);
|
||||||
|
} else {
|
||||||
|
$article_categorys_two[$vv['pid']][] = $vv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !empty($article_categorys_two) ) {
|
||||||
|
foreach ($article_categorys_new as &$vvv) {
|
||||||
|
$vvv['child'] = isset($article_categorys_two[$vvv['id']])?$article_categorys_two[$vvv['id']]:'';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// dump($article_categorys_new);exit;
|
||||||
|
// dump($article_categorys_two);exit;
|
||||||
|
|
||||||
|
View::assign('article_categorys', $article_categorys_new);
|
||||||
|
|
||||||
return View::fetch('help_detail');
|
return View::fetch('help_detail');
|
||||||
}
|
}
|
||||||
@@ -317,8 +378,18 @@ class TopicNas extends Common
|
|||||||
->language($this->lang_id)
|
->language($this->lang_id)
|
||||||
->where('category_id', 'IN', array_column($categorys, 'id'))
|
->where('category_id', 'IN', array_column($categorys, 'id'))
|
||||||
->select();
|
->select();
|
||||||
|
//查询上级id
|
||||||
|
$parent_two = ArticleCategoryModel::parentColumn(array_column($categorys, 'id'))->language($this->lang_id)->column('pid','id');//二级分类id
|
||||||
|
$articles_data = $articles->toArray();
|
||||||
|
foreach ($articles_data as &$v) {
|
||||||
|
$v['pid'] = 0;
|
||||||
|
if ( $parent_two[$v['category_id']] !== $parent ) {
|
||||||
|
$v['pid'] = $v['category_id'];
|
||||||
|
$v['category_id'] = $parent_two[$v['category_id']];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return success('success', $articles->toArray());
|
return success('success', $articles_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -46,6 +46,27 @@ class ArticleCategoryModel extends ArticleCategoryBaseModel
|
|||||||
$query->where('pid', '=', $parent);
|
$query->where('pid', '=', $parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 所属上级分类范围查询
|
||||||
|
public function scopeParentChild($query, $parent)
|
||||||
|
{
|
||||||
|
if (is_array($parent)) {
|
||||||
|
$query->where('pid', 'IN', $parent);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$query->where('pid', '=', $parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 所属上级分类查询
|
||||||
|
public function scopeParentColumn($query, $parent)
|
||||||
|
{
|
||||||
|
if (is_array($parent)) {
|
||||||
|
$query->where('id', 'IN', $parent);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$query->where('id', '=', $parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 所属子分类范围查询
|
// 所属子分类范围查询
|
||||||
public function scopeChild($query, $id, $merge_self = false)
|
public function scopeChild($query, $id, $merge_self = false)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
{notempty name="video_categorys"}
|
{notempty name="video_categorys"}
|
||||||
{volist name="video_categorys" id="va"}
|
{volist name="video_categorys" id="va"}
|
||||||
<a href="{:url('attachment/index', ['id' => $va.id])}"><div class="tabit active">{$va.name}</div></a>
|
<a href="{:url('attachment/video', ['id' => $va.id])}"><div class="tabit active">{$va.name}</div></a>
|
||||||
{/volist}
|
{/volist}
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,7 +22,11 @@
|
|||||||
<a class="href_01">{:lang_i18n('首页')}</a>
|
<a class="href_01">{:lang_i18n('首页')}</a>
|
||||||
{volist name="product_categorys" id="ca"}
|
{volist name="product_categorys" id="ca"}
|
||||||
<span class="icon-arrow arrow_address"></span>
|
<span class="icon-arrow arrow_address"></span>
|
||||||
|
{eq name="ca.pid" value="0"}
|
||||||
<a class="href_02" href="{:url('product/category', ['id' => $ca.id])}">{$ca.name}</a>
|
<a class="href_02" href="{:url('product/category', ['id' => $ca.id])}">{$ca.name}</a>
|
||||||
|
{else /}
|
||||||
|
<a class="href_02" href="{:url('product/subcategory', ['id' => $ca.id])}">{$ca.name}</a>
|
||||||
|
{/eq}
|
||||||
{/volist}
|
{/volist}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -29,12 +29,13 @@
|
|||||||
{/notempty}
|
{/notempty}
|
||||||
<li>
|
<li>
|
||||||
<h3>{:lang_i18n('联系方式')}</h3>
|
<h3>{:lang_i18n('联系方式')}</h3>
|
||||||
{notempty name="contact_config.website_email"}
|
{if condition="!empty($contact_config)"}
|
||||||
<p>{$contact_config.website_email.title}: {$contact_config.website_email.value}</p>
|
{volist name="contact_config" id="vo"}
|
||||||
{/notempty}
|
{if condition="$vo.type != 'image'"}
|
||||||
{notempty name="contact_config.website_hotline_office_hours"}
|
<p>{$vo.value}</p>
|
||||||
<p>{$contact_config.website_hotline_office_hours.title}: {$contact_config.website_hotline_office_hours.value}</p>
|
{/if}
|
||||||
{/notempty}
|
{/volist}
|
||||||
|
{/if}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -57,6 +57,8 @@
|
|||||||
<div class="nars-hlpdt-ml">
|
<div class="nars-hlpdt-ml">
|
||||||
{notempty name="article_categorys"}
|
{notempty name="article_categorys"}
|
||||||
<div class="nav-tree">
|
<div class="nav-tree">
|
||||||
|
|
||||||
|
|
||||||
{volist name="article_categorys" id="ac" key="idx"}
|
{volist name="article_categorys" id="ac" key="idx"}
|
||||||
<div class="categoryhelp">
|
<div class="categoryhelp">
|
||||||
<div class="categoryhelp-title">
|
<div class="categoryhelp-title">
|
||||||
@@ -67,6 +69,24 @@
|
|||||||
<span>{$ac.name}</span>
|
<span>{$ac.name}</span>
|
||||||
</div>
|
</div>
|
||||||
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
|
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
|
||||||
|
{volist name="ac.child" id="ad"}
|
||||||
|
<li class="two-mues">
|
||||||
|
<a href="#" class="two-a">
|
||||||
|
<div><img src="__IMAGES__/nars-jt.png"
|
||||||
|
class="arrow {if condition='$ad.id == $Request.get.pid'}rotate{/if}">
|
||||||
|
</div>
|
||||||
|
<span>{$ad.name}</span>
|
||||||
|
</a>
|
||||||
|
<ul class="thress-mues" {if condition='$ad.id == $Request.get.pid' }style="display: block;" {/if}>
|
||||||
|
{volist name="ad.article" id="ae"}
|
||||||
|
<li>
|
||||||
|
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id ,'pid' => $ad.id, 'id' => $ae.id])}"
|
||||||
|
style="margin-left:18%;padding: 0.4rem;">{$ae.title}</a>
|
||||||
|
</li>
|
||||||
|
{/volist}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{/volist}
|
||||||
{volist name="ac.article" id="ar"}
|
{volist name="ac.article" id="ar"}
|
||||||
<li>
|
<li>
|
||||||
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id , 'id' => $ar.id])}"
|
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id , 'id' => $ar.id])}"
|
||||||
@@ -78,6 +98,9 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{/volist}
|
{/volist}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -128,6 +151,17 @@
|
|||||||
$(this).next('.sub-list').slideToggle();
|
$(this).next('.sub-list').slideToggle();
|
||||||
$(this).find('.arrow').toggleClass('rotate');
|
$(this).find('.arrow').toggleClass('rotate');
|
||||||
});
|
});
|
||||||
|
//分类二三级交互
|
||||||
|
$('.two-a').click(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation(); // 阻止事件冒泡
|
||||||
|
|
||||||
|
// 切换当前二级菜单的箭头方向
|
||||||
|
$(this).find('.arrow').toggleClass('rotate');
|
||||||
|
|
||||||
|
// 切换对应的三级菜单显示/隐藏
|
||||||
|
$(this).siblings('.thress-mues').slideToggle();
|
||||||
|
});
|
||||||
// 点击顶部搜索图标-点击取消关闭
|
// 点击顶部搜索图标-点击取消关闭
|
||||||
$('#ssico').click(function () {
|
$('#ssico').click(function () {
|
||||||
$('.nhlpapp-pagescate').hide();
|
$('.nhlpapp-pagescate').hide();
|
||||||
|
|||||||
@@ -24,7 +24,9 @@
|
|||||||
<p>{$detail.release_time|date_format_i18n}</p>
|
<p>{$detail.release_time|date_format_i18n}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- 文本渲染-->
|
<!-- 文本渲染-->
|
||||||
<div class="blog_content">{$detail.content|raw}</div>
|
<div class="ql-container">
|
||||||
|
<div class="blog_content ql-editor">{$detail.content|raw}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 评论只显示前面五条--->
|
<!-- 评论只显示前面五条--->
|
||||||
{notempty name="comments"}
|
{notempty name="comments"}
|
||||||
|
|||||||
@@ -117,8 +117,8 @@
|
|||||||
<p class="subtitle" {notempty name="scene.desc_txt_color" }style="color:{$scene.desc_txt_color};" {/notempty}>
|
<p class="subtitle" {notempty name="scene.desc_txt_color" }style="color:{$scene.desc_txt_color};" {/notempty}>
|
||||||
{$scene.desc|raw}</p>
|
{$scene.desc|raw}</p>
|
||||||
<a class="sceneMore" href="{$scene.link}">{:lang_i18n('了解更多')} ></a> -->
|
<a class="sceneMore" href="{$scene.link}">{:lang_i18n('了解更多')} ></a> -->
|
||||||
</a>
|
|
||||||
<div style="background-image: url('{$scene.image}');" class="sceneimg"></div>
|
<div style="background-image: url('{$scene.image}');" class="sceneimg"></div>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{/volist}
|
{/volist}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,7 +22,11 @@
|
|||||||
<a class="pathname" href="/">{:lang_i18n('首页')}</a>
|
<a class="pathname" href="/">{:lang_i18n('首页')}</a>
|
||||||
{volist name="product_categorys" id="ca"}
|
{volist name="product_categorys" id="ca"}
|
||||||
<div class="arrow"></div>
|
<div class="arrow"></div>
|
||||||
|
{eq name="ca.pid" value="0"}
|
||||||
<a class="pathname" href="{:url('product/category', ['id' => $ca.id])}">{$ca.name}</a>
|
<a class="pathname" href="{:url('product/category', ['id' => $ca.id])}">{$ca.name}</a>
|
||||||
|
{else /}
|
||||||
|
<a class="pathname" href="{:url('product/subcategory', ['id' => $ca.id])}">{$ca.name}</a>
|
||||||
|
{/eq}
|
||||||
{/volist}
|
{/volist}
|
||||||
</div>
|
</div>
|
||||||
<!-- 产品主图切换和参数详情-->
|
<!-- 产品主图切换和参数详情-->
|
||||||
@@ -129,10 +133,12 @@
|
|||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
<!-- 富文本渲染-->
|
<!-- 富文本渲染-->
|
||||||
<div class="products_des" id="detail">
|
<div class="ql-container">
|
||||||
|
<div class="products_des ql-editor" id="detail">
|
||||||
{$product.detail|default=''|raw}
|
{$product.detail|default=''|raw}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<!-- 关联产品 -->
|
<!-- 关联产品 -->
|
||||||
{notempty name="product_related"}
|
{notempty name="product_related"}
|
||||||
<div class="glcpmain" id="related">
|
<div class="glcpmain" id="related">
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nhlp-tx-list">
|
<div class="nhlp-tx-list">
|
||||||
{volist name="vo.article" id="va" key="index"}
|
{volist name="vo.article" id="va" key="index"}
|
||||||
<a class="txrow" href="{:url('/index/topic/nas/help_detail', ['cid' => $vo.id, 'id' => $va.id])}">
|
<a class="txrow" href="{:url('/index/topic/nas/help_detail', ['pid' => $va.category_id,'cid' => $vo.id, 'id' => $va.id])}">
|
||||||
<div class="nhlp-point"></div>
|
<div class="nhlp-point"></div>
|
||||||
<span class="nhlpsp">{$va.title}</span>
|
<span class="nhlpsp">{$va.title}</span>
|
||||||
<span class="narhelpgoimg">
|
<span class="narhelpgoimg">
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{/volist}
|
{/volist}
|
||||||
{if condition="count($vo.article) >= 3"}
|
{if condition="count($vo.article) >= 3"}
|
||||||
<a class="ckgdbt" href="{:url('/index/topic/nas/help_detail', ['cid' => $vo.id, 'id' => isset($vo.article[0])?$vo.article[0]['id']:0])}">
|
<a class="ckgdbt" href="{:url('/index/topic/nas/help_detail', ['cid' => $vo.id, 'id' => isset($vo.article[0])?$vo.article[0]['id']:0,'pid' => isset($vo.article[0])?$vo.article[0]['category_id']:0])}">
|
||||||
{:lang_i18n('查看更多')} >
|
{:lang_i18n('查看更多')} >
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -32,28 +32,42 @@
|
|||||||
<div class="nars-hlpdt-ml">
|
<div class="nars-hlpdt-ml">
|
||||||
{notempty name="article_categorys"}
|
{notempty name="article_categorys"}
|
||||||
<div class="nav-tree">
|
<div class="nav-tree">
|
||||||
|
|
||||||
|
<!-- start 三级菜单 -->
|
||||||
{volist name="article_categorys" id="ac"}
|
{volist name="article_categorys" id="ac"}
|
||||||
<div class="category">
|
<div class="category">
|
||||||
|
<!-- 一级 -->
|
||||||
<div class="category-title">
|
<div class="category-title">
|
||||||
<div class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}">
|
<div class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}"><img src="__IMAGES__/nas-jt.png" class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}" /></div>
|
||||||
<img src="__IMAGES__/nas-jt.png" class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}" />
|
|
||||||
</div>
|
|
||||||
<span>{$ac.name}</span>
|
<span>{$ac.name}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 二级-->
|
||||||
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
|
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
|
||||||
{volist name="ac.article" id="ar"}
|
{volist name="ac.child" id="ad"}
|
||||||
<li>
|
<li class="two-mues">
|
||||||
<a
|
<a href="#" class="two-a">
|
||||||
href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id, 'id' => $ar.id])}"
|
<div class="arrow {if condition='$ad.id == $Request.get.pid'}rotate{/if}"><img src="__IMAGES__/nas-jt.png" class="arrow {if condition='$ad.id == $Request.get.pid'}rotate{/if}" /></div>
|
||||||
{eq name="ar.id" value="$Request.get.id"}class="active"{/eq}
|
<span>{$ad.name}</span>
|
||||||
>
|
|
||||||
{$ar.title}
|
|
||||||
</a>
|
</a>
|
||||||
|
<ul class="thress-mues" {if condition='$ad.id == $Request.get.pid' }style="display: block;" {/if}>
|
||||||
|
{volist name="ad.article" id="ae"}
|
||||||
|
<li><a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id,'pid' => $ad.id, 'id' => $ae.id])}" style="padding-top: 6px;padding-left: 30px;" {eq
|
||||||
|
name="ae.id" value="$Request.get.id" }class="active" {/eq}>{$ae.title}</a></li>
|
||||||
|
{/volist}
|
||||||
|
</ul>
|
||||||
|
<!-- 三级-->
|
||||||
</li>
|
</li>
|
||||||
{/volist}
|
{/volist}
|
||||||
|
{volist name="ac.article" id="ar"}
|
||||||
|
<li><a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id, 'id' => $ar.id])}" style="padding-top: 6px;" {eq
|
||||||
|
name="ar.id" value="$Request.get.id" }class="active" {/eq}>{$ar.title}</a></li>
|
||||||
|
{/volist}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{/volist}
|
{/volist}
|
||||||
|
<!-- end 三级菜单 -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{/notempty}
|
{/notempty}
|
||||||
</div>
|
</div>
|
||||||
@@ -75,10 +89,22 @@
|
|||||||
{block name="script"}
|
{block name="script"}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
// 一级菜单点击事件
|
||||||
$('.category-title').click(function () {
|
$('.category-title').click(function () {
|
||||||
$(this).next('.sub-list').slideToggle();
|
$(this).next('.sub-list').slideToggle();
|
||||||
$(this).find('.arrow').toggleClass('rotate');
|
$(this).find('.arrow').toggleClass('rotate');
|
||||||
});
|
});
|
||||||
|
// 二级菜单点击事件
|
||||||
|
$('.two-a').click(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation(); // 阻止事件冒泡
|
||||||
|
|
||||||
|
// 切换当前二级菜单的箭头方向
|
||||||
|
$(this).find('.arrow').toggleClass('rotate');
|
||||||
|
|
||||||
|
// 切换对应的三级菜单显示/隐藏
|
||||||
|
$(this).siblings('.thress-mues').slideToggle();
|
||||||
|
});
|
||||||
// 搜索
|
// 搜索
|
||||||
$(document).on('click', function (e) {
|
$(document).on('click', function (e) {
|
||||||
var target = $(e.target);
|
var target = $(e.target);
|
||||||
@@ -109,7 +135,7 @@
|
|||||||
html = '<ul>'
|
html = '<ul>'
|
||||||
$.each(r.data, function (k, v) {
|
$.each(r.data, function (k, v) {
|
||||||
html +=
|
html +=
|
||||||
'<li><a href="{:url(\'/index/topic/nas/help_detail\')}?cid=' + v.category_id + '&id=' + v.id + '">' + v.title + '</a></li>'
|
'<li><a href="{:url(\'/index/topic/nas/help_detail\')}?cid=' + v.category_id + '&id=' + v.id + '&pid=' + v.pid + '">' + v.title + '</a></li>'
|
||||||
})
|
})
|
||||||
html += '</ul>'
|
html += '</ul>'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ if (!function_exists('image_domain_concat')) {
|
|||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtrim($domain, '/') . '/' . ltrim($path, '/');
|
return url_join($domain, $path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ if (!function_exists('video_domain_concat')) {
|
|||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtrim($domain, '/') . '/' . ltrim($path, '/');
|
return url_join($domain, $path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.0.0",
|
"php": ">=8.0.0",
|
||||||
"topthink/framework": "^8.0",
|
"topthink/framework": "8.1.2",
|
||||||
"topthink/think-orm": "v3.0.34",
|
"topthink/think-orm": "v3.0.34",
|
||||||
"topthink/think-filesystem": "^3.0",
|
"topthink/think-filesystem": "^3.0",
|
||||||
"topthink/think-multi-app": "^1.1",
|
"topthink/think-multi-app": "^1.1",
|
||||||
|
|||||||
@@ -2,9 +2,12 @@
|
|||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
// | 控制台配置
|
// | 控制台配置
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// 指令定义
|
// 指令定义
|
||||||
'commands' => [
|
'commands' => [
|
||||||
'data:migrate' => \app\command\DataMigration::class,
|
'data:migrate' => \app\command\DataMigration::class,
|
||||||
|
'openapi:addclient' => \app\command\OpenApiMgr\AddClient::class,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -43,13 +43,13 @@ return [
|
|||||||
// 磁盘类型
|
// 磁盘类型
|
||||||
'type' => \filesystem\driver\Qiniu::class,
|
'type' => \filesystem\driver\Qiniu::class,
|
||||||
// bucker 名称
|
// bucker 名称
|
||||||
'bucket' => 'orico-official-website',
|
'bucket' => env('QINIU_CLOUD.BUCKET', 'orico-official-website'),
|
||||||
// 访问密钥
|
// 访问密钥
|
||||||
'access_key' => 'dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms',
|
'access_key' => env('QINIU_CLOUD.ACCESS_KEY', 'dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms'),
|
||||||
// 密钥
|
// 密钥
|
||||||
'secret_key' => 'KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q',
|
'secret_key' => env('QINIU_CLOUD.SECRET_KEY', 'KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q'),
|
||||||
// 外部URL
|
// 外部URL
|
||||||
'base_url' => '//szw73dlk3.hn-bkt.clouddn.com',
|
'base_url' => env('QINIU_CLOUD.BASE_URL', '//szw73dlk3.hn-bkt.clouddn.com'),
|
||||||
// 路径
|
// 路径
|
||||||
'path_prefix' => '/storage',
|
'path_prefix' => '/storage',
|
||||||
// 文件名称回调,可为文件名添加特定标志,以便可以在后续识别
|
// 文件名称回调,可为文件名添加特定标志,以便可以在后续识别
|
||||||
@@ -70,13 +70,13 @@ return [
|
|||||||
// 磁盘类型
|
// 磁盘类型
|
||||||
'type' => \filesystem\driver\Qiniu::class,
|
'type' => \filesystem\driver\Qiniu::class,
|
||||||
// bucker 名称
|
// bucker 名称
|
||||||
'bucket' => 'orico-official-website',
|
'bucket' => env('QINIU_CLOUD.BUCKET', 'orico-official-website'),
|
||||||
// 访问密钥
|
// 访问密钥
|
||||||
'access_key' => 'dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms',
|
'access_key' => env('QINIU_CLOUD.ACCESS_KEY', 'dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms'),
|
||||||
// 密钥
|
// 密钥
|
||||||
'secret_key' => 'KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q',
|
'secret_key' => env('QINIU_CLOUD.SECRET_KEY', 'KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q'),
|
||||||
// 外部URL
|
// 外部URL
|
||||||
'base_url' => '//szw73dlk3.hn-bkt.clouddn.com',
|
'base_url' => env('QINIU_CLOUD.BASE_URL', '//szw73dlk3.hn-bkt.clouddn.com'),
|
||||||
// 路径
|
// 路径
|
||||||
'path_prefix' => '/storage/videos',
|
'path_prefix' => '/storage/videos',
|
||||||
// 文件名称回调,可为文件名添加特定标志,以便可以在后续识别
|
// 文件名称回调,可为文件名添加特定标志,以便可以在后续识别
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class CreateVideo extends Migrator
|
|||||||
$table = $this->table('video', ['engine' => 'MyISAM', 'comment' => '视频表']);
|
$table = $this->table('video', ['engine' => 'MyISAM', 'comment' => '视频表']);
|
||||||
$table->addColumn('language_id', 'integer', ['signed' => false , 'null' => false, 'comment' => '语言ID'])
|
$table->addColumn('language_id', 'integer', ['signed' => false , 'null' => false, 'comment' => '语言ID'])
|
||||||
->addColumn('category_id', 'integer', ['signed' => false , 'null' => false, 'comment' => '分类ID'])
|
->addColumn('category_id', 'integer', ['signed' => false , 'null' => false, 'comment' => '分类ID'])
|
||||||
->addColumn('name', 'string', ['limit' => 64 , 'null' => false, 'comment' => '名称'])
|
->addColumn('name', 'string', ['limit' => 128 , 'null' => false, 'comment' => '名称'])
|
||||||
->addColumn('desc', 'string', ['limit' => 512, 'null' => true, 'default' => null, 'comment' => '描述信息'])
|
->addColumn('desc', 'string', ['limit' => 512, 'null' => true, 'default' => null, 'comment' => '描述信息'])
|
||||||
->addColumn('image', 'string', ['limit' => 125, 'null' => true, 'default' => null, 'comment' => '封面图片'])
|
->addColumn('image', 'string', ['limit' => 125, 'null' => true, 'default' => null, 'comment' => '封面图片'])
|
||||||
->addColumn('video', 'string', ['limit' => 125, 'null' => true, 'default' => null, 'comment' => '视频地址'])
|
->addColumn('video', 'string', ['limit' => 125, 'null' => true, 'default' => null, 'comment' => '视频地址'])
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class CreateSysBannerItem extends Migrator
|
|||||||
->addColumn('extra_image', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '额外的图片'])
|
->addColumn('extra_image', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '额外的图片'])
|
||||||
->addColumn('video', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '视频'])
|
->addColumn('video', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '视频'])
|
||||||
->addColumn('link_to', 'string', ['limit' => 64, 'null' => true, 'default' => null, 'comment' => '链接到(类型): article:文章, article_category:文章分类, product:产品, product_category:产品分类, custom:自定义链接'])
|
->addColumn('link_to', 'string', ['limit' => 64, 'null' => true, 'default' => null, 'comment' => '链接到(类型): article:文章, article_category:文章分类, product:产品, product_category:产品分类, custom:自定义链接'])
|
||||||
->addColumn('link', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '链接'])
|
->addColumn('link', 'string', ['limit' => 510, 'null' => true, 'default' => null, 'comment' => '链接'])
|
||||||
->addColumn('sort', 'integer', ['limit' => 11, 'null' => false, 'default' => 0, 'comment' => '排序'])
|
->addColumn('sort', 'integer', ['limit' => 11, 'null' => false, 'default' => 0, 'comment' => '排序'])
|
||||||
->addColumn('status', 'boolean', ['limit' => 1, 'null' => false, 'default' => 1, 'comment' => '-1为禁用, 1为启用'])
|
->addColumn('status', 'boolean', ['limit' => 1, 'null' => false, 'default' => 1, 'comment' => '-1为禁用, 1为启用'])
|
||||||
->addColumn('created_at', 'timestamp', ['null' => false, 'default' =>'CURRENT_TIMESTAMP', 'comment' => '创建时间'])
|
->addColumn('created_at', 'timestamp', ['null' => false, 'default' =>'CURRENT_TIMESTAMP', 'comment' => '创建时间'])
|
||||||
|
|||||||
@@ -119,6 +119,10 @@ class SysConfigInit extends Seeder
|
|||||||
["id" => 102, "group_id" => 13, "title" => "视频 - 唯一性保持", "name" => "upload_video.filemd5_unique", "value" => "1", "extra" => "0:否\n1:是", "type" => "radio", "sort" => 5, "remark" => "如果保持视频文件唯一,重复视频上传时将立即返回已存在的地址;如果不保持,则同模块同一天上传的文件根据原文件名覆盖。", "created_at" => "2025-06-12 11:24:24", "updated_at" => "2025-06-12 11:25:18", "deleted_at" => NULL],
|
["id" => 102, "group_id" => 13, "title" => "视频 - 唯一性保持", "name" => "upload_video.filemd5_unique", "value" => "1", "extra" => "0:否\n1:是", "type" => "radio", "sort" => 5, "remark" => "如果保持视频文件唯一,重复视频上传时将立即返回已存在的地址;如果不保持,则同模块同一天上传的文件根据原文件名覆盖。", "created_at" => "2025-06-12 11:24:24", "updated_at" => "2025-06-12 11:25:18", "deleted_at" => NULL],
|
||||||
["id" => 103, "group_id" => 13, "title" => "附件 - 保留原文件名", "name" => "upload_attachment.filename_keep", "value" => NULL, "extra" => "0:否\n1:是", "type" => "radio", "sort" => 6, "remark" => "默认为否", "created_at" => "2025-06-12 11:27:08", "updated_at" => "2025-06-12 11:27:08", "deleted_at" => NULL],
|
["id" => 103, "group_id" => 13, "title" => "附件 - 保留原文件名", "name" => "upload_attachment.filename_keep", "value" => NULL, "extra" => "0:否\n1:是", "type" => "radio", "sort" => 6, "remark" => "默认为否", "created_at" => "2025-06-12 11:27:08", "updated_at" => "2025-06-12 11:27:08", "deleted_at" => NULL],
|
||||||
["id" => 104, "group_id" => 13, "title" => "附件 - 唯一性保持", "name" => "upload_attachment.filemd5_unique", "value" => "1", "extra" => "0:否\n1:是", "type" => "radio", "sort" => 7, "remark" => "如果保持附件文件唯一,重复附件上传时将立即返回已存在的地址;如果不保持,则同模块同一天上传的文件根据原文件名覆盖。", "created_at" => "2025-06-12 11:28:22", "updated_at" => "2025-06-12 11:28:22", "deleted_at" => NULL],
|
["id" => 104, "group_id" => 13, "title" => "附件 - 唯一性保持", "name" => "upload_attachment.filemd5_unique", "value" => "1", "extra" => "0:否\n1:是", "type" => "radio", "sort" => 7, "remark" => "如果保持附件文件唯一,重复附件上传时将立即返回已存在的地址;如果不保持,则同模块同一天上传的文件根据原文件名覆盖。", "created_at" => "2025-06-12 11:28:22", "updated_at" => "2025-06-12 11:28:22", "deleted_at" => NULL],
|
||||||
|
['id' => 105, 'group_id' => 13, 'title' => '视频 - 保存到', 'name' => 'upload_video.save_to', 'value' => 'qiniu_cloud', 'extra' => 'local:本地\nqiniu_cloud:七牛云', 'type' => 'radio', 'sort' => 6, 'remark' => '视频保存位置,默认为“本地” - [本地为本站点服务器;七牛云为七牛云对象存储,上传经这本站点服务器中转,上传耗时稍慢于“本地”]', 'created_at' => '2025-07-25 10:46:24', 'updated_at' => '2025-07-25 16:41:53', 'deleted_at' => NULL],
|
||||||
|
['id' => 106, 'group_id' => 13, 'title' => '附件 - 保存到', 'name' => 'upload_attachment.save_to', 'value' => 'local', 'extra' => 'local:本地\nqiniu_cloud:七牛云', 'type' => 'radio', 'sort' => 9, 'remark' => '附件保存位置,默认为“本地” - [本地为本站点服务器;七牛云为七牛云对象存储,上传经这本站点服务器中转,上传耗时稍慢于“本地”]', 'created_at' => '2025-07-25 10:51:34', 'updated_at' => '2025-07-25 16:41:53', 'deleted_at' => NULL],
|
||||||
|
['id' => 107, 'group_id' => 14, 'title' => '视频 - 保存到', 'name' => 'upload_video.save_to', 'value' => 'qiniu_cloud', 'extra' => 'local:本地\nqiniu_cloud:七牛云', 'type' => 'radio', 'sort' => 6, 'remark' => '视频保存位置,默认为“本地” - [本地为本站点服务器;七牛云为七牛云对象存储,上传经这本站点服务器中转,上传耗时稍慢于“本地”]', 'created_at' => '2025-07-25 10:46:24', 'updated_at' => '2025-07-25 16:41:53', 'deleted_at' => NULL],
|
||||||
|
['id' => 108, 'group_id' => 14, 'title' => '附件 - 保存到', 'name' => 'upload_attachment.save_to', 'value' => 'local', 'extra' => 'local:本地\nqiniu_cloud:七牛云', 'type' => 'radio', 'sort' => 9, 'remark' => '附件保存位置,默认为“本地” - [本地为本站点服务器;七牛云为七牛云对象存储,上传经这本站点服务器中转,上传耗时稍慢于“本地”]', 'created_at' => '2025-07-25 10:51:34', 'updated_at' => '2025-07-25 16:41:53', 'deleted_at' => NULL],
|
||||||
];
|
];
|
||||||
|
|
||||||
$table = $this->table('sys_config');
|
$table = $this->table('sys_config');
|
||||||
|
|||||||
2
public/migrate_temp_images/.gitignore
vendored
2
public/migrate_temp_images/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
@@ -161,7 +161,9 @@ body {
|
|||||||
.ql-editor>* {
|
.ql-editor>* {
|
||||||
cursor: text
|
cursor: text
|
||||||
}
|
}
|
||||||
|
.ql-editor video{
|
||||||
|
max-width: 100% !important;
|
||||||
|
}
|
||||||
.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6 {
|
.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|||||||
@@ -1278,7 +1278,7 @@ video img {
|
|||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
}
|
}
|
||||||
.foot-cate li {
|
.foot-cate li {
|
||||||
width: 50%;
|
min-width: 50%;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
float: left;
|
float: left;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -2342,6 +2342,59 @@ video img {
|
|||||||
margin-bottom: 1.3rem;
|
margin-bottom: 1.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.products_des {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
.products_des img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.de_t_n {
|
||||||
|
font-size: 1.5em;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.detail_title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 2% 0;
|
||||||
|
}
|
||||||
|
.detail_title p {
|
||||||
|
line-height: 2em;
|
||||||
|
}
|
||||||
|
.detail_con_a {
|
||||||
|
margin: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.lj_detail_text,
|
||||||
|
.lj_detail_texts {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
.lj_detail_text p {
|
||||||
|
line-height: 1.6em;
|
||||||
|
padding: 0.5% 0;
|
||||||
|
}
|
||||||
|
/*seo-pro*/
|
||||||
|
.seo-pro h3 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
margin: 2% 0 1%;
|
||||||
|
line-height: 1.2;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.seo-pro p {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 0 11px;
|
||||||
|
}
|
||||||
|
.seo-pro a {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.sa_blue,
|
||||||
|
.sa_blue a,
|
||||||
|
.seo-pro a:hover {
|
||||||
|
color: #009fdf;
|
||||||
|
}
|
||||||
|
|
||||||
/*两列*/
|
/*两列*/
|
||||||
.list_two {
|
.list_two {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -220,3 +220,31 @@
|
|||||||
color: #1f2635;
|
color: #1f2635;
|
||||||
border-bottom: 1px solid #1f2635;
|
border-bottom: 1px solid #1f2635;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*9.18 添加三级样式*/
|
||||||
|
|
||||||
|
.narshelpCenterdetail-app .nhlpapp-pagescate .nars-hlpdt-ml .sub-list .two-mues {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.narshelpCenterdetail-app .nhlpapp-pagescate .nars-hlpdt-ml .sub-list .two-mues .two-a {
|
||||||
|
position: relative;
|
||||||
|
padding-top: 6px;
|
||||||
|
display: flex;
|
||||||
|
font-size: 0.95rem !important;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.narshelpCenterdetail-app .nhlpapp-pagescate .nars-hlpdt-ml .sub-list .two-mues .two-a:hover {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.narshelpCenterdetail-app .nhlpapp-pagescate .nars-hlpdt-ml .sub-list .thress-mues {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.narshelpCenterdetail-app .nhlpapp-pagescate .nars-hlpdt-ml .sub-list .thress-mues a {
|
||||||
|
padding-top: 0.375rem;
|
||||||
|
padding-left: 1.875rem;
|
||||||
|
}
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
transition: all 0.2s linear;
|
transition: all 0.2s linear;
|
||||||
-webkit-transition: all 0.2s linear;
|
-webkit-transition: all 0.2s linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
@@ -153,12 +154,15 @@ a {
|
|||||||
*::-moz-scrollbar-button:vertical:increment {
|
*::-moz-scrollbar-button:vertical:increment {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
#header {
|
#header {
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backtop {
|
.backtop {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 1.25rem;
|
right: 1.25rem;
|
||||||
@@ -174,47 +178,58 @@ div{
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 1px solid rgb(241, 241, 241);
|
border: 1px solid rgb(241, 241, 241);
|
||||||
}
|
}
|
||||||
|
|
||||||
.backtop .ictop {
|
.backtop .ictop {
|
||||||
height: 1.125rem;
|
height: 1.125rem;
|
||||||
width: 0.9375rem;
|
width: 0.9375rem;
|
||||||
margin-bottom: 0.25rem;
|
margin-bottom: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*屏幕兼容性*/
|
/*屏幕兼容性*/
|
||||||
@media screen and (min-width:150px) and (max-width:749px) {
|
@media screen and (min-width:150px) and (max-width:749px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.6;
|
zoom: 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:750px) and (max-width:1280px) {
|
@media screen and (min-width:750px) and (max-width:1280px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.75;
|
zoom: 0.75;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:1281px) and (max-width:1360px) {
|
@media screen and (min-width:1281px) and (max-width:1360px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.8;
|
zoom: 0.8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:1361px) and (max-width:1460px) {
|
@media screen and (min-width:1361px) and (max-width:1460px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.85;
|
zoom: 0.85;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:1461px) and (max-width:1660px) {
|
@media screen and (min-width:1461px) and (max-width:1660px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.9;
|
zoom: 0.9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:1661px) and (max-width:1760px) {
|
@media screen and (min-width:1661px) and (max-width:1760px) {
|
||||||
body {
|
body {
|
||||||
zoom: 0.95;
|
zoom: 0.95;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width:1761px) and (max-width:1960px) {}
|
@media screen and (min-width:1761px) and (max-width:1960px) {}
|
||||||
|
|
||||||
@media screen and (min-width:1980px) {}
|
@media screen and (min-width:1980px) {}
|
||||||
|
|
||||||
/*编辑器样式*/
|
/*编辑器样式*/
|
||||||
@charset "UTF-8";.ql-container {
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
.ql-container {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
font-family: Helvetica, Arial, sans-serif;
|
font-family: Helvetica, Arial, sans-serif;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
@@ -223,10 +238,18 @@ div{
|
|||||||
position: relative
|
position: relative
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ql-editor video {
|
||||||
|
max-width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
.ql-container.ql-disabled .ql-tooltip {
|
.ql-container.ql-disabled .ql-tooltip {
|
||||||
visibility: hidden
|
visibility: hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ql-editor video {
|
||||||
|
max-width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before {
|
.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before {
|
||||||
pointer-events: none
|
pointer-events: none
|
||||||
}
|
}
|
||||||
@@ -262,17 +285,29 @@ div{
|
|||||||
cursor: text
|
cursor: text
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6 {
|
.ql-editor p,
|
||||||
|
.ql-editor ol,
|
||||||
|
.ql-editor ul,
|
||||||
|
.ql-editor pre,
|
||||||
|
.ql-editor blockquote,
|
||||||
|
.ql-editor h1,
|
||||||
|
.ql-editor h2,
|
||||||
|
.ql-editor h3,
|
||||||
|
.ql-editor h4,
|
||||||
|
.ql-editor h5,
|
||||||
|
.ql-editor h6 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
|
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ol,.ql-editor ul {
|
.ql-editor ol,
|
||||||
|
.ql-editor ul {
|
||||||
padding-left: 1.5em
|
padding-left: 1.5em
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ol>li,.ql-editor ul>li {
|
.ql-editor ol>li,
|
||||||
|
.ql-editor ul>li {
|
||||||
list-style-type: none
|
list-style-type: none
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,15 +315,18 @@ div{
|
|||||||
content: "•"
|
content: "•"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false] {
|
.ql-editor ul[data-checked=true],
|
||||||
|
.ql-editor ul[data-checked=false] {
|
||||||
pointer-events: none
|
pointer-events: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li * {
|
.ql-editor ul[data-checked=true]>li *,
|
||||||
|
.ql-editor ul[data-checked=false]>li * {
|
||||||
pointer-events: all
|
pointer-events: all
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before {
|
.ql-editor ul[data-checked=true]>li:before,
|
||||||
|
.ql-editor ul[data-checked=false]>li:before {
|
||||||
color: #777;
|
color: #777;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
pointer-events: all
|
pointer-events: all
|
||||||
@@ -319,11 +357,13 @@ div{
|
|||||||
margin-right: -1.5em
|
margin-right: -1.5em
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl) {
|
.ql-editor ol li:not(.ql-direction-rtl),
|
||||||
|
.ql-editor ul li:not(.ql-direction-rtl) {
|
||||||
padding-left: 1.5em
|
padding-left: 1.5em
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl {
|
.ql-editor ol li.ql-direction-rtl,
|
||||||
|
.ql-editor ul li.ql-direction-rtl {
|
||||||
padding-right: 1.5em
|
padding-right: 1.5em
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -700,13 +740,15 @@ div{
|
|||||||
right: 15px
|
right: 15px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after {
|
.ql-snow.ql-toolbar:after,
|
||||||
|
.ql-snow .ql-toolbar:after {
|
||||||
clear: both;
|
clear: both;
|
||||||
content: "";
|
content: "";
|
||||||
display: table
|
display: table
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button {
|
.ql-snow.ql-toolbar button,
|
||||||
|
.ql-snow .ql-toolbar button {
|
||||||
background: none;
|
background: none;
|
||||||
border: none;
|
border: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -719,51 +761,97 @@ div{
|
|||||||
margin-right: 1px
|
margin-right: 1px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg {
|
.ql-snow.ql-toolbar button svg,
|
||||||
|
.ql-snow .ql-toolbar button svg {
|
||||||
float: left;
|
float: left;
|
||||||
height: 100%
|
height: 100%
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover {
|
.ql-snow.ql-toolbar button:active:hover,
|
||||||
|
.ql-snow .ql-toolbar button:active:hover {
|
||||||
outline: none
|
outline: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file] {
|
.ql-snow.ql-toolbar input.ql-image[type=file],
|
||||||
|
.ql-snow .ql-toolbar input.ql-image[type=file] {
|
||||||
display: none
|
display: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover {
|
.ql-snow.ql-toolbar button:hover,
|
||||||
|
.ql-snow .ql-toolbar button:hover,
|
||||||
|
.ql-snow.ql-toolbar button:focus,
|
||||||
|
.ql-snow .ql-toolbar button:focus,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label:hover,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label:hover,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item:hover,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item:hover {
|
||||||
background-color: #f3f4f6
|
background-color: #f3f4f6
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
|
.ql-snow.ql-toolbar button.ql-active,
|
||||||
|
.ql-snow .ql-toolbar button.ql-active,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
|
||||||
background-color: #dbeafe;
|
background-color: #dbeafe;
|
||||||
color: #2563eb
|
color: #2563eb
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
.ql-snow.ql-toolbar button.ql-active .ql-fill,
|
||||||
|
.ql-snow .ql-toolbar button.ql-active .ql-fill,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||||
|
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
||||||
fill: #2563eb
|
fill: #2563eb
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
|
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
|
||||||
|
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||||
|
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
|
||||||
|
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||||
|
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
|
||||||
|
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
|
||||||
stroke: #2563eb
|
stroke: #2563eb
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (pointer: coarse) {
|
@media (pointer: coarse) {
|
||||||
.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active) {
|
|
||||||
|
.ql-snow.ql-toolbar button:hover:not(.ql-active),
|
||||||
|
.ql-snow .ql-toolbar button:hover:not(.ql-active) {
|
||||||
color: #4b5563
|
color: #4b5563
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
|
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||||
|
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||||
|
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
|
||||||
|
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
|
||||||
fill: #4b5563
|
fill: #4b5563
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
|
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||||
|
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||||
|
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
|
||||||
|
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
|
||||||
stroke: #4b5563
|
stroke: #4b5563
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow,.ql-snow * {
|
.ql-snow,
|
||||||
|
.ql-snow * {
|
||||||
box-sizing: border-box
|
box-sizing: border-box
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -771,7 +859,8 @@ div{
|
|||||||
display: none
|
display: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-out-bottom,.ql-snow .ql-out-top {
|
.ql-snow .ql-out-bottom,
|
||||||
|
.ql-snow .ql-out-top {
|
||||||
visibility: hidden
|
visibility: hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -815,7 +904,8 @@ div{
|
|||||||
stroke-width: 2
|
stroke-width: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill {
|
.ql-snow .ql-fill,
|
||||||
|
.ql-snow .ql-stroke.ql-fill {
|
||||||
fill: #4b5563
|
fill: #4b5563
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -827,7 +917,8 @@ div{
|
|||||||
fill-rule: evenodd
|
fill-rule: evenodd
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin {
|
.ql-snow .ql-thin,
|
||||||
|
.ql-snow .ql-stroke.ql-thin {
|
||||||
stroke-width: 1
|
stroke-width: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -882,7 +973,8 @@ div{
|
|||||||
padding-left: 16px
|
padding-left: 16px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-editor code,.ql-snow .ql-editor pre {
|
.ql-snow .ql-editor code,
|
||||||
|
.ql-snow .ql-editor pre {
|
||||||
background-color: #f0f0f0;
|
background-color: #f0f0f0;
|
||||||
border-radius: 3px
|
border-radius: 3px
|
||||||
}
|
}
|
||||||
@@ -971,15 +1063,18 @@ div{
|
|||||||
z-index: 1
|
z-index: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker {
|
.ql-snow .ql-color-picker,
|
||||||
|
.ql-snow .ql-icon-picker {
|
||||||
width: 28px
|
width: 28px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label {
|
.ql-snow .ql-color-picker .ql-picker-label,
|
||||||
|
.ql-snow .ql-icon-picker .ql-picker-label {
|
||||||
padding: 2px 4px
|
padding: 2px 4px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg {
|
.ql-snow .ql-color-picker .ql-picker-label svg,
|
||||||
|
.ql-snow .ql-icon-picker .ql-picker-label svg {
|
||||||
right: 4px
|
right: 4px
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1016,7 +1111,12 @@ div{
|
|||||||
width: 18px
|
width: 18px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before {
|
||||||
content: attr(data-label)
|
content: attr(data-label)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1024,31 +1124,38 @@ div{
|
|||||||
width: 98px
|
width: 98px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item:before {
|
||||||
content: "Normal"
|
content: "Normal"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before {
|
||||||
content: "Heading 1"
|
content: "Heading 1"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before {
|
||||||
content: "Heading 2"
|
content: "Heading 2"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before {
|
||||||
content: "Heading 3"
|
content: "Heading 3"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before {
|
||||||
content: "Heading 4"
|
content: "Heading 4"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before {
|
||||||
content: "Heading 5"
|
content: "Heading 5"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before {
|
||||||
content: "Heading 6"
|
content: "Heading 6"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1080,15 +1187,18 @@ div{
|
|||||||
width: 108px
|
width: 108px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item:before {
|
||||||
content: "Sans Serif"
|
content: "Sans Serif"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before {
|
||||||
content: "Serif"
|
content: "Serif"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
|
||||||
content: "Monospace"
|
content: "Monospace"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1104,19 +1214,23 @@ div{
|
|||||||
width: 98px
|
width: 98px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item:before {
|
||||||
content: "Normal"
|
content: "Normal"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
|
||||||
content: "Small"
|
content: "Small"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before {
|
||||||
content: "Large"
|
content: "Large"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before {
|
||||||
content: "Huge"
|
content: "Huge"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1160,11 +1274,13 @@ div{
|
|||||||
box-shadow: #0003 0 2px 8px
|
box-shadow: #0003 0 2px 8px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,
|
||||||
|
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
||||||
border-color: #d1d5db
|
border-color: #d1d5db
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
|
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
|
||||||
|
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
|
||||||
border-color: #000
|
border-color: #000
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1221,7 +1337,8 @@ div{
|
|||||||
line-height: 26px
|
line-height: 26px
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove {
|
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
|
||||||
|
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
|
||||||
display: none
|
display: none
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1255,7 +1372,8 @@ div{
|
|||||||
border: 1px solid #d1d5db
|
border: 1px solid #d1d5db
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor,.ql-toolbar {
|
.editor,
|
||||||
|
.ql-toolbar {
|
||||||
line-height: normal !important;
|
line-height: normal !important;
|
||||||
white-space: pre-wrap !important
|
white-space: pre-wrap !important
|
||||||
}
|
}
|
||||||
@@ -1284,98 +1402,120 @@ div{
|
|||||||
content: "请输入视频地址:"
|
content: "请输入视频地址:"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item:before {
|
||||||
content: "12px"
|
content: "12px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
|
||||||
content: "10px"
|
content: "10px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before {
|
||||||
content: "18px"
|
content: "18px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before {
|
||||||
content: "32px"
|
content: "32px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item:before {
|
||||||
content: "文本"
|
content: "文本"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before {
|
||||||
content: "标题1"
|
content: "标题1"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before {
|
||||||
content: "标题2"
|
content: "标题2"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before {
|
||||||
content: "标题3"
|
content: "标题3"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before {
|
||||||
content: "标题4"
|
content: "标题4"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before {
|
||||||
content: "标题5"
|
content: "标题5"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before {
|
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before {
|
||||||
content: "标题6"
|
content: "标题6"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item:before {
|
||||||
content: "标准字体"
|
content: "标准字体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before {
|
||||||
content: "衬线字体"
|
content: "衬线字体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
|
||||||
content: "等宽字体"
|
content: "等宽字体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimSun]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimSun]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimSun]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimSun]:before {
|
||||||
font-family: SimSun, sans-serif;
|
font-family: SimSun, sans-serif;
|
||||||
content: "宋体"
|
content: "宋体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimHei]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimHei]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimHei]:before {
|
||||||
font-family: SimHei, sans-serif;
|
font-family: SimHei, sans-serif;
|
||||||
content: "黑体"
|
content: "黑体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Microsoft-YaHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Microsoft-YaHei]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Microsoft-YaHei]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Microsoft-YaHei]:before {
|
||||||
font-family: Microsoft YaHei, sans-serif;
|
font-family: Microsoft YaHei, sans-serif;
|
||||||
content: "微软雅黑"
|
content: "微软雅黑"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=KaiTi]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=KaiTi]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=KaiTi]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=KaiTi]:before {
|
||||||
font-family: KaiTi, sans-serif;
|
font-family: KaiTi, sans-serif;
|
||||||
content: "楷体"
|
content: "楷体"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=FangSong]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=FangSong]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=FangSong]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=FangSong]:before {
|
||||||
font-family: FangSong, sans-serif;
|
font-family: FangSong, sans-serif;
|
||||||
content: "仿宋"
|
content: "仿宋"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Arial]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Arial]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Arial]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Arial]:before {
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
content: "Arial"
|
content: "Arial"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Times-New-Roman]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Times-New-Roman]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Times-New-Roman]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Times-New-Roman]:before {
|
||||||
font-family: Times New Roman, sans-serif;
|
font-family: Times New Roman, sans-serif;
|
||||||
content: "Times New Roman"
|
content: "Times New Roman"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]:before {
|
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]:before,
|
||||||
|
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]:before {
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
content: "sans-serif"
|
content: "sans-serif"
|
||||||
}
|
}
|
||||||
@@ -1412,47 +1552,58 @@ div{
|
|||||||
font-family: sans-serif
|
font-family: sans-serif
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]:before {
|
||||||
content: "12px"
|
content: "12px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]:before {
|
||||||
content: "14px"
|
content: "14px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]:before {
|
||||||
content: "16px"
|
content: "16px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]:before {
|
||||||
content: "18px"
|
content: "18px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]:before {
|
||||||
content: "20px"
|
content: "20px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]:before {
|
||||||
content: "22px"
|
content: "22px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]:before {
|
||||||
content: "24px"
|
content: "24px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]:before {
|
||||||
content: "26px"
|
content: "26px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]:before {
|
||||||
content: "28px"
|
content: "28px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="30px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="30px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="30px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="30px"]:before {
|
||||||
content: "30px"
|
content: "30px"
|
||||||
}
|
}
|
||||||
|
|
||||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]:before {
|
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]:before,
|
||||||
|
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]:before {
|
||||||
content: "32px"
|
content: "32px"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1465,17 +1616,20 @@ div{
|
|||||||
border: 1px solid #dddddd;
|
border: 1px solid #dddddd;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 用伪元素添加图标(可替换为自己的图标) */
|
/* 用伪元素添加图标(可替换为自己的图标) */
|
||||||
.ql-tabs::before {
|
.ql-tabs::before {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
content: "T";
|
content: "T";
|
||||||
/* 用 emoji 或字体图标 */
|
/* 用 emoji 或字体图标 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-list {
|
.quill-tab-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
background-color: #f8f9fa;
|
background-color: #f8f9fa;
|
||||||
border-bottom: 1px solid #dddddd;
|
border-bottom: 1px solid #dddddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-list .quill-tab-button {
|
.quill-tab-list .quill-tab-button {
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -1484,11 +1638,13 @@ div{
|
|||||||
border: none;
|
border: none;
|
||||||
transition: background-color 0.2s;
|
transition: background-color 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-list .quill-tab-button.active {
|
.quill-tab-list .quill-tab-button.active {
|
||||||
color: #007bff;
|
color: #007bff;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border-bottom: 2px solid #007bff;
|
border-bottom: 2px solid #007bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-list .quill-tab-edit-btn {
|
.quill-tab-list .quill-tab-edit-btn {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -1499,9 +1655,11 @@ div{
|
|||||||
background: transparent;
|
background: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-list .quill-tab-edit-btn:hover {
|
.quill-tab-list .quill-tab-edit-btn:hover {
|
||||||
color: #007bff;
|
color: #007bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-button {
|
.quill-tab-button {
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -1510,25 +1668,31 @@ div{
|
|||||||
border: none;
|
border: none;
|
||||||
transition: background-color 0.2s;
|
transition: background-color 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-button.active {
|
.quill-tab-button.active {
|
||||||
color: #007bff;
|
color: #007bff;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border-bottom: 2px solid #007bff;
|
border-bottom: 2px solid #007bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-content-list {
|
.quill-tab-content-list {
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-content {
|
.quill-tab-content {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quill-tab-content.active {
|
.quill-tab-content.active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 标签页标题编辑样式 */
|
/* 标签页标题编辑样式 */
|
||||||
.tab-title-edit {
|
.tab-title-edit {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-title-edit .title-text {
|
.tab-title-edit .title-text {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-width: 60px;
|
min-width: 60px;
|
||||||
@@ -1538,8 +1702,108 @@ div{
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-title-edit .title-input {
|
.tab-title-edit .title-input {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
margin: -2px 0;
|
margin: -2px 0;
|
||||||
/* 与标签对齐 */
|
/* 与标签对齐 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*详情样式*/
|
||||||
|
.o_detail_all {
|
||||||
|
text-align: center;
|
||||||
|
background-color: #fff;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: normal !important;
|
||||||
|
}
|
||||||
|
.o_detail_title {
|
||||||
|
font-size: 2.25em;
|
||||||
|
color: #101010;
|
||||||
|
margin-top: 2vw;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 1.25vw;
|
||||||
|
line-height: 1.2em;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #fff;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: normal !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
.o_detail_small {
|
||||||
|
font-size: 1.5em;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 0.7vw;
|
||||||
|
white-space: normal !important;
|
||||||
|
}
|
||||||
|
.o_detail_text {
|
||||||
|
font-size: 1.125em;
|
||||||
|
color: #737373;
|
||||||
|
line-height: 1.5em;
|
||||||
|
width: 80%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-bottom: 0.7vw;
|
||||||
|
white-space: normal !important;
|
||||||
|
}
|
||||||
|
.products_des {
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
.products_des img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.de_t_n {
|
||||||
|
font-size: 1.5em;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail_title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 2% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail_title p {
|
||||||
|
line-height: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail_con_a {
|
||||||
|
margin: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lj_detail_text,
|
||||||
|
.lj_detail_texts {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lj_detail_text p {
|
||||||
|
line-height: 1.6em;
|
||||||
|
padding: 0.5% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*seo-pro*/
|
||||||
|
.seo-pro h3 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
margin: 2% 0 1%;
|
||||||
|
line-height: 1.2;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.seo-pro p {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 0 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.seo-pro a {
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sa_blue,
|
||||||
|
.sa_blue a,
|
||||||
|
.seo-pro a:hover {
|
||||||
|
color: #009fdf;
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
}
|
}
|
||||||
.narshelpdetailPc .ql-container{
|
.narshelpdetailPc .ql-container{
|
||||||
width: 95%;
|
width: 81%;
|
||||||
}
|
}
|
||||||
.narshelpdetailPc .narsssmain {
|
.narshelpdetailPc .narsssmain {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -135,6 +135,7 @@
|
|||||||
transform: rotate(0deg);
|
transform: rotate(0deg);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
flex-direction: column-reverse;
|
||||||
}
|
}
|
||||||
|
|
||||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .arrow .nars-jt {
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .arrow .nars-jt {
|
||||||
@@ -215,7 +216,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.narshelpdetailPc .nars-help-content .nars-hlpdt-mr #title-list .tt {
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-mr #title-list .tt {
|
||||||
font-size: 14px;
|
font-size: 15px;
|
||||||
padding-top: 33px;
|
padding-top: 33px;
|
||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -258,3 +259,27 @@
|
|||||||
/* 将所有属性设置为初始值 */
|
/* 将所有属性设置为初始值 */
|
||||||
/* 或者使用 all: revert; 恢复到浏览器默认样式,但该属性兼容性不如 initial */
|
/* 或者使用 all: revert; 恢复到浏览器默认样式,但该属性兼容性不如 initial */
|
||||||
}
|
}
|
||||||
|
/*9.18 添加三级样式*/
|
||||||
|
|
||||||
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues{
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues .two-a{
|
||||||
|
position: relative;
|
||||||
|
padding-top: 6px;
|
||||||
|
padding-bottom: 0.375rem;
|
||||||
|
display: flex;
|
||||||
|
font-size: 14px !important;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .two-mues .two-a:hover{
|
||||||
|
border-bottom:none;
|
||||||
|
}
|
||||||
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .thress-mues{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.narshelpdetailPc .nars-help-content .nars-hlpdt-ml .sub-list .thress-mues .thress-mues a{
|
||||||
|
padding-top: 0.375rem;
|
||||||
|
padding-left: 1.875rem;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user