__('Gender 1'), '0' => __('Gender 0')]; } public function getStatusList() { return ['1' => __('Status 1'), '0' => __('Status 0'), '-1' => __('Status -1')]; } public function getIdcardStatusList() { return ['-1' => __('Idcard_status -1'), '0' => __('Idcard_status 0'), '1' => __('Idcard_status 1'), '2' => __('Idcard_status 2')]; } public function getGenderTextAttr($value, $data) { $value = $value ? $value : (isset($data['gender']) ? $data['gender'] : ''); $list = $this->getGenderList(); return isset($list[$value]) ? $list[$value] : ''; } public function getPrevtimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['prevtime']) ? $data['prevtime'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getLogintimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['logintime']) ? $data['logintime'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getJointimeTextAttr($value, $data) { $value = $value ? $value : (isset($data['jointime']) ? $data['jointime'] : ''); return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; } public function getStatusTextAttr($value, $data) { $value = $value ? $value : (isset($data['status']) ? $data['status'] : ''); $list = $this->getStatusList(); return isset($list[$value]) ? $list[$value] : ''; } public function getIdcardStatusTextAttr($value, $data) { $value = $value ? $value : (isset($data['idcard_status']) ? $data['idcard_status'] : ''); $list = $this->getIdcardStatusList(); return isset($list[$value]) ? $list[$value] : ''; } protected function setPrevtimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } protected function setLogintimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } protected function setJointimeAttr($value) { return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value); } public function gangwei() { return $this->belongsTo('app\admin\model\user\Gangwei', 'gangwei_id', 'id', [], 'LEFT')->setEagerlyType(0); } public function jigou() { return $this->belongsTo('app\admin\model\user\Jigou', 'jigou_id', 'id', [], 'LEFT')->setEagerlyType(0); } public static function getTreeList($selected = []) { //用户列表,重置id,防止和岗位表的id重复 $userlist = Db::name('user')->field('id,gangwei_id as pid,nickname as name')->select(); foreach($userlist as $key => $user){ $userlist[$key]['id'] = 'u_'.$user['id']; $userlist[$key]['spacer'] = ''; $userlist[$key]['haschild'] = 0; } //岗位树 $ruleList = Db::name('user_gangwei')->field('id,pid,name')->select(); Tree::instance()->init($ruleList); Tree::instance()->icon = ['','','']; Tree::instance()->nbsp = ''; $ruleList = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name'); //修改haschild //拿到hasChildrens $hasChildrens = []; foreach ($ruleList as $k => $v) { foreach($userlist as $key => $user){ if($user['pid'] == $v['id']){ $v['haschild'] = 1; } } $ruleList[$k] = $v; if ($v['haschild']){ $hasChildrens[] = $v['id']; } } //合并 $ruleList = array_merge($ruleList,$userlist); //最终数据 $nodeList = []; 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['name'], 'type' => 'menu', 'state' => $state); } return $nodeList; } }