This commit is contained in:
ChenQiuYu 2025-04-29 09:50:31 +08:00
parent 64932e298d
commit 256ba5ff10
7 changed files with 96 additions and 63 deletions

View File

@ -4,9 +4,9 @@ import {onMounted, ref} from "vue";
import {getThisWeek} from "@/utils/dateUtils.ts"; import {getThisWeek} from "@/utils/dateUtils.ts";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
onMounted(() => { // onMounted(() => {
getRevenueOverview() // getRevenueOverview()
}) // })
const payTypeRevenue = ref<any>([ const payTypeRevenue = ref<any>([
{ {
name: '医保支付', name: '医保支付',
@ -34,21 +34,28 @@ const payTypeRevenue = ref<any>([
background: '#E5F9FF' background: '#E5F9FF'
} }
]); ]);
const getRevenueOverview = () => { const background = ref<any>([
const thisWeek = getThisWeek(); '#F0F4FD',
post("statistics/getRevenueOverview", {beginTime: thisWeek.start, endTime: thisWeek.end}).then((res: any) => { '#ECF8FE',
if (res.payTypeRevenue.length === 0) return '#FFF5EC',
payTypeRevenue.value = res.payTypeRevenue '#FFEEEE',
}) '#E5F9FF'
]);
} // const getRevenueOverview = () => {
// const thisWeek = getThisWeek();
// post("statistics/getRevenueOverview", {beginTime: thisWeek.start, endTime: thisWeek.end}).then((res: any) => {
// if (res.payTypeRevenue.length === 0) return
// payTypeRevenue.value = res.payTypeRevenue
// })
//
// }
</script> </script>
<template> <template>
<Panel title="支付明细" class="detail-price"> <Panel title="支付明细" class="detail-price">
<div class="detail-price-content"> <div class="detail-price-content">
<div class="detail-price-content-item" v-for="(item,index) in payTypeRevenue" <div class="detail-price-content-item" v-for="(item,index) in payTypeRevenue"
:style="'background:'+item.background"> :style="`background:${background[index]}`">
<img class="detail-price-content-item-image" :src="`/static/images/home/${index+1}.png`" :alt="item.name"> <img class="detail-price-content-item-image" :src="`/static/images/home/${index+1}.png`" :alt="item.name">
<div class="detail-price-content-item-text"> <div class="detail-price-content-item-text">
<div class="detail-price-content-item-text-name">{{ item.name }}</div> <div class="detail-price-content-item-text-name">{{ item.name }}</div>

View File

@ -147,7 +147,6 @@ const getExpiryDateWarning = () => {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin-right: 24px;
.box { .box {
.item { .item {

View File

@ -18,21 +18,21 @@
<el-input v-model="edit_data.name" placeholder="请输入名称"></el-input> <el-input v-model="edit_data.name" placeholder="请输入名称"></el-input>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性别"> <el-descriptions-item label="性别">
<el-select <el-form-item prop="gender">
v-model="edit_data.gender" <el-radio-group v-model="edit_data.gender">
placeholder="请选择性别" <el-radio value="男"></el-radio>
> <el-radio value="女"></el-radio>
<el-option </el-radio-group>
v-for="item in ['男','女']" </el-form-item>
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="年龄"> <el-descriptions-item label="年龄">
<el-input v-model="edit_data.age" placeholder="请输入年龄"></el-input> <el-input v-model="edit_data.age" placeholder="请输入年龄"></el-input>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="证件码">
<el-form-item prop="certno">
<el-input v-model="edit_data.certno" placeholder="请输入证件码"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="医生"> <el-descriptions-item label="医生">
<el-select <el-select
v-model="edit_data.organizationDoctorId" v-model="edit_data.organizationDoctorId"
@ -112,12 +112,15 @@ const rules = ref<any>({
name: [ name: [
{required: true, message: '请输入名称', trigger: 'blur'}, {required: true, message: '请输入名称', trigger: 'blur'},
], ],
code: [ gender: [
{required: true, message: '请输入编码', trigger: 'blur'}, {required: true, message: '请选择性别', trigger: 'blur'},
], ],
spec: [ spec: [
{required: true, message: '请输入规格', trigger: 'blur'}, {required: true, message: '请输入规格', trigger: 'blur'},
], ],
certno: [
{required: true, message: '请输入证件码', trigger: 'blur'},
],
}) })
const isShow = ref(false) const isShow = ref(false)
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
@ -126,12 +129,15 @@ const close = () => {
emit('close') emit('close')
} }
const id = props.id const id = props.id
const form = ref()
const save = () => { const save = () => {
let data = { let data = {
...edit_data.value, ...edit_data.value,
psnNo: socialCard.value.data?.baseinfo.psn_no, psnNo: socialCard.value.data?.baseinfo.psn_no,
insutype: socialCard.value.data?.insuinfo[0].insutype insutype: socialCard.value.data?.insuinfo[0].insutype
} }
form.value.validate((v: any) => {
if (v) {
if (id) { if (id) {
post('registration/edit', { post('registration/edit', {
data: data, mdtrtCertNo: socialCard.value.mdtrtCertNo, data: data, mdtrtCertNo: socialCard.value.mdtrtCertNo,
@ -151,6 +157,9 @@ const save = () => {
}) })
} }
} }
})
}
const deleteDetail = () => { const deleteDetail = () => {
post('registration/delete', {id}).then(() => { post('registration/delete', {id}).then(() => {
ElMessage.success('删除成功') ElMessage.success('删除成功')

View File

@ -59,7 +59,6 @@
</div> </div>
</template> </template>
</Mask> </Mask>
<Search ref="createSearchRef" @confirm="createConfirm"/> <Search ref="createSearchRef" @confirm="createConfirm"/>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@ -1,5 +1,5 @@
<template> <template>
<Mask :width="800" :height="600" :is-show="show" :top="100"> <Mask :width="800" :height="600" :is-show="show" :top="100" @close="close" title="药品" :show-footer="true">
<div class="search_content_wrapper"> <div class="search_content_wrapper">
<div class="search_wrapper"> <div class="search_wrapper">
<span>项目名称:</span> <span>项目名称:</span>
@ -31,18 +31,23 @@
<el-table-column prop="code" label="医保编码" width="180" show-overflow-tooltip/> <el-table-column prop="code" label="医保编码" width="180" show-overflow-tooltip/>
<el-table-column prop="enddate" label="有效期至" width="180" show-overflow-tooltip/> <el-table-column prop="enddate" label="有效期至" width="180" show-overflow-tooltip/>
</el-table> </el-table>
</div>
</div>
</div>
<template #footer>
<div class="bottom">
<div class="page_btn_list"> <div class="page_btn_list">
<el-pagination background layout="prev, pager, next" :page-count="search_result.total_page" <el-pagination background layout="prev, pager, next" :page-count="search_result.total_page"
v-model:current-page="current_page" @current-change="change_page"/> v-model:current-page="current_page" @current-change="change_page"/>
</div> </div>
</div> <div class="btn">
</div>
<div class="search_bottom">
<el-button type="primary" @click="confirm">确认</el-button> <el-button type="primary" @click="confirm">确认</el-button>
<el-button type="primary" @click="close">关闭</el-button> <el-button type="primary" @click="close">关闭</el-button>
</div> </div>
</div> </div>
</template>
</Mask> </Mask>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -87,8 +92,8 @@ const change_current_search_data_index = (val: any) => {
const init = (_name: string) => { const init = (_name: string) => {
keyword.value = _name; keyword.value = _name;
show.value = true; show.value = true;
init_search_data() // init_search_data()
search_social() // search_social()
}; };
defineExpose({init}); defineExpose({init});
@ -227,4 +232,11 @@ const close = () => {
width: 100%; width: 100%;
height: 400px; height: 400px;
} }
.bottom{
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 24px;
}
</style> </style>

View File

@ -18,7 +18,7 @@
<Card v-model="userMessage"></Card> <Card v-model="userMessage"></Card>
<CustomerService v-model="proxyMessage"></CustomerService> <CustomerService v-model="proxyMessage"></CustomerService>
<SystemMessage v-model="systemMessage"></SystemMessage> <SystemMessage v-model="systemMessage"></SystemMessage>
<Banner></Banner> <!-- <Banner></Banner>-->
</div> </div>
</div> </div>

View File

@ -46,7 +46,7 @@ import PharmaceuticalConsumables from "@/components/outpatient/PharmaceuticalCon
import {ref, watch, nextTick, onMounted} from "vue"; import {ref, watch, nextTick, onMounted} from "vue";
import Settlement from "@/components/outpatient/Settlement.vue"; import Settlement from "@/components/outpatient/Settlement.vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import {ElMessage} from "element-plus"; import {type Action, ElMessage, ElMessageBox} from "element-plus";
import ServiceItemsDetail from "@/components/outpatient/ServiceItemsDetail.vue"; import ServiceItemsDetail from "@/components/outpatient/ServiceItemsDetail.vue";
import PharmaceuticalConsumablesDetail from "@/components/outpatient/PharmaceuticalConsumablesDetail.vue"; import PharmaceuticalConsumablesDetail from "@/components/outpatient/PharmaceuticalConsumablesDetail.vue";
import CaseDetail from "@/components/outpatient/CaseDetail.vue"; import CaseDetail from "@/components/outpatient/CaseDetail.vue";
@ -100,9 +100,16 @@ const getId = (item: any) => {
medicalHistoryRef.value?.init(patientId.value); medicalHistoryRef.value?.init(patientId.value);
}) })
if (item.status == 1) { if (item.status == 1) {
ElMessageBox.alert(`您将要接诊${item.name}`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
showClose: true,
callback: (action: Action) => {
post('registration/changeStatus', {id: item.id, status: 2}).then((res: any) => { post('registration/changeStatus', {id: item.id, status: 2}).then((res: any) => {
status.value = 2 status.value = 2
}) })
},
})
} }
if (item.status == 3) { if (item.status == 3) {
post(apiConfig.DoctorDetail, { post(apiConfig.DoctorDetail, {