feat: 联系我们成为分销商
This commit is contained in:
@@ -3,9 +3,13 @@ declare (strict_types = 1);
|
|||||||
|
|
||||||
namespace app\index\controller;
|
namespace app\index\controller;
|
||||||
|
|
||||||
|
use app\index\model\AgentBusinessTypeModel;
|
||||||
|
use app\index\model\AgentEnterpriseSizeTypeModel;
|
||||||
|
use app\index\model\AgentModel;
|
||||||
use app\index\model\LeaveMessageModel;
|
use app\index\model\LeaveMessageModel;
|
||||||
use app\index\model\SysBannerModel;
|
use app\index\model\SysBannerModel;
|
||||||
use app\index\validate\ContactUsValidate;
|
use app\index\validate\ContactUsDistributorValidate;
|
||||||
|
use app\index\validate\ContactUsMessageValidate;
|
||||||
use think\facade\View;
|
use think\facade\View;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -35,7 +39,7 @@ class ContactUs extends Common
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// 数据校验
|
// 数据校验
|
||||||
$validate = new ContactUsValidate;
|
$validate = new ContactUsMessageValidate;
|
||||||
if (!$validate->check($form_data)) {
|
if (!$validate->check($form_data)) {
|
||||||
return error($validate->getError());
|
return error($validate->getError());
|
||||||
}
|
}
|
||||||
@@ -92,8 +96,50 @@ class ContactUs extends Common
|
|||||||
{
|
{
|
||||||
if (request()->isPost()) {
|
if (request()->isPost()) {
|
||||||
// 提交留言处理
|
// 提交留言处理
|
||||||
|
$form_data = request()->post([
|
||||||
|
'corp_name',
|
||||||
|
'email',
|
||||||
|
'phone',
|
||||||
|
'business_type',
|
||||||
|
'enterprise_size',
|
||||||
|
'address',
|
||||||
|
'message'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 验证字段
|
||||||
|
$validate = new ContactUsDistributorValidate;
|
||||||
|
if (!$validate->check($form_data)) {
|
||||||
|
return error($validate->getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存留言
|
||||||
|
$ret = AgentModel::create([
|
||||||
|
'language_id' => $this->lang_id,
|
||||||
|
'corp_name' => $form_data['corp_name'],
|
||||||
|
'email' => $form_data['email'],
|
||||||
|
'phone' => $form_data['phone'],
|
||||||
|
'referer_url' => request()->header('referer'),
|
||||||
|
'website_url' => request()->header('host'),
|
||||||
|
'business_type' => $form_data['business_type'],
|
||||||
|
'enterprise_size' => $form_data['enterprise_size'],
|
||||||
|
'address' => $form_data['address'],
|
||||||
|
'message' => $form_data['message'],
|
||||||
|
'ip' => request()->ip(),
|
||||||
|
]);
|
||||||
|
if ($ret->isEmpty()) {
|
||||||
|
return error(lang('contact_distributor.send_fail'));
|
||||||
|
}
|
||||||
|
return success(lang('contact_distributor.send_success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取企业规模
|
||||||
|
$sizes = AgentEnterpriseSizeTypeModel::language($this->lang_id)->select();
|
||||||
|
View::assign('sizes', $sizes);
|
||||||
|
|
||||||
|
// 获取企业业务类型
|
||||||
|
$types = AgentBusinessTypeModel::language($this->lang_id)->select();
|
||||||
|
View::assign('types', $types);
|
||||||
|
|
||||||
return View::fetch('distributor');
|
return View::fetch('distributor');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,4 +70,43 @@ return [
|
|||||||
'send_success' => 'success',
|
'send_success' => 'success',
|
||||||
'send_fail' => 'fail',
|
'send_fail' => 'fail',
|
||||||
],
|
],
|
||||||
|
'contact_distributor' => [
|
||||||
|
'title' => 'Become a Distributor',
|
||||||
|
'section_title' => 'To Be Our Distributor',
|
||||||
|
'section_desc_1' => 'Ready to join us?',
|
||||||
|
'section_desc_2' => 'Enter your details below and our Sales team will get back to you within 2 business days.',
|
||||||
|
'form_corp_name' => 'Company Name',
|
||||||
|
'form_corp_name_placeholder' => 'Enter your Company Name',
|
||||||
|
'form_email' => 'Contact Email',
|
||||||
|
'form_email_placeholder' => 'Enter your Email',
|
||||||
|
'form_phone' => 'Phone Number',
|
||||||
|
'form_phone_placeholder' => 'This is your placeholder text',
|
||||||
|
'form_business_type' => 'Type of Business',
|
||||||
|
'form_online_shop_url' => 'Online Shop URL',
|
||||||
|
'form_online_shop_url_placeholder' => 'This is your placeholder URL',
|
||||||
|
'form_enterprise_size' => 'Enterprise size',
|
||||||
|
'form_corp_address' => 'Company Address',
|
||||||
|
'form_corp_address_placeholder' => 'Enter Address',
|
||||||
|
'form_message' => 'Message',
|
||||||
|
'form_message_placeholder' => 'Enter your message',
|
||||||
|
'form_submit' => 'SUBMIT',
|
||||||
|
// 验证器中文本
|
||||||
|
'validate_name_required' => 'Company Name is required',
|
||||||
|
'validate_name_max' => 'Company Name cannot exceed 64 characters',
|
||||||
|
'validate_email_required' => 'Email is required',
|
||||||
|
'validate_email_email' => 'Email format is incorrect',
|
||||||
|
'validate_email_max' => 'Email cannot exceed 128 characters',
|
||||||
|
'validate_phone_required' => 'Phone Number is required',
|
||||||
|
'validate_phone_max' => 'Phone Number cannot exceed 64 characters',
|
||||||
|
'validate_business_type_required' => 'Type of Business is required',
|
||||||
|
'validate_business_type_max' => 'Type of Business cannot exceed 128 characters',
|
||||||
|
'validate_enterprise_size_required' => 'Enterprise size is required',
|
||||||
|
'validate_enterprise_size_max' => 'Enterprise size cannot exceed 128 characters',
|
||||||
|
'validate_address_required' => 'Company Address is required',
|
||||||
|
'validate_address_max' => 'Company Address cannot exceed 255 characters',
|
||||||
|
'validate_message_required' => 'Message is required',
|
||||||
|
// 返回文本
|
||||||
|
'send_success' => 'Add Success!',
|
||||||
|
'send_fail' => 'Add Fail!',
|
||||||
|
]
|
||||||
];
|
];
|
||||||
@@ -70,4 +70,43 @@ return [
|
|||||||
'send_success' => '提交成功',
|
'send_success' => '提交成功',
|
||||||
'send_fail' => '提交失败',
|
'send_fail' => '提交失败',
|
||||||
],
|
],
|
||||||
|
'contact_distributor' => [
|
||||||
|
'title' => '成为经销商',
|
||||||
|
'section_title' => '成为经销商',
|
||||||
|
'section_desc_1' => '准备好加入我们了吗?',
|
||||||
|
'section_desc_2' => '在下面输入您的详细信息,我们的销售团队将在2个工作日内回复您。',
|
||||||
|
'form_corp_name' => '公司名称',
|
||||||
|
'form_corp_name_placeholder' => '请输入公司名称',
|
||||||
|
'form_email' => '电子邮箱',
|
||||||
|
'form_email_placeholder' => '请输入邮箱',
|
||||||
|
'form_phone' => '电话号码',
|
||||||
|
'form_phone_placeholder' => '请输入电话号码',
|
||||||
|
'form_business_type' => '业务类型',
|
||||||
|
'form_online_shop_url' => '在线商店网址',
|
||||||
|
'form_online_shop_url_placeholder' => '请输入网址',
|
||||||
|
'form_enterprise_size' => '企业规模',
|
||||||
|
'form_corp_address' => '公司地址',
|
||||||
|
'form_corp_address_placeholder' => '请输入地址',
|
||||||
|
'form_message' => '留言',
|
||||||
|
'form_message_placeholder' => '请输入留言',
|
||||||
|
'form_submit' => '提交',
|
||||||
|
// 验证器中文本
|
||||||
|
'validate_name_required' => '公司名称不能为空',
|
||||||
|
'validate_name_max' => '公司名称不能超过64个字符',
|
||||||
|
'validate_email_required' => '邮箱不能为空',
|
||||||
|
'validate_email_email' => '邮箱格式不正确',
|
||||||
|
'validate_email_max' => '邮箱不能超过128个字符',
|
||||||
|
'validate_phone_required' => '电话号码不能为空',
|
||||||
|
'validate_phone_max' => '电话号码不能超过64个字符',
|
||||||
|
'validate_business_type_required' => '业务类型不能为空',
|
||||||
|
'validate_business_type_max' => '业务类型不能超过128个字符',
|
||||||
|
'validate_enterprise_size_required' => '企业规模不能为空',
|
||||||
|
'validate_enterprise_size_max' => '企业规模不能超过128个字符',
|
||||||
|
'validate_address_required' => '公司地址不能为空',
|
||||||
|
'validate_address_max' => '公司地址不能超过255个字符',
|
||||||
|
'validate_message_required' => '留言内容不能为空',
|
||||||
|
// 返回文本
|
||||||
|
'send_success' => '信息已成功提交',
|
||||||
|
'send_fail' => '信息提交失败',
|
||||||
|
]
|
||||||
];
|
];
|
||||||
19
app/index/model/AgentBusinessTypeModel.php
Normal file
19
app/index/model/AgentBusinessTypeModel.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\index\model;
|
||||||
|
|
||||||
|
use app\common\model\AgentBusinessTypeBaseModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代理商业务类型模型
|
||||||
|
* @mixin \think\Model
|
||||||
|
*/
|
||||||
|
class AgentBusinessTypeModel extends AgentBusinessTypeBaseModel
|
||||||
|
{
|
||||||
|
// 所属语言范围查询
|
||||||
|
public function scopeLanguage($query, $language)
|
||||||
|
{
|
||||||
|
$query->where('language_id', '=', $language);
|
||||||
|
}
|
||||||
|
}
|
||||||
19
app/index/model/AgentEnterpriseSizeTypeModel.php
Normal file
19
app/index/model/AgentEnterpriseSizeTypeModel.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\index\model;
|
||||||
|
|
||||||
|
use app\common\model\AgentEnterpriseSizeTypeBaseModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代理商企业规模类型模型
|
||||||
|
* @mixin \think\Model
|
||||||
|
*/
|
||||||
|
class AgentEnterpriseSizeTypeModel extends AgentEnterpriseSizeTypeBaseModel
|
||||||
|
{
|
||||||
|
// 所属语言范围查询
|
||||||
|
public function scopeLanguage($query, $language)
|
||||||
|
{
|
||||||
|
$query->where('language_id', '=', $language);
|
||||||
|
}
|
||||||
|
}
|
||||||
15
app/index/model/AgentModel.php
Normal file
15
app/index/model/AgentModel.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\index\model;
|
||||||
|
|
||||||
|
use app\common\model\AgentBaseModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 代理商模型
|
||||||
|
* @mixin \think\Model
|
||||||
|
*/
|
||||||
|
class AgentModel extends AgentBaseModel
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
48
app/index/validate/ContactUsDistributorValidate.php
Normal file
48
app/index/validate/ContactUsDistributorValidate.php
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
declare (strict_types = 1);
|
||||||
|
|
||||||
|
namespace app\index\validate;
|
||||||
|
|
||||||
|
use think\Validate;
|
||||||
|
|
||||||
|
class ContactUsDistributorValidate extends Validate
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 定义验证规则
|
||||||
|
* 格式:'字段名' => ['规则1','规则2'...]
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $rule = [
|
||||||
|
'corp_name' => 'require|max:64',
|
||||||
|
'email' => 'require|email|max:128',
|
||||||
|
'phone' => 'require|max:64',
|
||||||
|
'business_type' => 'require|max:128',
|
||||||
|
'enterprise_size' => 'require|max:128',
|
||||||
|
'address' => 'require|max:255',
|
||||||
|
'message' => 'require',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定义错误信息
|
||||||
|
* 格式:'字段名.规则名' => '错误信息'
|
||||||
|
*
|
||||||
|
* @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',
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ namespace app\index\validate;
|
|||||||
|
|
||||||
use think\Validate;
|
use think\Validate;
|
||||||
|
|
||||||
class ContactUsValidate extends Validate
|
class ContactUsMessageValidate extends Validate
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 定义验证规则
|
* 定义验证规则
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
{extend name="public/base" /}
|
||||||
|
{block name="title"}
|
||||||
|
<title>{:lang('contact_distributor.title')}</title>
|
||||||
|
{/block}
|
||||||
|
{block name="style"}
|
||||||
|
<link rel="stylesheet" href="__CSS__/distributor.css" />
|
||||||
|
{/block}
|
||||||
|
{block name="main"}
|
||||||
|
<div class="orico_Page_distributor">
|
||||||
|
<!--内容 -->
|
||||||
|
<div class="distributorMain">
|
||||||
|
<h1 class="t1">{:lang('contact_distributor.section_title')}</h1>
|
||||||
|
<p class="s1" style="padding-bottom:5px">{:lang('contact_distributor.section_desc_1')}</p>
|
||||||
|
<p class="s1 s2">{:lang('contact_distributor.section_desc_2')}</p>
|
||||||
|
<!--内容-->
|
||||||
|
<form action="" method="post">
|
||||||
|
<div class="bd_ct">
|
||||||
|
<div class="thimg">
|
||||||
|
<img src="__IMAGES__/brand02.png" class="bdimg">
|
||||||
|
</div>
|
||||||
|
<div class="bd_from">
|
||||||
|
<div class="theit">
|
||||||
|
<div class="bditem">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_corp_name')}<span class="redtag">*</span></label>
|
||||||
|
<input type="text" class="form-control itinp" name="corp_name" placeholder="{:lang('contact_distributor.form_corp_name_placeholder')}" />
|
||||||
|
</div>
|
||||||
|
<div class="bditem">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_email')}<span class="redtag">*</span></label>
|
||||||
|
<input type="email" class="form-control itinp" name="email" placeholder="{:lang('contact_distributor.form_email_placeholder')}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="theit">
|
||||||
|
<div class="bditem bditem1">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_phone')}<span class="redtag">*</span></label>
|
||||||
|
<input type="text" class="form-control itinp" name="phone" placeholder="{:lang('contact_distributor.form_phone_placeholder')}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="theit">
|
||||||
|
<div class="bditem">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_business_type')}<span class="redtag">*</span></label>
|
||||||
|
<select name="business_type" class="form-control itinp">
|
||||||
|
{volist name="types" id="ty"}
|
||||||
|
<option value="{$ty.value}">{$ty.name}</option>
|
||||||
|
{/volist}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="bditem">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_online_shop_url')}</label>
|
||||||
|
<input type="text" class="form-control itinp" name="url" placeholder="{:lang('contact_distributor.form_online_shop_url_placeholder')}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="theit">
|
||||||
|
<div class="bditem bditem1">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_enterprise_size')}<span class="redtag">*</span></label>
|
||||||
|
<select name="enterprise_size" class="form-control itinp">
|
||||||
|
{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('contact_distributor.form_corp_address')}<span class="redtag">*</span></label>
|
||||||
|
<input class="form-control itinp" name="address" placeholder="{:lang('contact_distributor.form_corp_address_placeholder')}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="theit">
|
||||||
|
<div class="bditem bditem1">
|
||||||
|
<label class="itlable">{:lang('contact_distributor.form_message')}<span class="redtag">*</span></label>
|
||||||
|
<textarea class="ittextarea" name="message" placeholder="{:lang('contact_distributor.form_message_placeholder')}"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 提交-->
|
||||||
|
<div class="bttj" id="send">{:lang('contact_distributor.form_submit')}</div>
|
||||||
|
</form>
|
||||||
|
</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}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
.orico_Page_distributor {
|
.orico_Page_distributor {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100vh;
|
min-height: 100vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
background: #f2f2f2;
|
background: #f2f2f2;
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
padding: 4.375rem 2.4375rem;
|
padding: 4.375rem 2.4375rem;
|
||||||
margin: 2.5rem auto;
|
margin: 6rem auto 2.5rem auto;
|
||||||
}
|
}
|
||||||
.orico_Page_distributor .distributorMain .redtag {
|
.orico_Page_distributor .distributorMain .redtag {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -107,6 +107,7 @@
|
|||||||
background: #f2f2f2;
|
background: #f2f2f2;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
|
resize: none;
|
||||||
font-family: Montserrat-Regular, Montserrat;
|
font-family: Montserrat-Regular, Montserrat;
|
||||||
}
|
}
|
||||||
.orico_Page_distributor .distributorMain .bttj {
|
.orico_Page_distributor .distributorMain .bttj {
|
||||||
|
|||||||
BIN
public/static/index/images/brand02.png
Executable file
BIN
public/static/index/images/brand02.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 578 KiB |
Reference in New Issue
Block a user