diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index b603fb14..9004e48f 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -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('上传失败'); + } + } + } diff --git a/app/Http/Controllers/Crm/AssignmentController.php b/app/Http/Controllers/Crm/AssignmentController.php index 655deaa9..47855163 100644 --- a/app/Http/Controllers/Crm/AssignmentController.php +++ b/app/Http/Controllers/Crm/AssignmentController.php @@ -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')); } diff --git a/app/Http/Controllers/Crm/CustomerFieldController.php b/app/Http/Controllers/Crm/CustomerFieldController.php index 464ba681..a323ea37 100644 --- a/app/Http/Controllers/Crm/CustomerFieldController.php +++ b/app/Http/Controllers/Crm/CustomerFieldController.php @@ -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) diff --git a/app/Http/Controllers/System/UserController.php b/app/Http/Controllers/System/UserController.php index 874267e5..08ef106e 100644 --- a/app/Http/Controllers/System/UserController.php +++ b/app/Http/Controllers/System/UserController.php @@ -160,7 +160,7 @@ class UserController extends Controller return $this->error(); } } - return View::make('user.changeMyPassword'); + return View::make('system.user.changeMyPassword'); } } diff --git a/config/filesystems.php b/config/filesystems.php index 220c0104..e82b473d 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -65,6 +65,11 @@ return [ 'endpoint' => env('AWS_ENDPOINT'), ], + 'uploads' => [ + 'driver' => 'local', + 'root' => public_path('uploads'), + ], + ], ]; diff --git a/config/freeswitch.php b/config/freeswitch.php index f5a92bfa..699e2e70 100644 --- a/config/freeswitch.php +++ b/config/freeswitch.php @@ -71,7 +71,8 @@ return [ 'radio' => '单选', 'checkbox' => '多选', 'select' => '下拉选择', - 'image' => '图片上传', + 'image' => '单图片上传', + 'images' => '多图片上传', 'textarea' => '文本框', ], diff --git a/database/seeds/MenuTableSeeder.php b/database/seeds/MenuTableSeeder.php index a38a55ad..4d94e295 100644 --- a/database/seeds/MenuTableSeeder.php +++ b/database/seeds/MenuTableSeeder.php @@ -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', + ], ] ], ]; diff --git a/database/seeds/UserTableSeeder.php b/database/seeds/UserTableSeeder.php index 5428830b..58b5e5d4 100644 --- a/database/seeds/UserTableSeeder.php +++ b/database/seeds/UserTableSeeder.php @@ -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' => '删除'], + ] + ], ], ], ]; diff --git a/resources/views/base.blade.php b/resources/views/base.blade.php index da9cfe3b..2d170878 100644 --- a/resources/views/base.blade.php +++ b/resources/views/base.blade.php @@ -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) diff --git a/resources/views/crm/assignment/_js.blade.php b/resources/views/crm/assignment/_js.blade.php index 952f014e..ffd9d0f9 100644 --- a/resources/views/crm/assignment/_js.blade.php +++ b/resources/views/crm/assignment/_js.blade.php @@ -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) { diff --git a/resources/views/crm/assignment/create.blade.php b/resources/views/crm/assignment/create.blade.php index 7bbd0db1..857b0cfa 100644 --- a/resources/views/crm/assignment/create.blade.php +++ b/resources/views/crm/assignment/create.blade.php @@ -1,103 +1,118 @@ -@extends('admin.base') +@extends('base') @section('content')
-
-

添加

-
-
+ {{csrf_field()}} -
- -
- -
-
-
- -
- -
-
-
- -
- -
-
- @foreach($designs as $d) -
- -
- @switch($d->field_type) - @case('input') - required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}" > - @break - @case('textarea') - - @break - @case('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 - 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 - field_value ) checked @endif title="{{$val}}"> - @endforeach - @endif - @break - @case('image') -
- -
-
    -
- -
-
- @break - @default - @break - @endswitch +
+
+
+

基础信息

+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
- @endforeach - @include('admin.assignment._form') +
+
+

扩展信息

+
+ @foreach($fields as $d) +
+ +
+ @switch($d->field_type) + @case('input') + required==1) lay-verify="required" @endif placeholder="{{$d->field_tips}}" > + @break + @case('textarea') + + @break + @case('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 + 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 + field_value ) checked @endif title="{{$val}}"> + @endforeach + @endif + @break + @case('image') +
+ +
+
    +
+ +
+
+ @break + @default + @break + @endswitch +
+
+ @endforeach +
+
+ +
+
+ +
+
@endsection @section('script') - @include('admin.assignment._js') + @include('crm.assignment._js') @endsection diff --git a/resources/views/crm/assignment/edit.blade.php b/resources/views/crm/assignment/edit.blade.php index 084dd2c4..c21893ea 100644 --- a/resources/views/crm/assignment/edit.blade.php +++ b/resources/views/crm/assignment/edit.blade.php @@ -1,4 +1,4 @@ -@extends('admin.base') +@extends('base') @section('content')
@@ -6,7 +6,7 @@

更新

-
+ {{method_field('put')}} {{csrf_field()}}
diff --git a/resources/views/crm/assignment/index.blade.php b/resources/views/crm/assignment/index.blade.php index e6230c8c..56715e64 100644 --- a/resources/views/crm/assignment/index.blade.php +++ b/resources/views/crm/assignment/index.blade.php @@ -3,19 +3,19 @@ @section('content')
- +
@can('crm.assignment.destroy') @endcan @can('crm.assignment.create') - 录入 + 录入 @endcan @can('crm.assignment.import') - 模板下载 + 模板下载 @endcan - +
@@ -36,25 +36,27 @@
- +
- @can('crm.assignment.to') + + @can('crm.assignment.to') +
- - @foreach($users as $user) - + @foreach($users as $d) + @endforeach
- +
- @endcan
+ @endcan
@@ -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 '待分配' - }else{ - return '已分配' - } - }} + {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}); - } - }) }) diff --git a/resources/views/crm/customer_field/_form.blade.php b/resources/views/crm/customer_field/_form.blade.php index e82cb952..cc34791a 100644 --- a/resources/views/crm/customer_field/_form.blade.php +++ b/resources/views/crm/customer_field/_form.blade.php @@ -31,7 +31,7 @@
- +
例:
1:男
2:女
3:保密
@@ -51,8 +51,8 @@
- required==1)) checked @endif > - required==2) checked @endif> + visiable==1)) checked @endif > + visiable==2) checked @endif>
@@ -64,6 +64,6 @@
- +
diff --git a/resources/views/crm/customer_field/index.blade.php b/resources/views/crm/customer_field/index.blade.php index 64199b5a..42ad02a3 100644 --- a/resources/views/crm/customer_field/index.blade.php +++ b/resources/views/crm/customer_field/index.blade.php @@ -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', diff --git a/routes/api.php b/routes/api.php index 7dfd5365..8f59d396 100644 --- a/routes/api.php +++ b/routes/api.php @@ -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'); diff --git a/routes/web.php b/routes/web.php index 8638c12f..aa64b576 100644 --- a/routes/web.php +++ b/routes/web.php @@ -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'); + }); + });