完成待分配库添加和编辑的扩展字段展示

This commit is contained in:
老李 2021-03-23 23:12:32 +08:00
parent 50cd77b1bb
commit 99d2c2a33d
9 changed files with 209 additions and 112 deletions

View File

@ -150,7 +150,7 @@ class ApiController extends Controller
$this->error('上传失败');
}
}catch (\Exception $exception){
Log::error('文件上传异常:' . $exception->getErrorMessage());
Log::error('文件上传异常:' . $exception->getMessage());
$this->error('系统异常');
}

View File

@ -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\CustomerFieldValue;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@ -23,7 +24,20 @@ class AssignmentController extends Controller
{
$users = User::query()->get();
if ($request->ajax()){
$data = $request->all(['name','contact_name','contact_phone']);
$res = Customer::query()
//客户名称
->when($data['name'], function ($query) use ($data) {
return $query->where('name', $data['name']);
})
//联系电话
->when($data['contact_phone'], function ($query) use ($data) {
return $query->where('contact_phone', $data['contact_phone']);
})
//联系人
->when($data['contact_name'], function ($query) use ($data) {
return $query->where('contact_name', $data['contact_name'] );
})
->where('status','=',1)
->orderByDesc('id')
->paginate($request->get('limit', 30));
@ -66,13 +80,14 @@ class AssignmentController extends Controller
DB::beginTransaction();
try{
$customer_id = DB::table('customer')->insertGetId([
'uuid' => uuid_generate(),
'name' => $data['name'],
'contact_name' => $data['contact_name'],
'contact_phone' => $data['contact_phone'],
'created_user_id' => $user->id,
'created_user_name' => $user->nickname,
'created_user_nickname' => $user->nickname,
'owner_user_id' => $user->id,
'created_user_name' => $user->nickname,
'owner_user_nickname' => $user->nickname,
'status' => 1,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
@ -98,8 +113,13 @@ class AssignmentController extends Controller
public function edit($id)
{
$model = Customer::with('fields')->findOrFail($id);
return View::make('crm.assignment.edit',compact('model'));
$model = Customer::query()->findOrFail($id);
$fields = CustomerField::query()
->where('visiable',1)
->orderBy('sort','asc')
->get();
$data = CustomerFieldValue::query()->where('customer_id','=',$model->id)->pluck('data','customer_field_id')->toArray();
return View::make('crm.assignment.edit',compact('model','fields','data'));
}
@ -132,7 +152,10 @@ class AssignmentController extends Controller
'updated_at' => date('Y-m-d H:i:s'),
]);
foreach ($dataInfo as $d){
DB::table('customer_field_value')->where('id',$d['id'])->update(['data'=>$d['data']]);
DB::table('customer_field_value')
->where('customer_id','=',$id)
->where('customer_field_id',$d['customer_field_id'])
->update(['data'=>$d['data']]);
}
DB::commit();
return $this->success();
@ -156,4 +179,37 @@ class AssignmentController extends Controller
}
}
public function to(Request $request)
{
$ids = $request->get('ids',[]);
$user = User::where('id',$request->get('user_id'))->first();
$department_id = $request->get('department_id');
$user_ids = User::where('department_id',$request->department_id)->pluck('id')->toArray();
$type = $request->get('type');
DB::beginTransaction();
try{
if ($type=='user'){
DB::table('project')->whereIn('id',$ids)->update([
'owner_user_id' => -3,
'assignment_time' => date('Y-m-d H:i:s'),
'department_id' => $user->department_id,
]);
}elseif ($type=='department'){
DB::table('project')->whereIn('id',$ids)->update([
'owner_user_id' => -2,
'department_id' => $department_id,
'assignment_time' => date('Y-m-d H:i:s'),
]);
}
DB::commit();
return Response::json(['code'=>0,'msg'=>'分配成功']);
}catch (\Exception $exception){
DB::rollBack();
Log::error('分配异常:'.$exception->getMessage());
return Response::json(['code'=>1,'msg'=>'分配失败']);
}
}
}

View File

@ -17,6 +17,7 @@
@yield('content')
</div>
<script src="/layuiadmin/xm-select.js"></script>
<script>
layui.config({
base: '/layuiadmin/' //静态资源所在路径

View File

@ -1,6 +1,6 @@
<div id="xm-select-department" class="xm-select-department"></div>
<script src="/layuiadmin/xm-select.js"></script>
<script>
layui.use(['jquery','form', 'layer'], function () {
var $ = layui.jquery;

View File

@ -1,7 +1,5 @@
<div id="xm-select-role" class="xm-select-role"></div>
<script src="/layuiadmin/xm-select.js"></script>
<script>
layui.use(['jquery','form', 'layer'], function () {
var $ = layui.jquery;

View File

@ -9,8 +9,14 @@
var laydate = layui.laydate;
//单图片
//单图片上传
window.removePic = function(obj,elem_ul,elem_input){
$(elem_ul).html("")
$("#"+elem_input).val("");
}
$(".uploadPic").each(function (index,elem) {
var elem_ul = $(elem).data('ul')
var elem_input = $(elem).data('input')
upload.render({
elem: $(elem)
,url: '{{ route("api.upload") }}'
@ -19,8 +25,8 @@
,done: function(res){
if(res.code == 0){
layer.msg(res.msg,{icon:1},function () {
$(elem).parent('.layui-upload').find('.layui-upload-box').html('<li><img src="'+res.data.url+'" /><p>上传成功</p></li>');
$(elem).parent('.layui-upload').find('.layui-upload-input').val(res.url);
$(elem).parent('.layui-upload').find('.layui-upload-box').html('<li><img src="'+res.data.url+'" /><p onclick="removePic(this,\''+elem_ul+'\',\''+elem_input+'\')">删除</p></li>');
$(elem).parent('.layui-upload').find('.layui-upload-input').val(res.data.url);
})
}else {
layer.msg(res.msg,{icon:2})
@ -28,6 +34,8 @@
}
});
})
//多图片
window.removePics = function(obj,elem_ul,elem_input){
$(obj).parent("li").remove()
let pic_urls = []
@ -37,7 +45,6 @@
console.log(pic_urls)
$("#"+elem_input).val(pic_urls.join(','));
}
//多图片
$(".uploadPics").each(function (index,elem) {
var elem_ul = $(elem).data('ul')
var elem_input = $(elem).data('input')

View File

@ -86,11 +86,11 @@
@break
@case('image')
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-sm uploadPic"><i class="layui-icon">&#xe67c;</i>单图上传</button>
<button type="button" class="layui-btn layui-btn-sm uploadPic" data-ul="ul_{{$d->field_key}}" data-input="input_{{$d->field_key}}" ><i class="layui-icon">&#xe67c;</i>单图上传</button>
<div class="layui-upload-list" >
<ul class="layui-upload-box layui-clear">
<ul class="layui-upload-box layui-clear" id="ul_{{$d->field_key}}">
</ul>
<input type="hidden" class="layui-upload-input" name="{{$d->field_key}}" value="{{$d->field_value}}">
<input type="hidden" class="layui-upload-input" id="input_{{$d->field_key}}" name="{{$d->field_key}}" value="{{$d->field_value}}">
</div>
</div>
@break
@ -112,7 +112,6 @@
@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>

View File

@ -9,99 +9,124 @@
<form action="{{route('crm.assignment.update',['id'=>$model->id])}}" method="post" class="layui-form">
{{method_field('put')}}
{{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($model->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->pivot->data}}" @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->pivot->data}}</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->pivot->data) 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->pivot->data) 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->pivot->data&&strpos($d->pivot->data,',')){
$fieldValue = explode(",",$d->pivot->data);
}
@endphp
<input type="checkbox" name="{{$d->field_key}}[]" value="{{$key}}" @if(in_array($key,$fieldValue) || $key==$d->pivot->data ) 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">&#xe67c;</i>图片上传</button>
<div class="layui-upload-list" >
<ul class="layui-upload-box layui-clear">
@if($d->pivot->data)
<li><img src="{{ $d->pivot->data }}" /><p>上传成功</p></li>
@endif
</ul>
<input type="hidden" class="layui-upload-input" name="{{$d->field_key}}" value="{{$d->pivot->data}}">
</div>
</div>
@break
@default
@break
@endswitch
<div class="layui-row">
<div class="layui-col-md6">
<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}}" 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" lay-verify="required" value="{{$model->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" value="{{$model->contact_phone}}" placeholder="请输入联系电话">
</div>
</div>
</div>
@endforeach
@include('admin.assignment._form')
<div class="layui-col-md6">
@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="{{$data[$d->id]??null}}" @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}}">{{$data[$d->id]??null}}</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,"\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(isset($data[$d->id])&&$key==$data[$d->id]) 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(isset($data[$d->id])&&$key==$data[$d->id]) 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 (isset($data[$d->id])&&strpos($data[$d->id],',')){
$fieldValue = explode(",",$data[$d->id]);
}
@endphp
<input type="checkbox" name="{{$d->field_key}}[]" value="{{$key}}" @if(in_array($key,$fieldValue) || (isset($data[$d->id])&&$key==$data[$d->id]) ) checked @endif title="{{$val}}">
@endforeach
@endif
@break
@case('image')
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-sm uploadPic" data-ul="ul_{{$d->field_key}}" data-input="input_{{$d->field_key}}" ><i class="layui-icon">&#xe67c;</i>单图上传</button>
<div class="layui-upload-list" >
<ul class="layui-upload-box layui-clear" id="ul_{{$d->field_key}}">
@if(isset($data[$d->id]))
<li><img src="{{ $data[$d->id] }}" /><p onclick="removePic(this,'ul_{{$d->field_key}}','input_{{$d->field_key}}')">删除</p></li>
@endif
</ul>
<input type="hidden" class="layui-upload-input" id="input_{{$d->field_key}}" name="{{$d->field_key}}" value="{{$data[$d->id]??null}}">
</div>
</div>
@break
@case('images')
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-sm uploadPics" data-ul="ul_{{$d->field_key}}" data-input="input_{{$d->field_key}}" ><i class="layui-icon">&#xe67c;</i>多图上传</button>
<div class="layui-upload-list" >
<ul class="layui-upload-box layui-clear" id="ul_{{$d->field_key}}">
@if(isset($data[$d->id]) && strpos($data[$d->id],','))
@foreach(explode(',',$data[$d->id]) as $v)
<li><img src="{{ $v }}" /><p onclick="removePics(this,'ul_{{$d->field_key}}','input_{{$d->field_key}}')">删除</p></li>
@endforeach
@endif
</ul>
<input type="hidden" class="layui-upload-input" id="input_{{$d->field_key}}" name="{{$d->field_key}}" value="{{$data[$d->id]??null}}">
</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

View File

@ -19,24 +19,23 @@
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label for="" class="layui-form-label">姓名</label>
<label for="" class="layui-form-label">客户名称</label>
<div class="layui-input-block" style="width: 275px">
<input type="text" name="name" placeholder="请输入" class="layui-input" >
<input type="text" name="name" placeholder="请输入" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label for="" class="layui-form-label">电话</label>
<label for="" class="layui-form-label">联系人</label>
<div class="layui-input-block" style="width: 275px">
<input type="text" name="phone" placeholder="请输入联系电话" class="layui-input" >
<input type="text" name="contact_name" placeholder="请输入联系人" class="layui-input" >
</div>
</div>
<div class="layui-inline">
<label for="" class="layui-form-label">公司名称</label>
<label for="" class="layui-form-label">联系电话</label>
<div class="layui-input-block" style="width: 275px">
<input type="text" name="company_name" placeholder="请输入公司名称" class="layui-input" >
<input type="text" name="contact_phone" placeholder="请输入联系电话" class="layui-input" >
</div>
</div>
</div>
</form>
@can('crm.assignment.to')
@ -56,6 +55,17 @@
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="assignment_to" >分配</button>
</div>
</form>
<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">
@include('common.get_department_by_user_id')
</div>
</div>
<button type="button" class="layui-btn layui-btn-sm" lay-submit lay-filter="assignment_to" >分配</button>
</div>
</form>
@endcan
</div>
<div class="layui-card-body">
@ -106,7 +116,8 @@
,url: "{{ route('crm.assignment') }}" //数据接口
,page: true //开启分页
,cols: [[ //表头
{field: 'uuid', title: '客户编号'}
{checkbox: true}
,{field: 'uuid', title: '客户编号'}
,{field: 'name', title: '客户名称'}
,{field: 'contact_name', title: '联系人'}
,{field: 'contact_phone', title: '联系电话'}