DocumentInfoDisplay.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <template>
  2. <view class="document-info-display">
  3. <view class="content-body">
  4. <!-- 动态加载单据表单组件,所有子组件均通过 code 接收业务编码,并在内部自行请求 API 获取数据 -->
  5. <!-- 完全对齐PC端 edit.vue 的单据类型判断逻辑 -->
  6. <!-- 纵向项目申报流程 -->
  7. <PlanListForm v-if="defCode === 'pre_sci_project_vertical'" :code="taskCode" />
  8. <!-- 学术会议 待确认-->
  9. <ConferenceForm v-else-if="defCode === 'sci_academic_conferences'" :code="taskCode" />
  10. <!-- 学术讲座 -->
  11. <LectureForm v-else-if="defCode === 'sci_academic_lectures'" :code="taskCode" />
  12. <!-- 纵向项目 -->
  13. <VerticalForm v-else-if="defCode === 'sci_project_vertical'" :code="taskCode" />
  14. <!-- 学术委员会职务 -->
  15. <DutiesForm v-else-if="defCode === 'sci_academic_committee_positions'" :code="taskCode" />
  16. <!-- 科研人员派遣 -->
  17. <DispatchForm v-else-if="defCode === 'sci_scientific_researchers_dispatch'" :code="taskCode" />
  18. <!-- 自发项目 -->
  19. <SpontaneityForm v-else-if="defCode === 'sci_project_spontaneity'" :code="taskCode" />
  20. <!-- 横向项目 -->
  21. <HorizontalForm v-else-if="defCode === 'sci_project_horizontal'" :code="taskCode" />
  22. <!-- 学术成果(根据taskCode判断具体类型) -->
  23. <AchPaperForm v-else-if="defCode === 'sci_academic_achievement' && taskCode.includes('学术论文')" :code="taskCode" />
  24. <AchAwardsForm v-else-if="defCode === 'sci_academic_achievement' && taskCode.includes('奖项荣誉')" :code="taskCode" />
  25. <AchPatentForm v-else-if="defCode === 'sci_academic_achievement' && taskCode.includes('学术专利')" :code="taskCode" />
  26. <AchPatentForm v-else-if="defCode === 'sci_academic_achievement' && taskCode.includes('专利转化')" :code="taskCode" />
  27. <AchWorkForm v-else-if="defCode === 'sci_academic_achievement' && taskCode.includes('学术著作')" :code="taskCode" />
  28. <!-- 学术委员会 -->
  29. <AchCommitteeForm v-else-if="defCode === 'sci_academic_committee'" :code="taskCode" />
  30. <!-- 考核批次 -->
  31. <AssessmentBatchForm v-else-if="defCode === 'sci_assessment_batch'" :code="taskCode" />
  32. <!-- 学科项目 -->
  33. <DisciplineForm v-else-if="defCode === 'sci_project_discipline'" :code="taskCode" />
  34. <!-- 经费认领审批 -->
  35. <ClaimForm v-else-if="defCode === 'sci_fund_allot_apply'" :code="taskCode" />
  36. <!-- 经费支出 -->
  37. <ReimbursementForm v-else-if="defCode === 'sci_fund_expense'" :code="taskCode" />
  38. <!-- 经费奖励 -->
  39. <RewardForm v-else-if="defCode === 'sci_fund_reward'" :code="taskCode" />
  40. <!-- 经费结转 -->
  41. <CarryForwardForm v-else-if="defCode === 'sci_fund_carryover'" :code="taskCode" />
  42. <!-- 项目中检 -->
  43. <InspectionForm v-else-if="defCode === 'sci_project_inspection'" :code="taskCode" />
  44. <!-- 项目验收审批流 -->
  45. <ConclusionForm v-else-if="defCode === 'sci_project_conclusion'" :code="taskCode" />
  46. <!-- 论文投稿审批流 -->
  47. <AchPaperSubmission v-else-if="defCode === 'sci_paper_submission'" :code="taskCode" />
  48. <!-- 学科中期 -->
  49. <DisciplineMidterm v-else-if="defCode === 'sci_project_discipline_midterm'" :code="taskCode" />
  50. <!-- 学科结题 -->
  51. <DisciplineFinal v-else-if="defCode === 'sci_project_discipline_final'" :code="taskCode" />
  52. <!-- 项目变更 -->
  53. <ProjectChange v-else-if="defCode === 'sci_project_change'" :code="taskCode" />
  54. <!-- 集成电路 -->
  55. <CircuitForm v-else-if="defCode === 'sci_property_circuit'" :code="taskCode" />
  56. <!-- 著作权 -->
  57. <CopyrightForm v-else-if="defCode === 'sci_property_copyright'" :code="taskCode" />
  58. <!-- 医药凭证 -->
  59. <CredentialForm v-else-if="defCode === 'sci_property_medicine_credential'" :code="taskCode" />
  60. <!-- 新品种 -->
  61. <VarietyForm v-else-if="defCode === 'sci_property_new_variety'" :code="taskCode" />
  62. <!-- 标准 -->
  63. <StandardForm v-else-if="defCode === 'sci_property_standard'" :code="taskCode" />
  64. <!-- 伦理审查 -->
  65. <ReviewForm v-else-if="defCode === 'sci_ethical_review_form'" :code="taskCode" />
  66. <!-- 自发项目申报 -->
  67. <SpontaneityFormPlan v-else-if="defCode === 'sci_project_spontaneity_declaration_project'" :code="taskCode" />
  68. <!-- 经费冲正 -->
  69. <SciFundReverse v-else-if="defCode === 'sci_fund_reverse'" :code="taskCode" />
  70. <!-- 临时借款 -->
  71. <TemporaryFundForm v-else-if="defCode === 'sci_temporary_fund_borrowing'" :code="taskCode" />
  72. <!-- 成果标准 -->
  73. <SciAchievementStandard v-else-if="defCode === 'sci_achievement_standard'" :code="taskCode" />
  74. <!-- 论文认领 -->
  75. <SciAchievementPaperPushClaim v-else-if="defCode === 'sci_achievement_paper_push_claim'" :code="taskCode" />
  76. <!-- 其他成果 -->
  77. <SciAchievementOther v-else-if="defCode === 'sci_achievement_other'" :code="taskCode" />
  78. <!-- 软件著作权 -->
  79. <SciAchievementSoftware v-else-if="defCode === 'sci_achievement_software'" :code="taskCode" />
  80. <!-- 保底展示 -->
  81. <view v-else class="section-card fallback-card">
  82. <view class="section-title">单据详情 ({{ defCode }})</view>
  83. <view class="info-row"><text class="label">业务编码</text><text class="value">{{ taskCode }}</text></view>
  84. <!-- <view class="tip-box">该单据类型暂未适配详细布局预览。</view> -->
  85. </view>
  86. </view>
  87. </view>
  88. </template>
  89. <script setup lang="ts">
  90. // 导入所有业务组件(完全对齐PC端)
  91. import VerticalForm from './document/VerticalForm.vue';
  92. import HorizontalForm from './document/HorizontalForm.vue';
  93. import PlanListForm from './document/PlanListForm.vue';
  94. import ConferenceForm from './document/ConferenceForm.vue';
  95. import LectureForm from './document/LectureForm.vue';
  96. import SpontaneityForm from './document/SpontaneityForm.vue';
  97. import AchPaperForm from './document/AchPaperForm.vue';
  98. import AchAwardsForm from './document/AchAwardsForm.vue';
  99. import AchPatentForm from './document/AchPatentForm.vue';
  100. import AchWorkForm from './document/AchWorkForm.vue';
  101. import AchCommitteeForm from './document/AchCommitteeForm.vue';
  102. import DutiesForm from './document/DutiesForm.vue';
  103. import DispatchForm from './document/DispatchForm.vue';
  104. import ClaimForm from './document/ClaimForm.vue';
  105. import ReimbursementForm from './document/ReimbursementForm.vue';
  106. import RewardForm from './document/RewardForm.vue';
  107. import CarryForwardForm from './document/CarryForwardForm.vue';
  108. import AssessmentBatchForm from './document/AssessmentBatchForm.vue';
  109. import DisciplineForm from './document/DisciplineForm.vue';
  110. import InspectionForm from './document/InspectionForm.vue';
  111. import ConclusionForm from './document/ConclusionForm.vue';
  112. import AchPaperSubmission from './document/AchPaperSubmission.vue';
  113. import DisciplineMidterm from './document/DisciplineMidterm.vue';
  114. import DisciplineFinal from './document/DisciplineFinal.vue';
  115. import ProjectChange from './document/ProjectChange.vue';
  116. import CircuitForm from './document/CircuitForm.vue';
  117. import CopyrightForm from './document/CopyrightForm.vue';
  118. import CredentialForm from './document/CredentialForm.vue';
  119. import VarietyForm from './document/VarietyForm.vue';
  120. import StandardForm from './document/StandardForm.vue';
  121. import ReviewForm from './document/ReviewForm.vue';
  122. import SpontaneityFormPlan from './document/SpontaneityFormPlan.vue';
  123. import SciFundReverse from './document/SciFundReverse.vue';
  124. import TemporaryFundForm from './document/TemporaryFundForm.vue';
  125. import SciAchievementStandard from './document/SciAchievementStandard.vue';
  126. import SciAchievementPaperPushClaim from './document/SciAchievementPaperPushClaim.vue';
  127. import SciAchievementOther from './document/SciAchievementOther.vue';
  128. import SciAchievementSoftware from './document/SciAchievementSoftware.vue';
  129. const props = defineProps<{
  130. defCode: string; // 对应 PC 端的 state.taskDetail.defCode
  131. taskCode: string; // 对应 PC 端的 taskCode (row.businessCode)
  132. }>();
  133. </script>
  134. <style lang="scss" scoped>
  135. .document-info-display {
  136. padding: 10rpx 0;
  137. .empty-tip { padding: 100rpx 0; }
  138. .fallback-card {
  139. background: #fff;
  140. margin: 20rpx;
  141. padding: 30rpx;
  142. border-radius: 16rpx;
  143. .section-title { font-size: 32rpx; font-weight: bold; margin-bottom: 20rpx; color: #333; }
  144. .info-row {
  145. display: flex; justify-content: space-between; padding: 16rpx 0;
  146. border-bottom: 1rpx solid #f5f5f5; font-size: 28rpx;
  147. .label { color: #888; width: 220rpx; }
  148. .value { color: #333; flex: 1; text-align: right; }
  149. }
  150. .tip-box {
  151. margin-top: 30rpx; padding: 20rpx; background: #fffbe6;
  152. border: 1rpx solid #ffe58f; color: #856404; font-size: 24rpx; border-radius: 8rpx;
  153. }
  154. }
  155. }
  156. </style>