solutionDetails.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div>
  3. <el-descriptions v-if="!onlyParam" 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 v-if="!onlyParam" content-position="left">参数及公式</m-divider>
  18. <el-tabs v-model="activeNames">
  19. <el-tab-pane
  20. v-for="(item, index) in rules"
  21. :key="item.category"
  22. :label="item.category"
  23. :name="index.toString()"
  24. >
  25. <el-form label-width="100px">
  26. <el-form-item label="系数">
  27. <!-- <m-card shadow="never"> -->
  28. <el-descriptions
  29. :labelStyle="{ width: '180px'}"
  30. :column="1"
  31. border
  32. >
  33. <el-descriptions-item
  34. v-for="(calculateConfiguration, index) in item.calculateConfigurations"
  35. :key="index"
  36. :label="calculateConfiguration.name"
  37. >
  38. <template v-if="calculateConfiguration.valueCategory === 0">
  39. <el-tag size="small">{{ calculateConfiguration.value }}</el-tag>
  40. </template>
  41. <template v-else>
  42. <m-table
  43. clearHeader
  44. shadow="never"
  45. :headers="[
  46. { label: '名称', prop: 'name' },
  47. { label: '值', prop: 'value' }
  48. ]"
  49. :items="calculateConfiguration.value"
  50. >
  51. </m-table>
  52. </template>
  53. </el-descriptions-item>
  54. </el-descriptions>
  55. <!-- </m-card> -->
  56. </el-form-item>
  57. <el-form-item label="计算公式" v-if="!onlyParam">
  58. <m-card shadow="never" :bodyStyle="{ maxHeight: '300px', overflow: 'auto' }">
  59. <div v-html="item.calculateFormulas?.[0]?.content"></div>
  60. </m-card>
  61. </el-form-item>
  62. </el-form>
  63. </el-tab-pane>
  64. </el-tabs>
  65. <m-empty v-if="rules.length === 0"></m-empty>
  66. </div>
  67. </template>
  68. <script>
  69. export default {
  70. name: 'solutionDetails',
  71. props: {
  72. itemData: {
  73. type: Object,
  74. default: () => ({})
  75. },
  76. onlyParam: {
  77. type: Boolean,
  78. default: false
  79. }
  80. },
  81. data () {
  82. return {
  83. activeNames: 0,
  84. columnHeaders: [
  85. { name: '规则名称', prop: 'title' },
  86. { name: '规则描述', prop: 'tag' },
  87. { name: '绩效机构', prop: 'organizationName' },
  88. { name: '绩效职务', prop: 'postNames' }
  89. ]
  90. }
  91. },
  92. computed: {
  93. rules () {
  94. return this.itemData.performanceSolutionDetailRespCategoryVos || []
  95. }
  96. }
  97. }
  98. </script>
  99. <style lang="scss" scoped>
  100. </style>