综合办公系统
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

ProjectInfo.vue 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <!-- components/ProjectTable.vue -->
  2. <template>
  3. <view class="project-table">
  4. <!-- 表格内容 -->
  5. <view class="table-row">
  6. <view class="row-label">项目编号</view>
  7. <view class="row-value">{{ project.projectNumber }}</view>
  8. </view>
  9. <view class="table-row">
  10. <view class="row-label">项目名称</view>
  11. <view class="row-value">{{ project.projectName }}</view>
  12. </view>
  13. <view class="table-row">
  14. <view class="row-label">项目负责人</view>
  15. <view class="row-value">
  16. <UserFormatter :userId="project.projectLeader" />
  17. </view>
  18. </view>
  19. <!-- 空数据提示 -->
  20. <view v-if="!project || Object.keys(project).length === 0" class="empty-tips">
  21. 暂无项目信息
  22. </view>
  23. </view>
  24. </template>
  25. <script>
  26. import UserFormatter from '@/pages/components/UserFormatter.vue';
  27. export default {
  28. name: 'ProjectTable',
  29. components: {
  30. UserFormatter
  31. },
  32. props: {
  33. project: {
  34. type: Object,
  35. }
  36. },
  37. data() {
  38. return {
  39. userMap: {} // 用户信息缓存
  40. };
  41. },
  42. methods: {
  43. // 更新用户信息缓存
  44. handleUpdateUserMap(newUserMap) {
  45. this.userMap = newUserMap;
  46. }
  47. }
  48. };
  49. </script>
  50. <style lang="scss" scoped>
  51. .project-table {
  52. width: 100%;
  53. background-color: #fff;
  54. border-radius: 8px;
  55. overflow: hidden;
  56. box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
  57. padding: 16px;
  58. }
  59. .table-row {
  60. display: flex;
  61. align-items: center;
  62. padding: 12px 0;
  63. border-bottom: 1px solid #e5e5e5;
  64. &:last-child {
  65. border-bottom: none;
  66. }
  67. .row-label {
  68. flex: 1;
  69. font-size: 14px;
  70. font-weight: 500;
  71. color: #333;
  72. }
  73. .row-value {
  74. flex: 2;
  75. font-size: 14px;
  76. color: #666;
  77. text-align: right;
  78. }
  79. }
  80. .empty-tips {
  81. text-align: center;
  82. padding: 20px;
  83. color: #999;
  84. font-size: 14px;
  85. }
  86. </style>