Browse Source

详情弹窗优化

luolei 5 years ago
parent
commit
2f76d3f470

+ 1 - 1
build/webpack.dev.conf.js

@@ -34,7 +34,7 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     compress: true,
     // host: HOST || config.dev.host,
     // host: '192.168.3.6',
-    host: '192.168.1.103',
+    host: '192.168.3.106',
     port: PORT || config.dev.port,
     open: config.dev.autoOpenBrowser,
     overlay: config.dev.errorOverlay

+ 1 - 1
src/common/UploadImg.vue

@@ -96,7 +96,7 @@ export default {
         // console.log(fileSize,'大小')
         if (fileSize > maxSize) { // 如果图片大小大于4m,进行压缩
           uploadSrc = canvas.toDataURL(file.type, 0.1);
-          uploadFile = that.dataURLtoFile(uploadSrc, file.name.split('.')[0]); // 转成file文件
+          uploadFile = that.dataURLtoFile(uploadSrc, file.name); // 转成file文件
           // uploadFile = that.convertBase64UrlToBlob(uploadSrc); // 转成blob
         } else {
           uploadSrc = image.src;

+ 61 - 5
src/components/Detail.vue

@@ -1,6 +1,14 @@
 <template>
   <div class="detail-wrap">
     <!-- <div v-for="(item,index) in datas"> -->
+    <div class="head">
+      <span class="icon" @click="close">
+        <img src="../images/small-close.png">
+      </span>
+      <span class="name">{{(checkDatas.description||checkDatas.name)+'详情'}}</span>
+      <span @click="handleClear" :class="{'check':checkF}">清空</span>
+      <i>{{tips}}</i>
+    </div>
     <div class="preQuestion" v-for="(item,index) in checkDatas.questionMapping">
       <div class="quest" @click="slideToggle(index)">
         <img class="sign" v-if="item.required==1" src="../images/important.svg" alt="">
@@ -69,7 +77,7 @@ import ComTextArea from '../common/ComTextArea.vue';
 import RadioSelect from '../common/RadioSelect.vue';
 import MultiLineInput from '../common/MultiLineInput.vue';
 import PickTime from '../common/PickTime.vue';
-import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
+import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js';
 // 将获取到的数据源转换成私有数据,处理选择事件。点击完成后统一存到store中,便于回读
   export default {
     name:'Detail',
@@ -79,7 +87,7 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
         imgUrl:imageUrlPrefix
       }
     },
-    props:['datas','data'],
+    props:['datas','data','checkF','tips'],
     created(){
       this.checkDatas = JSON.parse(JSON.stringify(this.datas));
     },
@@ -93,6 +101,12 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
       PickTime
     },
     methods:{
+      close(){
+        this.$emit('close')
+      },
+      handleClear(){
+        this.$emit('handleClear')
+      },
       slideAll(){
         let mapping = this.checkDatas.questionMapping;
         let num = 0;
@@ -327,8 +341,8 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
         display: inline-block;
         position: absolute;
         left: 0.16rem;
-        top: 0.52rem;
-        width: 0.15rem;
+        top: 0.45rem;
+        width: 0.32rem;
         color: red;
       }
       .order {
@@ -341,7 +355,7 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
       }
       .title {
         color: #000;
-        padding-left: .06rem;
+        padding-left: .24rem;
         display: inline-block;
       }
       i{
@@ -367,5 +381,47 @@ import {patt,trimDots,imageUrlPrefix} from '@utils/tools.js'
       .bgques;
       background-color: #colors[bgques];
     }
+    .head{
+      height: 1.6rem; //增加了提示
+      line-height: .88rem;
+      display: flex; //有清空时
+      justify-content: space-between;
+      border-bottom: 1px solid #E6E7EF;
+      padding: 0 .4rem 0 .32rem;
+      font-size: .28rem;
+      color: #7C828E;
+      position: relative;
+      width: 100%;
+      background-color: #fff;
+      // top: 45px;
+      box-sizing: border-box;
+      border-radius:.2rem .2rem 0px 0px;
+      i{
+        position: absolute;
+        bottom:0;
+        left:0;
+        font-size: .22rem;
+        width:100%;
+        height: .6rem;
+        line-height: .6rem;
+        display: inline-block;
+        background-color: #EAF1F9;
+        color: #colors[btn];
+        text-indent: .4rem;
+      }
+      .icon{
+        display: inline-block;
+        height: 100%;
+        padding: 0 .1rem;
+        img{
+          width:.34rem;
+          vertical-align: middle;
+        }
+      }
+      .name{
+        font-size: .32rem;
+        color: #1A1A1A;
+      }
+    }
   }
 </style>

+ 6 - 52
src/components/DetailBox.vue

@@ -3,29 +3,25 @@
     <div class="detailBoxMask"></div>
     <div class="detailBox-wrap viewPrew">
       <div class="content detailBoxMain" ref="detailBox">
-        <div class="tmpDom"></div>
+        <!-- <div class="tmpDom"></div> -->
         <div class="main">
           <Detail :datas="privateData" 
                   ref="detail"
                   :data="data"
+                  :tips="tips"
+                  :checkF="checkF"
                   @check="changeCheck($event)"
                   @setBtnTxt="setBtnTxt($event)"
+                  @close="close($event)"
+                  @handleClear="handleClear($event)"
                   @checkReq="changeFins($event)"/>
         </div>
         <!-- <div class="foot" @click="complete">完成</div> -->
       </div>
-      <div class="head">
-        <span class="icon" @click="close">
-          <img src="../images/small-close.png">
-        </span>
-        <span class="name">{{(privateData.description ||privateData.name)+'详情'}}</span>
-        <span @click="handleClear" :class="{'check':checkF}">清空</span>
-        <i>{{tips}}</i>
-      </div>
     </div>
     <!-- <div :class="['foot',{'noCheck':!checkF}]" @click="complete">完成</div> -->
     <div style="position:absolute" class="foot">
-      <div class="slide" @click="slideAll()">{{btnTxt}}</div>
+      <div class="slide" @click="slideAll">{{btnTxt}}</div>
       <!-- <div class="nextBtn compete" :class="{'noCheck':!checkF || !reqFinish}" @click="complete">完成</div> -->
       <div class="nextBtn compete" @click="complete">完成</div>
     </div>
@@ -199,48 +195,6 @@
     height: 100%;
     overflow: hidden;
     border-radius:.2rem .2rem 0px 0px;
-    .head{
-      height: 1.6rem; //增加了提示
-      line-height: .88rem;
-      display: flex; //有清空时
-      justify-content: space-between;
-      border-bottom: 1px solid #E6E7EF;
-      padding: 0 .4rem 0 .32rem;
-      font-size: .28rem;
-      color: #7C828E;
-      position: fixed;
-      width: 100%;
-      background-color: #fff;
-      top: 45px;
-      box-sizing: border-box;
-      border-radius:.2rem .2rem 0px 0px;
-      i{
-        position: absolute;
-        bottom:0;
-        left:0;
-        font-size: .22rem;
-        width:100%;
-        height: .6rem;
-        line-height: .6rem;
-        display: inline-block;
-        background-color: #EAF1F9;
-        color: #colors[btn];
-        text-indent: .4rem;
-      }
-      .icon{
-        display: inline-block;
-        height: 100%;
-        padding: 0 .1rem;
-        img{
-          width:.34rem;
-          vertical-align: middle;
-        }
-      }
-      .name{
-        font-size: .32rem;
-        color: #1A1A1A;
-      }
-    }
     .main{
       height: 100%;
       width:100%;

+ 5 - 1
src/components/Preview.vue

@@ -151,7 +151,8 @@ export default {
       moduleCP:moduleCP,
       showDoc:false,
       trimDots:trimDots,
-      time:''
+      time:'',
+      err:''
     }
   },
   created(){
@@ -194,6 +195,7 @@ export default {
         this.$store.commit('handleToggleShow', true);
         for (let i = 0; i < imgList.length; i++) {
           let pageFile = imgList[i].file
+          console.log(pageFile.size,pageFile.name)
           formData.append('upfiles', imgList[i].file);
           // formData.append('upfile', imgList[i].file);
           formData.append('type', imgList[i].type);
@@ -212,6 +214,7 @@ export default {
           // })
         }
         api.uploadImageThums(formData).then((res) => {//获取图片
+        console.log(res,1111111111)
           let data = res.data;
           if (data.code == 0) {//图片提交成功再保存数据
             let reportList = [];
@@ -345,6 +348,7 @@ export default {
     defaultWaring(res){
       this.$store.commit('handleToggleShow', false);
       this.showType = 'fail'
+      this.err = 'sdsdsdsd'
       this.submit = true
       let timer = setTimeout(() => {
         this.submit = false

File diff suppressed because it is too large
+ 1 - 1
src/images/important.svg


+ 1 - 0
src/utils/api.js

@@ -11,6 +11,7 @@ const urls = {
   saveInquiry:'/api/prec/inquiryInfo/saveInquiry',//保存问诊记录
   uploadImageThum:'/api/prec/file/uploadImageThum',//单个文件上传同时生成缩略图
   uploadImageThums:'/api/prec/file/uploadImageThums',//多个文件上传同时生成缩略图
+  // uploadImageThums:'http://192.168.3.117:5050/api/prec/file/uploadImageThums',//多个文件上传同时生成缩略图
   getTagInfos:'/api/prec/retrieval/getTagInfos',//检索
   signIn:'/api/prec/patientInfo/signIn',//登录
   // uploadImageThums:'http://192.168.3.1:8849/file/uploadImageThums',//多个文件上传同时生成缩略图