v1.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'datalist' . DS . 'v1.php';
  4. class meetingBasicInfo extends wg
  5. {
  6. /**
  7. * @var mixed[]
  8. */
  9. protected static $defineProps = array
  10. (
  11. 'meeting' => '?object', // 当前会议。
  12. 'users' => '?array', // 用户列表。
  13. 'rooms' => '?array', // 会议室。
  14. 'depts' => '?array', // 部门。
  15. 'typeList' => '?array', // 会议类型。
  16. 'project' => '?object', // 所属项目。
  17. 'execution' => '?object', // 所属迭代。
  18. );
  19. protected function getItems()
  20. {
  21. global $lang,$config;
  22. $meeting = $this->prop('meeting', data('meeting'));
  23. if(!$meeting) return array();
  24. $users = $this->prop('users', data('users'));
  25. $rooms = $this->prop('rooms', data('rooms'));
  26. $depts = $this->prop('depts', data('depts'));
  27. $typeList = $this->prop('typeList', data('typeList'));
  28. $project = $this->prop('project', data('project'));
  29. $execution = $this->prop('execution', data('execution'));
  30. $items = array();
  31. $projectLink = $meeting->project && common::hasPriv('project', 'view') ? helper::createLink('project', 'view', "projectID={$meeting->project}") : '';
  32. if(!empty($project))
  33. {
  34. $items[$lang->meeting->project] = $projectLink ? array
  35. (
  36. 'control' => 'link',
  37. 'url' => $projectLink,
  38. 'text' => $project->name,
  39. 'title' => $project->name,
  40. 'data-app' => 'project'
  41. ) : $project->name;
  42. }
  43. $executionLink = $meeting->execution && common::hasPriv('execution', 'view') ? helper::createLink('execution', 'view', "executionID={$meeting->execution}") : '';
  44. if(!empty($execution) && $execution->multiple)
  45. {
  46. $items[$lang->meeting->execution] = $executionLink ? array
  47. (
  48. 'control' => 'link',
  49. 'url' => $executionLink,
  50. 'text' => $execution->name,
  51. 'title' => $execution->name,
  52. 'data-app' => 'execution'
  53. ) : $execution->name;
  54. }
  55. $items[$lang->meeting->room] = zget($rooms, $meeting->room, '');
  56. $items[$lang->meeting->dept] = zget($depts, $meeting->dept, '');
  57. $items[$lang->meeting->mode] = zget($lang->meeting->modeList, $meeting->mode);
  58. $items[$lang->meeting->type] = zget($typeList, $meeting->type);
  59. $objectLink = common::hasPriv($meeting->objectType, 'view') ? helper::createLink($meeting->objectType, 'view', $meeting->objectType . "ID=" . $meeting->objectID) : '';
  60. if($meeting->objectType and $meeting->objectID)
  61. {
  62. $items[$lang->meeting->linked . $config->meeting->objectTypeList[$meeting->objectType]] = $objectLink ? array
  63. (
  64. 'control' => 'link',
  65. 'url' => $objectLink,
  66. 'text' => $meeting->objectName,
  67. 'title' => $meeting->objectName,
  68. 'data-toggle' => 'modal',
  69. 'data-size' => 'lg'
  70. ) : $meeting->objectName;
  71. }
  72. $items[$lang->meeting->host] = zget($users, $meeting->host);
  73. return $items;
  74. }
  75. protected function build()
  76. {
  77. return new datalist
  78. (
  79. set::className('bug-basic-info break-all overflow-hidden text-clip'),
  80. set::items($this->getItems())
  81. );
  82. }
  83. }