Item.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Model;
  3. use App\Traits\HasCustomFields;
  4. class Item extends DataScopeBaseModel
  5. {
  6. protected $table = "item"; //指定表
  7. const CREATED_AT = 'crt_time';
  8. const UPDATED_AT = 'upd_time';
  9. protected $dateFormat = 'U';
  10. const employee_column = "crt_id";
  11. const table_column = "item_employee";
  12. const table_id_column = "item_id";
  13. public static $field = ['title','id','code','start_time','end_time','mark','crt_id','crt_time','state','budget','charge_id','item_attribute','field','is_review_required','review_id','priority_id'];
  14. public static $report_field_1 = ['title','id','code','start_time','end_time','mark','budget','field'];
  15. const TYPE_MINUS_TWO = -2;
  16. const TYPE_MINUS_ONE = -1;
  17. const TYPE_ONE = 1;
  18. const TYPE_TWO = 2;
  19. const TYPE_THREE = 3;
  20. const State_Type = [
  21. self::TYPE_MINUS_ONE => '审核中',
  22. self::TYPE_MINUS_TWO => '已超期',
  23. self::TYPE_ONE => '待开始',
  24. self::TYPE_TWO => '进行中',
  25. self::TYPE_THREE => '已完成',
  26. ];
  27. const Attr_TYPE_ONE = 1;
  28. const Attr_TYPE_TWO = 2;
  29. const Item_Attribute = [
  30. self::TYPE_ONE => '自主开发',
  31. self::TYPE_TWO => '合作开发',
  32. ];
  33. // 引入自定义字段预加载关系
  34. use HasCustomFields;
  35. // 作用域 里面关联了客户自定义的表头数据 列表页需要 :: withCustomData($user) 这个是预加载
  36. public function scopeWithCustomData($query, $user)
  37. {
  38. $top_depart_id = $user['top_depart_id'];
  39. return $query->with(['customFields' => function ($subQuery) use ($top_depart_id) {
  40. $subQuery->where('top_depart_id', $top_depart_id)
  41. ->where('table_name', $this->table)
  42. ->where('del_time', 0);
  43. }]);
  44. }
  45. }