feat: 联系我们成为分销商
This commit is contained in:
@@ -3,9 +3,13 @@ declare (strict_types = 1);
|
||||
|
||||
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\SysBannerModel;
|
||||
use app\index\validate\ContactUsValidate;
|
||||
use app\index\validate\ContactUsDistributorValidate;
|
||||
use app\index\validate\ContactUsMessageValidate;
|
||||
use think\facade\View;
|
||||
|
||||
/**
|
||||
@@ -35,7 +39,7 @@ class ContactUs extends Common
|
||||
]);
|
||||
|
||||
// 数据校验
|
||||
$validate = new ContactUsValidate;
|
||||
$validate = new ContactUsMessageValidate;
|
||||
if (!$validate->check($form_data)) {
|
||||
return error($validate->getError());
|
||||
}
|
||||
@@ -92,8 +96,50 @@ class ContactUs extends Common
|
||||
{
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,27 +47,66 @@ return [
|
||||
'development' => 'Tech Development',
|
||||
],
|
||||
'contact_message' => [
|
||||
'title' => 'contact us',
|
||||
'our_information' => 'Our Information',
|
||||
'send_question' => 'Send Us Your Question',
|
||||
'form_name' => 'Yuor Name',
|
||||
'form_name_placeholder' => 'This is your placeholder text',
|
||||
'form_email' => 'Your Email',
|
||||
'form_email_placeholder' => 'This is your placeholder text',
|
||||
'form_question' => 'Your Message',
|
||||
'form_question_placeholder' => 'This is your placeholder text',
|
||||
'form_submit' => 'SEND',
|
||||
'become_a_distributor' => 'Become a Distributor',
|
||||
// 验证器中文本
|
||||
'validate_name_required' => 'Name is required',
|
||||
'validate_name_max' => '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_content_required' => 'Message is required',
|
||||
'validate_content_max' => 'Message cannot exceed 1024 characters',
|
||||
// 返回文本
|
||||
'send_success' => 'success',
|
||||
'send_fail' => 'fail',
|
||||
'title' => 'contact us',
|
||||
'our_information' => 'Our Information',
|
||||
'send_question' => 'Send Us Your Question',
|
||||
'form_name' => 'Yuor Name',
|
||||
'form_name_placeholder' => 'This is your placeholder text',
|
||||
'form_email' => 'Your Email',
|
||||
'form_email_placeholder' => 'This is your placeholder text',
|
||||
'form_question' => 'Your Message',
|
||||
'form_question_placeholder' => 'This is your placeholder text',
|
||||
'form_submit' => 'SEND',
|
||||
'become_a_distributor' => 'Become a Distributor',
|
||||
// 验证器中文本
|
||||
'validate_name_required' => 'Name is required',
|
||||
'validate_name_max' => '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_content_required' => 'Message is required',
|
||||
'validate_content_max' => 'Message cannot exceed 1024 characters',
|
||||
// 返回文本
|
||||
'send_success' => 'success',
|
||||
'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!',
|
||||
]
|
||||
];
|
||||
@@ -47,27 +47,66 @@ return [
|
||||
'development' => '品牌活动',
|
||||
],
|
||||
'contact_message' => [
|
||||
'title' => '联系我们',
|
||||
'our_information' => '我们的信息',
|
||||
'send_question' => '提交您的问题',
|
||||
'form_name' => '姓名',
|
||||
'form_name_placeholder' => '请输入你的姓名',
|
||||
'form_email' => '电子邮箱',
|
||||
'form_email_placeholder' => '请输入你的邮箱',
|
||||
'form_question' => '您的问题',
|
||||
'form_question_placeholder' => '请输入你的问题',
|
||||
'form_submit' => '发送',
|
||||
'become_a_distributor' => '成为经销商',
|
||||
// 验证器中文本
|
||||
'validate_name_required' => '姓名不能为空',
|
||||
'validate_name_max' => '姓名不能超过64个字符',
|
||||
'validate_email_required' => '邮箱不能为空',
|
||||
'validate_email_email' => '邮箱格式不正确',
|
||||
'validate_email_max' => '邮箱不能超过128个字符',
|
||||
'validate_content_required' => '问题不能为空',
|
||||
'validate_content_max' => '问题不能超过1024个字符',
|
||||
// 返回文本
|
||||
'send_success' => '提交成功',
|
||||
'send_fail' => '提交失败',
|
||||
'title' => '联系我们',
|
||||
'our_information' => '我们的信息',
|
||||
'send_question' => '提交您的问题',
|
||||
'form_name' => '姓名',
|
||||
'form_name_placeholder' => '请输入你的姓名',
|
||||
'form_email' => '电子邮箱',
|
||||
'form_email_placeholder' => '请输入你的邮箱',
|
||||
'form_question' => '您的问题',
|
||||
'form_question_placeholder' => '请输入你的问题',
|
||||
'form_submit' => '发送',
|
||||
'become_a_distributor' => '成为经销商',
|
||||
// 验证器中文本
|
||||
'validate_name_required' => '姓名不能为空',
|
||||
'validate_name_max' => '姓名不能超过64个字符',
|
||||
'validate_email_required' => '邮箱不能为空',
|
||||
'validate_email_email' => '邮箱格式不正确',
|
||||
'validate_email_max' => '邮箱不能超过128个字符',
|
||||
'validate_content_required' => '问题不能为空',
|
||||
'validate_content_max' => '问题不能超过1024个字符',
|
||||
// 返回文本
|
||||
'send_success' => '提交成功',
|
||||
'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;
|
||||
|
||||
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 {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
background: #f2f2f2;
|
||||
@@ -12,7 +12,7 @@
|
||||
background: #fff;
|
||||
border-radius: 1rem;
|
||||
padding: 4.375rem 2.4375rem;
|
||||
margin: 2.5rem auto;
|
||||
margin: 6rem auto 2.5rem auto;
|
||||
}
|
||||
.orico_Page_distributor .distributorMain .redtag {
|
||||
position: absolute;
|
||||
@@ -107,6 +107,7 @@
|
||||
background: #f2f2f2;
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
resize: none;
|
||||
font-family: Montserrat-Regular, Montserrat;
|
||||
}
|
||||
.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