text-display.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <template>
  2. <keep-alive>
  3. <!-- <drag-tool :unique="data.unique" @delete="deleteModule" :is-edit="isEdit" @copy="copyModule" @active="activeModule">-->
  4. <div :style="moduleComputedStyle" class="flex">
  5. <div class="iconfont" :class="data.moduleConfig.dataConfig.iconClass" v-if="data.moduleConfig.showIcon" :style="data.moduleConfig.iconStyle"></div>
  6. <div :style="titleComputedStyle" v-if="data.moduleConfig.showTitle" class="titlewrap">
  7. <div class="titleStyle"> {{data.moduleConfig.dataConfig.titleText}}</div>
  8. </div>
  9. <div :style="textComputedStyle" class="content_item">
  10. {{displayText}}
  11. </div>
  12. </div>
  13. <!-- </drag-tool>-->
  14. </keep-alive>
  15. </template>
  16. <script>
  17. import DragTool from "../DragTool";
  18. import mixin from '../../mixinnew'
  19. import {unix2Date,unix2DateWithTimeZone} from '@/utils/Foundation'
  20. export default {
  21. name: "text-display",
  22. mixins:[mixin],
  23. components: {DragTool},
  24. title:'内容显示单元',
  25. unique:'',
  26. computed:{
  27. displayText(){
  28. if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.textWith==='system.date'){ //系统信息
  29. return unix2DateWithTimeZone(this.systemDate,this.data.moduleConfig.dataConfig.textFormat)
  30. } else if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.textWith==='part.name'){ //科室信息
  31. let text = this.data.moduleConfig.dataConfig.contentText
  32. if(this.bindData){
  33. text = this.bindData['part_name']
  34. }
  35. return text
  36. }else if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.textWith.indexOf('patient.')>-1) { //患者信息
  37. let text = this.data.moduleConfig.dataConfig.contentText
  38. if(this.bindData){
  39. text = this.bindData.items[this.childDataIndex][this.data.moduleConfig.dataConfig.textWith.replace('patient.','')]
  40. if(this.data.moduleConfig.dataConfig.textType==='日期'){ //格式化日期
  41. text = unix2DateWithTimeZone(text*1000,this.data.moduleConfig.dataConfig.textFormat)
  42. }
  43. if(this.data.moduleConfig.dataConfig.textWith==='patient.sex'){ //格式化性别
  44. text=(text===0?'女':text===1?'男':'未知')
  45. }
  46. if(this.data.moduleConfig.dataConfig.textWith==='patient.age'){
  47. text = (text===null?'':text)+this.bindData.items[this.childDataIndex]['age_unit']
  48. }
  49. }
  50. return text
  51. }else if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.textWith.indexOf('nurse_config_')>-1){ //护理参数
  52. let nurseId = this.data.moduleConfig.dataConfig.textWith.replace('nurse_config_','')
  53. if(this.bindData.items[this.childDataIndex]['list']){
  54. let nurseOption = this.bindData.items[this.childDataIndex]['list'].filter(p=>p.nurse_config===parseInt(nurseId))[0]
  55. if(nurseOption){
  56. return nurseOption['nurse_option_name']
  57. }
  58. }
  59. // let nurseOption = this.bindData.items[this.childDataIndex]['list'].filter(p=>p.nurse_config===parseInt(nurseId))[0]
  60. // if(nurseOption){
  61. // return nurseOption['nurse_option_name']
  62. // }
  63. }else if(this.data.moduleConfig.dataConfig&&this.data.moduleConfig.dataConfig.textWith.indexOf('statistic_')>-1){
  64. let statisticKey = this.data.moduleConfig.dataConfig.textWith.replace('statistic_','')
  65. let statisticItem = this.$store.state.statisticData[statisticKey]
  66. if(statisticItem){
  67. return statisticItem
  68. }
  69. }else {
  70. return this.data.moduleConfig.dataConfig.contentText
  71. }
  72. }
  73. },
  74. dataTpl:{
  75. tpl_id: 7,
  76. tpl_type: 'BOARD_ITEM',
  77. templateName:'text-display',
  78. isEdit:true,
  79. moduleIconClass:'icon-Text',
  80. moduleConfig:{
  81. moduleStyle: {
  82. borderColor: '',
  83. borderWidth:'0px',
  84. borderRadius:'0px',
  85. borderStyle:'solid',
  86. backgroundColor:'',
  87. justifyContent:'left',
  88. margin:'0px',
  89. padding:'0px',
  90. height:'20px'
  91. },
  92. styleConfig:{
  93. borderColorWithNurse:'', //边框颜色跟随的护理信息分类
  94. backgroundColorWithNurse:'', //模块背景色跟随的护理信息分类
  95. titleColorWithNurse:'',
  96. textColorWithNurse:'',
  97. textColorToday:'',
  98. backgroundColorToday:''
  99. },
  100. dataConfig:{
  101. titleText:'Title',
  102. contentText:'文字',
  103. textWith:'',
  104. textType:'文本',
  105. textFormat:'',
  106. iconClass:'' //图标样式类
  107. },
  108. titleStyle:{ //标题样式
  109. fontSize:'14px',
  110. color:'',
  111. fontWeight:'normal',
  112. marginLeft:'0px',
  113. marginRight:'0px',
  114. border:'0px',
  115. width:'auto',
  116. borderColor:'',
  117. paddingRight:'10px',
  118. paddingLeft:'10px',
  119. borderStyle: 'solid',
  120. borderRightWidth: '0px'
  121. },
  122. textStyle:{ //内容样式
  123. fontSize:'14px',
  124. color:'',
  125. fontWeight:'normal',
  126. marginLeft:'0px',
  127. marginRight:'0px',
  128. },
  129. iconStyle:{
  130. fontSize:'14px',
  131. color:'',
  132. marginLeft:'0px',
  133. marginTop:'0px',
  134. marginRight:'0px',
  135. marginBottom:'0px'
  136. },
  137. showTitle:true, //显示标题,
  138. showIcon:false
  139. },
  140. children:[]
  141. },
  142. }
  143. </script>
  144. <style scoped>
  145. .content_item{
  146. align-self: center;
  147. }
  148. .titlewrap{
  149. align-items: center;
  150. display: flex;
  151. flex-direction: column;
  152. overflow: hidden;
  153. overflow-wrap: break-word;
  154. }
  155. .titleStyle{
  156. height: 100%;
  157. display: inline-flex;
  158. align-items: center;
  159. flex-direction: row-reverse;
  160. width: 100%;
  161. overflow-wrap: break-word;
  162. word-break: break-all;
  163. }
  164. </style>