fix(meal): 修复堂食和打包成员选择器互斥问题
添加禁用已选成员的逻辑,防止同一成员被同时选为堂食和打包
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user