Browse Source

问题缺陷详情

zdl 1 year ago
parent
commit
d225926d3e

+ 74 - 1
src/views/data/frontHome/components/SearchBox2.vue

@@ -73,6 +73,31 @@
       <el-form-item class="btn-group">
         <el-button type="primary" plain icon="el-icon-download" @click="onExport">导出数据</el-button>
         <el-button icon="el-icon-refresh" @click="onReset">重置条件</el-button>
+        <el-popover
+          placement="bottom-end"
+          title=""
+          trigger="click"
+          popper-class="table_code_popper"
+        >
+          <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox>
+          <el-checkbox-group v-model="showCodes" @change="handleChange">
+            <el-checkbox label="field">缺陷字段</el-checkbox>
+            <el-checkbox label="desc">缺陷描述</el-checkbox>
+            <el-checkbox label="AAA28">住院号码</el-checkbox>
+            <el-checkbox label="AAA01">姓名</el-checkbox>
+            <el-checkbox label="time">出院时间</el-checkbox>
+            <el-checkbox label="AAC11N">出院科室</el-checkbox>
+            <el-checkbox label="AEE08">编码员</el-checkbox>
+            <el-checkbox label="AEE04">住院医师</el-checkbox>
+            <el-checkbox label="ICD10_NAME">主要诊断名称</el-checkbox>
+            <el-checkbox label="ICD10_ID1">主要诊断编码</el-checkbox>
+            <el-checkbox label="ICD9_NAME">主要手术名称</el-checkbox>
+            <el-checkbox label="ICD9_ID1">主要手术编码</el-checkbox>
+            <el-checkbox label="level">缺陷分级</el-checkbox>
+            <el-checkbox label="type">缺陷归类</el-checkbox>
+          </el-checkbox-group>
+          <el-button slot="reference" icon="el-icon-setting" style="margin-left: 10px;"></el-button>
+        </el-popover>
       </el-form-item>
     </el-form>
   </div>
@@ -86,6 +111,8 @@ export default {
       default() {
         return {
           AAA28: '',
+          AAA01: '',
+          AAC11N: '',
           dep_id: '',
           start_time: '',
           end_time: '',
@@ -100,11 +127,37 @@ export default {
           ICD9_ID1: ''
         }
       }
+    },
+    codes: {
+      type: Array,
+      default() {
+        return []
+      }
     }
   },
   data() {
+    const defaultCodes = [
+      'field',
+      'desc',
+      'AAA28',
+      'AAA01',
+      'time',
+      'AAC11N',
+      'AEE08',
+      'AEE04',
+      'type',
+      'level',
+      'ICD10_NAME',
+      'ICD10_ID1',
+      'ICD9_NAME',
+      'ICD9_ID1'
+    ]
     return {
       showMore: false,
+      showCodes: [],
+      checkAll: true,
+      isIndeterminate: false,
+      defaultCodes,
       pickerOptions1: {
         disabledDate: (time) => {
           if (this.data.end_time) {
@@ -123,13 +176,25 @@ export default {
           }
         }
       },
-      selectData:  {},
+      selectData:  {}
     }
   },
   created() {
     this.getSelectData()
+    this.showCodes = JSON.parse(JSON.stringify(this.codes))
   },
   methods: {
+    handleCheckAllChange(val) {
+      this.showCodes = val ? this.defaultCodes : []
+      this.isIndeterminate = false
+      this.$emit('codesChange', this.showCodes)
+    },
+    // 展示字段发生变化
+    handleChange(val) {
+      const checkedCount = val.length
+      this.checkAll = checkedCount === this.defaultCodes.length
+      this.$emit('codesChange', val)
+    },
     getSelectData() {
       this.$axios.post('/home_quality/getErrorSerachWhere').then(res => {
         this.selectData = res.data
@@ -163,3 +228,11 @@ export default {
   bottom: -22px;
 }
 </style>
+<style lang="scss">
+.table_code_popper {
+  .el-checkbox {
+    display: block;
+    line-height: 26px;
+  }
+}
+</style>

+ 88 - 11
src/views/data/frontHome/components/TableBox2.vue

@@ -9,34 +9,105 @@
         type="index"
         label="序号"
         align="center"
-        width="120">
+        width="80">
       </el-table-column>
       <el-table-column
+        v-if="codes.includes('field')"
         prop="field"
         label="缺陷字段"
-        width="200">
+        width="160"
+        align="center">
       </el-table-column>
       <el-table-column
+        v-if="codes.includes('desc')"
         prop="desc"
-        label="缺陷描述">
+        label="缺陷描述"
+        width="160"
+        align="center">
       </el-table-column>
       <el-table-column
-        prop=""
-        label="缺陷数量"
-        width="200">
-        <template slot-scope="scope">
-          <span class="link">{{ scope.row.count }}</span>
-        </template>
+        v-if="codes.includes('AAA28')"
+        prop="AAA28"
+        label="住院号码"
+        width="160"
+        align="center">
       </el-table-column>
       <el-table-column
+        v-if="codes.includes('AAA01')"
+        prop="AAA01"
+        label="姓名"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAC01')"
+        prop="AAC01"
+        label="出院时间"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAC11N')"
+        prop="AAC11N"
+        label="出院科室"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AEE08')"
+        prop="AEE08"
+        label="编码员"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AEE04')"
+        prop="AEE04"
+        label="住院医师"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD10_NAME')"
+        prop="ICD10_NAME"
+        label="主要诊断名称"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD10_ID1')"
+        prop="ICD10_ID1"
+        label="主要诊断编码"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_NAME')"
+        prop="ICD9_NAME"
+        label="主要手术名称"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_ID1')"
+        prop="ICD9_ID1"
+        label="主要手术编码"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('level')"
         prop="level"
         label="缺陷分级"
-        width="200">
+        width="160"
+        align="center">
       </el-table-column>
       <el-table-column
+        v-if="codes.includes('type')"
         prop="type"
         label="缺陷归类"
-        width="200">
+        width="160"
+        align="center">
       </el-table-column>
     </el-table>
   </div>
@@ -57,6 +128,12 @@ export default {
       default() {
         return false
       }
+    },
+    codes: {
+      type: Array,
+      default() {
+        return []
+      }
     }
   }
 }

+ 24 - 3
src/views/data/frontHome/defectRuleProblem.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="box">
     <div class="box_wrapper">
-      <SearchBoxVue :data="searchData" @search="handleSearch" @reset="handleReset" />
-      <TableBoxVue :loading="loading" :data="tableData" @export="handelExport" style="margin-top: -40px;" />
+      <SearchBoxVue :data="searchData" :codes="tableShowCode" @search="handleSearch" @reset="handleReset" @codesChange="handleCodesChange" />
+      <TableBoxVue :loading="loading" :data="tableData" :codes="tableShowCode" @export="handelExport" style="margin-top: -40px;" />
       <div style="overflow: hidden;">
         <el-pagination
           v-if="tableData && tableData.length !== 0"
@@ -54,7 +54,23 @@ export default {
         page: 1,
         limit: 10
       },
-      error_rule: ''
+      error_rule: '',
+      tableShowCode: [
+        'field',
+        'desc',
+        'AAA28',
+        'AAA01',
+        'time',
+        'AAC11N',
+        'AEE08',
+        'AEE04',
+        'type',
+        'level',
+        'ICD10_NAME',
+        'ICD10_ID1',
+        'ICD9_NAME',
+        'ICD9_ID1'
+      ]
     }
   },
   created() {
@@ -62,6 +78,11 @@ export default {
     this.getList()
   },
   methods: {
+    // 展示字段变化
+    handleCodesChange(val) {
+      localStorage.setItem('surgery_talbe_codes', val)
+      this.$set(this, 'tableShowCode', val)
+    },
     getList() {
       const {
         page,