dev
This commit is contained in:
parent
2bc30d1833
commit
eeb3c909e3
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -1,13 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<Panel title="收费队列">
|
<Panel title="收费队列">
|
||||||
<template #tools>
|
<template #tools>
|
||||||
<el-button type="primary" plain size="small" @click="addChargeOrder">新增患者</el-button>
|
<div @click="setDate" class="date-btn">
|
||||||
<el-button type="primary" size="small" plain @click="setDate">
|
<span>{{ selectedDateStr }}</span>
|
||||||
{{ selectedDateStr }}
|
<el-icon style="margin-left: 21px">
|
||||||
<el-icon class="el-icon--right">
|
<Calendar/>
|
||||||
<CaretBottom/>
|
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-button>
|
</div>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="selectedDate"
|
v-model="selectedDate"
|
||||||
type="date"
|
type="date"
|
||||||
|
|
@ -25,12 +24,15 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
|
<div class="search-input">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="query.keyword"
|
v-model="query.keyword"
|
||||||
style="height: 100%;width: 100%"
|
style="height: 100%;width: 100%"
|
||||||
placeholder="根据姓名搜索"
|
placeholder="根据姓名搜索"
|
||||||
@input="search"
|
@input="search"
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="add" @click="addChargeOrder">新增患者</div>
|
||||||
<!-- <el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>-->
|
<!-- <el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="list" v-loading="loading">
|
<div class="list" v-loading="loading">
|
||||||
|
|
@ -65,8 +67,8 @@
|
||||||
import {nextTick, onMounted, ref, watch} from "vue";
|
import {nextTick, onMounted, ref, watch} 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 {formatListTime, getCurrentDate, getEndOfDay, getToday} from "@/utils/dateUtils.ts";
|
import {formatListTime, getCurrentDate, getEndOfDay} from "@/utils/dateUtils.ts";
|
||||||
import {CaretBottom} from "@element-plus/icons-vue";
|
import {Calendar} from "@element-plus/icons-vue";
|
||||||
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
||||||
import Edit from "@/components/registration/Edit.vue";
|
import Edit from "@/components/registration/Edit.vue";
|
||||||
|
|
||||||
|
|
@ -105,8 +107,7 @@ const init = async () => {
|
||||||
try {
|
try {
|
||||||
let data: any = await post(apiConfig.RecordGetChargeQueue, {query: query.value}, {catch_error: true})
|
let data: any = await post(apiConfig.RecordGetChargeQueue, {query: query.value}, {catch_error: true})
|
||||||
ChargeQueueList.value = data.list
|
ChargeQueueList.value = data.list
|
||||||
}
|
} catch {
|
||||||
catch {
|
|
||||||
ChargeQueueList.value = []
|
ChargeQueueList.value = []
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
|
|
@ -199,7 +200,21 @@ const search = (v: any) => {
|
||||||
height: 74px;
|
height: 74px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
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 {
|
.list {
|
||||||
|
|
@ -315,6 +330,16 @@ const search = (v: any) => {
|
||||||
padding-bottom: 10px;
|
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) {
|
:deep(.el-input--prefix) {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Mask :width="696" :height="409" title="收费" :is-show="show" @close="close" :show-footer="true">
|
<Mask :width="696" :height="409" title="收费" :is-show="show" @close="close" :show-footer="true">
|
||||||
<template #default>
|
<template #default>
|
||||||
<div class="content">
|
<div class="content" v-loading="loading">
|
||||||
<div class="btns">
|
<div class="btns">
|
||||||
<div
|
<div
|
||||||
class="btn"
|
class="btn"
|
||||||
|
|
@ -68,7 +68,7 @@ const socialCard = ref<any>({
|
||||||
mdtrtCertNo: null,
|
mdtrtCertNo: null,
|
||||||
payInfo: {}
|
payInfo: {}
|
||||||
});
|
});
|
||||||
|
const loading = ref(false);
|
||||||
const show = ref(false)
|
const show = ref(false)
|
||||||
const printReceipt = ref(false);
|
const printReceipt = ref(false);
|
||||||
const payType = ref(null);
|
const payType = ref(null);
|
||||||
|
|
@ -110,6 +110,7 @@ const completeSettlement = () => {
|
||||||
socialSettlement();
|
socialSettlement();
|
||||||
} else {
|
} else {
|
||||||
//其他结算
|
//其他结算
|
||||||
|
loading.value = true;
|
||||||
post('charge/completeOrder', {id: retailOrder.value.id, payType: payType.value}).then((res: any) => {
|
post('charge/completeOrder', {id: retailOrder.value.id, payType: payType.value}).then((res: any) => {
|
||||||
orderCompleted()
|
orderCompleted()
|
||||||
})
|
})
|
||||||
|
|
@ -119,6 +120,7 @@ const completeSettlement = () => {
|
||||||
|
|
||||||
|
|
||||||
const orderCompleted = () => {
|
const orderCompleted = () => {
|
||||||
|
loading.value = false;
|
||||||
show.value = false;
|
show.value = false;
|
||||||
ElMessage.success("保存成功")
|
ElMessage.success("保存成功")
|
||||||
emit('orderCompleted', printReceipt.value)
|
emit('orderCompleted', printReceipt.value)
|
||||||
|
|
@ -144,6 +146,7 @@ const socialSettlement = () => {
|
||||||
ElMessage.warning("请刷卡")
|
ElMessage.warning("请刷卡")
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
loading.value = true;
|
||||||
const params = {
|
const params = {
|
||||||
mdtrtCertType: socialCard.value.mdtrtCertType,
|
mdtrtCertType: socialCard.value.mdtrtCertType,
|
||||||
mdtrtCertNo: socialCard.value.mdtrtCertNo,
|
mdtrtCertNo: socialCard.value.mdtrtCertNo,
|
||||||
|
|
@ -161,6 +164,7 @@ const socialSettlement = () => {
|
||||||
}
|
}
|
||||||
const psnPaymentRef = ref();
|
const psnPaymentRef = ref();
|
||||||
const openPsnPayment = (payInfo: any, orderInfo: any) => {
|
const openPsnPayment = (payInfo: any, orderInfo: any) => {
|
||||||
|
loading.value = false;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
psnPaymentRef.value?.open(payInfo, orderInfo);
|
psnPaymentRef.value?.open(payInfo, orderInfo);
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ const openSettlement =()=>{
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div>总金额:<span class="text icon">¥</span><span class="text">{{ totalAmount || '0' }}</span></div>
|
<div>总金额:<span class="text icon">¥</span><span class="text">{{ totalAmount || '0' }}</span></div>
|
||||||
<div class="btn-group" v-if="status">
|
<div class="btn-group" v-if="status">
|
||||||
<el-button type="primary" @click="openCheckOut">追溯码</el-button>
|
<span type="primary" @click="openCheckOut">追溯码</span>
|
||||||
<el-button type="primary" @click="openSettlement">收费</el-button>
|
<span type="primary" @click="openSettlement">收费</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
@ -49,4 +49,18 @@ const openSettlement =()=>{
|
||||||
color: #FF282E
|
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>
|
</style>
|
||||||
|
|
@ -76,7 +76,10 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" v-if="props.status">
|
<el-table-column label="操作" v-if="props.status">
|
||||||
<template #default="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -103,6 +106,7 @@ import Panel from "@/components/common/Panel.vue";
|
||||||
import {ref} from "vue";
|
import {ref} from "vue";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
|
import {Delete} from "@element-plus/icons-vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
status: {
|
status: {
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,10 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" v-if="props.status">
|
<el-table-column label="操作" v-if="props.status">
|
||||||
<template #default="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -66,12 +69,13 @@
|
||||||
</Panel>
|
</Panel>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {defineProps, watchEffect, ref} from "vue";
|
import {defineProps, ref} from "vue";
|
||||||
import SearchInput from "@/components/SearchInput.vue";
|
import SearchInput from "@/components/SearchInput.vue";
|
||||||
import Panel from "@/components/common/Panel.vue";
|
import Panel from "@/components/common/Panel.vue";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
import chrgitm_lv from "@/assets/config/directory/chrgitmLv.json"
|
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({
|
const props = defineProps({
|
||||||
status: {
|
status: {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<template #tools>
|
<template #tools>
|
||||||
<div @click="setDate" class="date-btn">
|
<div @click="setDate" class="date-btn">
|
||||||
<span>{{ selectedDateStr }}</span>
|
<span>{{ selectedDateStr }}</span>
|
||||||
<el-icon style="margin-left: 24px">
|
<el-icon style="margin-left: 21px">
|
||||||
<Calendar/>
|
<Calendar/>
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -324,12 +324,13 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
|
||||||
|
|
||||||
.date-btn {
|
.date-btn {
|
||||||
width: 98px;
|
width: 98px;
|
||||||
height: 33px;
|
height: 32px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 6px;
|
||||||
|
border: 1px solid #EAEAEC;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
border-radius: 4px;
|
|
||||||
border: 1px solid #ececee;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.el-input) {
|
:deep(.el-input) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue