Others.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <div class="other-wrap">
  3. <div v-for="(it,i) in dtoList"
  4. v-if="dtoList"
  5. :key="it.id"
  6. class="label">
  7. <p class="quest">{{i + 1 +'.' + it.name}}</p>
  8. <Label v-if="it.controlType==0"
  9. :item="it"
  10. :ppId="it.id"
  11. :moduleType="datas.type"
  12. @setDetail="setDetail"
  13. @updateOrig="updateOrig"/>
  14. <!-- 输入框 -->
  15. <Input v-if="it.controlType==6 || it.controlType==7"
  16. :item="it"
  17. :key="it.id"
  18. :uFlag="uFlag"
  19. @updata="updataData"/>
  20. </div>
  21. <div class="result" v-if="checkText.length>0">
  22. <p class="title">其他病史</p>
  23. <!-- <p v-for="(v,i) in checkText">{{v.text}}</p> -->
  24. <p>{{getText()}}</p>
  25. </div>
  26. <div class="foot">
  27. <span class="back" @click="beBack">{{'返回'+ preName}}</span>
  28. <span class="next" @click="toNext">{{'进入'+ nextName}}</span>
  29. </div>
  30. <div class="detail" v-if="show">
  31. <DetailBox @close="closeDetal"
  32. :data="labelDetail"
  33. :moduleType="datas.type"
  34. :ppId="ppId"
  35. v-if="labelDetail.questionMapping&&labelDetail.questionMapping.length>0"
  36. @pComplete="complete"/>
  37. </div>
  38. </div>
  39. </template>
  40. <script type="text/javascript">
  41. import UploadImg from '../common/UploadImg.vue';
  42. import Label from '../common/Label.vue';
  43. import DetailBox from './DetailBox.vue';
  44. import Toast from '../common/Toast.vue';
  45. import Input from '../common/Input.vue';
  46. export default {
  47. name:'Others',
  48. data(){
  49. let {origin,text} = this.$store.state.others;
  50. return{
  51. msg:"其他情况",
  52. // imgs:this.$store.state.others.imgSrc,
  53. dtoList:origin, //模板数据
  54. labelDetail:{}, //标签明细
  55. checkText:text, //选中的文字
  56. ppId:null,
  57. show:false,
  58. uFlag:false
  59. }
  60. },
  61. props:['datas','preName','nextName'],
  62. created(){},
  63. methods:{
  64. beBack(){
  65. this.$emit('back');
  66. },
  67. toNext(){
  68. this.$emit('next');
  69. // console.log("模板数据:",this.datas,"诊疗数据:",this.dtoList)
  70. },
  71. setDetail(obj){
  72. this.labelDetail = obj.detail;
  73. this.ppId = obj.ppId;
  74. this.show = true;
  75. },
  76. complete(){
  77. this.show = false;
  78. this.labelDetail = {};
  79. this.ppId = null;
  80. // 处理明细选中的值
  81. },
  82. closeDetal(){
  83. this.show = false;
  84. this.labelDetail = {};
  85. this.ppId = null;
  86. },
  87. updateOrig(){
  88. let origin = this.$store.state.diagnose.origin;
  89. },
  90. updataData(data){//输入框存值
  91. console.log("输入框的值:",data,this.dtoList)
  92. let list = this.dtoList;
  93. for(let i in list){
  94. if(list[i].id==data.id){
  95. list.splice(i,1,data)
  96. }
  97. }
  98. this.$store.commit('setOrigin',{type:'3',data:data,pId:data.id});
  99. this.$store.commit('setText',{type:'3',text:data.value,pId:data.id});
  100. },
  101. getText(){
  102. let textArr = this.checkText;
  103. let msg = "";
  104. for(let k in textArr){
  105. msg += textArr[k].text + ';'
  106. }
  107. return msg;
  108. }
  109. },
  110. components:{
  111. UploadImg,
  112. Label,
  113. DetailBox,
  114. Input
  115. },
  116. watch:{
  117. dtoList:{
  118. handler(newVal,oldVal){
  119. // console.log("诊疗数据更新:",newVal,oldVal);
  120. },
  121. deep:true
  122. }
  123. },
  124. }
  125. </script>
  126. <style lang="less" scoped>
  127. @import '../less/base.less';
  128. .other-wrap{
  129. font-size: .3rem;
  130. .quest{
  131. color: #000;
  132. margin-bottom: .36rem;
  133. font-weight: 700;
  134. }
  135. .label{
  136. .label;
  137. }
  138. .result{
  139. .title{
  140. color: #4F50FF;
  141. padding-left: .1rem;
  142. border-left: .08rem solid #4F50FF;
  143. margin-bottom: .19rem;
  144. font-weight: 700;
  145. }
  146. p{
  147. color: #666;
  148. line-height: .44rem;
  149. }
  150. }
  151. }
  152. .foot{
  153. .dbfooter;
  154. }
  155. .detail{
  156. .mask;
  157. z-index: 66;
  158. }
  159. </style>