作者 赵彬吉

update

@@ -4,7 +4,9 @@ namespace App\Http\Controllers\Aside\Project; @@ -4,7 +4,9 @@ namespace App\Http\Controllers\Aside\Project;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
  7 +use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
7 use App\Http\Logic\Aside\Project\ProjectLogic; 8 use App\Http\Logic\Aside\Project\ProjectLogic;
  9 +use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
8 use App\Http\Requests\Aside\Project\ProjectRequest; 10 use App\Http\Requests\Aside\Project\ProjectRequest;
9 use App\Models\InquirySet; 11 use App\Models\InquirySet;
10 use App\Rules\Ids; 12 use App\Rules\Ids;
@@ -96,4 +98,29 @@ class ProjectController extends BaseController @@ -96,4 +98,29 @@ class ProjectController extends BaseController
96 $data = $logic->dataSource(); 98 $data = $logic->dataSource();
97 return $this->success($data); 99 return $this->success($data);
98 } 100 }
  101 +
  102 + /**
  103 + * 进程记录
  104 + * @author zbj
  105 + * @date 2023/6/25
  106 + */
  107 + public function get_process_records(Request $request, ProcessRecordsLogic $logic){
  108 + $request->validate([
  109 + 'project_id'=>'required'
  110 + ],[
  111 + 'project_id.required' => '项目ID不能为空'
  112 + ]);
  113 + $data = $logic->getInfo($this->param['project_id']);
  114 + return $this->success($data ? $data->toArray() : []);
  115 + }
  116 +
  117 + /**
  118 + * 保存进程记录
  119 + * @author zbj
  120 + * @date 2023/6/25
  121 + */
  122 + public function save_process_records(ProcessRecordsRequest $request, ProcessRecordsLogic $logic){
  123 + $data = $logic->save($this->param);
  124 + return $this->success($data);
  125 + }
99 } 126 }
  1 +<?php
  2 +
  3 +namespace App\Http\Logic\Aside\Project;
  4 +
  5 +
  6 +use App\Http\Logic\Aside\BaseLogic;
  7 +use App\Models\Project\ProcessRecords;
  8 +
  9 +class ProcessRecordsLogic extends BaseLogic
  10 +{
  11 + public function __construct()
  12 + {
  13 + parent::__construct();
  14 +
  15 + $this->model = new ProcessRecords();
  16 + }
  17 +
  18 + public function getInfo($project_id)
  19 + {
  20 + return $this->model->where('project_id', $project_id)->first();
  21 + }
  22 +
  23 + public function save($param){
  24 + $info = $this->getInfo($param['project_id']);
  25 + if($info){
  26 + $this->model = $info;
  27 + }
  28 + $this->model->record = $param['record'];
  29 + $this->model->remark = $param['remark'];
  30 + $res = $this->model->save();
  31 + if($res){
  32 + return $this->success(['id' => $this->model->id]); //返回保存的数据id
  33 + }else{
  34 + $this->fail('保存失败');
  35 + }
  36 + }
  37 +}
  1 +<?php
  2 +
  3 +namespace App\Http\Requests\Aside\Project;
  4 +
  5 +use Illuminate\Foundation\Http\FormRequest;
  6 +use Illuminate\Support\Str;
  7 +
  8 +/**
  9 + * Class ProcessRecordsRequest
  10 + * @package App\Http\Requests\Aside\product
  11 + * @author zbj
  12 + * @date 2023/6/25
  13 + */
  14 +class ProcessRecordsRequest extends FormRequest
  15 +{
  16 + /**
  17 + * Determine if the user is authorized to make this request.
  18 + *
  19 + * @return bool
  20 + */
  21 + public function authorize()
  22 + {
  23 + return true;
  24 + }
  25 +
  26 + /**
  27 + * Get the validation rules that apply to the request.
  28 + *
  29 + * @return array
  30 + */
  31 + public function rules()
  32 + {
  33 + return [
  34 + 'project_id' => 'required',
  35 + 'record' => ['required', 'array', function ($attribute, $value, $fail) {
  36 + foreach ($value as $v) {
  37 + if (empty($v['date'])) {
  38 + $fail('请选择记录日期');
  39 + }
  40 + if (empty($v['content'])) {
  41 + $fail('请输入记录内容');
  42 + }
  43 + }
  44 + }],
  45 + ];
  46 + }
  47 +
  48 + public function messages()
  49 + {
  50 + return [
  51 + 'project_id.required'=>'项目ID不能为空',
  52 + ];
  53 + }
  54 +
  55 +}
  1 +<?php
  2 +
  3 +namespace App\Models\Project;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Models\Base;
  7 +use App\Services\Facades\Upload;
  8 +
  9 +class ProcessRecords extends Base
  10 +{
  11 + //设置关联表名
  12 + protected $table = 'gl_project_process_records';
  13 +
  14 + public function setRecordAttribute($value){
  15 + foreach ($value as &$v){
  16 + $v['image'] = Upload::url2path($v['image']);
  17 + $v['file'] = Upload::url2path($v['file']);
  18 + }
  19 + $this->attributes['record'] = Arr::a2s($value);
  20 + }
  21 +
  22 + public function getRecordAttribute($value){
  23 + $value = Arr::s2a($value);
  24 + foreach ($value as &$v){
  25 + $v['image'] = Upload::path2url($v['image']);
  26 + $v['file'] = Upload::path2url($v['file']);
  27 + }
  28 + return $value;
  29 + }
  30 +
  31 +}
@@ -118,6 +118,8 @@ Route::middleware(['aloginauth'])->group(function () { @@ -118,6 +118,8 @@ Route::middleware(['aloginauth'])->group(function () {
118 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save'); 118 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save');
119 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set'); 119 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set');
120 Route::any('/data_source', [Aside\Project\ProjectController::class, 'data_source'])->name('admin.project_data_source'); 120 Route::any('/data_source', [Aside\Project\ProjectController::class, 'data_source'])->name('admin.project_data_source');
  121 + Route::any('/get_process_records', [Aside\Project\ProjectController::class, 'get_process_records'])->name('admin.project_get_process_records');
  122 + Route::any('/save_process_records', [Aside\Project\ProjectController::class, 'save_process_records'])->name('admin.project_save_process_records');
121 }); 123 });
122 124
123 //工单管理 125 //工单管理