House.php
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
namespace app\admin\model;
use fast\Tree;
use think\Model;
class House extends Model
{
// 表名
protected $name = 'house';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
protected $deleteTime = false;
// // 追加属性
// protected $append = [
// 'status_text'
// ];
// 追加属性
protected $append = [
'ismenu_text'
];
protected static function init()
{
self::afterInsert(function ($row) {
$pk = $row->getPk();
$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
});
}
public function getStatusList()
{
return ['normal' => __('Normal'), 'hidden' => __('Hidden')];
}
// public function getStatusTextAttr($value, $data)
// {
// $value = $value ? $value : $data['status'];
// $list = $this->getStatusList();
// return isset($list[$value]) ? $list[$value] : '';
// }
public static function getTreeList($selected = [])
{
$ruleList = collection(self::where('status', 'normal')->order('weigh desc,id desc')->select())->toArray();
$nodeList = [];
Tree::instance()->init($ruleList);
$ruleList = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name');
$hasChildrens = [];
foreach ($ruleList as $k => $v)
{
if ($v['haschild'])
$hasChildrens[] = $v['id'];
}
foreach ($ruleList as $k => $v) {
$state = array('selected' => in_array($v['id'], $selected) && !in_array($v['id'], $hasChildrens));
$nodeList[] = array('id' => $v['id'], 'parent' => $v['pid'] ? $v['pid'] : '#', 'text' => __($v['title']), 'type' => 'menu', 'state' => $state);
}
return $nodeList;
}
public function getIsmenuList()
{
return ['1' => __('Ismenu 1'),'0' => __('Ismenu 0')];
}
public function getIsmenuTextAttr($value, $data)
{
$value = $value ? $value : (isset($data['ismenu']) ? $data['ismenu'] : '');
$list = $this->getIsmenuList();
return isset($list[$value]) ? $list[$value] : '';
}
}