v1.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'dtable' . DS . 'v1.php';
  4. class taskTeam extends wg
  5. {
  6. /**
  7. * @var mixed[]
  8. */
  9. protected static $defineProps = array
  10. (
  11. 'team' => '?object', // 团队信息。
  12. 'users' => '?array' // 用户列表。
  13. );
  14. protected function getData()
  15. {
  16. $team = $this->prop('team');
  17. if(is_null($team))
  18. {
  19. $task = data('task');
  20. if(is_object($task) && isset($task->team)) $team = $task->team;
  21. }
  22. return $team;
  23. }
  24. protected function getCols()
  25. {
  26. global $lang;
  27. $cols = array();
  28. $cols['account'] = array('title' => $lang->task->team, 'type' => 'user', 'fixed' => 'left', 'sort' => true);
  29. $cols['estimate'] = array('title' => $lang->task->estimateAB, 'type' => 'number', 'flex' => 1, 'sort' => true);
  30. $cols['consumed'] = array('title' => $lang->task->consumedAB, 'type' => 'number', 'flex' => 1, 'sort' => true);
  31. $cols['left'] = array('title' => $lang->task->leftAB, 'type' => 'number', 'flex' => 1, 'sort' => true);
  32. $cols['status'] = array('title' => $lang->task->statusAB, 'type' => 'status', 'statusMap' => $this->prop('statusMap', $lang->task->statusList), 'flex' => 1, 'sort' => true);
  33. return $cols;
  34. }
  35. protected function build()
  36. {
  37. $users = $this->prop('users', data('users'));
  38. return new dtable
  39. (
  40. set::_className('task-team-table ring'),
  41. set::cols($this->getCols()),
  42. set::data($this->getData()),
  43. set::userMap($users),
  44. set::horzScrollbarPos('inside'),
  45. set::scrollbarSize(5)
  46. );
  47. }
  48. }