Kaynağa Gözat

预问诊改版基本完成

luolei 5 yıl önce
ebeveyn
işleme
b6b81e3490

+ 0 - 148
src/common/PickSlide.vue

@@ -1,148 +0,0 @@
-<template>
-  <portal to="notification-outlet">
-    <div v-if="show" class="swipper-content">
-      <div class="swipper-wrapper">
-        <swiper ref="mySwiper1">
-          <swiper-slide v-for="(item,i) in num" :key="i+'fst'">{{item}}</swiper-slide>
-        </swiper>
-        <swiper ref="mySwiper2">
-          <swiper-slide v-for="(item,i) in num" :key="i+'sec'">{{item}}</swiper-slide>
-        </swiper>
-        <swiper ref="mySwiper3">
-          <swiper-slide v-for="(item,i) in data" :key="i+'trd'">{{item}}</swiper-slide>
-        </swiper>
-        <div class="lineT"></div>
-        <div class="lineB"></div>
-        <div class="confBtn">
-          <p class="tip" style="display: none;">请选择正确的时间</p>
-          <p class="btnS">确认</p>
-        </div>
-      </div>
-      <div class="mask" :styke="{'z-index':'999'}" v-if="show"></div>
-    </div>
-  </portal>
-</template>
-
-<script>
-  export default {
-    name: 'carrousel',
-    props:['show'],
-    data() {
-      return {
-        num : [0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9],
-        data:['分钟', '小时', '天', '周', '月','年','分钟', '小时', '天', '周', '月','年','分钟', '小时', '天', '周', '月','年','分钟', '小时', '天', '周', '月','年']
-      }
-    },
-    computed: {
-      swiper1() {
-        setTimeout(()=>{
-          return this.$refs.mySwiper1.swiper
-        },0)
-      },
-      swiper2() {
-        setTimeout(()=>{
-          return this.$refs.mySwiper2.swiper
-        },0)
-      },
-      swiper3() {
-        setTimeout(()=>{
-          return this.$refs.mySwiper3.swiper
-        },0)
-      }
-    },
-    mounted() {
-      // this.swiper1 = new Swiper( this.$refs.mySwiper1, {
-      //   sliderMove: function(swiper){
-      //     console.log(this.swiper1.activeIndex)
-      //   }
-      // })
-      setTimeout(()=>{
-        console.log(this.swiper1)
-        this.swiper1.on('sliderMove',()=>{
-          console.log(this.swiper1.activeIndex)
-        })
-        this.swiper2.on('sliderMove',()=>{
-          console.log(this.swiper2.activeIndex)
-        })
-        this.swiper3.on('sliderMove',()=>{
-          console.log(this.swiper3.activeIndex)
-        })
-        // this.swiper.slideTo(3, 1000, false)
-
-      },400)
-    },
-    methods:{
-      onChange(){
-        
-      }
-    }
-  }
-</script>
-<style lang="less" scoped>
-@import '../less/base.less';
-.swiper-slide {
-  background-color: #fff;
-  height: 44px;
-  line-height: 44px;
-}
-.swiper-container {
-  height: 132px;
-  float: left;
-  width: 2.1rem;
-  text-align: center;
-}
-.swipper-wrapper {
-  font-size: .32rem;
-  height: 227px;
-  width: 6.3rem;
-  // overflow: hidden;
-  background-color: #ffffff;
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  transform: translateX(-50%) translateY(-50%);
-  padding-top: 25px;
-  box-sizing: border-box;
-  border-radius: 0.2rem;
-  z-index: 1000;
-  .lineT {
-    height: 1px;
-    background-color: #f5f5f5;
-    position: absolute;
-    top: 2.1rem;
-  }
-  .lineB {
-    height: 1px;
-    background-color: #f5f5f5;
-    position: absolute;
-    top: 4.2rem;
-  }
-  .confBtn {
-    height: 44px;
-    line-height: 44px;
-    text-align: center;
-    border-top: 1px solid #ebedf0;
-    margin-top: 25px;
-    position: absolute;
-    bottom: 0;
-    width: 100%;
-    .btnS {
-      color: #6678FF;
-    }
-    .tip {
-      position: absolute;
-      top: -22px;
-      font-size: 0.24rem;
-      color: red;
-      line-height: 20px;
-      width: 100%;
-      text-align: center;
-    }
-  }
-}
-.swipper-content {
-  .mask{
-    z-index: 999;
-  }
-}
-</style>

+ 0 - 2
src/common/PickTime.vue

@@ -5,14 +5,12 @@
       <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"/>
-      <!-- <carrousel ref="picker"  v-if="showTime" :show="showTime" @comfirn="getTimeVal" @cancel="close" :picIndex="picIndex"></carrousel> -->
     </div> 
   <!-- </transition> -->
 </template>
 <script type="text/javascript">
   import $ from 'jquery';
   import Picker from './Picker.vue';
-  // import carrousel from './PickSlide.vue';
   export default {
     name:'PickTime',
     props:{

+ 128 - 0
src/common/startPage.vue

@@ -0,0 +1,128 @@
+<template>
+  <div class="startPage" v-if="show">
+    <div class="startBg">
+      <div class="title">{{title}}</div>
+      <div class="description" v-html="description"></div>
+    </div>
+    <span class="time">{{num}}s</span>
+    <div class="button" @click="close">开始填写</div>
+  </div>
+</template>
+<script>
+import api from "@utils/api.js";
+
+export default {
+  props:['showStart'],
+  data(){
+    return {
+      title:'sdsdsd',
+      description:'sdsds',
+      show:this.showStart,
+      num:5
+    }
+  },
+  watch:{
+    showStart(newVal,oldVal){
+      this.show = newVal
+    }
+  },
+  created(){
+    this.getDisclaimerInformations()
+  },
+  mounted(){
+    let num = this.num;
+    let timer = setInterval(() => {
+      this.num = --num
+      if(num == -1){
+        localStorage.setItem('startPage',0)
+        this.show = false
+        clearInterval(timer)
+      }
+    }, 1000);
+  },
+  methods:{
+    close(){
+      this.show = false
+    },
+    getDisclaimerInformations(){
+        api.getDisclaimerInformations().then(res => {
+            let result = res.data;
+            if (result.code == 0) {
+              let dataList = result.data
+              for(let i=0;i <dataList.length;i++){
+                if(dataList[i].disclaimerCode == 4){
+                  this.title = dataList[i].title
+                  this.description = dataList[i].description
+                }
+              }
+            }else{
+
+            }
+        })
+    },
+  }
+}
+</script>
+<style lang="less" scoped>
+.startPage {
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  background-color: #fff;
+  z-index: 999;
+}
+.startBg {
+  width: 6.4rem;
+  height: 6.4rem;
+  position: absolute;
+  top: 15%;
+  left: 50%;
+  margin-left: -3.2rem;
+  background: url('../images/startBg.png') no-repeat;
+  background-size:contain;
+}
+.time {
+  background-color: #F5F5F5;
+  position: absolute;
+  width: 1rem;
+  height: .56rem;
+  line-height: .56rem;
+  border-radius: .28rem;
+  color: #ccc;
+  right: .3rem;
+  top:.4rem;
+  text-align: center;
+}
+.title{
+  color: #333333;
+  font-weight: 800;
+  font-size: .28rem;
+  position: absolute;
+  top: 12%;
+  width: 100%;
+  text-align: center;
+}
+.description {
+  font-size: .26rem;
+  color: #3A458A;
+  width: 3.2rem;
+  position: absolute;
+  top: 24%;
+  left: 1.55rem;
+}
+.button {
+  height: 0.88rem;
+  line-height: 0.88rem;
+  text-align: center;
+  background: #6678FF;
+  border-radius: 0.44rem;
+  color: #fff;
+  font-size: 0.32rem;
+  font-weight: 500;
+  width: 5.2rem;
+  position: absolute;
+  bottom: 15%;
+  left: 50%;
+  margin-left: -2.6rem;
+}
+</style>

+ 18 - 4
src/components/AddContent.vue

@@ -66,9 +66,11 @@ import MultiLineInput from '../common/MultiLineInput.vue';
 import Input from '../common/Input.vue';
 import Radio from '../common/Radio.vue';
 import CheckBox from '../common/CheckBox.vue';
-import {imageUrlPrefix,getAllStr,setScroll,getRouteName} from '@utils/tools.js';
+import {imageUrlPrefix,getAllStr,setScroll,getRouteName,setTitle} from '@utils/tools.js';
 import BScroll from 'better-scroll';
 import PickTime from '../common/PickTime.vue';
+import {mapState} from 'vuex';
+
 export default {
   name: 'AddContent',
   data() {
@@ -81,12 +83,24 @@ export default {
       allMoudles:{}
     }
   },
+  computed:{
+    ...mapState({
+      activeModule: state => state.activeModule,
+      datas: state => state.activeModule.obj.omhistory_show,
+    }),
+  },
   created(){
     let activePart = this.$store.state.activeModule;
-    this.allMoudles = activePart.obj.replenish_show
+    this.allMoudles = activePart.obj.replenish_show;
 
-    this.dataTrd = this.allMoudles && this.allMoudles.moduleDetailDTOList
-    this.allStr = this.$store.state.addContent.txt
+    this.dataTrd = this.allMoudles && this.allMoudles.moduleDetailDTOList;
+    this.allStr = this.$store.state.addContent.txt;
+  },
+  beforeRouteEnter (to, from , next) {
+    next(vm => {
+      // 通过 `vm` 访问组件实例
+      setTitle(vm.activeModule.obj.replenish_show.name)
+    })
   },
   mounted() {
     this.$store.commit('setFinish',52)

+ 51 - 18
src/components/Department.vue

@@ -22,6 +22,7 @@
             :show="showTip"
             @close="close"
             :data="message"/>
+        <StartPage :showStart="showStart"/>
     </div>
 </template>
 <script>
@@ -29,6 +30,7 @@
     import BScroll from 'better-scroll';
     import Submit from "../common/Submit";
     import Tiptoast from "../common/Tiptoast";
+    import StartPage from "../common/StartPage";
     import api from "@utils/api.js";
     export default {
         name: "Department",
@@ -47,13 +49,15 @@
                 show: false,
                 son:false,//有无子医院
                 hospitalNum:'',
-                hospitalName:''
+                hospitalName:'',
+                showStart:false,//显示启动页
             }
         },
         created(){
             let query = this.$route.query;
             let type = query.patientInfoType,name = query.patientName,value = query.patientInfo,code=query.hospitalCode,sonHospitalCode=query.sonHospitalCode,sonHospitalName=query.sonHospitalName;
-            if(value&&name&&type&&code){
+            if(value&&name&&type&&code){//带信息直接跳转列表页面
+                this.getSysConfig(code)
                 const param = {
                     patientInfo: value,
                     patientInfoType: type,
@@ -62,6 +66,44 @@
                     sonHospitalCode: sonHospitalCode||'',
                     sonHospitalName: sonHospitalName||''
                 };
+                this.signInStr(param);
+            }else{
+                if(localStorage.getItem("startPage") !== null&&localStorage.getItem("startPage")==1){
+                    this.showStart = true
+                }
+                this.departmentLis = this.sortPart();
+            }
+        },
+        mounted(){
+            this.$nextTick(()=>{
+                let scroll = setScroll(BScroll,true,'.departmentView')
+                this.scroll = scroll
+            })
+        },
+        methods:{
+            getSysConfig(code){
+                api.getSysConfig({'hospitalCode':code}).then((res)=>{
+                    const result = res.data;
+                    if(result.code==0){
+                        const datas = result.data;
+                        this.$store.commit('saveSysConfig',datas)
+                        for(let i = 0;i < datas.length;i++){
+                            if(datas[i].code == 'homepage_show' && localStorage.getItem("startPage") !== null){
+                                if(+datas[i].value==1){
+                                    localStorage.setItem('startPage',1)
+                                    //显示启动页
+                                    this.showStart = true
+                                }else{
+                                    localStorage.setItem('startPage',0)
+                                }
+                            }
+                        }
+                    }else{
+                        this.defaultWaring(res.data.msg);
+                    }
+                })
+            },
+            signInStr(param){
                 api.signIn(param).then(res => {
                     let result = res.data;
                     if (result.code == 0) {
@@ -96,25 +138,15 @@
                 }).catch(() => {
                     this.defaultWaring("网络异常请稍后重试");
                 });
-            }else{
-                this.departmentLis = this.sortPart();
-            }
-        },
-        mounted(){
-            this.$nextTick(()=>{
-                let scroll = setScroll(BScroll,true,'.departmentView')
-                this.scroll = scroll
-            })
-        },
-        methods:{
-            sortPart(){
+            },
+            sortPart(){//按日期排序
                 let tmpList = JSON.parse(localStorage.getItem('loginData'));
                 let tmpTime = JSON.parse(localStorage.getItem('recordTime'));
                 let sortArr = tmpList.sort(compare("recordTime"));
                 if(tmpTime){
                     for(let j = 0;j < tmpTime.length;j++){
                         for(let i = 0;i < sortArr.length;i++){
-                            if(tmpTime[j] == (new Date((sortArr[i].recordTime).replace(/\-/g, "/"))).getTime()){
+                            if(sortArr[i].recordTime&&tmpTime[j] == (new Date((sortArr[i].recordTime).replace(/\-/g, "/"))).getTime()){
                                 sortArr[i].dided = 1
                             }
                         }
@@ -148,9 +180,9 @@
                     patientCode:msg.patientCode,
                     recordId:msg.recordId,
                     sonHospitalCode:msg.sonHospitalCode||'',
-                    time:(new Date(time.replace(/\-/g, "/"))).getTime()
+                    time:time&&(new Date(time.replace(/\-/g, "/"))).getTime()
                 }
-                localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入删除该参数
+                localStorage.setItem('loginParam',JSON.stringify(params))//保存登陆信息,扫码进入删除该参数
                 this.$router.push({
                     path:'/home',
                     query:params
@@ -159,7 +191,8 @@
         },
         components:{
             Submit,
-            Tiptoast
+            Tiptoast,
+            StartPage
         }
     }
 </script>

+ 7 - 1
src/components/Detail.vue

@@ -110,14 +110,20 @@ import $ from 'jquery';
     props:['datas','data','checkF','sex','flags'],
     created(){
       let tmpData = JSON.parse(JSON.stringify(this.datas));
+      let num = 0;
       if(tmpData.questionMapping&&tmpData.questionMapping.length>0){
         for(let i = 0;i < tmpData.questionMapping.length;i++){
           let tmpMap = tmpData.questionMapping[i]
           if(configer.slide){
             tmpMap.slide = 1
           }
+          if(tmpMap.value || tmpMap.valueP){
+            ++num
+          }
         }
       }
+      this.current = num
+      this.$emit('isReadyCompete',num == tmpData.questionMapping.length)
       this.checkDatas = tmpData
     },
     mounted(){
@@ -225,12 +231,12 @@ import $ from 'jquery';
         let num = 0;
         for(let i = 0;i < mapping.length;i++){
           let tmpMap = mapping[i];
-            console.log(tmpMap)
           if(tmpMap.value || tmpMap.valueP){
             ++num
           }
         }
         this.current = num
+        this.$emit('isReadyCompete',num == mapping.length)
         // 实时更新清空样式
         if(data.value){
           this.$emit('check',true)

+ 11 - 2
src/components/DetailBox.vue

@@ -10,6 +10,7 @@
                   :data="data"
                   :checkF="checkF"
                   @check="changeCheck($event)"
+                  @isReadyCompete="isReadyCompete($event)"
                   @setBtnTxt="setBtnTxt($event)"
                   @close="close($event)"
                   @handleClear="handleClear($event)"
@@ -19,7 +20,7 @@
     </div>
     <div style="position:absolute" class="foot">
       <!-- <div class="slide" @click="slideAll">{{btnTxt}}</div> -->
-      <div class="nextBtn compete" @click="complete">完成</div>
+      <div :class="['nextBtn','compete',{'readyComplete':readyComplete}]" @click="complete">完成</div>
     </div>
     <Toast :message="clearTxt" 
           :show="showToast"
@@ -66,7 +67,8 @@
         show:detailShow,
         reqFinish:false,
         showPic:false,
-        btnTxt:'展开全部'
+        btnTxt:'展开全部',
+        readyComplete:false
       }
     },
     mounted(){
@@ -83,6 +85,9 @@
       })
     },
     methods:{
+      isReadyCompete(flg){
+        this.readyComplete = flg
+      },
       setBtnTxt(txt){
         this.btnTxt = txt
       },
@@ -218,6 +223,10 @@
       border: 1px solid #6678FF;
       color: #6678FF;
     }
+    .readyComplete {
+      background-color: #6678FF;
+      color: #fff;
+    }
     animation-delay:.6s;
     animation: foo .4s linear;
   }

+ 7 - 1
src/components/DiagTreat.vue

@@ -76,7 +76,7 @@
   import DetailBox from './DetailBox.vue';
   import Input from '../common/Input.vue';
   import ComTextArea from '../common/ComTextArea.vue';
-  import {moduleCP,patt,imageUrlPrefix,setScroll,trimDots,getRouteName} from '@utils/tools';
+  import {moduleCP,patt,imageUrlPrefix,setScroll,trimDots,getRouteName,setTitle} from '@utils/tools';
   import Radio from '../common/Radio.vue';
   import CheckBox from '../common/CheckBox.vue';
   import BScroll from 'better-scroll';
@@ -106,6 +106,12 @@
         checkText: state => state.diagnose.text,//选中的文字-Arr
       }),
     },
+    beforeRouteEnter (to, from , next) {
+      next(vm => {
+        // 通过 `vm` 访问组件实例
+        setTitle(vm.activeModule.obj.diagnosis_show.name)
+      })
+    },
     mounted(){
       this.$store.commit('setFinish',51)
       this.$nextTick(()=>{

+ 6 - 4
src/components/Login.vue

@@ -58,7 +58,7 @@
       </div>
       <div :class="['btn',canClick?'btnClick':'btnDis']" @click.stop.prevent="handleDepart">进入预问诊</div>
     </div>
-    <!-- <div class="tip">注:建议您可先输入病情情况,方便医生提前了解情况</div> -->
+    <div class="tip">注:建议您可先输入病情情况,方便医生提前了解情况</div>
     <Submit v-if="submit" :showType="showType" :fail="failMsg" @showSubmit="showSubmit"></Submit>
     <Loading v-if="this.$store.state.loadingShow"></Loading>
     <Tiptoast
@@ -180,9 +180,11 @@ export default {
         const result = res.data;
         if(result.code==0){
           const datas = result.data;
-          this.child = datas.filter((item)=>{return item.code == "constitution_show"})
           this.$store.commit('saveSysConfig',datas)
           for(let i = 0;i < datas.length;i++){
+            if(datas[i].code == 'homepage_show' && localStorage.getItem("startPage") !== null){
+              localStorage.setItem('startPage',+datas[i].value==1?1:0)
+            }
             if(datas[i].code == 'junior_show'){
               this.hospitalShow = +datas[i].value==1?true:false
               if(datas[i].value==1){
@@ -476,7 +478,7 @@ export default {
       line-height: 0.88rem;
       text-align: center;
       background: #colors[btn];
-      border-radius: 0.2rem;
+      border-radius: 0.44rem;
       color: #fff;
       font-size: 0.32rem;
       font-weight: 500;
@@ -491,7 +493,7 @@ export default {
   .tip {
     color: #fff;
     font-size: 0.24rem;
-    margin-top: 0.5rem;
+    margin-top: 0.4rem;
   }
 }
 </style>

+ 7 - 1
src/components/Others.vue

@@ -71,7 +71,7 @@
   import Toast from '../common/Toast.vue';
   import Input from '../common/Input.vue';
   import ComTextArea from '../common/ComTextArea.vue';
-  import {moduleCP,patt,imageUrlPrefix,setScroll,trimDots,getRouteName} from '@utils/tools';
+  import {moduleCP,patt,imageUrlPrefix,setScroll,trimDots,getRouteName,setTitle} from '@utils/tools';
   import Radio from '../common/Radio.vue';
   import CheckBox from '../common/CheckBox.vue';
   import MultiLineInput from '../common/MultiLineInput.vue';
@@ -100,6 +100,12 @@
         checkText: state => state.others.text,//选中的文字-Arr
       }),
     },
+    beforeRouteEnter (to, from , next) {
+      next(vm => {
+        // 通过 `vm` 访问组件实例
+        setTitle(vm.activeModule.obj.omhistory_show.name)
+      })
+    },
     mounted(){
       this.$store.commit('setFinish',3)
 

+ 41 - 11
src/components/PathInfo.vue

@@ -23,22 +23,22 @@
           <span class="perDetail">{{pathInfo.patientAge}}岁</span>
         </p>
         <p class="emptyLine"></p>
-        <p class="perLine">
+        <p class="perLine" v-if="pathInfo.doctorName">
           <span class="msgTitle">{{pathInfo.doctorName?'预约医生':''}}</span>
           <i v-if="pathInfo.doctorName">:</i>
           <span>{{pathInfo.doctorName}}</span>
         </p>
-        <p class="perLine">
+        <p class="perLine" v-if="pathInfo.hospitalDeptName">
           <span class="msgTitle">{{pathInfo.hospitalDeptName?'科室':''}}</span>
           <i v-if="pathInfo.hospitalDeptName">:</i>
           <span>{{pathInfo.hospitalDeptName}}</span>  
         </p>
-        <p class="perLine">
+        <p class="perLine" v-if="pathInfo.recordId">
           <span class="msgTitle">{{pathInfo.recordId?'门诊号':''}}</span>
           <i v-if="pathInfo.recordId">:</i>
           <span>{{pathInfo.recordId}}</span>
         </p>
-        <p class="perLine">
+        <p class="perLine" v-if="time">
           <span class="msgTitle">{{time?'预约时间':''}}</span>
           <i v-if="time">:</i>
           <span>{{time}}</span>
@@ -62,14 +62,18 @@
       :fail="tipMsg"
       showType="fail"
     ></Submit>
+    <StartPage :showStart="showStart"/>
   </div>
 </template>
 <script type="text/javascript">
   import api from '@utils/api.js'
   import Submit from '../common/Submit';
   import Toast from '../common/Toast.vue';
-  import {setScroll,dateParser} from '@utils/tools.js'
+  import {setScroll,dateParser,setTitle,moduleConfig } from '@utils/tools.js'
+  import StartPage from "../common/StartPage";
   import BScroll from 'better-scroll';
+  import {mapState} from 'vuex';
+
   export default {
     name:'PathInfo',
     data(){
@@ -91,15 +95,25 @@
         time:'',
         params:{},
         showToast:false,
-        message:'您已完成一次预问诊,是否重新录入?'
+        message:'您已完成一次预问诊,是否重新录入?',
+        showStart:false,
+        allMoudles:{}
       }
     },
+    computed:{
+      ...mapState({
+        config: state => state.sysConfig,
+        tmpAllMoudles: state => state.allMoudles,
+      }),
+    },
     created(){
       this.getPathInfo();
-      this.getSysConfig();
       this.$store.commit('initAllData');//初始化store数据
     },
     mounted(){
+      let tmpModule = moduleConfig(this.config,this.tmpAllMoudles);
+      this.allMoudles = tmpModule;
+      this.$store.commit('setActiveModule', tmpModule);
       this.$nextTick(()=>{
         let scroll = setScroll(BScroll,true,'.path-wrap')
         this.scroll = scroll
@@ -116,7 +130,7 @@
         let query = this.$route.query
         let hasQuery = JSON.stringify(query) == '{}'
         let tmpTime = dateParser(!hasQuery&&query.recordTime) || (localStorage.getItem('loginParam')&&dateParser(JSON.parse(localStorage.getItem('loginParam')).time))
-        this.time = tmpTime||'2020-01-05'
+        this.time = tmpTime
         const params = {
           'hospitalCode':!hasQuery&&query.hospitalCode||'',
           'hospitalDeptCode':!hasQuery&&query.hospitalDeptCode||'',
@@ -130,9 +144,11 @@
           localStorage.removeItem('loginData')
           localStorage.setItem('scan',true)//保存扫码标记
           localStorage.setItem('infoParam',JSON.stringify(params))//保存扫码信息,登录进入需删除该参数
+          this.getSysConfig();
         }else{//登陆进入的
           localStorage.removeItem('infoParam')
           localStorage.removeItem('scan')
+          this.getSysConfig(1);
         }
         api.getPathInfo(params).then((res)=>{
           const result = res.data;
@@ -143,7 +159,7 @@
           }
         })
       },
-      getSysConfig(){
+      getSysConfig(flg){
         let query = this.$route.query
         let hasQuery = JSON.stringify(query) == '{}';
         const param = {
@@ -155,6 +171,18 @@
             const datas = result.data;
             // this.child = datas.filter((item)=>{return item.code == "constitution_show"})
             this.$store.commit('saveSysConfig',datas)
+            if(flg){return}
+            for(let i = 0;i < datas.length;i++){
+                if(datas[i].code == 'homepage_show' && localStorage.getItem("startPage") !== null){
+                    if(+datas[i].value==1){
+                        localStorage.setItem('startPage',1)
+                        //显示启动页
+                        this.showStart = true
+                    }else{
+                        localStorage.setItem('startPage',0)
+                    }
+                }
+            }
           }
         })
       },
@@ -223,7 +251,8 @@
     },
     components:{
       Submit,
-      Toast
+      Toast,
+      StartPage
     }
   }
 </script>
@@ -283,6 +312,7 @@
       top: -1.3rem;
       background-color: #fff;
       margin: 0 auto;
+      height: 6.2rem;
       .msg {
         font-size: .32rem;
         padding-bottom: .28rem;
@@ -329,7 +359,7 @@
       font-size: .32rem;
       color: #fff;
       margin: 0 auto;
-      border-radius: 5px;
+      border-radius: .44rem;
       position: absolute;
       bottom: .68rem;
       transform: translateX(-50%);

+ 26 - 12
src/components/Preview.vue

@@ -109,12 +109,12 @@
                     <span :key="index" v-if="index>1">{{value.textP}}{{index == checkText.length-1?'':'、'}}</span>
                   </template>
                 </p>
-                <p><span>{{getDetailText(diagnose.text,false).view}}</span></p>
+                <p><span>{{getDetailText(diagnose.text,false).content}}</span></p>
               </li>
               <li v-if="tabType[moduleCP['other']]==1">
                 <h4><i></i> 其他史:</h4>
                 <p>
-                  <span>{{getDetailText(others.text,false).view}}</span>
+                  <span>{{getDetailText(others.text,false).content}}</span>
                 </p>
               </li>
               <li v-if="tabType[moduleCP['suplement']]==1">
@@ -167,18 +167,32 @@ export default {
     }
   },
   computed:{
-    ...mapState([
-      'tabType'
-    ])
+    ...mapState({
+      tabType: state => state.tabType,
+      config: state => state.sysConfig,
+    })
   },
   created(){
     this.getTime();
+    if (this.config.length == 0) {//登录进去返回到列表页,扫码返回到开始页
+      let scan = localStorage.getItem('scan');
+      let params = JSON.parse(localStorage.getItem('infoParam'));
+      let param = JSON.parse(localStorage.getItem('loginParam'));
+      let data = JSON.parse(localStorage.getItem('loginData'));
+      if(!scan){
+        if(data.length>1){
+          this.$router.push({path:'/department'});
+        }else{
+          this.$router.push({path:'/home',query:param});
+        }
+      }else{
+        this.$router.push({path:'/home',query:Object.assign({}, params,{scan:true})});
+      }
+    }
   },
   mounted() {
-    this.$nextTick(()=>{
-      let scroll = setScroll(BScroll,true,'.previewper')
-      this.scroll = scroll
-    })
+    let scroll = setScroll(BScroll,true,'.previewper')
+    this.scroll = scroll
   },
   methods: {
     getTime() {
@@ -458,10 +472,10 @@ export default {
       font-weight: bold;
       position: relative;
       i {
-        width: .16rem;
-        height: .16rem;
+        width: .12rem;
+        height: .12rem;
         border-radius: 50%;
-        background: #colors[theme];
+        background: #FFAD00;
         display: inline-block;
         position: absolute;
         top: .15rem;

+ 17 - 25
src/components/Symptom.vue

@@ -104,7 +104,7 @@ export default {
       symp: [], //症状
       labelDetail: {}, //明细
       questId: null, //id
-      delText: "是否删除该信息?<br/>(已填内容将清除)",
+      delText: "是否删除该信息?",
       delIndex: null,
       showToast: false,
       tmpItem:{},//检索的症状
@@ -129,31 +129,23 @@ export default {
       degNum:0
     }
   },
-  beforeRouteEnter (to, from, next) {
-    next(vm => {
-      // setTitle('ishdsjahd')
-        document.title = 'title';
-        let i = document.createElement('iframe');//解决qq内title不刷新问题
-        i.style.display = 'none';
-        i.src = '.';
-        i.onload = ()=>{
-            setTimeout(()=>{
-                i.remove()
-            }, 0);
-        }
-        document.body.appendChild(i);
-        
-    })
-  },
   computed:{
     ...mapState({
       activeModule: state => state.activeModule,
       searchShow: state => state.searchShow,//搜索界面显示
       chooseSymp: state => state.symptom.choose,//已选症状
       checkText: state => state.symptom.text,//症状情况文字
+      config: state => state.sysConfig,
       pathInfo: state => state.pathInfo
     }),
   },
+    
+  beforeRouteEnter (to, from , next) {
+    next(vm => {
+      // 通过 `vm` 访问组件实例
+      setTitle(vm.activeModule.obj.symptoms_show.name)
+    })
+  },
   created() {
     if (this.chooseSymp.length > 0) {
       this.quesText = "请问您还有其他不适吗?";
@@ -412,16 +404,17 @@ export default {
     deletSymp(item, index) {
       this.delIndex = index;
       this.questId = item.questionId || item.id || item.conceptId;
-
       if (this.chooseSymp.length == 1) {
         if(item.idx != 1){
-          this.delText = "是否删除该信息?<br/>删除后将重新填写预问诊流程 <br/>"
+          this.delText = "是否删除该信息?"
         }else{
-          this.delText = "是否删除该信息?<br/>删除后将重新填写预问诊流程 <br/>(已填内容将清除)"
+          this.delText = "要删除症状,重新填写?"
         }
       }else{
         if(item.idx != 1){
           this.delText = "是否删除该信息?"
+        }else{
+          this.delText = "要删除症状,重新填写?"
         }
       }
       this.showToast = true;
@@ -483,7 +476,7 @@ export default {
 .tips {
   color: #AAAAAA;
   margin-bottom:.2rem;
-  font-size: .13rem;
+  font-size: .26rem;
 }
 .tip {
   font-size: .28rem !important;
@@ -496,12 +489,11 @@ export default {
     width: 14px;
     top: 1px;
     img {
-      width: 14px;
-      height: 7px;
+      width: 15px;
+      height:15px;
       position: absolute;
-      top: 50%;
+      bottom: 1px;
       left: 0;
-      margin-top: -3.5px;
     }
   }
 }

+ 6 - 5
src/components/TabPage.vue

@@ -28,7 +28,7 @@ import AddContent from './AddContent.vue';
 import DiagTreat from './DiagTreat.vue';
 import Others from './Others.vue';
 import Preview from './Preview.vue';
-import {moduleConfig,moduleCP,getRouteName} from '../utils/tools.js';
+import {moduleConfig,moduleCP,getRouteName,setTitle} from '../utils/tools.js';
 import DetailBox from './DetailBox.vue';
 import {mapState} from 'vuex';
 export default {
@@ -50,6 +50,7 @@ export default {
       symChoose: state => state.symptom.choose,
       type: state => state.tabType,
       config: state => state.sysConfig,
+      getPathInfo:state=>state.getPathInfo,
       tmpAllMoudles: state => state.allMoudles,
     }),
   },
@@ -57,17 +58,17 @@ export default {
     this.routerName = this.$route.name
     if (this.config.length == 0) {//登录进去返回到列表页,扫码返回到开始页
       let scan = localStorage.getItem('scan');
+      let data = JSON.parse(localStorage.getItem('loginData'));
       let params = JSON.parse(localStorage.getItem('infoParam'));
       let param = JSON.parse(localStorage.getItem('loginParam'));
-      let data = JSON.parse(localStorage.getItem('loginData'));
       if(!scan){
         if(data.length>1){
-          this.$router.replace({path:'/department'});
+          this.$router.push({path:'/department'});
         }else{
-          this.$router.replace({path:'/home',query:param});
+          this.$router.push({path:'/home',query:param});
         }
       }else{
-        this.$router.replace({path:'/home',query:Object.assign({}, params,{scan:true})});
+        this.$router.push({path:'/home',query:Object.assign({}, params,{scan:true})});
       }
     }
   },

BIN
src/images/banerbg@1.5x.png


BIN
src/images/blueSlide.png


BIN
src/images/childbg@1.5x.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 1
src/images/important.svg


BIN
src/images/startBg.png


BIN
src/images/topContent.png


+ 2 - 2
src/less/base.less

@@ -36,7 +36,7 @@
     height: .88rem;
     line-height: .88rem;
     background: #colors[btn];
-    border-radius: 5px;
+    border-radius: .44rem;
   }
 }
 .dbfooter{
@@ -61,7 +61,7 @@
     vertical-align: top;
     border: 1px solid #colors[theme];  
     box-sizing: border-box;
-    border-radius: 5px;
+    border-radius: .44rem;
   }
   .back{
     width: 48%;

+ 0 - 11
src/main.js

@@ -4,8 +4,6 @@ import store from './store.js';
 import App from './App.vue';
 import preview from 'vue-photo-preview';
 import 'vue-photo-preview/dist/skin.css';
-import VueAwesomeSwiper from 'vue-awesome-swiper'
-import 'swiper/dist/css/swiper.css'
 import PortalVue from 'portal-vue';
 import './utils/getfile.js';
 import Picker from 'vant/lib/picker';
@@ -13,15 +11,6 @@ import 'vant/lib/picker/style';
 
 
 Vue.use(PortalVue);
-
-Vue.use(VueAwesomeSwiper,{
-  direction:'vertical',
-  // loop:true,
-  slidesPerView: 3,
-  spaceBetween: 0,
-  freeMode: false,
-})
-
 Vue.use(preview);
 Vue.use(Picker);
 Vue.config.productionTip = false;

+ 0 - 2
src/store.js

@@ -137,8 +137,6 @@ const store = new Vuex.Store({
     savePathInfo(state,param){
       let obj = param;
       obj.sexType = obj.patientSex == '男' ? 1 : (obj.patientSex == '女' ? 2 : 3);
-      obj.doctorName = '傻子'
-      obj.recordId = '265254885'
       state.pathInfo = obj;
     },
     saveSysConfig(state,param){

+ 0 - 9
src/utils/tools.js

@@ -393,15 +393,6 @@ const getNum = () => {
 // 设置title
 const setTitle = (title) => {
   document.title = title;
-  let i = document.createElement('iframe');//解决qq内title不刷新问题
-  i.style.display = 'none';
-  i.src = '.';
-  i.onload = ()=>{
-      setTimeout(()=>{
-          i.remove()
-      }, 0);
-  }
-  document.body.appendChild(i);
 }
 // 匹配下一步的路由
 const getRouteName = (flg,active,order) => {