Commit 95ff644c by 朱继来

Merge branch 'zjl_inquiry_order_20210311' into development

parents d6919bd9 eb38f091
...@@ -62,9 +62,7 @@ Class AddOrderController extends Controller ...@@ -62,9 +62,7 @@ Class AddOrderController extends Controller
$info['title'] = '新增联营订单'; $info['title'] = '新增联营订单';
$info['sale_id'] = $request->user->userId; $info['sale_id'] = $request->user->userId;
$crm_user_id = $request->input('user_id', 0); $crm_user_id = $request->input('user_id', 0);
$info['crm_account'] = ''; $info['crm_account'] = '';
if ($crm_user_id) { if ($crm_user_id) {
...@@ -78,10 +76,39 @@ Class AddOrderController extends Controller ...@@ -78,10 +76,39 @@ Class AddOrderController extends Controller
$url = Config('website.api_domain').'cart/getDJKConfg'; $url = Config('website.api_domain').'cart/getDJKConfg';
$info['api_dgk_url'] = ($url.'?k1='.$data['k1']."&".'k2='.$data['k2']); $info['api_dgk_url'] = ($url.'?k1='.$data['k1']."&".'k2='.$data['k2']);
// $info['company'] = (new CmsModel())->getCompany(); // 获取公司组织
// $info['report_ids'] = $request->input('report_ids', ''); // 询价系统销售报价ID
return view('addOrder', $info); return view('addOrder', $info);
} }
// 新增询价订单
public function addInquiryOrder(Request $request)
{
$info = $this->getPageInfo($request);
$info['title'] = '新增联营订单';
$crm_user_id = $request->input('user_id', 0);
$info['crm_account'] = '';
if ($crm_user_id) {
$UserMainModel = new UserMainModel();
$user_info = $UserMainModel->find($crm_user_id);
$info['crm_account'] = $user_info['mobile'] ? $user_info['mobile'] : $user_info['email'];
}
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$url = Config('website.api_domain').'cart/getDJKConfg';
$info['dgk_info'] = json_decode(curlApi($url.'?k1='.$data['k1']."&".'k2='.$data['k2']), true);
// $info['company'] = (new CmsModel())->getCompany(); // 获取公司组织
$info['report_ids'] = $request->input('report_ids', ''); // 询价系统销售报价ID
return view('addInquiryOrder', $info);
}
// 新增自营线上订单 // 新增自营线上订单
public function addOnline(Request $request) public function addOnline(Request $request)
{ {
...@@ -247,7 +274,7 @@ Class AddOrderController extends Controller ...@@ -247,7 +274,7 @@ Class AddOrderController extends Controller
{ {
if ($request->isMethod('post')) { if ($request->isMethod('post')) {
$data['uid'] = $request->input('uid'); $data['uid'] = $request->input('uid');
$data['order_goods_type'] = $request->input('goods_type'); $data['order_goods_type'] = $request->input('goods_type', 1);
$data['cart_ids'] = $request->input('cart_ids'); $data['cart_ids'] = $request->input('cart_ids');
$data['k1'] = time(); $data['k1'] = time();
...@@ -388,8 +415,9 @@ Class AddOrderController extends Controller ...@@ -388,8 +415,9 @@ Class AddOrderController extends Controller
{ {
if ($request->isMethod('post')) { if ($request->isMethod('post')) {
$data['uid'] = $request->input('uid'); $data['uid'] = $request->input('uid');
$data['type'] = $request->input('type'); // $data['type'] = $request->input('type', 1);
$data['delivery_place'] = $request->input('delivery_place'); $data['delivery_place'] = $request->input('delivery_place', 1);
$data['is_new'] = $request->input('is_new', 0);
$data['k1'] = time(); $data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
...@@ -398,12 +426,34 @@ Class AddOrderController extends Controller ...@@ -398,12 +426,34 @@ Class AddOrderController extends Controller
$response = json_decode(curlApi($url, $data), true); $response = json_decode(curlApi($url, $data), true);
if ($data['is_new']) { // 新版下单页面,layui格式返回
$data = isset($response['data']['list']) ? $response['data']['list'] : [];
return ['code'=>$response['err_code'], 'msg'=>$response['err_msg'], 'data'=>$data, 'count'=>count($data)];
}
if ($response['err_code'] == 0) { if ($response['err_code'] == 0) {
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>$response['data']]; return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>$response['data']];
} else { }
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']]; return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']];
} }
} }
// 获取订单赠品信息
public function getOrderGift(Request $request)
{
if ($request->isMethod('post')) {
$data['cart_ids'] = $request->input('cart_ids', 1);
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$url = Config('website.api_domain').'cart/getOrderGift';
$res = json_decode(curlApi($url, $data), true);
return ['errcode' => $res['err_code'], 'errmsg' => $res['err_msg'], 'data'=>$res['data']];
}
} }
// 修改购物车商品数量 // 修改购物车商品数量
...@@ -414,12 +464,12 @@ Class AddOrderController extends Controller ...@@ -414,12 +464,12 @@ Class AddOrderController extends Controller
$data['num'] = $request->input('num'); $data['num'] = $request->input('num');
$data['cart_id'] = $request->input('cart_id'); $data['cart_id'] = $request->input('cart_id');
$type = $request->input('type'); // 3-批量添加的商品 $type = $request->input('type'); // 3-批量添加的商品
$goods_type = $request->input('goods_type'); // $goods_type = $request->input('goods_type');
$data['k1'] = time(); $data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
if ($type == 3 && $goods_type == 1) { // 联营批量添加 if ($type == 3) { // 联营批量添加
$url = Config('website.api_domain').'cart/changeNumForJoint'; $url = Config('website.api_domain').'cart/changeNumForJoint';
} else { } else {
$url = Config('website.api_domain').'cart/changeNumByOrderSystem'; $url = Config('website.api_domain').'cart/changeNumByOrderSystem';
...@@ -474,7 +524,7 @@ Class AddOrderController extends Controller ...@@ -474,7 +524,7 @@ Class AddOrderController extends Controller
$data['type'] = 4; // 自营其他业务 $data['type'] = 4; // 自营其他业务
$data['business_type'] = $request->input('business_type', 0); // 业务类型 $data['business_type'] = $request->input('business_type', 0); // 业务类型
} else { } else {
$data['type'] = $request->input('goods_type'); $data['type'] = $request->input('goods_type', 1);
} }
$data['k1'] = time(); $data['k1'] = time();
...@@ -486,9 +536,9 @@ Class AddOrderController extends Controller ...@@ -486,9 +536,9 @@ Class AddOrderController extends Controller
if ($response['err_code'] == 0) { if ($response['err_code'] == 0) {
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>$response['data']]; return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>$response['data']];
} else {
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']];
} }
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']];
} }
} }
...@@ -546,12 +596,15 @@ Class AddOrderController extends Controller ...@@ -546,12 +596,15 @@ Class AddOrderController extends Controller
public function create(Request $request) public function create(Request $request)
{ {
if ($request->isMethod('post')) { if ($request->isMethod('post')) {
$data['type'] = $request->input('type');
$data['uid'] = $request->input('uid'); $data['uid'] = $request->input('uid');
$data['sale_id'] = $request->input('sale_id'); $data['sale_id'] = $request->user->userId;
$data['address_id'] = $request->input('address_id'); $data['address_id'] = $request->input('address_id');
$data['cart_id'] = implode(',', $request->input('cart_ids')); $data['cart_id'] = implode(',', $request->input('cart_ids'));
$data['type'] = $request->input('type');
$data['remark'] = $request->input('remark'); $data['remark'] = $request->input('remark');
$data['com_id'] = $request->input('com_id', 0);
$data['com_name'] = $request->input('com_name', '');
$data['shipping_type'] = $request->input('shipping_type', 1);
if ($data['type'] == 3) { // 自营线下订单 if ($data['type'] == 3) { // 自营线下订单
$data['address_name'] = $request->input('address_name'); $data['address_name'] = $request->input('address_name');
...@@ -582,14 +635,15 @@ Class AddOrderController extends Controller ...@@ -582,14 +635,15 @@ Class AddOrderController extends Controller
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$url = Config('website.api_domain').'order/create'; $url = Config('website.api_domain').'order/create';
// dd(curlApi($url, $data));
$response = json_decode(curlApi($url, $data), true); $response = json_decode(curlApi($url, $data), true);
if ($response['err_code'] == 0) { if ($response['err_code'] == 0) {
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>['order_id' => $response['data'], 'type' => $data['type']]]; return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg'], 'data'=>['order_id' => $response['data'], 'type' => $data['type']]];
} else {
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']];
} }
return ['errcode' => $response['err_code'], 'errmsg' => $response['err_msg']];
} }
} }
...@@ -780,7 +834,7 @@ Class AddOrderController extends Controller ...@@ -780,7 +834,7 @@ Class AddOrderController extends Controller
$data['k1'] = time(); $data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi'); $data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
// dd(curlApi($url, $data, "POST"));
$temp = json_decode(curlApi($url, $data, "POST"), true); $temp = json_decode(curlApi($url, $data, "POST"), true);
return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']]; return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']];
......
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Error;
use DB;
use App\Http\Model\UserActionLogModel;
class AddressController extends Controller
{
// 添加收货地址
public function add(Request $request)
{
if ($request->isMethod('post')) {
$address_id = $request->input('address_id', 0);
$data = [
'user_id' => $request->input('user_id', 0),
'province' => $request->input('province', ''),
'city' => $request->input('city', ''),
'district' => $request->input('district', ''),
'detail_address' => $request->input('detail_address', ''),
'zipcode' => $request->input('zipcode', ''),
'intl_code' => $request->input('intl_code', ''),
'consignee' => $request->input('consignee', ''),
'mobile' => $request->input('mobile', ''),
'is_default' => $request->input('is_default', ''),
'address_type' => $request->input('address_type', 0),
'operator_id' => $request->user->userId,
];
$valid = $this->_valid($data);
if ($valid['errcode']) return $this->_valid($data);
if ($address_id) {
$data['address_id'] = $address_id;
$url = Config('website.api_domain').'address/update';
$errmsg = '编辑地址';
} else {
$url = Config('website.api_domain').'address/create';
$errmsg = '新增地址';
}
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$data['pf'] = 4;
$temp = json_decode(curlApi($url, $data, "POST"), true);
if ($temp['err_code'] != 0) return ['errcode' => Error::E_ADD_FAILED, 'errmsg' => $errmsg.'失败,'.$temp['err_msg']];
return ['errcode' => 0, 'errmsg' => $errmsg.'成功'];
}
}
// 地址
public function getRegion($region_id)
{
$region = DB::connection('member')->table('lie_region')->where('region_id', $region_id)->select('region_name')->first();
return $region ? $region->region_name : '';
}
// 获取地址信息
public function getAddressInfo(Request $request)
{
if ($request->isMethod('post')) {
$address_id = $request->input('address_id');
$info = DB::connection('member')->table('lie_user_address')->where('address_id', $address_id)->first();
if (empty($info)) return ['errcode' => Error::E_NOT_EXISTS, 'errmsg' => '未找到'];
return ['errcode' => 0, 'errmsg' => '', 'data' => $info];
}
}
//验证
private function _valid($data)
{
if (!$data['user_id']) {
return array(
'errcode' => 1,
'errmsg' => '非法操作~',
'field' => ''
);
}
if (!$data['province'] || !$data['city'] || !$data['district']) {
return array(
'errcode' => 1,
'errmsg' => '您还没选择【所在地区】~',
'field' => 'district'
);
}
if (!$data['detail_address']) {
return array(
'errcode' => 1,
'errmsg' => '您还没填写【详细地址】~',
'field' => 'detail_address'
);
}
if ($data['zipcode'] && !is_postcode($data['zipcode'])) {
return array(
'errcode' => 1,
'errmsg' => '您填写的【邮政编码】格式不正确~',
'field' => 'zipcode'
);
}
if (!$data['consignee']) {
return array(
'errcode' => 1,
'errmsg' => '您还没填写【收货人】~',
'field' => 'consignee'
);
}
if (!$data['mobile']) {
return array(
'errcode' => 1,
'errmsg' => '您还没填写【联系电话】~',
'field' => 'link_mobile'
);
}
if ($data['intl_code'] != '0086') {
$mobile = $data['intl_code'].'+'.$data['mobile'];
} else {
$mobile = $data['mobile'];
}
if (!is_mobile($mobile)) {
return array(
'errcode' => 1,
'errmsg' => '您填写的【联系电话】格式不正确~',
'field' => 'link_mobile'
);
}
return array(
'errcode' => 0,
'errmsg' => '验证通过~',
);
}
// Ajax地址列表
public function ajax_list(Request $request)
{
$addressList = array();
$map = array();
if ($request->input('user_id')) {
$map['user_id'] = $request->input('user_id', '');
}
if ($request->input('address_type') !== '') {
$map['address_type'] = $request->input('address_type', '');
}
if ($map['user_id'] && isset($map['address_type'])) {
$addressList = DB::connection('member')->table('lie_user_address')->where($map)->get();
}
if(!empty($addressList) && is_array($addressList)) {
$region = array();
foreach ($addressList as &$val) {
$region = DB::connection('member')
->table('lie_region')
->whereIn('region_id', [$val->province, $val->city, $val->district])
->select('region_id', 'region_name')
->get();
foreach ($region as $v) {
$address[$v->region_id] = $v->region_name;
}
$val->province_txt = $address[$val->province];
$val->city_txt = $address[$val->city];
$val->district_txt = $address[$val->district];
// 检查港台电话code
if ($val->intl_code && $val->intl_code != '0086') $val->mobile = $val->intl_code.'+'.$val->mobile;
}
}
$data['list'] = $addressList;
$data['isaction'] = $request->input('isaction');
return view('ajax_list', $data);
}
//设置默认地址
public function set_default(Request $request)
{
if ($request->isMethod('post')) {
$data['user_id'] = $request->input('user_id');
$data['address_id'] = $request->input('address_id');
$data['operator_id'] = $request->user->userId;
$url = Config('website.api_domain').'address/setdefault';
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$data['pf'] = 4;
$temp = json_decode(curlApi($url, $data, "POST"), true);
return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']];
}
}
// 删除地址
public function delete(Request $request)
{
if ($request->isMethod('post')) {
$data['user_id'] = $request->input('user_id');
$data['address_id'] = $request->input('address_id');
$data['operator_id'] = $request->user->userId;
$url = Config('website.api_domain').'address/delete';
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
$data['pf'] = 4;
$temp = json_decode(curlApi($url, $data, "POST"), true);
return ['errcode' => $temp['err_code'], 'errmsg' => $temp['err_msg']];
}
}
}
\ No newline at end of file
...@@ -11,6 +11,7 @@ use App\Model\Pcb\PcbPublicModel; ...@@ -11,6 +11,7 @@ use App\Model\Pcb\PcbPublicModel;
use App\Model\Pcb\PcbPurchaseModel; use App\Model\Pcb\PcbPurchaseModel;
use App\Model\Pcb\PcbServerModel; use App\Model\Pcb\PcbServerModel;
use App\Model\KefuModel; use App\Model\KefuModel;
use App\Model\CrmModel;
use App\Model\CmsModel; use App\Model\CmsModel;
use App\Model\OrderModel; use App\Model\OrderModel;
use App\Model\OrderExtendModel; use App\Model\OrderExtendModel;
...@@ -21,6 +22,7 @@ use App\Model\UserSampleApplyModel; ...@@ -21,6 +22,7 @@ use App\Model\UserSampleApplyModel;
use App\Model\OrderActionLogModel; use App\Model\OrderActionLogModel;
use App\Model\UserSampleInviteModel; use App\Model\UserSampleInviteModel;
use App\Model\UserGroupModel; use App\Model\UserGroupModel;
use App\Model\UserMainModel;
use App\Model\BrandBlackListModel; use App\Model\BrandBlackListModel;
use App\Model\PayExtendModel; use App\Model\PayExtendModel;
use Illuminate\Support\Facades\Redis; use Illuminate\Support\Facades\Redis;
...@@ -30,6 +32,8 @@ use App\Model\OrderServiceItemsModel; ...@@ -30,6 +32,8 @@ use App\Model\OrderServiceItemsModel;
use App\Model\OrderServiceLogModel; use App\Model\OrderServiceLogModel;
use App\Model\OrderRefundModel; use App\Model\OrderRefundModel;
use App\Model\OrderRefundLogModel; use App\Model\OrderRefundLogModel;
use DB;
use App\Model\Frq\InquiryItemsReportModel;
class ApiController extends Controller class ApiController extends Controller
{ {
...@@ -508,6 +512,208 @@ class ApiController extends Controller ...@@ -508,6 +512,208 @@ class ApiController extends Controller
$this->Export($temp['err_code'], $temp['err_msg'], $temp['data']); $this->Export($temp['err_code'], $temp['err_msg'], $temp['data']);
} }
// 获取用户信息
public function getUserInfo($request)
{
$inv_com_name = $request->input('inv_com_name', '');
$account = $request->input('account', '');
$com_id = 0;
$user_id = 0;
$inv_com_name && $com_id = DB::connection('order')->table('lie_invoice_company')->where('com_name', $inv_com_name)->value('id');
if ($account) {
$field = preg_match('/@/', $account) ? 'email' : 'mobile';
$user_id = DB::connection('order')->table('lie_user_main')->where($field, $account)->value('user_id');
}
// 公司和联系方式都存在
if ($inv_com_name && $account) {
if (!$com_id) $this->Export(-1, '当前公司不存在');
if (!$user_id) $this->Export(-1, '当前联系方式不存在');
// 判断当前公司和登录用户是否存在于关联表
$map = [];
$map['com_id'] = $com_id;
$map['user_id'] = $user_id;
$map['sale_id'] = $request->user->userId;
$map['status'] = 0;
$id = DB::connection('order')->table('lie_invoice_com_user')->where($map)->value('id');
if (!$id) $this->Export(-1, '当前公司、联系方式与客服不存在绑定关系');
$this->Export(0, '', ['com_id'=>$com_id, 'user_id'=>$user_id, 'account'=>$account]);
}
// 公司存在,联系方式不存在
if ($inv_com_name && !$account) {
if (!$com_id) $this->Export(-1, '当前公司不存在');
// 判断当前公司和登录用户是否存在于关联表
$map = [];
$map['com_id'] = $com_id;
$map['sale_id'] = $request->user->userId;
$map['status'] = 0;
$uid = DB::connection('order')->table('lie_invoice_com_user')->where($map)->value('user_id');
if (!$uid) $this->Export(-1, '当前公司未绑定联系人');
$UserMainModel = new UserMainModel;
$user_info = $UserMainModel->getUserAccount($uid);
$user_account = $user_info['mobile'] ? $user_info['mobile'] : $user_info['email'];
$this->Export(0, '', ['com_id'=>$com_id, 'user_id'=>$uid, 'account'=>$user_account]);
}
// 公司不存在,联系方式存在
if (!$user_id) $this->Export(-1, '当前联系方式不存在');
// 判断会员是否与当前登录账号绑定
if (strpos($_SERVER['HTTP_HOST'], 'sz') === false) { // 非测试环境下执行
// 若用户已分配,则判断当前登录客服是否能给用户下单,若没分配,按之前流程,订单生成时分配给当前登录客服
$CrmModel = new CrmModel();
$sale_id = $CrmModel->getSaleId($user_id);
if ($sale_id && $sale_id != $request->user->userId) {
$CmsModel = new CmsModel();
$sale_name = $CmsModel->getUserName($sale_id);
$this->Export(-1, '该客户由 '.$sale_name.' 跟进,请联系主管重新指派');
}
}
$this->Export(0, '', ['com_id'=>'', 'user_id'=>$user_id, 'account'=>$account]);
}
// 获取用户绑定客服、发票
public function getUserInvoice($request)
{
$com_id = $request->input('com_id', '');
$user_id = $request->input('user_id', 0);
$invoice_type = $request->input('invoice_type', 2);
$curr_user_id = $request->user->userId;
$tax_info = [];
if (!$user_id) $this->Export(-1, '未填写联系方式');
// 个人发票
if ($invoice_type == 2) {
$where = [];
$where['user_id'] = $user_id;
$where['inv_type'] = 2;
$tax_info = DB::connection('order')->table('lie_taxinfo')->where($where)->select('tax_title', 'tax_id')->get();
$this->Export(0, '', $tax_info);
}
if (!$com_id) $this->Export(-1, '未填写当前发票/公司');
$com_name = DB::connection('order')->table('lie_invoice_company')->where('id', $com_id)->value('com_name');
if (!$com_name) $this->Export(-1, '当前公司不存在');
$invoice = DB::connection('order')->table('lie_taxinfo')->where(['tax_title'=>$com_name, 'inv_type'=>$invoice_type])->first();
$tax_info['tax_id'] = isset($invoice) ? $invoice->tax_id : 0;
$tax_info['tax_title'] = isset($invoice) ? $invoice->tax_title : '';
$tax_info['tax_no'] = isset($invoice) ? $invoice->tax_no : '';
if ($invoice_type == 4) $this->Export(0, '', $tax_info); // 增值税普票
$tax_info['com_addr'] = isset($invoice) ? $invoice->company_address : '';
$tax_info['com_tel'] = isset($invoice) ? $invoice->company_phone : '';
$tax_info['com_bank'] = isset($invoice) ? $invoice->bank_name : '';
$tax_info['com_bank_num'] = isset($invoice) ? $invoice->bank_account : '';
$tax_info['consignee'] = isset($invoice) ? $invoice->consignee : '';
$tax_info['consignee_phone'] = isset($invoice) ? $invoice->consignee_phone : '';
$tax_info['consignee_addr'] = isset($invoice) ? $invoice->consignee_address : '';
$this->Export(0, '', $tax_info); // 增值税专票
}
// 获取用户收货地址
public function getUserAddress($request)
{
$user_id = $request->input('user_id', 0);
if (!$user_id) $this->Export(-1, '用户ID缺失');
$map = [];
$map['user_id'] = $user_id;
$map['address_type'] = 0;
$address = DB::connection('order')->table('lie_user_address')->where($map)->get();
if (empty($address)) $this->Export(-1, '未获取到用户收货地址');
foreach ($address as &$v) {
$province_val = $this->getAddress($v->province);
$city_val = $this->getAddress($v->city);
$district_val = $this->getAddress($v->district);
$v->address = $province_val.$city_val.$district_val.$v->detail_address;
}
$this->Export(0, '', $address);
}
// 查询省市区
public function getAddress($id)
{
return DB::connection('order')->table('lie_region')->where('region_id', $id)->value('region_name');
}
// 导入销售报价物料
public function importGoods($request)
{
$user_id = $request->input('user_id', 0);
$report_ids = $request->input('report_ids', '');
if (!$user_id || !$report_ids) $this->Export(-1, '参数缺失');
$report_ids = explode(',', $report_ids);
$InquiryItemsReportModel = new InquiryItemsReportModel;
$inquiry = $InquiryItemsReportModel->getData($report_ids);
if (empty($inquiry)) $this->Export(-2, '未获取到销售报价明细');
$items = [];
foreach ($inquiry as $k=>$v) {
$goods_price = $v['currency'] == 1 ? $v['price_rmb'] : $v['price_origin'];
if ($goods_price <= 0) $this->Export(-3, '导入销售报价明细,商品:'.$v['goods_name'].' 单价不能为0');
if ($v['inquiry_number'] <= 0) $this->Export(-3, '导入销售报价明细,商品:'.$v['goods_name'].' 数量不能为0');
$items[$k]['id'] = $v['goods_id'];
$items[$k]['goods_name'] = $v['goods_name_pro'];
$items[$k]['brand_name'] = $v['brand_name'];
$items[$k]['supplier_name'] = $v['supplier_name'];
$items[$k]['num'] = $v['inquiry_number'];
$items[$k]['goods_price'] = $goods_price;
$items[$k]['delivery_time'] = $v['delivery_time'];
$items[$k]['buyer_id'] = $v['quote_name'];
$items[$k]['remarks'] = '';
$items[$k]['batch'] = $v['batch'];
$items[$k]['raw_goods_sn'] = $v['raw_goods_sn'];
$items[$k]['raw_goods_packing'] = $v['raw_goods_packing'];
$items[$k]['raw_brand_name'] = $v['raw_brand_name'];
}
$delivery_place = $inquiry[0]['currency'] == 1 ? 1 : 2;
// 推送到API
$data['data'] = $items;
$data['operator_id'] = $request->user->userId;
$data['operator_name'] = $request->user->name;
$data['type'] = 4; // 批量导入销售报价
$data['uid'] = $user_id;
$data['delivery_place'] = $delivery_place;
$url = Config('website.api_domain').'cart/addBatchByOrderSystem';
$data['k1'] = time();
$data['k2'] = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');
// dd($data);
$temp = json_decode(curlApi($url, $data, "POST"), true);
$this->Export($temp['err_code'], $temp['err_msg'], $delivery_place);
}
} }
...@@ -203,6 +203,10 @@ function getOrderSource($order_id, $order_type=1, $order_goods_type=1) ...@@ -203,6 +203,10 @@ function getOrderSource($order_id, $order_type=1, $order_goods_type=1)
$source = '移动端'; $source = '移动端';
} else if (preg_match('/pf=6/', $order_source->order_source)) { } else if (preg_match('/pf=6/', $order_source->order_source)) {
$source = '小程序'; $source = '小程序';
} else if (preg_match('/pf=8/', $order_source->order_source)) {
$source = '询报价平台';
} else if (preg_match('/pf=9/', $order_source->order_source)) {
$source = '云芯平台';
} else { } else {
$source = '平台'; $source = '平台';
} }
......
...@@ -508,3 +508,29 @@ function post_curl($url, $data, $headers = array(), $cookie ="") ...@@ -508,3 +508,29 @@ function post_curl($url, $data, $headers = array(), $cookie ="")
curl_close($ch); curl_close($ch);
return $output; return $output;
} }
/**
* 判断是否手机
* @param [type] $mobile [description]
* @return boolean [description]
*/
function is_mobile($mobile)
{
if (strstr($mobile, "+")) { // 国际手机
$res = explode("+", $mobile);
if (intval(strlen($res[1])) > 4 && strval($res[0]) !== '0086') {
return true;
}
if (strval(strlen($res[1])) === '11' && strval($res[0]) === '0086') {
return true;
}
} else if (preg_match("/^1[123456789]{1}\d{9}$/", $mobile)) {
return true;
}
return false;
}
// 验证邮编
function is_postcode($str) {
return preg_match('/^[1-9]\d{5}$/', $str) ? true : false;
}
\ No newline at end of file
...@@ -90,6 +90,7 @@ Route::group(['middleware' => 'web'], function () { ...@@ -90,6 +90,7 @@ Route::group(['middleware' => 'web'], function () {
Route::post('/ajax/orderServiceApply', 'OrderController@orderServiceApply'); Route::post('/ajax/orderServiceApply', 'OrderController@orderServiceApply');
Route::get('/add_order', 'AddOrderController@addOrder'); Route::get('/add_order', 'AddOrderController@addOrder');
Route::get('/add_inquiry_order', 'AddOrderController@addInquiryOrder');
Route::post('/ajax/getUserInfo', 'AddOrderController@getUserInfo'); Route::post('/ajax/getUserInfo', 'AddOrderController@getUserInfo');
Route::post('/ajax/selectAddr', 'AddOrderController@selectAddr'); Route::post('/ajax/selectAddr', 'AddOrderController@selectAddr');
Route::post('/ajax/selectInv', 'AddOrderController@selectInv'); Route::post('/ajax/selectInv', 'AddOrderController@selectInv');
...@@ -103,6 +104,7 @@ Route::group(['middleware' => 'web'], function () { ...@@ -103,6 +104,7 @@ Route::group(['middleware' => 'web'], function () {
Route::post('/ajax/getSku', 'AddOrderController@getSku'); Route::post('/ajax/getSku', 'AddOrderController@getSku');
Route::post('/ajax/addCart', 'AddOrderController@addCart'); Route::post('/ajax/addCart', 'AddOrderController@addCart');
Route::post('/ajax/cartList', 'AddOrderController@cartList'); Route::post('/ajax/cartList', 'AddOrderController@cartList');
Route::post('/ajax/getOrderGift', 'AddOrderController@getOrderGift');
Route::post('/ajax/changeNum', 'AddOrderController@changeNum'); Route::post('/ajax/changeNum', 'AddOrderController@changeNum');
Route::post('/ajax/deleteGoods', 'AddOrderController@deleteGoods'); Route::post('/ajax/deleteGoods', 'AddOrderController@deleteGoods');
Route::post('/ajax/create', 'AddOrderController@create'); Route::post('/ajax/create', 'AddOrderController@create');
...@@ -148,7 +150,7 @@ Route::group(['middleware' => 'web'], function () { ...@@ -148,7 +150,7 @@ Route::group(['middleware' => 'web'], function () {
Route::post('/ajax/batchImportBlackList', 'AddOrderController@batchImportBlackList'); Route::post('/ajax/batchImportBlackList', 'AddOrderController@batchImportBlackList');
Route::post('/address/add', 'AddressController@add');
//bom单 //bom单
Route::match(['get', 'post'],'/ajax/bom/{key}', 'BomApiController@Entrance'); Route::match(['get', 'post'],'/ajax/bom/{key}', 'BomApiController@Entrance');
......
...@@ -43,9 +43,15 @@ class CmsModel extends Model ...@@ -43,9 +43,15 @@ class CmsModel extends Model
/* /*
批量查询用户姓名 批量查询用户姓名
*/ */
public function getBatchUserName($user_ids){ public function getBatchUserName($user_ids)
{
return $this->whereIn('userId',$user_ids)->select('userId','name','email')->get()->toArray(); return $this->whereIn('userId',$user_ids)->select('userId','name','email')->get()->toArray();
} }
// 获取后台公司组织
public function getCompany()
{
return $this->from('lie_organization')->where('status', 1)->select('com_name', 'com_currency', 'id')->get()->keyBy('id')->toArray();
}
} }
\ No newline at end of file
<?php
namespace App\Model\Frq;
use Illuminate\Database\Eloquent\Model;
class InquiryItemsReportModel extends Model
{
protected $connection = 'frq';
protected $table = 'inquiry_items_report';
protected $primaryKey = 'id';
public $timestamps = false;
// 获取指定销售报价
public function getData($id)
{
if (is_array($id)) return $this->whereIn('id', $id)->get()->toArray();
return $this->where('id', $id)->first();
}
}
\ No newline at end of file
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
class InvoiceComUserModel extends Model
{
protected $connection = 'order';
protected $table = 'lie_invoice_com_user';
protected $guarded = ['id'];
protected $primaryKey = 'id';
public $timestamps = true;
const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time';
public function fromDateTime($value)
{
return strtotime(parent::fromDateTime($value));
}
}
\ No newline at end of file
...@@ -109,6 +109,7 @@ return [ ...@@ -109,6 +109,7 @@ return [
'prefix' => 'lie_', 'prefix' => 'lie_',
'strict' => false, 'strict' => false,
], ],
'bom' => [ 'bom' => [
'driver' => 'mysql', 'driver' => 'mysql',
'host' => env('DB_HOST_BOM', ''), 'host' => env('DB_HOST_BOM', ''),
...@@ -121,6 +122,20 @@ return [ ...@@ -121,6 +122,20 @@ return [
'prefix' => 'lie_', 'prefix' => 'lie_',
'strict' => false, 'strict' => false,
], ],
'frq' => [
'driver' => 'mysql',
'host' => env('DB_HOST_RFQ', ''),
'database' => env('DB_DATABASE_RFQ', ''),
'username' => env('DB_USERNAME_RFQ', ''),
'password' => env('DB_PASSWORD_RFQ', ''),
'port' => env('DB_PORT_RFQ', 3306),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'lie_',
'strict' => false,
],
'sqlite' => [ 'sqlite' => [
'driver' => 'sqlite', 'driver' => 'sqlite',
'database' => database_path('database.sqlite'), 'database' => database_path('database.sqlite'),
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
10 => '交易成功', 10 => '交易成功',
], ],
// 订单付款方式
'order_pay_type' => [ 'order_pay_type' => [
1 => '全款', 1 => '全款',
2 => '预付款', 2 => '预付款',
...@@ -19,6 +20,19 @@ ...@@ -19,6 +20,19 @@
4 => '货到猎芯付款', 4 => '货到猎芯付款',
], ],
// 订单来源
'order_source_pf' => [
1 => 'PC端',
2 => '移动端',
3 => '后台',
4 => '京东',
5 => 'ERP',
6 => '小程序',
7 => '开放平台',
8 => '询报价平台',
9 => '云芯平台',
],
// 支付方式 // 支付方式
'order_paid_name' => [ 'order_paid_name' => [
1 => '微信支付', 1 => '微信支付',
......
layui.config({
base: '/js/' //假设这是你存放拓展模块的根目录
}).use(['form', 'table', 'element', 'region'], function() {
var form = layui.form;
var table = layui.table;
var element = layui.element;
var region = layui.region;
form.on('select(product_use_classone_sn)', function(data) {
$('.product_use_classtwo_sn').html('');
for(let key in dgk_info){
if(key == data.value){
for(var i = 0; i < dgk_info[key].length; i++){
$('.product_use_classtwo_sn').append('<option value="'+i+'">'+dgk_info[key][i]+'</option>')
}
}
}
form.render('select', 'product_use_classtwo_sn');
})
// 选择发票类型
form.on('radio(invoice_type)', function(data) {
var val = data.value;
if (!val) {
$('.tax_id').val('');
$('.invoice-section-2').hide();
$('.invoice-section-3').hide();
$('.invoice-section-4').hide();
$('.inv-com-section').hide();
return false;
}
switch (val) {
case '2':
$('.invoice-section-2').show();
$('.invoice-section-3').hide();
$('.invoice-section-4').hide();
$('.inv-com-section').show();
break;
case '3':
$('.invoice-section-3').show();
$('.invoice-section-2').hide();
$('.invoice-section-4').hide();
$('.inv-com-section').show();
break;
case '4':
$('.invoice-section-4').show();
$('.invoice-section-2').hide();
$('.invoice-section-3').hide();
$('.inv-com-section').show();
break;
}
checkBindUser();
})
// 公司、账号输入后,赋值ID,并检查绑定客服、发票
$('.inv-user-info').blur(function() {
if (!($(this).val())) return false;
var inv_com_name = $('.inv_com_name').val();
var account = $('.account').val();
var datax = {
inv_com_name: inv_com_name,
account: account,
};
$.ajax({
type: "POST",
url: '/api/getUserInfo',
data: datax,
dataType: "json",
success: function(resp){
if (resp.errcode != 0) {
$('.inv_com_id').val('');
$('.user_id').val('');
layer.msg(resp.errmsg);
return false;
}
$('.inv_com_id').val(resp.data.com_id);
$('.user_id').val(resp.data.user_id);
$('.account').val(resp.data.account);
checkBindUser();
if ($('.user_id').val() && resp.data && report_ids) { // 会员ID、销售报价ID存在
importGoods(resp.data.user_id, report_ids);
return false;
}
renderTable();
}
})
})
// 检查绑定客服、发票
function checkBindUser(com_id, user_id, invoice_type)
{
var user_id = $('.user_id').val();
var inv_com_id = $('.inv_com_id').val();
var invoice_type = $('input[name=inv_type]:checked').val();
if (!invoice_type) return false;
if (!user_id && !inv_com_id) return false;
var datax = {};
datax.com_id = inv_com_id;
datax.user_id = user_id;
datax.invoice_type = invoice_type;
$.ajax({
type: "POST",
url: '/api/getUserInvoice',
data: datax,
dataType: "json",
success: function(resp){
if (resp.errcode != 0) {
layer.msg(resp.errmsg);
$('.tax_id').val('');
return false;
}
var data = resp.data;
if (invoice_type == 2) {
var str = '<option value="">请选择</option>';
for(var i = 0; i < data.length; i++) {
str += '<option value="'+data[i].tax_id+'">'+data[i].tax_title+'</option>';
}
$('#user_tax_id').empty().append(str);
form.render('select', 'user-tax');
} else if (invoice_type == 3) { // 增值税专票
$('.tax_title').text(data.tax_title);
$('.tax_no').text(data.tax_no);
$('.com_addr').text(data.com_addr);
$('.com_tel').text(data.com_tel);
$('.com_bank').text(data.com_bank);
$('.com_bank_num').text(data.com_bank_num);
$('.consignee').text(data.consignee);
$('.consignee_phone').text(data.consignee_phone);
$('.consignee_addr').text(data.consignee_addr);
$('.tax_id').val(data.tax_id);
} else if (invoice_type == 4) { // 增值税普票
$('.tax_title_1').text(data.tax_title);
$('.tax_no_1').text(data.tax_no);
$('.tax_id').val(data.tax_id);
}
},
})
}
// importGoods(70132, '48,49');
// 导入销售报价的物料
function importGoods(user_id, report_ids)
{
var datax = {};
datax.user_id = user_id;
datax.report_ids = report_ids;
$.ajax({
type: "POST",
url: '/api/importGoods',
data: datax,
dataType: "json",
success: function(resp){
if (resp.errcode != 0) {
layer.alert(resp.errmsg);
return false;
}
layer.msg('导入销售报价明细成功');
// 交货地
var currency_sign = resp.data == 1 ? 'RMB' : 'USD';
$('.currency-sign').text(currency_sign);
$('.com_id').val(resp.data);
form.render('select', 'com_id');
$('.delivery_place').val(resp.data);
form.render('select', 'delivery_place');
renderTable();
}
})
}
// 选择个人发票
form.on('select(user_tax_id)', function(data) {
$('.tax_id').val(data.value)
})
// 选择销售组织
// form.on('select(com_id)', function(data) {
// var val = data.value;
// if (val == '') {
// $('.currency-sign').text('');
// $('.currency-section').hide();
// $('.delivery_place').val('');
// form.render('select', 'delivery_place');
// return false;
// }
// var currency = $(data.elem).find("option:selected").attr('currency');
// var currency_sign = '';
// var delivery_place = 0;
// if (currency == 1) {
// currency_sign = 'RMB';
// delivery_place = 1;
// } else {
// currency_sign = 'USD';
// delivery_place = 2;
// }
// $('.currency-sign').text(currency_sign);
// $('.currency-section').show();
// $('.delivery_place').val(delivery_place);
// form.render('select', 'delivery_place');
// renderTable();
// })
form.on('select(com_id)', function(data) {
var val = data.value;
currency_sign = val == 1 ? 'RMB' : 'USD';
$('.currency-sign').text(currency_sign);
$('.delivery_place').val(val);
form.render('select', 'delivery_place');
renderTable();
})
// 选择收货方式
form.on('radio(shipping_type)', function(data) {
if (data.value == 2) { // 自提
$('.address-select').hide();
return false;
} else {
$('.address-select').show();
}
// 快递
getUserAddress();
})
// 获取快递地址
function getUserAddress()
{
var user_id = $('.user_id').val();
if (!user_id) return false;
var datax = {};
datax.user_id = user_id;
$.ajax({
type: "POST",
url: '/api/getUserAddress',
data: datax,
dataType: "json",
success: function(resp){
console.log(resp)
if (resp.errcode == 0) {
var data = resp.data;
var str = '<option value="">请选择</option>';
for(var i = 0; i < data.length; i++) {
str += '<option value="'+data[i].address_id+'" mobile="'+data[i].mobile+'" addr="'+data[i].address+'">'+data[i].consignee+'</option>';
}
$('.address').empty().append(str);
form.render('select', 'user-address');
$('.address-select').show();
return false;
}
},
})
}
// 选择收货地址
form.on('select(address-val)', function(data) {
$('.address_id').val(data.value);
if (!(data.value)) {
$('.address-consignee').text('');
$('.address-mobile').text('');
$('.address-detail').text('');
$('.address-section').hide();
return false;
}
var consignee = $(data.elem).find("option:selected").text();
var mobile = $(data.elem).find("option:selected").attr("mobile");
var addr = $(data.elem).find("option:selected").attr("addr");
$('.address-consignee').text(consignee);
$('.address-mobile').text(mobile);
$('.address-detail').text(addr);
$('.address-section').show();
})
// 添加收货地址
$(document).delegate('.add-address', 'click', function() {
var user_id = $('.user_id').val() || 0;
if (!user_id) {
layer.msg('未填写联系方式,无法添加地址');
return false;
}
$('.detail_address').val('');
$('.zipcode').val('');
$('.consignee').val('');
$('.link_mobile').val('');
$('.is_default').prop('checked', false);
form.render('checkbox', 'is_default');
layer.open({
id: 'add-address-pop',
type: 1,
title: '新增收货地址',
area: ['800px'],
content: $('#user-address-pop'),
btn: ['确定', '取消'],
btn1: function(index) {
var provinceObj = $('.layui-layer-content').find('.province');
var cityObj = $('.layui-layer-content').find('.city');
var districtObj = $('.layui-layer-content').find('.district');
var detail_addressObj = $('.layui-layer-content').find('.detail_address');
var zipcodeObj = $('.layui-layer-content').find('.zipcode');
var intl_codeObj = $('.layui-layer-content').find('#intl_code');
var consigneeObj = $('.layui-layer-content').find('.consignee');
var link_mobileObj = $('.layui-layer-content').find('.link_mobile');
$.ajax({
type: 'post',
url: '/address/add',
data: {
user_id: user_id,
province: provinceObj.val()||0,
city: cityObj.val()||0,
district: districtObj.val()||0,
detail_address: detail_addressObj.val()||'',
zipcode: zipcodeObj.val()||'',
intl_code: intl_codeObj.val()||'0086',
consignee: consigneeObj.val()||'',
mobile: link_mobileObj.val(),
is_default: $('input[name="is_default"]').is(':checked') ? 1 : 0,
},
dataType: 'json',
success: function(resp){
if (!resp) {
return layer.msg('网络异常,请稍后再试~');
}
if (resp.errcode != 0) {
layer.msg(resp.errmsg);
return false;
}
layer.close(index);
layer.msg(resp.errmsg);
getUserAddress();
}
});
},
btn2: function(index) {
layer.close(index)
}
});
region.init('#user-address-pop');
form.render('select', 's_region');
})
// 省
form.on('select(s_province)', function(data) {
region.makeRegionHtml(2, data.value);
form.render('select', 's_region');
})
// 市
form.on('select(s_city)', function(data) {
region.makeRegionHtml(3, data.value);
form.render('select', 's_region');
})
// 获取SKU信息
$('.get-sku').click(function() {
var sku_id = $(this).siblings('.layui-input-inline').find('.search-sku').val();
var user_id = $('.user_id').val() || 0;
if (!sku_id) {
layer.msg('请输入SKU_ID');
return false;
}
if (!/^\d*$/.test(sku_id)) {
layer.msg('参数错误,请输入正确的SKU_ID');
return false;
}
$.ajax({
url: '/ajax/getSku',
type: 'post',
data: {sku_id : sku_id.trim(), user_id: user_id},
dataType: 'json',
success: function (resp) { console.log(resp)
if (resp.errcode != 0) {
console.log(resp.data)
layer.msg(resp.errmsg);
return false;
}
$('.sku-info').show();
var data = resp.data;
var status_val = '';
$('.goods_name').text(data.goods_name);
$('.brand_name').text(data.brand_name);
$('.supplier_name').text(data.supplier_name);
$('.stock').text(data.goods_number);
$('.moq').text(data.min_buy);
$('.mpq').text(data.min_mpq);
if(data.self_supplier_type == 1){
$('.self_supplier_type').text('自采');
}else if(data.self_supplier_type == 2){
$('.self_supplier_type').text('立创');
}else{
$('.self_supplier_type').text('自采');
}
status_val = data.is_buy ? '是' : '否';
$('.status').text(status_val);
$('.goods_id').val(data.goods_id);
$('.goods_type').val(data.goods_type);
//阶梯价格
if (data.tiered != null) {
var len = data.tiered.length;
if (len > 0) {
var html = '';
html += '<tr><th>阶梯</th><th>RMB价格</th>';
if (data.ac_type && data.ac_type != 5) { // ac_type = 5 为新客价,目前后台不展示新客价
switch (data.ac_type) {
case 1: html += '<th>限时限量</th>'; break;
case 2: html += '<th>活动价</th>'; break;
case 3: html += '<th>会员价</th>'; break;
case 6: html += '<th>自营清库存</th>'; break;
case 7: html += '<th>团购价</th>'; break;
case 8: html += '<th>折扣价</th>'; break;
case 10: html += '<th>活动打折</th>'; break;
default: html += '<th></th>'; break;
}
}
var joint_goods_type = ['1', '2']; // 商品联营类型
if (joint_goods_type.indexOf(data.goods_type) != -1) {
html += '<th>USD价格</th>';
}
html += '</tr>';
for (var i = 0; i < len; i++) {
html += '<tr>';
if (i == 0) {
if (data.ac_type && data.ac_type != 5) {
html += '<td><span class="goods-min-num">'+data.tiered[i]['purchases']+'</span></td><td>¥<span class="goods-min-price price-line">'+data.tiered[i]['price_cn']+'</span><td>¥<span>'+data.tiered[i]['price_ac']+'</span></td>';
} else {
html += '<td><span class="goods-min-num">'+data.tiered[i]['purchases']+'</span></td><td>¥<span class="goods-min-price">'+data.tiered[i]['price_cn']+'</span></td>';
}
if (joint_goods_type.indexOf(data.goods_type) != -1) {
html += '<td>$<span class="goods-min-price-us">'+data.tiered[i]['price_us']+'</span></td>';
}
} else {
if (data.ac_type && data.ac_type != 5) {
html += '<td><span>'+data.tiered[i]['purchases']+'</span></td><td>¥<span class="price-line">'+data.tiered[i]['price_cn']+'</span></td><td>¥<span>'+data.tiered[i]['price_ac']+'</span></td>';
} else {
html += '<td><span>'+data.tiered[i]['purchases']+'</span></td><td>¥<span>'+data.tiered[i]['price_cn']+'</span></td>';
}
if (joint_goods_type.indexOf(data.goods_type) != -1) {
html += '<td>$<span>'+data.tiered[i]['price_us']+'</span></td>';
}
}
html += '</tr>';
}
// $('.ladder_price_table tr:gt(0)').remove();
$('.ladder_price_table').empty().append(html);
}
}
}
})
})
// 添加到商品列表
$('.add-to-lists').click(function() {
var goods_min_num = $(this).parents('.sku-info').find('.moq').text();
var goods_id = $(this).siblings('.goods_id').val();
var type = $(this).siblings('.goods_type').val();
var delivery_place = 1; // 1.大陆,2.香港 自营默认是大陆
var user_id = 0;
user_id = $('.user_id').val();
if (!user_id) {
layer.msg('请先选择用户');
return false;
}
delivery_place = $('.delivery_place').val();
if (delivery_place == null) {
layer.msg('请选择交货地');
return false;
}
var goods_min_price = $(this).parents('.sku-info').find('.goods-min-price').text();
var goods_min_price_us = $(this).parents('.sku-info').find('.goods-min-price-us').text();
if (delivery_place == 1) {
if (goods_min_price == 0) {
layer.msg('缺少RMB价格,商品添加失败');
return false;
}
} else if (delivery_place == 2) {
if (goods_min_price_us == 0) {
layer.msg('缺少美金价格,商品添加失败');
return false;
}
}
var datax = {
uid: user_id,
id: goods_id,
num: goods_min_num,
buy: -1,
delivery_place: delivery_place,
}
$.ajax({
type: "POST",
url: '/ajax/addCart',
data: datax,
dataType: "json",
success: function(resp){
layer.msg(resp.errmsg);
renderTable();
return false;
},
})
})
// 批量导入物料
$('.goods_import').click(function() {
var user_id = $('.user_id').val() ? $('.user_id').val() : 0;
var delivery_place = $('.delivery_place').val() ? $('.delivery_place').val() : 1; // 1.大陆,2.香港 自营默认是大陆
if (!user_id) {
layer.msg('请先选择用户');
return false;
}
// 上传文件
var form = $('<form id="formUpload" method="post" enctype="multipart/form-data">\
<input type="file" name="upload" id="fileInput" accept="application/vnd.ms-excel, application/x-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, .csv">\
</form>');
var type = $(this).data('type'); // 1-联营模板,2-自营模板
form.find('input').change(function(){
var formData = new FormData();
formData.append('file', this.files[0]);
formData.append('type', type);
formData.append('user_id', user_id);
formData.append('delivery_place', delivery_place);
$.ajax({
type: "POST",
url: '/ajax/batchGoodsImport',
data: formData,
dataType: 'json',
cache: false,
processData: false,
contentType: false,
success: function(resp){
if (resp.errcode == 0) {
layer.msg(resp.errmsg);
renderTable();
return false;
}
layer.alert(resp.errmsg);
},
})
layer.msg('批量导入中...', {icon: 16, time: 0, shade: 0.3});
})
form.find('input[type="file"]').trigger('click');
})
// 提交订单
$('.submit-order').off().on('click', function() {
var self = $(this);
var type = self.data('type'); // 1-联营线上,2-自营线上,3-自营线下,4-自营其他业务
var inv_type = $('input[name=inv_type]:checked').val(); // 开票方式
var inv_com_name = $('.inv_com_name').val();
var user_id = $('.user_id').val() || 0;
var tax_id = $('.tax_id').val() || 0;
var zy_delivery_type = $('.zy_delivery_type').val() || 0;
var com_id = $('.com_id').val(); // 公司ID
var com_name = $('.com_id').find("option:selected").text() || ''; // 公司名称
var shipping_type = $('input[name=shipping_type]:checked').val(); // 收货方式
var address_id = $('.address_id').val() || 0; // 收货地址
var remark = $('#remark').val() || ''; // 订单备注
var user_coupon_id = $('.user_coupon_id').val() || 0;
if (typeof(inv_type) == 'undefined') {
layer.msg('请选择开票方式');
return false;
}
if ((inv_type == 3 || inv_type == 4) && !inv_com_name) {
layer.msg('请填写发票公司');
return false;
}
if (inv_type && !tax_id) {
layer.msg('请选择发票信息');
return false;
}
if (!user_id) {
layer.msg('用户不存在');
return false;
}
if (inv_type == 3) { // 增值税专票
var tax_title = $('.tax_title').text();
var tax_no = $('.tax_no').text();
var com_bank = $('.com_bank').text();
var com_bank_num = $('.com_bank_num').text();
var com_tel = $('.com_tel').text();
var com_addr = $('.com_addr').text();
if (!tax_title) {
layer.msg('发票信息不完善:无发票抬头');
return false;
}
if (!tax_no) {
layer.msg('发票信息不完善:无税务登记号');
return false;
}
if (!com_bank) {
layer.msg('发票信息不完善:无开户银行');
return false;
}
if (!com_bank_num) {
layer.msg('发票信息不完善:无银行卡号');
return false;
}
if (!com_tel) {
layer.msg('发票信息不完善:无公司电话');
return false;
}
if (!com_addr) {
layer.msg('发票信息不完善:无注册地址');
return false;
}
} else if (inv_type == 4) { // 增值税普票
var tax_title = $('.tax_title_1').text();
var tax_no = $('.tax_no_1').text();
if (!tax_title) {
layer.msg('发票信息不完善:无发票抬头');
return false;
}
if (!tax_no) {
layer.msg('发票信息不完善:无税务登记号');
return false;
}
}
if (!zy_delivery_type) {
layer.msg('请选择发货方式');
return false;
}
if (!com_id) {
layer.msg('请选择销售组织');
return false;
}
if (zy_delivery_type == 1 && typeof(shipping_type) == 'undefined') {
layer.msg('请选择收货方式');
return false;
}
if (zy_delivery_type == 1 && !address_id) {
layer.msg('现货优先发货时,请选择快递上门,并选择收货地址');
return false;
}
var is_dgk = false;
if ($('.client-info').css('display') == 'block') {
is_dgk = true;
}
if (cart_ids.length == 0) {
layer.msg('请先添加商品');
return false;
}
var datax = {
type: type,
uid: user_id,
tax_id: tax_id,
zy_delivery_type: zy_delivery_type,
com_id: com_id,
com_name: com_name,
shipping_type: shipping_type,
address_id: address_id,
remark: remark,
user_coupon_id: user_coupon_id,
cart_ids: cart_ids,
}
if (is_dgk) { // 联营包含digikey商品,则填写终端资料
var customer_cn = $('.customer_cn').val();
var customer_en = $('.customer_en').val();
var customer_type = $('.customer_type').val();
var product_use_classone_sn = $('.product_use_classone_sn').val();
var product_use_classtwo_sn = $('.product_use_classtwo_sn').val();
var customer_website = $('.customer_website').val();
if (!customer_cn) {
layer.msg('请填写终端中文名称');
return false;
}
if (customer_type == '') {
layer.msg('请选择客户类型');
return false;
}
if (customer_type == 1) { // 若客户类型为终端,则外文名称,产品用途和网址为必填
if (!customer_en) {
layer.msg('请填写终端英文名称');
return false;
}
var en_reg = /^[a-zA-Z0-9\.\-\s\,\(\)]+$/;
if(!en_reg.test(customer_en)){
layer.msg('请填写全英文名称');
return false;
}
if (product_use_classone_sn == '') {
layer.msg('请选择产品用途一级分类');
return false;
}
if (!customer_website) {
layer.msg('请填写客户网址');
return false;
}
}
datax.customer_cn = customer_cn;
datax.customer_en = customer_en;
datax.customer_type = customer_type;
datax.product_use_classone_sn = product_use_classone_sn;
datax.product_use_classtwo_sn = product_use_classtwo_sn;
datax.customer_website = customer_website;
}
$.ajax({
type: "POST",
url: '/ajax/create',
data: datax,
dataType: "json",
success: function(resp){
if (resp.errcode == 0) {
layer.msg(resp.errmsg);
location.href = '/addorder/success?order_id='+resp.data.order_id+'&type='+resp.data.type;
return false;
} else if (resp.errcode == 21024) {
layer.alert('该用户已进入公司黑名单,具体请联系吴承义,同时订单无法提交');
return false;
} else if (resp.errcode == 21030) {
layer.alert(resp.errmsg, function() {
var delivery_place = $('.delivery_place').val();
loading.lists(user_id, goods_type, is_online, delivery_place); // 加载购物车列表
loading.confirm(user_id, address_id, cart_ids, user_coupon_id, goods_type, is_online); // 确认订单信息
});
return false;
}
layer.alert(resp.errmsg);
},
})
layer.msg('订单生成中...', {icon: 16, time: 0, shade: 0.3});
})
var cart_ids = [];
var renderTable = function () {
table.render({
id: 'list'
,elem: '#list'
,url: '/ajax/cartList' //数据接口
,method:'post'
,cellMinWidth: 80 //全局定义常规单元格的最小宽度
,where: {
uid: $('.user_id').val(),
delivery_place: $('.delivery_place').val() ? $('.delivery_place').val() : 1,
is_new: 1,
}
// ,page: true //开启分页
,cols: [[ //表头
{title: '序号', type: 'numbers', fixed: 'left', width: 60}
,{field: 'goods_id', title: 'SKUID', width: 180}
,{field: 'goods_name', title: '商品名称', width: 200}
,{field: 'brand_name', title: '制造商', width: 200}
,{field: 'mpl', title: '倍数'}
,{field: 'goods_number', title: '采购数量', edit: 'text', style: 'backgroud: #ccc', width: 100}
,{field: 'goods_price', title: '采购单价', width: 120}
,{field: 'goods_amount_format', title: '小计'}
,{field: 'delivery_time', title: '货期'}
,{field: 'supplier_name', title: '供应商'}
,{field: 'buyer_id', title: '采购员', templet: '#buyer_id'}
,{field: 'batch', title: '批次'}
,{title: '操作', align:'center', fixed: 'right', toolbar: '#list_action', width: 80}
]]
// ,limit: 10
// ,limits: [10, 20, 50,]
,done: function(res, curr, count) {
if (res.data.length == 0) {
layer.msg('购物车内无商品');
$('.carts-info').hide();
return false;
}
$('.carts-info').show(); // 显示商品table
cart_ids = [];
for( i=0; i < count; i++){
cart_ids.push(res.data[i].cart_id);
}
var user_id = $('.user_id').val();
var address_id = $('.address_id').val() ? $('.address_id').val() : 0;
var user_coupon_id = $('.user_coupon_id').val() ? $('.user_coupon_id').val() : 0;
checkSelfMpl(user_id, res.data, count);
getOrderGift(cart_ids);
orderConfirm(user_id, address_id, cart_ids, user_coupon_id); // 确认订单信息
}
});
};
// 检查自营商品倍数
function checkSelfMpl(user_id, data, count)
{
// 自营商品检查数量
var changeGoods = [];
var self_goods_type = ['3', '4']; // 自营商品类型
for(var i = 0; i < count; i++){
var num = data[i].goods_number;
var mpl = data[i].mpl;
var cart_id = data[i].cart_id;
var goods_id = data[i].goods_id;
var type = data[i].type;
// 自营商品 且 数量与倍数不匹配
if (self_goods_type.indexOf(data[i].goods_type) != -1 && num % mpl != 0) {
num = Math.ceil(num / mpl) * mpl;
$.ajax({
type: "POST",
url: '/ajax/changeNum',
data: {uid: user_id, num: num, cart_id: cart_id, type: type},
dataType: "json",
async: false,
success: function(resp){
if (resp.errcode == 0) {
changeGoods.push(goods_id);
}
},
})
}
}
if (changeGoods.length > 0) {
layer.alert('已按倍数调整购买数量,商品ID:'+changeGoods.join(', '));
renderTable(); // 加载购物车列表
}
}
// 获取赠品信息
function getOrderGift(cart_ids)
{
$.ajax({
type: "POST",
url: '/ajax/getOrderGift',
data: {cart_ids: cart_ids},
dataType: "json",
success: function(resp){
if (resp.errcode == 0) {
layer.msg(resp.errmsg)
var gift_len = resp.data.length;
var gift_data = resp.data;
var str = '';
for (var i = 0; i < gift_len; i++) {
str += '<tr>\
<td>'+gift_data[i].activity_id+'</td>\
<td>\
<div class="layer-photos-demo">\
<a><img src="'+gift_data[i].pic+'" width="20" height="20"></a>\
</div>\
</td>\
<td>'+gift_data[i].item_name+'</td>\
<td>'+gift_data[i].num+'</td>\
<td>'+gift_data[i].content+'</td>\
</tr>';
}
$('.gift-table tbody').empty().append(str);
$('.order-gift-info').show();
return false;
}
},
})
}
// 修改数量
table.on('edit(list)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
var old = $(this).prev().text(); // 原数量
var num = obj.value; // 修改后数量
if (!num) {
layer.msg('数量不能为0或空');
return false;
}
var min_buy = obj.data.min_buy;
var cart_id = obj.data.cart_id;
var type = obj.data.type; // 商品添加类型
var user_id = $('.user_id').val() ? $('.user_id').val() : 0;
var delivery_place = 1; // 1.大陆,2.香港 自营默认是大陆
if (num < min_buy) {
self.val(min_buy);
layer.msg('购买数量低于最小起订量,默认调整为最小起订量');
num = min_buy;
}
var curr_goods_type = obj.data.goods_type;
var joint_goods_type = [1, 2]; // 商品联营类型
if (joint_goods_type.indexOf(curr_goods_type) != -1) {
delivery_place = $('.delivery_place').val();
} else { // 自营数量需要结合倍数
var mpl = Number(obj.data.mpl); // 倍数
num = Math.ceil(num / mpl) * mpl;
}
$.ajax({
type: "POST",
url: '/ajax/changeNum',
data: {uid: user_id, num: num, cart_id: cart_id, type: type},
dataType: "json",
success: function(resp){
if (resp.errcode == 0) {
layer.msg(resp.errmsg)
renderTable();
return false;
}
layer.msg(resp.errmsg);
},
})
});
// tool操作
table.on('tool(list)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
var url = '';
var title = '';
var content = '';
var datax = {};
var user_id = 0;
var delivery_place = $('.delivery_place').val() ? $('.delivery_place').val() : 1; // 1.大陆,2.香港 自营默认是大陆
datax.cart_id = data.cart_id;
if (layEvent === 'del') {
url = '/ajax/deleteGoods';
title = '删除商品';
content = '<div style="margin: 40px;">确定删除该条商品('+ data.goods_name +')吗?</div>';
datax.uid = $('.user_id').val();
}
layer.open({
area: ['400px', '200px'],
title: title,
type: 1,
content: content,
btn: ['确认', '取消'],
yes: function(index) {
$.ajax({
url : url,
type: 'post',
data: datax,
dataType: 'json',
success: function(resp) {
if (resp.errcode == 0) {
layer.close(index);
layer.msg(resp.errmsg);
renderTable(); // 重新加载table
return false;
}
layer.msg(resp.errmsg);
},
error: function(err) {
console.log(err)
}
})
layer.msg(title+'中...', {icon: 16, time: 0, shade: 0.3}); // 阻止重复提交
return false;
},
cancel: function(index) {
layer.close(index);
}
})
});
// 选择优惠券
$('#user_coupon').change(function(){
var coupon_id = $(this).val();
var address_id = $('.address_id').val();
var user_id = $('.user_id').val();
if (coupon_id) {
$('.user_coupon_id').val(coupon_id);
} else {
$('.user_coupon_id').val('');
}
orderConfirm(user_id, address_id, cart_ids, coupon_id); // 确认订单信息
})
// 确认订单信息
function orderConfirm(user_id, address_id, cart_ids, user_coupon_id)
{
var zy_delivery_type = $('.zy_delivery_type').val() ? $('.zy_delivery_type').val() : 1; // 发货方式
$.ajax({
type: 'post',
url: '/ajax/confirm',
data: {uid: user_id, address_id: address_id, cart_ids: cart_ids, user_coupon_id: user_coupon_id, zy_delivery_type: zy_delivery_type},
dataType: "json",
success: function(resp){
if (resp.errcode == 0) {
var data = resp.data;
$('.order-info').show();
$('.goods_amount_val').empty().text(data.goods_total_format); // 商品总额
$('.order_amount').empty().text(data.order_amount_format); // 订单总额
if (!user_coupon_id) { // 若优惠券ID不存在,则推荐
$('.preferential_price').hide();
$('.preferential_price_val').empty();
getCoupon(user_id, cart_ids); // 获取最优的优惠券
} else {
$('.preferential_price').show();
$('.preferential_price_val').empty().text(data.preferential_price_format);
}
var list = resp.data.list;
var is_dgk = false;
for (var i = 0; i < list.length; i++) {
if (list[i].supplier_id == '7' || list[i].supplier_name.toLowerCase() == 'digikey') {
is_dgk = true;
}
}
if (is_dgk) {
$('.client-info').css('display', 'block');
// 若已选择发票,再次触发发票事件,添加终端信息
if ($('.tax_id').val()) {
$('#invoice').trigger('change');
}
} else {
$('.client-info').css('display', 'none');
}
if (data.extend_fee) {
$('.extend_fee').show();
$('.extend_fee_val').empty().text(data.extend_fee_format); // 附加费
}
$('.express_fee_val').empty().text(data.finally_shipping_price_format); // 订单合并后,如果存在运费则需要展示
return false;
} else {
$('.client-info').css('display', 'none'); // 隐藏终端信息
}
// layer.msg(resp.errmsg || '网络异常');
}
})
}
// 可用优惠券
function getCoupon(user_id, cart_ids)
{
$.ajax({
type: 'post',
url: '/ajax/getCoupon',
data: {uid : user_id, cart_ids : cart_ids},
dataType: "json",
success: function(resp){
if (resp.errcode == 0) {
var data = resp.data;
var str = '<option value="">请选择</option>';
if (data.user_coupon_id != null) {
layer.msg(resp.errmsg);
str += '<option value="'+data.user_coupon_id+'">'+data.coupon_name+'</option>';
$('#user_coupon').attr('data-amount', data.sale_amount); // 优惠券金额
$('#user_coupon').empty().append(str);
return false;
} else {
$('#user_coupon').empty().append(str);
}
return false;
}
// layer.msg(resp.errmsg || '网络异常');
}
})
}
})
\ No newline at end of file
/*!
* FooTable - Awesome Responsive Tables
* Version : 2.0.3
* http://fooplugins.com/plugins/footable-jquery/
*
* Requires jQuery - http://jquery.com/
*
* Copyright 2014 Steven Usher & Brad Vincent
* Released under the MIT license
* You are free to use FooTable in commercial projects as long as this copyright header is left intact.
*
* Date: 11 Nov 2014
*/
(function(e,t){function a(){var e=this;e.id=null,e.busy=!1,e.start=function(t,a){e.busy||(e.stop(),e.id=setTimeout(function(){t(),e.id=null,e.busy=!1},a),e.busy=!0)},e.stop=function(){null!==e.id&&(clearTimeout(e.id),e.id=null,e.busy=!1)}}function i(i,o,n){var r=this;r.id=n,r.table=i,r.options=o,r.breakpoints=[],r.breakpointNames="",r.columns={},r.plugins=t.footable.plugins.load(r);var l=r.options,d=l.classes,s=l.events,u=l.triggers,f=0;return r.timers={resize:new a,register:function(e){return r.timers[e]=new a,r.timers[e]}},r.init=function(){var a=e(t),i=e(r.table);if(t.footable.plugins.init(r),i.hasClass(d.loaded))return r.raise(s.alreadyInitialized),undefined;r.raise(s.initializing),i.addClass(d.loading),i.find(l.columnDataSelector).each(function(){var e=r.getColumnData(this);r.columns[e.index]=e});for(var o in l.breakpoints)r.breakpoints.push({name:o,width:l.breakpoints[o]}),r.breakpointNames+=o+" ";r.breakpoints.sort(function(e,t){return e.width-t.width}),i.unbind(u.initialize).bind(u.initialize,function(){i.removeData("footable_info"),i.data("breakpoint",""),i.trigger(u.resize),i.removeClass(d.loading),i.addClass(d.loaded).addClass(d.main),r.raise(s.initialized)}).unbind(u.redraw).bind(u.redraw,function(){r.redraw()}).unbind(u.resize).bind(u.resize,function(){r.resize()}).unbind(u.expandFirstRow).bind(u.expandFirstRow,function(){i.find(l.toggleSelector).first().not("."+d.detailShow).trigger(u.toggleRow)}).unbind(u.expandAll).bind(u.expandAll,function(){i.find(l.toggleSelector).not("."+d.detailShow).trigger(u.toggleRow)}).unbind(u.collapseAll).bind(u.collapseAll,function(){i.find("."+d.detailShow).trigger(u.toggleRow)}),i.trigger(u.initialize),a.bind("resize.footable",function(){r.timers.resize.stop(),r.timers.resize.start(function(){r.raise(u.resize)},l.delay)})},r.addRowToggle=function(){if(l.addRowToggle){var t=e(r.table),a=!1;t.find("span."+d.toggle).remove();for(var i in r.columns){var o=r.columns[i];if(o.toggle){a=!0;var n="> tbody > tr:not(."+d.detail+",."+d.disabled+") > td:nth-child("+(parseInt(o.index,10)+1)+"),"+"> tbody > tr:not(."+d.detail+",."+d.disabled+") > th:nth-child("+(parseInt(o.index,10)+1)+")";return t.find(n).not("."+d.detailCell).prepend(e(l.toggleHTMLElement).addClass(d.toggle)),undefined}}a||t.find("> tbody > tr:not(."+d.detail+",."+d.disabled+") > td:first-child").add("> tbody > tr:not(."+d.detail+",."+d.disabled+") > th:first-child").not("."+d.detailCell).prepend(e(l.toggleHTMLElement).addClass(d.toggle))}},r.setColumnClasses=function(){var t=e(r.table);for(var a in r.columns){var i=r.columns[a];if(null!==i.className){var o="",n=!0;e.each(i.matches,function(e,t){n||(o+=", "),o+="> tbody > tr:not(."+d.detail+") > td:nth-child("+(parseInt(t,10)+1)+")",n=!1}),t.find(o).not("."+d.detailCell).addClass(i.className)}}},r.bindToggleSelectors=function(){var t=e(r.table);r.hasAnyBreakpointColumn()&&(t.find(l.toggleSelector).unbind(u.toggleRow).bind(u.toggleRow,function(){var t=e(this).is("tr")?e(this):e(this).parents("tr:first");r.toggleDetail(t)}),t.find(l.toggleSelector).unbind("click.footable").bind("click.footable",function(a){t.is(".breakpoint")&&e(a.target).is("td,th,."+d.toggle)&&e(this).trigger(u.toggleRow)}))},r.parse=function(e,t){var a=l.parsers[t.type]||l.parsers.alpha;return a(e)},r.getColumnData=function(t){var a=e(t),i=a.data("hide"),o=a.index();i=i||"",i=jQuery.map(i.split(","),function(e){return jQuery.trim(e)});var n={index:o,hide:{},type:a.data("type")||"alpha",name:a.data("name")||e.trim(a.text()),ignore:a.data("ignore")||!1,toggle:a.data("toggle")||!1,className:a.data("class")||null,matches:[],names:{},group:a.data("group")||null,groupName:null,isEditable:a.data("editable")};if(null!==n.group){var d=e(r.table).find('> thead > tr.footable-group-row > th[data-group="'+n.group+'"], > thead > tr.footable-group-row > td[data-group="'+n.group+'"]').first();n.groupName=r.parse(d,{type:"alpha"})}var u=parseInt(a.prev().attr("colspan")||0,10);f+=u>1?u-1:0;var p=parseInt(a.attr("colspan")||0,10),c=n.index+f;if(p>1){var b=a.data("names");b=b||"",b=b.split(",");for(var g=0;p>g;g++)n.matches.push(g+c),b.length>g&&(n.names[g+c]=b[g])}else n.matches.push(c);n.hide["default"]="all"===a.data("hide")||e.inArray("default",i)>=0;var h=!1;for(var m in l.breakpoints)n.hide[m]="all"===a.data("hide")||e.inArray(m,i)>=0,h=h||n.hide[m];n.hasBreakpoint=h;var v=r.raise(s.columnData,{column:{data:n,th:t}});return v.column.data},r.getViewportWidth=function(){return window.innerWidth||(document.body?document.body.offsetWidth:0)},r.calculateWidth=function(e,t){return jQuery.isFunction(l.calculateWidthOverride)?l.calculateWidthOverride(e,t):(t.viewportWidth<t.width&&(t.width=t.viewportWidth),t.parentWidth<t.width&&(t.width=t.parentWidth),t)},r.hasBreakpointColumn=function(e){for(var t in r.columns)if(r.columns[t].hide[e]){if(r.columns[t].ignore)continue;return!0}return!1},r.hasAnyBreakpointColumn=function(){for(var e in r.columns)if(r.columns[e].hasBreakpoint)return!0;return!1},r.resize=function(){var t=e(r.table);if(t.is(":visible")){if(!r.hasAnyBreakpointColumn())return t.trigger(u.redraw),undefined;var a={width:t.width(),viewportWidth:r.getViewportWidth(),parentWidth:t.parent().width()};a=r.calculateWidth(t,a);var i=t.data("footable_info");if(t.data("footable_info",a),r.raise(s.resizing,{old:i,info:a}),!i||i&&i.width&&i.width!==a.width){for(var o,n=null,l=0;r.breakpoints.length>l;l++)if(o=r.breakpoints[l],o&&o.width&&a.width<=o.width){n=o;break}var d=null===n?"default":n.name,f=r.hasBreakpointColumn(d),p=t.data("breakpoint");t.data("breakpoint",d).removeClass("default breakpoint").removeClass(r.breakpointNames).addClass(d+(f?" breakpoint":"")),d!==p&&(t.trigger(u.redraw),r.raise(s.breakpoint,{breakpoint:d,info:a}))}r.raise(s.resized,{old:i,info:a})}},r.redraw=function(){r.addRowToggle(),r.bindToggleSelectors(),r.setColumnClasses();var t=e(r.table),a=t.data("breakpoint"),i=r.hasBreakpointColumn(a);t.find("> tbody > tr:not(."+d.detail+")").data("detail_created",!1).end().find("> thead > tr:last-child > th").each(function(){var i=r.columns[e(this).index()],o="",n=!0;e.each(i.matches,function(e,t){n||(o+=", ");var a=t+1;o+="> tbody > tr:not(."+d.detail+") > td:nth-child("+a+")",o+=", > tfoot > tr:not(."+d.detail+") > td:nth-child("+a+")",o+=", > colgroup > col:nth-child("+a+")",n=!1}),o+=', > thead > tr[data-group-row="true"] > th[data-group="'+i.group+'"]';var l=t.find(o).add(this);if(""!==a&&(i.hide[a]===!1?l.addClass("footable-visible").show():l.removeClass("footable-visible").hide()),1===t.find("> thead > tr.footable-group-row").length){var s=t.find('> thead > tr:last-child > th[data-group="'+i.group+'"]:visible, > thead > tr:last-child > th[data-group="'+i.group+'"]:visible'),u=t.find('> thead > tr.footable-group-row > th[data-group="'+i.group+'"], > thead > tr.footable-group-row > td[data-group="'+i.group+'"]'),f=0;e.each(s,function(){f+=parseInt(e(this).attr("colspan")||1,10)}),f>0?u.attr("colspan",f).show():u.hide()}}).end().find("> tbody > tr."+d.detailShow).each(function(){r.createOrUpdateDetailRow(this)}),t.find("[data-bind-name]").each(function(){r.toggleInput(this)}),t.find("> tbody > tr."+d.detailShow+":visible").each(function(){var t=e(this).next();t.hasClass(d.detail)&&(i?t.show():t.hide())}),t.find("> thead > tr > th.footable-last-column, > tbody > tr > td.footable-last-column").removeClass("footable-last-column"),t.find("> thead > tr > th.footable-first-column, > tbody > tr > td.footable-first-column").removeClass("footable-first-column"),t.find("> thead > tr, > tbody > tr").find("> th.footable-visible:last, > td.footable-visible:last").addClass("footable-last-column").end().find("> th.footable-visible:first, > td.footable-visible:first").addClass("footable-first-column"),r.raise(s.redrawn)},r.toggleDetail=function(t){var a=t.jquery?t:e(t),i=a.next();a.hasClass(d.detailShow)?(a.removeClass(d.detailShow),i.hasClass(d.detail)&&i.hide(),r.raise(s.rowCollapsed,{row:a[0]})):(r.createOrUpdateDetailRow(a[0]),a.addClass(d.detailShow).next().show(),r.raise(s.rowExpanded,{row:a[0]}))},r.removeRow=function(t){var a=t.jquery?t:e(t);a.hasClass(d.detail)&&(a=a.prev());var i=a.next();a.data("detail_created")===!0&&i.remove(),a.remove(),r.raise(s.rowRemoved)},r.appendRow=function(t){var a=t.jquery?t:e(t);e(r.table).find("tbody").append(a),r.redraw()},r.getColumnFromTdIndex=function(t){var a=null;for(var i in r.columns)if(e.inArray(t,r.columns[i].matches)>=0){a=r.columns[i];break}return a},r.createOrUpdateDetailRow=function(t){var a,i=e(t),o=i.next(),n=[];if(i.data("detail_created")===!0)return!0;if(i.is(":hidden"))return!1;if(r.raise(s.rowDetailUpdating,{row:i,detail:o}),i.find("> td:hidden").each(function(){var t=e(this).index(),a=r.getColumnFromTdIndex(t),i=a.name;if(a.ignore===!0)return!0;t in a.names&&(i=a.names[t]);var o=e(this).attr("data-bind-name");if(null!=o&&e(this).is(":empty")){var l=e("."+d.detailInnerValue+"["+'data-bind-value="'+o+'"]');e(this).html(e(l).contents().detach())}var s;return a.isEditable!==!1&&(a.isEditable||e(this).find(":input").length>0)&&(null==o&&(o="bind-"+e.now()+"-"+t,e(this).attr("data-bind-name",o)),s=e(this).contents().detach()),s||(s=e(this).contents().clone(!0,!0)),n.push({name:i,value:r.parse(this,a),display:s,group:a.group,groupName:a.groupName,bindName:o}),!0}),0===n.length)return!1;var u=i.find("> td:visible").length,f=o.hasClass(d.detail);return f||(o=e('<tr class="'+d.detail+'"><td class="'+d.detailCell+'"><div class="'+d.detailInner+'"></div></td></tr>'),i.after(o)),o.find("> td:first").attr("colspan",u),a=o.find("."+d.detailInner).empty(),l.createDetail(a,n,l.createGroupedDetail,l.detailSeparator,d),i.data("detail_created",!0),r.raise(s.rowDetailUpdated,{row:i,detail:o}),!f},r.raise=function(t,a){r.options.debug===!0&&e.isFunction(r.options.log)&&r.options.log(t,"event"),a=a||{};var i={ft:r};e.extend(!0,i,a);var o=e.Event(t,i);return o.ft||e.extend(!0,o,i),e(r.table).trigger(o),o},r.reset=function(){var t=e(r.table);t.removeData("footable_info").data("breakpoint","").removeClass(d.loading).removeClass(d.loaded),t.find(l.toggleSelector).unbind(u.toggleRow).unbind("click.footable"),t.find("> tbody > tr").removeClass(d.detailShow),t.find("> tbody > tr."+d.detail).remove(),r.raise(s.reset)},r.toggleInput=function(t){var a=e(t).attr("data-bind-name");if(null!=a){var i=e("."+d.detailInnerValue+"["+'data-bind-value="'+a+'"]');null!=i&&(e(t).is(":visible")?e(i).is(":empty")||e(t).html(e(i).contents().detach()):e(t).is(":empty")||e(i).html(e(t).contents().detach()))}},r.init(),r}t.footable={options:{delay:100,breakpoints:{phone:480,tablet:1024},parsers:{alpha:function(t){return e(t).data("value")||e.trim(e(t).text())},numeric:function(t){var a=e(t).data("value")||e(t).text().replace(/[^0-9.\-]/g,"");return a=parseFloat(a),isNaN(a)&&(a=0),a}},addRowToggle:!0,calculateWidthOverride:null,toggleSelector:" > tbody > tr:not(.footable-row-detail)",columnDataSelector:"> thead > tr:last-child > th, > thead > tr:last-child > td",detailSeparator:":",toggleHTMLElement:"<span />",createGroupedDetail:function(e){for(var t={_none:{name:null,data:[]}},a=0;e.length>a;a++){var i=e[a].group;null!==i?(i in t||(t[i]={name:e[a].groupName||e[a].group,data:[]}),t[i].data.push(e[a])):t._none.data.push(e[a])}return t},createDetail:function(t,a,i,o,n){var r=i(a);for(var l in r)if(0!==r[l].data.length){"_none"!==l&&t.append('<div class="'+n.detailInnerGroup+'">'+r[l].name+"</div>");for(var d=0;r[l].data.length>d;d++){var s=r[l].data[d].name?o:"";t.append(e("<div></div>").addClass(n.detailInnerRow).append(e("<div></div>").addClass(n.detailInnerName).append(r[l].data[d].name+s)).append(e("<div></div>").addClass(n.detailInnerValue).attr("data-bind-value",r[l].data[d].bindName).append(r[l].data[d].display)))}}},classes:{main:"footable",loading:"footable-loading",loaded:"footable-loaded",toggle:"footable-toggle",disabled:"footable-disabled",detail:"footable-row-detail",detailCell:"footable-row-detail-cell",detailInner:"footable-row-detail-inner",detailInnerRow:"footable-row-detail-row",detailInnerGroup:"footable-row-detail-group",detailInnerName:"footable-row-detail-name",detailInnerValue:"footable-row-detail-value",detailShow:"footable-detail-show"},triggers:{initialize:"footable_initialize",resize:"footable_resize",redraw:"footable_redraw",toggleRow:"footable_toggle_row",expandFirstRow:"footable_expand_first_row",expandAll:"footable_expand_all",collapseAll:"footable_collapse_all"},events:{alreadyInitialized:"footable_already_initialized",initializing:"footable_initializing",initialized:"footable_initialized",resizing:"footable_resizing",resized:"footable_resized",redrawn:"footable_redrawn",breakpoint:"footable_breakpoint",columnData:"footable_column_data",rowDetailUpdating:"footable_row_detail_updating",rowDetailUpdated:"footable_row_detail_updated",rowCollapsed:"footable_row_collapsed",rowExpanded:"footable_row_expanded",rowRemoved:"footable_row_removed",reset:"footable_reset"},debug:!1,log:null},version:{major:0,minor:5,toString:function(){return t.footable.version.major+"."+t.footable.version.minor},parse:function(e){var t=/(\d+)\.?(\d+)?\.?(\d+)?/.exec(e);return{major:parseInt(t[1],10)||0,minor:parseInt(t[2],10)||0,patch:parseInt(t[3],10)||0}}},plugins:{_validate:function(a){if(!e.isFunction(a))return t.footable.options.debug===!0&&console.error('Validation failed, expected type "function", received type "{0}".',typeof a),!1;var i=new a;return"string"!=typeof i.name?(t.footable.options.debug===!0&&console.error('Validation failed, plugin does not implement a string property called "name".',i),!1):e.isFunction(i.init)?(t.footable.options.debug===!0&&console.log('Validation succeeded for plugin "'+i.name+'".',i),!0):(t.footable.options.debug===!0&&console.error('Validation failed, plugin "'+i.name+'" does not implement a function called "init".',i),!1)},registered:[],register:function(a,i){t.footable.plugins._validate(a)&&(t.footable.plugins.registered.push(a),"object"==typeof i&&e.extend(!0,t.footable.options,i))},load:function(e){var a,i,o=[];for(i=0;t.footable.plugins.registered.length>i;i++)try{a=t.footable.plugins.registered[i],o.push(new a(e))}catch(n){t.footable.options.debug===!0&&console.error(n)}return o},init:function(e){for(var a=0;e.plugins.length>a;a++)try{e.plugins[a].init(e)}catch(i){t.footable.options.debug===!0&&console.error(i)}}}};var o=0;e.fn.footable=function(a){a=a||{};var n=e.extend(!0,{},t.footable.options,a);return this.each(function(){o++;var t=new i(this,n,o);e(this).data("footable",t)})}})(jQuery,window);;(function(e,t,undefined){function a(t){var a=e("<th>"+t.title+"</th>");return e.isPlainObject(t.data)&&a.data(t.data),e.isPlainObject(t.style)&&a.css(t.style),t.className&&a.addClass(t.className),a}function o(t,o){var i=t.find("thead");0===i.size()&&(i=e("<thead>").appendTo(t));for(var n=e("<tr>").appendTo(i),r=0,l=o.cols.length;l>r;r++)n.append(a(o.cols[r]))}function i(t){var a=t.find("tbody");0===a.size()&&(a=e("<tbody>").appendTo(t))}function n(t,a,o){if(o){t.attr("data-page-size",o["page-size"]);var i=t.find("tfoot");0===i.size()&&(i=e('<tfoot class="hide-if-no-paging"></tfoot>').appendTo(t)),i.append("<tr><td colspan="+a.length+"></td></tr>");var n=e("<div>").appendTo(i.find("tr:last-child td"));n.addClass(o["pagination-class"])}}function r(t){for(var a=t[0],o=0,i=t.length;i>o;o++){var n=t[o];if(n.data&&(n.data.toggle===!0||"true"===n.data.toggle))return}a.data=e.extend(a.data,{toggle:!0})}function l(e,t,a){0===e.find("tr.emptyInfo").size()&&e.find("tbody").append('<tr class="emptyInfo"><td colspan="'+t.length+'">'+a+"</td></tr>")}function d(t,a,o,i){t.find("tr:not(."+o+")").each(function(){var t=e(this),o=a.data("index"),n=parseInt(t.data("index"),0),r=n+i;n>=o&&this!==a.get(0)&&t.attr("data-index",r).data("index",r)})}function s(){function t(t,a,o){var i=e("<td>");return t.formatter?i.html(t.formatter(a,i,o)):i.html(a||""),i}var a=this;a.name="Footable Grid",a.init=function(t){var d=t.options.classes.toggle,s=t.options.classes.detail,f=t.options.grid;if(f.cols){a.footable=t;var u=e(t.table);u.data("grid",a),e.isPlainObject(f.data)&&u.data(f.data),a._items=[],r(f.cols),f.showCheckbox&&(f.multiSelect=!0,f.cols.unshift({title:f.checkboxFormatter(!0),name:"",data:{"sort-ignore":!0},formatter:f.checkboxFormatter})),f.showIndex&&f.cols.unshift({title:"#",name:"index",data:{"sort-ignore":!0},formatter:f.indexFormatter}),o(u,f),i(u),n(u,f.cols,f.pagination),u.off(".grid").on({"footable_initialized.grid":function(){f.url||f.ajax?e.ajax(f.ajax||{url:f.url}).then(function(e){a.newItem(e),t.raise(f.events.loaded)},function(){throw"load data from "+(f.url||f.ajax.url)+" fail"}):(a.newItem(f.items||[]),t.raise(f.events.loaded))},"footable_sorted.grid footable_grid_created.grid footable_grid_removed.grid":function(){f.showIndex&&a.getItem().length>0&&u.find("tbody tr:not(."+s+")").each(function(t){var a=e(this).find("td:first");a.html(f.indexFormatter(null,a,t))})},"footable_redrawn.grid footable_row_removed.grid":function(){0===a.getItem().length&&f.showEmptyInfo&&l(u,f.cols,f.emptyInfo)}}).on({"click.grid":function(a){if(e(a.target).closest("td").find(">."+d).size()>0)return!0;var o=e(a.currentTarget);return o.hasClass(s)?!0:(f.multiSelect||o.hasClass(f.activeClass)||u.find("tbody tr."+f.activeClass).removeClass(f.activeClass),o.toggleClass(f.activeClass),f.showCheckbox&&o.find("input:checkbox.check").prop("checked",function(e,t){return a.target===this?t:!t}),t.toggleDetail(o),undefined)}},"tbody tr").on("click.grid","thead input:checkbox.checkAll",function(e){var t=!!e.currentTarget.checked;t?u.find("tbody tr").addClass(f.activeClass):u.find("tbody tr").removeClass(f.activeClass),u.find("tbody input:checkbox.check").prop("checked",t)})}},a.getSelected=function(){var t=a.footable.options.grid,o=e(a.footable.table).find("tbody>tr."+t.activeClass);return o.map(function(){return e(this).data("index")})},a.getItem=function(t){return t!==undefined?e.isArray(t)?e.map(t,function(e){return a._items[e]}):a._items[t]:a._items},a._makeRow=function(o,i){var n,r=a.footable.options.grid;if(e.isFunction(r.template))n=e(r.template(e.extend({},{__index:i},o)));else{n=e("<tr>");for(var l=0,d=r.cols.length;d>l;l++){var s=r.cols[l];n.append(t(s,o[s.name]||"",i))}}return n.attr("data-index",i),n},a.newItem=function(t,o,i){var n=e(a.footable.table).find("tbody"),r=a.footable.options.classes.detail;if(n.find("tr.emptyInfo").remove(),e.isArray(t)){for(var l;l=t.pop();)a.newItem(l,o,!0);return a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.created,{item:t,index:o}),undefined}if(e.isPlainObject(t)){var s,f=a._items.length;if(o===undefined||0>o||o>f)s=a._makeRow(t,f++),a._items.push(t),n.append(s);else{if(s=a._makeRow(t,o),0===o)a._items.unshift(t),n.prepend(s);else{var u=n.find("tr[data-index="+(o-1)+"]");a._items.splice(o,0,t),u.data("detail_created")===!0&&(u=u.next()),u.after(s)}d(n,s,r,1)}i||(a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.created,{item:t,index:o}))}},a.setItem=function(t,o){if(e.isPlainObject(t)){var i=e(a.footable.table).find("tbody"),n=a._makeRow(t,o);e.extend(a._items[o],t);var r=i.find("tr").eq(o);r.html(n.html()),a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.updated,{item:t,index:o})}},a.removeItem=function(t){var o=e(a.footable.table).find("tbody"),i=a.footable.options.classes.detail,n=[];if(e.isArray(t)){for(var r;r=t.pop();)n.push(a.removeItem(r));return a.footable.raise(a.footable.options.grid.events.removed,{item:n,index:t}),n}if(t===undefined)o.find("tr").each(function(){n.push(a._items.shift()),a.footable.removeRow(this)});else{var l=o.find("tr[data-index="+t+"]");n=a._items.splice(t,1)[0],a.footable.removeRow(l),d(o,l,i,-1)}return a.footable.raise(a.footable.options.grid.events.removed,{item:n,index:t}),n}}if(t.footable===undefined||null===t.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var f={grid:{enabled:!0,data:null,template:null,cols:null,items:null,url:null,ajax:null,activeClass:"active",multiSelect:!1,showIndex:!1,showCheckbox:!1,showEmptyInfo:!1,emptyInfo:'<p class="text-center text-warning">No Data</p>',pagination:{"page-size":20,"pagination-class":"pagination pagination-centered"},indexFormatter:function(e,t,a){return a+1},checkboxFormatter:function(e){return'<input type="checkbox" class="'+(e?"checkAll":"check")+'">'},events:{loaded:"footable_grid_loaded",created:"footable_grid_created",removed:"footable_grid_removed",updated:"footable_grid_updated"}}};t.footable.plugins.register(s,f)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Filter",e.init=function(a){if(e.footable=a,a.options.filter.enabled===!0){if(t(a.table).data("filter")===!1)return;a.timers.register("filter"),t(a.table).unbind(".filtering").bind({"footable_initialized.filtering":function(){var i=t(a.table),o={input:i.data("filter")||a.options.filter.input,timeout:i.data("filter-timeout")||a.options.filter.timeout,minimum:i.data("filter-minimum")||a.options.filter.minimum,disableEnter:i.data("filter-disable-enter")||a.options.filter.disableEnter};o.disableEnter&&t(o.input).keypress(function(t){return window.event?13!==window.event.keyCode:13!==t.which}),i.bind("footable_clear_filter",function(){t(o.input).val(""),e.clearFilter()}),i.bind("footable_filter",function(t,a){e.filter(a.filter)}),t(o.input).keyup(function(i){a.timers.filter.stop(),27===i.which&&t(o.input).val(""),a.timers.filter.start(function(){var a=t(o.input).val()||"";e.filter(a)},o.timeout)})},"footable_redrawn.filtering":function(){var i=t(a.table),o=i.data("filter-string");o&&e.filter(o)}}).data("footable-filter",e)}},e.filter=function(a){var i=e.footable,o=t(i.table),n=o.data("filter-minimum")||i.options.filter.minimum,r=!a,l=i.raise("footable_filtering",{filter:a,clear:r});if(!(l&&l.result===!1||l.filter&&n>l.filter.length))if(l.clear)e.clearFilter();else{var d=l.filter.split(" ");o.find("> tbody > tr").hide().addClass("footable-filtered");var s=o.find("> tbody > tr:not(.footable-row-detail)");t.each(d,function(t,e){e&&e.length>0&&(o.data("current-filter",e),s=s.filter(i.options.filter.filterFunction))}),s.each(function(){e.showRow(this,i),t(this).removeClass("footable-filtered")}),o.data("filter-string",l.filter),i.raise("footable_filtered",{filter:l.filter,clear:!1})}},e.clearFilter=function(){var a=e.footable,i=t(a.table);i.find("> tbody > tr:not(.footable-row-detail)").removeClass("footable-filtered").each(function(){e.showRow(this,a)}),i.removeData("filter-string"),a.raise("footable_filtered",{clear:!0})},e.showRow=function(e,a){var i=t(e),o=i.next(),n=t(a.table);i.is(":visible")||(n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(e)):i.show())}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={filter:{enabled:!0,input:".footable-filter",timeout:300,minimum:2,disableEnter:!1,filterFunction:function(){var e=t(this),a=e.parents("table:first"),i=a.data("current-filter").toUpperCase(),o=e.find("td").text();return a.data("filter-text-only")||e.find("td[data-value]").each(function(){o+=t(this).data("value")}),o.toUpperCase().indexOf(i)>=0}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(e,t,undefined){function a(t){var a=e(t.table),i=a.data();this.pageNavigation=i.pageNavigation||t.options.pageNavigation,this.pageSize=i.pageSize||t.options.pageSize,this.firstText=i.firstText||t.options.firstText,this.previousText=i.previousText||t.options.previousText,this.nextText=i.nextText||t.options.nextText,this.lastText=i.lastText||t.options.lastText,this.limitNavigation=parseInt(i.limitNavigation||t.options.limitNavigation||o.limitNavigation,10),this.limitPreviousText=i.limitPreviousText||t.options.limitPreviousText,this.limitNextText=i.limitNextText||t.options.limitNextText,this.limit=this.limitNavigation>0,this.currentPage=i.currentPage||0,this.pages=[],this.control=!1}function i(){var t=this;t.name="Footable Paginate",t.init=function(a){if(a.options.paginate===!0){if(e(a.table).data("page")===!1)return;t.footable=a,e(a.table).unbind(".paging").bind({"footable_initialized.paging footable_row_removed.paging footable_redrawn.paging footable_sorted.paging footable_filtered.paging":function(){t.setupPaging()}}).data("footable-paging",t)}},t.setupPaging=function(){var i=t.footable,o=e(i.table).find("> tbody");i.pageInfo=new a(i),t.createPages(i,o),t.createNavigation(i,o),t.fillPage(i,o,i.pageInfo.currentPage)},t.createPages=function(t,a){var i=1,o=t.pageInfo,n=i*o.pageSize,r=[],l=[];o.pages=[];var d=a.find("> tr:not(.footable-filtered,.footable-row-detail)");d.each(function(e,t){r.push(t),e===n-1?(o.pages.push(r),i++,n=i*o.pageSize,r=[]):e>=d.length-d.length%o.pageSize&&l.push(t)}),l.length>0&&o.pages.push(l),o.currentPage>=o.pages.length&&(o.currentPage=o.pages.length-1),0>o.currentPage&&(o.currentPage=0),1===o.pages.length?e(t.table).addClass("no-paging"):e(t.table).removeClass("no-paging")},t.createNavigation=function(a){var i=e(a.table).find(a.pageInfo.pageNavigation);if(0===i.length){if(i=e(a.pageInfo.pageNavigation),i.parents("table:first").length>0&&i.parents("table:first")!==e(a.table))return;i.length>1&&a.options.debug===!0&&console.error("More than one pagination control was found!")}if(0!==i.length){i.is("ul")||(0===i.find("ul:first").length&&i.append("<ul />"),i=i.find("ul")),i.find("li").remove();var o=a.pageInfo;o.control=i,o.pages.length>0&&(i.append('<li class="footable-page-arrow"><a data-page="first" href="#first">'+a.pageInfo.firstText+"</a>"),i.append('<li class="footable-page-arrow"><a data-page="prev" href="#prev">'+a.pageInfo.previousText+"</a></li>"),o.limit&&i.append('<li class="footable-page-arrow"><a data-page="limit-prev" href="#limit-prev">'+a.pageInfo.limitPreviousText+"</a></li>"),o.limit||e.each(o.pages,function(e,t){t.length>0&&i.append('<li class="footable-page"><a data-page="'+e+'" href="#">'+(e+1)+"</a></li>")}),o.limit&&(i.append('<li class="footable-page-arrow"><a data-page="limit-next" href="#limit-next">'+a.pageInfo.limitNextText+"</a></li>"),t.createLimited(i,o,0)),i.append('<li class="footable-page-arrow"><a data-page="next" href="#next">'+a.pageInfo.nextText+"</a></li>"),i.append('<li class="footable-page-arrow"><a data-page="last" href="#last">'+a.pageInfo.lastText+"</a></li>")),i.off("click","a[data-page]").on("click","a[data-page]",function(n){n.preventDefault();var r=e(this).data("page"),l=o.currentPage;if("first"===r)l=0;else if("prev"===r)l>0&&l--;else if("next"===r)o.pages.length-1>l&&l++;else if("last"===r)l=o.pages.length-1;else if("limit-prev"===r){l=-1;var d=i.find(".footable-page:first a").data("page");t.createLimited(i,o,d-o.limitNavigation),t.setPagingClasses(i,o.currentPage,o.pages.length)}else if("limit-next"===r){l=-1;var s=i.find(".footable-page:last a").data("page");t.createLimited(i,o,s+1),t.setPagingClasses(i,o.currentPage,o.pages.length)}else l=r;if(l>=0){if(o.limit&&o.currentPage!=l){for(var f=l;0!==f%o.limitNavigation;)f-=1;t.createLimited(i,o,f)}t.paginate(a,l)}}),t.setPagingClasses(i,o.currentPage,o.pages.length)}},t.createLimited=function(e,t,a){a=a||0,e.find("li.footable-page").remove();var i,o,n=e.find('li.footable-page-arrow > a[data-page="limit-prev"]').parent(),r=e.find('li.footable-page-arrow > a[data-page="limit-next"]').parent();for(i=t.pages.length-1;i>=0;i--)o=t.pages[i],i>=a&&a+t.limitNavigation>i&&o.length>0&&n.after('<li class="footable-page"><a data-page="'+i+'" href="#">'+(i+1)+"</a></li>");0===a?n.hide():n.show(),a+t.limitNavigation>=t.pages.length?r.hide():r.show()},t.paginate=function(a,i){var o=a.pageInfo;if(o.currentPage!==i){var n=e(a.table).find("> tbody"),r=a.raise("footable_paging",{page:i,size:o.pageSize});if(r&&r.result===!1)return;t.fillPage(a,n,i),o.control.find("li").removeClass("active disabled"),t.setPagingClasses(o.control,o.currentPage,o.pages.length)}},t.setPagingClasses=function(e,t,a){e.find("li.footable-page > a[data-page="+t+"]").parent().addClass("active"),t>=a-1&&(e.find('li.footable-page-arrow > a[data-page="next"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="last"]').parent().addClass("disabled")),1>t&&(e.find('li.footable-page-arrow > a[data-page="first"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="prev"]').parent().addClass("disabled"))},t.fillPage=function(a,i,o){a.pageInfo.currentPage=o,e(a.table).data("currentPage",o),i.find("> tr").hide(),e(a.pageInfo.pages[o]).each(function(){t.showRow(this,a)}),a.raise("footable_page_filled")},t.showRow=function(t,a){var i=e(t),o=i.next(),n=e(a.table);n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(t)):i.show()}}if(t.footable===undefined||null===t.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var o={paginate:!0,pageSize:10,pageNavigation:".pagination",firstText:"&laquo;",previousText:"&lsaquo;",nextText:"&rsaquo;",lastText:"&raquo;",limitNavigation:0,limitPreviousText:"...",limitNextText:"..."};t.footable.plugins.register(i,o)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Sortable",e.init=function(a){e.footable=a,a.options.sort===!0&&t(a.table).unbind(".sorting").bind({"footable_initialized.sorting":function(){var i,o,n=t(a.table),r=(n.find("> tbody"),a.options.classes.sort);if(n.data("sort")!==!1){n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").each(function(){var e=t(this),i=a.columns[e.index()];i.sort.ignore===!0||e.hasClass(r.sortable)||(e.addClass(r.sortable),t("<span />").addClass(r.indicator).appendTo(e))}),n.find("> thead > tr:last-child > th."+r.sortable+", > thead > tr:last-child > td."+r.sortable).unbind("click.footable").bind("click.footable",function(a){a.preventDefault(),o=t(this);var i=!o.hasClass(r.sorted);return e.doSort(o.index(),i),!1});var l=!1;for(var s in a.columns)if(i=a.columns[s],i.sort.initial){var d="descending"!==i.sort.initial;e.doSort(i.index,d);break}l&&a.bindToggleSelectors()}},"footable_redrawn.sorting":function(){var i=t(a.table),o=a.options.classes.sort;i.data("sorted")>=0&&i.find("> thead > tr:last-child > th").each(function(a){var i=t(this);return i.hasClass(o.sorted)||i.hasClass(o.descending)?(e.doSort(a),undefined):undefined})},"footable_column_data.sorting":function(e){var a=t(e.column.th);e.column.data.sort=e.column.data.sort||{},e.column.data.sort.initial=a.data("sort-initial")||!1,e.column.data.sort.ignore=a.data("sort-ignore")||!1,e.column.data.sort.selector=a.data("sort-selector")||null;var i=a.data("sort-match")||0;i>=e.column.data.matches.length&&(i=0),e.column.data.sort.match=e.column.data.matches[i]}}).data("footable-sort",e)},e.doSort=function(a,i){var o=e.footable;if(t(o.table).data("sort")!==!1){var n=t(o.table),r=n.find("> tbody"),l=o.columns[a],s=n.find("> thead > tr:last-child > th:eq("+a+")"),d=o.options.classes.sort,f=o.options.events.sort;if(i=i===undefined?s.hasClass(d.sorted):"toggle"===i?!s.hasClass(d.sorted):i,l.sort.ignore===!0)return!0;var u=o.raise(f.sorting,{column:l,direction:i?"ASC":"DESC"});u&&u.result===!1||(n.data("sorted",l.index),n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").not(s).removeClass(d.sorted+" "+d.descending),i===undefined&&(i=s.hasClass(d.sorted)),i?s.removeClass(d.descending).addClass(d.sorted):s.removeClass(d.sorted).addClass(d.descending),e.sort(o,r,l,i),o.bindToggleSelectors(),o.raise(f.sorted,{column:l,direction:i?"ASC":"DESC"}))}},e.rows=function(e,a,i){var o=[];return a.find("> tr").each(function(){var a=t(this),n=null;if(a.hasClass(e.options.classes.detail))return!0;a.next().hasClass(e.options.classes.detail)&&(n=a.next().get(0));var r={row:a,detail:n};return i!==undefined&&(r.value=e.parse(this.cells[i.sort.match],i)),o.push(r),!0}).detach(),o},e.sort=function(t,a,i,o){var n=e.rows(t,a,i),r=t.options.sorters[i.type]||t.options.sorters.alpha;n.sort(function(t,e){return o?r(t.value,e.value):r(e.value,t.value)});for(var l=0;n.length>l;l++)a.append(n[l].row),null!==n[l].detail&&a.append(n[l].detail)}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={sort:!0,sorters:{alpha:function(t,e){return"string"==typeof t&&(t=t.toLowerCase()),"string"==typeof e&&(e=e.toLowerCase()),t===e?0:e>t?-1:1},numeric:function(t,e){return t-e}},classes:{sort:{sortable:"footable-sortable",sorted:"footable-sorted",descending:"footable-sorted-desc",indicator:"footable-sort-indicator"}},events:{sort:{sorting:"footable_sorting",sorted:"footable_sorted"}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Striping",e.init=function(a){e.footable=a,t(a.table).unbind("striping").bind({"footable_initialized.striping footable_row_removed.striping footable_redrawn.striping footable_sorted.striping footable_filtered.striping":function(){t(this).data("striping")!==!1&&e.setupStriping(a)}})},e.setupStriping=function(e){var a=0;t(e.table).find("> tbody > tr:not(.footable-row-detail)").each(function(){var i=t(this);i.removeClass(e.options.classes.striping.even).removeClass(e.options.classes.striping.odd),0===a%2?i.addClass(e.options.classes.striping.even):i.addClass(e.options.classes.striping.odd),a++})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={striping:{enabled:!0},classes:{striping:{odd:"footable-odd",even:"footable-even"}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(t,e,undefined){function a(t,e){e=e?e:location.hash;var a=RegExp("&"+t+"(?:=([^&]*))?(?=&|$)","i");return(e=e.replace(/^\#/,"&").match(a))?e[1]===undefined?"":decodeURIComponent(e[1]):undefined}function i(e,a){var i=t(e.table).find("tbody").find("tr:not(.footable-row-detail, .footable-filtered)").length;t(e.table).data("status_num_total",i);var o=t(e.table).find("tbody").find("tr:not(.footable-row-detail)").filter(":visible").length;t(e.table).data("status_num_shown",o);var n=t(e.table).data("sorted"),r=t(e.table).find("th")[n],l=t(r).hasClass("footable-sorted-desc");if(t(e.table).data("status_descending",l),e.pageInfo){var s=e.pageInfo.currentPage;t(e.table).data("status_pagenum",s)}var d="",f=t(e.table).data("filter");t(f).length&&(d=t(f).val()),t(e.table).data("status_filter_val",d);var u,p,c;if("footable_row_expanded"==a.type&&(u=a.row,u&&(p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(",")),c.push(u.rowIndex),t(e.table).data("expanded_rows",c.join(",")))),"footable_row_collapsed"==a.type&&(u=a.row)){p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(","));var g=[];for(var b in c)if(c[b]==u.rowIndex){g=c.splice(b,1);break}t(e.table).data("expanded_rows",g.join(","))}}function o(){var e=this;e.name="Footable LucidBookmarkable",e.init=function(e){e.options.bookmarkable.enabled&&t(e.table).bind({footable_initialized:function(){var i=e.table.id,o=a(i+"_f"),n=a(i+"_p"),r=a(i+"_s"),l=a(i+"_d"),s=a(i+"_e");if(o){var d=t(e.table).data("filter");t(d).val(o),t(e.table).trigger("footable_filter",{filter:o})}if(n&&t(e.table).data("currentPage",n),r!==undefined){var f=t(e.table).data("footable-sort"),u=!0;"true"==l&&(u=!1),f.doSort(r,u)}else t(e.table).trigger("footable_setup_paging");if(s){var p=s.split(",");for(var c in p){var g=t(e.table.rows[p[c]]);g.find("> td:first").trigger("footable_toggle_row")}}e.lucid_bookmark_read=!0},"footable_page_filled footable_redrawn footable_filtered footable_sorted footable_row_expanded footable_row_collapsed":function(a){if(i(e,a),e.lucid_bookmark_read){var o=e.table.id,n=o+"_f",r=o+"_p",l=o+"_s",s=o+"_d",d=o+"_e",f=location.hash.replace(/^\#/,"&"),u=[n,r,l,s,d];for(var p in u){var c=RegExp("&"+u[p]+"=([^&]*)","g");f=f.replace(c,"")}var g={};g[n]=t(e.table).data("status_filter_val"),g[r]=t(e.table).data("status_pagenum"),g[l]=t(e.table).data("sorted"),g[s]=t(e.table).data("status_descending"),g[d]=t(e.table).data("expanded_rows");var b=[];for(var h in g)g[h]!==undefined&&b.push(h+"="+encodeURIComponent(g[h]));f.length&&b.push(f),location.hash=b.join("&")}}})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var n={bookmarkable:{enabled:!1}};e.footable.plugins.register(o,n)})(jQuery,window);
\ No newline at end of file
layui.define(function(exports){ //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
//行政区域选择
var obj = {
boxOjb: null,
dataCache: {
provinces: null,
citys: null,
towns: null
},
/*
* 初始化
* @param container <string/Object> 行政区域表单容器
*/
init: function(container, provinceId, cityId, districtId){
var self = this;
if ((typeof container).toLowerCase() == 'string') {
self.boxOjb = $(container);
} else {
self.boxOjb = container;
}
self.getRegionData(function(){
self.makeRegionHtml(1, 1, provinceId || 0);
self.makeRegionHtml(2, provinceId || 2, cityId || 0);
self.makeRegionHtml(3, cityId || 52, districtId || 0);
// self.bind();
});
},
getRegionData: function(callback){
var self = this;
if(self.dataCache.provinces) {
if (typeof callback == 'function') {
callback();
}
return false;
}
$.ajax({
type: 'post',
url: '/region/getAll',
dataType: 'json',
async: false,
success: function(resp){
if (!resp) {
return layer.msg('网络异常,请稍后再试~');
}
if (resp.provinces) self.dataCache.provinces = resp.provinces;
if (resp.citys) self.dataCache.citys = resp.citys;
if (resp.towns) self.dataCache.towns = resp.towns;
if (typeof callback == 'function') {
callback();
}
}
})
},
// bind: function(){
// var self = this, parent_id = 0;
// //省份选择事件
// $(self.boxOjb).find('select.s_province').on('change', function(){
// parent_id = $(this).val();
// self.makeRegionHtml(2, parent_id);
// });
// //城市选择事件
// $(self.boxOjb).find('select.s_city').on('change', function(){
// parent_id = $(this).val();
// self.makeRegionHtml(3, parent_id);
// });
// },
makeRegionHtml: function(level, parentId, selectId){
var optionHtml = [], self = this, _data = null, selectName = '', d_parent_id = 0;
switch (level) {
case 1:
selectName = 's_province';
_data = self.dataCache.provinces;
break;
case 2:
selectName = 's_city';
_data = self.dataCache.citys;
break;
case 3:
selectName = 's_county';
_data = self.dataCache.towns;
break;
}
if (_data) {
var item = null, children = null;
for (var i in _data) {
item = _data[i];
if (item && item.parent_id == parentId) {
children = item.children;
optionHtml.push('<option value="0">请选择</option>');
for (var j in children) {
if (!d_parent_id) {
d_parent_id = children[j].region_id;
}
optionHtml.push('<option value="' + children[j].region_id + '">' + children[j].region_name + '</option>');
}
break;
}
}
}
self.boxOjb.find('select.' + selectName + '').html(optionHtml.join(''));
if (level == 2) {
self.makeRegionHtml(3, d_parent_id);
}
if (selectId) self.boxOjb.find('select.' + selectName + '').val(selectId);
}
};
//输出test接口
exports('region', obj);
});
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订单管理后台 | {{ $title }}</title>
<script>document.domain="{{ Config::get('website.domain') }}";</script>
<link href="/js/layui/css/layui.css" rel="stylesheet">
<link href="/css/admin.css" rel="stylesheet">
<link href="/css/detail.css" rel="stylesheet">
@include('table.css')
<script src="/js/jquery-2.2.1.js"></script>
@include('table.js')
<script src="/js/layui/layui.js"></script>
<script src="/js/region.js"></script>
<script src="/js/web/common.js"></script>
<script src="/js/add_inquiry_order.js?v=<?= time() ?>"></script>
</head>
<body class="body-small">
<div id="wrapper">
<!-- layouts.navigation -->
@include('layouts.navigation')
<div id="page-wrapper" class="gray-bg">
<div class="row">
<div class="wrapper">
@include('layouts.header')
<div class="page-content" style="margin-top: 10px;">
<div class="ibox float-e-margins">
<div class="ibox-content">
@include('addInquiryOrder.content')
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<style>
.address-section{ border: 1px solid #ccc; }
.address-select, .address-section{ display: none; }
</style>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">发货方式:</label>
<div class="layui-input-inline">
<select name="zy_delivery_type" class="zy_delivery_type" lay-verify="required">
<option value=""></option>
<option value="1">现货优先发货</option>
<option value="2">拼单发货</option>
</select>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">销售组织:</label>
<div class="layui-input-inline layui-form" lay-filter="com_id">
<select name="com_id" class="com_id" lay-verify="required">
<option value="1">猎芯科技</option>
<option value="2">泽茂</option>
<?php
// if ($company)
// foreach ($company as $k=>$v)
// <option value="{{ $k }}" currency="{{ $v['com_currency'] }}">{{ $v['com_name'] }}</option>
// endforeach
// endif
?>
</select>
</div>
<div class="layui-form-mid layui-word-aux">
<span class="currency-section"> 币别:<span class="currency-sign">RMB</span></span>
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">交货地:</label>
<div class="layui-input-inline layui-form" lay-filter="delivery_place">
<select name="delivery_place" class="delivery_place" disabled>
<option value="1">大陆</option>
<option value="2">香港</option>
</select>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">收货方式:</label>
<div class="layui-input-block">
<input type="radio" class="shipping_type" name="shipping_type" value="1" title="快递上门" lay-filter="shipping_type">
<input type="radio" class="shipping_type" name="shipping_type" value="2" title="自提" lay-filter="shipping_type">
</div>
</div>
</div>
</div>
<div class="layui-row address-select">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<input type="hidden" name="address_id" class="address_id" value="">
<label class="layui-form-label">收货地址:</label>
<div class="layui-input-inline layui-form" lay-filter="user-address">
<select name="address" class="address" lay-verify="required" lay-filter="address-val">
</select>
</div>
<a class="layui-btn add-address">添加地址</a>
</div>
</div>
</div>
<div class="address-section">
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">联系人:</label>
<span class="address-consignee"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">联系电话:</label>
<span class="address-mobile"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">收货地址:</label>
<span class="address-detail"></span>
</div>
</div>
</div>
</div>
<style>
#user-address-pop{ display: none; margin: 20px 0px; }
#user-address-pop input{ width: 200px; }
.link_mobile{ width: 193px !important; }
#add-address-pop{ overflow: visible; }
</style>
<div id="user-address-pop">
<form class="layui-form address-form" id="address-form">
<div class="layui-row">
<div class="form-form-item layui-form" lay-filter="s_region">
<label class="layui-form-label"><i class="text-danger">*</i> 所在地区</label>
<div class="layui-input-inline">
<select name="province" class="s_province province" lay-filter="s_province"></select>
</div>
<div class="layui-input-inline">
<select name="city" class="s_city city" lay-filter="s_city"></select>
</div>
<div class="layui-input-inline">
<select name="district" class="s_county district"></select>
</div>
</div>
</div>
<div class="layui-row" style="margin-bottom: 5px;">
<div class="form-form-item layui-form-text">
<label class="layui-form-label"><i class="text-danger">*</i> 详细地址</label>
<div class="layui-input-inline">
<textarea class="layui-textarea detail_address" name="detail_address" cols="80" autocomplete="off"></textarea>
</div>
</div>
</div>
<div class="layui-row">
<div class="form-form-item">
<label class="layui-form-label">邮政编码</label>
<div class="layui-input-inline">
<input type="text" class="layui-input zipcode" name="zipcode" autocomplete="off">
</div>
</div>
</div>
<div class="layui-row">
<div class="form-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 收货人</label>
<div class="layui-input-inline">
<input type="text" class="layui-input consignee" name="consignee" autocomplete="off">
</div>
</div>
</div>
<div class="layui-row">
<div class="form-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 联系电话</label>
<div class="layui-input-inline">
<select name="intl_code" id="intl_code" style="float: left;">
<option value="0086">0086 (中国)</option>
<option value="00852">00852 (香港)</option>
<option value="00853">00853 (澳门)</option>
<option value="00886">00886 (台湾)</option>
</select>
</div>
<div class="layui-input-inline">
<input type="text" class="layui-input link_mobile" name="link_mobile" autocomplete="off">
</div>
</div>
</div>
<div class="layui-row">
<div class="form-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline layui-form" lay-filter="is_default">
<input type="checkbox" class="layui-input is_default" name="is_default" title="设为默认地址">
</div>
</div>
</div>
</form>
</div>
\ No newline at end of file
<style type="text/css">
.addInquiryOrder .layui-colla-title{ margin-top: 0px; margin-bottom: 0px; }
.addInquiryOrder .layui-form-item{ margin-bottom: 0px; }
.addInquiryOrder label{ width: 110px; }
.addInquiryOrder span{ line-height: 37px; }
</style>
<input type="hidden" name="user_id" class="user_id" value="">
<input type="hidden" name="inv_com_id" class="inv_com_id" value="">
<div class="layui-collapse addInquiryOrder">
<form class="layui-form layui-box quoteForm" method="post">
<div class="layui-colla-item">
<h2 class="layui-colla-title">客户信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.userInfo')
</div>
</div>
<div class="layui-colla-item address-info">
<h2 class="layui-colla-title">收货信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.addressInfo')
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">商品信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.goodsInfo')
</div>
</div>
<div class="layui-colla-item order-gift-info">
<h2 class="layui-colla-title">赠品信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.giftInfo')
</div>
</div>
<div class="layui-colla-item client-info">
<h2 class="layui-colla-title">终端客户信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.dgkInfo')
</div>
</div>
<div class="layui-colla-item order-info">
<h2 class="layui-colla-title">订单信息</h2>
<div class="layui-colla-content layui-show">
@include('addInquiryOrder.orderInfo')
</div>
</div>
</form>
</div>
<script>
var report_ids = "{{ $report_ids }}";
console.log(report_ids)
</script>
\ No newline at end of file
<style>
.client-info label{ width: 150px; }
</style>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 终端中文名称:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input customer_cn" name="customer_cn" value="" autocomplete="off">
</div>
</div>
</div>
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 客户类型:</label>
<div class="layui-input-inline">
<select class="customer_type" name="customer_type">
<option value="">请选择</option>
@if (Config('params.end_user_type'))
@foreach (Config('params.end_user_type') as $k => $v)
<option value="{{ $k }}">{{ $v }}</option>
@endforeach
@endif
</select>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 终端英文名称:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input customer_en" name="customer_en" value="" autocomplete="off">
</div>
<div class="layui-form-mid">
<a href="https://translate.google.cn/" target="_blank">谷歌翻译</a>
</div>
</div>
</div>
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 产品用途:</label>
<div class="layui-input-inline">
<select class="product_use_classone_sn" name="product_use_classone_sn" lay-filter="product_use_classone_sn">
<option value="">请选择</option>
@if (!empty($dgk_info['data']['data']))
@foreach ($dgk_info['data']['data'] as $k=>$v)
<option value="{{$k}}">{{$k}}</option>
@endforeach
@endif
</select>
</div>
<div class="layui-input-inline layui-form" lay-filter="product_use_classtwo_sn">
<select class="product_use_classtwo_sn" name="product_use_classtwo_sn"></select>
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label"><i class="text-danger">*</i> 客户网址:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input customer_website" name="customer_website" value="" autocomplete="off">
</div>
</div>
</div>
</div>
<script>
var dgk_info = eval('('+ '<?php echo json_encode($dgk_info['data']['data']); ?>' +')');
</script>
<div class="layui-row">
<div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
<div class="layui-form-item">
<table class="layui-table gift-table">
<thead>
<tr>
<th width="10%">活动ID</th>
<th width="20%">赠品图片</th>
<th width="20%">赠品名称</th>
<th width="20%">赠品数量</th>
<th width="30%">赠品说明</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
<div class="layui-form-item">
<div class="layui-input-inline" style="width: 235px;">
<input type="text" name="sku_id" lay-verify="" placeholder="请输入SKUID" autocomplete="off" class="layui-input search-sku">
</div>
<a class="btn btn-info get-sku">获取SKU信息</a>
<span>快捷入口:
<a href="{{Config('website.add-sku-url')}}" target="_blank" style="margin-right: 10px;">+新增SKU</a>
<a href="{{Config('website.search-sku-url-1')}}" target="_blank" style="margin-right: 10px;">查询联营SKU</a>
<a href="{{Config('website.search-sku-url-2')}}" target="_blank">查询自营SKU</a>
</span>
<div class="batch-btn">
<a class="btn btn-success goods_import" data-type="1">批量导入物料</a>
<a class="btn btn-info" href="https://img.ichunt.com/doc/excel/template/%E8%81%94%E8%90%A5%E6%89%B9%E9%87%8F%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx">联营物料模板下载</a>
</div>
</div>
</div>
</div>
<!-- SKU信息 -->
<div class="sku-info" style="margin-top: 10px;">
<div class="sku-info-left">
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">SKU型号:</label>
<span class="goods_name"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">制造商:</label>
<span class="brand_name"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">供应商:</label>
<span class="supplier_name"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">库存数量:</label>
<span class="stock"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">起订量:</label>
<span class="moq"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">标准包装量:</label>
<span class="mpq"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">是否能购买:</label>
<span class="status"></span>
</div>
</div>
</div>
</div>
<div class="sku-info-right">
<table class="layui-table ladder_price_table" style="margin: 0px;"></table>
</div>
<input type="hidden" name="goods_id" class="goods_id" value="">
<input type="hidden" name="goods_type" class="goods_type" value="">
<div class="clear"></div>
<a class="btn btn-success add-to-lists">添加至商品列表</a>
</div>
<style>
.carts-info{ display: none; }
</style>
<!-- 商品列表 -->
<div class="carts-info">
<table id="list" lay-filter="list"></table>
<textarea name="remark" id="remark" class="layui-textarea" placeholder="填写订单备注信息"></textarea>
<script type="text/html" id="buyer_id">
@{{# if (d.buyer_id != 0) { }}
@{{ d.buyer_id }}
@{{# } }}
</script>
<script type="text/html" id="list_action">
<a class="btn btn-xs btn-danger" lay-event="del">删除</a>
</script>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">商品总额:</label>
<span class="goods_amount_val"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<input type="hidden" class="user_coupon_id" name="user_coupon_id" value="">
<label class="layui-form-label">选择优惠券:</label>
<div class="layui-input-inline">
<select name="user_coupon" id="user_coupon" class="form-control">
<option value="">请选择</option>
</select>
</div>
</div>
</div>
</div>
<div class="layui-row preferential_price">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">优惠金额:</label>
<span class="preferential_price_val"></span>
</div>
</div>
</div>
<div class="layui-row extend_fee">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">附加费:</label>
<span class="extend_fee_val">0.00</span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">运费:</label>
<span class="express_fee_val">0.00</span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">应付金额:</label>
<span class="text-danger order_amount">0.00</span>
</div>
</div>
</div>
<div class="ibox-title" style="text-align: right;">
<a class="btn btn-success submit-order" data-type="1">提交</a>
</div>
<style type="text/css">
.inv-com-section{ display: none; }
.invoice-section-2, .invoice-section-3, .invoice-section-4{ display: none; border: 1px solid #ccc; }
</style>
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<input type="hidden" name="tax_id" class="tax_id" value="">
<label class="layui-form-label">开票方式:</label>
<div class="layui-input-block">
<input type="radio" class="radio-invoice-type" name="inv_type" value="3" title="增值税专用发票" lay-filter="invoice_type">
<input type="radio" class="radio-invoice-type" name="inv_type" value="4" title="增值税普通发票" lay-filter="invoice_type">
<input type="radio" class="radio-invoice-type" name="inv_type" value="" title="不开发票" lay-filter="invoice_type">
<input type="radio" class="radio-invoice-type" name="inv_type" value="2" title="个人" lay-filter="invoice_type">
</div>
</div>
</div>
</div>
<div class="inv-com-section">
<div class="layui-row">
<div class="layui-col-xs6 layui-col-sm6 layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">发票/公司:</label>
<div class="layui-input-inline">
<input type="text" name="com_name" lay-verify="" placeholder="请输入公司" autocomplete="off" class="layui-input inv_com_name inv-user-info"
</div>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">联系方式:</label>
<div class="layui-input-inline">
<input type="text" name="account" lay-verify="required" placeholder="请输入联系方式" autocomplete="off" class="layui-input account inv-user-info">
</div>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">联系人:</label>
<div class="layui-input-inline">
<input type="text" name="user_name" lay-verify="" placeholder="请输入联系人" autocomplete="off" class="layui-input">
</div>
</div>
</div>
</div>
</div>
<!-- 与开票方式联动展示 -->
<!-- 个人 -->
<div class="invoice-section-2" style="margin-top: 10px;">
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item" style="margin-top: 5px;">
<label class="layui-form-label">选择个人发票:</label>
<div class="layui-input-inline layui-form" lay-filter="user-tax">
<select name="user_tax_id" id="user_tax_id" lay-filter="user_tax_id">
</select>
</div>
</div>
</div>
</div>
</div>
<!-- 增值税专用发票展示信息 -->
<div class="invoice-section-3">
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">发票抬头:</label>
<span class="tax_title"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">开户银行:</label>
<span class="com_bank"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">收票人:</label>
<span class="consignee"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">税务登记号:</label>
<span class="tax_no"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">银行卡号:</label>
<span class="com_bank_num"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">发票联系电话:</label>
<span class="consignee_phone"></span>
</div>
</div>
</div>
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">公司电话:</label>
<span class="com_tel"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">公司注册地址:</label>
<span class="com_addr"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">收票地址:</label>
<span class="consignee_address"></span>
</div>
</div>
</div>
</div>
<!-- 增值税普通发票展示信息 -->
<div class="invoice-section-4">
<div class="layui-row">
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">发票抬头:</label>
<span class="tax_title_1"></span>
</div>
</div>
<div class="layui-col-xs4 layui-col-sm4 layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">税务登记号:</label>
<span class="tax_no_1"></span>
</div>
</div>
</div>
</div>
\ No newline at end of file
...@@ -33,4 +33,3 @@ ...@@ -33,4 +33,3 @@
</div> </div>
</body> </body>
...@@ -140,13 +140,11 @@ ...@@ -140,13 +140,11 @@
<dt>订单来源:</dt> <dt>订单来源:</dt>
<dd> <dd>
<select id="order_source_pf" name="order_source_pf" class="form-control order_source_pf selectpicker" title="全部" multiple> <select id="order_source_pf" name="order_source_pf" class="form-control order_source_pf selectpicker" title="全部" multiple>
<option value="1">PC端</option> @if (Config('params.order_source_pf'))
<option value="2">移动端</option> @foreach (Config('params.order_source_pf') as $k=>$v)
<option value="3">后台</option> <option value="{{ $k }}">{{ $v }}</option>
<option value="4">京东</option> @endforeach
<option value="5">ERP</option> @endif
<option value="6">小程序</option>
<option value="7">开放平台</option>
</select> </select>
</dd> </dd>
</dl> </dl>
......
...@@ -115,12 +115,11 @@ ...@@ -115,12 +115,11 @@
<dt>订单来源:</dt> <dt>订单来源:</dt>
<dd> <dd>
<select id="order_source_pf" name="order_source_pf" class="form-control order_source_pf selectpicker" title="全部" multiple> <select id="order_source_pf" name="order_source_pf" class="form-control order_source_pf selectpicker" title="全部" multiple>
<option value="1">PC端</option> @if (Config('params.order_source_pf'))
<option value="2">移动端</option> @foreach (Config('params.order_source_pf') as $k=>$v)
<option value="3">后台</option> <option value="{{ $k }}">{{ $v }}</option>
<option value="4">京东</option> @endforeach
<option value="6">小程序</option> @endif
<option value="7">象牙宝</option>
</select> </select>
</dd> </dd>
</dl> </dl>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment