This commit is contained in:
LiJianZhao 2025-04-29 16:24:50 +08:00
parent e3885ac598
commit 7d16df6d1d
5 changed files with 129 additions and 146 deletions

View File

@ -4,34 +4,29 @@ 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: '医保支付',
totalRevenue: 0, totalRevenue: 0,
background: '#F0F4FD'
}, },
{ {
name: '微信支付', name: '微信支付',
totalRevenue: 0, totalRevenue: 0,
background: '#ECF8FE'
}, },
{ {
name: '支付宝', name: '支付宝',
totalRevenue: 0, totalRevenue: 0,
background: '#FFF5EC'
}, },
{ {
name: '现金支付', name: '现金支付',
totalRevenue: 0, totalRevenue: 0,
background: '#FFEEEE'
}, },
{ {
name: '其他支付', name: '其他支付',
totalRevenue: 0, totalRevenue: 0,
background: '#E5F9FF'
} }
]); ]);
const background = ref<any>([ const background = ref<any>([
@ -41,14 +36,14 @@ const background = ref<any>([
'#FFEEEE', '#FFEEEE',
'#E5F9FF' '#E5F9FF'
]); ]);
// const getRevenueOverview = () => { const getRevenueOverview = () => {
// const thisWeek = getThisWeek(); const thisWeek = getThisWeek();
// post("statistics/getRevenueOverview", {beginTime: thisWeek.start, endTime: thisWeek.end}).then((res: any) => { post("statistics/getRevenueOverview", {beginTime: thisWeek.start, endTime: thisWeek.end}).then((res: any) => {
// if (res.payTypeRevenue.length === 0) return if (res.payTypeRevenue.length === 0) return
// payTypeRevenue.value = res.payTypeRevenue payTypeRevenue.value = res.payTypeRevenue
// }) })
//
// } }
</script> </script>
<template> <template>

View File

@ -2,13 +2,13 @@
<div class="container"> <div class="container">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
<el-date-picker <!-- <el-date-picker-->
v-model="dateArray" <!-- v-model="dateArray"-->
type="daterange" <!-- type="daterange"-->
range-separator="~" <!-- range-separator="~"-->
start-placeholder="开始日期" <!-- start-placeholder="开始日期"-->
end-placeholder="结束日期" <!-- end-placeholder="结束日期"-->
/> <!-- />-->
</div> </div>
<div class="content-box"> <div class="content-box">
<el-table :data="list" style="width: 100%" :summary-method="getSummaries" show-summary> <el-table :data="list" style="width: 100%" :summary-method="getSummaries" show-summary>

View File

@ -2,65 +2,65 @@
<div class="container"> <div class="container">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
<el-date-picker <!-- <el-date-picker-->
v-model="date" <!-- v-model="date"-->
type="daterange" <!-- type="daterange"-->
range-separator="~" <!-- range-separator="~"-->
start-placeholder="开始日期" <!-- start-placeholder="开始日期"-->
end-placeholder="结束日期" <!-- end-placeholder="结束日期"-->
/> <!-- />-->
<el-select <!-- <el-select-->
v-model="salesPerson" <!-- v-model="salesPerson"-->
placeholder="销售人" <!-- placeholder="销售人"-->
style="width: 100px;margin: 0 10px" <!-- style="width: 100px;margin: 0 10px"-->
> <!-- >-->
<el-option <!-- <el-option-->
v-for="item in salesPersonOptions" <!-- v-for="item in salesPersonOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-select v-model="type" placeholder="类型" style="width: 100px"> <!-- <el-select v-model="type" placeholder="类型" style="width: 100px">-->
<el-option <!-- <el-option-->
v-for="item in typeOptions" <!-- v-for="item in typeOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-select v-model="source" placeholder="开单来源" style="width: 100px;margin-left: 10px"> <!-- <el-select v-model="source" placeholder="开单来源" style="width: 100px;margin-left: 10px">-->
<el-option <!-- <el-option-->
v-for="item in sourceOptions" <!-- v-for="item in sourceOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-select <!-- <el-select-->
v-model="chargeMan" <!-- v-model="chargeMan"-->
placeholder="收费员" <!-- placeholder="收费员"-->
style="width: 100px;margin-left: 10px" <!-- style="width: 100px;margin-left: 10px"-->
> <!-- >-->
<el-option <!-- <el-option-->
v-for="item in chargeManOptions" <!-- v-for="item in chargeManOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
<el-select <!-- <el-select-->
v-model="pay" <!-- v-model="pay"-->
placeholder="支付方式" <!-- placeholder="支付方式"-->
style="width: 100px;margin-left: 10px" <!-- style="width: 100px;margin-left: 10px"-->
> <!-- >-->
<el-option <!-- <el-option-->
v-for="item in payOptions" <!-- v-for="item in payOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
</div> </div>
<div class="content-box"> <div class="content-box">
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" style="width: 100%">

View File

@ -2,37 +2,37 @@
<div class="container"> <div class="container">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
<el-date-picker <!-- <el-date-picker-->
v-model="value2" <!-- v-model="date"-->
type="daterange" <!-- type="daterange"-->
range-separator="~" <!-- range-separator="~"-->
start-placeholder="开始日期" <!-- start-placeholder="开始日期"-->
end-placeholder="结束日期" <!-- end-placeholder="结束日期"-->
/> <!-- />-->
<el-select <!-- <el-select-->
v-model="chargeMan" <!-- v-model="chargeMan"-->
placeholder="收费员" <!-- placeholder="收费员"-->
style="width: 100px;margin-left: 10px" <!-- style="width: 100px;margin-left: 10px"-->
> <!-- >-->
<el-option <!-- <el-option-->
v-for="item in chargeManOptions" <!-- v-for="item in chargeManOptions"-->
:key="item.value" <!-- :key="item.value"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value" <!-- :value="item.value"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
</div> </div>
<div class="content-box"> <div class="content-box">
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="收费员" align="center"/> <el-table-column prop="salePersonName" label="收费员" align="center"/>
<el-table-column label="营业收入/总金额" align="center"> <el-table-column prop="totalIncome" label="营业收入/总金额" align="center">
</el-table-column> </el-table-column>
<el-table-column label="支付方式" align="center"> <el-table-column label="支付方式" align="center">
<el-table-column prop="name" label="医保" align="center"/> <el-table-column prop="socialIncome" label="医保" align="center"/>
<el-table-column prop="name" label="微信" align="center"/> <el-table-column prop="wechatIncome" label="微信" align="center"/>
<el-table-column prop="name" label="支付宝" align="center"/> <el-table-column prop="aliPayIncome" label="支付宝" align="center"/>
<el-table-column prop="name" label="现金" align="center"/> <el-table-column prop="cashIncome" label="现金" align="center"/>
<el-table-column prop="name" label="其他" align="center"/> <el-table-column prop="otherIncome" label="其他" align="center"/>
</el-table-column> </el-table-column>
<el-table-column label="收费人次" align="center"> <el-table-column label="收费人次" align="center">
</el-table-column> </el-table-column>
@ -42,38 +42,26 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref} from 'vue' import {onMounted, ref} from 'vue'
import {dateEquals} from "element-plus";
import {post} from "@/utils/request.ts";
const tableData = [ const tableData = ref<any>([]);
{
date: '2016-05-03', const date = ref<any>([]);
name: 'Tom', const chargeMan = ref<any>('');
state: 'California', const chargeManOptions = ref<any>([]);
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles', const getSalePersonCharge = () => {
zip: 'CA 90036', post("statistics/salePerson").then((res:any)=>{
tableData.value = res
})
} }
] onMounted(()=>{
const value2 = ref([]) getSalePersonCharge()
const chargeMan = ref('') })
const chargeManOptions = [
{
value: '1',
label: '张三',
},
{
value: '2',
label: '李四',
},
{
value: '3',
label: '王五',
},
{
value: '4',
label: '赵六',
}
]
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.title { .title {

View File

@ -36,24 +36,24 @@
<div class="revenue-content-item-text"> <div class="revenue-content-item-text">
<div class="num">{{ data.totalOrderCount || 0 }}<span class="unit color1"></span></div> <div class="num">{{ data.totalOrderCount || 0 }}<span class="unit color1"></span></div>
<div class="name color1">消费人次</div> <div class="name color1">消费人次</div>
<div class="text">日均{{ (data.totalOrderCount / averageNum).toFixed(0) || 0 }}</div> <div class="text">日均{{ (data.totalOrderCount / averageNum).toFixed(0) || 0 }}</div>
</div> </div>
<img class="image" src="/static/images/overView/2.png" alt=""> <img class="image" src="/static/images/overView/2.png" alt="">
</div> </div>
<div class="revenue-content-item"> <div class="revenue-content-item">
<div class="revenue-content-item-text"> <div class="revenue-content-item-text">
<div class="num">{{ data.vipRevenue || 0 }}<span class="unit color2"></span></div> <div class="num">{{ data.socialRevenue || 0 }}<span class="unit color2"></span></div>
<div class="name color2">患者贡献收入</div> <div class="name color2">医保收入</div>
<div class="text">日均{{ (data.vipRevenue / averageNum).toFixed(2) || 0 }}</div> <div class="text">日均{{ (data.socialRevenue / averageNum).toFixed(2) || 0 }}</div>
<div class="text"><span>本金0.00&nbsp;&nbsp;赠金0.00</span></div> <div class="text"><span>本金0.00&nbsp;&nbsp;赠金0.00</span></div>
</div> </div>
<img class="image" src="/static/images/overView/3.png" alt=""> <img class="image" src="/static/images/overView/3.png" alt="">
</div> </div>
<div class="revenue-content-item"> <div class="revenue-content-item">
<div class="revenue-content-item-text"> <div class="revenue-content-item-text">
<div class="num">{{ data.vipOrderCount || 0 }}<span class="unit color3"></span></div> <div class="num">{{ data.socialOrderCount || 0 }}<span class="unit color3"></span></div>
<div class="name color3">患者消费人次</div> <div class="name color3">医保消费人次</div>
<div class="text">日均{{ (data.vipOrderCount / averageNum).toFixed(0) || 0 }}</div> <div class="text">日均{{ (data.socialOrderCount / averageNum).toFixed(0) || 0 }}</div>
</div> </div>
<img class="image" src="/static/images/overView/4.png" alt=""> <img class="image" src="/static/images/overView/4.png" alt="">
</div> </div>