This commit is contained in:
ChenQiuYu 2025-05-09 15:02:52 +08:00
parent 2fc45d13a3
commit de9996de14
7 changed files with 88 additions and 60 deletions

View File

@ -25,12 +25,17 @@
</span>
</div>
<div class="search">
<el-input v-model="query.keyword" style="height: 100%;width: 100%" placeholder="根据姓名搜索"/>
<el-input
v-model="query.keyword"
style="height: 100%;width: 100%"
placeholder="根据姓名搜索"
@input="search"
/>
<!-- <el-button type="success" @click="addChargeOrder" size="small">+收费</el-button>-->
</div>
<div class="list">
<div class="list" v-loading="loading">
<el-scrollbar>
<ul v-loading="loading">
<ul >
<li class="list-item" :class="curItem.id == item.id ? 'active' : ''"
v-for="(item, index) in ChargeQueueList"
:key="index" @click="clickItem(item)">
@ -50,7 +55,6 @@
</li>
</ul>
</el-scrollbar>
</div>
</div>
</template>
@ -71,7 +75,7 @@ const clickItem = (item: any) => {
curItem.value = item
emit('clickItem', item, query.value.status);
}
const loading= ref(false)
const loading = ref(false)
const ChargeQueueList = ref<any>([]);
const addChargeOrder = () => {
@ -104,16 +108,15 @@ const init = async () => {
query.value.endTime = getEndOfDay(selectedDate.value)
loading.value = true
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
}
catch {
}
finally {
ChargeQueueList.value = []
} finally {
loading.value = false
}
getTipCount()
}
const delDraft = () => {
ChargeQueueList.value.shift();
@ -183,6 +186,11 @@ watch(() => selectedDate.value, (newValue, oldValue) => {
}
init()
})
const search = (v: any) => {
console.log(v)
query.value.keyword = v
init()
}
</script>
<style scoped lang="scss">
.container {

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import Panel from "@/components/common/Panel.vue";
import {onMounted, ref} from "vue";
import {formatDateArray, getThisMonth, getThisWeek, getToday, getYesterday} from "@/utils/dateUtils.ts";
import {formatDateArray, getEndOfDay, getThisMonth, getThisWeek, getToday, getYesterday} from "@/utils/dateUtils.ts";
import {post} from "@/utils/request.ts";
onMounted(() => {
@ -48,6 +48,9 @@ const getDateRange = () => {
beginTime = date.start
endTime = date.end
}
if (beginTime==endTime){
endTime=getEndOfDay(endTime)
}
return {begin: beginTime, end: endTime}
}
const getRevenueOverview = () => {

View File

@ -300,7 +300,7 @@
</div>
</el-aside>
<el-aside width="350px" style="border-left: 1px #ddd solid">
<el-form style="width: 100%;" label-width="100px">
<el-form style="width: 100%;" :rules="rules" ref="formRef" label-width="100px">
<el-descriptions title="定价" border direction="vertical" :column="2" style="margin-left: 5px">
<el-descriptions-item label="定价模式" width="180">
<el-select v-model="edit_data.pricingModel" placeholder="请选择">
@ -310,23 +310,24 @@
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="加成率" v-if="edit_data.pricingModel==1">
<el-input v-model="edit_data.makeUp" type="number">
<template #append>%</template>
</el-input>
<el-form-item prop="makeUp">
<el-input v-model="edit_data.makeUp" type="number">
<template #append>%</template>
</el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="零售价格" v-if="edit_data.pricingModel==2">
<el-input v-model="edit_data.unitPrice" type="number"
>
<template #prefix></template>
<template #append>/{{ edit_data.packagingUnit }}</template>
</el-input>
<el-descriptions-item label="零售价格" v-else>
<el-form-item prop="unitPrice">
<el-input v-model="edit_data.unitPrice" type="number"
>
<template #prefix></template>
<template #append>/{{ edit_data.packagingUnit }}</template>
</el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-checkbox v-model="edit_data.trdnFlag" label="是否允许拆零" size="large"/>
@ -390,7 +391,7 @@ const pricingModelOptions = [
value: 1,
}, {
label: '固定售价',
value: 2,
value: 0,
}
]
const maintainOptions = [
@ -431,7 +432,7 @@ const storageConditionsOptions =
}
]
const emit = defineEmits(['close'])
let edit_data: any = ref({trdnFlag: false, extra: {}, minPackagingUnit: "只", packagingUnit: "盒", pricingModel: 2});
let edit_data: any = ref({trdnFlag: false, extra: {}, minPackagingUnit: "只", packagingUnit: "盒", pricingModel: 0});
const idCode = ref("");
const showPopover = ref(false);
const idCodeList = ref<string[]>([]);
@ -469,6 +470,7 @@ const removeIdCode = (item: string) => {
showPopover.value = idCodeList.value.length > 0;
}
const init = (type: number, id: number) => {
isShow.value = true
_type.value = type;
if (id != null && id != 0) {
@ -494,7 +496,10 @@ const openCreateSearch = () => {
});
}
const createConfirm = (data: any) => {
let id = edit_data.value.id
edit_data.value = data
edit_data.value.id = id
}
const contrastCodeSearch = ref()
const openContrastCodeSearch = () => {
@ -538,6 +543,7 @@ const cateCloseCallBack = () => {
let exit = () => {
document.addEventListener("click", handleClickOutside);
isShow.value = false
edit_data.value = {}
emit('close');
}
const handleClickOutside = (event: MouseEvent) => {
@ -581,6 +587,12 @@ const rules = ref({
producer: [
{required: true, message: '生产企业不能为空', trigger: 'blur'}
],
makeUp: [
{required: true, message: '不能为空', trigger: 'blur'}
],
unitPrice: [
{type: 'number', message: '不能为空', trigger: 'blur'},
]
})
//
const formRef = ref()
@ -617,8 +629,6 @@ const drugCategoryOptions = [
value: 1304
}
]
</script>
<style scoped lang="scss">
.header {

View File

@ -103,7 +103,7 @@ function init_search_data() {
}
let confirm = () => {
let jsondata = current_search_data;
let jsondata = JSON.parse(current_search_data.data);
let data = {
id: null,
type: null,
@ -125,13 +125,10 @@ let confirm = () => {
regType: jsondata.reg_type,
approvalNumber: jsondata.approval_number,
category: jsondata.category
}
}
emit('confirm', data)
show.value = false;
}
let isloading = ref(false);
let search_social = () => {
@ -170,6 +167,7 @@ let search_social = () => {
}
const close = () => {
show.value = false;
keyword.value=''
}
</script>
<style scoped lang="scss">

View File

@ -1,12 +1,6 @@
<script setup lang="ts">
import {getKey} from "@/utils/discrotyUtil.ts";
import gends from "@/assets/config/directory/gends.json";
import natys from "@/assets/config/directory/antys.json";
import psnCertTypes from "@/assets/config/directory/psnCertTypes.json";
import insutypes from "@/assets/config/directory/insutypes.json";
import {onMounted, onUnmounted, ref} from "vue";
import {ElMessage, ElMessageBox} from "element-plus";
import {ElMessage} from "element-plus";
import {post} from "@/utils/request.ts";
import type {Request, Response} from "@/utils/ws.ts";
import {useWsStore} from "@/stores/wsStore.ts";
@ -15,8 +9,8 @@ const wsStore = useWsStore();
const isReading = ref(false)
const socialCard: any = defineModel();
const ReadSocialCard = async (readType: string) => {
emit("changeLoading",true)
socialCard.value.lastUse = "CardDefault"
emit("changeLoading", true)
isReading.value = true;
let config_db: any = await post('common/config/getall');
let config: any = {}
@ -41,7 +35,6 @@ const ReadSocialCard = async (readType: string) => {
};
const reciceMessage = (response: Response) => {
emit('changeLoading',false)
if (socialCard.value.lastUse != "CardDefault") {
return;
}
@ -52,6 +45,7 @@ const reciceMessage = (response: Response) => {
type: 'warning',
});
isReading.value = false;
emit('changeLoading', false)
return;
}
let readType = response.Data.readType;
@ -68,19 +62,18 @@ const reciceMessage = (response: Response) => {
cardSn: response.Data.card_sn ? response.Data.card_sn : "",
}
getInfoFor1101(params)
}
const emit = defineEmits(['socialCardUpdate', 'close','changeLoading'])
const emit = defineEmits(['socialCardUpdate', 'close', 'changeLoading'])
const getInfoFor1101 = (params: any) => {
emit('changeLoading',true)
emit('changeLoading', true)
ElMessage({
message: "正在读取中,请稍后......",
duration: 500,
type: 'info',
});
post("social/person/getCustomSocialInfo", {data: params},{catch_error: true}).then((res: any) => {
emit('changeLoading',false)
post("social/person/getCustomSocialInfo", {data: params}, {catch_error: true}).then((res: any) => {
emit('changeLoading', false)
socialCard.value.data = res;
socialCard.value.mdtrtCertType = params.mdtrtCertType;
socialCard.value.mdtrtCertNo = params.mdtrtCertNo;
@ -91,14 +84,14 @@ const getInfoFor1101 = (params: any) => {
});
emit('socialCardUpdate', socialCard.value)
}).catch(()=>{
}).catch(() => {
isReading.value = false;
emit('changeLoading',false)
ElMessage({
message: "读取失败",
duration: 1000,
type: 'error',
});
emit('changeLoading', false)
ElMessage({
message: "读取失败",
duration: 1000,
type: 'error',
});
})
}
@ -106,8 +99,9 @@ onMounted(async () => {
wsStore.setMessageCallback(reciceMessage)
});
onUnmounted(() => {
emit('changeLoading', false)
wsStore.removeAllMessageCallback()
emit('changeLoading',false)
})
const close = () => {
socialCard.value = null

View File

@ -26,7 +26,8 @@
</el-descriptions-item>
<el-descriptions-item label="性别">
<el-form-item prop="gender">
<el-radio-group v-model="edit_data.gender" :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
<el-radio-group v-model="edit_data.gender"
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
<el-radio :value="1"></el-radio>
<el-radio :value="2"></el-radio>
</el-radio-group>
@ -40,7 +41,8 @@
</el-descriptions-item>
<el-descriptions-item label="手机号">
<el-form-item prop="phone">
<el-input v-model="edit_data.phone" placeholder="手机号" :disabled="edit_data.status==3||edit_data.status==0"></el-input>
<el-input v-model="edit_data.phone" placeholder="手机号"
:disabled="edit_data.status==3||edit_data.status==0"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="医生">
@ -143,10 +145,12 @@
<template #footer>
<div class="bottom">
<el-dropdown v-if="isShowCard" placement="top-start" @show="showCardBtn" @hide="hide" :disabled="edit_data.status==0">
<el-dropdown v-if="isShowCard" placement="top-start" @show="showCardBtn" @hide="hide"
:disabled="edit_data.status==0">
<div class="left" style="outline: none;">
<span class="btnCard" type="primary">
<img class="image" src="/static/images/registration/card.png" alt="" srcset="">{{edit_data.status==0?'不能读卡':'进行读卡'}}
<img class="image" src="/static/images/registration/card.png" alt=""
srcset="">{{ edit_data.status == 0 ? '不能读卡' : '进行读卡' }}
<img class="image1" :src="'/static/images/registration/'+(showBtn?2:1)+'.png'" alt="" srcset="">
</span>
</div>
@ -300,7 +304,7 @@ const init = (doctorId: any, id: any) => {
const isShowCard = ref<any>(true)
const tableData = ref<any>([])
const socialCardUpdate = (e: any) => {
loading.value = true
isShowCard.value = false
if (e) {
isShowCard.value = false
edit_data.value.gender = Number(e.data.baseinfo.gend)
@ -357,7 +361,6 @@ const deleteCard = () => {
const showBtn = ref(false)
const showCardBtn = () => {
showBtn.value = true
}
const hide = () => {
showBtn.value = false
@ -374,6 +377,7 @@ const getSectionList = () => {
const loading = ref(false)
const changeLoading = (e: any) => {
loading.value = e
console.log(e,'e')
}
defineExpose({init})
</script>

View File

@ -99,7 +99,15 @@ import {ref, onMounted} from 'vue'
import * as echarts from 'echarts';
import {post} from "@/utils/request.ts";
import Panel from "@/components/common/Panel.vue";
import {getYesterday, getToday, getTomorrow, getThisWeek, getThisMonth, formatDateArray} from "@/utils/dateUtils.ts"
import {
getYesterday,
getToday,
getTomorrow,
getThisWeek,
getThisMonth,
formatDateArray,
getEndOfDay
} from "@/utils/dateUtils.ts"
const changeNum = ref(0)
const data = ref<any>({
@ -147,6 +155,9 @@ const getDateRange = () => {
beginTime = date.start
endTime = date.end
}
if (beginTime==endTime){
endTime=getEndOfDay(endTime)
}
return {begin: beginTime, end: endTime}
}
const initChart = () => {