前端最新版本同步
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
</div>
|
||||
<div class="medicalOrderList-table">
|
||||
<el-table :data="drugDistributionDetailData" v-if="searchForm.isDetails == '1'" row-key="id"
|
||||
default-expand-all
|
||||
style="width: 100%; height: 100%" border :span-method="arraySpanMethod" show-overflow-tooltip>
|
||||
<el-table-column type="selection" />
|
||||
<el-table-column label="类型" prop="name" min-width=" 60px">
|
||||
@@ -129,8 +130,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
<script setup >
|
||||
import { ref } from 'vue';
|
||||
|
||||
const searchForm = ref({
|
||||
drugType: '1',
|
||||
isDetails: '1',
|
||||
@@ -155,7 +157,7 @@ const drugDistributionDetailData = ref([
|
||||
gender: '男',
|
||||
content: '维生素B12注射液【1ml:0.5mg*1】 ',
|
||||
dates: [{
|
||||
date: '05/04',
|
||||
date: '09/04',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
@@ -166,7 +168,7 @@ const drugDistributionDetailData = ref([
|
||||
checked: false
|
||||
}]
|
||||
}, {
|
||||
date: '05/05',
|
||||
date: '09/05',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
@@ -278,7 +280,7 @@ const arraySpanMethod = ({
|
||||
column,
|
||||
rowIndex,
|
||||
columnIndex,
|
||||
}: any) => {
|
||||
}) => {
|
||||
// console.log(row, column, rowIndex, columnIndex);
|
||||
// 如果是父级行
|
||||
if (row.children && row.children.length > 0) {
|
||||
|
||||
@@ -85,3 +85,11 @@ export function childLocationList(queryParams) {
|
||||
params: queryParams
|
||||
})
|
||||
}
|
||||
|
||||
export function getPractitionerWard(queryParams) {
|
||||
return request({
|
||||
url: '/app-common/practitioner-ward',
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<el-select v-model="queryParams.wardId" @change="changeWardLocationId">
|
||||
<el-option
|
||||
v-for="item in initInfoOptions.wardListOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -180,7 +180,7 @@
|
||||
<script setup lang="ts">
|
||||
import { getCurrentInstance, onBeforeMount, onMounted, reactive, ref, computed } from 'vue'
|
||||
import { TransferInDialog, SignEntryDialog } from './index'
|
||||
import { getPendingInfo, getBedInfo, getInit, childLocationList } from './api'
|
||||
import { getPendingInfo, getBedInfo, getInit, childLocationList, getPractitionerWard } from './api'
|
||||
import { formatDate } from '@/utils/index';
|
||||
import { init } from '../../../basicmanage/consumablesBinding/components/api';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
@@ -242,10 +242,13 @@ onMounted(() => {
|
||||
getInit().then(res => {
|
||||
initInfoOptions.value = res.data
|
||||
priorityOptions.value = res.data.priorityOptions || []
|
||||
queryParams.value.wardId = res.data.wardListOptions[0].value
|
||||
changeWardLocationId(res.data.wardListOptions[0].value)
|
||||
getList()
|
||||
})
|
||||
getPractitionerWard().then(res => {
|
||||
queryParams.value.wardId = res[0].id
|
||||
initInfoOptions.value.wardListOptions = res
|
||||
changeWardLocationId(res[0].id)
|
||||
})
|
||||
})
|
||||
defineExpose({ state })
|
||||
|
||||
|
||||
@@ -154,6 +154,7 @@
|
||||
import { getPrescriptionList } from './api';
|
||||
import { patientInfoList } from '../store/patient.js';
|
||||
import { formatDate, formatDateStr } from '@/utils/index';
|
||||
import { ref, getCurrentInstance } from 'vue';
|
||||
|
||||
const activeNames = ref([]);
|
||||
const prescriptionList = ref([]);
|
||||
|
||||
@@ -0,0 +1,344 @@
|
||||
<!--
|
||||
* @Author: sjjh
|
||||
* @Date: 2025-09-09 13:49:40
|
||||
* @Description: 药品发送
|
||||
-->
|
||||
<template>
|
||||
<div class="medicineCollect-container">
|
||||
<div class="patientList-container">
|
||||
<el-input v-model="searchValue" style="width: 240px" placeholder="床号/姓名" />
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
style="max-width: 600px"
|
||||
default-expand-all
|
||||
:data="data"
|
||||
show-checkbox
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
/></div>
|
||||
<div class="medicineList-container">
|
||||
<div class="filter-container">
|
||||
<el-space>
|
||||
<el-select v-model="tableFilterForm.type" placeholder="药品类型" style="width: 240px">
|
||||
<el-option key="1" label="西药" value="1"/>
|
||||
<el-option key="2" label="中药" value="2"/>
|
||||
</el-select>
|
||||
<el-select v-model="tableFilterForm.type" placeholder="医嘱类型" style="width: 240px">
|
||||
<el-option key="0" label="全部" value="0"/>
|
||||
<el-option key="1" label="长期" value="1"/>
|
||||
<el-option key="2" label="临时" value="2"/>
|
||||
</el-select>
|
||||
<span>截止时间</span>
|
||||
<el-date-picker
|
||||
v-model="tableFilterForm.endTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择日期"
|
||||
/>
|
||||
<el-select v-model="tableFilterForm.dept" placeholder="领药科室" style="width: 240px">
|
||||
<el-option key="0" label="住院西药房" value="0"/>
|
||||
<el-option key="1" label="住院东药房" value="1"/>
|
||||
<el-option key="2" label="住院北药房" value="2"/>
|
||||
<el-option key="3" label="住院南药房" value="3"/>
|
||||
</el-select>
|
||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
||||
<el-button type="primary" @click="collectDrug">领药申请</el-button>
|
||||
</el-space>
|
||||
<el-space>
|
||||
|
||||
</el-space>
|
||||
</div>
|
||||
<el-table :data="collectTsableData" row-key="id" style="width: 100%; height: 100%" border
|
||||
:span-method="arraySpanMethod">
|
||||
<el-table-column type="selection" />
|
||||
<el-table-column label="类型" prop="name" width="140">
|
||||
<template #default="{ row }">
|
||||
<span v-if="!row.children">长期/西药</span>
|
||||
<template v-else>
|
||||
{{ row.name }} 11 床【000000001】 林俊杰 女/24 重 1级 自费 主诊断 医生:医生甲 预交金:1990.3
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="医嘱内容" prop="content" min-width="300px">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.children">{{ row.content }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="用法" prop="gender">
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" prop="gender">
|
||||
</el-table-column>
|
||||
<el-table-column label="金额" prop="gender">
|
||||
</el-table-column>
|
||||
<el-table-column label="领取科室" prop="gender">
|
||||
</el-table-column>
|
||||
<el-table-column label="执行时间" prop="gender" min-width="300">
|
||||
<template #default="{ row }">
|
||||
<template v-if="!row.children">
|
||||
<div v-for="item in row.dates" :key="item.id">
|
||||
<el-space :size="10">
|
||||
<span>{{ item.date }}</span>
|
||||
<span v-for="time in item.times" :key="time.id">
|
||||
|
||||
<el-checkbox v-model="time.checked" :label="`${time.time}`" border />
|
||||
</span>
|
||||
</el-space>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup >
|
||||
import { id } from 'element-plus/es/locale/index.mjs';
|
||||
import { getCurrentInstance, onBeforeMount, onMounted, reactive,ref } from 'vue'
|
||||
// const { proxy } = getCurrentInstance();
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
const emits = defineEmits([])
|
||||
const props = defineProps({
|
||||
|
||||
})
|
||||
const state = reactive({
|
||||
|
||||
})
|
||||
|
||||
const data = ref([
|
||||
{
|
||||
label: '内科',
|
||||
id:1,
|
||||
children: [
|
||||
{
|
||||
label: '唐僧',
|
||||
id:11
|
||||
},
|
||||
],
|
||||
},
|
||||
])
|
||||
|
||||
const searchValue = ref('')
|
||||
const handleNodeClick=(data)=>{
|
||||
console.log(data)
|
||||
treeRef.value.setCheckedKeys([data.id])
|
||||
}
|
||||
|
||||
const treeRef = ref()
|
||||
|
||||
// ====表格
|
||||
const tableFilterForm = ref({
|
||||
type: '',
|
||||
name: '',
|
||||
})
|
||||
|
||||
const arraySpanMethod = ({
|
||||
row,
|
||||
column,
|
||||
rowIndex,
|
||||
columnIndex
|
||||
}) => {
|
||||
console.log(row, column, rowIndex, columnIndex);
|
||||
// 如果是父级行
|
||||
if (row.children && row.children.length > 0) {
|
||||
if (columnIndex === 0) {
|
||||
return [1, 1]
|
||||
}
|
||||
// 如果是患者列
|
||||
if (columnIndex === 1) {
|
||||
return [1, 7]
|
||||
} else {
|
||||
return [1, 0]
|
||||
}
|
||||
}
|
||||
// 如果是子级行,显示其他列
|
||||
if (!row.children || row.children.length == 0) {
|
||||
return [1, 1]
|
||||
}
|
||||
// 如果是父级行,隐藏其他列
|
||||
return [1, 1]
|
||||
}
|
||||
const collectTsableData = ref([
|
||||
// {
|
||||
// id: 1,
|
||||
// name: '唐僧',
|
||||
// age: 20,
|
||||
// gender: '男',
|
||||
|
||||
// children: [
|
||||
// {
|
||||
// name: '',
|
||||
// age: 10,
|
||||
// gender: '男',
|
||||
// content: '维生素B12注射液【1ml:0.5mg*1】 ',
|
||||
// dates: [{
|
||||
// date: '05/04',
|
||||
// times: [{
|
||||
// time: '08:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }, {
|
||||
// time: '12:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }]
|
||||
// }, {
|
||||
// date: '05/05',
|
||||
// times: [{
|
||||
// time: '08:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }, {
|
||||
// time: '12:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }]
|
||||
// }]
|
||||
// }, {
|
||||
// name: '',
|
||||
// age: 10,
|
||||
// gender: '男',
|
||||
// content: '维生素B12注射液【1ml:0.5mg*1】 ',
|
||||
// dates: [{
|
||||
// date: '05/04',
|
||||
// times: [{
|
||||
// time: '08:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }, {
|
||||
// time: '12:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }]
|
||||
// }, {
|
||||
// date: '05/05',
|
||||
// times: [{
|
||||
// time: '08:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }, {
|
||||
// time: '12:00',
|
||||
// nurse: '刘护士',
|
||||
// checked: false
|
||||
// }]
|
||||
// }]
|
||||
// }]
|
||||
// },
|
||||
])
|
||||
|
||||
const handleSearch = () => {
|
||||
collectTsableData.value=[{
|
||||
id: 1,
|
||||
name: '唐僧',
|
||||
age: 20,
|
||||
gender: '男',
|
||||
|
||||
children: [
|
||||
{
|
||||
name: '',
|
||||
age: 10,
|
||||
gender: '男',
|
||||
content: '维生素B12注射液【1ml:0.5mg*1】 ',
|
||||
dates: [{
|
||||
date: '05/04',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}, {
|
||||
time: '12:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}]
|
||||
}, {
|
||||
date: '05/05',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}, {
|
||||
time: '12:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}]
|
||||
}]
|
||||
}, {
|
||||
name: '',
|
||||
age: 10,
|
||||
gender: '男',
|
||||
content: '维生素B12注射液【1ml:0.5mg*1】 ',
|
||||
dates: [{
|
||||
date: '05/04',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}, {
|
||||
time: '12:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}]
|
||||
}, {
|
||||
date: '05/05',
|
||||
times: [{
|
||||
time: '08:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}, {
|
||||
time: '12:00',
|
||||
nurse: '刘护士',
|
||||
checked: false
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
},
|
||||
]
|
||||
}
|
||||
// ====collectDrug
|
||||
const collectDrug=()=>{
|
||||
ElMessageBox.confirm(
|
||||
'是否确认领药申请?',
|
||||
'提醒',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '申请成功!',
|
||||
})
|
||||
collectTsableData.value=[]
|
||||
})
|
||||
.catch(() => {
|
||||
})
|
||||
}
|
||||
onBeforeMount(() => {
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
|
||||
})
|
||||
defineExpose({ state })
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.medicineCollect-container{
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 8px;
|
||||
.patientList-container{
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
}
|
||||
.medicineList-container{
|
||||
flex: auto;
|
||||
.filter-container{
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,32 @@
|
||||
<!--
|
||||
* @Author: sjjh
|
||||
* @Date: 2025-09-09 13:49:40
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div class="container">
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script setup >
|
||||
import { getCurrentInstance, onBeforeMount, onMounted, reactive } from 'vue'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const emits = defineEmits([])
|
||||
const props = defineProps({
|
||||
|
||||
})
|
||||
const state = reactive({
|
||||
|
||||
})
|
||||
onBeforeMount(() => {
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
|
||||
})
|
||||
defineExpose({ state })
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user