feat(DictSelect): 支持多选模式并添加标签折叠功能

feat(meal): 修改用餐人数为成员选择并显示详细名单

feat: 新增用餐报表页面,包含数据统计和可视化图表
This commit is contained in:
砂糖
2026-01-21 16:24:57 +08:00
parent a2ffe5cc73
commit e34e5a7a1f
3 changed files with 600 additions and 11 deletions

View File

@@ -96,8 +96,20 @@
</template>
</el-table-column>
<el-table-column label="用餐总人数" align="center" prop="totalPeople" />
<el-table-column label="堂食人数" align="center" prop="dineInPeople" />
<el-table-column label="打包人数" align="center" prop="takeoutPeople" />
<el-table-column label="堂食人数" align="center" prop="dineInPeople">
<template slot-scope="scope">
<el-tooltip :content="scope.row.dineInPeopleList || 0" placement="top">
<span style="cursor: pointer;">{{ scope.row.dineInPeople || 0 }}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="打包人数" align="center" prop="takeoutPeople">
<template slot-scope="scope">
<el-tooltip :content="scope.row.takeoutPeopleList || 0" placement="top">
<span style="cursor: pointer;">{{ scope.row.takeoutPeople || 0 }}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="报餐人姓名" align="center" prop="reportUserName">
<template slot-scope="scope">
<dict-tag :options="dict.type.hrm_leave_employee" :value="scope.row.reportUserName"/>
@@ -150,11 +162,13 @@
<el-form-item label="部门名称" prop="deptName">
<DictSelect dictType="hrm_department" v-model="form.deptName" placeholder="请选择部门名称"></DictSelect>
</el-form-item>
<el-form-item label="堂食人数" prop="dineInPeople">
<el-input v-model="form.dineInPeople" placeholder="请输入堂食人数" type="number" min="0" />
<el-form-item label="堂食成员" prop="dineInPeopleList">
<dict-select dictType="hrm_leave_employee" v-model="form.dineInPeopleList" placeholder="请选择堂食成员" multiple @change="handleDineInPeopleChange"/>
<div>{{ form.dineInPeople || 0 }}</div>
</el-form-item>
<el-form-item label="打包人数" prop="takeoutPeople">
<el-input v-model="form.takeoutPeople" placeholder="请输入打包人数" type="number" min="0" />
<el-form-item label="打包成员" prop="takeoutPeopleList">
<dict-select dictType="hrm_leave_employee" v-model="form.takeoutPeopleList" placeholder="请选择打包成员" multiple @change="handleTakeoutPeopleChange"/>
<div>{{ form.takeoutPeople || 0 }}</div>
</el-form-item>
<el-form-item label="用餐总人数" prop="totalPeople">
<el-input v-model="form.totalPeople" placeholder="请输入用餐总人数" disabled />
@@ -261,6 +275,16 @@ export default {
this.calcTableSum(); // 重新计算统计数据
});
},
/** 新增:处理堂食成员选择变化 */
handleDineInPeopleChange(val) {
this.form.dineInPeople = val?.length || 0;
this.calcTotalPeople();
},
/** 新增:处理打包成员选择变化 */
handleTakeoutPeopleChange(val) {
this.form.takeoutPeople = val?.length || 0;
this.calcTotalPeople();
},
/** 核心修改:区分有效/无效统计 */
calcTableSum(){
// 初始化统计变量