dev
This commit is contained in:
parent
cc18ac3f52
commit
1386dbaf3d
|
|
@ -28,7 +28,8 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="item in showConfig"
|
v-for="item in showConfig"
|
||||||
:prop="item.prop"
|
:prop="item.prop"
|
||||||
:label="item.label"
|
:label="item.label||'-'"
|
||||||
|
show-overflow-tooltip
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -90,7 +91,7 @@ const changeInput = (inputStr: string) => {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const emit = defineEmits(['selectedCallBack','focus']);
|
const emit = defineEmits(['selectedCallBack', 'focus']);
|
||||||
|
|
||||||
const clickRow = (row: any) => {
|
const clickRow = (row: any) => {
|
||||||
emit('selectedCallBack', row);
|
emit('selectedCallBack', row);
|
||||||
|
|
@ -103,11 +104,11 @@ const beforeShow = () => {
|
||||||
popoverRef.value.hide();
|
popoverRef.value.hide();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const isVisible =ref(false)
|
const isVisible = ref(false)
|
||||||
const focus=()=>{
|
const focus = () => {
|
||||||
isVisible.value=true
|
isVisible.value = true
|
||||||
console.log( "focus输入框")
|
console.log("focus输入框")
|
||||||
emit('focus',true)
|
emit('focus', true)
|
||||||
}
|
}
|
||||||
const handlerBlur = () => {
|
const handlerBlur = () => {
|
||||||
isVisible.value = false
|
isVisible.value = false
|
||||||
|
|
|
||||||
|
|
@ -119,13 +119,33 @@ const goodsShowConfig = [
|
||||||
prop: "name",
|
prop: "name",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "项目类型",
|
label: "规格",
|
||||||
prop: "type",
|
prop: "specifications",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "售价",
|
label: "库存",
|
||||||
|
prop: "inventory",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "价格",
|
||||||
prop: "unitPrice",
|
prop: "unitPrice",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "厂家",
|
||||||
|
prop: "producer",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "效期",
|
||||||
|
prop: "lifespan",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "收费项目等级",
|
||||||
|
prop: "category",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "限制条件",
|
||||||
|
prop: "limit",
|
||||||
|
}
|
||||||
]
|
]
|
||||||
const goodsSelect = (row: any) => {
|
const goodsSelect = (row: any) => {
|
||||||
row.selectedNum = 1
|
row.selectedNum = 1
|
||||||
|
|
@ -133,6 +153,10 @@ const goodsSelect = (row: any) => {
|
||||||
row.selectedPrice = row.unitPrice
|
row.selectedPrice = row.unitPrice
|
||||||
if (goodsDetail.value.find((i: any) => i.id == row.id)) {
|
if (goodsDetail.value.find((i: any) => i.id == row.id)) {
|
||||||
ElMessage.warning("数据已存在,只能加数量")
|
ElMessage.warning("数据已存在,只能加数量")
|
||||||
|
goodsDetail.value.find((i: any) => i.id == row.id).selectedNum += 1
|
||||||
|
goodsDetail.value.find((i: any) => i.id == row.id).selectedUnit = row.packagingUnit
|
||||||
|
goodsDetail.value.find((i: any) => i.id == row.id).selectedPrice = row.unitPrice
|
||||||
|
emit('totalPriceChange')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
goodsDetail.value.push(row)
|
goodsDetail.value.push(row)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Panel title="服务项目">
|
<Panel title="服务项目">
|
||||||
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150">
|
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="150">
|
||||||
<el-table-column prop="itemName" label="项目名称">
|
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip width="200">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover
|
<el-popover
|
||||||
width="485"
|
width="485"
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
¥{{ scope.row.selectedPrice }}
|
¥{{ scope.row.selectedPrice }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="数量">
|
<el-table-column label="数量" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input-number v-if="props.status" v-model="scope.row.selectedNum" :min="0"
|
<el-input-number v-if="props.status" v-model="scope.row.selectedNum" :min="0"
|
||||||
@change="handleNumChange" size="small"></el-input-number>
|
@change="handleNumChange" size="small"></el-input-number>
|
||||||
|
|
@ -90,21 +90,34 @@ const serviceShowConfig = [
|
||||||
prop: "itemName",
|
prop: "itemName",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "服务医保码",
|
label: "单位",
|
||||||
prop: "itemSocialCode",
|
prop: "unit",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "售价",
|
label: "售价",
|
||||||
prop: "unitPrice",
|
prop: "unitPrice",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "收费项目等级",
|
||||||
|
prop: "chrgitmLv",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "限制条件",
|
||||||
|
prop: "limit",
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
const emit = defineEmits(['totalPriceChange','focus'])
|
const emit = defineEmits(['totalPriceChange', 'focus'])
|
||||||
const serviceSelect = (row: any) => {
|
const serviceSelect = (row: any) => {
|
||||||
row.selectedNum = 1
|
row.selectedNum = 1
|
||||||
row.selectedUnit = row.unit
|
row.selectedUnit = row.unit
|
||||||
row.selectedPrice = row.unitPrice
|
row.selectedPrice = row.unitPrice
|
||||||
if (itemDetail.value.find((i: any) => i.id == row.id)) {
|
if (itemDetail.value.find((i: any) => i.id == row.id)) {
|
||||||
ElMessage.warning("数据已存在,只能加数量")
|
ElMessage.warning("数据已存在,只能加数量")
|
||||||
|
itemDetail.value.find((i: any) => i.id == row.id).selectedNum += 1
|
||||||
|
itemDetail.value.find((i: any) => i.id == row.id).selectedUnit = row.packagingUnit
|
||||||
|
itemDetail.value.find((i: any) => i.id == row.id).selectedPrice = row.unitPrice
|
||||||
|
emit('totalPriceChange')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
itemDetail.value.push(row)
|
itemDetail.value.push(row)
|
||||||
|
|
@ -144,9 +157,10 @@ const hide = () => {
|
||||||
|
|
||||||
.bottom {
|
.bottom {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
border-top: 1px solid #EAEAEC ;
|
border-top: 1px solid #EAEAEC;
|
||||||
display: flex;
|
display: flex;
|
||||||
.search{
|
|
||||||
|
.search {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
|
|
||||||
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
|
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
|
||||||
@before-enter="beforeShow" @hide="afterShow">
|
@before-enter="beforeShow" @hide="afterShow">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,11 @@
|
||||||
<template #default>
|
<template #default>
|
||||||
<div class="diagnosis-content">
|
<div class="diagnosis-content">
|
||||||
<div class="diagnosis">
|
<div class="diagnosis">
|
||||||
诊断:
|
<div style="width: 62px">诊断:</div>
|
||||||
<DiagnosisSearchInput
|
<DiagnosisSearchInput
|
||||||
v-model="diagnosisKeyword"
|
v-model="diagnosisKeyword"
|
||||||
:request-api="diagnosisSearchApi"
|
:request-api="diagnosisSearchApi"
|
||||||
:show-config="diagnosisShowConfig"
|
:show-config="diagnosisShowConfig"
|
||||||
:width="600"
|
|
||||||
@selectedCallBack="diagnosisSelect"
|
@selectedCallBack="diagnosisSelect"
|
||||||
ref="diagnosisSearchRef"
|
ref="diagnosisSearchRef"
|
||||||
:show-header="false"
|
:show-header="false"
|
||||||
|
|
@ -25,35 +24,36 @@
|
||||||
</DiagnosisSearchInput>
|
</DiagnosisSearchInput>
|
||||||
</div>
|
</div>
|
||||||
<div class="doctor">
|
<div class="doctor">
|
||||||
医生:
|
<div>医生:</div>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.doctorId"
|
v-model="formData.doctorId"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
clearable
|
clearable
|
||||||
size="large">
|
style="width: 100%"
|
||||||
<el-option
|
|
||||||
v-for="item in doctorList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
>
|
||||||
</el-option>
|
<el-option
|
||||||
|
v-for="item in doctorList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Panel>
|
</Panel>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 24px">
|
<div style="margin-top: 24px">
|
||||||
<ServiceDetail v-model="formData.itemDetail" :status="formData.status == 0" @totalPriceChange="getOrderTotalPrice"></ServiceDetail>
|
<ServiceDetail v-model="formData.itemDetail" :status="formData.status == 0"
|
||||||
|
@totalPriceChange="getOrderTotalPrice"></ServiceDetail>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 24px">
|
<div style="margin-top: 24px">
|
||||||
<GoodsDetail v-model="formData.goodsDetail" :status="formData.status == 0" @totalPriceChange="getOrderTotalPrice"></GoodsDetail>
|
<GoodsDetail v-model="formData.goodsDetail" :status="formData.status == 0"
|
||||||
|
@totalPriceChange="getOrderTotalPrice"></GoodsDetail>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom" >
|
<div class="bottom">
|
||||||
<TotalPrice v-model="formData.totalPrice" @edit="saveAndCharge" :status="formData.status" ></TotalPrice>
|
<TotalPrice v-model="formData.totalPrice" @edit="saveAndCharge" :status="formData.status"></TotalPrice>
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -62,16 +62,16 @@
|
||||||
<PatientCard ref="patientCardRef"></PatientCard>
|
<PatientCard ref="patientCardRef"></PatientCard>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<RecordsLog ref="recordsConsumptionRef"></RecordsLog>
|
<RecordsLog ref="recordsConsumptionRef"></RecordsLog>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Settlement
|
<Settlement
|
||||||
ref="settlementRef"
|
ref="settlementRef"
|
||||||
v-model="socialCard"
|
v-model="socialCard"
|
||||||
@orderCompleted="orderCompleted"
|
@orderCompleted="orderCompleted"
|
||||||
@orderCanceled="orderCanceled"
|
@orderCanceled="orderCanceled"
|
||||||
></Settlement>
|
></Settlement>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -109,7 +109,7 @@ const delDraft = () => {
|
||||||
}
|
}
|
||||||
const settlementRef = ref()
|
const settlementRef = ref()
|
||||||
const saveAndCharge = () => {
|
const saveAndCharge = () => {
|
||||||
post('charge/save', {data: {...formData.value,doctorId: doctorId.value}}).then((res: any) => {
|
post('charge/save', {data: {...formData.value, doctorId: doctorId.value}}).then((res: any) => {
|
||||||
formData.value.code = res
|
formData.value.code = res
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
settlementRef.value?.init(res)
|
settlementRef.value?.init(res)
|
||||||
|
|
@ -133,7 +133,7 @@ const diagnosisSelect = (list: any) => {
|
||||||
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
|
formData.value.diagnosisMedicalRecord.diagnosisDetail = JSON.stringify(list)
|
||||||
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
formData.value.diagnosisMedicalRecord.diagnosisSummary = diagnosisNames
|
||||||
}
|
}
|
||||||
const recordsConsumptionRef= ref<any>("")
|
const recordsConsumptionRef = ref<any>("")
|
||||||
const patientCardRef = ref()
|
const patientCardRef = ref()
|
||||||
const clickItem = async (item: any, status: any) => {
|
const clickItem = async (item: any, status: any) => {
|
||||||
statusDisabled.value = status
|
statusDisabled.value = status
|
||||||
|
|
@ -174,7 +174,6 @@ onMounted(() => {
|
||||||
list()
|
list()
|
||||||
})
|
})
|
||||||
const getOrderTotalPrice = () => {
|
const getOrderTotalPrice = () => {
|
||||||
debugger
|
|
||||||
let totalPrice = 0
|
let totalPrice = 0
|
||||||
formData.value.itemDetail?.forEach((item: any) => {
|
formData.value.itemDetail?.forEach((item: any) => {
|
||||||
totalPrice += item.selectedPrice * item.selectedNum
|
totalPrice += item.selectedPrice * item.selectedNum
|
||||||
|
|
@ -191,7 +190,7 @@ const props = {
|
||||||
expandTrigger: 'hover' as const,
|
expandTrigger: 'hover' as const,
|
||||||
}
|
}
|
||||||
|
|
||||||
const doctorId=ref<any>('')
|
const doctorId = ref<any>('')
|
||||||
const handleChange = (value: any) => {
|
const handleChange = (value: any) => {
|
||||||
doctorId.value = value[value.length - 1]
|
doctorId.value = value[value.length - 1]
|
||||||
}
|
}
|
||||||
|
|
@ -200,9 +199,9 @@ const cardTypeList = ref<any>(Object.entries(psnCertTypes).map(([id, name]) => (
|
||||||
const doctorList = ref<any>([])
|
const doctorList = ref<any>([])
|
||||||
const sectionDoctorOption = ref<any>('')
|
const sectionDoctorOption = ref<any>('')
|
||||||
const list = () => {
|
const list = () => {
|
||||||
post(apiConfig.organizationMemberSearch, {query: {role: 1}}).then((res: any) => {
|
post(apiConfig.organizationMemberSearch, {query: {role: 1}}).then((res: any) => {
|
||||||
doctorList.value = res
|
doctorList.value = res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -224,11 +223,11 @@ const list = () => {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
.diagnosis-content{
|
|
||||||
height:64px;
|
.diagnosis-content {
|
||||||
padding:0 24px 24px;
|
height: 64px;
|
||||||
|
padding: 0 24px 24px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: left;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.case {
|
.case {
|
||||||
|
|
@ -285,6 +284,7 @@ const list = () => {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom {
|
.bottom {
|
||||||
margin-top: 24px;
|
margin-top: 24px;
|
||||||
height: 86px;
|
height: 86px;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue