浏览代码

科室收入统计中添加患者分类

xiaochan 2 年之前
父节点
当前提交
e88195b9fd
共有 1 个文件被更改,包括 209 次插入200 次删除
  1. 209 200
      src/views/reports/KeShiShouRuTongJi.vue

+ 209 - 200
src/views/reports/KeShiShouRuTongJi.vue

@@ -1,119 +1,127 @@
 <template>
-  <page-layer>
-    <template #headerBlock>
-      <el-form inline :model="queryTerm" ref="formRef">
-        <el-form-item prop="dateRange">
-          <el-date-picker
-              v-model="queryTerm.dateRange"
-              :shortcuts="clockinShortcuts"
-              end-placeholder="结束日期"
-              placeholder="选择日期"
-              range-separator="至"
-              start-placeholder="开始日期"
-              style="width: 180px"
-              type="daterange"/>
-        </el-form-item>
+    <page-layer>
+        <template #headerBlock>
+            <el-form inline :model="queryTerm" ref="formRef">
+                <el-form-item prop="dateRange">
+                    <el-date-picker
+                            v-model="queryTerm.dateRange"
+                            :shortcuts="clockinShortcuts"
+                            end-placeholder="结束日期"
+                            placeholder="选择日期"
+                            range-separator="至"
+                            start-placeholder="开始日期"
+                            style="width: 180px"
+                            type="daterange"/>
+                </el-form-item>
 
-        <el-form-item prop="laiYuan">
-          <el-select v-model="queryTerm.laiYuan" style="width: 70px">
-            <el-option :value="0" label="住院"></el-option>
-            <el-option :value="1" label="门诊"></el-option>
-          </el-select>
-        </el-form-item>
+                <el-form-item prop="laiYuan">
+                    <el-select v-model="queryTerm.laiYuan" style="width: 70px">
+                        <el-option :value="0" label="住院"></el-option>
+                        <el-option :value="1" label="门诊"></el-option>
+                    </el-select>
+                </el-form-item>
 
-        <el-form-item prop="opId">
-          <el-select v-model="queryTerm.opId"
-                     placeholder="录入人"
-                     :remote-method="remoteMethodRenYuan"
-                     clearable filterable remote
-                     style="width: 100px">
-            <el-option v-for="item in renYuanList" :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-form-item>
-        <el-form-item prop="reqDeptCode">
-          <el-select v-model="queryTerm.reqDeptCode" placeholder="申请科室" clearable filterable remote
-                     style="width: 120px">
-            <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-form-item>
-        <el-form-item prop="chargeCodeMx">
-          <el-select v-model="queryTerm.chargeCodeMx" placeholder="项目名称" :remote-method="remoteMethodChargeCode"
-                     clearable filterable remote
-                     style="width: 150px">
-            <el-option v-for="item in chargeCodeList" :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-form-item>
-        <el-form-item prop="fenLei">
-          <el-select v-model="queryTerm.fenLei" placeholder="分类" style="width: 90px" @change="getKeShouFeiClick">
-            <el-option v-for="item in fenLeiDate" :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-form-item>
-        <el-form-item v-if="quanXian.indexOf(1) > -1" label="执行科室" prop="execUnitList">
-          <el-select style="width: 200px" v-model="queryTerm.execUnitList" clearable collapse-tags filterable multiple
-                     remote>
-            <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-form-item>
-        <el-form-item>
-          <el-button icon="Search" type="success" @click="getKeShouFeiClick">查询</el-button>
-          <el-button icon="Download" type="primary" @click="exportExcel"> 导出excel</el-button>
-          <el-button icon="Refresh" type="warning" @click="formRef?.resetFields()">重置</el-button>
-          <el-tag>总金额:{{ queryTerm.chargeFee }}</el-tag>
-        </el-form-item>
-      </el-form>
-    </template>
-    <template #main>
-      <el-table :data="keShiFeiYongData" :height="windowHeigth / 1.15 - 20" highlight-current-row stripe>
-        <el-table-column v-if="queryTerm.fenLei === 3" label="患者姓名" prop="patientName"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 3" label="住院号" prop="patient"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 3" label="次数" prop="times"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目编码"
-                         prop="chargeCodeMx"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目名称"
-                         prop="chargeCodeName"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 3" label="执行日期" prop="chargeDate" width="80"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 0" label="收费日期" prop="chargeDateString"
-                         width="80"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 1" label="录入人"
-                         prop="opName"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 3" label="执行科室" prop="execUnitName"></el-table-column>
-        <el-table-column v-if="queryTerm.fenLei === 4 || queryTerm.fenLei === 3" label="申请科室"
-                         prop="wardCodeName"></el-table-column>
-        <el-table-column label="金额" prop="chargeFee"></el-table-column>
-        <el-table-column label="数量" prop="chargeAmount"></el-table-column>
-        <el-table-column label="来源" prop="source"></el-table-column>
-      </el-table>
-      <el-pagination
-          :current-page="fenYeQueryTerm.currentPage"
-          :page-size="fenYeQueryTerm.pageSize"
-          :page-sizes="[20, 30, 40, 50]"
-          :total="fenYeQueryTerm.total"
-          layout="total, sizes, prev, pager, next, jumper"
-          style="margin-top: 5px"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"/>
-    </template>
-  </page-layer>
+                <el-form-item prop="opId">
+                    <el-select v-model="queryTerm.opId"
+                               placeholder="录入人"
+                               :remote-method="remoteMethodRenYuan"
+                               clearable filterable remote
+                               style="width: 100px">
+                        <el-option v-for="item in renYuanList" :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-form-item>
+                <el-form-item prop="reqDeptCode">
+                    <el-select v-model="queryTerm.reqDeptCode" placeholder="申请科室" clearable filterable remote
+                               style="width: 120px">
+                        <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-form-item>
+                <el-form-item prop="chargeCodeMx">
+                    <el-select v-model="queryTerm.chargeCodeMx" placeholder="项目名称"
+                               :remote-method="remoteMethodChargeCode"
+                               clearable filterable remote
+                               style="width: 150px">
+                        <el-option v-for="item in chargeCodeList" :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-form-item>
+                <el-form-item prop="fenLei">
+                    <el-select v-model="queryTerm.fenLei" placeholder="分类" style="width: 90px"
+                               @change="getKeShouFeiClick">
+                        <el-option v-for="item in fenLeiDate" :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-form-item>
+                <el-form-item v-if="quanXian.indexOf(1) > -1" label="执行科室" prop="execUnitList">
+                    <el-select style="width: 200px" v-model="queryTerm.execUnitList" clearable collapse-tags filterable
+                               multiple
+                               remote>
+                        <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-form-item>
+                <el-form-item>
+                    <el-button icon="Search" type="success" @click="getKeShouFeiClick">查询</el-button>
+                    <el-button icon="Download" type="primary" @click="exportExcel"> 导出excel</el-button>
+                    <el-button icon="Refresh" type="warning" @click="formRef?.resetFields()">重置</el-button>
+                    <el-tag>总金额:{{ queryTerm.chargeFee }}</el-tag>
+                </el-form-item>
+            </el-form>
+        </template>
+        <template #main>
+            <el-table :data="keShiFeiYongData" :height="windowHeigth / 1.15 - 20" highlight-current-row stripe>
+                <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 5" label="患者姓名"
+                                 prop="patientName"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 5" label="住院号"
+                                 prop="patient"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 5" label="次数"
+                                 prop="times"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目编码"
+                                 prop="chargeCodeMx"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目名称"
+                                 prop="chargeCodeName"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 3" label="执行日期" prop="chargeDate"
+                                 width="80"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 0" label="收费日期" prop="chargeDateString"
+                                 width="80"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 1" label="录入人"
+                                 prop="opName"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 3" label="执行科室" prop="execUnitName"></el-table-column>
+                <el-table-column v-if="queryTerm.fenLei === 4 || queryTerm.fenLei === 3" label="申请科室"
+                                 prop="wardCodeName"></el-table-column>
+                <el-table-column label="金额" prop="chargeFee"></el-table-column>
+                <el-table-column label="数量" prop="chargeAmount"></el-table-column>
+                <el-table-column label="来源" prop="source"></el-table-column>
+            </el-table>
+            <el-pagination
+                    :current-page="fenYeQueryTerm.currentPage"
+                    :page-size="fenYeQueryTerm.pageSize"
+                    :page-sizes="[20, 30, 40, 50]"
+                    :total="fenYeQueryTerm.total"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    style="margin-top: 5px"
+                    @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"/>
+        </template>
+    </page-layer>
 </template>
 
 <script setup name="KeShiShouRuTongJi">
@@ -135,23 +143,23 @@ const quanXian = store.state.user.info.roles
 const formRef = ref(null)
 
 const queryTerm = ref({
-  dateRange: clockinShortcuts[0].value,
-  laiYuan: 0,
-  opId: '',
-  chargeCodeMx: null,
-  reqDeptCode: '',
-  execUnitList: [store.state.user.info.deptCode],
-  fenLei: 3,
-  currentPage: 1,
-  pageSize: 40,
-  total: 0,
-  chargeFee: 0,
+    dateRange: clockinShortcuts[0].value,
+    laiYuan: 0,
+    opId: '',
+    chargeCodeMx: null,
+    reqDeptCode: '',
+    execUnitList: [store.state.user.info.deptCode],
+    fenLei: 5,
+    currentPage: 1,
+    pageSize: 40,
+    total: 0,
+    chargeFee: 0,
 })
 
 const fenYeQueryTerm = ref({
-  total: 0,
-  currentPage: 1,
-  pageSize: 40,
+    total: 0,
+    currentPage: 1,
+    pageSize: 40,
 })
 
 const renYuanList = ref([])
@@ -161,100 +169,101 @@ const deptList = ref([])
 const keShiFeiYongData = ref([])
 
 const remoteMethodRenYuan = (val) => {
-  if (val.length >= 2)
-    getRenYuan(val).then((res) => {
-      renYuanList.value = res
-    })
+    if (val.length >= 2)
+        getRenYuan(val).then((res) => {
+            renYuanList.value = res
+        })
 }
 
 const remoteMethodChargeCode = (val) => {
-  if (val.length >= 2) {
-    getChargeCode(val).then((res) => {
-      chargeCodeList.value = res
-    })
-  }
+    if (val.length >= 2) {
+        getChargeCode(val).then((res) => {
+            chargeCodeList.value = res
+        })
+    }
 }
 
 const getKeShouFeiClick = () => {
-  let date = getDateRangeFormatDate(queryTerm.value.dateRange)
-  queryTerm.value.startTime = date.startTime
-  queryTerm.value.endTime = date.endTime
-  queryTerm.value.currentPage = 1
-  queryTerm.value.total = 0
-  getKeShouFei(queryTerm.value).then((res) => {
-    console.log(res)
-    queryTerm.value.chargeFee = res.chargeFee
-    queryTerm.value.total = res.total
-    keShiFeiYongData.value = res.data
-    fenYeQueryTerm.value = clone(queryTerm.value)
-  })
+    let date = getDateRangeFormatDate(queryTerm.value.dateRange)
+    queryTerm.value.startTime = date.startTime
+    queryTerm.value.endTime = date.endTime
+    queryTerm.value.currentPage = 1
+    queryTerm.value.total = 0
+    getKeShouFei(queryTerm.value).then((res) => {
+        console.log(res)
+        queryTerm.value.chargeFee = res.chargeFee
+        queryTerm.value.total = res.total
+        keShiFeiYongData.value = res.data
+        fenYeQueryTerm.value = clone(queryTerm.value)
+    })
 }
 
 const handleSizeChange = (val) => {
-  fenYeQueryTerm.value.pageSize = val
-  getKeShouFei(fenYeQueryTerm.value).then((res) => {
-    keShiFeiYongData.value = res.data
-  })
+    fenYeQueryTerm.value.pageSize = val
+    getKeShouFei(fenYeQueryTerm.value).then((res) => {
+        keShiFeiYongData.value = res.data
+    })
 }
 
 const handleCurrentChange = (val) => {
-  fenYeQueryTerm.value.currentPage = val
-  getKeShouFei(fenYeQueryTerm.value).then((res) => {
-    keShiFeiYongData.value = res.data
-  })
+    fenYeQueryTerm.value.currentPage = val
+    getKeShouFei(fenYeQueryTerm.value).then((res) => {
+        keShiFeiYongData.value = res.data
+    })
 }
 
 const exportExcel = () => {
-  if (keShiFeiYongData.value.length <= 0) {
-    return ElMessage.warning({message: '请先查询出数据'})
-  }
-  ElMessageBox.prompt('导出文件名字', '提示', {
-    confirmButtonText: '确定',
-    cancelButtonText: '取消',
-    inputPattern: /\S/,
-    inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
-  })
-      .then(({value}) => {
-        const data = {
-          param: {
-            startTime: fenYeQueryTerm.value.startTime,
-            endTime: fenYeQueryTerm.value.endTime,
-            fenLei: fenYeQueryTerm.value.fenLei,
-            chargeCodeMx: fenYeQueryTerm.value.chargeCodeMx,
-            opId: fenYeQueryTerm.value.opId,
-            currentPage: 1,
-            pageSize: fenYeQueryTerm.value.total,
-            total: fenYeQueryTerm.value.total,
-            execUnitList: fenYeQueryTerm.value.execUnitList,
-            reqDeptCode: fenYeQueryTerm.value.reqDeptCode,
-            laiYuan: fenYeQueryTerm.value.laiYuan,
-          },
-          url: '/keShiTongJi/exportExcel',
-          fileName: value + '.xlsx',
-        }
-        setTimeout(() => {
-          downloadExcel(data)
-        }, 500)
-      })
-      .catch(() => {
-      })
+    if (keShiFeiYongData.value.length <= 0) {
+        return ElMessage.warning({message: '请先查询出数据'})
+    }
+    ElMessageBox.prompt('导出文件名字', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /\S/,
+        inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
+    })
+        .then(({value}) => {
+            const data = {
+                param: {
+                    startTime: fenYeQueryTerm.value.startTime,
+                    endTime: fenYeQueryTerm.value.endTime,
+                    fenLei: fenYeQueryTerm.value.fenLei,
+                    chargeCodeMx: fenYeQueryTerm.value.chargeCodeMx,
+                    opId: fenYeQueryTerm.value.opId,
+                    currentPage: 1,
+                    pageSize: fenYeQueryTerm.value.total,
+                    total: fenYeQueryTerm.value.total,
+                    execUnitList: fenYeQueryTerm.value.execUnitList,
+                    reqDeptCode: fenYeQueryTerm.value.reqDeptCode,
+                    laiYuan: fenYeQueryTerm.value.laiYuan,
+                },
+                url: '/keShiTongJi/exportExcel',
+                fileName: value + '.xlsx',
+            }
+            setTimeout(() => {
+                downloadExcel(data)
+            }, 500)
+        })
+        .catch(() => {
+        })
 }
 
 onMounted(() => {
-  getDept().then((res) => {
-    deptList.value = res
-  })
-  if (!(quanXian.indexOf(1) > -1 || quanXian.indexOf(34) > -1)) {
-    queryTerm.value.opId = store.state.user.info.code
-  }
+    getDept().then((res) => {
+        deptList.value = res
+    })
+    if (!(quanXian.indexOf(1) > -1 || quanXian.indexOf(34) > -1)) {
+        queryTerm.value.opId = store.state.user.info.code
+    }
 })
 
 const fenLeiDate = [
-  {code: 0, name: '日期'},
-  {code: 1, name: '录入人'},
-  {code: 2, name: '项目编码'},
-  {code: 3, name: '不分类'},
-  {code: 4, name: '申请科室'},
+    {code: 0, name: '日期'},
+    {code: 1, name: '录入人'},
+    {code: 2, name: '项目编码'},
+    {code: 3, name: '不分类'},
+    {code: 4, name: '申请科室'},
+    {code: 5, name: '住院号'},
 ]