瀏覽代碼

会诊查询中带执行科室

xiaochan 3 年之前
父節點
當前提交
bc8fc422d9

+ 3 - 3
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/BaoCunMuBan.vue

@@ -24,7 +24,7 @@
 <script name="BaoCunMuBan" setup>
 import {computed, ref} from "vue";
 import store from '../../../store'
-import {needRule} from "@/utils/public";
+import {noNeedRule} from "@/utils/public";
 import {baoCunMuBan, muBanCaoZuo} from "@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru";
 import {muBanMing} from '@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng'
 import {ElMessageBox} from "element-plus";
@@ -36,8 +36,8 @@ const user = computed(() => {
 const dialog = ref(false)
 const title = ref('')
 const flag = ref(1)
-const quanYuanFlag = needRule([1, 38])
-const keZhuRenFlag = needRule([1, 38, 11])
+const quanYuanFlag = noNeedRule([1, 38])
+const keZhuRenFlag = noNeedRule([1, 38, 11])
 // 模板名称
 const patternCode = ref('')
 const patternName = ref('')

+ 12 - 2
src/utils/public.js

@@ -1,6 +1,6 @@
-import store from '../store'
+import store from '@/store'
 
-export function needRule(val) {
+export function noNeedRule(val) {
     const userRoles = store.state.user.info.roles
     for (const item in val) {
         if (userRoles.indexOf(item) > -1) {
@@ -10,3 +10,13 @@ export function needRule(val) {
     return true;
 }
 
+export function needRule(val) {
+    const userRoles = store.state.user.info.roles
+    for (const item in val) {
+        if (userRoles.indexOf(item) > -1) {
+            return true;
+        }
+    }
+    return false;
+}
+

+ 106 - 92
src/views/reports/InquiryOfConsultationFee.vue

@@ -1,19 +1,27 @@
 <template>
   <el-collapse>
     <el-header height="36px" style="margin-top: 8px">
-      <el-date-picker v-model="dateRange" type="daterange" size="small" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :shortcuts="shortcuts">
+      <el-date-picker v-model="dateRange" :shortcuts="shortcuts" end-placeholder="结束日期" range-separator="至" size="small"
+                      start-placeholder="开始日期" type="daterange">
       </el-date-picker>
-      <el-button type="primary" icon="el-icon-search" @click="query" style="margin-left: 5px">查询</el-button>
-      <el-button type="primary" v-show="renderData.list.length" icon="el-icon-download" @click="exportExcel">导出excel</el-button>
+      <el-select v-if="showDeptList" v-model="queryTerm.dept" clearable filterable>
+        <el-option v-for="item in deptList" :key="item.code" :label="item.name" :value="item.code">
+          <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
+          <el-divider direction="vertical"></el-divider>
+          <span>{{ item.name }}</span></el-option>
+      </el-select>
+      <el-button icon="el-icon-search" style="margin-left: 5px" type="primary" @click="query">查询</el-button>
+      <el-button v-show="renderData.list.length" icon="el-icon-download" type="primary" @click="exportExcel">导出excel
+      </el-button>
     </el-header>
     <el-main>
-      <el-table :data="renderData.list" :height="tableHeight" stripe highlight-current-row>
-        <el-table-column prop="inpatientNo" label="住院号"></el-table-column>
-        <el-table-column prop="admissTimes" label="住院次数"></el-table-column>
-        <el-table-column prop="dept" label="科室"></el-table-column>
-        <el-table-column prop="doctor" label="医生"></el-table-column>
-        <el-table-column prop="inputDate" label="收费日期"></el-table-column>
-        <el-table-column prop="position" label="会诊级别"></el-table-column>
+      <el-table :data="renderData.list" :height="windowSize.h / 1.2 + 40" highlight-current-row stripe>
+        <el-table-column label="住院号" prop="inpatientNo"></el-table-column>
+        <el-table-column label="住院次数" prop="admissTimes"></el-table-column>
+        <el-table-column label="科室" prop="dept"></el-table-column>
+        <el-table-column label="医生" prop="doctor"></el-table-column>
+        <el-table-column label="收费日期" prop="inputDate"></el-table-column>
+        <el-table-column label="会诊级别" prop="position"></el-table-column>
         <el-table-column label="费用">
           <template #default="scope">
             <span v-if="scope.row.chargeFee > 0" style="color: blue">{{ scope.row.chargeFee }} ¥</span>
@@ -24,99 +32,105 @@
     </el-main>
     <el-footer style="height: 20px">
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="queryTerm.currentPage"
-        :page-size="queryTerm.pageSize"
-        :page-sizes="[20, 30, 40, 50, 100]"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="renderData.total"
-        style="margin-top: 5px"
+          :current-page="queryTerm.currentPage"
+          :page-size="queryTerm.pageSize"
+          :page-sizes="[20, 30, 40, 50, 100]"
+          :total="renderData.total"
+          layout="total, sizes, prev, pager, next, jumper"
+          style="margin-top: 5px"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
       ></el-pagination>
     </el-footer>
   </el-collapse>
 </template>
 
-<script>
-import { reactive, ref } from '@vue/reactivity'
-import { shortcuts } from '@/data/shortcuts'
+<script name="InquiryOfConsultationFee" setup>
+import {reactive, ref} from '@vue/reactivity'
+import {shortcuts} from '@/data/shortcuts'
 import store from '@/store'
-import { queryInquiryOfConsultationFee } from '@/api/querydata/Inquiry-of-consultationFee'
-import { formatDate } from '@/utils/date'
-import { downloadExcel } from '@/utils/excel'
-import { ElMessage } from 'element-plus'
+import {queryInquiryOfConsultationFee} from '@/api/querydata/Inquiry-of-consultationFee'
+import {formatDate} from '@/utils/date'
+import {downloadExcel} from '@/utils/excel'
+import {ElMessage} from 'element-plus'
+import {getDept} from "@/api/public-api";
+import {needRule} from "@/utils/public";
 
-export default {
-  name: 'InquiryOfConsultationFee',
-  setup() {
-    const windowSize = store.state.app.windowSize
-    const tableHeight = windowSize.h - 85
+const windowSize = computed(() => {
+  return store.state.app.windowSize
+})
 
-    const dateRange = ref(null)
-    const queryTerm = reactive({
-      startTime: '',
-      endTime: '',
-      currentPage: 1,
-      pageSize: 30,
+let userRoles = $ref([])
+
+const tableHeight = windowSize.h - 85
+
+const dateRange = ref(null)
+const queryTerm = reactive({
+  startTime: '',
+  endTime: '',
+  dept: store.state.user.info.deptCode,
+  currentPage: 1,
+  pageSize: 30,
+})
+const renderData = reactive({
+  list: [],
+  total: 0,
+})
+const handleSizeChange = (val) => {
+  queryTerm.pageSize = val
+  query()
+}
+const handleCurrentChange = (val) => {
+  queryTerm.currentPage = val
+  query()
+}
+const query = () => {
+  if (dateRange.value !== null) {
+    queryTerm.startTime = formatDate(dateRange.value[0])
+    queryTerm.endTime = formatDate(dateRange.value[1])
+    queryInquiryOfConsultationFee(queryTerm).then((res) => {
+      renderData.list = res.data
+      renderData.total = res.total
     })
-    const renderData = reactive({
-      list: [],
-      total: 0,
+  } else {
+    ElMessage({
+      type: 'warning',
+      message: '请先选择日期范围',
+      showClose: true,
+      duration: 2500,
     })
-    const handleSizeChange = (val) => {
-      queryTerm.pageSize = val
-      query()
-    }
-    const handleCurrentChange = (val) => {
-      queryTerm.currentPage = val
-      query()
-    }
-    const query = () => {
-      if (dateRange.value !== null) {
-        queryTerm.startTime = formatDate(dateRange.value[0])
-        queryTerm.endTime = formatDate(dateRange.value[1])
-        queryInquiryOfConsultationFee(queryTerm).then((res) => {
-          renderData.list = res.data
-          renderData.total = res.total
-        })
-      } else {
-        ElMessage({
-          type: 'warning',
-          message: '请先选择日期范围',
-          showClose: true,
-          duration: 2500,
-        })
-      }
-    }
-    const exportExcel = () => {
-      store.commit('app/setLoading', true)
-      const data = {
-        param: {
-          currentPage: 1,
-          pageSize: -1,
-          startTime: queryTerm.startTime,
-          endTime: queryTerm.endTime,
-        },
-        url: '/queryData/ExportConsultationFee',
-        fileName: queryTerm.startTime + '至' + queryTerm.endTime + '会诊费用.xlsx',
-      }
-      setTimeout(() => {
-        downloadExcel(data)
-      }, 500)
-    }
-    return {
-      dateRange,
-      shortcuts,
-      query,
-      queryTerm,
-      renderData,
-      tableHeight,
-      handleSizeChange,
-      handleCurrentChange,
-      exportExcel,
-    }
-  },
+  }
 }
+const exportExcel = () => {
+  store.commit('app/setLoading', true)
+  const data = {
+    param: {
+      currentPage: 1,
+      pageSize: -1,
+      startTime: queryTerm.startTime,
+      endTime: queryTerm.endTime,
+    },
+    url: '/queryData/ExportConsultationFee',
+    fileName: queryTerm.startTime + '至' + queryTerm.endTime + '会诊费用.xlsx',
+  }
+  setTimeout(() => {
+    downloadExcel(data)
+  }, 500)
+}
+
+let deptList = $ref([])
+let showDeptList = $ref(false)
+
+onMounted(() => {
+  userRoles = store.state.user.info.roles
+  // 1,2,32
+  showDeptList = needRule(1, 2, 32)
+  if (showDeptList) {
+    getDept().then(res => {
+      deptList = res
+    })
+  }
+})
 </script>
 
 <style></style>