text-display-hospital.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <script>
  2. import DragTool from "../DragTool";
  3. import mixin from '../../mixinnew'
  4. export default {
  5. name: 'text-display-hospital',
  6. components: {DragTool},
  7. mixins:[mixin],
  8. title:'院级统计信息',//医院信息显示
  9. computed:{
  10. displayText(){
  11. if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.displayPartItem&&!!this.data.moduleConfig.dataConfig.displayPartItem.length){ //看板项内容
  12. let customItem =this.$store.state.partStatisticSummary.filter(p=>p.value===this.data.moduleConfig.dataConfig.displayPartItem[0])[0]
  13. if(customItem){
  14. var childItem = customItem.children.filter(p=>p.value===this.data.moduleConfig.dataConfig.displayPartItem[1])[0];
  15. if(childItem){
  16. return childItem.summary
  17. }
  18. }
  19. }
  20. return ''
  21. },
  22. titleText(){
  23. //重写自定看板项标题
  24. if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.titleText!=='') {
  25. return this.data.moduleConfig.dataConfig.titleText
  26. }
  27. if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.displayPartItem&&!!this.data.moduleConfig.dataConfig.displayPartItem.length){ //看板项内容
  28. let customItem = this.$store.state.partStatisticSummary.filter(p=>p.value===this.data.moduleConfig.dataConfig.displayPartItem[0])[0]
  29. if(customItem){
  30. var childItem = customItem.children.filter(p=>p.value===this.data.moduleConfig.dataConfig.displayPartItem[1])[0];
  31. if(childItem){
  32. return childItem.label
  33. }
  34. }
  35. }
  36. return '标题'
  37. }
  38. },
  39. dataTpl:{
  40. tpl_id: 12,
  41. tpl_type: 'HOSPITAL_ITEM',
  42. templateName:'text-display-hospital',
  43. isEdit:true,
  44. unique:'',
  45. moduleIconClass:'icon-Text',
  46. moduleConfig:{
  47. moduleStyle: {
  48. borderColor: '',
  49. borderRadius:'0px',
  50. borderStyle:'solid',
  51. backgroundColor:'',
  52. borderTopWidth:'0px',
  53. borderRightWidth:'0px',
  54. borderBottomWidth:'0px',
  55. borderLeftWidth:'0px',
  56. margin:'0px',
  57. padding:'0px',
  58. height:'40px'
  59. },
  60. styleConfig:{
  61. },
  62. titleStyle:{ //标题样式
  63. fontSize:'14px',
  64. color:'',
  65. fontWeight:'normal',
  66. marginLeft:'0px',
  67. marginRight:'0px',
  68. border:'0px',
  69. width:'auto',
  70. borderColor:'',
  71. paddingRight:'10px',
  72. paddingLeft:'10px',
  73. borderStyle: 'solid',
  74. borderRightWidth: '0px'
  75. },
  76. textStyle:{ //内容样式
  77. fontSize:'14px',
  78. color:'',
  79. fontWeight:'normal',
  80. marginLeft:'0px',
  81. marginRight:'0px',
  82. textAlign:'center'
  83. },
  84. dataConfig:{
  85. displayPartItem:[],
  86. titleText:''
  87. },
  88. showTitle:true, //显示标题,
  89. },
  90. children:([])
  91. }
  92. }
  93. </script>
  94. <template>
  95. <drag-tool :unique="data.unique" @delete="deleteModule" :is-edit="isEdit" @copy="copyModule" @active="activeModule">
  96. <div :style="moduleComputedStyle" class="flex">
  97. <div :style="titleComputedStyle" v-if="data.moduleConfig.showTitle" class="titlewrap"> <div class="titleStyle">{{titleText}}</div>
  98. </div>
  99. <div class="flex-sub flex" > <div class="contentStyle" :style="textComputedStyle">{{displayText}}</div>
  100. </div>
  101. </div>
  102. </drag-tool>
  103. </template>
  104. <style scoped>
  105. .content_item{
  106. align-self: center;
  107. }
  108. .titlewrap{
  109. align-items: center;
  110. display: flex;
  111. flex-direction: column;
  112. overflow: hidden;
  113. overflow-wrap: break-word;
  114. }
  115. .titleStyle{
  116. height: 100%;
  117. display: inline-flex;
  118. align-items: center;
  119. flex-direction: row-reverse;
  120. width: 100%;
  121. overflow-wrap: break-word;
  122. word-break: break-all;
  123. }
  124. .contentStyle{
  125. flex:1;
  126. align-self: center;
  127. }
  128. </style>