solutionDetails.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <div>
  3. <el-descriptions class="margin-top" :column="1" border>
  4. <el-descriptions-item
  5. v-for="header in columnHeaders"
  6. :key="header.prop"
  7. >
  8. <template slot="label">{{ header.name }}</template>
  9. <template v-if="header.prop === 'postNames'">
  10. <span>{{ itemData[header.prop] && itemData[header.prop].join('、') }}</span>
  11. </template>
  12. <template v-else>
  13. {{ itemData[header.prop] }}
  14. </template>
  15. </el-descriptions-item>
  16. </el-descriptions>
  17. <m-divider content-position="left">参数及公式</m-divider>
  18. <m-card
  19. v-for="item in rules"
  20. :key="item.category"
  21. shadow="never"
  22. >
  23. <template #header>
  24. {{ item.category }}
  25. </template>
  26. <el-form label-width="100px">
  27. <el-form-item label="系数">
  28. <!-- <m-card shadow="never"> -->
  29. <el-descriptions
  30. :labelStyle="{ width: '180px'}"
  31. :column="1"
  32. border
  33. >
  34. <el-descriptions-item
  35. v-for="(calculateConfiguration, index) in item.calculateConfigurations"
  36. :key="index"
  37. :label="calculateConfiguration.name"
  38. >
  39. <template v-if="calculateConfiguration.valueCategory === 0">
  40. <el-tag size="small">{{ calculateConfiguration.value }}</el-tag>
  41. </template>
  42. <template v-else>
  43. <m-table
  44. clearHeader
  45. shadow="never"
  46. :headers="[
  47. { label: '名称', prop: 'name' },
  48. { label: '值', prop: 'value' }
  49. ]"
  50. :items="calculateConfiguration.value"
  51. >
  52. </m-table>
  53. </template>
  54. </el-descriptions-item>
  55. </el-descriptions>
  56. <!-- </m-card> -->
  57. </el-form-item>
  58. <!-- <el-form-item
  59. v-for="(calculateConfiguration, index) in item.calculateConfigurations"
  60. :key="index"
  61. :label="calculateConfiguration.name"
  62. >
  63. <template v-if="calculateConfiguration.valueCategory === 0">
  64. <el-tag>{{ calculateConfiguration.value }}</el-tag>
  65. </template>
  66. <template v-else>
  67. <m-table
  68. clearHeader
  69. shadow="never"
  70. :headers="[
  71. { label: '名称', prop: 'name' },
  72. { label: '值', prop: 'value' }
  73. ]"
  74. :items="calculateConfiguration.value"
  75. >
  76. </m-table>
  77. </template>
  78. </el-form-item> -->
  79. <el-form-item label="计算公式">
  80. <m-card shadow="never">
  81. <div v-html="item.calculateFormulas?.[0]?.content"></div>
  82. </m-card>
  83. </el-form-item>
  84. </el-form>
  85. </m-card>
  86. <m-empty v-if="rules.length === 0"></m-empty>
  87. </div>
  88. </template>
  89. <script>
  90. export default {
  91. name: 'solutionDetails',
  92. props: {
  93. itemData: {
  94. type: Object,
  95. default: () => ({})
  96. }
  97. },
  98. data () {
  99. return {
  100. activeNames: null,
  101. columnHeaders: [
  102. { name: '方案名称', prop: 'title' },
  103. { name: '方案描述', prop: 'tag' },
  104. { name: '绩效机构', prop: 'organizationName' },
  105. { name: '绩效职务', prop: 'postNames' }
  106. ]
  107. }
  108. },
  109. computed: {
  110. rules () {
  111. return this.itemData.performanceSolutionDetailRespCategoryVos || []
  112. }
  113. }
  114. }
  115. </script>
  116. <style lang="scss" scoped>
  117. </style>