Browse Source

规则配置

赵殿龙 1 year ago
parent
commit
0e1eb23eef
3 changed files with 140 additions and 43 deletions
  1. 19 0
      src/api/rule/config.js
  2. 106 19
      src/views/rule/config/components/SearchBox.vue
  3. 15 24
      src/views/rule/config/index.vue

+ 19 - 0
src/api/rule/config.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+// 质控项目的下拉数据
+export function get_select_object(data) {
+  return request({
+    url: '/quality_rule/get_select_object',
+    method: 'get',
+    params: data
+  })
+}
+
+// 质控科室的下拉
+export function get_select_department(data) {
+  return request({
+    url: '/quality_rule/get_select_department',
+    method: 'get',
+    params: data
+  })
+}

+ 106 - 19
src/views/rule/config/components/SearchBox.vue

@@ -1,47 +1,103 @@
 <template>
-  <div class="app-container">
+  <div>
     <el-form :inline="true" :model="data" class="demo-form-inline">
       <el-form-item label="">
-        <el-select v-model="data.sslb" filterable clearable placeholder="病历类型">
+        <el-select v-model="data.sslb" filterable clearable placeholder="病历类型" style="width: 198px;">
           <el-option label="介入治疗" value="介入治疗" />
         </el-select>
       </el-form-item>
       <el-form-item label="">
-        <el-select v-model="data.sslb" filterable clearable placeholder="质控项目">
-          <el-option label="介入治疗" value="介入治疗" />
-          <el-option label="手术" value="手术" />
-          <el-option label="治疗性操作" value="治疗性操作" />
-          <el-option label="诊断性操作" value="诊断性操作" />
+        <el-cascader
+          v-model="data.object"
+          :options="objects"
+          :props="{
+            expandTrigger: 'hover',
+            value: 'field_name',
+            label: 'field_name',
+            children: 'child'
+          }"
+          clearable
+          filterable
+          :show-all-levels="false"
+          placeholder="质控项目"
+          style="width: 198px;"
+        />
+      </el-form-item>
+      <el-form-item label="">
+        <el-select
+          v-model="data.department"
+          multiple
+          collapse-tags
+          placeholder="质控科室"
+          style="width: 198px;"
+        >
+          <el-option
+            v-for="item in departments"
+            :key="item.id"
+            :label="item.field_name"
+            :value="item.dep_id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="">
+        <el-select v-model="data.is_not" filterable clearable placeholder="单项否决" style="width: 198px;">
+          <el-option label="是" :value="1" />
+          <el-option label="否" :value="0" />
         </el-select>
       </el-form-item>
       <el-form-item label="">
-        <el-input v-model="data.ssbm" clearable placeholder="手术操作编码" />
+        <el-select v-model="data.status" filterable clearable placeholder="质控状态" style="width: 198px;">
+          <el-option label="开启" :value="1" />
+          <el-option label="禁用" :value="2" />
+        </el-select>
       </el-form-item>
       <el-form-item label="">
-        <el-input v-model="data.ssmc" clearable placeholder="手术操作名称" />
+        <el-select v-model="data.type" filterable clearable placeholder="质控类型" style="width: 198px;">
+          <el-option label="时效性" value="时效性" />
+          <el-option label="完整性" value="完整性" />
+          <el-option label="逻辑性" value="逻辑性" />
+          <el-option label="内涵性" value="内涵性" />
+          <el-option label="专病规则" value="专病规则" />
+          <el-option label="专科规则" value="专科规则" />
+          <el-option label="检查规则" value="检查规则" />
+          <el-option label="检验规则" value="检验规则" />
+          <el-option label="其他规则" value="其他规则" />
+        </el-select>
       </el-form-item>
       <el-form-item label="">
-        <el-select v-model="data.sslb" filterable clearable placeholder="操作类型">
-          <el-option label="介入治疗" value="介入治疗" />
-          <el-option label="手术" value="手术" />
-          <el-option label="治疗性操作" value="治疗性操作" />
-          <el-option label="诊断性操作" value="诊断性操作" />
+        <el-select v-model="data.changjing" multiple collapse-tags filterable clearable placeholder="质控场景" style="width: 198px;">
+          <el-option label="医生端" value="医生端" />
+          <el-option label="编码员" value="编码员" />
+          <el-option label="质控员" value="质控员" />
+          <el-option label="国考" value="国考" />
+          <el-option label="卫统" value="卫统" />
+          <el-option label="医保" value="医保" />
         </el-select>
       </el-form-item>
       <el-form-item label="">
-        <el-select v-model="data.lrxx" filterable clearable placeholder="录入选项">
-          <el-option label="选择性" value="选择性" />
-          <el-option label="必选" value="必选" />
+        <el-select v-model="data.changjing" multiple collapse-tags filterable clearable placeholder="风险等级" style="width: 198px;">
+          <el-option label="高风险" value="高风险" />
+          <el-option label="中风险" value="中风险" />
+          <el-option label="低风险" value="低风险" />
         </el-select>
       </el-form-item>
+      <el-form-item label="">
+        <el-input-number v-model="data.score" :precision="1" :step="0.5" step-strictly :max="100" :min="0" controls-position="right" placeholder="扣分分值" style="width: 198px;" />
+      </el-form-item>
+      <el-form-item label="">
+        <el-input v-model="data.description" placeholder="错误描述" clearable style="width: 198px;" />
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="onSubmit">查询</el-button>
+        <el-button @click="onReset">重置</el-button>
       </el-form-item>
     </el-form>
   </div>
 </template>
 
 <script>
+import { get_select_object, get_select_department } from '@/api/rule/config'
+
 export default {
   props: {
     data: {
@@ -54,21 +110,52 @@ export default {
           type: [],
           is_not: '',
           description: '',
-          score: '',
+          score: undefined,
           error_level: '',
           status: ''
         }
       }
     }
   },
+  data() {
+    return {
+      objects: [],
+      departments: []
+    }
+  },
+  created() {
+    this.getObjectData()
+    this.getDepartmentData()
+  },
   methods: {
+    // 质控项目
+    getObjectData() {
+      get_select_object().then(res => {
+        const { p } = res
+        this.objects = Array.isArray(p) ? p : []
+      })
+    },
+    // 质控科室
+    getDepartmentData() {
+      get_select_department().then(res => {
+        const { p } = res
+        this.departments = Array.isArray(p) ? p : []
+      })
+    },
     onSubmit() {
       this.$emit('search')
+    },
+    onReset() {
+      this.$emit('rest')
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-
+::v-deep .el-input-number{
+  .el-input__inner{
+    text-align: left;
+  }
+}
 </style>

+ 15 - 24
src/views/rule/config/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
-    <SearchBoxVue :data="searchData" @search="handleSearch" />
-    <TableBoxVue :loading="loading" :data="tableData" style="margin-top: -40px;" @refresh="handleRefresh" @export="handleExport" />
+    <SearchBoxVue :data="searchData" @search="handleSearch" @reset="handleReset" />
+    <TableBoxVue :loading="loading" :data="tableData" @refresh="handleRefresh" />
     <pagination
       :auto-scroll="false"
       :total="paginationData.total"
@@ -16,7 +16,6 @@
 import SearchBoxVue from './components/SearchBox.vue'
 import TableBoxVue from './components/TableBox.vue'
 import { getSsczList } from '@/api/dict'
-import { ssczExport } from '@/api/excel'
 
 export default {
   components: {
@@ -33,7 +32,7 @@ export default {
         type: [],
         is_not: '',
         description: '',
-        score: '',
+        score: undefined,
         error_level: '',
         status: ''
       },
@@ -88,26 +87,18 @@ export default {
       this.paginationData.page = 1
       this.getList()
     },
-    handleExport() {
-      ssczExport(this.searchData).then((res) => {
-        const content = res.data // 后台返回二进制数据
-        const blob = new Blob([content])
-        const fileName = `手术类别.csv`
-        if ('download' in document.createElement('a')) {
-          // 非IE下载
-          const elink = document.createElement('a')
-          elink.download = fileName
-          elink.style.display = 'none'
-          elink.href = URL.createObjectURL(blob)
-          document.body.appendChild(elink)
-          elink.click()
-          URL.revokeObjectURL(elink.href) // 释放URL 对象
-          document.body.removeChild(elink)
-        } else {
-          // IE10+下载
-          navigator.msSaveBlob(blob, fileName)
-        }
-      })
+    handleReset() {
+      this.searchData = {
+        changjing: '',
+        department: [],
+        object: '',
+        type: [],
+        is_not: '',
+        description: '',
+        score: undefined,
+        error_level: '',
+        status: ''
+      }
     }
   }
 }