mirror of
https://gitee.com/xiongmao1988/rax-medical.git
synced 2025-08-24 13:04:57 +08:00
parent
c510dc4ba6
commit
02d6c44956
|
@ -1,24 +1,24 @@
|
||||||
import * as XLSX from "xlsx"
|
import * as XLSX from "xlsx"
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import {ElMessage, ElMessageBox} from 'element-plus'
|
||||||
import { dateFormater } from '@/utils/date-util'
|
import {dateFormater} from '@/utils/date-util'
|
||||||
import {downBlobFile} from "@/utils/file-util";
|
import {downBlobFile} from "@/utils/file-util";
|
||||||
|
|
||||||
export const tableRemoveRow = (params: any, callback: (res: boolean) => void) => {
|
export const tableRemoveRow = (params: any, callback: (res: boolean) => void) => {
|
||||||
if (!params.data) params.data = []
|
if (!params.data) params.data = []
|
||||||
if (Array.isArray(params.data)) {
|
if (Array.isArray(params.data)) {
|
||||||
if (params.data.length < 1) {
|
if (params.data.length < 1) {
|
||||||
ElMessageBox.alert('请至少选择一条数据进行删除', '系统提醒', { type: 'warning', draggable: true })
|
ElMessageBox.alert('请至少选择一条数据进行删除', '系统提醒', {type: 'warning', draggable: true})
|
||||||
return callback(false)
|
return callback(false)
|
||||||
}
|
}
|
||||||
ElMessageBox.confirm(
|
ElMessageBox.confirm(
|
||||||
params.batchRemoveTip || '是否确认删除选中的' + params.data.length + '条数据?此操作将永久删除',
|
params.batchRemoveTip || '是否确认删除选中的' + params.data.length + '条数据?此操作将永久删除',
|
||||||
'系统提醒',
|
'系统提醒',
|
||||||
{
|
{
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
draggable: true
|
draggable: true
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
callback(true)
|
callback(true)
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
@ -26,14 +26,14 @@ export const tableRemoveRow = (params: any, callback: (res: boolean) => void) =>
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessageBox.confirm(
|
ElMessageBox.confirm(
|
||||||
params.removeTip || '此操作将永久删除',
|
params.removeTip || '此操作将永久删除',
|
||||||
'系统提醒',
|
'系统提醒',
|
||||||
{
|
{
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
draggable: true
|
draggable: true
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
callback(true)
|
callback(true)
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
@ -47,25 +47,23 @@ export const exportData = (fileName: string, data: Array<any>) => {
|
||||||
deptId: "",
|
deptId: "",
|
||||||
phone: "",
|
phone: "",
|
||||||
username: ""
|
username: ""
|
||||||
}, "users.xlsx")
|
}, "users.xlsx")
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param fileName
|
* @param fileName
|
||||||
* @param data
|
* @param data
|
||||||
* @param sheetNameKey data中的键名 对应表页名称
|
* @param sheetNameKey data中的键名 对应表页名称
|
||||||
* @param sheetDataKey data中的键名 对应表数据
|
* @param sheetDataKey data中的键名 对应表数据
|
||||||
*/
|
*/
|
||||||
export const exportMultiData = (fileName: string, data: Array<any>, sheetNameKey: string, sheetDataKey: string) => {
|
export const exportMultiData = (fileName: string, data: Array<any>) => {
|
||||||
if(data.length < 1) return
|
if (data.length < 1) return
|
||||||
const wb = XLSX.utils.book_new();
|
const wb = XLSX.utils.book_new();
|
||||||
data.forEach(item => {
|
XLSX.utils.book_append_sheet(
|
||||||
XLSX.utils.book_append_sheet(
|
|
||||||
wb,
|
wb,
|
||||||
XLSX.utils.json_to_sheet(item[sheetDataKey]),
|
XLSX.utils.json_to_sheet(data),
|
||||||
item[sheetNameKey] instanceof Date ? dateFormater('yyyy-MM-dd HH:mm:ss', item[sheetNameKey]) : item[sheetNameKey]
|
"Sheet1"
|
||||||
)
|
)
|
||||||
})
|
|
||||||
XLSX.writeFile(wb, fileName + '.xls'); // 导出Excel
|
XLSX.writeFile(wb, fileName + '.xls'); // 导出Excel
|
||||||
}
|
}
|
|
@ -1,30 +1,30 @@
|
||||||
<template>
|
<template>
|
||||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="100" :disabled="type === 'view'">
|
<el-form ref="formRef" :model="formData" :rules="rules" label-width="100" :disabled="type === 'view'">
|
||||||
<el-form-item label="类型" prop="type">
|
<!-- <el-form-item label="类型" prop="type">
|
||||||
<el-input :model-value="formData.type"></el-input>
|
<el-input :model-value="formData.type"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>-->
|
||||||
<el-form-item label="标题" prop="title">
|
<el-form-item label="标题" prop="title">
|
||||||
<el-input :model-value="formData.title"></el-input>
|
<el-input :model-value="formData.title"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="IP地址" prop="ip">
|
<el-form-item label="IP地址" prop="remoteAddr">
|
||||||
<el-input :model-value="formData.ip"></el-input>
|
<el-input :model-value="formData.remoteAddr"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="请求方式" prop="requestMethod">
|
<el-form-item label="请求方式" prop="method">
|
||||||
<el-input :model-value="formData.requestMethod"></el-input>
|
<el-input :model-value="formData.method"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="请求时间" prop="requestTime">
|
<el-form-item label="请求时间" prop="createTime">
|
||||||
<el-input :model-value="dateFormater('yyyy-MM-dd HH:mm:ss', formData.requestTime)"></el-input>
|
<el-input :model-value="dateFormater('yyyy-MM-dd HH:mm:ss', formData.createTime)"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="操作人" prop="operator">
|
<el-form-item label="操作人" prop="createBy">
|
||||||
<el-input :model-value="formData.operator"></el-input>
|
<el-input :model-value="formData.createBy"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { onMounted, reactive, ref, toRefs, watch } from 'vue'
|
import {onMounted, reactive, ref, toRefs, watch} from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import {ElMessage, ElMessageBox} from 'element-plus'
|
||||||
import { dateFormater } from '@/utils/date-util'
|
import {dateFormater} from '@/utils/date-util'
|
||||||
|
|
||||||
const emit = defineEmits(['close'])
|
const emit = defineEmits(['close'])
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ const props = defineProps({
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
type: [
|
type: [
|
||||||
{ required: true, message: '请选择类型', trigger: ['blur', 'change'] },
|
{required: true, message: '请选择类型', trigger: ['blur', 'change']},
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -57,9 +57,11 @@ defineExpose({
|
||||||
formData,
|
formData,
|
||||||
resetData,
|
resetData,
|
||||||
})
|
})
|
||||||
|
|
||||||
function close() {
|
function close() {
|
||||||
emit('close')
|
emit('close')
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetData() {
|
function resetData() {
|
||||||
formRef.value.resetFields()
|
formRef.value.resetFields()
|
||||||
formData.value = {
|
formData.value = {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<div class="button-part" style="justify-content: space-between;">
|
<div class="button-part" style="justify-content: space-between;">
|
||||||
<el-button icon="Delete" @click="removeData()">删除</el-button>
|
<el-button icon="Delete" @click="removeData()">删除</el-button>
|
||||||
<TableAbility @searchBtn="isSearch = !isSearch" @refreshBtn="init"
|
<TableAbility @searchBtn="isSearch = !isSearch" @refreshBtn="init"
|
||||||
@downloadBtn="exportData('日志数据', tableData)"></TableAbility>
|
@downloadBtn="exportMultiData('日志数据', tableData)"></TableAbility>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-part">
|
<div class="table-part">
|
||||||
<el-table ref="tableRef" v-loading="loading" :data="tableData" height="100%" border show-overflow-tooltip
|
<el-table ref="tableRef" v-loading="loading" :data="tableData" height="100%" border show-overflow-tooltip
|
||||||
|
@ -63,7 +63,7 @@ import {onMounted, ref} from 'vue'
|
||||||
import LoginChart from './chart/login-chart.vue'
|
import LoginChart from './chart/login-chart.vue'
|
||||||
import CommonPagination from '@/components/common-pagination.vue'
|
import CommonPagination from '@/components/common-pagination.vue'
|
||||||
import LogForm from './form/log-form.vue'
|
import LogForm from './form/log-form.vue'
|
||||||
import {exportData, tableRemoveRow} from '@/utils/table-util'
|
import {exportData, exportMultiData, tableRemoveRow} from '@/utils/table-util'
|
||||||
import {dateFormater} from '@/utils/date-util'
|
import {dateFormater} from '@/utils/date-util'
|
||||||
import * as logManageApi from '@/api/log-manage'
|
import * as logManageApi from '@/api/log-manage'
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
|
@ -127,6 +127,7 @@ const viewData = (e: any) => {
|
||||||
formDialogTitle.value = '详情'
|
formDialogTitle.value = '详情'
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
logFormRef.value.resetData()
|
logFormRef.value.resetData()
|
||||||
|
console.log(e)
|
||||||
logFormRef.value.formData = JSON.parse(JSON.stringify(e))
|
logFormRef.value.formData = JSON.parse(JSON.stringify(e))
|
||||||
}, 0)
|
}, 0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,48 +18,25 @@
|
||||||
<el-input v-model="formData.性别" readonly placeholder="请输入" ></el-input>
|
<el-input v-model="formData.性别" readonly placeholder="请输入" ></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="科室" prop="科室" :label-width="rightWidth">
|
<el-form-item label="身高" prop="身高">
|
||||||
<el-input v-model="formData.科室" readonly placeholder="请输入" ></el-input>
|
<el-input v-model="formData.身高" readonly placeholder="请输入身高"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="gutter">
|
<el-row :gutter="gutter">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="身高" prop="身高">
|
<el-form-item label="体重" prop="体重">
|
||||||
<el-input v-model="formData.身高" readonly placeholder="请输入身高"></el-input>
|
<el-input v-model="formData.体重" readonly placeholder="请输入体重"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="有无病史" prop="有无病史" :label-width="rightWidth">
|
<el-form-item label="年龄" prop="年龄">
|
||||||
<el-input v-model="formData.有无病史" readonly placeholder="请输入身高"></el-input>
|
<el-input v-model="formData.年龄" readonly placeholder="请输入年龄"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="gutter">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="体重" prop="体重">
|
|
||||||
<el-input v-model="formData.体重" readonly placeholder="请输入体重"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="病史名称" prop="病史名称" :label-width="rightWidth">
|
|
||||||
<el-input v-model="formData.病史名称" readonly placeholder="请输入病史"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="gutter">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="年龄" prop="年龄">
|
|
||||||
<el-input v-model="formData.年龄" readonly placeholder="请输入年龄"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="过敏史名称" prop="过敏史名称" :label-width="rightWidth">
|
|
||||||
<el-input v-model="formData.过敏史名称" readonly placeholder="请输入过敏史"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="gutter">
|
<el-row :gutter="gutter">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="电话" prop="电话">
|
<el-form-item label="电话" prop="电话">
|
||||||
|
@ -67,22 +44,15 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="住院时间" prop="住院时间" :label-width="rightWidth">
|
<el-form-item label="手术时间" prop="住院时间" :label-width="rightWidth">
|
||||||
<el-input v-model="formData.住院时间" readonly placeholder="请输入住院时间"/>
|
<el-input v-model="formData.住院时间" readonly placeholder="请输入住院时间"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- <div v-if="type === 'add'" style="text-align: right;">
|
|
||||||
<el-button class="f18" @click="close">取消</el-button>
|
|
||||||
<el-button class="f18" type="primary" @click="saveData">确认</el-button>
|
|
||||||
</div>-->
|
|
||||||
<!-- <div v-else-if="type === 'edit'" style="text-align: right;">-->
|
|
||||||
<div style="text-align: right;">
|
|
||||||
<el-button class="f18" @click="close">取消</el-button>
|
|
||||||
<!-- <el-button class="f18" type="primary" @click="saveData">更新</el-button>-->
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<div style="text-align: right;">
|
||||||
|
<el-button class="f18" @click="close">取消</el-button>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<TableAbility :isDownload="tableData && tableData.length > 0" @searchBtn="isSearch = !isSearch"
|
<TableAbility :isDownload="tableData && tableData.length > 0" @searchBtn="isSearch = !isSearch"
|
||||||
@refreshBtn="queryData(queryParams)"
|
@refreshBtn="queryData(queryParams)"
|
||||||
|
|
||||||
@downloadBtn="exportMultiData('电子病史', tableData, 'startTime', 'data')">
|
@downloadBtn="exportMultiData('电子病史', tableData)">
|
||||||
</TableAbility>
|
</TableAbility>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -481,7 +481,9 @@ const viewPatientInfo = () => {
|
||||||
currentRemote.value.date).then(res => {
|
currentRemote.value.date).then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
patientsFormRef.value.resetData()
|
patientsFormRef.value.resetData()
|
||||||
patientsFormRef.value.formData = JSON.parse(JSON.stringify(res.data))
|
const formData = JSON.parse(JSON.stringify(res.data))
|
||||||
|
formData.性别 = formData.性别 == 'M' ? '男' : "女"
|
||||||
|
patientsFormRef.value.formData = formData
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user