Browse Source

医生端交互完成

Your Name 1 year ago
parent
commit
0913d05f1b

+ 6 - 6
.eslintrc.js

@@ -11,7 +11,7 @@ module.exports = {
   extends: [
     // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
     // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
-    'plugin:vue/essential', 
+    // 'plugin:vue/essential', 
     // https://github.com/standard/standard/blob/master/docs/RULES-en.md
     // 'standard'
   ],
@@ -22,11 +22,11 @@ module.exports = {
   // add your custom rules here
   rules: {
     // allow async-await
-    'generator-star-spacing': 'off',
+    // 'generator-star-spacing': 'off',
     // allow debugger during development
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
-    'space-before-function-paren': 0,
-    'indent': 'off',
-    'no-trailing-spaces': 0
+    // 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    // 'space-before-function-paren': 0,
+    // 'indent': 'off',
+    // 'no-trailing-spaces': 0
   }
 }

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

@@ -15,7 +15,7 @@ const PORT = process.env.PORT && Number(process.env.PORT)
 
 const devWebpackConfig = merge(baseWebpackConfig, {
   module: {
-    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
+    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }),
   },
   // cheap-module-eval-source-map is faster for development
   devtool: config.dev.devtool,

+ 7 - 2
config/index.js

@@ -10,7 +10,12 @@ module.exports = {
     // Paths
     assetsSubDirectory: 'static',
     assetsPublicPath: '/',
-    proxyTable: {},
+    proxyTable: {
+      '/api': {
+        target: 'xjctest.baianxi.com',
+        changeOrigin: true
+      }
+    },
 
     // Various Dev Server settings
     host: '0.0.0.0', // can be overwritten by process.env.HOST
@@ -23,7 +28,7 @@ module.exports = {
     // Use Eslint Loader?
     // If true, your code will be linted during bundling and
     // linting errors and warnings will be shown in the console.
-    useEslint: true,
+    useEslint: false,
     // If true, eslint errors and warnings will also be shown in the error overlay
     // in the browser.
     showEslintErrorsInOverlay: false,

BIN
src/assets/images/flb.png


BIN
src/assets/images/hg.png


BIN
src/assets/images/mg.png


BIN
src/assets/images/more.png


BIN
src/assets/images/point.png


BIN
src/assets/images/rb.png


+ 210 - 82
src/components/DiagCalc.vue

@@ -5,7 +5,11 @@
       <div class="title">FVIII药代动力学检测</div>
       <div class="diagForm">
         <mt-field label="病例体重(kg)" placeholder="整数或1位小数" type="number" v-model="form.bltz"></mt-field>
-        <mt-field label="注射剂量" placeholder="请输入整数" v-model="form.zsjl" type="number"></mt-field>
+        <mt-field placeholder="请选择产品" class="inputDisable" disabled label="产品选择" v-model="form.mpro"
+          @click.native="mproFlag=true;mfreqFlag=false">
+          <img src="../assets/images/down.png" alt="" width="16px">
+        </mt-field>
+        <mt-field label="注射剂量(IU)" placeholder="请输入整数" v-model="form.zsjl" type="number"></mt-field>
         <div class="numSubTitle">
           <mt-field class="inputDisable" disabled placeholder="请选择时间" v-model="form.zssjt0"
             @click.native="$refs.t0Picker.open()">
@@ -14,7 +18,7 @@
           <span>注射时间t<sub>0</sub></span>
         </div>
         <mt-field label="基础活性%" placeholder="请输入2位小数" v-model="form.jchx"></mt-field>
-        <mt-field label="注射后半小时内活性%" placeholder="请输入2位小数" type="number" v-model="form.zs30hx"></mt-field>
+        <!-- <mt-field label="注射后半小时内活性%" placeholder="请输入2位小数" type="number" v-model="form.zs30hx"></mt-field> -->
         <div class="numSubTitle">
           <mt-field class="inputDisable" disabled placeholder="请选择时间" v-model="form.cxsjt1"
             @click.native="$refs.t1Picker.open()">
@@ -49,61 +53,93 @@
           <span>t<sub>3</sub>点活性%</span>
         </div>
       </div>
-      <div class="diagForm">
+      <!-- <div class="diagForm">
         <div class="formTitle">血友病治疗方案</div>
         <mt-field label="预防谷活性" type="number" placeholder="请输入整数" v-model="form.yfghx"></mt-field>
         <mt-field class="inputDisable" disabled label="注射频次" placeholder="请选择" v-model="form.zspc"
           @click.native="mfreqFlag=true">
           <img src="../assets/images/down.png" alt="" width="16px">
         </mt-field>
-      </div>
+      </div> -->
       <div class="footer">
-        <div class="jbbtn" @click="submit">提交</div>
+        <div class="jbbtn" @click="submit">确定</div>
+        <div class="jbbtn" @click="$router.go(-1)">返回</div>
       </div>
     </div>
     <!-- 注射时间t0 -->
     <mt-datetime-picker ref="t0Picker" type="datetime" year-format="{value} 年" month-format="{value} 月"
-      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime0' 
-      :endDate='endDate'
-      :startDate='startDate'
-      v-model="now"
-      @touchmove.native.stop.prevent
-      >
+      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime0' :endDate='endDate'
+      :startDate='startDate' v-model="now" @touchmove.native.stop.prevent>
     </mt-datetime-picker>
     <!-- 采血时间t1 -->
     <mt-datetime-picker ref="t1Picker" type="datetime" year-format="{value} 年" month-format="{value} 月"
-      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime1' 
-      :endDate='endDate'
-      :startDate='startDate'
-      v-model="now"
-      @touchmove.native.stop.prevent
-      >
+      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime1' :endDate='endDate'
+      :startDate='startDate' v-model="now" @touchmove.native.stop.prevent>
     </mt-datetime-picker>
     <!-- 采血时间t2 -->
     <mt-datetime-picker ref="t2Picker" type="datetime" year-format="{value} 年" month-format="{value} 月"
-      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime2' 
-      :endDate='endDate'
-      :startDate='startDate'
-      v-model="now"
-      @touchmove.native.stop.prevent
-      >
+      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime2' :endDate='endDate'
+      :startDate='startDate' v-model="now" @touchmove.native.stop.prevent>
     </mt-datetime-picker>
     <!-- 采血时间t3 -->
     <mt-datetime-picker ref="t3Picker" type="datetime" year-format="{value} 年" month-format="{value} 月"
-      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime3' 
-      :endDate='endDate'
-      :startDate='startDate'
-      v-model="now"
-      @touchmove.native.stop.prevent
-      >
+      date-format="{value} 日" hourFormat="{value}时" minuteFormat="{value}分" @confirm='changeTime3' :endDate='endDate'
+      :startDate='startDate' v-model="now" @touchmove.native.stop.prevent>
     </mt-datetime-picker>
     <!-- 注射频次 -->
     <mt-picker @change="onValuesChange1" v-if="mfreqFlag" :slots="slots1" ref="sexPicker1" class="sexPicker"
-      :showToolbar="true"
-      @touchmove.native.stop.prevent
-      >
-      <div class="pickerConfirm" @click="mfreqFlag=false">确认</div>
+    :showToolbar="true" @touchmove.native.stop.prevent>
+    <div class="pickerConfirm" @click="mfreqFlag=false">确认</div>
+  </mt-picker>
+    <!-- 注射产品 -->
+    <mt-picker @change="onValuesChange" v-if="mproFlag" :slots="slots" ref="sexPicker" class="sexPicker"
+      :showToolbar="true">
+      <div class="pickerConfirm" @click="mproFlag=false">确认</div>
     </mt-picker>
+    <!-- 试算弹出框 -->
+    <mt-popup v-model="popupVisible">
+      <div class="popupContainer">
+        <!-- 药代动力学参数 -->
+        <div class="diagShowForm">
+          <div class="formTitle">FVIII 药代动力学参数</div>
+          <div style="display:flex;">
+            <div class="rowfont" style="width:50%;">半衰期(小时)</div>
+            <div class="rowfont" style="width:50%;color:#888;">{{form.bsq}}</div>
+          </div>
+          <div style="display:flex;">
+            <div class="rowfont" style="width:50%;">利用率%</div>
+            <div class="rowfont" style="width:50%;color:#888;">{{form.lyl*100}}</div>
+          </div>
+          <div style="display:flex;">
+            <div class="rowfont" style="width:50%;">预期峰值活性%</div>
+            <div class="rowfont" style="width:50%;color:#888;">{{form.yqfzhx}}</div>
+          </div>
+        </div>
+        <!-- 血友病预防治疗剂量计算 -->
+        <div class="diagShowForm">
+          <div class="formTitle">血友病预防治疗剂量计算</div>
+          <div class="popupDiagForm">
+            <mt-field label="预防谷活性" type="number" placeholder="请输入整数" v-model="form.yfghx"></mt-field>
+            <mt-field class="inputDisable" disabled label="注射频次" placeholder="请选择" v-model="form.zspc"
+              @click.native="mfreqFlag=true">
+              <img src="../assets/images/down.png" alt="" width="16px">
+            </mt-field>
+            <mt-field label="每次注射剂量" type="number" placeholder="请输入整数" v-model="form.yfghx"></mt-field>
+          </div>
+        </div>
+      </div>
+      <div class="popupFooter">
+        <div class="jbbtn" @click="goback">返回</div>
+        <div class="jbbtn" @click="goSelect">确定</div>
+        <div class="jbbtn" @click="submit">计算</div>
+
+      </div>
+      <!-- 注射频次 -->
+      <mt-picker @change="onValuesChange1" v-if="mfreqFlag" :slots="slots1" ref="sexPicker1" class="sexPicker"
+        :showToolbar="true" @touchmove.native.stop.prevent>
+        <div class="pickerConfirm" @click="mfreqFlag=false">确认</div>
+      </mt-picker>
+    </mt-popup>
   </div>
 </template>
 
@@ -111,7 +147,8 @@
   import {
     Field,
     MessageBox,
-    Toast
+    Toast,
+    Popup
   } from 'mint-ui'
 
   export default {
@@ -119,14 +156,15 @@
     components: {
       Field,
       MessageBox,
-      Toast
+      Toast,
+      Popup
     },
     data() {
       return {
         msg: 'Welcome to Your Vue.js App',
         mfreqFlag: false,
         form: {
-          jchx: 1,
+          jchx: '',
           zssjt0: '',
           cxsjt1: '',
           cxsjt2: '',
@@ -138,26 +176,50 @@
           className: 'slot1',
           textAlign: 'center'
         }],
-        startDate:new Date(this.$datetime.formatDateTime(new Date("2013-01-01 00:00:00"))),
+        startDate: new Date(this.$datetime.formatDateTime(new Date("2013-01-01 00:00:00"))),
         endDate: new Date(this.$datetime.formatDateTime(new Date("2024-01-01 00:00:00"))),
-        now:new Date(),
+        now: new Date(),
+        mproFlag: false,
+        slots: [{
+          flex: 1,
+          values: this.$const.mprolist,
+          className: 'slot1',
+          textAlign: 'center'
+        }],
+        popupVisible: this.$route.query.edit?true:false,
       }
     },
     methods: {
+      goback(){
+        if(this.$route.query && this.$route.query.edit && this.$route.query.back){
+          this.$router.push({
+            path:this.$route.query.back
+          });
+        }else{
+          this.popupVisible = false;
+        }
+      },
       goPage() {
         this.$router.push('/diagcalcshow')
       },
       changeTime0(value) {
-        this.form.zssjt0 = this.$datetime.formatDateTime(value).replaceAll("/","-")
+        this.form.zssjt0 = this.$datetime.formatDateTime(value).replaceAll("/", "-")
       },
       changeTime1(value) {
-        this.form.cxsjt1 = this.$datetime.formatDateTime(value).replaceAll("/","-")
+        this.form.cxsjt1 = this.$datetime.formatDateTime(value).replaceAll("/", "-")
       },
       changeTime2(value) {
-        this.form.cxsjt2 = this.$datetime.formatDateTime(value).replaceAll("/","-")
+        this.form.cxsjt2 = this.$datetime.formatDateTime(value).replaceAll("/", "-")
       },
       changeTime3(value) {
-        this.form.cxsjt3 = this.$datetime.formatDateTime(value).replaceAll("/","-")
+        this.form.cxsjt3 = this.$datetime.formatDateTime(value).replaceAll("/", "-")
+      },
+      onValuesChange(picker, values) {
+        if (picker.getSlotValue(0)) {
+          this.form.mpro = picker.getSlotValue(0)
+        } else {
+          this.form.mpro = "人血FVIII"
+        }
       },
       onValuesChange1(picker, values) {
         if (picker.getSlotValue(0)) {
@@ -166,6 +228,14 @@
           this.form.zspc = this.$const.zspc[0]
         }
       },
+      goSelect(){
+        this.$router.push({
+                path: 'pretraitcase',
+                query: {
+                  id: 74
+                }
+              })
+      },
       submit() {
         if (!this.form.bltz) {
           MessageBox({
@@ -211,21 +281,21 @@
           })
           return
         }
-        if (!this.form.zs30hx) {
-          MessageBox({
-            title: '提示',
-            message: '请输入注射后半小时内活性'
-          })
-          return
-        } else {
-          if (!this.$recheck.checkIntFloat12(this.form.zs30hx)) {
-            MessageBox({
-              title: '提示',
-              message: '注射后半小时内活性请输入整数或2位小数'
-            })
-            return
-          }
-        }
+        // if (!this.form.zs30hx) {
+        //   MessageBox({
+        //     title: '提示',
+        //     message: '请输入注射后半小时内活性'
+        //   })
+        //   return
+        // } else {
+        //   if (!this.$recheck.checkIntFloat12(this.form.zs30hx)) {
+        //     MessageBox({
+        //       title: '提示',
+        //       message: '注射后半小时内活性请输入整数或2位小数'
+        //     })
+        //     return
+        //   }
+        // }
         if (!this.form.cxsjt1) {
           MessageBox({
             title: '提示',
@@ -292,28 +362,30 @@
             return
           }
         }
-        if (!this.form.yfghx) {
-          MessageBox({
-            title: '提示',
-            message: '请输入预防谷活性'
-          })
-          return
-        } else {
-          if (!this.$recheck.checkInt(this.form.yfghx)) {
-            MessageBox({
-              title: '提示',
-              message: '预防谷活性请输入整数'
-            })
-            return
-          }
-        }
-        if (!this.form.zspc) {
-          MessageBox({
-            title: '提示',
-            message: '请选择注射频次'
-          })
-          return
-        }
+        // if (!this.form.yfghx) {
+        //   MessageBox({
+        //     title: '提示',
+        //     message: '请输入预防谷活性'
+        //   })
+        //   return
+        // } else {
+        //   if (!this.$recheck.checkInt(this.form.yfghx)) {
+        //     MessageBox({
+        //       title: '提示',
+        //       message: '预防谷活性请输入整数'
+        //     })
+        //     return
+        //   }
+        // }
+        // if (!this.form.zspc) {
+        //   MessageBox({
+        //     title: '提示',
+        //     message: '请选择注射频次'
+        //   })
+        //   return
+        // }
+        this.popupVisible = true;
+
         MessageBox.confirm('请您再次确认录入信息是否有误?').then(action => {
           let params = this.form
           let patientCase = localStorage.getItem("patientCase")
@@ -332,7 +404,7 @@
               let id = res.data.data.id
               localStorage.removeItem("patientCase")
               this.$router.push({
-                path: 'diagcalcshow',
+                path: 'solutionpkline',
                 query: {
                   id: id
                 }
@@ -402,8 +474,64 @@
     margin-left: 105px;
   }
 
-  /deep/ .picker-items{
-    width:100%!important;
+  /deep/ .picker-items {
+    width: 100% !important;
+  }
+
+  /* 试算样式 */
+  /deep/ .mint-popup {
+    width: 90%;
+  }
+
+  .diagShowForm {
+    width: 84%;
+    margin: auto;
+    margin-top: 1rem;
+    background: #fff;
+    padding: 1rem;
+    border-radius: 5px;
+
+    .formTitle {
+      height: 1rem;
+      line-height: 1rem;
+      text-align: left;
+      color: #2882F4;
+      padding-bottom: 0.5rem;
+      border-bottom: 1px solid #2882F4;
+      font-weight: bold;
+    }
+
+    .mint-cell {
+      min-height: 2.5rem;
+    }
+
+    /deep/ .mint-cell .mint-cell-title {
+      width: 60%;
+      text-align: left;
+    }
+
+    /deep/ .mint-cell .mint-cell-value {
+      width: 40%;
+      text-align: right;
+    }
+  }
+
+  .popupContainer {
+    background: #EFEFEF;
+    padding: 2px;
+  }
+
+  .popupFooter {
+    display: flex;
+    /* padding: 2rem; */
+    background: #EFEFEF;
+
+
+    .jbbtn {
+      width: 26%;
+      margin-top: 1rem;
+      margin-bottom: 1rem;
+    }
   }
 
 </style>

+ 20 - 8
src/components/DiagCalcShow.vue

@@ -92,6 +92,7 @@
         </div>
       </div>
       <div class="footer">
+          <div class="jbbtn" @click="goback">返回</div>
         <div class="jbbtn" @click="goPage">下一页</div>
       </div>
     </div>
@@ -116,18 +117,20 @@
       }
     },
     methods: {
+      goback(){
+        this.$router.go(-1);
+      },
       goPage() {
         let id = this.$route.query.id
         let role = this.$route.query.role
         let show = this.$route.query.show
-        if(role==2){
-          // this.$router.push({'path':'/patcxsjline',query:{id:id}})
-          // this.$router.push({'path':'/solutionpkline',query:{id:id}})
-          this.$router.push({'path':'/pretraitcase',query:{id:id,show:show,role:role}})
-        }else{
-          // this.$router.push({'path':'/solutionpkline',query:{id:id}})
-          this.$router.push({'path':'/pretraitcase',query:{id:id,show:show,role:role}})
-        }
+        this.$router.push({'path':'/solutionpkline',query:{id:id,show:1}})
+        // if(role==2){
+        //   this.$router.push({'path':'/pretraitcase',query:{id:id,show:show,role:role}})
+        // }else{
+        //   // this.$router.push({'path':'/solutionpkline',query:{id:id}})
+        //   this.$router.push({'path':'/pretraitcase',query:{id:id,show:show,role:role}})
+        // }
       },
       getData(){
         let id = this.$route.query.id
@@ -182,4 +185,13 @@
     height: 100%;
   }
 
+  .footer{
+    display: flex;
+    .jbbtn {
+      width: 42%;
+      margin-top: 1rem;
+      margin-bottom: 1rem;
+    }
+  }
+
 </style>

+ 2 - 2
src/components/DocIndex.vue

@@ -9,8 +9,8 @@
     </div>
     <div class="content">
       <div class="footer">
-        <div class="csbtn" @click="goPage('/regpatinfo')">病例信息录入</div>
-        <div class="jbbtn" @click="goPage('patcaselist')">病例管理</div>
+        <div class="csbtn" @click="goPage('/regpatinfo')">病例信息录入</div>
+        <div class="jbbtn" @click="goPage('patcaselist')">历史病例管理</div>
         <div class="jbbtn" @click="logout">退出登录</div>
         <div class="usageInfo">使用说明</div>
       </div>

+ 189 - 28
src/components/PatCaseList.vue

@@ -4,22 +4,83 @@
     <div class="content">
       <div class="title">病例管理</div>
       <div class="searchinput">
-          <mt-field class="searchInput" placeholder="请输入患者姓名" v-model="queryForm.name">
-              <mt-button type="primary" size="small" @click="getData()">搜索</mt-button>
-          </mt-field>
+        <mt-field class="searchInput" placeholder="请输入患者姓名" v-model="queryForm.name">
+          <mt-button type="primary" size="small" @click="getData()">搜索</mt-button>
+        </mt-field>
       </div>
-      <div class="patCaseForm baseInfo" v-for="(item,index) in caseList">
-          <mt-cell :title="'姓名:'+item.name" :value="'ID:'+item.code"></mt-cell>
-          <mt-cell :title="'年龄:'+item.age" :value="'性别:'+item.sex"></mt-cell>
-          <mt-cell :title="'使用产品:'+item.ckmpro" :value="'注射剂量:'+item.ckzsjl"></mt-cell>
-          <mt-cell :title="'注射频次:'+item.ckmfreq"></mt-cell>
-          <div style="font-size:1rem;text-align:left;padding-left:10px;">
-              方案时间:{{item.ctime}}
-              <mt-button type="primary" size="small" @click="showDetail(item.id)">详情</mt-button>
+      <mt-navbar v-model="selected">
+        <mt-tab-item id="1">医生</mt-tab-item>
+        <mt-tab-item id="2">患者</mt-tab-item>
+        <mt-tab-item id="3">方案</mt-tab-item>
+      </mt-navbar>
+      <!-- 医生 -->
+      <div class="diagShowForm" v-if="selected=='1'">
+        <div style="display:flex;border-bottom:1px solid #ccc;position: relative;" @click="goToPatient">
+          <div class="rowfont" style="width:25%;">医生1</div>
+          <div class="rowfont" style="width:30%;">
+            <div class="badge">10</div>
+            患者
           </div>
+          <div class="rowfont" style="width:30%;">
+            <div class="badge">20</div>
+            方案
+          </div>
+          <img src="../assets/images/more.png" style="position:absolute;right:-10px;top:10%;" alt="" width="32px"
+            height="32px">
+        </div>
+        <div style="display:flex;border-bottom:1px solid #ccc;position: relative;" @click="goToPatient">
+          <div class="rowfont" style="width:25%;">医生1</div>
+          <div class="rowfont" style="width:30%;">
+            <div class="badge">10</div>
+            患者
+          </div>
+          <div class="rowfont" style="width:30%;">
+            <div class="badge">20</div>
+            方案
+          </div>
+          <img src="../assets/images/more.png" style="position:absolute;right:-10px;top:10%;" alt="" width="32px"
+            height="32px">
+        </div>
+      </div>
+      <!-- 患者 -->
+      <div class="diagShowForm" v-if="selected=='2'">
+        <div class="formTitle">医生1</div>
+        <div style="display:flex;border-bottom:1px solid #ccc;position: relative;" @click="goToCase">
+          <div class="rowfont" style="width:45%;">患者1</div>
+          <div class="rowfont" style="width:45%;">
+            <div class="badge">20</div>
+            方案
+          </div>
+          <img src="../assets/images/more.png" style="position:absolute;right:-10px;top:10%;" alt="" width="32px"
+            height="32px">
+        </div>
+        <div style="display:flex;border-bottom:1px solid #ccc;position: relative;" @click="goToCase">
+          <div class="rowfont" style="width:45%;">患者1</div>
+          <div class="rowfont" style="width:45%;">
+            <div class="badge">20</div>
+            方案
+          </div>
+          <img src="../assets/images/more.png" style="position:absolute;right:-10px;top:10%;" alt="" width="32px"
+            height="32px">
+        </div>
+
       </div>
-      <div class="footer" style="position:fixed;bottom:1rem;width:100%;">
-        <!-- <div class="jbbtn">返回</div> -->
+      <!-- 方案 -->
+      <div class="patCaseForm baseInfo" v-for="(item,index) in caseList" v-if="selected=='3'">
+        <mt-cell :title="'姓名:'+item.name" :value="'ID:'+item.code"></mt-cell>
+        <mt-cell :title="'年龄:'+item.age" :value="'性别:'+item.sex"></mt-cell>
+        <mt-cell :title="'使用产品:'+item.ckmpro" :value="'注射剂量:'+item.ckzsjl"></mt-cell>
+        <mt-cell :title="'注射频次:'+item.ckmfreq"></mt-cell>
+        <div style="font-size:1rem;text-align:left;padding-left:10px;">
+          方案时间:{{item.ctime}}
+          <mt-button type="primary" size="small" @click="showDetail(item.id)">详情</mt-button>
+        </div>
+        <div class="footer">
+          <div class="jbbtn" @click="add">新增</div>
+          <div class="jbbtn" @click="edit(item.id)">调整</div>
+        </div>
+      </div>
+      <div class="pageFooter" style="position:fixed;bottom:1rem;width:100%;">
         <div class="jbbtn" @click="goPage('/docindex')">返回</div>
       </div>
     </div>
@@ -31,7 +92,9 @@
     Field,
     Picker,
     Search,
-    Button
+    Button,
+    Navbar,
+    Badge
   } from 'mint-ui'
 
   export default {
@@ -40,22 +103,39 @@
       Field,
       Picker,
       Search,
-      Button
+      Button,
+      Navbar,
+      Badge
     },
     data() {
       return {
-        searchName:"",
+        searchName: "",
         form: {},
-        queryForm:{},
-        caseList:{}
+        queryForm: {},
+        caseList: {},
+        selected: this.$route.query.select?this.$route.query.select:"1",
+        caseInfo: {}
+
       }
     },
     methods: {
+      goToPatient(){
+        this.selected = "2"
+      },
+      goToCase(){
+        this.selected = "3"
+      },
       goPage(path) {
         this.$router.push(path)
       },
-      showDetail(id){
-        this.$router.push({"path":"diagcalcshow",query:{id:id,show:1}})
+      showDetail(id) {
+        this.$router.push({
+          "path": "diagcalcshow",
+          query: {
+            id: id,
+            show: 1
+          }
+        })
       },
       getData() {
         let id = this.$route.query.id
@@ -64,6 +144,21 @@
             this.caseList = res.data.data.list
           }
         })
+      },
+      edit(id){
+        this.$router.push({
+          path: "diagcalc",
+          query: {
+            id: id,
+            edit: 1,
+            back:"patcaselist"
+          }
+        })
+      },
+      add(){
+        this.$router.push({
+          path: "diagcalc",
+        })
       }
     },
     created() {
@@ -74,14 +169,26 @@
 </script>
 
 <style scoped lang="scss">
-  .searchinput{
-    width: 80%;
+  .searchinput {
+    width: 94%;
     margin: auto;
-    .mint-search{
+    margin-bottom: 0.5rem;
+
+    .mint-search {
       height: 100%;
-      margin-top:1rem;
+      margin-top: 1rem;
     }
   }
+
+  /deep/ .mint-navbar {
+    width: 94%;
+    margin: auto;
+  }
+
+  /deep/ .mint-tab-item-label {
+    font-size: 1.2rem;
+  }
+
   .patCaseForm {
     width: 84%;
     margin: auto;
@@ -90,11 +197,13 @@
     padding: 1rem;
     border-radius: 5px;
     position: relative;
-    .mint-button--small{
+
+    .mint-button--small {
       height: 1.6rem;
       position: absolute;
       left: 78%;
     }
+
     .mint-cell {
       min-height: 1.8rem;
     }
@@ -113,15 +222,67 @@
       font-size: 1.1rem;
       background-image: none;
     }
+
+    .footer {
+      .jbbtn {
+        margin-top: 1rem;
+        height: 2rem;
+        line-height: 2rem;
+        font-size: 1.2rem;
+        width: 40%;
+      }
+    }
   }
-  .container{
+
+  .container {
     height: 100vh;
     overflow-y: scroll;
   }
+
+  .diagShowForm {
+    width: 84%;
+    margin: auto;
+    margin-top: 1rem;
+    background: #fff;
+    padding: 1rem;
+    border-radius: 5px;
+
+    .formTitle {
+      height: 1rem;
+      line-height: 1rem;
+      text-align: left;
+      color: #2882F4;
+      padding-bottom: 0.5rem;
+      border-bottom: 1px solid #2882F4;
+      font-weight: bold;
+    }
+
+    .rowfont {
+      height: 2.5rem;
+      line-height: 2.5rem;
+    }
+
+    .badge {
+      background: #26a2ff;
+      padding: 2px 6px;
+      border-radius: 8px;
+      color: white;
+      width: 1rem;
+      height: 1rem;
+      display: inline-block;
+      line-height: 1rem;
+    }
+
+  }
+
   .footer {
     display: flex;
-    .jbbtn{
-      width: 62%;
+
+    .jbbtn {
+      width: 74%;
+      height: 3.2rem;
+      font-size:1.4rem;
+      line-height:3.2rem;
     }
   }
 

+ 10 - 2
src/components/PreTraitCase.vue

@@ -15,8 +15,8 @@
         </mt-field>
       </div>
       <div class="footer">
-          <div class="jbbtn" @click="goPage(-1)">上一页</div>
-        <div class="jbbtn" @click="submit">下一页</div>
+          <div class="jbbtn" @click="goPage(-1)">返回</div>
+        <div class="jbbtn" @click="submit">确定</div>
       </div>
     </div>
     <mt-picker @change="onValuesChange" v-if="mproFlag && !show" :slots="slots" ref="sexPicker" class="sexPicker"
@@ -105,6 +105,14 @@
         }
       },
       submit() {
+        this.$router.push({
+                path: '/solutionpkline',
+                query: {
+                  id: 74
+                }
+              })
+        return
+
         if (!this.form.ckmpro) {
           MessageBox({
             title: '提示',

+ 33 - 33
src/components/RegPatinfo.vue

@@ -4,37 +4,35 @@
     <div class="content">
       <div class="title">请录入病例信息</div>
       <div class="loginForm">
-        <mt-field placeholder="请输入病例姓名" label="病例姓名" v-model="form.name"></mt-field>
-        <mt-field placeholder="请选择出生年月" class="inputDisable" disabled label="病例年龄" v-model="form.birthday"
+        <mt-field placeholder="请输入病例姓名" label="姓名" v-model="form.name"></mt-field>
+        <mt-field placeholder="请选择出生年月" class="inputDisable" disabled label="年龄" v-model="form.birthday"
           @click.native="$refs.birthdayPicker.open();sexFlag=false">
           <img src="../assets/images/down.png" alt="" width="16px">
         </mt-field>
-        <mt-field placeholder="请选择性别" class="inputDisable" disabled label="病例性别" v-model="form.sex"
+        <mt-field placeholder="请选择性别" class="inputDisable" disabled label="性别" v-model="form.sex"
           @click.native="sexFlag=true">
           <img src="../assets/images/down.png" alt="" width="16px">
         </mt-field>
-        <mt-field placeholder="请输入手机号" label="病例手机" v-model="form.phone" type="number"></mt-field>
-        
+        <mt-field placeholder="请输入手机号" label="手机" v-model="form.phone" type="number"></mt-field>
+
       </div>
       <div class="footer">
-        <div class="jbbtn" @click="submit">下一页</div>
+        <div class="jbbtn" @click="submit">确定</div>
         <div class="jbbtn" @click="$router.go(-1)">返回</div>
-        <div class="jbbtn" @click="birthdayClick">测试</div>
+        <!-- <div class="jbbtn" @click="birthdayClick">测试</div> -->
       </div>
 
     </div>
-    <mt-datetime-picker ref="birthdayPicker" type="date" v-model="now" year-format="{value} 年"
-      month-format="{value} 月" date-format="{value} 日" @confirm='changeTime' :startDate='startDate' :endDate='endDate'
-      @change='changeTime'
-      @touchmove.native.stop.prevent
-      >
+    <mt-datetime-picker ref="birthdayPicker" type="date" v-model="now" year-format="{value} 年" month-format="{value} 月"
+      date-format="{value} 日" @confirm='changeTime' :startDate='startDate' :endDate='endDate' @change='changeTime'
+      @touchmove.native.stop.prevent>
     </mt-datetime-picker>
     <mt-picker @change="onValuesChange" v-if="sexFlag" :slots="slots" ref="sexPicker" class="sexPicker"
       :showToolbar="true" @touchmove.native.stop.prevent>
       <div class="pickerConfirm" v-model="now" @click="sexFlag=false">确认</div>
     </mt-picker>
 
-    <vue-hash-calendar :visible="true"></vue-hash-calendar>
+    <vue-hash-calendar :visible="false"></vue-hash-calendar>
 
   </div>
 </template>
@@ -47,7 +45,7 @@
     Picker,
     Button
   } from 'mint-ui'
-  
+
   export default {
     name: 'Index',
     components: {
@@ -72,26 +70,26 @@
         }],
         startDate: new Date('1923/01/01'),
         endDate: new Date(this.$datetime.formatDate(new Date())),
-        now:new Date(),
+        now: new Date(),
       }
     },
     methods: {
-      birthdayClick(){//生日
-          this.$picker.show({
-            type:'datePicker',
-            date:'1990-01-01',
-            endTime:'2018-01-01',//截至时间
-            startTime:'1930-01-01',//开始时间
-            onOk:(date)=>{
-              this.birthday=date;    // birthday就是所需字段,在data 里定义下
-            } 
-          })
+      birthdayClick() { //生日
+        this.$picker.show({
+          type: 'datePicker',
+          date: '1990-01-01',
+          endTime: '2018-01-01', //截至时间
+          startTime: '1930-01-01', //开始时间
+          onOk: (date) => {
+            this.birthday = date; // birthday就是所需字段,在data 里定义下
+          }
+        })
       },
-      goPage() {
-        this.$router.push('/regpatpro')
+      goPage(path) {
+        this.$router.push(path)
       },
       changeTime(value) {
-        this.form.birthday = this.$datetime.formatDate(value).replaceAll("/","-")
+        this.form.birthday = this.$datetime.formatDate(value).replaceAll("/", "-")
         this.sexFlag = false
       },
       onValuesChange(picker, values) {
@@ -142,7 +140,7 @@
         localStorage.setItem("patientCase", JSON.stringify(params))
         this.$api.regPatient(params).then(res => {
           if (!res.data.code) {
-            this.goPage("/regpatpro")
+            this.goPage("/diagcalc")
           }
         })
       }
@@ -163,15 +161,17 @@
 
 </script>
 
-<style scoped  lang="scss">
+<style scoped lang="scss">
   /* .picker-slot-wrapper{
     transform: translate(0px, 10px) translateZ(0px)!important;
     height: 252px!important;
   } */
-  /deep/ .picker-items{
-    width:100%!important;
+  /deep/ .picker-items {
+    width: 100% !important;
   }
-  /deep/ .picker-slot{
+
+  /deep/ .picker-slot {
     /* overflow:scroll!important; */
   }
+
 </style>

+ 2 - 1
src/components/RegPatpro.vue

@@ -12,7 +12,8 @@
         </mt-field>
       </div>
       <div class="footer">
-        <div class="jbbtn" @click="submit">下一页</div>
+        <div class="jbbtn" @click="submit">确定</div>
+        <div class="jbbtn" @click="$router.go(-1)">返回</div>
       </div>
     </div>
     <mt-picker @change="onValuesChange" v-if="mproFlag" :slots="slots" ref="sexPicker" class="sexPicker"

+ 190 - 0
src/components/ShowAndSaveCase.vue

@@ -0,0 +1,190 @@
+<template>
+  <div class="container">
+    <div class="bgimg"></div>
+    <div class="content">
+      <div class="diagShowForm">
+        <div class="formTitle">FVIII药代动力学检测</div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">姓名</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.name}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">年龄</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.age}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">体重(kg)</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.bltz}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">注射产品</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.mpro}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">注射剂量(IU/kg)</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.zsjl}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">注射时间t<sub>0</sub></div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.zssjt0}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">基础活性</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.jchx}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">注射后半小时内活性</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.zs30hx}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">采血时间t<sub>1</sub></div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.cxsjt1}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">t<sub>1</sub>点活性%</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.t1hx}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">采血时间t<sub>2</sub></div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.cxsjt2}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">t<sub>2</sub>点活性%</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.t2hx}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">采血时间t<sub>3</sub></div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.cxsjt3}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">t<sub>3</sub>点活性%</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.t3hx}}</div>
+        </div>
+        <div style="display:flex;">
+          <div class="rowfont" style="width:50%;">预期峰值活性%</div>
+          <div class="rowfont" style="width:50%;color:#888;">{{caseInfo.yqfzhx}}</div>
+        </div>
+      </div>
+      <div class="footer">
+        <div class="jbbtn" @click="goPage(-1)">返回</div>
+        <div class="jbbtn" @click="goPage('/docindex')">存储</div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  import {
+    Field,
+    Cell
+  } from 'mint-ui'
+  export default {
+    name: 'Index',
+    components: {
+      Field,
+      Cell
+    },
+    data() {
+      return {
+        msg: 'Welcome to Your Vue.js App',
+        caseInfo: {}
+      }
+    },
+    methods: {
+      goPage() {
+        this.$router.push({
+            'path': '/docindex',
+            query: {}
+          })
+        return 
+        let id = this.$route.query.id
+        let role = this.$route.query.role
+        let show = this.$route.query.show
+        if (role == 2) {
+          // this.$router.push({'path':'/patcxsjline',query:{id:id}})
+          // this.$router.push({'path':'/solutionpkline',query:{id:id}})
+          this.$router.push({
+            'path': '/pretraitcase',
+            query: {
+              id: id,
+              show: show,
+              role: role
+            }
+          })
+        } else {
+          // this.$router.push({'path':'/solutionpkline',query:{id:id}})
+          this.$router.push({
+            'path': '/pretraitcase',
+            query: {
+              id: id,
+              show: show,
+              role: role
+            }
+          })
+        }
+      },
+      getData() {
+        let id = this.$route.query.id
+        this.$api.getPatientCaseInfo({
+          id: id
+        }).then(res => {
+          if (!res.data.code) {
+            this.caseInfo = res.data.data
+          }
+        })
+      }
+    },
+    created() {
+      this.getData()
+    }
+  }
+
+</script>
+
+<style scoped lang="scss">
+  .diagShowForm {
+    width: 84%;
+    margin: auto;
+    margin-top: 1rem;
+    background: #fff;
+    padding: 1rem;
+    border-radius: 5px;
+
+    .formTitle {
+      height: 1rem;
+      line-height: 1rem;
+      text-align: left;
+      color: #2882F4;
+      padding-bottom: 0.5rem;
+      border-bottom: 1px solid #2882F4;
+      font-weight: bold;
+    }
+
+    .mint-cell {
+      min-height: 2rem;
+    }
+
+    /deep/ .mint-cell .mint-cell-title {
+      width: 70%;
+      text-align: left;
+    }
+
+    /deep/ .mint-cell .mint-cell-value {
+      width: 50%;
+      text-align: right;
+    }
+  }
+
+  .container {
+    height: 100%;
+  }
+
+  .footer {
+    display: flex;
+
+    .jbbtn {
+      width: 42%;
+    }
+  }
+
+</style>

+ 11 - 4
src/components/SolutionPkLine.vue

@@ -24,15 +24,15 @@
           <div class="rowfont" style="width:52%;">谷活性:{{pklinedata.sjghx}}%</div>
         </div>
         <hr>
-        <mt-cell :title="'姓名:'+caseInfo.name" :value="'ID:'+caseInfo.code"></mt-cell>
+        <!-- <mt-cell :title="'姓名:'+caseInfo.name" :value="'ID:'+caseInfo.code"></mt-cell>
         <mt-cell :title="'年龄:'+caseInfo.age" :value="'性别:'+caseInfo.sex"></mt-cell>
         <mt-cell :title="'使用产品:'+caseInfo.ckmpro" :value="'注射剂量:'+caseInfo.ckzsjl"></mt-cell>
         <mt-cell :title="'注射频次:'+caseInfo.ckmfreq"></mt-cell>
-        <div class="rowfont">方案时间:{{caseInfo.ctime}}</div>
+        <div class="rowfont">方案时间:{{caseInfo.ctime}}</div> -->
       </div>
       <div class="footer">
-        <div class="jbbtn" @click="goPage(-1)">上一页</div>
-        <div class="jbbtn" @click="goPage('/docindex')">返回</div>
+        <div class="jbbtn" @click="goPage(-1)">返回</div>
+        <div class="jbbtn" @click="next">确定</div>
       </div>
     </div>
   </div>
@@ -120,6 +120,13 @@
       }
     },
     methods: {
+      next(){
+        if(this.$route.query && this.$route.query.show){
+          this.goPage('/patcaselist')
+        }else{
+          this.goPage('/showandsavecase?id=74')
+        }
+      },
       goPage(path) {
         let role = this.$route.query.role
         if (path === -1) {

+ 6 - 0
src/router/index.js

@@ -18,6 +18,7 @@ import PatInjectionList from '@/components/PatInjectionList'
 import PatRegister from '@/components/PatRegister'
 import PatCxsjLine from '@/components/PatCxsjLine'
 import PreTraitCase from '@/components/PreTraitCase'
+import ShowAndSaveCase from '@/components/ShowAndSaveCase'
 
 Vue.use(Router)
 
@@ -64,6 +65,11 @@ export default new Router({
       component: DiagCalcShow
     },
     {
+      path: '/showandsavecase',
+      name: '动力学检测展示',
+      component: ShowAndSaveCase
+    },
+    {
       path: '/solutionpkline',
       name: '预防治疗方案pk曲线',
       component: SolutionPkLine

+ 6 - 1
vue.config.js

@@ -6,7 +6,12 @@ module.exports = {
                 target: 'xjctest.baianxi.com',
                 changeOrigin: true
             }
+        },
+        overlay: {
+            warning: false,
+            errors: false
         }
     },
-    publicPath: '/'
+    publicPath: '/',
+    lintOnSave: false
 }