DiagTreat.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <template>
  2. <div class="treat-wrap">
  3. <div v-for="(it,i) in dtoList"
  4. v-if="dtoList"
  5. :key="it.id">
  6. <div class="label" v-if="it.controlType==0">
  7. <p class="quest">{{it.name}}</p>
  8. <span v-for="(item,indx) in it.questionMapping" class="symp" @click="handleClick(item,indx,i)">
  9. {{item.name}}
  10. <i v-if="item.select==1" @click="deletSymp(item,indx)"><img src="../images/delete.png" alt=""></i>
  11. </span>
  12. </div>
  13. <UploadImg v-if="it.controlType==4"
  14. :item="it"
  15. :moduleType="datas.type"
  16. :imgList="imgs"
  17. />
  18. </div>
  19. <div class="result">
  20. <p class="title">治疗情况</p>
  21. <p>经典款了估计的结果</p>
  22. </div>
  23. <div class="foot">
  24. <span class="back" @click="beBack">{{'返回'+ preName}}</span>
  25. <span class="next" @click="toNext">{{'进入'+ nextName}}</span>
  26. </div>
  27. <!-- <div class="detail" v-if="show">
  28. <DetailBox @close="closeDetal"
  29. :data="labelDetail"
  30. v-if="labelDetail.questionMapping&&labelDetail.questionMapping.length>0"
  31. @pComplete="complete"/>
  32. </div>
  33. <Toast :message="delText"
  34. :show="showToast"
  35. @comfirn="comfirnDel"
  36. @cancel="cancelDel"/> -->
  37. </div>
  38. </template>
  39. <script type="text/javascript">
  40. import UploadImg from '../common/UploadImg.vue'
  41. export default {
  42. name:'DiagTreat',
  43. data(){
  44. return{
  45. msg:"诊疗情况",
  46. chooseSymp:[{name:'未治疗'}],
  47. imgs:this.$store.state.diagnose.imgSrc,
  48. dtoList:[], //选项
  49. details:[], //明细
  50. chooseTxt:{} //选中的文字
  51. }
  52. },
  53. props:['datas','preName','nextName'],
  54. created(){
  55. let dataArr = this.datas&&this.datas.moduleDetailDTOList;
  56. if(dataArr){
  57. this.dtoList = JSON.parse(JSON.stringify(dataArr));
  58. }
  59. },
  60. methods:{
  61. beBack(){
  62. this.$emit('back');
  63. },
  64. toNext(){
  65. this.$emit('next');
  66. },
  67. handleClick(item,index,pIndex){
  68. // 存值到store并实现及时更新
  69. let value = item.name;
  70. let currMapping = JSON.parse(JSON.stringify(this.dtoList[pIndex].questionMapping));
  71. currMapping[index].select = 1
  72. this.dtoList[pIndex] = Object.assign({},this.dtoList[pIndex],{questionMapping:currMapping},{value:value})
  73. console.log(222,this.dtoList[pIndex],currMapping)
  74. },
  75. deletSymp(item,index){
  76. console.log(456,item)
  77. }
  78. },
  79. components:{
  80. UploadImg
  81. },
  82. watch:{
  83. dtoList:{
  84. handler(newVal,oldVal){
  85. console.log("诊疗数据更新:",newVal,oldVal);
  86. },
  87. deep:true
  88. }
  89. },
  90. }
  91. </script>
  92. <style lang="less" scoped>
  93. @import '../less/base.less';
  94. .treat-wrap{
  95. font-size: .3rem;
  96. .quest{
  97. color: #000;
  98. margin-bottom: .36rem;
  99. font-weight: 700;
  100. }
  101. .label{
  102. .label;
  103. img{
  104. width:.56rem;
  105. height: .74rem;
  106. vertical-align: top;
  107. }
  108. }
  109. .result{
  110. .title{
  111. color: #4F50FF;
  112. padding-left: .1rem;
  113. border-left: .08rem solid #4F50FF;
  114. margin-bottom: .19rem;
  115. font-weight: 700;
  116. }
  117. p{
  118. color: #666;
  119. line-height: .44rem;
  120. }
  121. }
  122. .choose{
  123. color:#fff;
  124. background: linear-gradient(-270deg, #4F4FFF, #4F8BFF);
  125. box-shadow: 0 .08rem .16rem 0 rgba(79,129,255,0.40);
  126. }
  127. }
  128. .foot{
  129. .dbfooter;
  130. }
  131. </style>