Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web
This commit is contained in:
commit
842b0e7624
|
|
@ -93,5 +93,5 @@ body {
|
|||
.el-popper.is-light.type-popper, .el-popper.is-light>.el-popper__arrow:before{
|
||||
background:#F5FAFF !important;
|
||||
padding: 0 !important;
|
||||
border: 1px solid #4D6DE4 !important;
|
||||
//border: 1px solid #4D6DE4 !important;
|
||||
}
|
||||
|
|
@ -69,7 +69,6 @@ const generateCalendarData = (
|
|||
|
||||
// 使用示例
|
||||
const calendarData = generateCalendarData(currentYear, currentMonth);
|
||||
console.log(calendarData);
|
||||
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, defineProps, defineEmits } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
minValue: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
maxValue: {
|
||||
type: Number,
|
||||
default: 100
|
||||
}
|
||||
});
|
||||
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
|
||||
const currentValue = ref(props.modelValue);
|
||||
|
||||
// 加法操作
|
||||
const increment = () => {
|
||||
if (currentValue.value < props.maxValue) {
|
||||
currentValue.value++;
|
||||
emit('update:modelValue', currentValue.value);
|
||||
}
|
||||
};
|
||||
|
||||
// 减法操作
|
||||
const decrement = () => {
|
||||
if (currentValue.value > props.minValue) {
|
||||
currentValue.value--;
|
||||
emit('update:modelValue', currentValue.value);
|
||||
}
|
||||
};
|
||||
const change = () => {
|
||||
emit('update:modelValue', currentValue.value);
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<template>
|
||||
<div class="number-input">
|
||||
<button @click="decrement" :disabled="currentValue <= minValue">-</button>
|
||||
<el-input style="width: 100px" v-model.number="currentValue" :min="minValue" :max="maxValue" @input="change"/>
|
||||
<button @click="increment" :disabled="currentValue >= maxValue">+</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.number-input {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
button {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
margin: 0 5px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<template>
|
||||
<panel title="药品耗材">
|
||||
<el-table v-if="goodsDetail.length>0" :data="goodsDetail" max-height="150" style="width: 100%">
|
||||
<el-table-column prop="name" label="名称">
|
||||
<el-table v-if="goodsDetail.length>0" :data="goodsDetail" max-height="300" style="width: 100%"
|
||||
:header-cell-style="{ backgroundColor: '#F5FAFF' }">
|
||||
<el-table-column prop="name" label="名称" width="400">
|
||||
<template #default="scope">
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
|
|
@ -39,20 +40,20 @@
|
|||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="selectedPrice" label="单价">
|
||||
<el-table-column prop="selectedPrice" label="单价" width="200">
|
||||
<template #default="scope">
|
||||
¥{{ scope.row.selectedPrice }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="number" label="数量">
|
||||
<el-table-column prop="number" label="数量" width="250">
|
||||
<template #default="scope">
|
||||
<div v-if="props.status">
|
||||
<el-input-number v-model="scope.row.selectedNum" :min="0" @change="handleNumChange(scope.row)"
|
||||
size="small"></el-input-number>
|
||||
<el-dropdown>
|
||||
<span style="line-height: 30px;margin-left: 10px">{{ scope.row.selectedUnit }}</span>
|
||||
style="margin-right: 5px"></el-input-number>
|
||||
<el-dropdown v-if="scope.row.trdnFlag == 1">
|
||||
<span style="line-height: 30px;margin-left: 10px;cursor: pointer">{{ scope.row.selectedUnit }}</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu v-if="scope.row.trdnFlag == 1">
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="selectUnit(scope.row,scope.row.packagingUnit)">{{ scope.row.packagingUnit }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="selectUnit(scope.row,scope.row.minPackagingUnit)">
|
||||
|
|
@ -61,6 +62,7 @@
|
|||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<span v-else style="line-height: 30px;margin-left: 10px">{{ scope.row.selectedUnit }}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div>{{ scope.row.selectedNum }} {{ scope.row.selectedUnit }}</div>
|
||||
|
|
@ -91,7 +93,7 @@
|
|||
:width="1000"
|
||||
></SearchInput>
|
||||
</div>
|
||||
<span v-if="status">合计:¥{{ getTotalPrice() }}</span>
|
||||
<span v-if="status" style="padding: 10px">合计:¥{{ getTotalPrice() }}</span>
|
||||
</div>
|
||||
</panel>
|
||||
</template>
|
||||
|
|
@ -163,7 +165,6 @@ const goodsSelect = (row: any) => {
|
|||
if (goodsDetail.value.find((i: any) => i.id == row.id)) {
|
||||
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
|
||||
|
|
@ -182,7 +183,7 @@ const selectUnit = (item: any, unit: any) => {
|
|||
|
||||
}
|
||||
const emit = defineEmits(["totalPriceChange", 'focus'])
|
||||
const handleNumChange = (row:any) => {
|
||||
const handleNumChange = (row: any) => {
|
||||
//应采数量
|
||||
let shouldNumber = 0;
|
||||
if (row.selectedUnit == row.packagingUnit) {
|
||||
|
|
@ -220,8 +221,11 @@ const colosInfo = () => {
|
|||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
:deep(.el-table__cell) {
|
||||
padding: 0 4px;
|
||||
:deep(.el-table tr) {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.bottom {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<Panel title="服务项目">
|
||||
<el-table v-if="itemDetail.length>0" :data="itemDetail">
|
||||
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip width="200">
|
||||
<el-table v-if="itemDetail.length>0" :data="itemDetail" max-height="300" :header-cell-style="{ backgroundColor: '#F5FAFF' }">
|
||||
<el-table-column prop="itemName" label="项目名称" show-overflow-tooltip width="400">
|
||||
<template #default="scope">
|
||||
<el-popover
|
||||
width="485"
|
||||
|
|
@ -27,15 +27,15 @@
|
|||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单价">
|
||||
<el-table-column label="单价" width="200">
|
||||
<template #default="scope">
|
||||
¥{{ scope.row.selectedPrice }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" width="180">
|
||||
<el-table-column label="数量" width="250">
|
||||
<template #default="scope">
|
||||
<el-input-number v-if="props.status" v-model="scope.row.selectedNum" :min="0"
|
||||
@change="handleNumChange" size="small"></el-input-number>
|
||||
@change="handleNumChange" style="margin-right: 5px"></el-input-number>
|
||||
<span v-else>{{ scope.row.selectedNum }}</span>
|
||||
{{ scope.row.selectedUnit }}
|
||||
</template>
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
:show-config="serviceShowConfig"
|
||||
@selectedCallBack="serviceSelect" :disabled="!props.status"></SearchInput>
|
||||
</div>
|
||||
<span v-if="status">合计:¥{{ getTotalPrice() || 0 }}</span>
|
||||
<span v-if="status" style="padding: 10px">合计:¥{{ getTotalPrice() || 0 }}</span>
|
||||
</div>
|
||||
</Panel>
|
||||
</template>
|
||||
|
|
@ -78,7 +78,7 @@ const props = defineProps({
|
|||
type: Boolean,
|
||||
default: 0
|
||||
},
|
||||
statusDisabled:{
|
||||
statusDisabled: {
|
||||
type: Boolean,
|
||||
default: 0
|
||||
}
|
||||
|
|
@ -121,7 +121,6 @@ const serviceSelect = (row: any) => {
|
|||
if (itemDetail.value.find((i: any) => i.id == row.id)) {
|
||||
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
|
||||
|
|
@ -157,8 +156,11 @@ const hide = () => {
|
|||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
:deep(.el-table__cell) {
|
||||
padding: 0 4px;
|
||||
:deep(.el-table tr) {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.bottom {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,46 @@
|
|||
<template>
|
||||
<el-popover placement="bottom-start" :visible="isVisible" :width="props.width" ref="popoverRef"
|
||||
@before-enter="beforeShow" @hide="afterShow">
|
||||
@before-enter="beforeShow" @hide="afterShow" popper-class="type-popper">
|
||||
<template #reference>
|
||||
<el-input v-model="keyword" style="width: 100%;height: 100%" @input="changeInput" :disabled="disabled" @click="changeInput"
|
||||
placeholder="诊断选择" ref="inputRef" @focus="focus" @blur="handleBlur"></el-input>
|
||||
</template>
|
||||
<div class="container">
|
||||
<el-table :data="searchList" style="width: 100%" @row-click="clickRow" :show-header="props.showHeader"
|
||||
size="small"
|
||||
max-height="250px">
|
||||
<el-table-column v-for="item in showConfig" :prop="item.prop" :label="item.label"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
<div class="container" style="height: 300px">
|
||||
<el-scrollbar style="height: 300px">
|
||||
<table class="table" style="width: 100%; border-collapse: collapse;max-height: 50px">
|
||||
<!-- 表头 -->
|
||||
<thead>
|
||||
<tr class="table-title">
|
||||
<th
|
||||
v-for="item in showConfig"
|
||||
:key="item.prop"
|
||||
style="background-color: #f5f7fa; padding: 8px;"
|
||||
>
|
||||
{{ item.label }}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- 表体 -->
|
||||
<tbody>
|
||||
<tr class="table-body"
|
||||
v-for="(item, index) in searchList"
|
||||
:key="index"
|
||||
@click="clickRow(item)"
|
||||
style="cursor: pointer; transition: background-color 0.2s;"
|
||||
>
|
||||
<td
|
||||
v-for="showItem in showConfig"
|
||||
:key="showItem.prop"
|
||||
style="vertical-align: middle; padding: 8px;"
|
||||
>
|
||||
{{ item[showItem.prop] }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</el-scrollbar>
|
||||
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
|
|
@ -146,4 +175,55 @@ defineExpose({init,clear})
|
|||
:deep(.el-table--small .el-table__cell) {
|
||||
padding: 0;
|
||||
}
|
||||
.table {
|
||||
th {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.table-title {
|
||||
height: 52px;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
font-style: normal;
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
&:nth-child(1) {
|
||||
text-align: left;
|
||||
border-radius: 8px 8px 0 0;
|
||||
padding-left: 24px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-body {
|
||||
height: 52px;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
font-style: normal;
|
||||
td {
|
||||
&:nth-child(1) {
|
||||
|
||||
text-align: left;
|
||||
padding-left: 30px !important;
|
||||
white-space: nowrap; /* 防止文本换行 */
|
||||
overflow: hidden; /* 隐藏溢出的文本 */
|
||||
text-overflow: ellipsis; /* 显示省略号 */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
&:last-child {
|
||||
border-radius: 0 0 8px 8px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #4D6DE4;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -20,8 +20,8 @@ const editItem= () => {
|
|||
<div class="footer">
|
||||
<div>总金额:<span class="text icon">¥</span><span class="text">{{ totalAmount || '0' }}</span></div>
|
||||
<div class="btn-group">
|
||||
<el-button v-if="status" @click="deleteItem">取消接诊</el-button>
|
||||
<el-button v-if="status" type="primary" @click="save">完成接诊</el-button>
|
||||
<span v-if="status" @click="deleteItem">取消接诊</span>
|
||||
<span v-if="status" @click="save">完成接诊</span>
|
||||
<!-- <el-button v-if="status == 3" type="primary" @click="editItem">修改</el-button>-->
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -45,5 +45,22 @@ const editItem= () => {
|
|||
.text {
|
||||
color: #FF282E
|
||||
}
|
||||
.btn-group{
|
||||
display: flex;
|
||||
span{
|
||||
width: 119px;
|
||||
height: 48px;
|
||||
text-align: center;
|
||||
line-height: 48px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #D8D8D8;
|
||||
margin-left: 24px;
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
background: #4D6DE4 ;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -82,8 +82,7 @@ const getInfoFor1101 = (params: any) => {
|
|||
duration: 1000,
|
||||
});
|
||||
emit('socialCardUpdate', socialCard.value)
|
||||
|
||||
}).catch(() => {
|
||||
}).catch((err:any) => {
|
||||
isReading.value = false;
|
||||
emit('changeLoading', false)
|
||||
ElMessage({
|
||||
|
|
@ -105,7 +104,7 @@ onUnmounted(() => {
|
|||
|
||||
})
|
||||
const close = () => {
|
||||
socialCard.value = null
|
||||
socialCard.value = {}
|
||||
}
|
||||
defineExpose({close})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
<Mask :is-show="isShow" width="800" :height="height" title="挂号" @close="close"
|
||||
:show-footer="true">
|
||||
<template #default>
|
||||
|
||||
<div style="padding:0 24px">
|
||||
<el-form
|
||||
v-loading="loading"
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ const isShowNum = ref(-1)
|
|||
const roleList = ref<any>([])
|
||||
|
||||
onMounted(() => {
|
||||
selectedDate.value = [getToday().start, getToday().end]
|
||||
initDoctor()
|
||||
getPatientList()
|
||||
})
|
||||
|
|
@ -119,7 +120,6 @@ const handleDateChange = (date: any[]) => {
|
|||
const getPatientList = () => {
|
||||
isShowNum.value = -1
|
||||
id.value = null
|
||||
selectedDate.value = [getToday().start, getToday().end]
|
||||
post('registration/list', {
|
||||
page: page.value,
|
||||
size: size.value,
|
||||
|
|
|
|||
Loading…
Reference in New Issue