16 Commits

Author SHA1 Message Date
杨丹华
5faabaa05f style:关联产品样式不从 2025-05-28 11:45:09 +08:00
0ba655692c refactor: 修改验证器语言包提示 2025-05-28 10:47:01 +08:00
ad55d14f8e feat: mobile批量购买留言页 2025-05-28 10:31:02 +08:00
96d05e0d09 refactor: 修改横幅列表接口 2025-05-27 15:49:27 +08:00
f8c8092562 feat: mobile成功分销商页面 2025-05-27 15:37:51 +08:00
ee8f5017a5 refactor: 区分联系我们banner的pc与mobile数据 2025-05-27 14:13:06 +08:00
d43892b912 refactor: 进一步区分banner的pc与mobile 2025-05-27 14:02:14 +08:00
b30ec56bec feat: mobile联系我们页 2025-05-27 11:13:03 +08:00
01c14bb718 refactor: pc联系我们 2025-05-27 10:33:35 +08:00
b219ce3ee8 refactor: mobile底部国家筛选 2025-05-26 17:54:23 +08:00
6d9a0f3d06 feat: mobile产品搜索页 2025-05-26 17:39:23 +08:00
7273594013 feat: mobile附件下载页 2025-05-26 17:13:51 +08:00
a749ae588e feat: mobile新品上市页 2025-05-26 11:58:02 +08:00
0c3af5bdf1 feat: mobile产品详情 2025-05-26 11:40:02 +08:00
0ea206d460 fix: pc产品详情 2025-05-26 11:40:02 +08:00
杨丹华
427097d704 stlye:首页样式底部调白 2025-05-26 11:00:14 +08:00
41 changed files with 2260 additions and 83 deletions

View File

@@ -20,7 +20,8 @@ class Banner
$banners = SysBannerModel::field([
'id',
'name'
'name',
'at_platform'
])
->withSearch(['name'], [
'name' => $param['name'] ?? null
@@ -30,7 +31,27 @@ class Banner
->order(['sort' => 'asc', 'id' => 'desc'])
->select();
return success('获取成功', $banners);
$datas = [];
if (!$banners->isEmpty()) {
$temp = [];
$map = ['pc' => 'PC端', 'mobile' => '移动端'];
foreach ($banners as $banner) {
if (!isset($temp[$banner->at_platform])) {
$temp[$banner->at_platform] = [
'id' => 0,
'name' => $map[$banner->at_platform] ?? '未知平台',
'children' => []
];
}
$temp[$banner->at_platform]['children'][] = [
'id' => $banner->id,
'name' => $banner->name
];
}
$datas = array_values($temp);
}
return success('获取成功', $datas);
}
// 分页

View File

@@ -18,7 +18,10 @@ return [
'header_var' => 'think-lang',
// 扩展语言包
'extend_list' => [
'en-us' => app()->getAppPath() . '/lang/en-us/' . (request()->isMobile() ? 'mobile' : 'pc') . '.php',
'en-us' => [
app()->getAppPath() . '/lang/en-us/' . (request()->isMobile() ? 'mobile' : 'pc') . '.php',
app()->getAppPath() . '/lang/en-us/validate.php',
],
'zh-cn' => app()->getAppPath() . '/lang/zh-cn/' . (request()->isMobile() ? 'mobile' : 'pc') . '.php',
],
// Accept-Language转义为对应语言包名称

View File

@@ -2,9 +2,9 @@
// +----------------------------------------------------------------------
// | 模板设置
// +----------------------------------------------------------------------
$view_deivce_name = 'pc';
$view_device_name = 'pc';
if (request()->isMobile()) {
$view_deivce_name = 'mobile';
$view_device_name = 'mobile';
}
return [
@@ -13,7 +13,7 @@ return [
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
'auto_rule' => 1,
// 模板目录名
'view_dir_name' => "view/{$view_deivce_name}",
'view_dir_name' => "view/{$view_device_name}",
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
@@ -28,8 +28,8 @@ return [
'taglib_end' => '}',
// 模板输出替换
'tpl_replace_string' => [
'__CSS__' => "/static/index/{$view_deivce_name}/css",
'__JS__' => "/static/index/{$view_deivce_name}/js",
'__IMAGES__' => "/static/index/{$view_deivce_name}/images",
'__CSS__' => "/static/index/{$view_device_name}/css",
'__JS__' => "/static/index/{$view_device_name}/js",
'__IMAGES__' => "/static/index/{$view_device_name}/images",
]
];

View File

@@ -34,6 +34,7 @@ class ContactUs extends Common
->where('status', '=', 1)
->order(['sort' => 'asc', 'id' => 'desc']);
}])
->atPlatform(request()->from)
->uniqueLabel(['BANNER_6805e3d32dcc2', 'BANNER_6806090c1838f'])
->language($this->lang_id)
->enabled(true)
@@ -51,7 +52,7 @@ class ContactUs extends Common
$item->title_short = $title[1];
}
return $item;
})->chunk(4)->toArray();
})->toArray();
}
View::assign('focus_image', $focus_image);
View::assign('info_datas', $info_datas);
@@ -161,9 +162,9 @@ class ContactUs extends Common
'ip' => request()->ip(),
]);
if ($ret->isEmpty()) {
return error(lang('contact_distributor.send_fail'));
return error(lang('信息提交失败!'));
}
return success(lang('contact_distributor.send_success'));
return success(lang('信息已成功提交!'));
}
// 获取企业规模
@@ -217,9 +218,9 @@ class ContactUs extends Common
'ip' => request()->ip(),
]);
if ($ret->isEmpty()) {
return error(lang('contact_bulkbuy.send_fail'));
return error(lang('信息提交失败!'));
}
return success(lang('contact_bulkbuy.send_success'));
return success(lang('信息已成功提交!'));
}
// 获取可选产品品类配置
@@ -229,7 +230,7 @@ class ContactUs extends Common
->byName('bulk_purchase_inquiry_interested')
->find();
if (empty($config)) {
return error('当前选定语言的采购可选品类配置出错');
return error(lang('当前选定语言的采购可选品类配置出错'));
}
View::assign('interested', explode(',', preg_replace('/\r?\n/', ',', $config->value)));

View File

@@ -54,11 +54,12 @@ class Index extends Common
$banners = SysBannerModel::with(['items' => function($query) {
$query->where('type', 'IN', ['image', 'video'])->where('status', '=', 1)->order(['sort' => 'asc', 'id' => 'desc']);
}])
->atPlatform(request()->from)
->uniqueLabel([
'BANNER_67f61cd70e8e1',
'BANNER_67f61cd70e8e1',
'BANNER_67f633023a5b3',
'BANNER_67f63f8ab5029',
'BANNER_67f724ed81b1e',
'BANNER_67f63f8ab5029',
'BANNER_67f724ed81b1e',
'BANNER_67f7392b4d83a',
'BANNER_67f7410e244fb',
'BANNER_67f76a96545f9',

View File

@@ -267,7 +267,12 @@ class Product extends Common
*/
public function search()
{
$keywords = request()->param('keywords', '');
$param = request()->param([
'keywords',
'page/d' => 1,
'size/d' => 10
]);
$keywords = $param['keywords'] ?? '';
// 关键词搜索
$products = ProductModel::field([
@@ -283,7 +288,11 @@ class Product extends Common
->onSale(true)
->onShelves(true)
->order(['sort' => 'asc', 'id' => 'desc'])
->select()
->paginate([
'list_rows' => $param['size'],
'page' => $param['page'],
'query' => request()->param()
])
->each(function ($item) use($keywords) {
$item['spu'] = str_replace($keywords, '<strong class="redpoint">'.$keywords.'</strong>', $item['spu']);
$item['name'] = str_replace($keywords, '<strong class="redpoint">'.$keywords.'</strong>', $item['name']);
@@ -291,6 +300,7 @@ class Product extends Common
return $item;
});
View::assign('products', $products);
View::assign('page', $products->render());
return View::fetch('search');
}

View File

@@ -17,4 +17,58 @@ return [
'常见问题' => 'FAQ',
'回答您最关心的问题' => 'What are you most concerned about',
'客服团队的工作时间周一到周五早9点到晚6点 平均应答时间24小时内' => 'Our customer support is available Monday to Friday: 9am-6:00pm. Average answer time: 24h',
'发送查询' => 'Send Inquiry',
'型号' => 'Model',
'产品描述' => 'Product Description',
'关联产品' => 'Related Products',
'姓名' => 'Name',
'请输入您的名称' => 'First name',
'请输入您的姓氏' => 'Last name',
'公司/组织' => 'Company/Organization',
'电子邮箱' => 'Email',
'电话号码' => 'Phone Number',
'国家' => 'Country',
'请选择所属国家' => 'Select your country',
'行业' => 'Industry',
'询问内容' => 'Inquiry',
'提交' => 'SUBMIT',
'信息已成功提交!' => 'Add Success',
'信息提交失败!' => 'Add Fail',
// 附件下载
'软件下载' => 'Software download',
'支持型号' => 'Supported Models',
'支持系统' => 'Supported Systems',
'全站搜索' => 'Search',
'搜索' => 'Search',
'请搜索' => 'Please search...',
// 成为分销商页面
'成为经销商' => 'Become a Distributor',
'准备好加入我们了吗?<br> 在下面输入您的详细信息我们的销售团队将在2个工作日内回复您。' => 'Ready to join us?<br/>Enter your details below and our Sales team will get back to you within 2 business days.',
'公司名称' => 'Company Name',
'请输入公司名称' => 'Enter your Company Name',
'电子邮件' => 'Contact Email',
'请输入邮箱' => 'Enter your Email',
'电话号码' => 'Phone Number',
'请输入电话号码' => 'Enter your Phone Number',
'业务类型' => 'Type of Business',
'在线商店网址' => 'Online Store URL',
'企业规模' => 'Enterprise Size',
'公司地址' => 'Company Address',
'请输入地址' => 'Enter Address',
'留言' => 'Message',
'请输入留言' => 'Enter your message',
// 批量购买页面
'批量购买' => 'Bulk Buy',
'法定营业名称' => 'Legal business name',
'官方网站' => 'Official website',
'请粘贴网址' => 'Please paste the URL',
'姓名' => 'Your Name',
'姓' => 'Last name',
'名' => 'First name',
'邮箱' => 'Email',
'电话号码' => 'Phone Number',
'您对哪个产品品类感兴趣?' => 'Products you are interested in?',
'当前选定语言的采购可选品类配置出错' => 'The procurement category configuration for the currently selected language is incorrect',
];

View File

@@ -0,0 +1,39 @@
<?php
return [
'公司名称不能为空' => 'Company Name is required',
'公司名称不能超过64个字符' => 'Company Name cannot exceed 64 characters',
'邮箱不能为空' => 'Email is required',
'邮箱格式不正确' => 'Email format is incorrect',
'邮箱不能超过128个字符' => 'Email cannot exceed 128 characters',
'电话号码不能为空' => 'Phone Number is required',
'电话号码不能超过64个字符' => 'Phone Number cannot exceed 64 characters',
'业务类型不能为空' => 'Type of Business is required',
'业务类型不能超过128个字符' => 'Type of Business cannot exceed 128 characters',
'企业规模不能为空' => 'Enterprise Size is required',
'企业规模不能超过128个字符' => 'Enterprise Size cannot exceed 128 characters',
'公司地址不能为空' => 'Company Address is required',
'公司地址不能超过255个字符' => 'Company Address cannot exceed 255 characters',
'留言不能为空' => 'Message is required',
'公司名称不能超过128个字符' => 'Company name cannot exceed 128 characters',
'网址不能超过255个字符' => 'URL cannot exceed 255 characters',
'名不能为空' => 'First Name is required',
'名不能超过64个字符' => 'First name cannot exceed 64 characters',
'姓不能为空' => 'Last name is required',
'姓不能超过64个字符' => 'Last name cannot exceed 64 characters',
'电话号码不能超过32个字符' => 'Phone number cannot exceed 32 characters',
'感兴趣的产品种类不能超过255个字符' => 'Interested product categories cannot exceed 255 characters',
'留言内容不能为空' => 'Message content is required',
'留言内容不能超过1024个字符' => 'Message content cannot exceed 1024 characters',
'姓名不能为空' => 'Name is required',
'问题不能为空' => 'Question is required',
'问题不能超过1024个字符' => 'Question cannot exceed 1024 characters',
'国家不能为空' => 'Country is required',
'国家不能超过128个字符' => 'Country cannot exceed 128 characters',
'公司/组织不能为空' => 'Company/Organization is required',
'公司/组织不能超过128个字符' => 'Company/Organization cannot exceed 128 characters',
'行业不能为空' => 'Industry is required',
'行业不能超过64个字符' => 'Industry cannot exceed 64 characters',
'询问内容不能为空' => 'Inquiry is required',
'询问内容不能超过1024个字符' => 'Inquiry cannot exceed 1024 characters',
];

View File

@@ -3,4 +3,6 @@
return [
// 启用多语言支持
think\middleware\LoadLangPack::class,
// 确认请求来源
app\index\middleware\ConfirmRequestFrom::class,
];

View File

@@ -0,0 +1,25 @@
<?php
declare (strict_types = 1);
namespace app\index\middleware;
class ConfirmRequestFrom
{
/**
* 处理请求
*
* @param \think\Request $request
* @param \Closure $next
* @return Response
*/
public function handle($request, \Closure $next)
{
// 确认请求来源
$request->from = 'pc';
if ($request->isMobile()) {
$request->from = 'mobile';
}
return $next($request);
}
}

View File

@@ -23,6 +23,16 @@ class SysBannerModel extends SysBannerBaseModel
return $this->hasMany(SysBannerItemModel::class, 'banner_id', 'id');
}
// 所属平台范围查询
public function scopeAtPlatform($query, string|array $platform)
{
if (is_array($platform)) {
$query->whereIn('at_platform', $platform);
return;
}
$query->where('at_platform', '=', $platform);
}
// 唯一标识范围查询
public function scopeUniqueLabel($query, string|array $unique_label)
{

View File

@@ -31,19 +31,19 @@ class ContactUsBulkBuyValidate extends Validate
* @var array
*/
protected $message = [
'corp_name.require' => 'valudate_corp_name_require',
'corp_name.max' => 'valudate_corp_name_max',
'url.max' => 'valudate_url_max',
'first_name.require' => 'valudate_first_name_require',
'first_name.max' => 'valudate_first_name_max',
'last_name.require' => 'valudate_last_name_require',
'last_name.max' => 'valudate_last_name_max',
'email.require' => 'valudate_email_require',
'email.email' => 'valudate_email_email',
'email.max' => 'valudate_email_max',
'phone.max' => 'valudate_phone_max',
'interested.max' => 'valudate_interested_max' ,
'message.require' => 'valudate_message_require',
'message.max' => 'valudate_message_max',
'corp_name.require' => '公司名称不能为空',
'corp_name.max' => '公司名称不能超过128个字符',
'url.max' => '网址不能超过255个字符',
'first_name.require' => '名不能为空',
'first_name.max' => '名不能超过64个字符',
'last_name.require' => '姓不能为空',
'last_name.max' => '姓不能超过64个字符',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
'email.max' => '邮箱不能超过128个字符',
'phone.max' => '电话号码不能超过32个字符',
'interested.max' => '感兴趣的产品种类不能超过255个字符',
'message.require' => '留言内容不能为空',
'message.max' => '留言内容不能超过1024个字符',
];
}

View File

@@ -30,19 +30,19 @@ class ContactUsDistributorValidate extends Validate
* @var array
*/
protected $message = [
'corp_name.require' => 'contact_distributor.validate_name_required',
'corp_name.max' => 'contact_distributor.validate_name_max',
'email.require' => 'contact_distributor.validate_email_required',
'email.email' => 'contact_distributor.validate_email_email',
'email.max' => 'contact_distributor.validate_email_max',
'phone.require' => 'contact_distributor.validate_phone_required',
'phone.max' => 'contact_distributor.validate_phone_max',
'business_type.require' => 'contact_distributor.validate_business_type_required',
'business_type.max' => 'contact_distributor.validate_business_type_max',
'enterprise_size.require' => 'contact_distributor.validate_enterprise_size_required',
'enterprise_size.max' => 'contact_distributor.validate_enterprise_size_max',
'address.require' => 'contact_distributor.validate_address_required',
'address.max' => 'contact_distributor.validate_address_max',
'message.require' => 'contact_distributor.validate_message_required',
'corp_name.require' => '公司名称不能为空',
'corp_name.max' => '公司名称不能超过64个字符',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
'email.max' => '邮箱不能超过128个字符',
'phone.require' => '电话号码不能为空',
'phone.max' => '电话号码不能超过64个字符',
'business_type.require' => '业务类型不能为空',
'business_type.max' => '业务类型不能超过128个字符',
'enterprise_size.require' => '企业规模不能为空',
'enterprise_size.max' => '企业规模不能超过128个字符',
'address.require' => '公司地址不能为空',
'address.max' => '公司地址不能超过255个字符',
'message.require' => '留言不能为空',
];
}

View File

@@ -26,12 +26,12 @@ class ContactUsMessageValidate extends Validate
* @var array
*/
protected $message = [
'name.require' => 'contact_message.validate_name_required',
'name.max' => 'contact_message.validate_name_max',
'email.require' => 'contact_message.validate_email_required',
'email.email' => 'contact_message.validate_email_email',
'email.max' => 'contact_message.validate_email_max',
'content.require' => 'contact_message.validate_content_required',
'content.max' => 'contact_message.validate_content_max'
'name.require' => '姓名不能为空',
'name.max' => '姓名不能超过64个字符',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
'email.max' => '邮箱不能超过128个字符',
'content.require' => '问题不能为空',
'content.max' => '问题不能超过1024个字符'
];
}

View File

@@ -31,21 +31,21 @@ class ProductInquiryValidate extends Validate
* @var array
*/
protected $message = [
'first_name.require' => 'validate_first_name_require',
'first_name.max' => 'validate_first_name_max',
'last_name.require' => 'validate_last_name_require',
'last_name.max' => 'validate_last_name_max',
'email.require' => 'validate_email_require',
'email.email' => 'validate_email_email',
'email.max' => 'validate_email_max',
'phone.max' => 'validate_phone_max',
'country_name.require' => 'validate_country_name_require',
'country_name.max' => 'validate_country_name_max',
'corp_name.require' => 'validate_corp_name_require',
'corp_name.max' => 'validate_corp_name_max',
'industry.require' => 'validate_industry_require',
'industry.max' => 'validate_industry_max',
'message.require' => 'validate_message_require',
'message.max' => 'validate_message_max'
'first_name.require' => '名不能为空',
'first_name.max' => '名不能超过64个字符',
'last_name.require' => '姓不能为空',
'last_name.max' => '姓不能超过64个字符',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
'email.max' => '邮箱不能超过128个字符',
'phone.max' => '电话号码不能超过32个字符',
'country_name.require' => '国家不能为空',
'country_name.max' => '国家不能超过128个字符',
'corp_name.require' => '公司/组织不能为空',
'corp_name.max' => '公司/组织不能超过128个字符',
'industry.require' => '行业不能为空',
'industry.max' => '行业不能超过64个字符',
'message.require' => '询问内容不能为空',
'message.max' => '询问内容不能超过1024个字符'
];
}

View File

@@ -0,0 +1,7 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="css/introduction.css" />
{/block}
{block name="main"}
{/block}

View File

@@ -0,0 +1,53 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/download.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<!-- 内容-->
<div class="margin-45"></div>
<!--search-->
<div class="menu mobile-search margin-top-90">
<div class="search">
<form action="{:url('attachment/index')}" method="get">
<div class="search margin-bottom-30">
<button class="updown_search_btn" type="sumbit">
<span class="icon-search-svg"></span>
</button>
<input class="form-control" name="keyword" placeholder="{:lang('全站搜索')}" value="" type="text" />
</div>
</form>
</div>
</div>
<!--软件下载-->
<div class="download-title">{:lang('软件下载')}</div>
<!--循环产品列表-->
{notempty name="attachements"}
{volist name="attachements" id="att"}
<div class="download-bg clearfix">
<div class="download-left">
<img src="{$att.image}" alt="{$att.name}">
</div>
<div class="download-right">
<div class="font-48">{$att.name}</div>
<div class="down-gray">
<p>{:lang('支持型号')}: {$att.applicable_to}</p>
<p>{:lang('支持系统')}: {$att.support_platform}</p>
</div>
{notempty name="att.attach"}
{volist name="att.attach" id="ch"}
<div class="down-btn">
<a href="{$ch.file_path}" data-cod="dl" target="_blank">
<span class="l_button">{$ch.btn_name}</span>
</a>
</div>
{/volist}
{/notempty}
</div>
</div>
{/volist}
<!-- 分页-->
<div class="Pages">{$page|raw}</div>
{/notempty}
</div>
{/block}

View File

@@ -0,0 +1,97 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/contactus_bulkbuy.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<div class="bdpage" style="background: #fff;border-radius: 8px;padding-top: 50px;">
<div class="bd_main bd_main1 bd_main2">
<h1 class="t1 sfbt1">{:lang('批量购买')}</h1>
<form action="" method="post" autocomplete="off">
<!--内容-->
<div class="bd_ct ">
<div class="bd_from" style="padding: 0 16px;">
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('公司名称')}<span class="redtag">*</span></label>
<input type="text" name="corp_name" class="form-control itinp companyName" placeholder="{:lang('法定营业名称')}">
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('官方网站')}</label>
<input type="text" name="url" class="form-control itinp url" placeholder="{:lang('请粘贴网址')}">
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('姓名')}<span class="redtag">*</span></label>
<input type="text" name="first_name" class="form-control itinp firstname" placeholder="{:lang('名')}">
<input type="text" name="last_name" class="form-control itinp lastname" placeholder="{:lang('姓')}" style="margin-top: 8px;">
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('邮箱')}<span class="redtag">*</span></label>
<input type="text" name="email" class="form-control itinp email" placeholder="{:lang('请输入邮箱')}">
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('电话号码')}</label>
<input type="text" name="phone" class="form-control itinp phone" placeholder="{:lang('请输入电话号码')}">
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('您对哪个产品品类感兴趣?')}</label>
<div class="sfbchecks">
{notempty name="interested"}
{volist name="interested" id="it"}
<label class="cit">
<input name="interested" type="checkbox" value="{$it}" class="sfbcheckboxit" />{$it}
</label>
{/volist}
{/notempty}
</div>
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('留言')}<span class="redtag">*</span></label>
<textarea name="message" class="ittextarea ittextarea2 message" placeholder="{:lang('请输入留言')}"></textarea>
</div>
</div>
</div>
</div>
<!-- 提交-->
<div class="bttj" id="send">{:lang('提交')}</div>
</form>
</div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
$(function(){
$("#send").click(function(){
var form = $(this).parents("form");
$.ajax({
url: "{:url('contactus/bulkbuy')}",
type: "post",
dataType: "json",
data: form.serialize(),
success: function(r){
if(r.code == 0){
form.get(0).reset();
}
alert(r.msg);
},
error: function(e){
console.error(e);
}
})
})
})
</script>
{/block}

View File

@@ -0,0 +1,107 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/contactus_distributor.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<!-- 内容-->
<div class="cooperapp_bdpage" style="background:#F2F2F2;">
<div class="cooperapp_bd_main" style="margin-top: 60px;">
<form action="" method="post">
<h1 class="cooperapp_t1">{:lang('成为经销商')}</h1>
<p class="cooperapp_s1">{:lang('准备好加入我们了吗?<br> 在下面输入您的详细信息我们的销售团队将在2个工作日内回复您。')}</p>
<!--内容-->
<div class="bd_ct cooperapp_bd_ct">
<div class="thimg">
<img src="__IMAGES__/distributor_focus_image.webp" alt="" srcset="" class="cooperapp_bdimg">
</div>
<div class="bd_from">
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('公司名称')}<span class="redtag">*</span></label>
<input type="text" class="form-control itinp companyName" placeholder="{:lang('请输入公司名称')}" />
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('电子邮件')}<span class="redtag">*</span></label>
<input type="text" class="form-control itinp email" placeholder="{:lang('请输入邮箱')}" />
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('电话号码')}<span class="redtag">*</span></label>
<input type="text" class="form-control itinp mphone" placeholder="{:lang('请输入电话号码')}" />
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('业务类型')}<span class="redtag">*</span></label>
<select name="business_type" class="form-control itinp business_type">
{volist name="types" id="ty"}
<option value="{$ty.value}">{$ty.name}</option>
{/volist}
</select>
</div>
</div>
<div class="theit">
<div class="bditem">
<label class="itlable">{:lang('在线商店网址')}</label>
<input type="text" class="form-control itinp url" placeholder="{:lang('请输入网址')}" />
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('企业规模')}<span class="redtag">*</span></label>
<select name="enterprise_size" data-pf-type="FormInput" class="form-control itinp enterprise_size">
{volist name="sizes" id="si"}
<option value="{$si.value}">{$si.name}</option>
{/volist}
</select>
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('公司地址')}<span class="redtag">*</span></label>
<input type="text" class="form-control itinp address" placeholder="{:lang('请输入地址')}">
</div>
</div>
<div class="theit">
<div class="bditem bditem1">
<label class="itlable">{:lang('留言')}<span class="redtag">*</span></label>
<textarea class="ittextarea message" placeholder="{:lang('请输入留言')}"></textarea>
</div>
</div>
</div>
</div>
<!-- 提交-->
<div class="bttj" id="send">{:lang('提交')}</div>
</form>
</div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
$(function () {
$("#send").click(function () {
var form = $(this).parents("form");
$.ajax({
url: "{:url('contactus/distributor')}",
type: "post",
data: form.serialize(),
dataType: "json",
success: function (r) {
if (r.code == 0) {
form.get(0).reset();
}
alert(r.msg);
},
error: function (e) {
console.error(e);
}
})
})
})
</script>
{/block}

View File

@@ -0,0 +1,71 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/contactus_index.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<!-- 内容-->
<div class="oricoEGapp-Contact">
<!--banner-->
{notempty name="focus_image.image"}
<div class="banner img-responsives margin-top-90">
<img src="{$focus_image.image}" />
</div>
{/notempty}
<div class="narskfPage">
{notempty name="info_datas"}
<div class="narskf-content">
{assign name="chunks" value=":array_chunk($info_datas, 2)" /}
{assign name="sizeof_chunks" value=":count($chunks)" /}
{volist name="chunks" id="ch" key="k"}
{if condition="$k elt ($sizeof_chunks - 1)"}
<div class="narskf-ct-row">
{volist name="ch" id="item"}
<div class="narskfit" {notempty name="item.link"}onclick="location.href='{$item.link}'"{/notempty}>
<img src="{$item.image}" class="narskico-img" />
<span class="narskf-title">{$item.title}</span>
{notempty name="item.title_short"}
<span class="narskf-sm">{$item.title_short}</span>
{/notempty}
{notempty name="item.desc"}
{if condition="str_contains($item.desc, '<img')"}
<div class="narskfactive-ewm" style="display: none;">{$item.desc|raw}</div>
{/if}
{/notempty}
</div>
{/volist}
</div>
{else/}
{volist name="ch" id="item"}
<div class="narskf-ct-row">
<div class="narskfit narskfit2">
<img src="{$item.image}" class="narskico-img">
<div class="narskfit2-ct">
<span class="narskf-title">{$item.title}</span>
<span class="narskf-sm">{$item.desc|raw}</span>
</div>
</div>
</div>
{/volist}
{/if}
{/volist}
</div>
{/notempty}
</div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
$(document).ready(function() {
$('.narskfit').on('click', function() {
var $ewm = $(this).find('.narskfactive-ewm');
if ($ewm.css('display') === 'none') {
$ewm.css('display', 'flex');
} else {
$ewm.css('display', 'none');
}
});
});
</script>
{/block}

View File

@@ -0,0 +1,253 @@
{extend name="public/base" /}
{block name="title"}
{notempty name="product.seo_title"}<title>{$product.seo_title}</title>{else /}{__BLOCK__}{/notempty}
{/block}
{block name="seo"}
{notempty name="product.seo_keywords"}
<meta name="keywords" content="{$product.seo_keywords}" />
<meta name="description" content="{$product.seo_desc}" />
{else/}
{__BLOCK__}
{/notempty}
{/block}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/product_detail.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<!--产品详情-->
<div class="oricoEGapp-prdetail">
<div class="m_Container margin-top-90">
<div class="goods_address">
<a class="href_01">{:lang('首页')}</a>
{volist name="product_categorys" id="ca"}
<span class="icon-arrow arrow_address"></span>
<a class="href_02" href="{:url('product/category', ['id' => $ca.id])}">{$ca.name}</a>
{/volist}
</div>
</div>
<!--产品轮播图 -->
{notempty name="product_skus"}
<div class="m_Container oricodtail-pdetailimgs">
{volist name="product_skus" id="sku" key="idx"}
<div class="swiper-container pdetailswiper" data-index="{$idx}" {neq name="idx" value="1"}style="display: none;"{/neq}>
<div class="swiper-wrapper">
{volist name="sku.photo_album" id="photo"}
<div class="swiper-slide">
<img src="{$photo}" alt="" />
</div>
{/volist}
</div>
<!-- 如果需要分页器 -->
<div class="swiper-pagination"></div>
</div>
{/volist}
</div>
{/notempty}
<!-- 规格参数-->
<div class="m_Container">
<!--多颜色-->
{notempty name="product_sku_attrs"}
<div class="slideTxtBox">
<div class="hd clearfix">
{volist name="product_sku_attrs" id="ps"}
<div class="dt attr_type">
<span>{$ps.attr_name}</span>
{notempty name="ps.attr_values"}
<ul class="hd clearfix">
{volist name="ps.attr_values" id="pv" key="pk"}
{assign name="attr_value_type" value=":rgb_or_image($pv.attr_value)" /}
<li class="attr_value tip1 attr_item" data-index="{$pk}">
{eq name="attr_value_type" value="IMAGE"}
<span class="co-bg"><img src="{$pv.attr_value}" /></span>
{elseif condition="attr_value_type == 'RGB'" /}
<span class="co-bg" {:style(['background-color'=>$pv.attr_value])}></span>
{else/}
<span>{$pv.attr_value}</span>
{/eq}
</li>
{/volist}
</ul>
{/notempty}
</div>
{/volist}
</div>
</div>
{/notempty}
<div class="goods_all_title">
<div class="title">{$product.name}</div>
</div>
{notempty name="product_params"}
<div class="proTfg">
<ul class="msul swt-Table">
<li class="Table-Row">
<div class="ms1 Table-Cell">{:lang('型号')}</div>
<div class="ms2 Table-Cell"></div>
<div class="ms3 Table-Cell">{$product.spu}</div>
</li>
{volist name="product_params" id="param"}
<li class="Table-Row">
<div class="ms1 Table-Cell">{$param.name}</div>
<div class="ms2 Table-Cell"></div>
<div class="ms3 Table-Cell">{$param.value}</div>
</li>
{/volist}
</ul>
</div>
{/notempty}
<div class="platform_buy">
<a class="btn-blue-detail business-button">{:lang('发送查询')}</a>
</div>
</div>
<!-- 产品描述 -->
<div class="goods_details">
<ul class="cpa des cursor_p">
<li class="active" id="one">{:lang('产品描述')}</li>
{notempty name="product_related"}
<li>{:lang('关联产品')}</li>
{/notempty}
<div class="clear"></div>
</ul>
</div>
<!-- 产品图片-->
<div class="goods_des img-responsives" id="description-tab">{$product.detail|raw}</div>
<!-- 关联产品-->
<div class="glcplist" id="related-tab" style="display: none;">
<div class="glcpitem" >
<img src="indeximg/i560-800-1.png" src="glcpimg" />
<span class="glt1" style="margin-top: 0.68rem;color: #333;font-size: 0.58rem;">98系列
多盘位DAS桌面阵列存储系统</span>
<span class="glt2">ORICO-9858RU3</span>
</div>
</div>
<!-- 弹窗-->
<div class="marsk-container-detail">
<div class="popup-quick">
<div class="title-text">{:lang('发送查询')}</div>
<div class="business-close"><img src="__IMAGES__/close2.png"></div>
<form action="" method="post" autocomplete="off" class="apply_content">
<div class="detail_form">
<div>
<p><strong class="redstr">*</strong>{:lang('姓名')}</p>
<div class="name clearfix">
<input type="text" class="first detail-w02" placeholder="{:lang('请输入您的名称')}"
name="firstname" id="firstname" style="margin-right:0.5rem;">
<input type="text" class="first detail-w02" placeholder="{:lang('请输入您的姓氏')}"
name="lastname" id="lastname">
</div>
</div>
<div class=" clearfix">
<p><strong class="redstr">*</strong>{:lang('公司/组织')}</p>
<div class="redstr">
<input type="text" class="first detail-w01" id="companyName" name="companyName">
</div>
</div>
<div class=" clearfix">
<p><strong class="redstr">*</strong>{:lang('邮箱')}</p>
<div class="redstr">
<input type="text" class="first detail-w01" id="email" name="email">
</div>
</div>
<div class=" clearfix">
<p><strong class="redstr">*</strong>{:lang('电话号码')}</p>
<div class="redstr">
<input type="text" class="first detail-w01" id="phone" name="phone">
</div>
</div>
<div class="clearfix">
<p><strong class="redstr">*</strong>{:lang('国家')}</p>
<div class="redstr">
<select class=" detail-w01" id="country" name="country">
<option value="">--- {:lang('请选择所属国家')} ---</option>
{volist name="country_list" id="country"}
<option value="{$country}">{$country}</option>
{/volist}
</select>
</div>
</div>
<div class=" clearfix">
<p><strong class="redstr">*</strong>{:lang('行业')}</p>
<div class="redstr">
<input type="text" class="first detail-w01" id="industry" name="industry">
</div>
</div>
<div class=" clearfix">
<p><strong style="color: red;">*</strong>{:lang('询问内容')}</p>
<div>
<textarea rows="3" cols="20" class="first detail-w01" id="inquiry" name="inquiry"></textarea>
</div>
</div>
<div class="submit_btn" id="send">{:lang('提交')}</div>
</div>
</form>
</div>
</div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
//产品图片轮播
var pdetailswiper = new Swiper('.pdetailswiper', {
// 配置选项
loop: true,
autoplay: {
delay: 3000,
},
pagination: {
el: '.swiper-pagination',
}
});
$(function() {
$('.business-button').click(function() {
$('.marsk-container-detail').show()
})
$('.business-close').click(function() {
$('.marsk-container-detail').hide()
})
// 产品描述和关联产品切换
$('.cpa li').on('click', function() {
$(this).siblings().removeClass('active');
$(this).addClass('active');
const targetTab = $(this).data('tab');
$('.tab-pane').hide();
if (targetTab === 'description') {
$('#description-tab').show();
$('#related-tab').hide();
} else if (targetTab === 'related') {
$('#related-tab').show();
$('#description-tab').hide();
}
});
// 根据颜色切换图册
$('.attr_type').find('.attr_value').click(function() {
var index = $(this).data('index');
$('.pdetailswiper').hide();
$('.pdetailswiper[data-index="' + index + '"]').show();
$('.attr_value').removeClass('active');
$(this).addClass('active');
});
// 提交产品询价查询
// 提交询盘
$('#send').click(function() {
var form = $(this).parents('form');
$.ajax({
url: "{:url('product/inquiry')}",
type: 'POST',
data: form.serialize(),
success: function(r) {
if (r.code == 0) {
form[0].reset(); // 重置表单
modal.hide();
}
alert(r.msg);
},
error: function(e) {
console.error(e);
}
})
});
})
</script>
{/block}

View File

@@ -0,0 +1,45 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/product_newpro.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<div class="oricoEGapp-newarrival">
<!-- 顶部产品图-->
{notempty name="focus_image"}
{volist name="focus_image" id="fo"}
<a {notempty name="fo.link" }href="{$fo.link}"{/notempty}>
<img src="{$fo.image}" class="ona-topimg" />
</a>
{/volist}
{/notempty}
<!-- 产品列表 -->
{notempty name="newpros"}
<div class="ona-prlist">
{volist name="newpros" id="vo"}
<div class="m_Container">
<div class="product_list_title">
<div class="product_title">{$vo.category.name|default=''}</div>
</div>
<div class="product_list">
{notempty name="vo.products"}
<ul>
{volist name="vo.products" id="pro"}
<li class="img-responsive">
<a href="{:url('product/detail', ['id' => $pro.id])}">
<img src="{:thumb($pro.cover_image)}">
<span class="title">{$pro.name}</span>
<span class="subtitle">{$pro.spu}</span>
</a>
</li>
{/volist}
</ul>
{/notempty}
</div>
</div>
{/volist}
</div>
{/notempty}
</div>
</div>
{/block}

View File

@@ -0,0 +1,33 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__CSS__/product_search.css" />
{/block}
{block name="main"}
<div class="oricoEGapp">
<!-- 搜索页面 -->
<div class="oricoEGapp-topsearch">
<form action="{:url('product/search')}" method="get" class="topsearch">
<div class="sleft">
<img src="__IMAGES__/ssapp.png" class="icosearch"/>
<input class="topseach-ipt" name="keywords" placeholder="{:lang('请搜索')}"/>
</div>
<button type="submit" class="searchbt">{:lang('搜索')}</button>
</form>
{notempty name="products"}
<div class="prlist">
{volist name="products" id="pro"}
<a class="pritem">
<img src="{$pro.cover_image}" class="primg"/>
<div class="prinfo">
<span class="t1">{$pro.name|raw}</span>
<span class="t2">{$pro.spu|raw}</span>
</div>
</a>
{/volist}
</div>
<!-- 分页 -->
<div>{$page|raw}</div>
{/notempty}
</div>
</div>
{/block}

View File

@@ -48,7 +48,7 @@
{notempty name="header_languages"}
{volist name="header_languages" id="hl"}
{if condition="$hl.lang_code == cookie('think_lang')"}
<div class="right mask-up img-responsive foot-con">
<div class="right mask-up img-responsive foot-con top-country-toggle">
<img class="right-country" src="{$hl.lang_icon}">
<span>{$hl.lang_en_name}</span>
<img src="__IMAGES__/downicon.png">

View File

@@ -3,9 +3,9 @@
<a><img src="__IMAGES__/logo.png" class="headerlogimg" /></a>
<div class="action-r">
<div class="right img-responsive cursor_p">
<span class="icon-category cursor_p"> <i class="icon-menu-svg"></i></span>
<span class="icon-keyword cursor_p"><i class="icon-search-svg"></i></span>
<span class="mask-up cursor_p "><i class="icon-lag-svg"></i></span>
<span class="icon-category cursor_p top-menu-toggle"><i class="icon-menu-svg"></i></span>
<span class="icon-keyword cursor_p top-search-toggle"><i class="icon-search-svg"></i></span>
<span class="mask-up cursor_p top-country-toggle"><i class="icon-lag-svg"></i></span>
</div>
</div>
</div>
@@ -47,8 +47,10 @@
<div class="popup-quick">
<div class="ac-close float_r "><img src="__IMAGES__/close.png"></div>
<div class="search-in">
<input type="text" placeholder="{:lang('产品')} USB 2.0...">
<button id="search-btnput" class="search-button">{:lang('搜索')}</button>
<form action="{:url('product/search')}" method="get">
<input type="text" name="keywords" placeholder="{:lang('产品')} USB 2.0...">
<button type="submit" id="search-btnput" class="search-button">{:lang('搜索')}</button>
</form>
<div class="title-text">
<p><a href="#">{:lang('搜索历史')}</a></p>
</div>
@@ -81,7 +83,7 @@
<script type="text/javascript">
$(function() {
// 点击顶部菜单
$(".icon-menu-svg").click(function() {
$(".top-menu-toggle").click(function() {
$(".top-menu").slideToggle(800);
})
// 点击一级菜单显示二级菜单
@@ -92,14 +94,14 @@
$(this).find('.icon-arrow').addClass('rotate');
});
//点击搜索
$('.icon-search-svg').click(function() {
$('.top-search-toggle').click(function() {
$(".marsk-container").show();
})
$('.ac-close').click(function() {
$(".marsk-container").hide();
})
// 顶部国家选择
$('.icon-lag-svg').click(function(){
$('.top-country-toggle').click(function(){
$(".mask,.action-sheet").show();
})
$('.top-country .close-icon').click(function(){

View File

@@ -16,7 +16,8 @@
<div class="narskfPage">
{notempty name="info_datas"}
<div class="narskf-content">
{volist name="info_datas" id="items"}
{assign name="chunks" value=":array_chunk($info_datas, 4)" /}
{volist name="chunks" id="items"}
<div class="narskf-ct-row">
{gt name=":count($items)" value="2"}
{volist name="items" id="item"}

View File

@@ -118,8 +118,9 @@
<a href="#detail" class="checkshow">{:lang('product_detail.detail_section_title')}</a>
{notempty name="product_related"}
<span>|</span>
<a href="#related">{:lang('product_detail.related_products')}</a></div>
<a href="#related">{:lang('product_detail.related_products')}</a>
{/notempty}
</div>
<!-- 富文本渲染-->
<div class="products_des" id="detail">
{$product.detail|default=''|raw}

View File

@@ -0,0 +1,398 @@
.cooperapp_bdpage {
width: 100%;
background: #f2f2f2;
position: relative;
}
.cooperapp_bd_main {
background: #fff;
border-radius: 8px;
padding: 24px 16px;
margin: 20px;
margin-top: 70px;
}
.cooperapp_t1 {
font-size: 18px;
color: #004bfa;
text-align: left;
font-family: Montserrat-Bold, Montserrat;
font-weight: 700;
margin-top: 0;
margin-bottom: 12px;
}
.cooperapp_s1 {
font-size: 12px;
color: #707070;
text-align: center;
text-align: left;
font-family: Montserrat-Medium, Montserrat;
font-weight: 500;
}
.bd_ct {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.cooperapp_bd_ct {
width: 100%;
flex-direction: column;
}
.cooperapp_bdimg {
width: 100%;
}
.thimg {
margin-top: 12px;
width: 100%;
margin-bottom: 24px;
}
.bdimg {
width: 100%;
height: 100%;
}
.bd_from {
display: flex;
flex: 1;
flex-direction: column;
}
.theit {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 20px;
}
.bditem {
display: flex;
flex-direction: column;
flex: 1;
}
.bditem1 {
width: 100%;
}
.itlable {
font-size: 12.5px;
font-family: Montserrat-Medium, Montserrat;
color: #000000;
font-weight: bold;
padding-bottom: 5px;
width: fit-content;
position: relative;
}
.redtag {
position: absolute;
right: -10px;
top: 0px;
color: #ee2f53;
}
.itinp {
font-size: 16px;
background: #f2f2f2;
/*border: none !important;*/
border-radius: 8px;
height: 48px;
border: none;
box-shadow: none;
font-family: Montserrat-Regular, Montserrat;
}
.itselectopen {
width: 100%;
height: 48px;
display: flex;
background: #f2f2f2;
border: none !important;
border-radius: 8px;
box-shadow: none;
align-items: center;
justify-content: space-between;
}
.dropdown-menu {
width: 100%;
}
.ittextarea {
height: 100px;
padding: 15px;
background: #f2f2f2;
border-radius: 8px;
font-family: Montserrat-Regular, Montserrat;
}
.bttj {
font-size: 14px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
width: 212px;
/* height: 48px; */
padding: 15px 60px;
background: #004bfa;
border-radius: 28px;
color: #fff;
text-align: center;
margin: 0 auto;
margin-top: 10px;
}
.iotbpage {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
overflow: auto;
padding-top: 50px;
}
.iotb_bgw {
width: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
}
.bdimg1 {
width: 100%;
}
.iotbt1 {
font-size: 18px;
font-family: Montserrat-Bold, Montserrat;
padding-bottom: 24px;
padding-top: 40px;
font-weight: 700;
color: #000;
}
.iotb_part1 {
padding: 0 20px;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
padding-bottom: 40px;
align-items: baseline;
}
.iotb_p1_item {
width: 45%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.iotb_p1_item img {
width: 72px;
height: 72px;
}
.iotbic1 {
width: 120px;
height: 120px;
}
.iotbtp1 {
font-size: 14px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
padding-bottom: 11px;
word-break: break-word;
}
.iotbts1 {
text-align: center;
font-size: 12px;
font-family: Montserrat-Medium, Montserrat;
color: #9e9e9f;
word-break: break-word;
}
.iotb_part2 {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.fdimgs {
padding-bottom: 60px;
margin: 0 auto;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.iotb_part3 {
width: 100%;
padding-bottom: 81px;
display: flex;
background-color: #fff;
flex-direction: column;
}
.odmmain {
width: 70%;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.odmconten {
width: 81%;
margin: 0 auto;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
}
.odmitem {
width: 41%;
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 24px;
}
.appodmimg {
width: 72px;
height: 72px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
box-shadow: 0px 2px 5px rgba(124, 162, 207, 0.2);
}
.odms1 {
color: #202020;
font-size: 14px;
padding-top: 12px;
text-align: center;
font-family: Montserrat-Medium, Montserrat;
overflow-wrap: break-word;
word-break: break-word;
}
.appcoofootimg {
width: 100%;
}
.sfbt1 {
text-align: center;
font-size: 18px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
padding-bottom: 24px;
padding-top: 24px;
color: #000;
}
.sfbchecks {
display: flex;
flex-direction: column;
}
.sfbcheckboxlist {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.sfbcheckboxit {
margin: 0 !important;
border: 1px solid #ccc;
width: 16px !important;
height: 16px !important;
border-radius: 2px !important;
margin-right: 10px !important;
}
.cit {
width: 100%;
font-size: 14px;
font-family: Montserrat-Regular, Montserrat;
color: #000;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 12px;
font-weight: 400;
}
.bd_main1 {
max-height: none;
}
.ittextarea2 {
height: 200px;
border: 0;
}
.bditem select {
border: 1px solid #f2f2f2;
}
.bd_from .form-control {
display: block;
/*width: 100%;*/
padding: 2px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.wcu_list {
display: flex;
flex-direction: column;
padding: 0 20px;
}
.wcu_ltem {
width: 100%;
margin-bottom: 12px;
background: #fff;
border-radius: 8px;
display: flex;
flex-direction: column;
/*padding: 0 20px;*/
}
.wcu_ltem .fbit {
width: 100%;
}
.wcu_s1 {
color: #000;
font-size: 16px;
font-family: Montserrat-Medium, Montserrat;
font-weight: 500;
padding: 20px 24px;
}
.bd_main2 {
padding-bottom: 75px;
}

View File

@@ -0,0 +1,397 @@
.cooperapp_bdpage {
width: 100%;
background: #f2f2f2;
position: relative;
}
.cooperapp_bd_main {
background: #fff;
border-radius: 8px;
padding: 24px 16px;
margin: 20px;
margin-top: 70px;
}
.cooperapp_t1 {
font-size: 18px;
color: #004bfa;
text-align: left;
font-family: Montserrat-Bold, Montserrat;
font-weight: 700;
margin-top: 0;
margin-bottom: 12px;
}
.cooperapp_s1 {
font-size: 12px;
color: #707070;
text-align: center;
text-align: left;
font-family: Montserrat-Medium, Montserrat;
font-weight: 500;
}
.bd_ct {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.cooperapp_bd_ct {
width: 100%;
flex-direction: column;
}
.cooperapp_bdimg {
width: 100%;
}
.thimg {
margin-top: 12px;
width: 100%;
margin-bottom: 24px;
}
.bdimg {
width: 100%;
height: 100%;
}
.bd_from {
display: flex;
flex: 1;
flex-direction: column;
}
.theit {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 20px;
}
.bditem {
display: flex;
flex-direction: column;
flex: 1;
}
.bditem1 {
width: 100%;
}
.itlable {
font-size: 12.5px;
font-family: Montserrat-Medium, Montserrat;
color: #000000;
font-weight: bold;
padding-bottom: 5px;
width: fit-content;
position: relative;
}
.redtag {
position: absolute;
right: -10px;
top: 0px;
color: #ee2f53;
}
.itinp {
font-size: 16px;
background: #f2f2f2;
/*border: none !important;*/
border-radius: 8px;
height: 48px;
border: none;
box-shadow: none;
font-family: Montserrat-Regular, Montserrat;
}
.itselectopen {
width: 100%;
height: 48px;
display: flex;
background: #f2f2f2;
border: none !important;
border-radius: 8px;
box-shadow: none;
align-items: center;
justify-content: space-between;
}
.dropdown-menu {
width: 100%;
}
.ittextarea {
height: 100px;
padding: 15px;
background: #f2f2f2;
border-radius: 8px;
font-family: Montserrat-Regular, Montserrat;
border: 0;
}
.bttj {
font-size: 14px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
width: 212px;
padding: 15px 60px;
background: #004bfa;
border-radius: 28px;
color: #fff;
text-align: center;
margin: 0 auto;
margin-top: 10px;
}
.iotbpage {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
overflow: auto;
padding-top: 50px;
}
.iotb_bgw {
width: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
}
.bdimg1 {
width: 100%;
}
.iotbt1 {
font-size: 18px;
font-family: Montserrat-Bold, Montserrat;
padding-bottom: 24px;
padding-top: 40px;
font-weight: 700;
color: #000;
}
.iotb_part1 {
padding: 0 20px;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
padding-bottom: 40px;
align-items: baseline;
}
.iotb_p1_item {
width: 45%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.iotb_p1_item img {
width: 72px;
height: 72px;
}
.iotbic1 {
width: 120px;
height: 120px;
}
.iotbtp1 {
font-size: 14px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
padding-bottom: 11px;
word-break: break-word;
}
.iotbts1 {
text-align: center;
font-size: 12px;
font-family: Montserrat-Medium, Montserrat;
color: #9e9e9f;
word-break: break-word;
}
.iotb_part2 {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.fdimgs {
padding-bottom: 60px;
margin: 0 auto;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.iotb_part3 {
width: 100%;
padding-bottom: 81px;
display: flex;
background-color: #fff;
flex-direction: column;
}
.odmmain {
width: 70%;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.odmconten {
width: 81%;
margin: 0 auto;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
}
.odmitem {
width: 41%;
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 24px;
}
.appodmimg {
width: 72px;
height: 72px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
box-shadow: 0px 2px 5px rgba(124, 162, 207, 0.2);
}
.odms1 {
color: #202020;
font-size: 14px;
padding-top: 12px;
text-align: center;
font-family: Montserrat-Medium, Montserrat;
overflow-wrap: break-word;
word-break: break-word;
}
.appcoofootimg {
width: 100%;
}
.sfbt1 {
text-align: center;
font-size: 18px;
font-family: Montserrat-Bold, Montserrat;
font-weight: bold;
padding-bottom: 24px;
padding-top: 24px;
color: #000;
}
.sfbchecks {
display: flex;
flex-direction: column;
}
.sfbcheckboxlist {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.sfbcheckboxit {
margin: 0 !important;
border: 1px solid #ccc;
width: 16px !important;
height: 16px !important;
border-radius: 2px !important;
margin-right: 10px !important;
}
.cit {
width: 100%;
font-size: 14px;
font-family: Montserrat-Regular, Montserrat;
color: #000;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 12px;
font-weight: 400;
}
.bd_main1 {
max-height: none;
}
.ittextarea2 {
height: 200px;
}
.bditem select {
border: 1px solid #f2f2f2;
}
.bd_from .form-control {
display: block;
/*width: 100%;*/
padding: 2px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.wcu_list {
display: flex;
flex-direction: column;
padding: 0 20px;
}
.wcu_ltem {
width: 100%;
margin-bottom: 12px;
background: #fff;
border-radius: 8px;
display: flex;
flex-direction: column;
/*padding: 0 20px;*/
}
.wcu_ltem .fbit {
width: 100%;
}
.wcu_s1 {
color: #000;
font: 16px;
font-family: Montserrat-Medium, Montserrat;
font-weight: 500;
padding: 20px 24px;
}
.bd_main2 {
padding-bottom: 75px;
}

View File

@@ -0,0 +1,254 @@
@charset "UTF-8";
.oricoEGapp-Contact {
/*新增*/
}
.oricoEGapp-Contact .banner {
position: relative;
margin-top: 3.3rem;
}
.oricoEGapp-Contact .banner_title {
font-family: "Montserrat-Bold";
font-size: 1.5rem;
position: absolute;
top: 50%;
margin-top: -0.75rem;
color: #fff;
z-index: 9;
text-align: center;
width: 100%;
}
.oricoEGapp-Contact .content {
background-color: #fff;
margin-top: 0.75rem;
padding: 2rem 1.25rem;
color: #000;
}
.oricoEGapp-Contact .title {
font-family: "Montserrat-Bold";
font-size: 1rem;
}
.oricoEGapp-Contact .info {
padding-top: 2.125rem;
padding-bottom: 2rem;
display: flex;
justify-content: flex-start;
}
.oricoEGapp-Contact .info .left {
width: 3rem;
height: 3rem;
margin-right: 1rem;
}
.oricoEGapp-Contact .info .left img {
width: 3rem;
height: 3rem;
}
.oricoEGapp-Contact .info .right .des {
font-family: "Montserrat-Regular";
font-size: 0.875rem;
line-height: 1.25rem;
}
.oricoEGapp-Contact .info_title {
font-family: "Montserrat-Bold";
font-size: 0.875rem;
line-height: 1.25rem;
margin-bottom: 0.22rem;
}
.oricoEGapp-Contact .m-t-20 {
margin-top: 1.11rem;
}
.oricoEGapp-Contact .question {
margin-top: 1.11rem;
}
.oricoEGapp-Contact .question .title {
margin-top: 0.5rem;
font-family: "Montserrat-Bold";
font-size: 0.875rem;
line-height: 1.25rem;
}
.oricoEGapp-Contact .question .des {
margin-top: 0.5rem;
}
.oricoEGapp-Contact .question .des input {
background-color: #f2f2f2;
border-radius: 0.5rem;
padding: 1rem;
width: calc(100% - 2rem);
width: -webkit-calc(100% - 2rem);
width: -moz-calc(100% - 2rem);
}
.oricoEGapp-Contact .question .des textarea {
background-color: #f2f2f2;
border-radius: 0.5rem;
padding: 1rem;
width: calc(100% - 2rem);
border: 1px solid transparent;
}
.oricoEGapp-Contact .send {
display: inline-block;
background-color: #004bfa;
font-family: "Montserrat-Bold";
font-size: 0.875rem;
padding: 0.75rem 1.5rem;
color: #fff;
border-radius: 1.25rem;
}
.oricoEGapp-Contact .red {
color: #ee2f53;
}
.oricoEGapp-Contact .contact_b {
font-family: "Montserrat-SemiBold";
font-size: 1rem;
padding-top: 1.125rem;
padding-bottom: 1.125rem;
color: #004bfa;
width: 100%;
text-align: center;
background-color: #fff;
margin-top: 0.67rem;
}
.oricoEGapp-Contact .contact_b a {
color: #004bfa;
}
.oricoEGapp-Contact .line {
width: 100%;
height: 1px;
background-color: #f1f1f1;
}
.oricoEGapp-Contact input::-webkit-input-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact input:-moz-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact input::-moz-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact input:-ms-input-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact textarea::-webkit-input-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact textarea:-moz-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact textarea::-moz-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact textarea:-ms-input-placeholder {
color: #9e9e9f;
font-size: 0.875rem;
font-family: "Montserrat-Regular";
}
.oricoEGapp-Contact .narskfPage {
width: 100%;
height: 100%;
background: #f5f5f5;
display: flex;
flex-direction: column;
align-items: center;
overflow-y: auto;
}
.oricoEGapp-Contact .narskfPage .narskf-content {
width: calc(100% - 20px);
display: flex;
flex-direction: column;
margin: 0 0.625rem;
padding-top: 0.625rem;
padding-bottom: 11.25rem;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit {
width: 50%;
height: 12rem;
border-radius: 0.125rem;
margin-right: 0.625rem;
margin-bottom: 0.625rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #fff;
cursor: pointer;
position: relative;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskf-title {
color: #262626;
font-size: 1rem;
text-align: center;
padding-top: 1rem;
padding-bottom: 0.5625rem;
font-weight: bold;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskf-sm {
color: #9a9a9a;
font-size: 0.75rem;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskf-font-26 {
color: #262626 !important;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskico-img {
width: 2.5rem;
height: 2.5rem;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskfactive-ewm {
width: 100%;
height: 100%;
position: absolute;
top: 0;
z-index: 1;
display: none;
align-items: center;
justify-content: center;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit .narskfactive-ewm .narskfactiveimg {
width: 9.5rem;
width: 9.5rem;
position: absolute;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit2 {
width: 37rem;
height: 10rem;
flex-direction: row;
justify-content: flex-start;
padding-left: 53px;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit2 .narskico-img {
margin-right: 1.5rem;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit2 .narskfit2-ct {
display: flex;
flex-direction: column;
text-align: left;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit2 .narskfit2-ct .narskf-title {
padding-top: 0;
font-size: 1rem;
padding-bottom: 0.375rem;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit2 .narskfit2-ct .narskf-sm {
font-size: 0.75rem;
color: #9a9a9a;
}
.oricoEGapp-Contact .narskfPage .narskf-content .narskf-ct-row .narskfit:last-child {
margin-right: 0rem;
}

View File

@@ -0,0 +1,87 @@
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
*zoom: 1;
}
.mobile-search {
background: #004bfa !important;
width: 100%;
padding: 1rem 0 0.5rem;
}
.download-title {
font-size: 28px;
text-align: center;
color: #333;
margin: 15px 0;
}
.download-bg {
background: #fff;
border-radius: 10px;
margin: 8px 25px;
box-shadow: 0px 2px 40px 0px #e6eaf4;
-moz-box-shadow: 0px 2px 40px 0px #e6eaf4;
-webkit-box-shadow: 0px 2px 40px 0px #e6eaf4;
padding: 1.333rem;
}
@media screen and (max-width: 375px) {
.download-left {
width: 60%;
margin: auto;
}
.download-right {
width: 100%;
font-size: 0.8rem;
}
.down-btn {
border: 1px solid #009fdf;
text-align: center;
color: #009fdf;
font-size: 0.8rem;
margin: auto;
border-radius: 20px;
padding: 0.5rem 1rem;
}
}
.download-left img {
width: 100%;
}
@media screen and (min-width: 376px) {
.download-left {
width: 30%;
float: left;
}
.download-right {
width: 65%;
float: right;
font-size: 0.64rem;
}
}
.down-btn {
border: 1px solid #009fdf;
text-align: center;
color: #009fdf;
font-size: 0.8rem;
margin: 5px 0;
border-radius: 20px;
padding: 0.5rem 1rem;
}
.down-btn a {
color: #009fdf;
}
.down-gray {
color: #666;
margin: 5px 0;
}

View File

@@ -68,6 +68,7 @@
.oricoEGapp .oricoEGapp-index .oidx-tcly {
display: flex;
flex-direction: column;
background: #fff;
}
.oricoEGapp .oricoEGapp-index .oidx-times {
display: flex;

View File

@@ -0,0 +1,37 @@
.oricoEGapp-prdetail {
position: relative;
}
.oricoEGapp-prdetail img {
max-width: 100%;
}
.oricoEGapp-prdetail .margin-top-90 {
padding-top: 3.125rem;
}
.oricoEGapp-prdetail .margin-top-90 .goods_address {
padding-top: 1.25rem;
padding-bottom: 0;
}
.oricoEGapp-prdetail .margin-top-90 .goods_address a {
font-size: 14px;
}
.oricoEGapp-prdetail .oricodtail-pdetailimgs {
position: relative;
margin: 1rem;
margin-top: 0%;
}
.oricoEGapp-prdetail .redstr {
color: red;
margin-right: 0.3125rem;
}
.oricoEGapp-prdetail .clearfix {
margin-bottom: 0.5rem;
}
.oricoEGapp-prdetail .slideTxtBox .clearfix .attr_type {
display: flex;
flex-direction: column;
}
.oricoEGapp-prdetail .slideTxtBox .clearfix .attr_type .clearfix li {
display: flex;
justify-content: center;
align-items: center;
}

View File

@@ -0,0 +1,9 @@
.oricoEGapp-newarrival {
position: relative;
display: flex;
flex-direction: column;
margin-top: 3.4rem;
}
.oricoEGapp-newarrival .ona-topimg {
max-width: 100%;
}

View File

@@ -0,0 +1,100 @@
.oricoEGapp-topsearch {
display: flex;
flex-direction: column;
justify-content: center;
background: #fff;
}
.oricoEGapp-topsearch .topsearch {
padding: 5.08rem 1.25rem 0.68rem 1.25rem;
display: flex;
flex-direction: row;
align-items: center;
}
.oricoEGapp-topsearch .topsearch .sleft {
flex: 1;
display: flex;
flex-direction: row;
align-items: center;
}
.oricoEGapp-topsearch .topsearch .icosearch {
width: 1rem;
height: 1rem;
}
.oricoEGapp-topsearch .topsearch .topseach-ipt {
flex: 1;
margin: 0 0.625rem;
}
.oricoEGapp-topsearch .topsearch .searchbt {
border: none;
font-size: 0.9rem;
color: #fff;
cursor: pointer;
background: #0060ff;
height: 2rem;
line-height: 2rem;
border-radius: 20px;
padding: 0 1rem;
display: inline-block;
}
.oricoEGapp-topsearch .prlist {
display: flex;
flex-direction: column;
margin: 1.25rem;
}
.oricoEGapp-topsearch .prlist .pritem {
display: flex;
flex-direction: row;
border-bottom: 1px solid #e5e5e5;
justify-content: space-between;
}
.oricoEGapp-topsearch .prlist .pritem .primg {
margin: 0.5rem;
width: 4.26rem;
}
.oricoEGapp-topsearch .prlist .pritem .prinfo {
display: flex;
flex-direction: column;
width: 65%;
float: right;
}
.oricoEGapp-topsearch .prlist .pritem .prinfo .t1 {
font-size: 0.64rem;
padding-top: 1rem;
color: #333;
padding-bottom: 0.45rem;
}
.oricoEGapp-topsearch .prlist .pritem .prinfo .t2 {
font-size: 0.586rem;
color: #666;
}
.oricoEGapp-topsearch .Pages {
text-align: center;
color: #555;
clear: both;
margin-bottom: 0.8rem;
margin-top: 0.6rem;
}
.oricoEGapp-topsearch .Pages span {
display: inline-block;
}
.oricoEGapp-topsearch .Pages .num a {
vertical-align: middle;
color: #666;
font-size: 0.875rem;
padding: 0.1rem 0.58rem;
}
.oricoEGapp-topsearch .Pages .a_prev,
.oricoEGapp-topsearch .Pages .a_next {
padding-top: 0.4rem;
padding-left: 0.38rem;
padding-right: 0.38rem;
}
.oricoEGapp-topsearch .Pages .a_prev img,
.oricoEGapp-topsearch .Pages .a_next img {
width: 0.267rem;
height: 0.587rem;
}
.oricoEGapp-topsearch .Pages .num .a_cur {
background-color: #444444;
color: #fff;
}

View File

@@ -85,4 +85,28 @@ a {
body {
font-family: 'Montserrat-SemiBold';
}
/* 分页样式 */
.pagination {
text-align: center;
color: #555;
clear: both;
margin-bottom: 0.8rem;
margin-top: 0.6rem;
}
.pagination li {
display: inline-block;
}
.pagination li a,
.pagination li span {
display: inline-block;
vertical-align: middle;
font-size: 0.875rem;
color: #666;
padding: 0.1rem 0.58rem;
}
.pagination li.active span{
background-color: #444444;
color: #fff;
}

View File

@@ -1484,13 +1484,18 @@ video img {
margin-top: 0rem;
}
.product_list_title .view_all {
width: 38%;
/* width: 38%; */
float: right;
text-align: right;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: -3%;
}
.product_list_title .icon-Double-Arrow {
margin-left: 0.15rem;
display: inline-block;
mar
}
/*产品列表*/
@@ -1694,6 +1699,8 @@ video img {
}
.goods_details .cpa {
text-align: center;
display: flex;
justify-content: center;
}
.goods_details .cpa li {
display: inline-block;
@@ -1745,6 +1752,33 @@ video img {
z-index: 999;
max-width: 750px;
}
.glcplist{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
padding: 3%;
}
.glcplist .glcpitem{
width: 44.5%;
background: #fff;
padding: 2%;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;margin-bottom: 3%;
}
.glcplist .glcpitem .glt1{
margin-top: 0.68rem;
color: #333;
font-size: 0.58rem;
}
.glcplist .glcpitem .glt2{
font-size: 0.43rem;
margin-bottom: 0.84rem;
margin-top: 0.35rem;
color: #666;
}
/*关联产品*/
.goods_Related {
padding: 0.85rem 0 1.25rem;

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B