123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819 |
- <template>
- <el-container>
- <el-header height="36px" style="margin-top: 8px">
- <el-date-picker
- v-model="dateRange"
- type="daterange"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- :shortcuts="shortcuts"
- style="width: 260px"
- ></el-date-picker>
- <el-select v-model="overviewParam.ward" style="width: 130px" placeholder="请选择科室" filterable clearable>
- <el-option v-for="item in userWards" :key="item.code" :value="item.code" :label="item.name"></el-option>
- </el-select>
- <el-select v-model="overviewParam.fileStatus" style="width: 90px">
- <el-option label="未签收" value="0"></el-option>
- <el-option label="已签收" value="1"></el-option>
- </el-select>
- <el-select v-model="overviewParam.lateFlag" style="width: 90px">
- <el-option label="全部" value="3"></el-option>
- <el-option label="迟交" value="1"></el-option>
- <el-option label="未迟交" value="0"></el-option>
- </el-select>
- <el-input v-model="overviewParam.bah" style="width: 110px" placeholder="住院号" clearable></el-input>
- <el-button type="primary" icon="el-icon-search" @click="searchPatient">检索</el-button>
- <el-button type="primary" icon="el-icon-check" @click="archiveBa">签收</el-button>
- <el-button type="primary" icon="el-icon-s-operation" @click="showAdvanceSearch = true">高级条件检索</el-button>
- <el-divider direction="vertical"></el-divider>
- <el-dropdown trigger="click" type="primary" @command="handleCommand">
- <el-button type="primary">功能菜单<i class="el-icon-arrow-down el-icon--right"></i> </el-button>
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item icon="el-icon-printer" command="unSign">解除签收</el-dropdown-item>
- <el-dropdown-item icon="el-icon-printer" command="dismissCount" divided>出院患者统计</el-dropdown-item>
- <el-dropdown-item icon="el-icon-printer" command="exportLateData">导出迟交病案</el-dropdown-item>
- <el-dropdown-item icon="el-icon-printer" command="print1" divided>打印正面</el-dropdown-item>
- <el-dropdown-item icon="el-icon-printer" command="print2">打印反面</el-dropdown-item>
- <el-dropdown-item icon="el-icon-printer" command="confirmPrint">确认已打印</el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
- </el-header>
- <el-container>
- <el-aside width="270px">
- <el-table :data="overview.slice((currentPage - 1) * 15, currentPage * 15)" :height="tableHeight" stripe highlight-current-row @row-click="fetchSheetInfo">
- <el-table-column label="姓名" width="70">
- <template #default="scope">
- <img class="sex-icon" :src="scope.row.sex === 1 ? maleIcon : femaleIcon" />
- {{ scope.row.name }}
- </template>
- </el-table-column>
- <el-table-column label="住院号-次数" width="80">
- <template #default="scope">
- <span style="font-weight: bold; color: black">{{ scope.row.bah }}</span
- >-{{ scope.row.times }}
- </template>
- </el-table-column>
- <el-table-column prop="doctorName" label="医生" width="60"></el-table-column>
- <el-table-column prop="signDate" label="签收日期"></el-table-column>
- </el-table>
- <el-pagination small :hide-on-single-page="false" :page-size="15" layout="prev, pager, next" @current-change="handleCurrentPageChange" :total="overview.length">
- </el-pagination>
- </el-aside>
- <el-main>
- <div style="display: flex">
- <div :style="mainInfo">
- <div id="headpage">
- <HeadPage :patient="sheet" :dics="dics" />
- </div>
- <div id="tailpage" style="margin-left: 70px">
- <TailPage :patient="sheet" :dics="dics" />
- </div>
- </div>
- <div class="page-wrapper" :style="messageArea">
- <div class="page-inner">
- <el-tag type="success" size="small">当前科室CD型病例比例:{{ cdPercentage }}</el-tag>
- <div style="border-bottom: 1px solid black; margin: 6px 0 6px 0"></div>
- <div v-show="forceVerifies.length > 0" style="padding: 8px 0 4px 0; font-weight: bold">以下条目为强制要求,请完善。</div>
- <div v-for="(item, index) in forceVerifies" :key="index" class="message-item" :style="messageColor(index)" @click="handleClickMessage(item.code, index)">
- {{ index + 1 }}、{{ item.name }}
- </div>
- <div v-show="adviceVerifies.length > 0" style="padding: 8px 0 4px 0; font-weight: bold">以下条目为建议执行,不做强制要求。</div>
- <div v-for="(item, index) in adviceVerifies" :key="index" style="padding: 6px; margin-bottom: 6px; border-radius: 4px; background: #eea7a752; color: #ff2b2b">
- {{ index + 1 }}、{{ item.name }}
- </div>
- </div>
- </div>
- </div>
- </el-main>
- </el-container>
- <el-dialog v-model="showAdvanceSearch" title="高级条件检索" width="380px">
- <div style="margin-top: 5px">
- <el-tag type="info">医生条件</el-tag>
- <div style="margin-top: 5px">
- 医生姓名:<el-input v-model="advanceSearch.doctorName" style="width: 160px" clearable @click="showSearchData('advanceSearchDoctor')"></el-input>
- </div>
- </div>
- <div style="margin-top: 10px">
- <el-tag type="info">患者条件</el-tag>
- <div style="margin-top: 5px">
- 诊断编码:<el-input v-model="advanceSearch.icdCode" style="width: 160px" clearable @click="showSearchData('advanceSearchDiag')"></el-input>
- </div>
- <div style="margin-top: 5px">
- 手术编码:<el-input v-model="advanceSearch.surgeryCode" style="width: 160px" clearable @click="showSearchData('advanceSearchSurgery')"></el-input>
- </div>
- <div style="margin-top: 5px">
- 患者性别:
- <el-select v-model="advanceSearch.sex" style="width: 100px" clearable>
- <el-option v-for="item in dics.getSexCode" :key="item.code" :value="item.code" :label="item.name"></el-option>
- </el-select>
- </div>
- </div>
- <div style="width: 100%; text-align: right; margin-top: 15px">
- <el-button icon="el-icon-search" type="primary" @click="doAdvanceSearch">开始检索</el-button>
- </div>
- </el-dialog>
- <el-dialog v-model="showSearch" title="数据搜索" width="700px">
- 检索依据:
- <el-select v-model="searchMethod" style="width: 100px">
- <el-option v-for="item in searchMethods" :key="item.code" :label="item.name" :value="item.code"></el-option>
- </el-select>
- 搜索内容:
- <el-input
- ref="searchInput"
- v-model="searchContent"
- prefix-icon="el-icon-search"
- placeholder="请输入搜索内容"
- style="width: 160px"
- clearable
- @input="executeSearch"
- ></el-input>
- <el-table :data="searchResults" height="400" stripe highlight-current-row @row-click="handleSelectSearch">
- <el-table-column prop="code" label="编码" width="200"></el-table-column>
- <el-table-column prop="name" label="名称" width="450"></el-table-column>
- </el-table>
- <div style="margin-top: 15px; width: 100%; text-align: right">
- <el-button type="primary" icon="el-icon-arrow-left" @click="lastPage" :disabled="currentSRPage === 1">上一页</el-button>
- <el-button type="primary" icon="el-icon-arrow-right" @click="nextPage" :disabled="currentSRPage > 1 && searchResults.length < 10">下一页</el-button>
- </div>
- </el-dialog>
- <el-dialog v-model="showDismissCount" title="出院患者统计" width="70%">
- <el-date-picker v-model="dismissCountMonth" type="month" style="width: 110px" placeholder="请选择" :clearable="false"></el-date-picker>
- <el-select v-model="dismissCountType" style="width: 120px" @change="dismissCountdata = []">
- <el-option :value="1" label="按科室计数"></el-option>
- <el-option :value="2" label="按明细计数"></el-option>
- <el-option :value="3" label="死亡患者计数"></el-option>
- </el-select>
- <el-divider direction="vertical"></el-divider>
- <el-button icon="el-icon-search" type="primary" @click="fetchDismissCount">获取统计数据</el-button>
- <el-button icon="el-icon-download" type="primary" @click="exportDismissCount">导出Excel</el-button>
- <div v-if="dismissCountType === 1">
- <el-table :data="dismissCountdata" stripe height="360">
- <el-table-column prop="deptName" label="科室"></el-table-column>
- <el-table-column prop="dismissCount" label="出院人数"></el-table-column>
- <el-table-column prop="signedCount" label="已签收"></el-table-column>
- <el-table-column prop="unsignCount" label="未签收"></el-table-column>
- </el-table>
- </div>
- <div v-else>
- <el-table :data="dismissCountdata.slice((currentDismissCountPage - 1) * 10, currentDismissCountPage * 10)" stripe height="360">
- <el-table-column prop="patNo" label="住院号"></el-table-column>
- <el-table-column prop="times" label="住院次数"></el-table-column>
- <el-table-column prop="name" label="姓名"></el-table-column>
- <el-table-column prop="gender" label="性别"></el-table-column>
- <el-table-column prop="age" label="年龄"></el-table-column>
- <el-table-column prop="admissDate" label="入院时间"></el-table-column>
- <el-table-column v-if="dismissCountType === 2" prop="disDate" label="出院时间"></el-table-column>
- <el-table-column v-if="dismissCountType === 3" prop="disDate" label="死亡时间"></el-table-column>
- <el-table-column prop="inHospDays" label="住院天数"></el-table-column>
- <el-table-column prop="totalCharge" label="住院费用"></el-table-column>
- <el-table-column prop="admissDept" label="入院科室"></el-table-column>
- <el-table-column prop="disDept" label="出院科室"></el-table-column>
- <el-table-column prop="zkWard" label="转科科室"></el-table-column>
- <el-table-column prop="disDiag" label="出院主诊断"></el-table-column>
- <el-table-column prop="blfx" label="病例分型"></el-table-column>
- <el-table-column prop="kzr" label="科主任"></el-table-column>
- <el-table-column prop="zzys" label="主治医师"></el-table-column>
- <el-table-column prop="zyys" label="住院医师"></el-table-column>
- <el-table-column prop="fdcrb" label="法定传染病"></el-table-column>
- </el-table>
- <el-pagination
- :hide-on-single-page="false"
- :page-size="10"
- layout="prev, pager, next, total"
- @current-change="handleCurrentDismissCountPageChange"
- :total="dismissCountdata.length"
- >
- </el-pagination>
- </div>
- </el-dialog>
- </el-container>
- </template>
- <script>
- import { yesOrNo, haveOrNot, searchMethods, autopsies } from './common'
- import { computed, onActivated, onMounted, reactive, ref, watchEffect } from 'vue'
- import store from '@/store'
- import { operations } from '@/data/index'
- import {
- basOutPatients,
- executeAdvanceSearch,
- executeConfirmPrint,
- executePrintVerify,
- executeSaveVerify,
- executeUnArchiveBa,
- getAllDictionary,
- getAllWards,
- getSheetInfo,
- sheetSearch,
- analyzeDismissCount,
- } from '@/api/case-front-sheet'
- import maleIcon from '@/assets/male-icon.png'
- import femaleIcon from '@/assets/female-icon.png'
- import { ElMessage, ElMessageBox } from 'element-plus'
- import { shortcuts } from '@/data/shortcuts'
- import { formatDate, getOneMonthOffset } from '@/utils/date'
- import { initLodop, getLodop } from '@/utils/c-lodop'
- import { formatMonth } from '@/utils/date'
- import HeadPage from '../../../components/inpatient/frontsheet-printpage/HeadPage.vue'
- import TailPage from '../../../components/inpatient/frontsheet-printpage/TailPage.vue'
- import { Export } from '../../../utils/ExportExcel'
- export default {
- components: {
- HeadPage,
- TailPage,
- },
- setup() {
- const cdStyle = computed(() => {
- return {
- position: 'absolute',
- top: '77px',
- left: '590px',
- }
- })
- const currentPage = ref(1)
- const handleCurrentPageChange = (val) => {
- currentPage.value = val
- }
- const userWards = ref([])
- const windowSize = store.state.app.windowSize
- const tableHeight = windowSize.h - 75
- const overview = ref([])
- const sheet = ref({
- disdiagList: [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
- surgeryList: [{}, {}, {}, {}, {}],
- })
- const mainInfo = {
- height: windowSize.h - 45 + 'px',
- padding: '0 20px',
- overflowY: 'scroll',
- }
- const dics = ref({})
- const overviewParam = reactive({
- ward: '',
- start: '',
- end: '',
- fileStatus: '0',
- lateFlag: '3',
- bah: '',
- })
- const cdPercentage = ref('')
- const isLateDataMode = ref(false)
- const searchPatient = () => {
- overviewParam.start = formatDate(dateRange.value[0])
- overviewParam.end = formatDate(dateRange.value[1])
- basOutPatients(overviewParam).then((res) => {
- isLateDataMode.value = overviewParam.lateFlag === '1'
- cdPercentage.value = res.cdPercentage
- overview.value = res.list
- if (res.list.length === 1) {
- fetchSheetInfo(res.list[0])
- }
- })
- }
- const dateRange = ref([])
- const fetchSheetInfo = (row) => {
- if (row.bah !== sheet.value.bah || row.times !== sheet.value.admissTimes) {
- forceVerifies.value = []
- adviceVerifies.value = []
- }
- getSheetInfo(row.bah, row.times, 2).then((res) => {
- sheet.value = res
- })
- }
- const showSearch = ref(false)
- const insertDiag = ref(false)
- watchEffect(() => {
- if (showSearch.value) {
- searchResults.value = []
- setTimeout(() => {
- searchInput.value.focus()
- }, 300)
- } else {
- insertDiag.value = false
- }
- })
- const searchInput = ref(null)
- const searchUrl = ref('')
- const searchTargetCode = ref('')
- const searchTargetName = ref('')
- const searchContent = ref('')
- const currentSRPage = ref(1)
- const lastPage = () => {
- currentSRPage.value -= 1
- fetchSearchData()
- }
- const nextPage = () => {
- currentSRPage.value += 1
- fetchSearchData()
- }
- const fetchSearchData = () => {
- const param = {
- method: searchMethod.value,
- target: searchUrl.value,
- content: searchContent.value,
- responceType: sheet.value.responceType,
- page: currentSRPage.value,
- ybType: sheet.value.ybType,
- treatType: sheet.value.treatType,
- }
- sheetSearch(param).then((res) => {
- searchResults.value = res
- })
- }
- const executeSearch = () => {
- if (searchContent.value.length < 2 && searchContent.value !== '-') return
- currentSRPage.value = 1
- if (searchContent.value === '-') {
- searchResults.value = [{ code: '-', name: '-' }]
- } else {
- fetchSearchData()
- }
- }
- const showDismissCount = ref(false)
- const dismissCountdata = ref([])
- const dismissCountMonth = ref(formatMonth(new Date()))
- const dismissCountType = ref(1)
- const fetchDismissCount = () => {
- dismissCountMonth.value = formatMonth(dismissCountMonth.value)
- analyzeDismissCount(dismissCountType.value, dismissCountMonth.value).then((res) => {
- dismissCountdata.value = res
- })
- }
- const exportDismissCount = () => {
- if (dismissCountdata.value.length === 0) {
- ElMessage({
- message: '没有可以导出的数据!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return
- }
- let name = ''
- let title = {}
- if (dismissCountType.value === 1) {
- title = {
- deptName: '科室',
- dismissCount: '出院人数',
- signedCount: '已签收',
- unsignCount: '未签收',
- }
- name = '科室出院人数统计'
- } else {
- title = {
- patNo: '住院号',
- times: '住院次数',
- name: '姓名',
- gender: '性别',
- age: '年龄',
- admissDate: '入院时间',
- admissDept: '入院科室',
- zkWard: '转科科室',
- disDate: dismissCountType.value === 2 ? '出院时间' : '死亡时间',
- inHospDays: '住院天数',
- totalCharge: '住院费用',
- disDept: '出院科室',
- disDiag: '出院主诊断',
- blfx: '病例分型',
- kzr: '科主任',
- zzys: '主治医师',
- zyys: '住院医师',
- fdcrb: '法定传染病',
- }
- name = dismissCountType.value === 2 ? '出院明细统计' : '死亡患者统计'
- }
- const fileName = `【${dismissCountMonth.value}】${name}`
- Export(dismissCountdata.value, title, fileName)
- }
- const handleCommand = (val) => {
- switch (val) {
- case 'dismissCount':
- showDismissCount.value = true
- break
- case 'exportLateData':
- exportLateDataExel()
- break
- case 'print1':
- beforePrint(1)
- break
- case 'print2':
- beforePrint(2)
- break
- case 'confirmPrint':
- confirmCopyPrint()
- break
- case 'unSign':
- unArchiveBa()
- break
- }
- }
- const exportLateDataExel = () => {
- if (!isLateDataMode.value) {
- ElMessage({
- message: '请先查询迟交病案。',
- type: 'warning',
- duration: 2500,
- showClose: true,
- })
- return
- }
- if (overview.value.length === 0) {
- ElMessage({
- message: '没有可以导出的数据!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return
- }
- const title = {
- name: '姓名',
- genderName: '性别',
- bah: '住院号',
- times: '住院次数',
- bedNo: '床位',
- admissDate: '入院时间',
- disDate: '出院时间',
- deptName: '出院科室',
- doctorName: '管床医生',
- lateDays: '迟交天数',
- signDate: '签收日期',
- }
- Export(overview.value, title, '迟交病案')
- }
- const searchMethod = ref('alpha')
- const searchResults = ref([])
- const showSearchData = (flag) => {
- if (flag === 'advanceSearchDoctor') {
- searchUrl.value = 'employee'
- searchTargetCode.value = 'advanceSearch'
- searchTargetName.value = 'doctor'
- } else if (flag === 'advanceSearchDiag') {
- searchUrl.value = 'normalDiag'
- searchTargetCode.value = 'advanceSearch'
- searchTargetName.value = 'icd'
- } else {
- searchUrl.value = 'surgery'
- searchTargetCode.value = 'advanceSearch'
- searchTargetName.value = 'surgery'
- }
- showSearch.value = true
- }
- const showAdvanceSearch = ref(false)
- const advanceSearch = reactive({
- doctorCode: '',
- doctorName: '',
- icdCode: '',
- icdName: '',
- surgeryCode: '',
- surgeryName: '',
- sex: null,
- })
- const doAdvanceSearch = () => {
- advanceSearch.start = formatDate(dateRange.value[0])
- advanceSearch.end = formatDate(dateRange.value[1])
- if (!advanceSearch.doctorName) {
- advanceSearch.doctorCode = ''
- }
- executeAdvanceSearch(advanceSearch).then((res) => {
- overview.value = res
- showAdvanceSearch.value = false
- })
- }
- const handleSelectSearch = (item) => {
- switch (searchTargetName.value) {
- case 'doctor':
- advanceSearch.doctorCode = item.code
- advanceSearch.doctorName = item.name
- break
- case 'icd':
- advanceSearch.icdCode = item.code
- advanceSearch.icdName = item.name
- break
- case 'surgery':
- advanceSearch.surgeryCode = item.code
- advanceSearch.surgeryName = item.name
- break
- }
- searchContent.value = ''
- showSearch.value = false
- }
- const nullPatient = () => {
- if (!sheet.value.bah) {
- ElMessage({
- message: '请先选择患者!',
- type: 'warning',
- duration: 2500,
- showClose: true,
- })
- return true
- }
- return false
- }
- const beforePrint = (flag) => {
- if (nullPatient()) return
- const param = {
- sheet: sheet.value,
- }
- executePrintVerify(param)
- .then(() => {
- execPrint(flag)
- })
- .catch((e) => {
- forceVerifies.value = e.data.force
- adviceVerifies.value = e.data.advice
- if (e.data.force.length === 0) {
- execPrint(flag)
- }
- })
- }
- const execPrint = (flag) => {
- LODOP = getLodop()
- const prntStyle = `<style>*{font-size:10pt} table,th,td {border: 1px solid black;border-collapse: collapse;} td,th {height: 24px;padding-left: 4px;}</style>`
- const prntContent = flag === 1 ? document.getElementById('headpage').innerHTML : document.getElementById('tailpage').innerHTML
- let pagePrint = prntStyle + '<body>' + prntContent + '</body>'
- LODOP.PRINT_INIT('casefrontsheet')
- LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
- LODOP.SET_PRINT_MODE('FULL_WIDTH_FOR_OVERFLOW', true) // 整宽不变形
- LODOP.ADD_PRINT_HTM('2mm', '0.5mm', '209.5mm', '295mm', pagePrint)
- LODOP.SET_PRINT_STYLE('ItemType', 3)
- LODOP.PREVIEW()
- }
- const archiveBa = () => {
- if (nullPatient()) {
- return
- }
- const param = {
- opType: 2,
- sheet: sheet.value,
- }
- executeSaveVerify(param)
- .then((res) => {
- ElMessage({
- message: '操作成功。',
- type: 'success',
- duration: 2500,
- showClose: true,
- })
- })
- .catch((e) => {
- forceVerifies.value = e.data
- })
- }
- const unArchiveBa = () => {
- if (nullPatient()) {
- return
- }
- ElMessageBox.confirm('是否确认解除签收患者【' + sheet.value.name + '】的病案首页?', '提示', {
- type: 'warning',
- confirmButtonText: '解除签收',
- cancelButtonText: '取消',
- })
- .then(() => {
- const param = {
- opType: 3,
- sheet: sheet.value,
- }
- executeUnArchiveBa(param).then((res) => {
- ElMessage({
- message: res,
- type: 'success',
- duration: 2500,
- showClose: true,
- })
- })
- })
- .catch(() => {})
- }
- const confirmCopyPrint = () => {
- if (nullPatient()) {
- return
- }
- if (sheet.value.fileStatus === 2) {
- ElMessageBox.alert('此病案首页已确认过打印!', '提示', {
- showCancelButton: false,
- type: 'warning',
- }).then(() => {})
- return
- }
- ElMessageBox.confirm('是否确认患者【' + sheet.value.name + '】的病案首页已打印,此操作将不可逆转!', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- })
- .then(() => {
- executeConfirmPrint({ sheet: sheet.value }).then(() => {
- ElMessage({
- message: '操作成功',
- type: 'success',
- duration: 2500,
- showClose: true,
- })
- })
- })
- .catch(() => {})
- }
- const messageArea = {
- width: windowSize.w - 1380 + 'px',
- height: windowSize.h - 65 + 'px',
- padding: '0 16px',
- overflowY: 'scroll',
- }
- const forceVerifies = ref([])
- const adviceVerifies = ref([])
- const currentMessageIndex = ref(null)
- const messageColor = (id) => {
- return currentMessageIndex.value === id
- ? {
- background: '#ff2b2b',
- color: 'white',
- }
- : {
- background: '#eea7a752',
- color: '#ff2b2b',
- }
- }
- const handleClickMessage = (id, index) => {
- currentMessageIndex.value = index
- let ele = document.getElementById(id)
- let i = 0
- let timer = setInterval(() => {
- ele.style.background = i % 2 == 0 ? '#fd4343' : 'transparent'
- i++
- if (i > 5) {
- clearInterval(timer)
- }
- }, 500)
- }
- const currentDismissCountPage = ref(1)
- const handleCurrentDismissCountPageChange = (val) => {
- currentDismissCountPage.value = val
- }
- onActivated(() => {
- initLodop()
- })
- onMounted(() => {
- getAllDictionary().then((res) => {
- res.getOperations = operations
- res.getYesOrNo = yesOrNo
- res.getHaveOrNot = haveOrNot
- res.getAutopsies = autopsies
- dics.value = res
- getAllWards().then((res1) => {
- userWards.value = res1
- const t = getOneMonthOffset()
- dateRange.value[0] = t.start
- dateRange.value[1] = t.end
- })
- })
- })
- return {
- currentPage,
- handleCurrentPageChange,
- forceVerifies,
- adviceVerifies,
- messageColor,
- handleClickMessage,
- messageArea,
- cdStyle,
- maleIcon,
- femaleIcon,
- userWards,
- searchPatient,
- tableHeight,
- overview,
- mainInfo,
- sheet,
- dics,
- overviewParam,
- cdPercentage,
- searchMethods,
- fetchSheetInfo,
- showSearchData,
- showSearch,
- searchInput,
- searchContent,
- searchMethod,
- searchResults,
- currentSRPage,
- executeSearch,
- lastPage,
- nextPage,
- beforePrint,
- handleSelectSearch,
- dateRange,
- shortcuts,
- handleCommand,
- showAdvanceSearch,
- advanceSearch,
- doAdvanceSearch,
- showDismissCount,
- dismissCountdata,
- dismissCountMonth,
- dismissCountType,
- fetchDismissCount,
- exportDismissCount,
- archiveBa,
- currentDismissCountPage,
- handleCurrentDismissCountPageChange,
- }
- },
- }
- </script>
- <style scoped>
- :deep(.el-dialog__body) {
- padding-top: 0;
- }
- .keyboard {
- margin-left: 5px;
- padding: 0.2rem 0.4rem;
- font-size: 87.5%;
- color: #fff;
- background-color: #212529;
- border-radius: 0.2rem;
- }
- select,
- input {
- outline: none;
- border: none;
- height: 20px;
- line-height: 20px;
- border-radius: 0;
- background: transparent;
- border-bottom: 1px solid #333333;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- }
- input[type='number'] {
- -moz-appearance: textfield;
- }
- select ::-ms-expand {
- display: none;
- }
- textarea {
- outline: none;
- border: none;
- background-color: transparent;
- }
- table th {
- border: 1px solid black;
- text-align: center;
- }
- table td {
- border: 1px solid black;
- }
- .page-inner {
- padding: 10px 0 0 0;
- border-radius: 12px;
- text-align: justify;
- }
- .message-item {
- padding: 6px;
- margin-bottom: 6px;
- border-radius: 4px;
- }
- .message-item:hover {
- cursor: pointer;
- }
- .page-wrapper {
- position: relative;
- margin: 0 auto;
- background: #fff;
- border-radius: 20px;
- text-align: justify;
- /* 高斯模糊,过滤器 */
- filter: drop-shadow(0px 0px 15px #bbb);
- }
- </style>
|