待分配库添加
This commit is contained in:
parent
983ceb39c3
commit
3989897799
|
|
@ -10,6 +10,7 @@ use App\Models\User;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Redis;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class ApiController extends Controller
|
||||
{
|
||||
|
|
@ -18,18 +19,18 @@ class ApiController extends Controller
|
|||
$role_id = $request->input('role_id');
|
||||
$role = null;
|
||||
$checkedIds = [];
|
||||
if ($role_id){
|
||||
$role = Role::query()->where('id',$role_id)->first();
|
||||
if ($role_id) {
|
||||
$role = Role::query()->where('id', $role_id)->first();
|
||||
}
|
||||
$permissions = Permission::query()->orderByDesc('id')->get();
|
||||
foreach ($permissions as $permission){
|
||||
if ($role != null){
|
||||
if ($role->hasPermissionTo($permission)){
|
||||
array_push($checkedIds,$permission->id);
|
||||
foreach ($permissions as $permission) {
|
||||
if ($role != null) {
|
||||
if ($role->hasPermissionTo($permission)) {
|
||||
array_push($checkedIds, $permission->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->success('ok',['trees' => $permissions,'checkedId'=>$checkedIds]);
|
||||
return $this->success('ok', ['trees' => $permissions, 'checkedId' => $checkedIds]);
|
||||
}
|
||||
|
||||
public function getRoleByUserId(Request $request)
|
||||
|
|
@ -37,18 +38,18 @@ class ApiController extends Controller
|
|||
$data = [];
|
||||
$user_id = $request->input('user_id');
|
||||
$user = null;
|
||||
if ($user_id){
|
||||
$user = User::query()->where('id',$user_id)->first();
|
||||
if ($user_id) {
|
||||
$user = User::query()->where('id', $user_id)->first();
|
||||
}
|
||||
$roles = Role::query()->orderByDesc('id')->get();
|
||||
foreach ($roles as $role){
|
||||
array_push($data,[
|
||||
foreach ($roles as $role) {
|
||||
array_push($data, [
|
||||
'name' => $role->display_name,
|
||||
'value' => $role->id,
|
||||
'selected' => $user != null && $user->hasRole($role),
|
||||
]);
|
||||
}
|
||||
return $this->success('ok',$data);
|
||||
return $this->success('ok', $data);
|
||||
}
|
||||
|
||||
public function getDepartmentByUserId(Request $request)
|
||||
|
|
@ -56,16 +57,16 @@ class ApiController extends Controller
|
|||
$data = [];
|
||||
$user_id = $request->input('user_id');
|
||||
$user = null;
|
||||
if ($user_id){
|
||||
$user = User::query()->where('id',$user_id)->first();
|
||||
if ($user_id) {
|
||||
$user = User::query()->where('id', $user_id)->first();
|
||||
}
|
||||
$departments = Department::query()->orderByDesc('id')->get();
|
||||
foreach ($departments as $d){
|
||||
foreach ($departments as $d) {
|
||||
$d->value = $d->id;
|
||||
$d->selected = $user != null && $user->department_id == $d->id;
|
||||
}
|
||||
$data = recursive($departments);
|
||||
return $this->success('ok',$data);
|
||||
return $this->success('ok', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -79,11 +80,11 @@ class ApiController extends Controller
|
|||
$user_id = $request->input('user_id');
|
||||
$callee = $request->input('callee');
|
||||
$user_data = $request->input('user_data');
|
||||
$user = User::query()->with('sip')->where('id','=',$user_id)->first();
|
||||
if ($user->sip == null){
|
||||
$user = User::query()->with('sip')->where('id', '=', $user_id)->first();
|
||||
if ($user->sip == null) {
|
||||
return $this->error('用户未分配外呼号');
|
||||
}
|
||||
if ($user->sip->status != 1){
|
||||
if ($user->sip->status != 1) {
|
||||
return $this->error('用户外呼号未在线');
|
||||
}
|
||||
try {
|
||||
|
|
@ -100,15 +101,55 @@ class ApiController extends Controller
|
|||
'user_data' => $user_data,
|
||||
'gateway_id' => $user->sip->gateway_id ?? 0,
|
||||
]);
|
||||
Redis::rpush(config('freeswitch.redis_key.dial'),$cdr->uuid);
|
||||
return $this->success('呼叫成功',[
|
||||
Redis::rpush(config('freeswitch.redis_key.dial'), $cdr->uuid);
|
||||
return $this->success('呼叫成功', [
|
||||
'uuid' => $cdr->uuid,
|
||||
'call_time' => date('Y-m-d H:i:s'),
|
||||
]);
|
||||
}catch (\Exception $exception){
|
||||
Log::error('呼叫异常:'.$exception->getMessage());
|
||||
} catch (\Exception $exception) {
|
||||
Log::error('呼叫异常:' . $exception->getMessage());
|
||||
return $this->error('呼叫失败');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//文件上传
|
||||
public function upload(Request $request)
|
||||
{
|
||||
//上传文件最大大小,单位M
|
||||
$maxSize = 10;
|
||||
//支持的上传图片类型
|
||||
$allowed_extensions = ["png", "jpg", "gif", "xlsx", "xls"];
|
||||
|
||||
$file = $request->file('file');
|
||||
|
||||
//检查文件是否上传完成
|
||||
if ($file->isValid()) {
|
||||
//检测图片类型
|
||||
$ext = $file->getClientOriginalExtension();
|
||||
if (!in_array(strtolower($ext), $allowed_extensions)) {
|
||||
return $this->success("请上传" . implode(",", $allowed_extensions) . "格式的图片");
|
||||
}
|
||||
//检测图片大小
|
||||
if ($file->getSize() > $maxSize * 1024 * 1024) {
|
||||
return $this->success("图片大小限制" . $maxSize . "M");
|
||||
}
|
||||
} else {
|
||||
return $this->error('文件不完整');
|
||||
}
|
||||
$newFile = date('Y/m/d/') . uuid_generate() . "." . $file->getClientOriginalExtension();
|
||||
$disk = Storage::disk('uploads');
|
||||
$res = $disk->put($newFile, file_get_contents($file->getRealPath()));
|
||||
if ($res) {
|
||||
$data = [
|
||||
'data' => $newFile,
|
||||
'url' => '/uploads/' . $newFile,
|
||||
];
|
||||
return $this->success('上传成功', $data);
|
||||
} else {
|
||||
Log::error('文件上传异常:' . $file->getErrorMessage());
|
||||
$this->error('上传失败');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Crm;
|
|||
use App\Http\Controllers\Controller;
|
||||
use App\Models\CustomerField;
|
||||
use App\Models\Customer;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -18,16 +19,17 @@ class AssignmentController extends Controller
|
|||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\View|\Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function assignment(Request $request)
|
||||
public function index(Request $request)
|
||||
{
|
||||
$users = User::query()->get();
|
||||
if ($request->ajax()){
|
||||
$res = Customer::query()
|
||||
->where('status','=',1)
|
||||
->orderByDesc()
|
||||
->orderByDesc('id')
|
||||
->paginate($request->get('limit', 30));
|
||||
return $this->success('ok',$res->items(),$res->total());
|
||||
}
|
||||
return View::make('crm.assignment.index');
|
||||
return View::make('crm.assignment.index',compact('users'));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class CustomerFieldController extends Controller
|
|||
if ($request->ajax()){
|
||||
$res = CustomerField::query()
|
||||
->orderBy('sort','asc')
|
||||
->orderBy('id','desc')
|
||||
->paginate($request->get('limit', 30));
|
||||
return $this->success('ok',$res->items(),$res->total());
|
||||
}
|
||||
|
|
@ -49,7 +50,7 @@ class CustomerFieldController extends Controller
|
|||
public function edit($id)
|
||||
{
|
||||
$model = CustomerField::findOrFail($id);
|
||||
return View::make('crm.customer_field.create',compact('model'));
|
||||
return View::make('crm.customer_field.edit',compact('model'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ class UserController extends Controller
|
|||
return $this->error();
|
||||
}
|
||||
}
|
||||
return View::make('user.changeMyPassword');
|
||||
return View::make('system.user.changeMyPassword');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,11 @@ return [
|
|||
'endpoint' => env('AWS_ENDPOINT'),
|
||||
],
|
||||
|
||||
'uploads' => [
|
||||
'driver' => 'local',
|
||||
'root' => public_path('uploads'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
];
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ return [
|
|||
'radio' => '单选',
|
||||
'checkbox' => '多选',
|
||||
'select' => '下拉选择',
|
||||
'image' => '图片上传',
|
||||
'image' => '单图片上传',
|
||||
'images' => '多图片上传',
|
||||
'textarea' => '文本框',
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -132,6 +132,14 @@ class MenuTableSeeder extends Seeder
|
|||
'type' => 1,
|
||||
'permission_name' => 'crm.customer_field',
|
||||
],
|
||||
[
|
||||
'name' => '分配库',
|
||||
'route' => 'crm.assignment',
|
||||
'url' => null,
|
||||
'icon' => 'layui-icon-transfer',
|
||||
'type' => 1,
|
||||
'permission_name' => 'crm.assignment',
|
||||
],
|
||||
]
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -154,6 +154,17 @@ class UserTableSeeder extends Seeder
|
|||
['name' => 'crm.customer_field.destroy', 'display_name' => '删除'],
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'crm.assignment',
|
||||
'display_name' => '分配库',
|
||||
'child' => [
|
||||
['name' => 'crm.assignment.create', 'display_name' => '添加'],
|
||||
['name' => 'crm.assignment.edit', 'display_name' => '编辑'],
|
||||
['name' => 'crm.assignment.import', 'display_name' => '导入'],
|
||||
['name' => 'crm.assignment.to', 'display_name' => '分配'],
|
||||
['name' => 'crm.assignment.destroy', 'display_name' => '删除'],
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -89,6 +89,15 @@
|
|||
return false;
|
||||
})
|
||||
|
||||
//搜索
|
||||
form.on('submit(search)',function(data) {
|
||||
layui.table.reload('dataTable',{
|
||||
where: data.field,
|
||||
page: {curr:1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
window.newTab = function (url, tit) {
|
||||
if (top.layui.index) {
|
||||
top.layui.index.openTabsPage(url, tit)
|
||||
|
|
|
|||
|
|
@ -8,18 +8,6 @@
|
|||
var upload = layui.upload;
|
||||
var laydate = layui.laydate;
|
||||
|
||||
form.on('submit(go)',function (data) {
|
||||
var load = layer.load();
|
||||
$.post(data.form.action,data.field,function (res) {
|
||||
layer.close(load);
|
||||
layer.msg(res.msg,{icon:res.code==0?1:2},function () {
|
||||
if (res.code==0){
|
||||
location.reload();
|
||||
}
|
||||
})
|
||||
});
|
||||
return false;
|
||||
})
|
||||
|
||||
//图片
|
||||
$(".uploadPic").each(function (index,elem) {
|
||||
|
|
|
|||
|
|
@ -1,103 +1,118 @@
|
|||
@extends('admin.base')
|
||||
@extends('base')
|
||||
|
||||
@section('content')
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header layuiadmin-card-header-auto">
|
||||
<h2>添加</h2>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<form action="{{route('admin.assignment.store')}}" method="post" class="layui-form">
|
||||
<form action="{{route('crm.assignment.store')}}" method="post" class="layui-form">
|
||||
{{csrf_field()}}
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">公司名称</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="text" name="company_name" lay-verify="required" value="{{$model->company_name??old('company_name')}}" placeholder="请输入公司名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">姓名</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="text" name="name" lay-verify="required" value="{{$model->name??old('name')}}" placeholder="请输入名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">电话</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="number" name="phone" lay-verify="required|phone" value="{{$model->phone??old('phone')}}" placeholder="请输入联系电话">
|
||||
</div>
|
||||
</div>
|
||||
@foreach($designs as $d)
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">{{$d->field_label}}</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
@switch($d->field_type)
|
||||
@case('input')
|
||||
<input type="input" class="layui-input" name="{{$d->field_key}}" value="{{$d->field_value}}" @if($d->required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}" >
|
||||
@break
|
||||
@case('textarea')
|
||||
<textarea name="{{$d->field_key}}" class="layui-textarea" @if($d->required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}">{{$d->field_value}}</textarea>
|
||||
@break
|
||||
@case('select')
|
||||
<select name="{{$d->field_key}}" @if($d->required==1) lay-verify="required" @endif>
|
||||
@if($d->field_option&&strpos($d->field_option,'|'))
|
||||
@foreach(explode("|",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
@endphp
|
||||
<option value="{{$key}}" @if($key==$d->field_value) selected @endif >{{$val}}</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
@break
|
||||
@case('radio')
|
||||
@if($d->field_option&&strpos($d->field_option,'|'))
|
||||
@foreach(explode("|",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
@endphp
|
||||
<input type="radio" name="{{$d->field_key}}" value="{{$key}}" @if($key==$d->field_value) checked @endif title="{{$val}}">
|
||||
@endforeach
|
||||
@endif
|
||||
@break
|
||||
@case('checkbox')
|
||||
@if($d->field_option&&strpos($d->field_option,'|'))
|
||||
@foreach(explode("|",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
$fieldValue = [];
|
||||
if ($d->field_value&&strpos($d->field_value,',')){
|
||||
$fieldValue = explode(",",$d->field_value);
|
||||
}
|
||||
@endphp
|
||||
<input type="checkbox" name="{{$d->field_key}}[]" value="{{$key}}" @if(in_array($key,$fieldValue) || $key==$d->field_value ) checked @endif title="{{$val}}">
|
||||
@endforeach
|
||||
@endif
|
||||
@break
|
||||
@case('image')
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn layui-btn-sm uploadPic"><i class="layui-icon"></i>图片上传</button>
|
||||
<div class="layui-upload-list" >
|
||||
<ul class="layui-upload-box layui-clear">
|
||||
</ul>
|
||||
<input type="hidden" class="layui-upload-input" name="{{$d->field_key}}" value="{{$d->field_value}}">
|
||||
</div>
|
||||
</div>
|
||||
@break
|
||||
@default
|
||||
@break
|
||||
@endswitch
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<h2>基础信息</h2>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">客户名称</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="text" name="name" placeholder="请输入客户名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">联系人</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="text" name="contact_name" placeholder="请输入联系人">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">联系电话</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input class="layui-input" type="number" name="contact_phone" lay-verify="required|phone" placeholder="请输入联系电话">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@include('admin.assignment._form')
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<h2>扩展信息</h2>
|
||||
</div>
|
||||
@foreach($fields as $d)
|
||||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">{{$d->field_label}}</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
@switch($d->field_type)
|
||||
@case('input')
|
||||
<input type="input" class="layui-input" name="{{$d->field_key}}" value="{{$d->field_value}}" @if($d->required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}" >
|
||||
@break
|
||||
@case('textarea')
|
||||
<textarea name="{{$d->field_key}}" class="layui-textarea" @if($d->required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}">{{$d->field_value}}</textarea>
|
||||
@break
|
||||
@case('select')
|
||||
<select name="{{$d->field_key}}" @if($d->required==1) lay-verify="required" @endif>
|
||||
<option value=""></option>
|
||||
@if($d->field_option&&strpos($d->field_option,"\n"))
|
||||
@foreach(explode("\n",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
@endphp
|
||||
<option value="{{$key}}" @if($key==$d->field_value) selected @endif >{{$val}}</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
@break
|
||||
@case('radio')
|
||||
@if($d->field_option&&strpos($d->field_option,"\n"))
|
||||
@foreach(explode("\n",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
@endphp
|
||||
<input type="radio" name="{{$d->field_key}}" value="{{$key}}" @if($key==$d->field_value) checked @endif title="{{$val}}">
|
||||
@endforeach
|
||||
@endif
|
||||
@break
|
||||
@case('checkbox')
|
||||
@if($d->field_option&&strpos($d->field_option,"\n"))
|
||||
@foreach(explode("\n",$d->field_option) as $v)
|
||||
@php
|
||||
$key = \Illuminate\Support\Str::before($v,':');
|
||||
$val = \Illuminate\Support\Str::after($v,':');
|
||||
$fieldValue = [];
|
||||
if ($d->field_value&&strpos($d->field_value,',')){
|
||||
$fieldValue = explode(",",$d->field_value);
|
||||
}
|
||||
@endphp
|
||||
<input type="checkbox" name="{{$d->field_key}}[]" value="{{$key}}" @if(in_array($key,$fieldValue) || $key==$d->field_value ) checked @endif title="{{$val}}">
|
||||
@endforeach
|
||||
@endif
|
||||
@break
|
||||
@case('image')
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn layui-btn-sm uploadPic"><i class="layui-icon"></i>图片上传</button>
|
||||
<div class="layui-upload-list" >
|
||||
<ul class="layui-upload-box layui-clear">
|
||||
</ul>
|
||||
<input type="hidden" class="layui-upload-input" name="{{$d->field_key}}" value="{{$d->field_value}}">
|
||||
</div>
|
||||
</div>
|
||||
@break
|
||||
@default
|
||||
@break
|
||||
@endswitch
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="go-close-refresh" >确认</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
@include('admin.assignment._js')
|
||||
@include('crm.assignment._js')
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@extends('admin.base')
|
||||
@extends('base')
|
||||
|
||||
@section('content')
|
||||
<div class="layui-card">
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
<h2>更新</h2>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<form action="{{route('admin.assignment.update',['id'=>$model->id])}}" method="post" class="layui-form">
|
||||
<form action="{{route('crm.assignment.update',['id'=>$model->id])}}" method="post" class="layui-form">
|
||||
{{method_field('put')}}
|
||||
{{csrf_field()}}
|
||||
<div class="layui-form-item">
|
||||
|
|
|
|||
|
|
@ -3,19 +3,19 @@
|
|||
@section('content')
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header layuiadmin-card-header-auto">
|
||||
<form class="layui-form">
|
||||
<form class="layui-form" action="{{route("crm.assignment")}}">
|
||||
<div class="layui-btn-group">
|
||||
@can('crm.assignment.destroy')
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
|
||||
@endcan
|
||||
@can('crm.assignment.create')
|
||||
<a href="{{route('admin.assignment.create')}}" class="layui-btn layui-btn-sm" id="listDelete">录入</a>
|
||||
<a class="layui-btn layui-btn-sm" id="addBtn">录入</a>
|
||||
@endcan
|
||||
@can('crm.assignment.import')
|
||||
<button type="button" id="import_project" class="layui-btn layui-btn-sm">导入</button>
|
||||
<a href="{{route('admin.project.downloadTemplate')}}" class="layui-btn layui-btn-sm layui-btn-warm">模板下载</a>
|
||||
<a href="" class="layui-btn layui-btn-sm layui-btn-warm">模板下载</a>
|
||||
@endcan
|
||||
|
||||
<button type="button" lay-submit lay-filter="search" class="layui-btn layui-btn-sm" >搜索</button>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
|
|
@ -36,25 +36,27 @@
|
|||
<input type="text" name="company_name" placeholder="请输入公司名称" class="layui-input" >
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" lay-submit lay-filter="search" class="layui-btn layui-btn-sm" >搜索</button>
|
||||
|
||||
</div>
|
||||
@can('crm.assignment.to')
|
||||
</form>
|
||||
@can('crm.assignment.to')
|
||||
<form class="layui-form" action="{{route("crm.assignment.to")}}">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label for="" class="layui-form-label">用户:</label>
|
||||
<div class="layui-input-block" style="width: 275px">
|
||||
<select id="user_id">
|
||||
<select name="user_id" lay-verify="required">
|
||||
<option value=""></option>
|
||||
@foreach($users as $user)
|
||||
<option value="{{$user->id}}">{{$user->nickname}}</option>
|
||||
@foreach($users as $d)
|
||||
<option value="{{$d->id}}">{{$d->nickname}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="layui-btn layui-btn-sm" id="assignmentBtn" >分配</button>
|
||||
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="assignment_to" >分配</button>
|
||||
</div>
|
||||
@endcan
|
||||
</form>
|
||||
@endcan
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<table id="dataTable" lay-filter="dataTable"></table>
|
||||
|
|
@ -100,22 +102,15 @@
|
|||
//用户表格初始化
|
||||
var dataTable = table.render({
|
||||
elem: '#dataTable'
|
||||
,height: 500
|
||||
,url: "{{ route('admin.assignment.data') }}" //数据接口
|
||||
,height: 'full-200'
|
||||
,url: "{{ route('crm.assignment') }}" //数据接口
|
||||
,page: true //开启分页
|
||||
,cols: [[ //表头
|
||||
{checkbox: true,fixed: true}
|
||||
,{field: 'company_name', title: '公司名称'}
|
||||
,{field: 'name', title: '姓名'}
|
||||
,{field: 'phone', title: '联系电话'}
|
||||
,{field: 'created_at', title: '创建时间'}
|
||||
,{field: 'owner_user_id', title: '状态', templet:function (d) {
|
||||
if(d.owner_user_id==0){
|
||||
return '<span class="layui-badge">待分配</span>'
|
||||
}else{
|
||||
return '<span class="layui-badge layui-bg-green">已分配</span>'
|
||||
}
|
||||
}}
|
||||
{field: 'uuid', title: '客户编号'}
|
||||
,{field: 'name', title: '客户名称'}
|
||||
,{field: 'contact_name', title: '联系人'}
|
||||
,{field: 'contact_phone', title: '联系电话'}
|
||||
,{field: 'created_at', title: '录入时间'}
|
||||
,{fixed: 'right', width: 250, align:'center', toolbar: '#options', title:'操作'}
|
||||
]]
|
||||
});
|
||||
|
|
@ -125,18 +120,24 @@
|
|||
var data = obj.data //获得当前行数据
|
||||
,layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if(layEvent === 'edit'){
|
||||
location.href = '/admin/assignment/'+data.id+'/edit';
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: "编辑",
|
||||
shadeClose: true,
|
||||
area: ["90%","90%"],
|
||||
content: '/crm/assignment/'+data.id+'/edit',
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
//搜索
|
||||
form.on('submit(search)',function(data) {
|
||||
dataTable.reload({
|
||||
where: data.field,
|
||||
page: {curr:1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$("#addBtn").click(function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: "添加",
|
||||
shadeClose: true,
|
||||
area: ["90%","90%"],
|
||||
content: "{{route("crm.assignment.create")}}",
|
||||
})
|
||||
})
|
||||
|
||||
//导入
|
||||
$("#import_project").click(function() {
|
||||
|
|
@ -149,7 +150,7 @@
|
|||
})
|
||||
upload.render({
|
||||
elem: '#uploadBtn'
|
||||
,url: '{{route('admin.assignment.import')}}'
|
||||
,url: '{{route('crm.assignment.import')}}'
|
||||
,auto: false
|
||||
,multiple: false
|
||||
,accept: 'file'
|
||||
|
|
@ -168,8 +169,8 @@
|
|||
});
|
||||
})
|
||||
|
||||
//批量删除
|
||||
$("#listDelete").click(function () {
|
||||
//分配
|
||||
form.on('submit(assignment_to)', function (data) {
|
||||
var ids = [];
|
||||
var hasCheck = table.checkStatus('dataTable');
|
||||
var hasCheckData = hasCheck.data;
|
||||
|
|
@ -178,66 +179,27 @@
|
|||
ids.push(element.id)
|
||||
})
|
||||
}
|
||||
if (ids.length > 0) {
|
||||
layer.confirm('确认删除吗?', function (index) {
|
||||
layer.close(index);
|
||||
var load = layer.load();
|
||||
$.post("{{ route('admin.assignment.destroy') }}", {
|
||||
_method: 'delete',
|
||||
ids: ids
|
||||
}, function (res) {
|
||||
layer.close(load);
|
||||
if (res.code == 0) {
|
||||
layer.msg(res.msg, {icon: 1}, function () {
|
||||
dataTable.reload({page: {curr: 1}});
|
||||
})
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
if (ids.length === 0){
|
||||
layer.msg('请选择分配项', {icon: 2});
|
||||
return false
|
||||
}
|
||||
layer.confirm('确认分配吗?', function (index) {
|
||||
layer.close(index);
|
||||
let load = layer.load();
|
||||
$.post(data.form.action, {ids:ids,user_id:data.field.user_id}, function (res) {
|
||||
layer.close(load);
|
||||
let code = res.code
|
||||
layer.msg(res.msg, {time: 2000, icon: code == 0 ? 1 : 2}, function () {
|
||||
if (code === 0) {
|
||||
dataTable.reload()
|
||||
}
|
||||
});
|
||||
})
|
||||
} else {
|
||||
layer.msg('请选择删除项', {icon: 2});
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
return false;
|
||||
})
|
||||
|
||||
//分配
|
||||
$("#assignmentBtn").click(function () {
|
||||
var ids = [];
|
||||
var hasCheck = table.checkStatus('dataTable');
|
||||
var hasCheckData = hasCheck.data;
|
||||
if (hasCheckData.length > 0) {
|
||||
$.each(hasCheckData, function (index, element) {
|
||||
ids.push(element.id)
|
||||
})
|
||||
}
|
||||
var user_id = $("#user_id").val();
|
||||
if(user_id == ''){
|
||||
layer.msg('请选择用户',{icon:2});
|
||||
return false;
|
||||
}
|
||||
if (ids.length > 0) {
|
||||
layer.confirm('确认分配吗?', function (index) {
|
||||
layer.close(index);
|
||||
var load = layer.load();
|
||||
$.post("{{ route('admin.assignment.to') }}", {
|
||||
ids: ids,
|
||||
user_id:$("#user_id").val()
|
||||
}, function (res) {
|
||||
layer.close(load);
|
||||
if (res.code == 0) {
|
||||
layer.msg(res.msg, {icon: 1}, function () {
|
||||
dataTable.reload({page: {curr: 1}});
|
||||
})
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
}
|
||||
});
|
||||
})
|
||||
} else {
|
||||
layer.msg('请选择分配项', {icon: 2});
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">字段选项</label>
|
||||
<div class="layui-input-inline">
|
||||
<textarea name="field_option" class="layui-textarea">{{$model->field_option??''}}</textarea>
|
||||
<textarea name="field_option" class="layui-textarea" placeholder="单选,多选,下拉选择">{{$model->field_option??''}}</textarea>
|
||||
</div>
|
||||
<div class="layui-word-aux layui-form-mid">例:<br/>1:男<br/>2:女<br/>3:保密</div>
|
||||
</div>
|
||||
|
|
@ -51,8 +51,8 @@
|
|||
<div class="layui-form-item">
|
||||
<label for="" class="layui-form-label">可见性</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="visiable" value="1" title="显示" @if(!isset($model) || (isset($model)&&$model->required==1)) checked @endif >
|
||||
<input type="radio" name="visiable" value="2" title="隐藏" @if(isset($model)&&$model->required==2) checked @endif>
|
||||
<input type="radio" name="visiable" value="1" title="显示" @if(!isset($model) || (isset($model)&&$model->visiable==1)) checked @endif >
|
||||
<input type="radio" name="visiable" value="2" title="隐藏" @if(isset($model)&&$model->visiable==2) checked @endif>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
|
@ -64,6 +64,6 @@
|
|||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button type="button" class="layui-btn" lay-submit lay-filter="go-close-refresh" >确 认</button>
|
||||
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="go-close-refresh" >确认</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -41,13 +41,11 @@
|
|||
//用户表格初始化
|
||||
var dataTable = table.render({
|
||||
elem: '#dataTable'
|
||||
,height: 500
|
||||
,height: 'full-200'
|
||||
,url: "{{ route('crm.customer_field') }}" //数据接口
|
||||
,page: true //开启分页
|
||||
,cols: [[ //表头
|
||||
{checkbox: true,fixed: true}
|
||||
//,{field: 'id', title: 'ID', sort: true,width:80}
|
||||
,{field: 'field_label', title: '字段名称'}
|
||||
{field: 'field_label', title: '字段名称'}
|
||||
,{field: 'field_key', title: '字段Key'}
|
||||
,{field: 'field_type_name', title: '字段类型'}
|
||||
,{field: 'field_option', title: '字段配置项'}
|
||||
|
|
@ -60,7 +58,7 @@
|
|||
return d.required==1?'是':'否';
|
||||
}}
|
||||
,{field: 'created_at', title: '创建时间'}
|
||||
,{fixed: 'right', width: 150, align:'center', toolbar: '#options', title:'操作'}
|
||||
,{align:'center', toolbar: '#options', title:'操作'}
|
||||
]]
|
||||
});
|
||||
|
||||
|
|
@ -73,7 +71,7 @@
|
|||
} else if(layEvent === 'edit'){
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: "添加",
|
||||
title: "编辑",
|
||||
shadeClose: true,
|
||||
area: ["800px","600px"],
|
||||
content: '/crm/customer_field/'+data.id+'/edit',
|
||||
|
|
|
|||
|
|
@ -21,3 +21,4 @@ Route::post('/api/get_permission_by_role_id','ApiController@getPermissionByRoleI
|
|||
Route::post('/api/get_role_by_user_id','ApiController@getRoleByUserId')->name('api.getRoleByUserId');
|
||||
Route::post('/api/get_department_by_user_id','ApiController@getDepartmentByUserId')->name('api.getDepartmentByUserId');
|
||||
Route::post('/api/call','ApiController@call')->name('api.call');
|
||||
Route::post('/api/upload','ApiController@upload')->name('api.upload');
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ Route::group(['middleware'=>'auth'],function (){
|
|||
Route::get('/console','IndexController@console')->name('index.console');
|
||||
Route::get('/onlinecall','IndexController@onlinecall')->name('index.onlinecall');
|
||||
//修改密码
|
||||
Route::get('/change_my_password_form','UserController@changeMyPassword')->name('index.changeMyPasswordForm')->middleware('auth');
|
||||
Route::post('/change_my_password','UserController@changeMyPassword')->name('index.changeMyPassword')->middleware('auth');
|
||||
Route::get('/change_my_password_form','System\UserController@changeMyPassword')->name('index.changeMyPasswordForm')->middleware('auth');
|
||||
Route::post('/change_my_password','System\UserController@changeMyPassword')->name('index.changeMyPassword')->middleware('auth');
|
||||
});
|
||||
|
||||
/*
|
||||
|
|
@ -224,14 +224,31 @@ Route::group(['prefix'=>'crm','namespace'=>'Crm','middleware'=>['auth','permissi
|
|||
Route::group([],function (){
|
||||
Route::get('customer_field','CustomerFieldController@index')->name('crm.customer_field')->middleware('permission:crm.customer_field');
|
||||
//添加
|
||||
Route::get('customer_field/create','CustomerFieldController@create')->name('crm.customer_field.create')->middleware('permission:crm.customer_field');
|
||||
Route::post('customer_field/store','CustomerFieldController@store')->name('crm.customer_field.store')->middleware('permission:crm.customer_field');
|
||||
Route::get('customer_field/create','CustomerFieldController@create')->name('crm.customer_field.create')->middleware('permission:crm.customer_field.create');
|
||||
Route::post('customer_field/store','CustomerFieldController@store')->name('crm.customer_field.store')->middleware('permission:crm.customer_field.create');
|
||||
//编辑
|
||||
Route::get('customer_field/{id}/edit','CustomerFieldController@edit')->name('crm.customer_field.edit')->middleware('permission:crm.customer_field');
|
||||
Route::put('customer_field/{id}/update','CustomerFieldController@update')->name('crm.customer_field.update')->middleware('permission:crm.customer_field');
|
||||
Route::get('customer_field/{id}/edit','CustomerFieldController@edit')->name('crm.customer_field.edit')->middleware('permission:crm.customer_field.edit');
|
||||
Route::put('customer_field/{id}/update','CustomerFieldController@update')->name('crm.customer_field.update')->middleware('permission:crm.customer_field.edit');
|
||||
//删除
|
||||
Route::delete('customer_field/destroy','CustomerFieldController@destroy')->name('crm.customer_field.destroy')->middleware('permission:crm.customer_field');
|
||||
Route::delete('customer_field/destroy','CustomerFieldController@destroy')->name('crm.customer_field.destroy')->middleware('permission:crm.customer_field.destroy');
|
||||
|
||||
});
|
||||
|
||||
//待分配库
|
||||
Route::group([],function (){
|
||||
Route::get('assignment','AssignmentController@index')->name('crm.assignment')->middleware('permission:crm.assignment');
|
||||
//删除
|
||||
Route::delete('assignment/destroy','AssignmentController@destroy')->name('crm.assignment.destroy')->middleware('permission:crm.assignment.destroy');
|
||||
//分配
|
||||
Route::post('assignment/to','AssignmentController@to')->name('crm.assignment.to')->middleware('permission:crm.assignment.to');
|
||||
//导入
|
||||
Route::post('assignment/import','AssignmentController@import')->name('crm.assignment.import')->middleware('permission:crm.assignment.import');
|
||||
//添加
|
||||
Route::get('assignment/create','AssignmentController@create')->name('crm.assignment.create')->middleware('permission:crm.assignment.create');
|
||||
Route::post('assignment/store','AssignmentController@store')->name('crm.assignment.store')->middleware('permission:crm.assignment.create');
|
||||
//编辑
|
||||
Route::get('assignment/{id}/edit','AssignmentController@edit')->name('crm.assignment.edit')->middleware('permission:crm.assignment.edit');
|
||||
Route::put('assignment/{id}/update','AssignmentController@update')->name('crm.assignment.update')->middleware('permission:crm.assignment.edit');
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue