Compare commits
No commits in common. "b5b89e7fa1c0b2099eff023222943eeb66a1fd98" and "9ac4a9ab3e226a6e642826e1f459669f62d64e02" have entirely different histories.
b5b89e7fa1
...
9ac4a9ab3e
|
|
@ -1,52 +1,39 @@
|
||||||
<template>
|
<template>
|
||||||
<Panel title="收费队列">
|
<div class="container">
|
||||||
<template #tools>
|
<div class="search">
|
||||||
<el-button type="primary" size="small">新增患者</el-button>
|
<el-input v-model="query.keyword" placeholder="根据姓名搜索"/>
|
||||||
</template>
|
<el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>
|
||||||
<template #default>
|
</div>
|
||||||
<div class="container">
|
<div class="list">
|
||||||
<div class="tabs">
|
<el-scrollbar>
|
||||||
<span v-for="(item,index) in statusList " :key="index" :class="query.status == item.value ? 'tabs-item' : ''"
|
<ul>
|
||||||
@click="tab(item)">{{ item.label }} {{ item.num }}
|
<li class="list-item" :class="curItem.id == item.id ? 'active' : ''" v-for="(item, index) in orderList"
|
||||||
</span>
|
:key="index" @click="clickItem(item)">
|
||||||
</div>
|
|
||||||
<div class="search">
|
|
||||||
<el-input v-model="query.keyword" style="height: 100%;width: 100%" placeholder="根据姓名搜索"/>
|
|
||||||
<!-- <el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>-->
|
|
||||||
</div>
|
|
||||||
<div class="list">
|
|
||||||
<el-scrollbar>
|
|
||||||
<ul>
|
|
||||||
<li class="list-item" :class="curItem.id == item.id ? 'active' : ''" v-for="(item, index) in orderList"
|
|
||||||
:key="index" @click="clickItem(item)">
|
|
||||||
<span>
|
<span>
|
||||||
<img v-if="item.patientRegistration.gender=='1'" class="avatar"
|
<img v-if="item.patientRegistration.gender=='男'" class="avatar" src="/static/images/outpatient/man.png"
|
||||||
src="/static/images/outpatient/man.png"
|
|
||||||
alt="头像"/>
|
alt="头像"/>
|
||||||
<img v-if="item.patientRegistration.gender=='2'" class="avatar"
|
<img v-if="item.patientRegistration.gender=='女'" class="avatar" src="/static/images/outpatient/women.png"
|
||||||
src="/static/images/outpatient/women.png"
|
|
||||||
alt="头像"/>
|
alt="头像"/>
|
||||||
</span>
|
</span>
|
||||||
<span class="item_name">{{ item.patientInfo.name }}</span>
|
<span class="item_name">{{ item.patientInfo.name }}</span>
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
class="box-item"
|
class="box-item"
|
||||||
effect="dark"
|
effect="dark"
|
||||||
:content="formatTime(item.patientRegistration.createDatetime)||'-'"
|
:content="formatTime(item.patientRegistration.createDatetime)||'-'"
|
||||||
placement="bottom-start"
|
placement="bottom-start"
|
||||||
>
|
>
|
||||||
<span class="item_time">
|
<span class="item_time">
|
||||||
{{ formatTime(item.patientRegistration.createDatetime) || '-' }}
|
{{ formatTime(item.patientRegistration.createDatetime) || '-' }}
|
||||||
</span>
|
</span>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<span :class="[item.status == 0 ?'status-active':'']">{{ item.status == 0 ? '未收' : '已收' }}</span>
|
<span :class="[item.status == 0 ?'status-active':'']">{{item.status == 0 ? '未收' : '已收'}}</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</Panel>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -54,28 +41,26 @@ import {onMounted, ref} from "vue";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
import Panel from "@/components/common/Panel.vue";
|
import Panel from "@/components/common/Panel.vue";
|
||||||
import {formatTime} from "@/utils/dateUtils.ts";
|
import {formatTime} from "@/utils/dateUtils.ts";
|
||||||
|
|
||||||
const curItem = ref<any>({});
|
const curItem = ref<any>({});
|
||||||
const emit = defineEmits(['clickItem'])
|
const emit = defineEmits(['clickItem'])
|
||||||
const clickItem = (item: any) => {
|
const clickItem = (item: any) => {
|
||||||
curItem.value = item
|
curItem.value = item
|
||||||
emit('clickItem', item, query.value.status);
|
emit('clickItem', item);
|
||||||
}
|
}
|
||||||
|
|
||||||
const orderList = ref<any>([]);
|
const orderList = ref<any>([]);
|
||||||
const query = ref({
|
const query = ref({
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
keyword: "",
|
keyword: ""
|
||||||
status: 0
|
|
||||||
})
|
})
|
||||||
const addChargeOrder = () => {
|
const addChargeOrder = () => {
|
||||||
const newOrder = {
|
const newOrder = {
|
||||||
id: -1,
|
id:-1,
|
||||||
patientName: "匿名患者",
|
patientName :"匿名患者",
|
||||||
payType: -1,
|
payType : -1,
|
||||||
}
|
}
|
||||||
if (orderList.value[0]?.id == -1) {
|
if (orderList.value[0]?.id == -1){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
orderList.value.unshift(newOrder)
|
orderList.value.unshift(newOrder)
|
||||||
|
|
@ -92,45 +77,28 @@ const getOrderList = () => {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const delDraft = () => {
|
const delDraft = () =>{
|
||||||
orderList.value.shift();
|
orderList.value.shift();
|
||||||
clickFirst()
|
clickFirst()
|
||||||
}
|
}
|
||||||
defineExpose({delDraft, getOrderList})
|
defineExpose({delDraft,getOrderList})
|
||||||
onMounted(() => {
|
onMounted(()=>{
|
||||||
getOrderList()
|
getOrderList()
|
||||||
})
|
})
|
||||||
const statusList = ref([
|
|
||||||
{
|
|
||||||
label: '待收',
|
|
||||||
num: 0,
|
|
||||||
value: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '已收',
|
|
||||||
num: 0,
|
|
||||||
value: 1
|
|
||||||
},
|
|
||||||
])
|
|
||||||
const tab = (item: any) => {
|
|
||||||
query.value.status = item.value
|
|
||||||
getOrderList()
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.container {
|
.container{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column; // 确保子元素垂直排列
|
flex-direction: column; // 确保子元素垂直排列
|
||||||
width: 320px;
|
width: 100%;
|
||||||
|
.search{
|
||||||
.search {
|
height: 25px;
|
||||||
padding: 16px;
|
|
||||||
height: 74px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list {
|
.list {
|
||||||
display: flex;
|
display: flex;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
|
|
@ -204,12 +172,10 @@ const tab = (item: any) => {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.status-active{
|
||||||
.status-active {
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #409EFF;
|
color: #409EFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: #4D6DE4;
|
background: #4D6DE4;
|
||||||
|
|
@ -221,27 +187,4 @@ const tab = (item: any) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabs {
|
|
||||||
height: 27px;
|
|
||||||
border-bottom: 1px solid #EAEAEC;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #999999;
|
|
||||||
font-style: normal;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 0 67px;
|
|
||||||
|
|
||||||
span {
|
|
||||||
width: 66px;
|
|
||||||
cursor: pointer;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabs-item {
|
|
||||||
border-bottom: 2px solid #4D6DE4;
|
|
||||||
color: #4D6DE4;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<el-table :data="data.goodsDetail" max-height="150">
|
<el-table :data="data.goodsDetail" max-height="150">
|
||||||
<el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="name" label="名称"></el-table-column>
|
||||||
<el-table-column prop="selectedPrice" label="单价"></el-table-column>
|
<el-table-column prop="selectedPrice" label="单价"></el-table-column>
|
||||||
<el-table-column prop="number" label="数量">
|
<el-table-column prop="number" label="数量">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
|
@ -30,17 +30,11 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<SearchInput :disabled="data.status == 1" :request-api="goodsSearchApi" :show-config="goodsShowConfig" @selectedCallBack="goodsSelect"></SearchInput>
|
<SearchInput :request-api="goodsSearchApi" :show-config="goodsShowConfig" @selectedCallBack="goodsSelect"></SearchInput>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import SearchInput from "@/components/SearchInput.vue";
|
import SearchInput from "@/components/SearchInput.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
disabled: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
const data = defineModel<any>();
|
const data = defineModel<any>();
|
||||||
const delGoods = (item: any) => {
|
const delGoods = (item: any) => {
|
||||||
data.value.goodsDetail = data.value.filter((i: any) => i.id != item.id)
|
data.value.goodsDetail = data.value.filter((i: any) => i.id != item.id)
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,34 @@
|
||||||
<template>
|
<template>
|
||||||
<el-table :data="data.itemDetail" max-height="150">
|
<el-table :data="data.itemDetail" max-height="150">
|
||||||
<el-table-column prop="itemName" label="名称" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="itemName" label="名称"></el-table-column>
|
||||||
<el-table-column prop="selectedUnit" label="单位"></el-table-column>
|
<el-table-column prop="selectedUnit" label="单位"></el-table-column>
|
||||||
<el-table-column prop="selectedPrice" label="单价"></el-table-column>
|
<el-table-column prop="selectedPrice" label="单价"></el-table-column>
|
||||||
<el-table-column label="数量">
|
<el-table-column label="数量">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input-number v-model="scope.row.selectedNum" min="0"
|
<div v-if="data.status == 0">
|
||||||
@change="handleNumChange"></el-input-number>
|
<el-input-number v-model="scope.row.selectedNum" min="0" @change="handleNumChange"></el-input-number>
|
||||||
</template>
|
</div>
|
||||||
</el-table-column>
|
<div v-else>
|
||||||
<el-table-column label="操作" v-if="data.status ==0">
|
{{ scope.row.selectedNum }}
|
||||||
<template #default="scope">
|
</div>
|
||||||
<el-button type="danger" link @click="delService(scope.row)">X</el-button>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="操作" v-if="data.status ==0">
|
||||||
</el-table>
|
<template #default="scope">
|
||||||
<SearchInput :disabled="data.status == 1" :request-api="serviceSearchApi" :show-config="serviceShowConfig"
|
<el-button type="danger" link @click="delService(scope.row)">X</el-button>
|
||||||
@selectedCallBack="serviceSelect"></SearchInput>
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<SearchInput :request-api="serviceSearchApi" :show-config="serviceShowConfig" @selectedCallBack="serviceSelect"></SearchInput>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import SearchInput from "@/components/SearchInput.vue";
|
import SearchInput from "@/components/SearchInput.vue";
|
||||||
|
|
||||||
const data = defineModel<any>();
|
const data =defineModel<any>();
|
||||||
const delService = (item: any) => {
|
const delService = (item: any) => {
|
||||||
data.value.itemDetail = data.value.filter((i: any) => i.id != item.id)
|
data.value.itemDetail = data.value.filter((i: any) => i.id != item.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
const serviceSearchApi = "item/search";
|
const serviceSearchApi = "item/search";
|
||||||
const serviceShowConfig = [
|
const serviceShowConfig = [
|
||||||
{
|
{
|
||||||
|
|
@ -46,9 +50,9 @@ const serviceSelect = (row: any) => {
|
||||||
row.selectedUnit = row.unit
|
row.selectedUnit = row.unit
|
||||||
row.selectedPrice = row.unitPrice
|
row.selectedPrice = row.unitPrice
|
||||||
data.value.itemDetail.push(row)
|
data.value.itemDetail.push(row)
|
||||||
emit('totalPriceChange', row)
|
emit('totalPriceChange',row)
|
||||||
}
|
}
|
||||||
const handleNumChange = () => {
|
const handleNumChange = ()=>{
|
||||||
emit('totalPriceChange')
|
emit('totalPriceChange')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
<script setup lang="ts">
|
|
||||||
import Panel from '../common/Panel.vue';
|
|
||||||
import {defineEmits, defineModel,defineProps} from 'vue'
|
|
||||||
const {status}=defineProps(['status'])
|
|
||||||
const emit = defineEmits(['save','deleteItem','edit']);
|
|
||||||
const save = () => {
|
|
||||||
emit('save');
|
|
||||||
};
|
|
||||||
const deleteItem = () => {
|
|
||||||
emit('deleteItem');
|
|
||||||
};
|
|
||||||
const totalAmount = defineModel<any>()
|
|
||||||
const editItem= () => {
|
|
||||||
emit('edit');
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<Panel :showTools="false" :showHeader="false">
|
|
||||||
<div class="footer">
|
|
||||||
<div>总金额:<span class="text icon">¥</span><span class="text">{{ totalAmount || '0' }}</span></div>
|
|
||||||
<div class="btn-group">
|
|
||||||
<el-button type="primary" disabled>追溯码</el-button>
|
|
||||||
<el-button type="primary" @click="editItem">收费</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</Panel>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.footer {
|
|
||||||
height: 86px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 22px;
|
|
||||||
color: #333333;
|
|
||||||
font-style: normal;
|
|
||||||
padding:0 24px 0 24px;
|
|
||||||
.icon{
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
.text {
|
|
||||||
color: #FF282E
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow">
|
<el-popover placement="bottom-start" trigger="click" :width="props.width" ref="popoverRef" @before-enter="beforeShow">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-input v-model="keyword" style="width:100%;height: 100%" @input="changeInput" :disabled="disabled"
|
<el-input v-model="keyword" :style="{'width': props.width+'px'}" @input="changeInput" :disabled="disabled"
|
||||||
placeholder="诊断选择"></el-input>
|
placeholder="诊断选择"></el-input>
|
||||||
</template>
|
</template>
|
||||||
<div class="container" v-if="searchList.length > 0">
|
<div class="container" v-if="searchList.length > 0">
|
||||||
|
|
|
||||||
|
|
@ -12,19 +12,21 @@
|
||||||
clearable/>
|
clearable/>
|
||||||
<el-button type="primary" @click="searchSocialItem">搜索</el-button>
|
<el-button type="primary" @click="searchSocialItem">搜索</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="search_result" style="width: 100%;padding: 0 12px">
|
<el-scrollbar style="width: 100%;overflow: hidden">
|
||||||
<div class="result_table" style="width: 100%;height: 100%;box-sizing: border-box;padding-bottom: 20px">
|
<div class="search_result" style="width: 100%;padding: 0 24px">
|
||||||
<el-table v-loading="isloading" :data="searchResult.list"
|
<div class="result_table" style="">
|
||||||
style="width: 100%;height: 100%"
|
<el-table v-loading="isloading" :data="searchResult.list"
|
||||||
highlight-current-row
|
style="width: 100%"
|
||||||
@row-click="changeCurRow"
|
highlight-current-row
|
||||||
:row-class-name="tableRowClassName">
|
@row-click="changeCurRow"
|
||||||
<el-table-column prop="name" label="名称" fixed show-overflow-tooltip/>
|
:row-class-name="tableRowClassName">
|
||||||
<el-table-column prop="code" fixed label="医疗目录编码" show-overflow-tooltip/>
|
<el-table-column prop="name" label="名称" fixed show-overflow-tooltip/>
|
||||||
<el-table-column prop="unit" label="计价单位" width="180" show-overflow-tooltip/>
|
<el-table-column prop="code" fixed label="医疗目录编码" show-overflow-tooltip/>
|
||||||
</el-table>
|
<el-table-column prop="unit" label="计价单位" width="180" show-overflow-tooltip/>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|
|
||||||
|
|
@ -1,73 +1,70 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<chargeQueue @clickItem="clickItem" ref="chargeQueueRef"></ChargeQueue>
|
<Panel title="收费队列">
|
||||||
|
<chargeQueue @clickItem="clickItem" ref="chargeQueueRef"></ChargeQueue>
|
||||||
|
</Panel>
|
||||||
</div>
|
</div>
|
||||||
<div class="middle">
|
<div class="middle">
|
||||||
<el-scrollbar>
|
<Panel title="零售收费">
|
||||||
<Panel title="零售收费">
|
<template #tools>
|
||||||
<el-form :model="formData" inline label-width="0">
|
<span>{{formData.totalPrice}}</span>
|
||||||
<el-form-item>
|
<div v-if="formData.status == 0 ">
|
||||||
<el-input v-model="formData.patientInfo.name" :disabled="statusDisabled==1"
|
<el-button type="primary" @click="delDraft()" v-if="formData.id == -1" >删除</el-button>
|
||||||
placeholder="请输入姓名"></el-input>
|
<el-button type="primary" @click="saveAndCharge" >收费</el-button>
|
||||||
</el-form-item>
|
<el-button type="primary" >追溯码</el-button>
|
||||||
<el-form-item>
|
<el-button type="primary" >挂单</el-button>
|
||||||
<el-select v-model="formData.patientInfo.sex" style="width: 80px;" :disabled="statusDisabled==1">
|
</div>
|
||||||
<el-option :label="'男'" :value="'1'"></el-option>
|
|
||||||
<el-option :label="'女'" :value="'2'"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-input v-model="formData.patientInfo.age" :disabled="statusDisabled==1">
|
|
||||||
<template #suffix>
|
|
||||||
岁
|
|
||||||
</template>
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-input v-model="formData.patientInfo.phone" placeholder="手机号" :disabled="statusDisabled==1">
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-select v-model="formData.diagnosisMedicalRecord.dockerId" placeholder="医生" style="width: 100px"
|
|
||||||
:disabled="statusDisabled==1">
|
|
||||||
<el-option v-for="item in dockerList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
|
|
||||||
</Panel>
|
</template>
|
||||||
<div style="margin-top: 24px">
|
<el-form :model="formData" inline label-width="0">
|
||||||
<Panel title="医疗诊断">
|
<el-form-item>
|
||||||
<div style="height:64px;padding:0 24px 24px">
|
<el-input v-model="formData.patientInfo.name" placeholder="请输入姓名"></el-input>
|
||||||
<DiagnosisSearchInput
|
</el-form-item>
|
||||||
v-model="diagnosisKeyword"
|
<el-form-item>
|
||||||
:request-api="diagnosisSearchApi"
|
<el-select v-model="formData.patientInfo.sex" style="width: 80px;">
|
||||||
:show-config="diagnosisShowConfig"
|
<el-option :label="'男'" :value="'男'"></el-option>
|
||||||
@selectedCallBack="diagnosisSelect"
|
<el-option :label="'女'" :value="'女'"></el-option>
|
||||||
ref="diagnosisSearchRef"
|
</el-select>
|
||||||
:show-header="false"
|
</el-form-item>
|
||||||
:disabled="statusDisabled==1"
|
<el-form-item>
|
||||||
|
<el-input v-model="formData.patientInfo.age">
|
||||||
|
<template #suffix>
|
||||||
|
岁
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input v-model="formData.patientInfo.phone" placeholder="手机号">
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button>卡</el-button>
|
||||||
|
<el-button>+</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-select v-model="formData.diagnosisMedicalRecord.dockerId" placeholder="医生" style="width: 100px">
|
||||||
|
<el-option v-for="item in dockerList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<DiagnosisSearchInput
|
||||||
|
v-model="diagnosisKeyword"
|
||||||
|
:request-api="diagnosisSearchApi"
|
||||||
|
:show-config="diagnosisShowConfig"
|
||||||
|
@selectedCallBack="diagnosisSelect"
|
||||||
|
ref="diagnosisSearchRef"
|
||||||
|
:show-header="false">
|
||||||
|
</DiagnosisSearchInput>
|
||||||
|
|
||||||
>
|
</Panel>
|
||||||
</DiagnosisSearchInput>
|
<Panel title="服务项目">
|
||||||
</div>
|
<ServiceDetail v-model="formData" @totalPriceChange="getOrderTotalPrice"> </ServiceDetail>
|
||||||
</Panel>
|
|
||||||
</div>
|
</Panel>
|
||||||
<div style="margin-top: 24px">
|
<Panel title="药品耗材">
|
||||||
<Panel title="服务项目">
|
<GoodsDetail v-model="formData" @totalPriceChange="getOrderTotalPrice" ></GoodsDetail>
|
||||||
<ServiceDetail v-model="formData" @totalPriceChange="getOrderTotalPrice"></ServiceDetail>
|
</Panel>
|
||||||
</Panel>
|
|
||||||
</div>
|
|
||||||
<div style="margin-top: 24px">
|
|
||||||
<Panel title="药品耗材">
|
|
||||||
<GoodsDetail v-model="formData" @totalPriceChange="getOrderTotalPrice"></GoodsDetail>
|
|
||||||
</Panel>
|
|
||||||
</div>
|
|
||||||
<div class="bottom">
|
|
||||||
<TotalPrice v-model="formData.totalPrice" @edit="saveAndCharge"></TotalPrice>
|
|
||||||
</div>
|
|
||||||
</el-scrollbar>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
|
|
@ -94,14 +91,12 @@ import ServiceDetail from "@/components/charge/ServiceDetail.vue";
|
||||||
import GoodsDetail from "@/components/charge/GoodsDetail.vue";
|
import GoodsDetail from "@/components/charge/GoodsDetail.vue";
|
||||||
import DiagnosisSearchInput from "@/components/outpatient/DiagnosisSearchInput.vue";
|
import DiagnosisSearchInput from "@/components/outpatient/DiagnosisSearchInput.vue";
|
||||||
import Settlement from "@/components/charge/Settlement.vue";
|
import Settlement from "@/components/charge/Settlement.vue";
|
||||||
import TotalPrice from "@/components/charge/TotalPrice.vue";
|
|
||||||
|
|
||||||
const socialCard = ref<any>({payInfo: {}})
|
const socialCard = ref<any>({payInfo:{}})
|
||||||
const formData = ref<any>({
|
const formData = ref<any>({
|
||||||
patientInfo: {},
|
patientInfo:{},
|
||||||
diagnosisMedicalRecord: {},
|
diagnosisMedicalRecord:{},
|
||||||
})
|
})
|
||||||
const statusDisabled = ref(0)
|
|
||||||
const diagnosisKeyword = ref("")
|
const diagnosisKeyword = ref("")
|
||||||
const chargeQueueRef = ref()
|
const chargeQueueRef = ref()
|
||||||
const delDraft = () => {
|
const delDraft = () => {
|
||||||
|
|
@ -111,9 +106,9 @@ const delDraft = () => {
|
||||||
}
|
}
|
||||||
const settlementRef = ref()
|
const settlementRef = ref()
|
||||||
const saveAndCharge = () => {
|
const saveAndCharge = () => {
|
||||||
post('charge/save', {data: formData.value}).then((res: any) => {
|
post('charge/save', {data:formData.value}).then((res: any) => {
|
||||||
formData.value.code = res
|
formData.value.code = res
|
||||||
nextTick(() => {
|
nextTick(()=>{
|
||||||
settlementRef.value?.init(res)
|
settlementRef.value?.init(res)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -136,40 +131,38 @@ const diagnosisSelect = (list: any) => {
|
||||||
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
||||||
}
|
}
|
||||||
|
|
||||||
const clickItem = (item: any, status: any) => {
|
const clickItem = (item: any) => {
|
||||||
formData.value = item
|
formData.value = item
|
||||||
statusDisabled.value = status
|
|
||||||
getOrderTotalPrice()
|
getOrderTotalPrice()
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
|
let list = JSON.parse(formData.value.diagnosisMedicalRecord.diagnosisDetail)
|
||||||
let nList = formData.value.diagnosisMedicalRecord.diagnosisSummary.split(',')
|
let nList = formData.value.diagnosisMedicalRecord.diagnosisSummary.split(',')
|
||||||
diagnosisSearchRef.value?.init(list, nList);
|
diagnosisSearchRef.value?.init(list,nList);
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
const dockerList = ref<any[]>([])
|
const dockerList = ref<any[]>([])
|
||||||
const getDockerList = () => {
|
const getDockerList = () => {
|
||||||
let query = {
|
let query={
|
||||||
role: 1
|
role:1
|
||||||
}
|
}
|
||||||
post('organization/member/search', {query: query}).then((res: any) => {
|
post('organization/member/search',{query:query}).then((res: any) => {
|
||||||
dockerList.value = res
|
dockerList.value = res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const orderCompleted = () => {
|
const orderCompleted = () => {
|
||||||
nextTick(() => {
|
nextTick(()=>{
|
||||||
chargeQueueRef.value?.getOrderList()
|
chargeQueueRef.value?.getOrderList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const orderCanceled = () => {
|
const orderCanceled = () => {
|
||||||
nextTick(() => {
|
nextTick(()=>{
|
||||||
chargeQueueRef.value?.getOrderList()
|
chargeQueueRef.value?.getOrderList()
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(()=>{
|
||||||
getDockerList()
|
getDockerList()
|
||||||
})
|
})
|
||||||
const getOrderTotalPrice = () => {
|
const getOrderTotalPrice = () => {
|
||||||
|
|
@ -259,10 +252,5 @@ const getOrderTotalPrice = () => {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
.bottom{
|
|
||||||
margin-top: 24px;
|
|
||||||
height: 86px;
|
|
||||||
background: #FFFFFF;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
Loading…
Reference in New Issue