Orders.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace app\admin\model\workorder;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. class Orders extends Model
  6. {
  7. use SoftDelete;
  8. // 表名
  9. protected $name = 'workorder_orders';
  10. // 自动写入时间戳字段
  11. protected $autoWriteTimestamp = 'int';
  12. // 定义时间戳字段名
  13. protected $createTime = 'createtime';
  14. protected $updateTime = 'updatetime';
  15. protected $deleteTime = 'deletetime';
  16. // 追加属性
  17. protected $append = [
  18. 'status_text'
  19. ];
  20. public function getStatusList()
  21. {
  22. return [
  23. '0' => __('Status 0'),
  24. '1' => __('Status 1'),
  25. '2' => __('Status 2'),
  26. '3' => __('Status 3'),
  27. '4' => __('Status 4'),
  28. '5' => __('Status 5')
  29. ];
  30. }
  31. public function getStatusTextAttr($value, $data)
  32. {
  33. $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
  34. $list = $this->getStatusList();
  35. return isset($list[$value]) ? $list[$value] : '';
  36. }
  37. public static function getFields($values = null, $position = -1)
  38. {
  39. $where['status'] = 1;
  40. if ($position != -1) {
  41. $where['position'] = $position;
  42. }
  43. $fields = \app\admin\model\workorder\Fields::where($where)->order('weigh desc,id desc')->select();
  44. foreach ($fields as $k => $v) {
  45. $v->value = isset($values[$v['name']]) ? $values[$v['name']] : '';
  46. if (!$v->value && $v->type_list != 'switch') {
  47. $v->value = $v->default;
  48. }
  49. $v->rule = str_replace(',', '; ', $v->rule);
  50. if (in_array($v->type_list, ['checkbox', 'lists', 'images'])) {
  51. $checked = '';
  52. if ($v['minimum'] && $v['maximum']) {
  53. $checked = "{$v['minimum']}~{$v['maximum']}";
  54. } elseif ($v['minimum']) {
  55. $checked = "{$v['minimum']}~";
  56. } elseif ($v['maximum']) {
  57. $checked = "~{$v['maximum']}";
  58. }
  59. if ($checked) {
  60. $v->rule .= (';checked(' . $checked . ')');
  61. }
  62. }
  63. if (in_array($v->type_list, ['checkbox', 'radio']) && stripos($v->rule, 'required') !== false) {
  64. $v->rule = str_replace('required', 'checked', $v->rule);
  65. }
  66. if (in_array($v->type_list, ['selects'])) {
  67. $v->extend .= (' ' . 'data-max-options="' . $v['maximum'] . '"');
  68. }
  69. }
  70. return $fields;
  71. }
  72. public function user()
  73. {
  74. return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
  75. }
  76. public function urgentrank()
  77. {
  78. return $this->belongsTo('app\admin\model\workorder\Urgentrank', 'urgency', 'id', [], 'LEFT')->setEagerlyType(0);
  79. }
  80. public function engineers()
  81. {
  82. return $this->belongsTo('app\admin\model\workorder\Engineers', 'engineer_id', 'id', [], 'LEFT')
  83. ->setEagerlyType(0);
  84. }
  85. public function category()
  86. {
  87. return $this->belongsTo('app\admin\model\workorder\Category', 'category_id', 'id', [], 'LEFT')
  88. ->setEagerlyType(0);
  89. }
  90. }