luolei 5 anni fa
parent
commit
2f1917ea9f

+ 65 - 20
src/common/CheckBox.vue

@@ -1,14 +1,17 @@
 <template>
-  <div class="check-wrap" v-if="item" :style="{'display':slide?'block':'none'}">
-    <!-- <p v-for="(it,index) in datas.questionDetailList" :key="it.id" class="list" @click="handleClick(it,index,'',true)"> -->
-      <p v-for="(it,index) in datas.questionDetailList" :key="it.id" :class="['list',{'block':((it.description||it.name).indexOf('${'))!=-1}]" @click="handleClick(it,index,'',true)">
-      <!-- <img :src="it.select==1?check:defaultPic"> -->
-      <span v-if="((it.description||it.name).indexOf('${'))==-1" :class="['radioCheck',{'check':it.select==1},{'exclu':exclusion !==999 && it.exclusion !== exclusion}]">{{it.description||it.name}}</span>
+  <div class="check-wrap" v-if="item" :style="getStyle(detail,slide)">
+      <p v-for="(it,index) in datas.questionDetailList" 
+          :key="it.id" 
+          :class="['list',{'block':((it.description||it.name).indexOf('${'))!=-1}]" >
+      <span v-if="((it.description||it.name).indexOf('${'))==-1" 
+          :class="['radioCheck',{'check':it.select==1},{'exclu':exclusion !==999 && it.exclusion !== exclusion}]"
+          @click="handleClick(it,index,'',true,false)"
+          >{{it.description||it.name}}</span>
       <OptionInp v-else 
           :item="it" 
           ref="inp"
           @handleInp="inpVal($event,index)" 
-          @handleSelec="handleClick(it,index,true,1)"
+          @handleSelec="handleClick(it,index,true,false,true)"
           :exclu="exclusion !==999 && it.exclusion !== exclusion" 
           />
     </p>
@@ -29,6 +32,10 @@ import OptionInp from '../common/OptionInp.vue';
       slide:{
         default:false,
         type:Boolean
+      },
+      detail:{
+        default:2,
+        type:Number||String
       }
     },
     data(){
@@ -46,7 +53,18 @@ import OptionInp from '../common/OptionInp.vue';
       this.resetExc();
     },
     methods:{
-      handleClick(it,index,flag,flg){
+      getStyle(detail,slide){
+        if(detail == 1){
+          if(slide){
+            return {'display':'block','background-color': '#F9F9F9'}
+          }else{
+            return {'display':'none'}
+          }
+        }else{
+          return {'display':'block'}
+        }
+      },
+      handleClick(it,index,flag,flg,sign){
         if(flg){
           document.activeElement.blur();      
           document.activeElement.scrollIntoViewIfNeeded(true);
@@ -70,17 +88,40 @@ import OptionInp from '../common/OptionInp.vue';
           this.exclusion = it.exclusion;  
         }
         // 处理选中状态
-        if(flag){//输入框反选
-          data[index].select = 1;
-          this.exclusion = it.exclusion;
+        if(sign){
+          for(let i=0;i<data.length; i++){
+            if(i==index){
+              if(data[i].value){
+                data[index].select = 1;
+                this.exclusion = it.exclusion;
+              }else{
+                data[i].select = 0
+              }
+            }
+          }
         }else{
-          if(data[index].select){
-            data[index].select = 0;
-          }else{
-            data[index].select = 1;
-            this.exclusion = it.exclusion;
+          for(let i=0;i<data.length; i++){
+            if(i==index){
+              if(data[i].select == 1){
+                data[i].select = 0
+              }else{
+                data[index].select = 1;
+                this.exclusion = it.exclusion;
+              }
+            }
           }
         }
+        // if(flag){//输入框反选
+        //   data[index].select = 1;
+        //   this.exclusion = it.exclusion;
+        // }else{
+        //   if(data[index].select){
+        //     data[index].select = 0;
+        //   }else{
+        //     data[index].select = 1;
+        //     this.exclusion = it.exclusion;
+        //   }
+        // }
         
         // 处理取消-互斥
         const filArr1 = data.filter(it=>it.select==1);
@@ -144,8 +185,8 @@ import OptionInp from '../common/OptionInp.vue';
     }
     .list{
       color: #colors[text];
-      margin:0 .1rem .1rem 0;
-      padding: .12rem .1rem .12rem 0;
+      margin:0 .1rem .05rem 0;
+      padding: .06rem .1rem .06rem 0;
       display: inline-block;
       white-space: nowrap;
       overflow-x: hidden;
@@ -160,9 +201,9 @@ import OptionInp from '../common/OptionInp.vue';
     }
     .radioCheck {
       display: inline-block;
-      line-height: .52rem;
-      min-width: 2rem;
-      text-align: center;
+      line-height: .35rem;
+      // min-width: 2rem;
+      // text-align: center;
       padding:.1rem .1rem;
       box-sizing: border-box;
       border-radius: .38rem;
@@ -176,5 +217,9 @@ import OptionInp from '../common/OptionInp.vue';
     .exclu{
       color:#colors[exclu];
     }
+    
+    .iptCheck {
+      color: #colors[theme];
+    }
   }
 </style>

+ 16 - 1
src/common/ComTextArea.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="comArea" :style="{'display':slide?'block':'none'}">
+  <div class="comArea" :style="getStyle(detail,slide)">
     <textarea @input="changeVal" 
             :style="{width:width,height:height}" 
             v-model="txt" 
@@ -30,6 +30,10 @@ export default {
     slide:{
       default:false,
       type:Boolean
+    },
+    detail:{
+      default:2,
+      type:Number||String
     }
   },
   data() {
@@ -39,6 +43,17 @@ export default {
     }
   },
   methods:{
+    getStyle(detail,slide){
+      if(detail == 1){
+        if(slide){
+          return {'display':'block','background-color': '#F9F9F9'}
+        }else{
+          return {'display':'none'}
+        }
+      }else{
+        return {'display':'block'}
+      }
+    },
     changeVal(){
           // $(".btscroll").css({'position':'fixed'})
       this.$emit('changeAreaVal',this.txt)

+ 16 - 1
src/common/Input.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="inp-wrap" :style="{'display':slide?'block':'none'}">
+  <div class="inp-wrap" :style="getStyle(detail,slide)">
     <input :type="item.controlType==6?'text':'number'" 
           :maxlength="item.controlType==6?'':10"
           :class="{'change':borColor}" 
@@ -21,6 +21,10 @@
       slide:{
         default:false,
         type:Boolean
+      },
+      detail:{
+        default:2,
+        type:Number||String
       }
     },
     data(){
@@ -31,6 +35,17 @@
       }
     },
     methods:{
+      getStyle(detail,slide){
+        if(detail == 1){
+          if(slide){
+            return {'display':'block','background-color': '#F9F9F9'}
+          }else{
+            return {'display':'none'}
+          }
+        }else{
+          return {'display':'block'}
+        }
+      },
       changeVal(e){
         this.borColor = true;
         if(this.item.controlType==7){//数字键盘

+ 1 - 1
src/common/MultiLineInput.vue

@@ -154,7 +154,7 @@ export default {
   }
   .border{
     border: 1px solid #DFE0E4;
-    border-radius: .08rem
+    border-radius: 2rem
   }
   .inline{
     display: inline-block;

+ 10 - 1
src/common/OptionInp.vue

@@ -1,6 +1,7 @@
 <!-- 带输入框选项 -->
 <template>
   <div :class="['inpbox',{'iptCheck':item.select},{'exclu':exclu}]">
+    <img class="iptimg" :src="item.select?url[0]:url[1]" alt="">
     <span class="prefix" v-if="msg.prefix">{{msg.prefix}}</span>
     <!-- <div class="inp" @click="preClick"> -->
       <input :type="msg.type=='number'?'number':'text'" 
@@ -27,7 +28,8 @@ import $ from 'jquery';
       return{
         msg:{},
         txt:this.item.value || '',
-        select:0
+        select:0,
+        url:[require('../images/iptselect.png'),require('../images/iptdis.png')]
       }
     },
     props:['item','exclu'],
@@ -101,6 +103,13 @@ import $ from 'jquery';
     .prefix,.suffix{
       display: inline-block;
       vertical-align: middle;
+    }
+    .iptimg {
+      width: .34rem;
+      height: .34rem;
+      margin-right: .1rem;
+      position: relative;
+      top: .06rem;
     }
      input{
       height: .42rem;

+ 16 - 1
src/common/PickTime.vue

@@ -1,7 +1,7 @@
 <!-- 时间类型控件 -->
 <template>
   <!-- <transition name="fade"> -->
-    <div :style="{'display':slide?'block':'none'}" class="toast-wrap">
+    <div :style="getStyle(detail,slide)" class="toast-wrap">
       <p v-show="val" :class="['ptab',{'check':val != '请选择'}]" @click="showPicker">{{val}}</p>
       <p v-show="val != '请选择'" class="tip">点击可修改</p>
       <Picker ref="picker" :show="showTime" @comfirn="getTimeVal" @cancel="close" :picIndex="picIndex"/>
@@ -20,6 +20,10 @@
       slide:{
         default:false,
         type:Boolean
+      },
+      detail:{
+        default:2,
+        type:Number||String
       }
     },
     data() {
@@ -30,6 +34,17 @@
       }
     },
     methods: {
+      getStyle(detail,slide){
+        if(detail == 1){
+          if(slide){
+            return {'display':'block','background-color': '#F9F9F9'}
+          }else{
+            return {'display':'none'}
+          }
+        }else{
+          return {'display':'block'}
+        }
+      },
       showPicker(){
         this.showTime = true;
         $(".btscroll").css({'position':'fixed'})

+ 20 - 5
src/common/Radio.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="radio-wrap bgques" v-if="item" :style="{'display':slide?'block':'none'}">
+  <div v-if="item" class="radio-wrap bgques" :style="getStyle(detail,slide)">
     <!-- <p v-for="(it,index) in datas.questionDetailList" :key="it.id" class="list" @click="handleClick(it,index,true)"> -->
     <p v-for="(it,index) in datas.questionDetailList" :key="it.id" :class="['list',{'block':((it.description||it.name).indexOf('${'))!=-1}]">
       <!-- <img :src="it.select==1?check:defaultPic"> -->
@@ -23,6 +23,10 @@ import OptionInp from '../common/OptionInp.vue';
       slide:{
         default:false,
         type:Boolean
+      },
+      detail:{
+        default:2,
+        type:Number||String
       }
     },
     data(){
@@ -38,6 +42,17 @@ import OptionInp from '../common/OptionInp.vue';
       this.datas = this.item;
     },
     methods:{
+      getStyle(detail,slide){
+        if(detail == 1){
+          if(slide){
+            return {'display':'block','background-color': '#F9F9F9'}
+          }else{
+            return {'display':'none'}
+          }
+        }else{
+          return {'display':'block'}
+        }
+      },
       handleClick(it,index,flg,ipt){
         if(flg){
           document.activeElement.blur();      
@@ -108,7 +123,7 @@ import OptionInp from '../common/OptionInp.vue';
     .list{
       color: #colors[text];
       margin:0 .1rem .1rem 0;
-      padding: .12rem .1rem .12rem 0;
+      padding: .06rem .1rem .06rem 0;
       display: inline-block;
       white-space: nowrap;
       overflow-x: hidden;
@@ -124,9 +139,9 @@ import OptionInp from '../common/OptionInp.vue';
       }
       .radioCheck {
         display: inline-block;
-        line-height: .52rem;
-        min-width: 2rem;
-        text-align: center;
+        line-height: .35rem;
+        // min-width: 2rem;
+        // text-align: center;
         padding:.1rem .1rem;
         box-sizing: border-box;
         border-radius: .38rem;

+ 56 - 14
src/common/RadioSelect.vue

@@ -1,11 +1,12 @@
 <template>
-  <div class="radio-wrap radioSelect" v-if="item" :style="{'display':slide?'block':'none'}">
-    <p class="please">请尽量选择其他不适症状</p>
+  <div class="radio-wrap radioSelect" v-if="item" :style="getStyle(detail,slide)">
+    <p class="please">为确保诊断准确性,请充分选择您存在的不适症状</p>
     <div class="list" @click="handleClickShow(1)" :class="[{'setColor':!!hasStr}]">
-      <span>有:<i>{{hasStr?hasStr:'点击选择症状'}}</i></span>
+      <p><span>有:</span><i :style="{'color':hasStr?'#6678FF':null}">{{hasStr?hasStr:'点击选择症状'}}</i></p>
     </div>
+    <p class="please">为确保诊断准确性,请充分选择您存在的不适症状</p>
     <div class="list" @click="handleClickShow(2)" :class="[{'setColor':!!noStr}]">
-      <span>无:<i>{{noStr?noStr:'点击选择症状'}}</i></span>
+      <p><span>无:</span><i :style="{'color':noStr?'#6678FF':null}">{{noStr?noStr:'点击选择症状'}}</i></p>
     </div>
     <SymptomLis 
       v-if="show"
@@ -15,6 +16,7 @@
       @close="close"
       @makeSure="makeSure"
     ></SymptomLis>
+    <Submit v-if="submit" :showType="showType" :fail="failMsg" @showSubmit="showSubmit"></Submit>
     <!-- <p v-for="(it,index) in datas.questionDetailList" :key="it.id" class="check">
       <span>{{it.description||it.name}}</span>
     </p> -->
@@ -30,6 +32,7 @@ import icon from '../images/radio-default.png'
 import checkIcon from '../images/radio-check.png'
 import {patt,imageUrlPrefix,concatVal} from '@utils/tools.js'
 import SymptomLis from '../common/SymptomLis.vue';
+import Submit from "../common/Submit";
   export default{
     name:'RadioSelect',
     props:{
@@ -39,6 +42,10 @@ import SymptomLis from '../common/SymptomLis.vue';
       slide:{
         default:false,
         type:Boolean
+      },
+      detail:{
+        default:2,
+        type:Number||String
       }
     },
     data(){
@@ -51,7 +58,10 @@ import SymptomLis from '../common/SymptomLis.vue';
         SymptomLis:[],
         flg:'', //是有还是无
         noStr:'',
-        hasStr:''
+        hasStr:'',
+        showType:'fail',
+        failMsg:'',
+        submit: false,
       }
     },
     created(){
@@ -63,6 +73,17 @@ import SymptomLis from '../common/SymptomLis.vue';
       this.setStr(this.datas&&this.datas.questionDetailList)
     },
     methods:{
+      getStyle(detail,slide){
+        if(detail == 1){
+          if(slide){
+            return {'display':'block','background-color': '#F9F9F9'}
+          }else{
+            return {'display':'none'}
+          }
+        }else{
+          return {'display':'block'}
+        }
+      },
       setStr(lis){
         let noTmp = '',hasTmp = '';
         for(let i = 0;i < lis.length;i++){
@@ -76,7 +97,6 @@ import SymptomLis from '../common/SymptomLis.vue';
         hasTmp = hasTmp.slice(0,hasTmp.length-1)
         this.noStr = noTmp
         this.hasStr = hasTmp
-
       },
       makeSure(lis){
         this.show = false;
@@ -103,8 +123,27 @@ import SymptomLis from '../common/SymptomLis.vue';
       },
       handleClickShow(idx){
         this.flg = idx
-        this.show = true
         this.SymptomLis = this.datas&&this.datas.questionDetailList
+        let lis = this.SymptomLis;
+        let tmpArr = lis.filter((item)=>item.flg!=idx&&item.flg!=undefined)
+        if(tmpArr.length == lis.length){
+          this.defaultWaring("已无症状选择");
+          return
+        }else {
+          this.show = true
+        }
+      },
+      showSubmit(flg) {
+        this.submit = flg;
+      },
+      defaultWaring(msg) {
+        this.showType = "fail";
+        this.failMsg = msg;
+        this.submit = true;
+        let timer = setTimeout(() => {
+          this.submit = false;
+          clearTimeout(timer);
+        }, 2000);
       },
       close(){
         this.show = false
@@ -156,7 +195,8 @@ import SymptomLis from '../common/SymptomLis.vue';
       }
     },
     components:{
-      SymptomLis
+      SymptomLis,
+      Submit
     }
   }
 </script>
@@ -173,14 +213,16 @@ import SymptomLis from '../common/SymptomLis.vue';
     .list{
       color: #colors[text];
       margin-bottom: .2rem;
-      padding: .12rem .1rem;
+      padding: .2rem .1rem;
       background-color: #f5f5f5;
-      white-space: nowrap;
-      -webkit-white-space: nowrap;
-      height: .44rem;
-      border-radius: 5px;
+      border-radius: .5rem;
+      border: 1px solid #E6E6E6;
+      p {
+        padding-left:.2rem;
+      }
       span {
-          margin-left:.2rem;
+          font-weight: 800;
+          color: #333;
       }
       img{
         width: .38rem;

+ 3 - 2
src/common/SymptomLis.vue

@@ -6,7 +6,7 @@
                 <div v-for="(it,index) in selectLis" :key="it.id" :class="['text', {'select':it.select==1}]" v-if="it.flg==undefined||it.flg==flg" @click="select(index)">
                   {{it.description||it.name}}
                 </div>
-                <p class="noData">暂无数据</p>
+                <p class="noData" v-if="false">暂无数据</p>
               </div>
               <div class="makeSure" @click="makeSure">确定</div>
             </div>
@@ -59,10 +59,11 @@ import {setScroll} from '@utils/tools.js';
           if(i == idx){
             if(tmpArr[i].select==1){
               tmpArr[i].select = 0
+              tmpArr[i].flg = undefined
             }else{
               tmpArr[i].select = 1
+              tmpArr[i].flg = this.flg
             }
-            tmpArr[i].flg = this.flg
           }
         }
         this.selectLis = tmpArr

+ 32 - 20
src/common/UploadImg.vue

@@ -3,21 +3,7 @@
     <div class="box">
       
       <ul class="upload-imgs">
-        <li
-          v-show="imgLen<6"
-          class="uploadBox"
-        >
-          <input
-            type="file"
-            class="upload"
-            @change="addImg"
-            accept="image/*"
-            ref="inp"
-          />
-          <img src="../images/upload.png">
-          <p>点击上传</p>
-        </li>
-        <li v-for='(value, key) in imgs'>
+        <li v-for='(value, key) in imgs' class="imgLis">
           <p class="imgbox">
             <img
               :src="value"
@@ -31,6 +17,20 @@
             @click="delImg(key)"
           ></a>
         </li>
+        <li
+          v-show="imgLen<6"
+          class="uploadBox"
+        >
+          <input
+            type="file"
+            class="upload"
+            @change="addImg"
+            accept="image/*"
+            ref="inp"
+          />
+          <!-- <img src="../images/addimg.png"> -->
+          <p>点击上传</p>
+        </li>
       </ul>
     </div>
   </div>
@@ -193,7 +193,7 @@ export default {
   .upload-imgs {
     margin-bottom: 0.2rem;
     .upload{
-      width: 1.86rem;
+      width: 1.9rem;
       height: 100%;
       position: absolute;
       left: 0;
@@ -201,18 +201,27 @@ export default {
       opacity: 0;
     }
     .uploadBox {
-      border: 1px solid #dfe0e4;
+      // border: 1px solid #dfe0e4;
       box-sizing: border-box;
       text-align: center;
+      background: url('../images/addimg.png') no-repeat;
+      background-size: cover;
+      position: relative;
       img {
         width: 0.6rem;
         margin: 0.45rem 0 0.23rem 0;
       }
+      p {
+        position: absolute;
+        bottom: .16rem;
+        left: 0;
+        width: 100%;
+        color: #AAAAAA;
+      }
     }
     li {
-      width: 1.86rem;
+      width: 1.9rem;
       height: 1.9rem;
-      border: 1px solid #dfe0e4;
       display: inline-block;
       position: relative;
       vertical-align: top;
@@ -221,7 +230,7 @@ export default {
       .close {
         width: 0.54rem;
         height: 0.54rem;
-        background: url(../images/del-pic.png) no-repeat;
+        background: url(../images/closeimg.png) no-repeat;
         background-size: cover;
         position: absolute;
         top: -0.27rem;
@@ -229,6 +238,9 @@ export default {
         z-index: 3;
       }
     }
+    .imgLis {
+      border: 1px solid #dfe0e4;
+    }
     li:nth-child(3n + 1) {
       margin-left: 0;
     }

+ 2 - 1
src/components/AddContent.vue

@@ -54,7 +54,8 @@
       </div>
     </div>
     <div class="foot">
-      <span class="back" @click="back">{{'返回'+ preName}}</span>
+      <!-- <span class="back" @click="back">{{'返回'+ preName}}</span> -->
+      <span class="back" @click="back">上一步</span>
       <span class="next" @click="next">预览并提交病历</span>
     </div>
   </div>

+ 29 - 7
src/components/Detail.vue

@@ -3,9 +3,9 @@
     <!-- <div v-for="(item,index) in datas"> -->
     <div class="preQuestion" v-for="(item,index) in checkDatas.questionMapping">
       <div class="quest" @click="slideToggle(index)">
-        <span style="color: red;">{{item.required==1?'*':''}}</span>
-        {{index + 1 +'.' + (item.description || item.name)}}
-        
+        <span class="sign">{{item.required==1?'*':''}}</span>
+        <p class="title clearfix">{{index + 1 +'.'+(item.description || item.name)}}{{item.controlType==1?'(单选)':item.controlType==2?'(多选)':''}}</p>
+        <p class="result" v-if="item.value&&item.slide!=1">{{item.value}}</p>
         <i :class="[{'slideT':item.slide}]"></i>
       </div>
       <img class="questionImg" :src="item.url.replace('{imageUrlPrefix}',imgUrl)" v-if="item.url&&!!item.slide">
@@ -13,27 +13,32 @@
             :item="item"
             :key="item.id"
             :slide="!!item.slide"
+            :detail="1"
             @updata="updataData"/>
       <RadioSelect v-if="item.controlType==8" 
             :item="item"
             :slide="!!item.slide"
+            :detail="1"
             :key="item.id"
             @updata="updataData"/>
       <CheckBox v-if="item.controlType==2"
             :item="item"
             :key="item.id"
             :slide="!!item.slide"
+            :detail="1"
             @updata="updataData"/>
       <!-- 文本域 -->
       <ComTextArea v-if="item.controlType == 5"
             :item="item"
             :slide="!!item.slide"
+            :detail="1"
             @updata="updataData"/>
       <!-- 输入框 -->
       <Input v-if="item.controlType==6 || item.controlType==7"
             :item="item"
             :key="item.id"
             :slide="!!item.slide"
+            :detail="1"
             @updata="updataData"/>
       <div class="multiWrap" :style="{'display':!!item.slide?'block':'none'}" v-if="item.controlType == 3">
         <template
@@ -51,6 +56,7 @@
       <PickTime v-if="item.controlType == 9" 
               @updata="updataData"
               :slide="!!item.slide"
+              :detail="1"
               :item="item"/>
     </div>
   </div>
@@ -317,11 +323,26 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
       position: relative;
       // margin-bottom: .2rem;
       .pubques;
-      span {
+      .sign {
+        display: inline-block;
+        position: absolute;
+        left: 0.16rem;
+        top: 0.5rem;
+        width: 0.1rem;
+        color: red;
+      }
+      .order {
+        // float: left;
+      }
+      .result {
+        font-size: .3rem;
+        color: #colors[theme];
+        padding:.1rem .3rem;
+      }
+      .title {
+        color: #000;
+        padding-left: .06rem;
         display: inline-block;
-        position: relative;
-        left: -0.1rem;
-        width: .1rem;
       }
       i{
         position: absolute;
@@ -344,6 +365,7 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
     }
     .multiWrap {
       .bgques;
+      background-color: #colors[bgques];
     }
   }
 </style>

+ 7 - 4
src/components/DiagTreat.vue

@@ -58,12 +58,15 @@
     </div>
 
     <div class="foot" v-if="modluesLen==2">
-      <span class="back" @click="beBack">{{'返回'+ preName}}</span>
-      <span class="next" @click="toNext">{{'预览并提交病历'}}</span>
+      <!-- <span class="back" @click="beBack">{{'返回'+ preName}}</span> -->
+      <span class="back" @click="beBack">上一步</span>
+      <span class="next" @click="toNext">预览并提交病历</span>
     </div>
     <div class="foot" v-else>
-      <span class="back" @click="beBack">{{'返回'+ preName}}</span>
-      <span class="next" @click="toNext">{{'进入'+ nextName}}</span>
+      <!-- <span class="back" @click="beBack">{{'返回'+ preName}}</span> -->
+      <!-- <span class="next" @click="toNext">{{'进入'+ nextName}}</span> -->
+      <span class="back" @click="beBack">上一步</span>
+      <span class="next" @click="toNext">下一步</span>
     </div>
   </div>
 </template>

+ 2 - 2
src/components/Login.vue

@@ -308,8 +308,8 @@ export default {
         font-size: 0.28rem;
         li {
           border-bottom: 1px solid #f5f5f5;
-          height: 0.6rem;
-          line-height: 0.6rem;
+          height: .88rem;
+          line-height: .88rem;
           box-sizing: border-box;
         }
       }

+ 7 - 4
src/components/Others.vue

@@ -52,12 +52,15 @@
       </div>
     </div>
     <div class="foot" v-if="modluesLen==3&&!nextName||modluesLen==2">
-      <span class="back" @click="beBack">{{'返回'+ preName}}</span>
-      <span class="next" @click="toNext">{{'预览并提交病历'}}</span>
+      <!-- <span class="back" @click="beBack">{{'返回'+ preName}}</span> -->
+      <span class="back" @click="beBack">上一步</span>
+      <span class="next" @click="toNext">预览并提交病历</span>
     </div>
     <div class="foot" v-else>
-      <span class="back" @click="beBack">{{'返回'+ preName}}</span>
-      <span class="next" @click="toNext">{{'进入'+ nextName}}</span>
+      <!-- <span class="back" @click="beBack">{{'返回'+ preName}}</span>
+      <span class="next" @click="toNext">{{'进入'+ nextName}}</span> -->
+      <span class="back" @click="beBack">上一步</span>
+      <span class="next" @click="toNext">下一步</span>
     </div>
   </div>
 </template>

+ 23 - 12
src/components/Preview.vue

@@ -7,14 +7,16 @@
           <p class="baseMsg">{{pathInfo.patientName}}&nbsp;&nbsp;&nbsp;&nbsp;{{pathInfo.patientSex}}&nbsp;&nbsp;&nbsp;&nbsp;{{pathInfo.patientAge}}岁</p>
           <table>
             <tr>
-              <td colspan="2">挂号科室:{{pathInfo.selfDeptName}}</td>
+              <td><span>挂号科室:</span>{{pathInfo.selfDeptName}}</td>
             </tr>
             <tr>
-              <td>门诊号:{{pathInfo.recordId}}</td>
-              <td>预约医生:{{pathInfo.doctorName}}</td>
+              <td><span>门诊号:</span>{{pathInfo.recordId}}</td>
             </tr>
             <tr>
-              <td colspan="2">就诊时间:{{time}}</td>
+              <td><span>预约医生:</span>{{pathInfo.doctorName}}</td>
+            </tr>
+            <tr>
+              <td><span>就诊时间:</span>{{time}}</td>
             </tr>
           </table>
           <!-- <div class="line"></div>
@@ -24,7 +26,7 @@
           <ul class="previewParts">
             <!-- <li v-if="symptom.choose.length>0"> -->
             <li>
-              <h4><i :style="{'background': '#FF9A9A'}"></i> 主诉:</h4>
+              <h4><i></i> 主诉:</h4>
               <p>
                 <span v-for="(item,idx) in symptom.choose" :key="item.name+idx">
                 {{item.specialP?(item.description||item.name)+item.specialP+(idx == symptom.choose.length-1?'':','):(item.description||item.name)+(idx == symptom.choose.length-1?'':',')}}
@@ -33,7 +35,7 @@
             </li>
             <!-- <li v-if="diagnose.text.length>0||symptom.choose.length>0"> -->
             <li>
-              <h4><i :style="{'background': '#3D69D9'}"></i> 现病史:</h4>
+              <h4><i></i> 现病史:</h4>
               <p v-for="item in symptom.text">{{item.textP}}</p>
               <p>
                 <span>{{getDetailText(diagnose.text,false).view}}</span>
@@ -83,13 +85,13 @@
           <div class="personMsg personMsg2">
             <ul class="previewParts">
               <li>
-                <h4><i :style="{'background': '#FF9A9A'}"></i> 主诉:</h4>
+                <h4><i></i> 主诉:</h4>
                 <p>
                   <span v-for="(item,idx) in symptom.choose" :key="item.name+idx">{{item.special?item.name+item.special+(idx == symptom.choose.length-1?'':','):item.name+(idx == symptom.choose.length-1?'':',')}}</span>
                 </p>
               </li>
               <li>
-                <h4><i :style="{'background': '#3D69D9'}"></i> 现病史:</h4>
+                <h4><i></i> 现病史:</h4>
                 <p v-for="item in symptom.text">{{item.text}}</p>
                 <p>
                   <span>{{getDetailText(diagnose.text,false).content}}</span>
@@ -365,7 +367,7 @@ export default {
 }
 .preview {
   color: red;
-  background-color: #f2f2f5;
+  background-color: #fff;
   position: fixed;
   width: 100%;
   height: 100%;
@@ -409,6 +411,7 @@ export default {
   background-color: #fff;
   border-radius: 0.16rem;
   margin-bottom: 0.38rem;
+  box-shadow:0px 3px 20px 0px rgba(192,187,224,0.23);
   .previewParts {
     li {
       padding: .1rem .3rem;
@@ -427,7 +430,7 @@ export default {
         width: .16rem;
         height: .16rem;
         border-radius: 50%;
-        background: #767676;
+        background: #colors[theme];
         display: inline-block;
         position: absolute;
         top: .15rem;
@@ -447,11 +450,11 @@ export default {
     letter-spacing: 0;
     text-align: justify;
     font-weight: bold;
-    margin-bottom: 0.13rem;
+    margin-bottom: 0.15rem;
   }
   table {
     width: 100%;
-    font-size: 0.26rem;
+    font-size: 0.3rem;
     color: #333333;
     letter-spacing: 0;
     text-align: justify;
@@ -459,6 +462,14 @@ export default {
     tr {
       padding: .2rem 0;
       line-height: .5rem;
+      td {
+        padding-bottom: 0.1rem;
+      }
+      span {
+        color:#777;
+        width: 1.5rem;
+        display: inline-block;
+      }
     }
   }
   .line {

+ 20 - 9
src/less/base.less

@@ -47,6 +47,9 @@
   left: 0;
   background: #e5ecfc;
   z-index: 66;
+  padding: .22rem .3rem .18rem .3rem;
+  box-sizing: border-box;
+  box-shadow:0px -2px 10px 0px rgba(0,0,0,0.06);
   display: flex;
   justify-content: space-between;
   .back,.next{
@@ -55,15 +58,18 @@
     line-height: .88rem;
     text-align: center;
     vertical-align: top;
+    border: 1px solid #colors[theme];  
+    box-sizing: border-box;
+    border-radius: 5px;
   }
   .back{
-    width: 40%;
-    color: #colors[btn];
+    width: 48%;
+    color: #colors[theme];
   }
   .next{
-    width: 58%;
+    width: 48%;
     color: #fff;
-    background: #colors[btn];
+    background: #colors[theme];
   }
 }
 .over{
@@ -138,16 +144,21 @@
   background-color: #colors[quest];
 }
 .bgques {//问题内容
-  background-color: #colors[bgques];
-  padding: .28rem .3rem;
-  display: none;
+  padding: .24rem .3rem .2rem .3rem;
+  // display: none;
 }
 .pubques {//问题题目
   font-size: .32rem;
   // font-weight: 800;
-  padding: .45rem 0.5rem .45rem .3rem;
+  padding: .4rem 0.5rem .4rem .3rem;
   word-break: break-all;
   background-color: #fff;
-  box-shadow:0px 2px 8px 0px rgba(0,0,0,0.04);
+  box-shadow:0px 2px 8px 0px rgba(0,0,0,0.07);
 }
 
+.displayBlock {
+  display: block !important;
+}
+.displayNone {
+  display: none !important;
+}

+ 1 - 0
src/utils/tools.js

@@ -379,6 +379,7 @@ const getNum = () => {
   return num;
 }
 
+
 module.exports =  {
   imageUrlPrefix,
   getUrlArgObject,