This commit is contained in:
ChenQiuYu 2025-05-14 11:42:42 +08:00
parent 2bc30d1833
commit eeb3c909e3
8 changed files with 84 additions and 32 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,13 +1,12 @@
<template>
<Panel title="收费队列">
<template #tools>
<el-button type="primary" plain size="small" @click="addChargeOrder">新增患者</el-button>
<el-button type="primary" size="small" plain @click="setDate">
{{ selectedDateStr }}
<el-icon class="el-icon--right">
<CaretBottom/>
<div @click="setDate" class="date-btn">
<span>{{ selectedDateStr }}</span>
<el-icon style="margin-left: 21px">
<Calendar/>
</el-icon>
</el-button>
</div>
<el-date-picker
v-model="selectedDate"
type="date"
@ -25,17 +24,20 @@
</span>
</div>
<div class="search">
<div class="search-input">
<el-input
v-model="query.keyword"
style="height: 100%;width: 100%"
placeholder="根据姓名搜索"
@input="search"
/>
</div>
<div class="add" @click="addChargeOrder">新增患者</div>
<!-- <el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>-->
</div>
<div class="list" v-loading="loading">
<el-scrollbar>
<ul >
<ul>
<li class="list-item" :class="curItem.id == item.id ? 'active' : ''"
v-for="(item, index) in ChargeQueueList"
:key="index" @click="clickItem(item)">
@ -65,13 +67,13 @@
import {nextTick, onMounted, ref, watch} from "vue";
import {post} from "@/utils/request.ts";
import Panel from "@/components/common/Panel.vue";
import {formatListTime, getCurrentDate, getEndOfDay, getToday} from "@/utils/dateUtils.ts";
import {CaretBottom} from "@element-plus/icons-vue";
import {formatListTime, getCurrentDate, getEndOfDay} from "@/utils/dateUtils.ts";
import {Calendar} from "@element-plus/icons-vue";
import {apiConfig} from "@/assets/config/apiConfig.ts";
import Edit from "@/components/registration/Edit.vue";
const curItem = ref<any>({});
const emit = defineEmits(['clickItem','getStatus'])
const emit = defineEmits(['clickItem', 'getStatus'])
const clickItem = (item: any) => {
curItem.value = item
emit('clickItem', item, query.value.status);
@ -105,8 +107,7 @@ const init = async () => {
try {
let data: any = await post(apiConfig.RecordGetChargeQueue, {query: query.value}, {catch_error: true})
ChargeQueueList.value = data.list
}
catch {
} catch {
ChargeQueueList.value = []
} finally {
loading.value = false
@ -136,7 +137,7 @@ const statusList = ref([
])
const tab = (item: any) => {
query.value.status = item.value
curItem.value={}
curItem.value = {}
emit('getStatus', item.value)
init()
}
@ -199,7 +200,21 @@ const search = (v: any) => {
height: 74px;
width: 100%;
display: flex;
margin: 0;
.search-input {
flex: 1;
min-width: 0;
}
.add{
width: 128px;
height: 42px;
display: flex;
justify-content: center;
align-items: center;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #979797;
margin-left: 16px;
}
}
.list {
@ -315,6 +330,16 @@ const search = (v: any) => {
padding-bottom: 10px;
}
}
.date-btn {
width: 98px;
height: 32px;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #EAEAEC;
display: flex;
justify-content: center;
align-items: center;
}
:deep(.el-input--prefix) {
visibility: hidden;

View File

@ -1,7 +1,7 @@
<template>
<Mask :width="696" :height="409" title="收费" :is-show="show" @close="close" :show-footer="true">
<template #default>
<div class="content">
<div class="content" v-loading="loading">
<div class="btns">
<div
class="btn"
@ -68,7 +68,7 @@ const socialCard = ref<any>({
mdtrtCertNo: null,
payInfo: {}
});
const loading = ref(false);
const show = ref(false)
const printReceipt = ref(false);
const payType = ref(null);
@ -110,6 +110,7 @@ const completeSettlement = () => {
socialSettlement();
} else {
//
loading.value = true;
post('charge/completeOrder', {id: retailOrder.value.id, payType: payType.value}).then((res: any) => {
orderCompleted()
})
@ -119,6 +120,7 @@ const completeSettlement = () => {
const orderCompleted = () => {
loading.value = false;
show.value = false;
ElMessage.success("保存成功")
emit('orderCompleted', printReceipt.value)
@ -144,6 +146,7 @@ const socialSettlement = () => {
ElMessage.warning("请刷卡")
return;
}
loading.value = true;
const params = {
mdtrtCertType: socialCard.value.mdtrtCertType,
mdtrtCertNo: socialCard.value.mdtrtCertNo,
@ -161,6 +164,7 @@ const socialSettlement = () => {
}
const psnPaymentRef = ref();
const openPsnPayment = (payInfo: any, orderInfo: any) => {
loading.value = false;
nextTick(() => {
psnPaymentRef.value?.open(payInfo, orderInfo);
})

View File

@ -24,8 +24,8 @@ const openSettlement =()=>{
<div class="footer">
<div>总金额<span class="text icon"></span><span class="text">{{ totalAmount || '0' }}</span></div>
<div class="btn-group" v-if="status">
<el-button type="primary" @click="openCheckOut">追溯码</el-button>
<el-button type="primary" @click="openSettlement">收费</el-button>
<span type="primary" @click="openCheckOut">追溯码</span>
<span type="primary" @click="openSettlement">收费</span>
</div>
</div>
</Panel>
@ -49,4 +49,18 @@ const openSettlement =()=>{
color: #FF282E
}
}
.btn-group{
span{
display: inline-block;
width: 119px;
height: 48px;
background: #4D6DE4;
border-radius: 8px;
margin-left: 24px;
color: #fff;
line-height: 48px;
text-align: center;
cursor: pointer;
}
}
</style>

View File

@ -76,7 +76,10 @@
</el-table-column>
<el-table-column label="操作" v-if="props.status">
<template #default="scope">
<el-button type="danger" link @click="delGoods(scope.row)">X</el-button>
<el-button type="danger" link @click="delGoods(scope.row)">
<el-icon style="margin-right: 3px"><Delete /></el-icon>
删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -103,6 +106,7 @@ import Panel from "@/components/common/Panel.vue";
import {ref} from "vue";
import {post} from "@/utils/request.ts";
import {ElMessage} from "element-plus";
import {Delete} from "@element-plus/icons-vue";
const props = defineProps({
status: {

View File

@ -47,7 +47,10 @@
</el-table-column>
<el-table-column label="操作" v-if="props.status">
<template #default="scope">
<el-button type="danger" link @click="delService(scope.row)">X</el-button>
<el-button type="danger" link @click="delService(scope.row)">
<el-icon style="margin-right: 3px"><Delete /></el-icon>
删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -66,12 +69,13 @@
</Panel>
</template>
<script setup lang="ts">
import {defineProps, watchEffect, ref} from "vue";
import {defineProps, ref} from "vue";
import SearchInput from "@/components/SearchInput.vue";
import Panel from "@/components/common/Panel.vue";
import {post} from "@/utils/request.ts";
import chrgitm_lv from "@/assets/config/directory/chrgitmLv.json"
import {ElMessage} from "element-plus";
import {ElMessage} from "element-plus"
import {Delete} from "@element-plus/icons-vue";
const props = defineProps({
status: {

View File

@ -3,7 +3,7 @@
<template #tools>
<div @click="setDate" class="date-btn">
<span>{{ selectedDateStr }}</span>
<el-icon style="margin-left: 24px">
<el-icon style="margin-left: 21px">
<Calendar/>
</el-icon>
</div>
@ -324,12 +324,13 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
.date-btn {
width: 98px;
height: 33px;
height: 32px;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #EAEAEC;
display: flex;
justify-content: center;
align-items: center;
border-radius: 4px;
border: 1px solid #ececee;
}
:deep(.el-input) {