web/src/components/charge/ServiceDetail.vue

59 lines
1.8 KiB
Vue

<template>
<el-table :data="data.itemDetail" max-height="150">
<el-table-column prop="itemName" label="名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="selectedUnit" label="单位"></el-table-column>
<el-table-column prop="selectedPrice" label="单价"></el-table-column>
<el-table-column label="数量">
<template #default="scope">
<el-input-number v-model="scope.row.selectedNum" min="0"
@change="handleNumChange"></el-input-number>
</template>
</el-table-column>
<el-table-column label="操作" v-if="data.status ==0">
<template #default="scope">
<el-button type="danger" link @click="delService(scope.row)">X</el-button>
</template>
</el-table-column>
</el-table>
<SearchInput :disabled="data.status == 1" :request-api="serviceSearchApi" :show-config="serviceShowConfig"
@selectedCallBack="serviceSelect"></SearchInput>
</template>
<script setup lang="ts">
import SearchInput from "@/components/SearchInput.vue";
const data = defineModel<any>();
const delService = (item: any) => {
data.value.itemDetail = data.value.itemDetail.filter((i: any) => i.id != item.id)
}
const serviceSearchApi = "item/search";
const serviceShowConfig = [
{
label: "服务名称",
prop: "itemName",
},
{
label: "服务医保码",
prop: "itemSocialCode",
},
{
label: "售价",
prop: "unitPrice",
},
]
const emit = defineEmits(['totalPriceChange'])
const serviceSelect = (row: any) => {
row.selectedNum = 1
row.selectedUnit = row.unit
row.selectedPrice = row.unitPrice
data.value.itemDetail.push(row)
emit('totalPriceChange', row)
}
const handleNumChange = () => {
emit('totalPriceChange')
}
</script>
<style scoped lang="scss">
</style>