v1.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'datalist' . DS . 'v1.php';
  4. class taskEffortInfo extends wg
  5. {
  6. /**
  7. * @var mixed[]
  8. */
  9. protected static $defineProps = array
  10. (
  11. 'task'=> '?object' // 当前任务。
  12. );
  13. protected function getItems()
  14. {
  15. global $lang;
  16. $task = $this->prop('task', data('task'));
  17. if(!$task) return array();
  18. $items = array();
  19. $items[$lang->task->estimate] =
  20. $task->estimate . ' ' . $lang->task->suffixHour;
  21. $items[$lang->task->consumed] =
  22. $task->consumed . ' ' . $lang->task->suffixHour;
  23. $items[$lang->task->left] =
  24. $task->left . ' ' . $lang->task->suffixHour;
  25. $items[$lang->task->estStarted] = array('content' => helper::isZeroDate($task->estStarted) ? '' : $task->estStarted, 'contentClass' => 'estStarted-text');
  26. $items[$lang->task->realStarted] =
  27. helper::isZeroDate($task->realStarted) ? '' : substr($task->realStarted, 0, 19);
  28. $items[$lang->task->deadline] = array('content' => helper::isZeroDate($task->deadline) ? '' : $task->deadline, 'contentClass' => 'deadline-text');
  29. if(!empty($task->delay)) $items[$lang->task->deadline]['children'] = label(html(sprintf($lang->task->delayWarning, $task->delay)), setClass('danger-pale circle'));
  30. return $items;
  31. }
  32. protected function build()
  33. {
  34. global $app;
  35. return new datalist
  36. (
  37. set::className('task-effort-info'),
  38. set::items($this->getItems()),
  39. $app->getClientLang() == 'en' ? set::labelWidth('80') : null
  40. );
  41. }
  42. }