Commit 50b0e0ea authored by 何鹏程's avatar 何鹏程

完成药品和抢救资源

parent 0477261e
import request from '../util/ajax'
export function queryEmergencyMedicalPageList(params) {
return request({
url: '/api/team/medical/queryEmergencyMedicalPageList',
method: 'POST',
data: params
})
}
export function addOrUpdateEmergencyMedical(params) {
return request({
url: '/api/team/medical/addOrUpdateEmergencyMedical',
method: 'POST',
data: params
})
}
export function queryInfoById(params) {
return request({
url: '/api/team/medical/queryInfoById',
method: 'POST',
data: params
})
}
export function deleteEmergencyMedical(params) {
return request({
url: '/api/team/medical/deleteEmergencyMedical',
method: 'POST',
data: params
})
}
import request from '../util/ajax'
export function queryTeamRescuePageList(params) {
return request({
url: '/api/team/rescue/queryTeamRescuePageList',
method: 'POST',
data: params
})
}
export function addOrUpdateEmergencyRescue(params) {
return request({
url: '/api/team/rescue/addOrUpdateEmergencyRescue',
method: 'POST',
data: params
})
}
export function queryInfoById(params) {
return request({
url: '/api/team/rescue/queryInfoById',
method: 'POST',
data: params
})
}
export function deleteEmergencyRescue(params) {
return request({
url: '/api/team/rescue/deleteEmergencyRescue',
method: 'POST',
data: params
})
}
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<el-radio label="1">胸痛中心</el-radio> <el-radio label="1">胸痛中心</el-radio>
<el-radio label="2">卒中中心</el-radio> <el-radio label="2">卒中中心</el-radio>
<el-radio label="3">创伤中心</el-radio> <el-radio label="3">创伤中心</el-radio>
<el-radio label="3">烧伤中心</el-radio> <el-radio label="4">烧伤中心</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<div class="btns"> <div class="btns">
...@@ -165,7 +165,7 @@ export default { ...@@ -165,7 +165,7 @@ export default {
}, },
{ {
name: '医院等次', name: '医院等次',
key: 'hospitalGrade', key: 'hospitalGradeStr',
sortable: false, sortable: false,
width: '100', width: '100',
fixed: false fixed: false
...@@ -255,10 +255,6 @@ export default { ...@@ -255,10 +255,6 @@ export default {
this.search() this.search()
}) })
}, },
isDutyFormatter(row, column, cellValue, index) {
const list = ['', '是', '否']
return list[cellValue] || ''
},
delHandler(id) { delHandler(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
......
<template>
<el-dialog
title="武汉市医院急救药品耗材资源信息填写"
:visible.sync="dialogVisible"
width="500px"
@closed="closedHandler"
:close-on-click-modal="false"
>
<el-form
ref="dataForm"
:model="dataForm"
size="small"
label-width="150px"
:rules="rules"
v-loading="loading"
>
<el-form-item
label="医院名称"
prop="hospitalCode"
>
<el-select
v-model="dataForm.hospitalCode"
placeholder="请选择医院"
style="width: 100%"
>
<el-option
v-for="item in hospitalList"
:label="item.hospitalName"
:key="item.id"
:value="item.hospitalCode"
/>
</el-select>
</el-form-item>
<el-form-item
prop="materialType"
label="类型"
>
<el-radio-group v-model="dataForm.materialType">
<el-radio :label="1">药品</el-radio>
<el-radio :label="2">耗材</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label="名称"
prop="materialName"
>
<el-input
placeholder="请输入名称"
v-model="dataForm.materialName"
/>
</el-form-item>
<el-form-item
label="库存数量"
prop="storeCount"
>
<el-input
placeholder="请输入库存数量"
v-model.number="dataForm.storeCount"
/>
</el-form-item>
<el-form-item
prop="storePlace"
label="所在位置"
>
<el-radio-group v-model="dataForm.storePlace">
<el-radio :label="1">急救车</el-radio>
<el-radio :label="2">药管处</el-radio>
<el-radio :label="3">医院急诊科</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<formItem
labelWidth="150px"
ref="formItem"
:formItemList="formItemList"
/>
<span
slot="footer"
class="dialog-footer"
>
<el-button
size="small"
@click="dialogVisible = false"
>取 消</el-button>
<el-button
type="primary"
size="small"
@click="submitForm()"
>确 定</el-button>
</span>
</el-dialog>
</template>
<script>
import { queryEmergencyHospitalList, queryExtendConfig } from '@/api/common'
import { queryInfoById, addOrUpdateEmergencyMedical } from '@/api/medical'
export default {
data() {
return {
dialogVisible: false,
loading: false,
dataForm: {
hospitalCode: '',
materialType: '',
materialName: '',
storeCount: '',
storePlace: ''
},
hospitalList: [],
formItemList: [],
rules: {
hospitalCode: [
{ required: true, message: '请选择医院' },
],
materialType: [
{ required: true, message: '请选择类型' },
],
materialName: [
{ required: true, message: '请输入名称' },
],
storeCount: [
{ required: true, message: '请输入库存数量' },
{ type: 'number', message: '请输入数字' }
],
storePlace: [
{ required: true, message: '请选择所在位置' },
]
}
}
},
mounted() {
//获取可选择的医院
queryEmergencyHospitalList().then(res => {
this.hospitalList = res.respData
})
queryExtendConfig({ tableType: 3 }).then(res => {
if (res.msg === 201 && res.respData && res.respData.length > 0) {
this.formItemList = res.respData
}
})
},
methods: {
init(type, id) {
this.dialogVisible = true
this.loading = true
this.type = type
if (type === 'update') {
if (!id) {
this.$message.error('id不能为空')
return
}
queryInfoById({ id: id }).then(res => {
if (res.msg === 201) {
this.dataForm = res.respData
if (res.respData && res.respData.extendValueDtoList && res.respData.extendValueDtoList.length > 0) {
this.$refs.formItem.init(res.respData.extendValueDtoList)
} else {
this.$refs.formItem.init([])
}
this.$nextTick(() => {
this.loading = false
this.$refs.dataForm.clearValidate()
})
} else {
this.$message.error(res.content);
}
})
} else {
this.dataForm = {}
this.$nextTick(() => {
this.loading = false
this.$refs.formItem.init([])
this.$refs.dataForm.clearValidate()
})
}
},
submitForm() {
this.$refs.dataForm.validate((valid) => {
if (valid) {
const params = {
...this.dataForm,
auditStatus: 1
}
const hospital = this.hospitalList.find(i => i.hospitalCode === this.dataForm.hospitalCode)
if (!hospital) {
this.$message.error('无效数据');
return
}
const { hospitalName, hospitalGrade, hospitalStep } = hospital
params.hospitalName = hospitalName
// params.hospitalGrade = hospitalGrade
// params.hospitalStep = hospitalStep
params.extendValueDtoList = this.$refs.formItem.getDataForm()
addOrUpdateEmergencyMedical(params).then(res => {
if (res.msg === 201) {
this.dialogVisible = false
this.$message.success('保存成功')
this.$emit('subsucc')
} else {
this.$message.error(res.content)
}
})
}
})
},
closedHandler() {
this.$refs.dataForm.resetFields()
}
}
}
</script>
<style>
</style>
\ No newline at end of file
<template> <template>
<div> <div class="main-page">
药品耗材 <div class="main-page-header">
<p class="title">急救药品耗材资源</p>
<el-form
:inline="true"
:model="searchForm"
ref="searchForm"
size="small"
>
<el-form-item
prop="hospitalCode"
label="医院名称"
>
<el-select
v-model="searchForm.hospitalCode"
placeholder="请选择医院"
style="width: 100%"
:clearable="true"
>
<el-option
v-for="item in hospitalList"
:label="item.hospitalName"
:key="item.id"
:value="item.hospitalCode"
/>
</el-select>
</el-form-item>
<el-form-item
prop="materialType"
label="类型"
>
<el-radio-group v-model="searchForm.materialType">
<el-radio label="">全部</el-radio>
<el-radio label="1">药品</el-radio>
<el-radio label="2">耗材</el-radio>
</el-radio-group>
</el-form-item>
<div class="btns">
<el-button
type="primary"
size="small"
@click="search"
>查询</el-button>
<el-button
size="small"
@click="resetForm('searchForm')"
>重置</el-button>
</div>
</el-form>
</div>
<div class="main-page-body">
<div class="mainContent">
<div class="bt">
<el-button
type="primary"
size="small"
@click="showSaveDialog()"
>新增</el-button>
</div>
<table-mixin
:pageSize="pageSize"
:pageNum="pageNum"
:total="total"
:pagination="pagination"
:handleSizeChange="handleSizeChange"
:handleCurrentChange="handleCurrentChange"
>
<el-table
v-loading="tableData.loading"
:data="tableData.body"
@sort-change="handleSortChange"
>
<div
slot="empty"
class="noData"
></div>
<el-table-column
label="序号"
type="index"
width="50"
>
</el-table-column>
<el-table-column
v-for="(item,index) in tableData.head"
:prop="item.key"
:label="item.name"
align="left"
:formatter="item.formatter"
:sortable="item.sortable"
:fixed="item.fixed"
:key="index"
:width="item.width"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="操作"
align="left"
width="auto"
min-width="200px"
>
<template slot-scope="scope">
<el-link
type="primary"
@click="showSaveDialog('update', scope.row.id)"
>修改</el-link>
<el-link
type="primary"
@click="delHandler(scope.row.id)"
>删除</el-link>
<el-link
type="primary"
v-if="scope.row.auditStatus === 1"
@click="auditHandler(scope.row.id)"
>审核</el-link>
</template>
</el-table-column>
</el-table>
</table-mixin>
<SaveDialog
ref="saveDialog"
@subsucc="search"
/>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { tableDataMixin } from '../../common/js/mixin'
import { queryEmergencyHospitalList } from '@/api/common'
import { queryEmergencyMedicalPageList, addOrUpdateEmergencyMedical, deleteEmergencyMedical } from '@/api/medical'
import SaveDialog from './components/saveDialog.vue'
export default { export default {
name: 'expertPage',
mixins: [tableDataMixin],
components: {
SaveDialog
},
data() {
return {
searchForm: {
hospitalCode: '',
materialType: ''
},
hospitalList: [],
tableData: {
loading: false,
head: [
{
name: '医院名称',
key: 'hospitalName',
sortable: false,
width: '200',
fixed: false
},
{
name: '类型',
key: 'materialTypeStr',
sortable: false,
width: '100',
fixed: false
},
{
name: '名称',
key: 'materialName',
sortable: false,
width: '200',
fixed: false
},
{
name: '库存',
key: 'storeCount',
sortable: false,
width: '150',
fixed: false
},
{
name: '所在位置',
key: 'storePlaceStr',
sortable: false,
width: '300',
fixed: false
},
{
name: '审核状态',
key: 'auditStatusStr',
sortable: false,
width: '100',
fixed: false
}
],
body: [],
option: [],
condition: []
}
}
},
mounted() {
//获取可选择的医院
queryEmergencyHospitalList().then(res => {
this.hospitalList = res.respData
})
this.search()
},
methods: {
getTableData() {
this.tableData.loading = true
const params = {
...this.searchForm,
pageNo: this.pageNum,
pageSize: this.pageSize
}
queryEmergencyMedicalPageList(params).then((res) => {
if (res.msg == 201) {
this.dealTableResponse(res)
} else {
this.$message.error(res.content)
}
})
},
showSaveDialog(type = 'add', id = '') {
this.$refs.saveDialog.init(type, id)
},
auditHandler(id) {
this.$confirm('是否审批通过?', '提示', {
confirmButtonText: '通过',
cancelButtonText: '拒绝',
distinguishCancelAndClose: true,
type: 'warning'
}).then(() => {
this.auditData(id, 2)
}).catch(action => {
if (action === 'cancel') {
this.auditData(id, 3)
}
})
},
auditData(id, auditStatus) {
addOrUpdateEmergencyMedical({ id: id, auditStatus: auditStatus }).then(res => {
if (res.msg === 201) {
this.$message.success('操作成功!')
} else {
this.$message.error(res.content)
}
this.search()
})
},
delHandler(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteEmergencyMedical({ id: id }).then(res => {
if (res.msg === 201) {
this.$message.success('删除成功!')
} else {
this.$message.error(res.content)
}
this.search()
})
})
}
}
} }
</script> </script>
<style lang="scss" scoped>
<style> .mainContent {
padding: 20px;
.bt {
text-align: right;
margin-bottom: 16px;
}
}
</style> </style>
<template>
<el-dialog
title="武汉市医院急诊科资源信息填写"
:visible.sync="dialogVisible"
width="500px"
@closed="closedHandler"
:close-on-click-modal="false"
>
<el-form
ref="dataForm"
:model="dataForm"
size="small"
label-width="150px"
:rules="rules"
v-loading="loading"
>
<el-form-item
label="医院名称"
prop="hospitalCode"
>
<el-select
v-model="dataForm.hospitalCode"
placeholder="请选择医院"
style="width: 100%"
>
<el-option
v-for="item in hospitalList"
:label="item.hospitalName"
:key="item.id"
:value="item.hospitalCode"
/>
</el-select>
</el-form-item>
<el-form-item
label="ICU床位数量"
prop="icuBedCount"
>
<el-input
placeholder="请输入ICU床位数量"
v-model.number="dataForm.icuBedCount"
/>
</el-form-item>
<el-form-item
label="ICU空闲数量"
prop="icuBedFreeCount"
>
<el-input
placeholder="请输入ICU空闲数量"
v-model.number="dataForm.icuBedFreeCount"
/>
</el-form-item>
<el-form-item
label="导管室数量"
prop="cathLabCount"
>
<el-input
placeholder="请输入导管室数量"
v-model.number="dataForm.cathLabCount"
/>
</el-form-item>
<el-form-item
label="导管室空闲数量"
prop="cathLabFreeCount"
>
<el-input
placeholder="请输入导管室空闲数量"
v-model.number="dataForm.cathLabFreeCount"
/>
</el-form-item>
<el-form-item
label="手术室数量"
prop="operateRoomCount"
>
<el-input
placeholder="请输入手术室数量"
v-model.number="dataForm.operateRoomCount"
/>
</el-form-item>
<el-form-item
label="手术室空闲数量"
prop="operateRoomFreeCount"
>
<el-input
placeholder="请输入手术室空闲数量"
v-model.number="dataForm.operateRoomFreeCount"
/>
</el-form-item>
</el-form>
<formItem
labelWidth="150px"
ref="formItem"
:formItemList="formItemList"
/>
<span
slot="footer"
class="dialog-footer"
>
<el-button
size="small"
@click="dialogVisible = false"
>取 消</el-button>
<el-button
type="primary"
size="small"
@click="submitForm()"
>确 定</el-button>
</span>
</el-dialog>
</template>
<script>
import { queryEmergencyHospitalList, queryExtendConfig } from '@/api/common'
import { queryInfoById, addOrUpdateEmergencyRescue } from '@/api/rescue'
export default {
data() {
return {
dialogVisible: false,
loading: false,
dataForm: {
hospitalCode: '',
icuBedCount: '',
icuBedFreeCount: '',
cathLabCount: '',
cathLabFreeCount: '',
operateRoomCount: '',
operateRoomFreeCount: ''
},
hospitalList: [],
formItemList: [],
rules: {
hospitalCode: [
{ required: true, message: '请选择医院' },
],
icuBedCount: [
{ required: true, message: '请输入ICU床位数量' },
{ type: 'number', message: '请输入数字' }
],
icuBedFreeCount: [
{ type: 'number', message: '请输入数字' }
],
cathLabCount: [
{ required: true, message: '请输入导管室数量' },
{ type: 'number', message: '请输入数字' }
],
cathLabFreeCount: [
{ type: 'number', message: '请输入数字' }
],
operateRoomCount: [
{ required: true, message: '请输入手术室数量' },
{ type: 'number', message: '请输入数字' }
],
operateRoomFreeCount: [
{ type: 'number', message: '请输入数字' }
]
}
}
},
mounted() {
//获取可选择的医院
queryEmergencyHospitalList().then(res => {
this.hospitalList = res.respData
})
queryExtendConfig({ tableType: 4 }).then(res => {
if (res.msg === 201 && res.respData && res.respData.length > 0) {
this.formItemList = res.respData
}
})
},
methods: {
init(type, id) {
this.dialogVisible = true
this.loading = true
this.type = type
if (type === 'update') {
if (!id) {
this.$message.error('id不能为空')
return
}
queryInfoById({ id: id }).then(res => {
if (res.msg === 201) {
this.dataForm = res.respData
if (res.respData && res.respData.extendValueDtoList && res.respData.extendValueDtoList.length > 0) {
this.$refs.formItem.init(res.respData.extendValueDtoList)
} else {
this.$refs.formItem.init([])
}
this.$nextTick(() => {
this.loading = false
this.$refs.dataForm.clearValidate()
})
} else {
this.$message.error(res.content);
}
})
} else {
this.dataForm = {}
this.$nextTick(() => {
this.loading = false
this.$refs.formItem.init([])
this.$refs.dataForm.clearValidate()
})
}
},
submitForm() {
this.$refs.dataForm.validate((valid) => {
if (valid) {
const params = {
...this.dataForm,
auditStatus: 1
}
const hospital = this.hospitalList.find(i => i.hospitalCode === this.dataForm.hospitalCode)
if (!hospital) {
this.$message.error('无效数据');
return
}
const { hospitalName, hospitalGrade, hospitalStep } = hospital
params.hospitalName = hospitalName
params.hospitalGrade = hospitalGrade
params.hospitalStep = hospitalStep
params.extendValueDtoList = this.$refs.formItem.getDataForm()
addOrUpdateEmergencyRescue(params).then(res => {
if (res.msg === 201) {
this.dialogVisible = false
this.$message.success('保存成功')
this.$emit('subsucc')
} else {
this.$message.error(res.content)
}
})
}
})
},
closedHandler() {
this.$refs.dataForm.resetFields()
}
}
}
</script>
<style>
</style>
\ No newline at end of file
<template> <template>
<div> <div class="main-page">
抢救资源 <div class="main-page-header">
<p class="title">急诊科抢救资源</p>
<el-form
:inline="true"
:model="searchForm"
ref="searchForm"
size="small"
>
<el-form-item
prop="hospitalCode"
label="医院名称"
>
<el-select
v-model="searchForm.hospitalCode"
placeholder="请选择医院"
style="width: 100%"
:clearable="true"
>
<el-option
v-for="item in hospitalList"
:label="item.hospitalName"
:key="item.id"
:value="item.hospitalCode"
/>
</el-select>
</el-form-item>
<div class="btns">
<el-button
type="primary"
size="small"
@click="search"
>查询</el-button>
<el-button
size="small"
@click="resetForm('searchForm')"
>重置</el-button>
</div>
</el-form>
</div>
<div class="main-page-body">
<div class="mainContent">
<div class="bt">
<el-button
type="primary"
size="small"
@click="showSaveDialog()"
>新增</el-button>
</div>
<table-mixin
:pageSize="pageSize"
:pageNum="pageNum"
:total="total"
:pagination="pagination"
:handleSizeChange="handleSizeChange"
:handleCurrentChange="handleCurrentChange"
>
<el-table
v-loading="tableData.loading"
:data="tableData.body"
@sort-change="handleSortChange"
>
<div
slot="empty"
class="noData"
></div>
<el-table-column
label="序号"
type="index"
width="50"
>
</el-table-column>
<el-table-column
v-for="(item,index) in tableData.head"
:prop="item.key"
:label="item.name"
align="left"
:formatter="item.formatter"
:sortable="item.sortable"
:fixed="item.fixed"
:key="index"
:width="item.width"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="操作"
align="left"
width="auto"
min-width="200px"
>
<template slot-scope="scope">
<el-link
type="primary"
@click="showSaveDialog('update', scope.row.id)"
>修改</el-link>
<el-link
type="primary"
@click="delHandler(scope.row.id)"
>删除</el-link>
<el-link
type="primary"
v-if="scope.row.auditStatus === 1"
@click="auditHandler(scope.row.id)"
>审核</el-link>
</template>
</el-table-column>
</el-table>
</table-mixin>
<SaveDialog
ref="saveDialog"
@subsucc="search"
/>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { tableDataMixin } from '../../common/js/mixin'
import { queryEmergencyHospitalList } from '@/api/common'
import { queryTeamRescuePageList, addOrUpdateEmergencyRescue, deleteEmergencyRescue } from '@/api/rescue'
import SaveDialog from './components/saveDialog.vue'
export default { export default {
name: 'expertPage',
mixins: [tableDataMixin],
components: {
SaveDialog
},
data() {
return {
searchForm: {
hospitalCode: ''
},
hospitalList: [],
tableData: {
loading: false,
head: [
{
name: '医院名称',
key: 'hospitalName',
sortable: false,
width: '200',
fixed: false
},
{
name: '医院级别',
key: 'hospitalStepStr',
sortable: false,
width: '100',
fixed: false
},
{
name: '医院等次',
key: 'hospitalGradeStr',
sortable: false,
width: '100',
fixed: false
},
{
name: '导管室数量',
key: 'cathLabCount',
sortable: false,
width: '150',
fixed: false
},
{
name: '手术室数量',
key: 'operateRoomCount',
sortable: false,
width: '300',
fixed: false
},
{
name: 'ICU空床',
key: 'icuBedCount',
sortable: false,
width: '80',
fixed: false
},
{
name: '审核状态',
key: 'auditStatusStr',
sortable: false,
width: '100',
fixed: false
}
],
body: [],
option: [],
condition: []
}
}
},
mounted() {
//获取可选择的医院
queryEmergencyHospitalList().then(res => {
this.hospitalList = res.respData
})
this.search()
},
methods: {
getTableData() {
this.tableData.loading = true
const params = {
...this.searchForm,
pageNo: this.pageNum,
pageSize: this.pageSize
}
queryTeamRescuePageList(params).then((res) => {
if (res.msg == 201) {
this.dealTableResponse(res)
} else {
this.$message.error(res.content)
}
})
},
showSaveDialog(type = 'add', id = '') {
this.$refs.saveDialog.init(type, id)
},
auditHandler(id) {
this.$confirm('是否审批通过?', '提示', {
confirmButtonText: '通过',
cancelButtonText: '拒绝',
distinguishCancelAndClose: true,
type: 'warning'
}).then(() => {
this.auditData(id, 2)
}).catch(action => {
if (action === 'cancel') {
this.auditData(id, 3)
}
})
},
auditData(id, auditStatus) {
addOrUpdateEmergencyRescue({ id: id, auditStatus: auditStatus }).then(res => {
if (res.msg === 201) {
this.$message.success('操作成功!')
} else {
this.$message.error(res.content)
}
this.search()
})
},
delHandler(id) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteEmergencyRescue({ id: id }).then(res => {
if (res.msg === 201) {
this.$message.success('删除成功!')
} else {
this.$message.error(res.content)
}
this.search()
})
})
}
}
} }
</script> </script>
<style lang="scss" scoped>
<style> .mainContent {
padding: 20px;
.bt {
text-align: right;
margin-bottom: 16px;
}
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment