瀏覽代碼

标准病历(未完成)

zhangxc 5 年之前
父節點
當前提交
bb688c4c0f
共有 3 個文件被更改,包括 385 次插入1 次删除
  1. 379 0
      src/components/qualityControl/StandardRecord.vue
  2. 5 0
      src/routes.js
  3. 1 1
      vue.config.js

+ 379 - 0
src/components/qualityControl/StandardRecord.vue

@@ -0,0 +1,379 @@
+<template>
+    <div>
+        <crumbs title="标准病历维护">
+            <el-form :inline="true" class="demo-form-inline">
+              <el-form-item label="病人住院序号:">
+                    <el-input size="mini" v-model.trim="filter.moduleId" placeholder="病人住院序号" clearable></el-input>
+                </el-form-item>
+                 <el-form-item label="病人姓名:">
+                    <el-input size="mini" v-model.trim="filter.modeName" placeholder="病人姓名" clearable></el-input>
+                </el-form-item>
+                <el-form-item label="科室:">
+                     <el-select size="mini" v-model.trim="filter.modeId" @change="getValue"  placeholder="请选择科室" clearable>
+                        <el-option v-for="item in moduleList" :label="item.name" :value="item.val" :key="item.id" ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="出院日期:">
+                    <el-select size="mini" v-model.trim="filter.hospitalName" @change="getValue"  placeholder="所属医院" clearable>
+                        <el-option v-for="item in hospitalList" :label="item.name" :value="item.val" :key="item.id" ></el-option>
+                    </el-select>
+                </el-form-item>
+               
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <el-button size="mini" type="warning" @click="addTemp">新增病历</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                    type="index"
+                    :index="indexMethod"
+                    label="编号"
+                    width="60">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        label="所属医院"
+                        prop="id"
+                        >
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="name"
+                        label="病人住院序号"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="科室">
+                </el-table-column>
+                
+                <el-table-column
+                        :resizable = "false"
+                        prop="hospitalId"
+                        :formatter="hisFormatter"
+                        label="病人姓名">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="性别">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="年龄">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="入院日期">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="出院日期">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modeId"
+                        :formatter="moduleFormatter"
+                        label="加入时间">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="operate"
+                        label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyIndeptTag(scope.row, 'modify')" type="text" size="small">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button @click="modifyIndeptTag(scope.row, 'copy')" class="text" type="text" size="small">复制</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button @click="showDelDialog(scope.row)" class="delete" type="text" size="small">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+          <el-pagination  :current-page.sync="currentPage"
+                          @current-change="currentChange"
+                          background
+                          :page-size.sync="pageSize"
+                          :page-sizes="pageSizeArr"
+                           @size-change="handleSizeChange"
+                          :layout="pageLayout"
+                          :total="total">
+            </el-pagination>
+        </div>
+    </div>
+</template>
+
+<script>
+    import api from '@api/qualityControl.js';
+  import config from '@api/config.js';
+  import utils from '@api/utils.js'
+  export default {
+    name: 'StandardRecord',
+    data: function() {
+      return {
+        list: [],
+        hospitalList: [],
+        moduleList:[],
+        searched: false,
+        filter: {
+          modeName: '', //模板名称
+          moduleId:null, //模板Id
+          modeId: '',//所属模块
+          hospitalName: '', //所属医院
+        },
+        currentPage: 1,
+        pageSize: config.pageSize,
+        pageSizeArr:config.pageSizeArr,
+        pageLayout:config.pageLayout,
+        total: 0,
+      }
+    },
+    created() {
+      const _this=this;
+      setTimeout(function(){
+        _this.getAllTypes().then(()=>{
+          _this.getDataList()
+        })
+      },100);
+
+    },
+    watch: {
+      'filter': {
+        handler: function () {
+          this.searched = false;
+        },
+        deep: true
+      }
+    },
+    beforeRouteEnter(to, from, next) {
+      next(vm => {
+        //const pm = to.param;
+        Object.assign(vm, to.params);
+        vm.inCurrentPage=to.params.currentPage;
+      })
+    },
+    methods: {
+      moduleFormatter(row, column, cellValue){
+        const it = this.moduleList.find(item => item.val == cellValue);
+        return it?it.name:'';
+      },
+      hisFormatter(row, column, cellValue){
+        const it = this.hospitalList.find(item => item.val == cellValue);
+        return it?it.name:'';
+      },
+      getAllTypes(){
+          if(localStorage.getItem("qcModuleTypes")){
+              this.hospitalList = JSON.parse(localStorage.getItem("qcHospitalTypes"));
+              this.moduleList = JSON.parse(localStorage.getItem("qcModuleTypes"));
+              return new Promise(function(resolve, reject){
+                  resolve()
+              });
+          }
+          //获取枚举信息
+          return api.getQcTypes().then((res)=>{
+              if(res.data.code==="0"){
+                  const data = res.data.data;
+                  localStorage.setItem("qcFieldTypes",JSON.stringify(data[11]));
+                  localStorage.setItem("qcModuleTypes",JSON.stringify(data[12]));
+                  localStorage.setItem("qcHospitalTypes",JSON.stringify(data[13]));
+                  this.hospitalList = JSON.parse(localStorage.getItem("qcHospitalTypes"));
+                  this.moduleList = JSON.parse(localStorage.getItem("qcModuleTypes"));
+              }else{
+                  this.warning("获取枚举信息失败");
+              }
+          });
+      },
+      handleSizeChange(val){
+        this.pageSize = val;
+        this.currentPage = utils.getCurrentPage(this.currentPage, this.total, this.pageSize);
+        this.getDataList();
+      },
+      getValue(val) {
+        console.log('changeVal', val, this.filter.tagAdscription)
+      },
+      getDataList(isTurnPage) {
+        const param = this.getFilterItems(isTurnPage);
+        this.searched = true;
+        const loading = this.$loading({
+            lock: true,
+            text: 'Loading',
+            spinner: 'el-icon-loading',
+            background: 'rgba(0, 0, 0, 0.7)'
+        });
+        api.getQCTemplist(param).then((res) => {
+          loading.close()
+          let list = res.data.data.records
+          /*for(let i = 0; i < list.length; i++){
+            list[i].hospitalId = this.hospitalList.find(item => item.val == list[i].hospitalId).name
+            list[i].modeId  = this.moduleList.find(item => item.val == list[i].modeId).name
+          }*/
+          this.list = list;
+          this.total = res.data.data.total;
+          if(this.inCurrentPage!==undefined){
+            this.currentPage=this.inCurrentPage;
+            this.inCurrentPage = undefined;
+          }
+        })
+      },
+      filterDatas() {
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      addTemp() {
+        const pam = this.searched ? {
+          currentPage: this.currentPage,
+          pageSize:this.pageSize,
+          filter: this.filter
+        } : {currentPage: this.currentPage,pageSize:this.pageSize};
+        this.$router.push({
+          name: 'AddQualityControlTemp',
+          params: pam
+        })
+      },
+      modifyIndeptTag(row, type) {
+        api.getQCTempDetail({moduleId:row.id}).then((res)=>{
+          const {code,data,msg} = res.data;
+          if(code=='0'){
+            const item = Object.assign({},row,data);
+            const pam = this.searched ? {
+              currentPage: this.currentPage,
+              filter: this.filter
+            } : {currentPage: this.currentPage};
+            if(type == 'modify') {
+              this.$router.push({name: 'AddQualityControlTemp', params: Object.assign(pam, {isEdit: true, data: item})});
+            } else if( type == 'copy') {
+              this.$router.push({name: 'AddQualityControlTemp', params: Object.assign(pam, {isCopy: true, data: item})});
+            } else {
+                return
+            }
+          }else{
+            this.$message({
+              message: msg,
+              type: 'warning'
+            });
+          }
+        });
+        //this.$router.push({name:'AddIndeptLabel',params:{isEdit:true,data:row}});
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        this.getDataList(true);
+        // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+        //     this.list = this.cacheData[next];
+        // } else {
+        //     this.getDataList();
+        // }
+      },
+      clearFilter(){
+        this.filter={
+          name: "",
+          modeId: "",
+          hospitalName: "",
+          id:"",
+
+        };
+      },
+      getFilterItems(isTurnPage) {
+        //翻页时筛选条件没点确定则清空
+        if(isTurnPage&&!this.searched){
+          this.clearFilter();
+        };
+        const {modeName, modeId, hospitalName,moduleId} = this.filter
+        const param = {
+          name: modeName,
+          current: this.inCurrentPage||this.currentPage,
+          size: this.pageSize,
+          modeId: modeId,
+          id:moduleId,
+          hospitalId: hospitalName
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      getTagType(val) {
+        return val
+      },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          dangerouslyUseHTMLString: true,
+          message:'<p>'+msg+'</p>',
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(row){
+        const param = {
+          "ids": row.id,
+        }
+        this.showConfirmDialog('是否删除该模板?',()=>{
+          api.delQCTemp(param).then((res)=>{
+            if(res.data.code=='0'){
+              if(!this.searched){
+                //未点确认时清空搜索条件
+                this.clearFilter();
+              }
+              if(this.list.length==1){
+                //当前在最后一页且只有一条数据时,删除后跳到前一页
+                this.currentPage = this.currentPage===1?1:this.currentPage-1;
+              }
+              this.getDataList();
+              this.warning(res.data.msg || '操作成功','success');
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }
+    }
+  }
+</script>
+
+
+<style lang="less">
+  @import "../../less/admin.less";
+    .delete{
+        color: red
+    }
+    .delete:hover {
+        color: red;
+    }
+    .el-select .el-input .el-icon-arrow-up{
+        display: inline-block!important;
+    }
+    .el-select .el-input .el-icon-circle-close{
+        float:left;
+    }
+  .el-pagination__sizes{
+      margin-right: 20px;
+    .el-input .el-input__inner{
+        height: 28px;
+        line-height: 28px;
+    }
+  }
+</style>

+ 5 - 0
src/routes.js

@@ -131,6 +131,8 @@ import QualityControlTemp from '@components/qualityControl/QualityControlTemp.vu
 import AddQualityControlTemp from '@components/qualityControl/AddQualityControlTemp.vue';
 import QCTypeMang from '@components/qualityControl/QCTypeMang.vue';
 import AddQcType from '@components/qualityControl/AddQcType.vue';
+import StandardRecord from '@components/qualityControl/StandardRecord.vue';
+
 //病历录入
 import RecordInput from '@components/recordInput/RecordList.vue';
 import AddRecordInput from '@components/recordInput/AddRecord.vue';
@@ -332,6 +334,9 @@ export default [
       {path: 'LT-BLZK-PLGLBLTM',name:'ManageItemBatch', component: ManageItemBatch},//病例条目
       {path:'LT-ZKYMSJWH-ZKLXWH',name:'QCTypeMang',component: QCTypeMang},  //质控类型
       {path:'LT-ZKYMSJWH-TJZKLXWH',name:'AddQcType',component: AddQcType},  //添加质控类型
+      {path:'LT-ZKYMSJWH-BZBL',name:'StandardRecord',component: StandardRecord},  //添加质控类型
+
+      
 
     ]
   }

+ 1 - 1
vue.config.js

@@ -1,6 +1,6 @@
 const path = require('path');
 // const proxy_path = 'http://192.168.2.236:80';
-const proxy_path = 'http://192.168.2.241:88';
+const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
 // const proxy_path = 'http://192.168.3.117:5050';//周铁刚