123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace app\admin\model\workorder;
- use think\Model;
- use traits\model\SoftDelete;
- class Orders extends Model
- {
- use SoftDelete;
- // 表名
- protected $name = 'workorder_orders';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- protected $deleteTime = 'deletetime';
- // 追加属性
- protected $append = [
- 'status_text'
- ];
- public function getStatusList()
- {
- return [
- '0' => __('Status 0'),
- '1' => __('Status 1'),
- '2' => __('Status 2'),
- '3' => __('Status 3'),
- '4' => __('Status 4'),
- '5' => __('Status 5')
- ];
- }
- public function getStatusTextAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
- $list = $this->getStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public static function getFields($values = null, $position = -1)
- {
- $where['status'] = 1;
- if ($position != -1) {
- $where['position'] = $position;
- }
- $fields = \app\admin\model\workorder\Fields::where($where)->order('weigh desc,id desc')->select();
- foreach ($fields as $k => $v) {
- $v->value = isset($values[$v['name']]) ? $values[$v['name']] : '';
- if (!$v->value && $v->type_list != 'switch') {
- $v->value = $v->default;
- }
- $v->rule = str_replace(',', '; ', $v->rule);
- if (in_array($v->type_list, ['checkbox', 'lists', 'images'])) {
- $checked = '';
- if ($v['minimum'] && $v['maximum']) {
- $checked = "{$v['minimum']}~{$v['maximum']}";
- } elseif ($v['minimum']) {
- $checked = "{$v['minimum']}~";
- } elseif ($v['maximum']) {
- $checked = "~{$v['maximum']}";
- }
- if ($checked) {
- $v->rule .= (';checked(' . $checked . ')');
- }
- }
- if (in_array($v->type_list, ['checkbox', 'radio']) && stripos($v->rule, 'required') !== false) {
- $v->rule = str_replace('required', 'checked', $v->rule);
- }
- if (in_array($v->type_list, ['selects'])) {
- $v->extend .= (' ' . 'data-max-options="' . $v['maximum'] . '"');
- }
- }
- return $fields;
- }
- public function user()
- {
- return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
- }
- public function urgentrank()
- {
- return $this->belongsTo('app\admin\model\workorder\Urgentrank', 'urgency', 'id', [], 'LEFT')->setEagerlyType(0);
- }
- public function engineers()
- {
- return $this->belongsTo('app\admin\model\workorder\Engineers', 'engineer_id', 'id', [], 'LEFT')
- ->setEagerlyType(0);
- }
- public function category()
- {
- return $this->belongsTo('app\admin\model\workorder\Category', 'category_id', 'id', [], 'LEFT')
- ->setEagerlyType(0);
- }
- }
|