diff --git a/buyer/src/components/invoiceModal/index.vue b/buyer/src/components/invoiceModal/index.vue
index c497e913..633b0ff8 100644
--- a/buyer/src/components/invoiceModal/index.vue
+++ b/buyer/src/components/invoiceModal/index.vue
@@ -92,6 +92,7 @@ import { mobile, email } from '@/plugins/RegExp.js';
export default {
name: 'invoiceModal',
+ emits: ['change'],
data () {
return {
invoice: 1, // 1 电子普通发票 2 增值税专用发票
diff --git a/manager/src/views/member/list/index.vue b/manager/src/views/member/list/index.vue
index 10e36df0..8c40975b 100644
--- a/manager/src/views/member/list/index.vue
+++ b/manager/src/views/member/list/index.vue
@@ -68,7 +68,13 @@
row-key="id"
@selection-change="onSelectionChange"
>
-
+
@@ -109,10 +115,16 @@
-
+
-
+
{{ row.___selected ? "已选择" : "选择" }}
@@ -320,6 +332,10 @@ export default {
type: null,
default: () => [],
},
+ checkboxSelect: {
+ type: Boolean,
+ default: false,
+ },
},
data() {
return {
@@ -432,8 +448,28 @@ export default {
if (name === "updatePoint") this.openMemberPoint(row);
},
onSelectionChange(selection) {
+ if (this.selectedMember && this.checkboxSelect) {
+ this.selectMember = selection || [];
+ return;
+ }
this.selectedRows = selection || [];
},
+ getSelection() {
+ return this.selectMember || [];
+ },
+ syncTableSelection() {
+ if (!this.selectedMember || !this.checkboxSelect) {
+ return;
+ }
+ this.$nextTick(() => {
+ this.clearSelection();
+ this.data.forEach((row) => {
+ if (this.selectMember.some((member) => member.id === row.id)) {
+ this.$refs.table?.toggleRowSelection(row, true);
+ }
+ });
+ });
+ },
openSetMemberGroup() {
this.memberGroupFlag = true;
this.memberGroupLoading = false;
@@ -569,6 +605,7 @@ export default {
this.loading = false;
this.init(res.result.records);
this.total = res.result.total;
+ this.syncTableSelection();
}
});
},
diff --git a/manager/src/views/promotions/coupon-activity/coupon-publish.vue b/manager/src/views/promotions/coupon-activity/coupon-publish.vue
index 10d218c7..3d8a70af 100644
--- a/manager/src/views/promotions/coupon-activity/coupon-publish.vue
+++ b/manager/src/views/promotions/coupon-activity/coupon-publish.vue
@@ -156,10 +156,15 @@
+
+ 取消
+ 确定
+
@@ -185,6 +190,7 @@ export default {
showCouponSelect: false,
tempCouponList: [],
checkUserList: false,
+ memberSelectSnapshot: [],
selectedMember: [],
form: {
promotionName: "",
@@ -237,20 +243,14 @@ export default {
};
return map[type] || "danger";
},
- callbackSelectUser(val) {
- let findUser = this.selectedMember.find((item) => {
- return item.id === val.id;
- });
- if (!findUser) {
- this.selectedMember.push(val);
- } else {
- this.selectedMember.map((item, index) => {
- if (item.id === findUser.id) {
- this.selectedMember.splice(index, 1);
- }
- });
- }
+ cancelMemberSelect() {
+ this.checkUserList = false;
+ },
+ confirmMemberSelect() {
+ const list = this.$refs.memberLayout?.getSelection?.() || [];
+ this.selectedMember = list;
this.reSelectMember();
+ this.checkUserList = false;
},
delUser(index) {
this.selectedMember.splice(index, 1);
@@ -293,10 +293,8 @@ export default {
});
},
addVip() {
+ this.memberSelectSnapshot = JSON.parse(JSON.stringify(this.selectedMember));
this.checkUserList = true;
- this.$nextTick(() => {
- this.$refs.memberLayout.selectedMember = true;
- });
},
showSelector() {
this.tempCouponList = [...this.selectCouponList];