소스 검색

Merge remote-tracking branch 'origin/master'

zz 3 달 전
부모
커밋
8cd2377471

+ 18 - 2
src/api/qc.js

@@ -12,6 +12,22 @@ export function getBlZkList(data) {
   })
 }
 
+export function getQualityControlStatus(data) {
+  return request({
+    url: '/getQualityControlStatus',
+    method: 'post',
+    params: data
+  })
+}
+
+export function updateQualityControl(data) {
+  return request({
+    url: '/updateQualityControl',
+    method: 'post',
+    params: data
+  })
+}
+
 export function applyForReview(data) {
   return request({
     url: '/applyForReview',
@@ -54,10 +70,10 @@ export function getBlMenuList(data) {
 }
 // 病案室-病案详情-左侧菜单
 export function getTreeList(data) {
-  return request3({
+  return request({
     url: '/getTree',
     method: 'post',
-    data: data
+    data
   })
 }
 

+ 17 - 17
src/router/index.js

@@ -803,23 +803,23 @@ export const constantRoutes = [
 
   //   ]
   // },
-  {
-    path: '/caseAnalysis',
-    component: Layout,
-     redirect: '/caseAnalysis',
-    keepAlive: 1,
-    canMultipleOpen: true,
-    meta: { title: '病案分析' },
-    children: [
-      {
-        path: 'caseAnalysis',
-        name: 'caseAnalysis',
-        component: () => import('@/views/caseAnalysis/caseAnalysis.vue'),
-        meta: { title: '病案分析' }
-      },
-
-    ]
-  },
+  // {
+  //   path: '/caseAnalysis',
+  //   component: Layout,
+  //    redirect: '/caseAnalysis',
+  //   keepAlive: 1,
+  //   canMultipleOpen: true,
+  //   meta: { title: '病案分析' },
+  //   children: [
+  //     {
+  //       path: 'caseAnalysis',
+  //       name: 'caseAnalysis',
+  //       component: () => import('@/views/caseAnalysis/caseAnalysis.vue'),
+  //       meta: { title: '病案分析' }
+  //     },
+  //
+  //   ]
+  // },
   {
     path: '/whitelist',
     component: AppMain,

+ 2 - 5
src/views/recordsRoom/qc/caseViews.vue

@@ -474,11 +474,8 @@ export default {
       const pramse = {
         id: this.valData
       }
-      getTreeList(pramse).then(res => {
+      this.$axios.post('/getTree', pramse).then(res => {
         that.treeList = res.data
-        // const { p } = res
-        // 初始化blbh
-        // that.is_active_blbh = p[0].blbh
       })
     },
     clickTree(b, n, item) {
@@ -519,7 +516,7 @@ export default {
         if (this.$route.query.status) {
           params.is_tm = 1
         }
-        getAllCase(params).then(res => {
+        this.$axios.post('/getAllCase', params).then(res => {
           that.text = res.data
           that.dataObj = res.data
           that.reload()

+ 47 - 14
src/views/recordsRoom/qc/components/CreateControlResultDialog.vue

@@ -91,6 +91,7 @@
               </el-autocomplete>
             </el-form-item>
           </el-col>
+
           <el-col :span="8">
             <el-form-item label="质控项目" prop="title">
               <el-autocomplete
@@ -122,6 +123,15 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="0">
+          <el-col :span="12">
+            <el-form-item label="质控类别" prop="cate">
+              <el-select v-model="ruleForm.cate" clearable filterable @change="handleRuleIdChange" placeholder="请选择">
+                <el-option v-for="item of caseCates" :key="item.id" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row :gutter="0">
           <el-col :span="24">
             <el-form-item label="质控内容" prop="basis">
@@ -145,7 +155,6 @@
 
 <script>
 import { getRuleData, getBlInfo, addCaseQuality } from '@/api/qc'
-import { getDeportmentList } from '@/api/admin'
 
 export default {
   props: {
@@ -172,6 +181,7 @@ export default {
         zgjb: []
       },
       deportments: [],
+      caseCates: [],
       ruleForm: {
         AAA28: '',
         ZYH: '',
@@ -188,7 +198,8 @@ export default {
         basis: '',
         level: '',
         ZGQX: '',
-        score: undefined
+        score: undefined,
+        cate: 1
       },
       rules: {
         AAA28: [
@@ -200,6 +211,7 @@ export default {
         ZKKS: [
           { required: true, message: '请输入', trigger: 'blur' }
         ],
+        
         JSR: [
           { required: true, message: '请输入', trigger: 'blur' }
         ],
@@ -209,6 +221,9 @@ export default {
         ZGJB: [
           { required: true, message: '请选择', trigger: 'blur' }
         ],
+        cate: [
+          { required: true, message: '请选择', trigger: 'blur' }
+        ],
         category: [
           { required: true, message: '请选择', trigger: 'change' }
         ],
@@ -234,6 +249,7 @@ export default {
     this.getRuleData()
     this.getBlInfo()
     this.getDeportmentList()
+    this.getCaseCateList()
     this.$set(this.ruleForm, 'basis', this.data.text)
   },
   methods: {
@@ -285,13 +301,13 @@ export default {
     // 获取规则数据
     getRuleData() {
       getRuleData().then(res => {
-        this.$set(this, 'selectData', res.p)
+        this.$set(this, 'selectData', res.data)
       })
     },
     // 获取病历相关信息
     getBlInfo() {
       getBlInfo({ blbh: this.data.blbh }).then(res => {
-        const { AAA28, JSKS, JSR, ZYH } = res.p
+        const { AAA28, JSKS, JSR, ZYH } = res.data
         this.$set(this.ruleForm, 'AAA28', AAA28)
         this.$set(this.ruleForm, 'ZYH', ZYH)
         this.$set(this.ruleForm, 'JSKS', JSKS)
@@ -311,18 +327,33 @@ export default {
         this.$set(this.ruleForm, 'title', title)
       }
     },
+
     // 部门
     getDeportmentList() {
-      getDeportmentList().then(res => {
-        const { p } = res
-        if (Object.keys(p.list).length) {
-          for (const key in p.list) {
+      this.$axios.get('/user/depDropDown').then(res => {
+        const { data } = res
+        if (data.length) {
+          data.forEach(ele => {
             this.deportments.push({
-              id: key,
-              name: p.list[key]
+              id: ele.dep_id,
+              name: ele.name
             })
-          }
+          }); 
+        }
+      }).catch(error => {
+        console.log(error)
+      })
+    },
+    // 类别
+    getCaseCateList() {
+      this.$axios.post('/bl_zk/getCaseCate').then(res => {
+        const { data } = res
+        
+        if (data.length) {
+          this.caseCates = data 
         }
+      }).catch(error => {
+        console.log(error)
       })
     },
     // 提交
@@ -344,7 +375,8 @@ export default {
             basis,
             level,
             ZGQX,
-            score
+            score,
+            cate
           } = this.ruleForm
           const params = {
             ZYH,
@@ -361,7 +393,8 @@ export default {
             basis,
             level,
             ZGQX: ZGQX/1000,
-            score
+            score,
+            cate
           }
           this.loading=true
           addCaseQuality(params).then(res => {
@@ -385,4 +418,4 @@ export default {
 .demo-ruleForm {
  width: 95%;
 }
-</style>
+</style>

+ 25 - 1
src/views/recordsRoom/qc/components/TableBox.vue

@@ -2,6 +2,13 @@
   <div class="app-container">
     <el-button type="primary" @click="toExamine">批量审核</el-button>
     <el-button @click="onRevoke">撤销审核</el-button>
+    <el-switch
+      v-model="status"
+      style="margin-left: 20px;"
+      :active-value="1"
+      :inactive-value="0"
+      inactive-text="是否自动质控" @change="updateQualityControl">
+    </el-switch>
     <el-table v-loading="loading" :data="data" style="width: 100%" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55"></el-table-column>
       <el-table-column type="index" label="序号" width="80" />
@@ -47,7 +54,7 @@
 </template>
 
 <script>
-import { applyForReview, getBlZkList } from '@/api/qc';
+import { applyForReview, getBlZkList, updateQualityControl } from '@/api/qc';
 export default {
   props: {
     data: {
@@ -63,6 +70,12 @@ export default {
         return false;
       },
     },
+    status: {
+      type: Number,
+      default() {
+        return false;
+      },
+    },
   },
   data() {
     return {
@@ -92,6 +105,17 @@ export default {
       this.multipleSelection = val;
     },
 
+    /**
+     * 更新开关状态
+     */
+    updateQualityControl() {
+      updateQualityControl({status: this.status}).then(res => {
+        this.$message.success(res.msg || '更新成功');
+      }).catch(error => {
+        console.log(error);
+      })
+    },
+
     /**
      * 批量审核
      */

+ 14 - 2
src/views/recordsRoom/qc/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <SearchBoxVue :data="searchData" @search="handleSearch" @reset="handleReset" />
-    <TableBoxVue :loading="loading" :data="tableData" style="margin-top: -40px;" />
+    <TableBoxVue :loading="loading" :data="tableData" :status="status" style="margin-top: -40px;" />
     <pagination
       :auto-scroll="false"
       :total="paginationData.total"
@@ -16,7 +16,7 @@
 import SearchBoxVue from '@/views/recordsRoom/qc/components/SearchBox.vue'
 import TableBoxVue from '@/views/recordsRoom/qc/components/TableBox.vue'
 import pagination from '@/components/Pagination/index2.vue'
-import { getBlZkList } from '@/api/qc'
+import { getBlZkList, getQualityControlStatus } from '@/api/qc'
 
 export default {
   components: {
@@ -27,6 +27,7 @@ export default {
   data() {
     return {
       loading: false,
+      status: 0,
       searchData: {
         BLZT: '',
         level: '',
@@ -50,6 +51,7 @@ export default {
   },
   created() {
     this.getList()
+    this.getQualityControlStatus()
   },
   methods: {
     getList() {
@@ -96,6 +98,16 @@ export default {
         this.loading = false
       })
     },
+    /**
+     * 获取开关状态
+     */
+    getQualityControlStatus() {
+      getQualityControlStatus().then(res => {
+        this.status = Number(res.data.status);
+      }).catch(error => {
+        console.log(error);
+      })
+    },
     handlePagination(param) {
       this.paginationData.page = param.page
       this.paginationData.limit = param.limit

+ 1 - 1
src/views/recordsRoom/qc/review.vue

@@ -6,7 +6,7 @@
       <el-table-column type="index" label="序号" width="80" />
       <el-table-column prop="" label="审核状态" width="100" show-overflow-tooltip>
         <template slot-scope="scope">
-          <el-button type="text" v-if="scope.row.to_examine_id == 0" @click="review(scope.row.ZYH)">未审核</el-button>
+          <el-button type="text" style="color: red" v-if="scope.row.to_examine_id == 0" @click="review(scope.row.ZYH)">未审核</el-button>
           <el-button type="text" v-else>已通过</el-button>
         </template>
       </el-table-column>

+ 35 - 2
src/views/user/list/index.vue

@@ -159,7 +159,7 @@
     />
     </div>
     <el-dialog v-el-drag-dialog :title="textMap[dialogStatus]" :visible.sync="dialogVisible" :close-on-click-modal="false" width="40%">
-      <el-form ref="alertForm" :model="alertForm" label-position="right" label-width="80px" :rules="rules">
+      <el-form ref="alertForm" :model="alertForm" label-position="right" label-width="100px" :rules="rules">
         <el-form-item label="工号" prop="name">
           <el-input v-model="alertForm.name" placeholder="工号" />
         </el-form-item>
@@ -184,11 +184,13 @@
         </el-form-item>
         <el-form-item label="科室" prop="dep_name">
           <el-select change="changeDep" v-model="alertForm.dep_id" multiple filterable clearable placeholder="请选择">
+            <el-option label='全选' value='全选' @click.native='selectAll'></el-option>
             <el-option v-for="item of deportments" :key="item.dep_id" :label="item.name" :value="item.dep_id" />
           </el-select>
         </el-form-item>
         <el-form-item label="病区" prop="w_name">
           <el-select change="changeDep" v-model="alertForm.w_id" multiple filterable clearable placeholder="请选择">
+            <el-option label='全选' value='全选' @click.native='selectAllw'></el-option>
             <el-option v-for="item of deportments" :key="item.dep_id" :label="item.name" :value="item.dep_id" />
           </el-select>
         </el-form-item>
@@ -219,6 +221,14 @@
             <el-option v-for="item of groupList" :key="item.id" :label="item.name" :value="item.id" />
           </el-select>
         </el-form-item>
+
+        <el-form-item label="自动审核人">
+          <el-radio-group v-model="alertForm.is_toexamine">
+            <el-radio :label="0">否</el-radio>
+            <el-radio :label="1">是</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
         <el-form-item label="手机号">
           <el-input v-model="alertForm.phone" placeholder="手机号" />
         </el-form-item>
@@ -361,7 +371,8 @@ export default {
         dep_name: '',
         w_id: [],
         s_id: '',
-        department_review: ''
+        department_review: '',
+        is_toexamine: 0,
         // role:'',
         //role_name:''//权限
       },
@@ -393,6 +404,26 @@ export default {
     // this.getRoleDropDown()
   },
   methods: {
+    selectAll() {
+      if (this.alertForm.dep_id.length <= this.deportments.length) {
+        this.alertForm.dep_id = []
+        this.deportments.map((item) => {
+          this.alertForm.dep_id.push(item.dep_id)
+        })
+      } else {
+        this.alertForm.dep_id = []
+      }
+    },
+    selectAllw() {
+      if (this.alertForm.w_id.length <= this.deportments.length) {
+        this.alertForm.w_id = []
+        this.deportments.map((item) => {
+          this.alertForm.w_id.push(item.dep_id)
+        })
+      } else {
+        this.alertForm.w_id = []
+      }
+    },
     getDeportmentList() {
       this.$axios.get('/user/depDropDown').then(res => {
         const { data } = res
@@ -487,6 +518,8 @@ export default {
         }
       this.alertForm.phone = data.phone
       this.alertForm.realname = data.realname
+      this.alertForm.department_review = data.department_review
+      this.alertForm.is_toexamine = data.is_toexamine
       this.dialogStatus = 'update'
       this.dialogVisible = true
       this.dialogType = 0