fix(meal): 修复堂食和打包成员选择器互斥问题

添加禁用已选成员的逻辑,防止同一成员被同时选为堂食和打包
This commit is contained in:
砂糖
2026-03-02 14:11:47 +08:00
parent cc4fd73ca6
commit 8d94cf7555
2 changed files with 22 additions and 5 deletions

View File

@@ -8,10 +8,11 @@
style="width: 200px;" style="width: 200px;"
:multiple="multiple" collapse-tags> :multiple="multiple" collapse-tags>
<el-option <el-option
v-for="item in dictOptions" v-for="item in disabledOptions"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
:disabled="item.disabled"
/> />
</el-select> </el-select>
@@ -152,11 +153,12 @@ export default {
props: { props: {
dictType: { type: String, default: '' }, dictType: { type: String, default: '' },
editable: { type: Boolean, default: true }, editable: { type: Boolean, default: true },
kisv: { type: Boolean, default: false }, kisv: { type: Boolean, default: true },
value: { type: String, default: '' }, value: { type: String, default: '' },
placeholder: { type: String, default: '请选择' }, placeholder: { type: String, default: '请选择' },
refresh: { type: Boolean, default: true }, refresh: { type: Boolean, default: true },
multiple: { type: Boolean, default: false }, multiple: { type: Boolean, default: false },
disables: { type: String, default: '' },
}, },
data() { data() {
return { return {
@@ -199,7 +201,15 @@ export default {
this.$emit('change', val) this.$emit('change', val)
} }
} }
} },
disabledOptions() {
return this.dictOptions.map(item => {
return {
...item,
disabled: this.disabledFormat(item.dictValue)
}
})
},
}, },
watch: { watch: {
dictType: { dictType: {
@@ -235,6 +245,13 @@ export default {
this.dictId = res.rows[0].dictId this.dictId = res.rows[0].dictId
return this.dictId return this.dictId
}, },
disabledFormat(item) {
if (this.disables) {
const list = this.disables.split(',')
return list.includes(item)
}
return false
},
// 新增:刷新字典数据 // 新增:刷新字典数据
async handleRefresh() { async handleRefresh() {
this.loading = true this.loading = true

View File

@@ -163,11 +163,11 @@
<DictSelect dictType="hrm_department" v-model="form.deptName" placeholder="请选择部门名称"></DictSelect> <DictSelect dictType="hrm_department" v-model="form.deptName" placeholder="请选择部门名称"></DictSelect>
</el-form-item> </el-form-item>
<el-form-item label="堂食成员" prop="dineInPeopleList"> <el-form-item label="堂食成员" prop="dineInPeopleList">
<dict-select dictType="hrm_leave_employee" v-model="form.dineInPeopleList" placeholder="请选择堂食成员" multiple @change="handleDineInPeopleChange"/> <dict-select dictType="hrm_leave_employee" v-model="form.dineInPeopleList" placeholder="请选择堂食成员" multiple @change="handleDineInPeopleChange" :disables="form.takeoutPeopleList"/>
<div>{{ form.dineInPeople || 0 }}</div> <div>{{ form.dineInPeople || 0 }}</div>
</el-form-item> </el-form-item>
<el-form-item label="打包成员" prop="takeoutPeopleList"> <el-form-item label="打包成员" prop="takeoutPeopleList">
<dict-select dictType="hrm_leave_employee" v-model="form.takeoutPeopleList" placeholder="请选择打包成员" multiple @change="handleTakeoutPeopleChange"/> <dict-select dictType="hrm_leave_employee" v-model="form.takeoutPeopleList" placeholder="请选择打包成员" multiple @change="handleTakeoutPeopleChange" :disables="form.dineInPeopleList"/>
<div>{{ form.takeoutPeople || 0 }}</div> <div>{{ form.takeoutPeople || 0 }}</div>
</el-form-item> </el-form-item>
<el-form-item label="用餐总人数" prop="totalPeople"> <el-form-item label="用餐总人数" prop="totalPeople">