ProjectCooperates.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <view class="module-container">
  3. <template v-if="projectData?.companyList && projectData.companyList.length > 0">
  4. <view v-for="(company, index) in projectData.companyList" :key="index" class="party-card">
  5. <view class="party-title">合作单位 {{ Number(index) + 1 }}</view>
  6. <CommonInfoRow label="单位编号" :value="company.compCode" />
  7. <CommonInfoRow label="单位名称" :value="company.compName" />
  8. <CommonInfoRow label="单位类别" :value="getDictLabel('compType', company.compType)" />
  9. <CommonInfoRow label="合同方" :value="getDictLabel('project_company_type', company.contractParty)" />
  10. <CommonInfoRow label="单位地址" :value="company.compLocalArea" />
  11. <CommonInfoRow label="联系人" :value="company.compContact" />
  12. <CommonInfoRow label="联系电话" :value="company.compPhoneNum" noBorder />
  13. </view>
  14. </template>
  15. <uv-empty v-else mode="data" text="暂无数据"></uv-empty>
  16. </view>
  17. </template>
  18. <script setup lang="ts">
  19. import { useDict } from '@/hooks/useDict';
  20. import CommonInfoRow from '@/components/ui/CommonInfoRow.vue';
  21. const props = defineProps<{
  22. projectId: string;
  23. projectType: string;
  24. projectData: any;
  25. }>();
  26. const { getDictLabel } = useDict('compType', 'project_company_type');
  27. </script>
  28. <style lang="scss" scoped>
  29. .module-container {
  30. padding: 30rpx;
  31. background-color: #fff;
  32. border-radius: 16rpx;
  33. min-height: 400rpx;
  34. box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.03);
  35. }
  36. .party-card {
  37. background-color: #f7f9fc;
  38. border-radius: 12rpx;
  39. padding: 24rpx;
  40. margin-bottom: 20rpx;
  41. &:last-child {
  42. margin-bottom: 0;
  43. }
  44. .party-title {
  45. font-size: 28rpx;
  46. font-weight: bold;
  47. color: #1c9bfd;
  48. margin-bottom: 16rpx;
  49. border-bottom: 2rpx solid rgba(#1c9bfd, 0.1);
  50. padding-bottom: 12rpx;
  51. }
  52. }
  53. </style>