Browse Source

Merge remote-tracking branch 'origin/AIControl' into AIControl

zhouna 5 years atrás
parent
commit
98e3316943

+ 12 - 3
src/components/recordInput/AddRecordItem.vue

@@ -5,7 +5,7 @@
             <div class="content">
             <div class="content">
                 <el-form :rules="rules" ref="form" :label-position="labelPosition" label-width="125px" class="add-record-form" :model="form">
                 <el-form :rules="rules" ref="form" :label-position="labelPosition" label-width="125px" class="add-record-form" :model="form">
                     <el-form-item label="条目名称:" prop="itemName">
                     <el-form-item label="条目名称:" prop="itemName">
-                      <el-input v-model="form.itemName" maxlength="200" placeholder="请输入条目名称"></el-input>
+                      <el-input v-model.trim="form.itemName" maxlength="200" placeholder="请输入条目名称"></el-input>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="所属模块:" prop="brbaxx">
                     <el-form-item label="所属模块:" prop="brbaxx">
                         <el-select v-model="form.casesId"
                         <el-select v-model="form.casesId"
@@ -39,7 +39,7 @@
                         </el-select>
                         </el-select>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="备注:" prop="remark">
                     <el-form-item label="备注:" prop="remark">
-                         <el-input v-model="form.remark" maxlength="1000" placeholder="请输入备注"></el-input>
+                         <el-input v-model="form.remark" maxlength="200" placeholder="请输入备注"></el-input>
                     </el-form-item>
                     </el-form-item>
                      <el-form-item label="前置条件:" prop="remark" class="procent">
                      <el-form-item label="前置条件:" prop="remark" class="procent">
                          <el-input v-model="form.precond" maxlength="200" placeholder="请输入前置条件"></el-input>
                          <el-input v-model="form.precond" maxlength="200" placeholder="请输入前置条件"></el-input>
@@ -68,7 +68,7 @@
                               label="扣分值"
                               label="扣分值"
                               width="120">
                               width="120">
                                  <template slot-scope="scope">
                                  <template slot-scope="scope">
-                                  <el-input  class="scoreInp" v-model.trim="scope.row.value"  oninput="if(value.length>5)value=value.slice(0,5)" type="number" placeholder=""></el-input>
+                                  <el-input  class="scoreInp" v-model.trim="scope.row.value"  oninput="if(value.length>5)value=value.slice(0,5)" type="number"   placeholder=""></el-input>
                                  </template>
                                  </template>
                             </el-table-column>
                             </el-table-column>
                             <el-table-column
                             <el-table-column
@@ -297,6 +297,15 @@
               this.canSave = true
               this.canSave = true
               return
               return
             }
             }
+            var reg = new RegExp(/^\d+(\.\d)?$/);
+            if(!reg.test(item.value)){
+               this.$message({
+                message:'扣分值请输入≥0的数字,最多保留小数点后1位',
+                type:'warning',
+                showClose: true
+              });
+              return
+            }
             if(item.tipMsg ===''){
             if(item.tipMsg ===''){
               this.$message({
               this.$message({
                 message:"请填写所选医院提示信息",
                 message:"请填写所选医院提示信息",

+ 96 - 6
src/components/recordInput/ManageItemBatch.vue

@@ -91,7 +91,7 @@
                                       label="扣分值"
                                       label="扣分值"
                                       width="120">
                                       width="120">
                                         <template slot-scope="scope">
                                         <template slot-scope="scope">
-                                          <el-input  class="scoreInp" v-model.trim="scope.row.score" placeholder=""></el-input>
+                                          <el-input  class="scoreInp" oninput="if(value.length>5)value=value.slice(0,5)" v-model.trim="scope.row.score" type="number" placeholder=""></el-input>
                                         </template>
                                         </template>
                                     </el-table-column>
                                     </el-table-column>
                                     <el-table-column
                                     <el-table-column
@@ -109,7 +109,8 @@
                                     width="120"
                                     width="120"
                                     show-overflow-tooltip>
                                     show-overflow-tooltip>
                                     <template slot-scope="scope">
                                     <template slot-scope="scope">
-                                        <el-checkbox v-model="scope.row.isUsed" :checked="scope.row.isUsed == '1'" :disabled="getIsUsed(scope.row)" true-label="1" false-label="0"></el-checkbox>
+                                        <span class="checkUsed" :class="{'active': scope.row.isUsed == 1,'disabled': getDisabled(scope.row,item.remark)}" @click="checkUsed(scope.row,index,scope.$index,item.remark)"></span>
+                                        <!-- <el-checkbox v-model="scope.row.isUsed" :value ="scope.row.isUsed" :disabled="getIsUsed(scope.row)" true-label="1" false-label="0">{{scope.row.isUsed}}</el-checkbox> -->
                                       </template>
                                       </template>
                                   </el-table-column>
                                   </el-table-column>
                                   </el-table>
                                   </el-table>
@@ -145,7 +146,7 @@
         sexType:[],
         sexType:[],
         bloodType:[],
         bloodType:[],
         rhType:[],
         rhType:[],
-        title:'批量管理',
+        title:'病历条目-批量管理',
         hospitalId:'',
         hospitalId:'',
         tableData:[],
         tableData:[],
         checkAllMap:{
         checkAllMap:{
@@ -201,6 +202,21 @@
         })
         })
         
         
       },
       },
+      checkUsed(row,index,ii,remark){
+        if(this.getDisabled(row,remark)){
+          return
+        }
+        let isUsed = this.caseLIst[index].qcCasesEntry[ii].isUsed
+        const caseLIstCopy = JSON.parse(JSON.stringify(this.caseLIst))
+        if(isUsed == 1){
+          caseLIstCopy[index].qcCasesEntry[ii].isUsed = 0
+        }else{
+          caseLIstCopy[index].qcCasesEntry[ii].isUsed = 1
+        }
+        this.caseLIst = caseLIstCopy
+        const values = Object.values(this.checkAllMap)
+        this.toggleSelection(values)
+      },
       handleSelectionChange(val,remark) {
       handleSelectionChange(val,remark) {
         this.checkAllMap[remark] = val;
         this.checkAllMap[remark] = val;
       },
       },
@@ -211,6 +227,10 @@
         //    return true
         //    return true
         // }
         // }
         
         
+      },
+      getDisabled(row,remark){
+        const hasChecked = this.checkAllMap[remark].findIndex(item => item.id === row.id) === -1
+        return hasChecked
       },
       },
        handleChange(val) {
        handleChange(val) {
       },
       },
@@ -225,9 +245,14 @@
         return api.getRecordInpModule({}).then((res)=>{
         return api.getRecordInpModule({}).then((res)=>{
           const result = res.data;
           const result = res.data;
           if(result.code==0){
           if(result.code==0){
-            let  caseLIst = result.data
-          
-            this.caseLIst = caseLIst  //提醒每项加分值和备注
+            let  caseLIstCopy = result.data
+            for(let i = 0; i < caseLIstCopy.length; i++){
+              for(let j = 0; j < caseLIstCopy[i].qcCasesEntry.length; j++){
+                caseLIstCopy[i].qcCasesEntry[j].isUsed = 0
+              }
+            }
+
+            this.caseLIst = caseLIstCopy  //提醒每项加分值和备注
 
 
              const checkAllMap = {}
              const checkAllMap = {}
             for(let i = 0; i < this.caseLIst.length; i++){
             for(let i = 0; i < this.caseLIst.length; i++){
@@ -328,6 +353,15 @@
               });
               });
               return
               return
             }
             }
+            var reg = new RegExp(/^\d+(\.\d)?$/);
+            if(!reg.test(value.score)){
+               this.$message({
+                message:'扣分值请输入≥0的数字,最多保留小数点后1位',
+                type:'warning',
+                showClose: true
+              });
+              return
+            }
             let item = {
             let item = {
               "casesEntryId": value.id,
               "casesEntryId": value.id,
               "creator": "0",
               "creator": "0",
@@ -456,6 +490,62 @@
         .oper{
         .oper{
             text-align: right;
             text-align: right;
         }
         }
+        .checkUsed{
+          cursor: pointer;
+          position: relative;
+          // color: #fff;
+          display: inline-block;
+          width: 14px;
+          height: 14px;
+          background:  #fff;
+          border: 1px solid #333;
+          box-sizing: border-box;
+          border-radius: 2px;
+          -webkit-transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
+          transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
+        }
+        .active{
+          position: relative;
+          // color: #fff;
+          display: inline-block;
+          width: 14px;
+          height: 14px;
+          background:  #48C5D7;
+          border: 1px solid #333;
+          box-sizing: border-box;
+          border-radius: 2px;
+          -webkit-transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
+          transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
+        }
+       
+        .active::after{
+            -webkit-box-sizing: content-box;
+            box-sizing: content-box;
+            content: "";
+            border: 1px solid #FFF;
+            border-left: 0;
+            border-top: 0;
+            height: 7px;
+            left: 4px;
+            position: absolute;
+            top: 1px;
+            -webkit-transform: rotate(45deg) scaleY(0);
+            transform: rotate(45deg) scaleY(0);
+            width: 3px;
+            -webkit-transition: -webkit-transform .15s ease-in .05s;
+            transition: -webkit-transform .15s ease-in .05s;
+            transition: transform .15s ease-in .05s;
+            transition: transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s;
+            transition: transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;
+            -webkit-transform-origin: center;
+            transform-origin: center;
+            -webkit-transform: rotate(45deg) scaleY(1);
+            transform: rotate(45deg) scaleY(1);
+        }
+        .disabled{
+          cursor: not-allowed;
+          background-color: #edf2fc;
+        }
         /deep/.el-table__row td:nth-child(3){
         /deep/.el-table__row td:nth-child(3){
           text-align: left;
           text-align: left;
         }
         }