index.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!-- 挂牌大厅-求购大厅-详情 -->
  2. <template>
  3. <teleport :to="teleportTo">
  4. <app-view class="app-details" v-bind="$attrs">
  5. <template #header>
  6. <div>
  7. <el-button @click="$emit('closed')">返回</el-button>
  8. </div>
  9. </template>
  10. <el-descriptions title="求购信息" :column="2">
  11. <el-descriptions-item label="委托单号">{{ selectedRow.wrtradeorderid }}</el-descriptions-item>
  12. <el-descriptions-item label="买方">{{ selectedRow.buyusername }}</el-descriptions-item>
  13. <el-descriptions-item label="钻石分类">{{ selectedRow.zscategorydisplay }}</el-descriptions-item>
  14. <el-descriptions-item label="货币类型">{{ selectedRow.zscurrencytypedisplay }}</el-descriptions-item>
  15. <el-descriptions-item label="尺寸">{{ selectedRow.zssize }}</el-descriptions-item>
  16. <el-descriptions-item label="形状">{{ selectedRow.zsshapetypedisplay }}</el-descriptions-item>
  17. <el-descriptions-item label="净度">{{ selectedRow.zsclaritytypedisplay }}</el-descriptions-item>
  18. <el-descriptions-item label="对称度">{{ selectedRow.zssymmetrytypedisplay }}</el-descriptions-item>
  19. <el-descriptions-item label="颜色">{{ selectedRow.zscolortypedisplay }}</el-descriptions-item>
  20. <el-descriptions-item label="切工">{{ selectedRow.zscuttypedisplay }}</el-descriptions-item>
  21. <el-descriptions-item label="荧光">{{ selectedRow.zsfluorescencetypedisplay }}</el-descriptions-item>
  22. </el-descriptions>
  23. <div>
  24. <div>履约规则</div>
  25. <app-performance-rule :item="getPerformanceTemplateById(selectedRow.performancetemplateid)" />
  26. </div>
  27. <template v-for="(auth, index) in getAuthComponents()" :key="index">
  28. <component :is="componentMap.get(auth.code)" v-bind="{ selectedRow }" v-if="showComponent" />
  29. </template>
  30. </app-view>
  31. </teleport>
  32. </template>
  33. <script lang="ts" setup>
  34. import { computed, PropType } from 'vue'
  35. import { useMenu } from '@/hooks/menu'
  36. import { useLoginStore, usePerformanceStore } from '@/stores'
  37. import AppPerformanceRule from '@pc/components/modules/performance-rule/index.vue'
  38. const props = defineProps({
  39. code: String,
  40. teleportTo: {
  41. type: String as PropType<'#appPageTeleport' | '#appMainTeleport'>,
  42. default: '#appPageTeleport'
  43. },
  44. selectedRow: {
  45. type: Object as PropType<Ermcp.BuyOrderRsp>,
  46. default: () => ({})
  47. }
  48. })
  49. const { getUserId } = useLoginStore()
  50. const { componentMap, getAuthComponents } = useMenu(props.code)
  51. const { getPerformanceTemplateById } = usePerformanceStore()
  52. // 不能购买自己发布的求购
  53. const showComponent = computed(() => {
  54. return props.selectedRow.userid !== getUserId()
  55. })
  56. </script>