Orders.php 2.7 KB

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