|
|
@@ -61,6 +61,7 @@
|
|
|
更多<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item command="viewOverview" icon="el-icon-view">查看信息</el-dropdown-item>
|
|
|
<el-dropdown-item command="viewMembers" icon="el-icon-user">查看成员</el-dropdown-item>
|
|
|
<el-dropdown-item command="viewCoupons" icon="el-icon-ticket">优惠券列表</el-dropdown-item>
|
|
|
<el-dropdown-item command="viewUsage" icon="el-icon-document">使用记录</el-dropdown-item>
|
|
|
@@ -293,6 +294,8 @@
|
|
|
</el-table>
|
|
|
|
|
|
</el-table>
|
|
|
+ <!-- 家庭信息总览弹窗 (Task 9) -->
|
|
|
+ <FamilyOverviewDialog :visible.sync="overviewDialogVisible" :family-id="overviewFamilyId" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -301,10 +304,14 @@ import SortMixin from '@/mixins/SortMixin'
|
|
|
import ListStateMixin from '@/mixins/ListStateMixin'
|
|
|
import { getFamilyList, getFamilyMembers, updateFamily, deleteFamily, setMemberAdminRole } from '@/api/admin'
|
|
|
import { getCouponList, issueFamilyCoupon, getFamilyCoupons, getFamilyCouponUsage } from '@/api/coupon'
|
|
|
+import FamilyOverviewDialog from '@/views/admin/components/FamilyOverviewDialog.vue'
|
|
|
|
|
|
export default {
|
|
|
name: 'Families',
|
|
|
mixins: [SortMixin, ListStateMixin],
|
|
|
+ components: {
|
|
|
+ FamilyOverviewDialog
|
|
|
+ },
|
|
|
computed: {
|
|
|
tableHeight() {
|
|
|
return window.innerHeight - 340
|
|
|
@@ -356,7 +363,9 @@ export default {
|
|
|
usageListData: [],
|
|
|
usageLoading: false,
|
|
|
usagePagination: { current: 1, size: 20, total: 0 },
|
|
|
- usageDialogVisible: false
|
|
|
+ usageDialogVisible: false,
|
|
|
+ overviewDialogVisible: false,
|
|
|
+ overviewFamilyId: null
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -373,6 +382,7 @@ export default {
|
|
|
},
|
|
|
handleActionCmd(row, cmd) {
|
|
|
switch (cmd) {
|
|
|
+ case 'viewOverview': this.handleViewOverview(row); break;
|
|
|
case 'viewMembers': this.handleViewMembers(row); break;
|
|
|
case 'viewCoupons': this.handleViewCoupons(row); break;
|
|
|
case 'viewUsage': this.handleViewUsage(row); break;
|
|
|
@@ -460,6 +470,10 @@ export default {
|
|
|
}
|
|
|
}).catch(() => {})
|
|
|
},
|
|
|
+ handleViewOverview(row) {
|
|
|
+ this.overviewFamilyId = row.id
|
|
|
+ this.overviewDialogVisible = true
|
|
|
+ },
|
|
|
async handleViewMembers(row) {
|
|
|
await this.handleViewMembersById(row.id)
|
|
|
},
|