Commit 9a7551db by caoyanzhi

update: 选择成员

parent ee4991dc
......@@ -23,7 +23,7 @@
</el-table>
<!-- 导购列表 -->
<div v-if="storeClerkList.length > 0" ref="clerkList" class="clerk-list-body">
<div v-for="el in storeClerkList" :key="el.storeId" class="clerk-list-cell">
<div v-for="(el, index) in storeClerkList" :key="el.storeId" class="clerk-list-cell">
<!-- 门店信息 -->
<el-table :data="[{}]" class="clerk-store-info" :show-header="false">
<el-table-column min-width="67px">
......@@ -38,8 +38,8 @@
<el-table :data="el.clerkList" class="clerk-list-table" :show-header="false">
<el-table-column min-width="67px">
<template slot-scope="{ row }">
<el-checkbox v-if="multiple" v-model="row.selected" @change="onSelectClerk(row, el)" :disabled="row.disabled"></el-checkbox>
<el-radio v-else v-model="row.selected" @change="onSelectClerk(row, el)" :disabled="row.disabled"></el-radio>
<el-checkbox v-if="multiple" v-model="row.selected" @change="onSelectClerk(row, index)" :disabled="row.disabled"></el-checkbox>
<el-radio v-else v-model="row.selected" @change="onSelectClerk(row, index)" :disabled="row.disabled"></el-radio>
</template>
</el-table-column>
<el-table-column label="导购" min-width="230px">
......@@ -232,9 +232,7 @@ export default {
updateStoreState(store) {
// 计算门店的选中状态,计算门店的半选状态
store.selected = store.clerkList.filter(el => !el.disabled).every(el => el.selected);
setTimeout(() => {
store.indeterminate = !store.selected && store.clerkList.some(el => el.selected);
}, 1000);
store.indeterminate = !store.selected && store.clerkList.some(el => el.selected);
},
// 全选所有导购
onSelectAll() {
......@@ -265,14 +263,14 @@ export default {
const clerkList = store.clerkList.filter(el => !el.disabled);
if (clerkList.length > 0) {
let isSelectedAll = clerkList.every(el => el.selected) || this.selected.length >= this.max;
clerkList.forEach(el => {
clerkList.forEach((el, index) => {
if (isSelectedAll) {
el.selected = false;
this.onSelectClerk(el, store, true);
this.onSelectClerk(el, index, true);
} else {
if (this.selected.length < this.max && !el.selected) {
el.selected = true;
this.onSelectClerk(el, store, true);
this.onSelectClerk(el, index, true);
}
}
});
......@@ -283,7 +281,7 @@ export default {
}
},
// 选择单个导购
onSelectClerk(clerk, store, isAll) {
onSelectClerk(clerk, index, isAll) {
// 单选时只能选一个导购,不需要更新全选所有的复选框的样式,也不需要更新门店全选的复选框的样式
if (!this.multiple) {
if (this.selected.length > 0) {
......@@ -310,13 +308,14 @@ export default {
}
}
if (!isAll) {
this.updateStoreState(store);
this.updateStoreState(this.storeClerkList[index]);
this.updateAllState();
}
},
onDelAll() {
if (this.selected.length > 0) {
this.selectAll.selected = false;
this.selected.length = this.max;
this.onSelectAll();
}
},
......@@ -325,7 +324,7 @@ export default {
clerk.selected = false;
this.onSelectClerk(
clerk,
this.storeClerkList.find(el => el.clerkList.some(item => item.clerkId == clerk.clerkId))
this.storeClerkList.findIndex(el => el.clerkList.some(item => item.clerkId == clerk.clerkId))
);
},
onCancel() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment