index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template>
  2. <UiSchemeIndex v-if="route.path === '/uiScheme/index'" />
  3. <div v-else :class="prefixCls" class="object-relation-page">
  4. <div class="page-header">
  5. <div class="page-title">对象关系分析</div>
  6. <div class="page-subtitle">当前页面为占位视图,后续可在此承接关系图谱、对象网络和多跳关联分析。</div>
  7. </div>
  8. <div class="content-panel">
  9. <div class="table-card">
  10. <div class="panel-header">
  11. <div>
  12. <div class="panel-title">关系分析视图待扩展</div>
  13. <div class="panel-desc">建议沿用交易分析模块的白底卡片布局,承接图谱、对象网络和多跳关系的联动研判。</div>
  14. </div>
  15. </div>
  16. <div class="layout-preview">
  17. <div class="preview-panel preview-panel--left">
  18. <div class="preview-label">左侧面板</div>
  19. <div class="preview-title">对象树与筛选条件</div>
  20. <div class="preview-text">用于选择对象、关系类型和时间范围,并展示命中数量与树形结构。</div>
  21. </div>
  22. <div class="preview-panel preview-panel--center">
  23. <div class="preview-label">中部画布</div>
  24. <div class="preview-title">关系图谱主视图</div>
  25. <div class="preview-text">适合放置节点网络、资金往来链路或多跳拓扑图,作为主分析区域。</div>
  26. </div>
  27. <div class="preview-panel preview-panel--right">
  28. <div class="preview-label">右侧面板</div>
  29. <div class="preview-title">详情与时间轴</div>
  30. <div class="preview-text">承接节点详情、关系说明、时间轴明细和操作记录等辅助信息。</div>
  31. </div>
  32. </div>
  33. <div class="placeholder-text">
  34. 该页面建议采用“左侧对象树 + 中间关系图 +
  35. 右侧详情面板”的三栏结构,后续可以基于对象网络、资金往来、通联关系做联动分析。
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. </template>
  41. <script lang="ts" setup name="ViewsObjectRelationIndex">
  42. import { useRoute } from 'vue-router';
  43. import { useDesign } from '@jeesite/core/hooks/web/useDesign';
  44. import UiSchemeIndex from '../uiScheme/index.vue';
  45. const route = useRoute();
  46. const { prefixCls } = useDesign('object-relation');
  47. </script>
  48. <style lang="less">
  49. @import '../styles/trans-analysis-table-ui.less';
  50. @prefix-cls: ~'jeesite-object-relation';
  51. .@{prefix-cls}.object-relation-page {
  52. .trans-analysis-table-ui();
  53. .analysis-single-panel-frame();
  54. .table-card {
  55. gap: 8px;
  56. }
  57. .panel-title {
  58. color: #111827;
  59. font-size: 14px;
  60. font-weight: 600;
  61. line-height: 22px;
  62. }
  63. .panel-desc {
  64. color: #6b7280;
  65. font-size: 12px;
  66. line-height: 18px;
  67. }
  68. .layout-preview {
  69. display: grid;
  70. grid-template-columns: minmax(220px, 0.8fr) minmax(360px, 1.4fr) minmax(240px, 0.9fr);
  71. gap: 8px;
  72. width: 100%;
  73. }
  74. .preview-panel {
  75. min-height: 180px;
  76. padding: 12px;
  77. border: 1px dashed #cbd5e1;
  78. border-radius: 12px;
  79. background: #fafafa;
  80. display: flex;
  81. flex-direction: column;
  82. justify-content: space-between;
  83. gap: 10px;
  84. }
  85. .preview-panel--center {
  86. background: #f8fafc;
  87. }
  88. .preview-label {
  89. display: inline-flex;
  90. align-items: center;
  91. width: fit-content;
  92. padding: 2px 8px;
  93. border-radius: 999px;
  94. background: #e6f4ff;
  95. color: #1677ff;
  96. font-size: 12px;
  97. line-height: 20px;
  98. }
  99. .preview-title {
  100. color: #111827;
  101. font-size: 15px;
  102. font-weight: 600;
  103. line-height: 22px;
  104. }
  105. .preview-text {
  106. color: #6b7280;
  107. font-size: 12px;
  108. line-height: 20px;
  109. }
  110. .placeholder-text {
  111. width: 100%;
  112. margin: 0;
  113. padding: 12px;
  114. border-radius: 8px;
  115. background: #fafafa;
  116. color: #64748b;
  117. font-size: 13px;
  118. line-height: 22px;
  119. }
  120. @media screen and (max-width: 1200px) {
  121. .layout-preview {
  122. grid-template-columns: 1fr;
  123. }
  124. }
  125. }
  126. </style>