yuwandanmian 1 рік тому
батько
коміт
f15ada9f32

+ 0 - 4
src/App.vue

@@ -188,10 +188,6 @@ export default {
   border-left: 0;
   width: 62px !important;
 }
-.tableBox .el-table .el-table__header tr th:first-child {
-  /* border-radius: 10px 0px 0px 10px; */
-  border-radius: 0 !important;
-}
 .flextab {
   display: flex;
   align-items: center;

+ 1 - 0
src/main.js

@@ -6,6 +6,7 @@ import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import locale from 'element-ui/lib/locale/lang/zh-CN';
 import '@/styles/index.scss'; // global css
+import '@/styles/custom.scss'; // global css
 
 import App from './App';
 import store from './store';

+ 17 - 0
src/styles/custom.scss

@@ -0,0 +1,17 @@
+// 自定义table-header
+
+.el-table .el-table__row td {
+  color: #7e8bab;
+  border-bottom: 1px solid #f4f4f4;
+}
+.el-table .el-table__header tr th:first-child {
+  border-radius: 10px 0px 0px 10px;
+}
+.el-table .el-table__header tr th:nth-last-child(2) {
+  border-radius: 0px 10px 10px 0px;
+}
+.el-table .el-table__header tr th {
+  background: #f1f6ff;
+  color: #13171e;
+  border-bottom: 0px;
+}

+ 1 - 1
src/styles/index.scss

@@ -84,4 +84,4 @@ div:focus {
   .bottom-time-listw {
     width: 100%;
   }
-}
+}

+ 7 - 0
src/utils/index.js

@@ -4,6 +4,13 @@
 
 import moment from 'moment'
 
+// 获取某年某月的天数
+export function getDaysInMonth(year, month) {
+  month = parseInt(month, 10);
+  var temp = new Date(year, month ,0);
+  return temp.getDate();
+}
+
 // 时间格式化处理
 export function dateFormat(date, formatType = 'YYYY-MM-DD HH:mm:ss') {
   let result

+ 6 - 23
src/views/data/frontHome/components/SearchBox.vue

@@ -4,16 +4,18 @@
       <el-form-item label="出院时间">
         <el-date-picker
           v-model="data.start_time"
-          type="date"
-          :picker-options="pickerOptions1"
+          type="month"
+          format="yyyy 年 MM 月"
+          value-format="yyyyMM"
           placeholder="开始时间"
         />
       </el-form-item>
       <el-form-item label="">
         <el-date-picker
           v-model="data.end_time"
-          type="date"
-          :picker-options="pickerOptions2"
+          type="month"
+          format="yyyy 年 MM 月"
+          value-format="yyyyMM"
           placeholder="结束时间"
         />
       </el-form-item>
@@ -51,24 +53,6 @@ export default {
   },
   data() {
     return {
-      pickerOptions1: {
-        disabledDate: (time) => {
-          if (this.data.end_time) {
-            return time.getTime() > new Date(this.data.end_time).getTime()
-          } else {
-            return time.getTime() > Date.now()
-          }
-        }
-      },
-      pickerOptions2: {
-        disabledDate: (time) => {
-          if (this.data.start_time) {
-            return time.getTime() < new Date(this.data.start_time).getTime()
-          } else {
-            return time.getTime() > Date.now()
-          }
-        }
-      },
       selectData:  {},
     }
   },
@@ -82,7 +66,6 @@ export default {
       });
     },
     onSubmit() {
-      console.log(this.data, 'this.data')
       this.$emit('search')
     }
   }

+ 28 - 28
src/views/data/frontHome/components/SearchBox2.vue

@@ -2,20 +2,7 @@
   <div class="app-container">
     <el-form :inline="true" :model="data" class="demo-form-inline">
       <el-form-item label="住院号码">
-        <el-input v-model="data.AAA28" placeholder="请输入"></el-input>
-      </el-form-item>
-      <el-form-item label="缺陷描述">
-        <el-input v-model="data.desc" placeholder="请输入"></el-input>
-      </el-form-item>
-      <el-form-item label="缺陷归类">
-        <el-select v-model="data.type" filterable clearable placeholder="请选择">
-          <el-option v-for="item of selectData.type" :key="item" :label="item" :value="item" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="缺陷分级">
-        <el-select v-model="data.level" filterable clearable placeholder="请选择">
-          <el-option v-for="item of selectData.level" :key="item" :label="item" :value="item" />
-        </el-select>
+        <el-input v-model="data.AAA28" clearable placeholder="请输入"></el-input>
       </el-form-item>
       <el-form-item label="出院科室">
         <el-select v-model="data.dep_id" filterable clearable placeholder="请选择">
@@ -28,6 +15,7 @@
           type="date"
           :picker-options="pickerOptions1"
           placeholder="开始时间"
+          style="width: 200px;"
         />
       </el-form-item>
       <el-form-item label="">
@@ -36,34 +24,43 @@
           type="date"
           :picker-options="pickerOptions2"
           placeholder="结束时间"
+          style="width: 200px;"
         />
       </el-form-item>
-      <el-form-item label="住院医师">
-        <el-select v-model="data.AEE04" filterable clearable placeholder="请选择">
-          <el-option v-for="item of selectData.doctor" :key="item.id" :label="item.name" :value="item.name" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="编码员">
-        <el-select v-model="data.AEE08" filterable clearable placeholder="请选择">
-          <el-option v-for="item of selectData.doctor" :key="item.id" :label="item.name" :value="item.id" />
-        </el-select>
-      </el-form-item>
       <el-form-item label="" class="more-btn">
         <el-button type="text" @click="showMore = !showMore">{{ showMore ? '收回' : '更多'}}</el-button>
       </el-form-item>
       <el-collapse-transition>
         <div v-show="showMore">
+          <el-form-item label="缺陷描述">
+            <el-input v-model="data.desc" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+          <el-form-item label="缺陷归类">
+            <el-select v-model="data.type" filterable clearable placeholder="请选择">
+              <el-option v-for="item of selectData.type" :key="item" :label="item" :value="item" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="住院医师">
+            <el-select v-model="data.AEE04" filterable clearable placeholder="请选择">
+              <el-option v-for="item of selectData.doctor" :key="item.id" :label="item.name" :value="item.name" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="编码员">
+            <el-select v-model="data.AEE08" filterable clearable placeholder="请选择">
+              <el-option v-for="item of selectData.doctor" :key="item.id" :label="item.name" :value="item.id" />
+            </el-select>
+          </el-form-item>
           <el-form-item label="主要诊断名称">
-            <el-input v-model="data.ICD10_NAME" placeholder="请输入"></el-input>
+            <el-input v-model="data.ICD10_NAME" clearable placeholder="请输入"></el-input>
           </el-form-item>
           <el-form-item label="主要诊断编码">
-            <el-input v-model="data.ICD10_ID1" placeholder="请输入"></el-input>
+            <el-input v-model="data.ICD10_ID1" clearable placeholder="请输入"></el-input>
           </el-form-item>
           <el-form-item label="主要手术名称">
-            <el-input v-model="data.ICD9_NAME" placeholder="请输入"></el-input>
+            <el-input v-model="data.ICD9_NAME" clearable placeholder="请输入"></el-input>
           </el-form-item>
           <el-form-item label="主要手术编码">
-            <el-input v-model="data.ICD9_ID1" placeholder="请输入"></el-input>
+            <el-input v-model="data.ICD9_ID1" clearable placeholder="请输入"></el-input>
           </el-form-item>
         </div>
       </el-collapse-transition>
@@ -186,6 +183,9 @@ export default {
     this.showCodes = JSON.parse(JSON.stringify(this.codes))
   },
   methods: {
+    onExport() {
+      this.$emit('export')
+    },
     getDepList() {
       this.$axios.post('/omr_zk/department_list').then(res => {
         this.departmentList = res.data;

+ 0 - 1
src/views/data/frontHome/components/TableBox2.vue

@@ -2,7 +2,6 @@
   <div class="app-container">
     <el-table
       v-loading="loading"
-      border
       :data="data"
       @sort-change="handleSortChange"
       style="width: 100%">

+ 17 - 1
src/views/data/frontHome/defectProblem.vue

@@ -24,6 +24,7 @@
 import SearchBoxVue from './components/SearchBox.vue'
 import TableBoxVue from './components/TableBox.vue'
 import { errorDataExport } from '@/api/excel'
+import { dateFormat, getDaysInMonth } from '@/utils'
 
 export default {
   components: {
@@ -48,6 +49,10 @@ export default {
     }
   },
   created() {
+    // 设置默认时间
+    const currentYear = new Date().getFullYear()
+    this.searchData.start_time = `${currentYear}0101`
+    this.searchData.end_time = dateFormat(new Date(), 'YYYYMMDD')
     this.getList()
   },
   methods: {
@@ -56,8 +61,19 @@ export default {
         page,
         limit
       } = this.paginationData
+      const {
+        start_time,
+        end_time,
+        level,
+        type
+      } = this.searchData
+      const days = getDaysInMonth(end_time.slice(0, 4), end_time.slice(4, 6))
+      const dayStr = days < 10 ? `0${days}` : days
       const params = {
-        ...this.searchData,
+        level,
+        type,
+        start_time: start_time.length === 8 ? start_time : `${start_time}01`,
+        end_time: `${end_time.slice(0, 4)}${end_time.slice(4, 6)}${dayStr}`,
         page,
         page_size: limit
       }

+ 2 - 2
src/views/data/frontHome/defectRuleProblem.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="box">
     <div class="box_wrapper">
-      <SearchBoxVue :data="searchData" :codes="tableShowCode" @search="handleSearch" @reset="handleReset" @codesChange="handleCodesChange" />
-      <TableBoxVue :loading="loading" :data="tableData" :codes="tableShowCode" @export="handelExport" @sort="handleSort" style="margin-top: -40px;" />
+      <SearchBoxVue :data="searchData" :codes="tableShowCode" @search="handleSearch" @reset="handleReset" @export="handelExport" @codesChange="handleCodesChange" />
+      <TableBoxVue :loading="loading" :data="tableData" :codes="tableShowCode" @sort="handleSort" style="margin-top: -40px;" />
       <div style="overflow: hidden;">
         <el-pagination
           v-if="tableData && tableData.length !== 0"

+ 67 - 79
src/views/data/query/index.vue

@@ -153,9 +153,6 @@
                 </template>
               </el-input>
             </div>
-            <!-- <el-input class="width300" v-model="formData1.ageday" :min="28" :max="365" type="number" placeholder="<28天" @blur="funBlur">
-              <template slot="append">天</template>
-            </el-input> -->
             <span class="pind" style="color: #ccc">——</span>
             <div class="zkSelect">
               <el-input class="width300" v-model="formData1.ageyear" :min="1" :max="150" type="number" placeholder="1-150岁" @blur="funBlur">
@@ -173,9 +170,6 @@
                 <template slot="append">天</template>
               </el-input>
             </div>
-            <!-- <el-input class="width300" v-model="formData1.ageday" :min="28" :max="365" type="number" placeholder="<28天" @blur="funBlur">
-              <template slot="append">天</template>
-            </el-input> -->
             <span class="pind" style="color: #ccc">——</span>
             <div class="zkSelect">
               <el-input class="width300" v-model="formData1.hospitalizationin" :min="1" :max="150" type="number" @blur="funBluron">
@@ -184,17 +178,6 @@
             </div>
           </el-form-item>
           <el-form-item label="时间范围">
-            <!-- <el-date-picker
-              class="width500"
-              v-model="formData1.rangeDate"
-              size="large"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              format="yyyy 年 MM 月 dd 日"
-              value-format="yyyyMMdd"
-            ></el-date-picker> -->
             <el-date-picker v-model="formData1.startTime" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="开始日期"></el-date-picker>
             <span class="pind10"></span>
             <el-date-picker v-model="formData1.endTime" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="结束日期"></el-date-picker>
@@ -216,34 +199,50 @@
           </div>
           <div class="flextab-item">
             <div>
-              平均住院日:
-              <span class="s-1">{{ ARG_STAY }}</span>
-              <span class="s-2">天</span>
+              平均住院日:
+              <span class="tag-box">
+                <span class="s-1">{{ ARG_STAY }}</span>
+                <span class="s-2">天</span>
+              </span>
             </div>
             <div>
-              平均费用:
-              <span class="s-1">{{ ARG_F_D }}</span>
-              <span class="s-2">元;</span>
+              平均费用:
+
+              <span class="tag-box">
+                <span class="s-1">{{ ARG_F_D }}</span>
+                <span class="s-2">元</span>
+              </span>
             </div>
             <div>
-              例数:
-              <span class="s-1">{{ paginationData.total ? paginationData.total : 0 }}</span>
-              <span class="s-2">例</span>
+              例数:
+              <span class="tag-box">
+                <span class="s-1">{{ paginationData.total ? paginationData.total : 0 }}</span>
+                <span class="s-2">例</span>
+              </span>
             </div>
             <div>
-              死亡例数:
-              <span class="s-1">{{ AEM01C ? AEM01C : 0 }}</span>
-              <span class="s-2">例</span>
+              死亡例数:
+
+              <span class="tag-box">
+                <span class="s-1">{{ AEM01C ? AEM01C : 0 }}</span>
+                <span class="s-2">例</span>
+              </span>
             </div>
             <div>
-              总费用:
-              <span class="s-1">{{ SUM_ARG_F_D ? SUM_ARG_F_D : 0 }}</span>
-              <span class="s-2">元</span>
+              总费用:
+
+              <span class="tag-box">
+                <span class="s-1">{{ SUM_ARG_F_D ? SUM_ARG_F_D : 0 }}</span>
+                <span class="s-2">元</span>
+              </span>
             </div>
             <div>
-              总住院日:
-              <span class="s-1">{{ SUM_ARG_STAY ? SUM_ARG_STAY : 0 }}</span>
-              <span class="s-2">天</span>
+              总住院日:
+
+              <span class="tag-box">
+                <span class="s-1">{{ SUM_ARG_STAY ? SUM_ARG_STAY : 0 }}</span>
+                <span class="s-2">天</span>
+              </span>
             </div>
           </div>
         </div>
@@ -251,42 +250,37 @@
         <el-button class="btn1" type="primary" icon="el-icon-download" @click="funExport('质控列表', '/qualityList')">导出execl</el-button>
       </div>
 
-      <el-table :data="tableData" border style="width: 100%">
-        <el-table-column type="index" label="序号" width="70px"></el-table-column>
-        <el-table-column prop="AAA28" label="病案号">
+      <el-table :data="tableData" style="width: 100%">
+        <el-table-column type="index" label="序号" width="80"></el-table-column>
+        <el-table-column prop="AAA28" label="病案号" width="160">
           <template slot-scope="scope">
             <span class="blue" @click="funGoto(scope.row.MED_REC_ID)">{{ scope.row.AAA28 }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="AAA01" label="患者姓名"></el-table-column>
-        <el-table-column prop="AAC01" label="出院时间"></el-table-column>
-        <el-table-column prop="AAA02C" label="性别"></el-table-column>
-        <el-table-column prop="AAA04" label="年龄"></el-table-column>
+        <el-table-column prop="AAA01" label="患者姓名" width="160"></el-table-column>
+        <el-table-column prop="AAC01" label="出院时间" width="160"></el-table-column>
+        <el-table-column prop="AAA02C" label="性别" width="160"></el-table-column>
+        <el-table-column prop="AAA04" label="年龄" width="160"></el-table-column>
 
         <template v-for="(item, ind) in formData1.seniorList">
-          <el-table-column :key="ind" v-if="tabKeyList.includes(item.key)" :label="funkdef(item.key)" :prop="item.key"></el-table-column>
+          <el-table-column :key="ind" v-if="tabKeyList.includes(item.key)" :label="funkdef(item.key)" :prop="item.key" width="160"></el-table-column>
         </template>
-        <el-table-column prop="ABC01N" label="主诊断名称"></el-table-column>
-        <el-table-column prop="ABC01C" label="主诊断编码"></el-table-column>
-        <el-table-column prop="ICD9_NAME" label="主手术名称"></el-table-column>
-        <el-table-column prop="ICD9_ID1" label="主手术编码"></el-table-column>
-        <el-table-column v-if="columnShow" :prop="clumText.id" :label="clumText.name"></el-table-column>
-        <el-table-column prop="AAA29" label="住院次数"></el-table-column>
-        <el-table-column prop="AAC11N" label="出院科室"></el-table-column>
-        <el-table-column prop="ADA01" label="住院总费用"></el-table-column>
-        <el-table-column prop="F_D" label="药品总费用"></el-table-column>
-        <el-table-column prop="J" label="材料总费用"></el-table-column>
-
-        <!-- <el-table-column prop="address" label="业务操作人"> </el-table-column> -->
-        <el-table-column prop="AAC04" label="实际住院(天)"></el-table-column>
-        <!-- <el-table-column prop="ATTEND_GRP_NAME" label="主诊组"></el-table-column> -->
-        <el-table-column prop="AEM01C" label="离院方式"></el-table-column>
-        <el-table-column prop="AAB06C" label="入院途径"></el-table-column>
-        <!-- <el-table-column prop="ARG_STAY" label="平均住院日"></el-table-column> -->
-        <!-- <el-table-column prop="ARG_F_D" label="平均费用"></el-table-column> -->
-        <el-table-column prop="SSPB" label="手术判别"></el-table-column>
-        <el-table-column prop="AAB11N" label="入院科室"></el-table-column>
-        <el-table-column prop="AAB01" label="入院时间"></el-table-column>
+        <el-table-column prop="ABC01N" label="主诊断名称" width="160"></el-table-column>
+        <el-table-column prop="ABC01C" label="主诊断编码" width="160"></el-table-column>
+        <el-table-column prop="ICD9_NAME" label="主手术名称" width="160"></el-table-column>
+        <el-table-column prop="ICD9_ID1" label="主手术编码" width="160"></el-table-column>
+        <el-table-column v-if="columnShow" :prop="clumText.id" :label="clumText.name" width="160"></el-table-column>
+        <el-table-column prop="AAA29" label="住院次数" width="160"></el-table-column>
+        <el-table-column prop="AAC11N" label="出院科室" width="160"></el-table-column>
+        <el-table-column prop="ADA01" label="住院总费用" width="160"></el-table-column>
+        <el-table-column prop="F_D" label="药品总费用" width="160"></el-table-column>
+        <el-table-column prop="J" label="材料总费用" width="160"></el-table-column>
+        <el-table-column prop="AAC04" label="实际住院(天)" width="160"></el-table-column>
+        <el-table-column prop="AEM01C" label="离院方式" width="160"></el-table-column>
+        <el-table-column prop="AAB06C" label="入院途径" width="160"></el-table-column>
+        <el-table-column prop="SSPB" label="手术判别" width="160"></el-table-column>
+        <el-table-column prop="AAB11N" label="入院科室" width="160"></el-table-column>
+        <el-table-column prop="AAB01" label="入院时间" width="160"></el-table-column>
       </el-table>
       <!-- 分页控制 -->
       <el-pagination
@@ -909,21 +903,6 @@ export default {
 ::v-deep.el-pagination.is-background .el-pager li:not(.disabled).active {
   background: #7e8bab;
 }
-::v-deep.el-table .el-table__row td {
-  color: #7e8bab;
-  border-bottom: 1px solid #f4f4f4;
-}
-::v-deep.el-table .el-table__header tr th:first-child {
-  border-radius: 10px 0px 0px 10px;
-}
-::v-deep.el-table .el-table__header tr th:last-child {
-  border-radius: 0px 10px 10px 0px;
-}
-::v-deep.el-table .el-table__header tr th {
-  background: #f1f6ff;
-  color: #13171e;
-  border-bottom: 0px;
-}
 </style>
 <style lang="scss" scoped>
 .tableBox {
@@ -1039,4 +1018,13 @@ export default {
 .width100 {
   width: 100px;
 }
+.tag-box {
+  padding: 8px 16px;
+  box-sizing: border-box;
+  display: inline-block;
+  min-width: 100px;
+  text-align: center;
+  border: 1px solid #e2e2e2;
+  border-radius: 4px;
+}
 </style>