完善节点管理功能

This commit is contained in:
老李 2021-03-20 20:46:43 +08:00
parent d756286a75
commit 7a63ffb95d
17 changed files with 66 additions and 331 deletions

View File

@ -3,9 +3,16 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
class Node extends Model
{
protected $table = 'node';
protected $guarded = ['id'];
protected $appends = ['type_name'];
public function getTypeNameAttribute()
{
return $this->attributes['type_name'] = Arr::get(config('freeswitch.node_type'),$this->type,'-');
}
}

View File

@ -46,6 +46,12 @@ return [
'host' => '192.168.254.216',
'wss_url' => 'testcall.shupian.cn',
'node_type' => [
0 => '公共节点',
1 => '客户跟进',
2 => '订单生产',
3 => '财务付款',
],
//队列响铃模式
'strategy' => [

View File

@ -17,7 +17,7 @@ class Node extends Migration
$table->bigIncrements('id');
$table->string('name')->comment('节点名称');
$table->tinyInteger('sort')->default(10)->comment('排序');
$table->tinyInteger('type')->default(1)->comment('1客户跟进2订单生产3财务付款');
$table->tinyInteger('type')->default(0)->comment('默认00表示公共1客户跟进2订单生产3财务付款');
$table->timestamps();
});
}

View File

@ -4,7 +4,7 @@
<div class="layui-card">
<div class="layui-card-header layuiadmin-card-header-auto">
<form class="layui-form">
<button class="layui-btn layui-btn-sm" lay-submit lay-filter="*" >搜索</button>
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="*" >搜索</button>
<div class="layui-form-item">
<div class="layui-inline">
<label for="" class="layui-form-label">主叫号码</label>

View File

@ -4,7 +4,7 @@
<div class="layui-card">
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('call.action.destroy') }}">删除</button>
<a class="layui-btn layui-btn-sm" id="addBtn" > </a>
</div>
</div>
@ -50,18 +50,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.action.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del(); //删除对应行tr的DOM结构
}
})
});
});
deleteData(obj,"{{ route('call.action.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,
@ -76,33 +65,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length>0){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.action.destroy') }}",{_method:'delete',ids:ids},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
dataTable.reload()
}
})
});
})
}else {
layer.msg('请选择删除项',{icon:2})
}
})
$("#addBtn").click(function () {
layer.open({
type: 2,

View File

@ -4,7 +4,7 @@
<div class="layui-card">
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
<button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('call.condition.destroy') }}">删除</button>
<a class="layui-btn layui-btn-sm" id="addBtn" >添加</a>
</div>
</div>
@ -52,18 +52,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.condition.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del(); //删除对应行tr的DOM结构
}
})
});
});
deleteData(obj,"{{ route('call.condition.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,
@ -80,33 +69,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length>0){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.condition.destroy') }}",{_method:'delete',ids:ids},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
dataTable.reload()
}
})
});
})
}else {
layer.msg('请选择删除项',{icon:2})
}
})
$("#addBtn").click(function () {
layer.open({
type: 2,

View File

@ -5,7 +5,7 @@
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
@can('call.extension.destroy')
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('call.extension.destroy') }}">删除</button>
@endcan
@can('call.extension.create')
<a class="layui-btn layui-btn-sm" id="addBtn" >添加</a>
@ -67,18 +67,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.extension.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del(); //删除对应行tr的DOM结构
}
})
});
});
deleteData(obj,"{{ route('call.extension.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,
@ -97,33 +86,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length>0){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.extension.destroy') }}",{_method:'delete',ids:ids},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
dataTable.reload()
}
})
});
})
}else {
layer.msg('请选择删除项',{icon:2})
}
})
$("#addBtn").click(function () {
layer.open({
type: 2,

View File

@ -5,7 +5,7 @@
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
@can('call.gateway.destroy')
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('call.gateway.destroy') }}">删除</button>
@endcan
@can('call.gateway.create')
<a class="layui-btn layui-btn-sm" id="addBtn">添加</a>
@ -73,18 +73,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.gateway.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del(); //删除对应行tr的DOM结构
}
})
});
});
deleteData(obj,"{{ route('call.gateway.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,
@ -96,34 +85,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length>0){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.gateway.destroy') }}",{_method:'delete',ids:ids},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
dataTable.reload()
}
})
});
})
}else {
layer.msg('请选择删除项',{icon:2})
}
})
//更新配置
$("#updateXml").click(function () {
layer.confirm('该操作将重新注册所有网关,确认操作吗?', function(index){

View File

@ -5,7 +5,7 @@
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
@can('call.sip.destroy')
<button class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('call.sip.destroy') }}">删除</button>
@endcan
@can('call.sip.create')
<a class="layui-btn layui-btn-sm" id="addBtn" >添加</a>
@ -14,7 +14,7 @@
<a class="layui-btn layui-btn-sm" id="addListBtn">批量添加</a>
@endcan
@can('call.sip.updateXml')
<button class="layui-btn layui-btn-sm" type="button" id="updateXml">更新配置</button>
<button type="button" class="layui-btn layui-btn-sm" type="button" id="updateXml">更新配置</button>
@endcan
</div>
</div>
@ -66,16 +66,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
$.post("{{ route('call.sip.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(index);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del(); //删除对应行tr的DOM结构
}
})
});
});
deleteData(obj,"{{ route('call.sip.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,
@ -87,33 +78,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length>0){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load()
$.post("{{ route('call.sip.destroy') }}",{_method:'delete',ids:ids},function (res) {
layer.close(load);
layer.msg(res.msg,{time:2000,icon:res.code==0?1:2},function () {
if (res.code==0){
dataTable.reload()
}
})
});
})
}else {
layer.msg('请选择删除项',{icon:2})
}
})
//更新配置
$("#updateXml").click(function () {
layer.confirm('确认生成所有分机配置吗?', function (index) {

View File

@ -69,18 +69,7 @@
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'del'){
layer.confirm('确认删除吗?', function(index){
layer.close(index);
var load = layer.load();
$.post("{{ route('crm.department.destroy') }}",{_method:'delete',ids:[data.id]},function (res) {
layer.close(load);
layer.msg(res.msg,{time:1500,icon:res.code==0?1:2},function () {
if (res.code==0){
obj.del();
}
})
});
});
deleteData(obj,"{{ route('crm.department.destroy') }}");
} else if(layEvent === 'edit'){
layer.open({
type: 2,

View File

@ -1,32 +1,31 @@
{{csrf_field()}}
<div class="layui-form-item">
<label for="" class="layui-form-label">类型</label>
<div class="layui-input-inline">
<div class="layui-input-block">
<select name="type" lay-verify="required">
<option value=""></option>
<option value="1" @if(isset($model)&&$model->type==1) selected @endif>前台</option>
<option value="2" @if(isset($model)&&$model->type==2) selected @endif>后台</option>
@foreach(config('freeswitch.node_type') as $k => $v)
<option value="{{$k}}" @if(isset($model)&&$model->type==$k) selected @endif>{{$v}}</option>
@endforeach
</select>
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label for="" class="layui-form-label">名称</label>
<div class="layui-input-inline">
<div class="layui-input-block">
<input class="layui-input" type="text" name="name" lay-verify="required" value="{{$model->name??''}}" placeholder="请输入名称">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label for="" class="layui-form-label">排序</label>
<div class="layui-input-inline">
<div class="layui-input-block">
<input class="layui-input" type="number" name="sort" lay-verify="required|number" value="{{$model->sort??10}}" placeholder="">
</div>
<div class="layui-form-mid layui-word-aux"></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" > </button>
<a href="{{route('admin.node')}}" class="layui-btn layui-btn-sm" > </a>
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="go-close-refresh" >确认</button>
</div>
</div>

View File

@ -1,18 +1,11 @@
@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.node.store')}}" method="post" class="layui-form">
@include('admin.node._form')
<form action="{{route('crm.node.store')}}" method="post" class="layui-form">
@include('crm.node._form')
</form>
</div>
</div>
@endsection
@section('script')
@include('admin.node._js')
@endsection

View File

@ -1,19 +1,12 @@
@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.node.update',['id'=>$model->id])}}" method="post" class="layui-form">
<form action="{{route('crm.node.update',['id'=>$model->id])}}" method="post" class="layui-form">
{{method_field('put')}}
@include('admin.node._form')
@include('crm.node._form')
</form>
</div>
</div>
@endsection
@section('script')
@include('admin.node._js')
@endsection

View File

@ -5,8 +5,11 @@
<div class="layui-card-header layuiadmin-card-header-auto">
<form class="layui-form">
<div class="layui-btn-group">
@can('crm.node.destroy')
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('crm.node.destroy') }}">删除</button>
@endcan
@can('crm.node.create')
<a class="layui-btn layui-btn-sm" >添加</a>
<a class="layui-btn layui-btn-sm" id="addBtn" >添加</a>
@endcan
</div>
</form>
@ -37,15 +40,15 @@
//用户表格初始化
var dataTable = table.render({
elem: '#dataTable'
,height: 500
,height: 'full-200'
,url: "{{ route('crm.node') }}" //数据接口
,page: true //开启分页
,cols: [[ //表头
{checkbox: true}
,{field: 'id', title: 'ID', sort: true,width:80}
,{field: 'type_name', title: '类型'}
,{field: 'name', title: '名称'}
,{field: 'sort', title: '排序'}
,{field: 'type_name', title: '类型'}
,{ width: 150, align:'center', toolbar: '#options', title:'操作'}
]]
});
@ -57,11 +60,25 @@
if(layEvent === 'del'){
deleteData(obj,"{{ route('crm.node.destroy') }}");
} else if(layEvent === 'edit'){
location.href = '/crm/node/'+data.id+'/edit';
layer.open({
type: 2,
title: "编辑",
shadeClose: true,
area: ["600px","400px"],
content: '/crm/node/'+data.id+'/edit',
})
}
});
$("#addBtn").click(function () {
layer.open({
type: 2,
title: "添加",
shadeClose: true,
area: ["600px","400px"],
content: "{{route("crm.node.create")}}",
})
})
})
</script>

View File

@ -68,23 +68,7 @@
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'del') {
layer.confirm('确认删除吗?', function (index) {
layer.close(index)
var load = layer.load();
$.post("{{ route('system.menu.destroy') }}", {
_method: 'delete',
ids: [data.id]
}, function (res) {
layer.close(load);
if (res.code == 0) {
layer.msg(res.msg, {icon: 1}, function () {
obj.del();
})
} else {
layer.msg(res.msg, {icon: 2})
}
});
});
deleteData(obj,"{{ route('system.menu.destroy') }}");
} else if (layEvent === 'edit') {
layer.open({
type: 2,

View File

@ -68,23 +68,7 @@
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'del') {
layer.confirm('确认删除吗?', function (index) {
layer.close(index)
var load = layer.load();
$.post("{{ route('system.permission.destroy') }}", {
_method: 'delete',
ids: [data.id]
}, function (res) {
layer.close(load);
if (res.code == 0) {
layer.msg(res.msg, {icon: 1}, function () {
obj.del();
})
} else {
layer.msg(res.msg, {icon: 2})
}
});
});
deleteData(obj,"{{ route('system.permission.destroy') }}");
} else if (layEvent === 'edit') {
layer.open({
type: 2,

View File

@ -5,7 +5,7 @@
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-btn-group">
@can('system.role.destroy')
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete">删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="listDelete" data-url="{{ route('system.role.destroy') }}">删除</button>
@endcan
@can('system.role.create')
<a class="layui-btn layui-btn-sm" id="addBtn">添加</a>
@ -57,23 +57,7 @@
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'del') {
layer.confirm('确认删除吗?', function (index) {
layer.close(index)
var load = layer.load();
$.post("{{ route('system.role.destroy') }}", {
_method: 'delete',
ids: [data.id]
}, function (res) {
layer.close(load);
if (res.code == 0) {
layer.msg(res.msg, {icon: 1}, function () {
obj.del();
})
} else {
layer.msg(res.msg, {icon: 2})
}
});
});
deleteData(obj,"{{ route('system.role.destroy') }}");
} else if (layEvent === 'edit') {
layer.open({
type: 2,
@ -85,38 +69,6 @@
}
});
//按钮批量删除
$("#listDelete").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)
})
}
if (ids.length > 0) {
layer.confirm('确认删除吗?', function (index) {
layer.close(index);
var load = layer.load();
$.post("{{ route('system.role.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})
}
});
})
} else {
layer.msg('请选择删除项', {icon: 2});
}
})
$("#addBtn").click(function () {
layer.open({