From 5c5292c6b267e09a5e1f6056b06c5ac99f0088db Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期五, 19 九月 2025 10:09:18 +0800 Subject: [PATCH] 导出会员信息 --- manager/src/views/member/list/index.vue | 28 ++++++++++++++++++++++++++-- manager/src/api/member.js | 16 ++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/manager/src/api/member.js b/manager/src/api/member.js index 040bb2b..0497915 100644 --- a/manager/src/api/member.js +++ b/manager/src/api/member.js @@ -34,6 +34,22 @@ export const insertOrUpdateSpec = (params) => { return postRequest("/memberNoticeSenter/insertOrUpdate", params); }; +export const exportMemberListData = (params) => { + const processedParams = new URLSearchParams(); + + Object.entries(params).forEach(([key, value]) => { + if (key === 'tagIds' && Array.isArray(value)) { + // 濡傛灉鏄痶agIds鏁扮粍锛屼负姣忎釜鍏冪礌娣诲姞[]鍚庣紑 + value.forEach(tagId => { + processedParams.append('tagIds[]', tagId); + }); + } else { + processedParams.append(key, value); + } + }); + + return getRequest(`/passport/member/export?${processedParams.toString()}`,null,'blob'); +}; // 鑾峰彇浼氬憳鍒楄〃 export const getMemberListData = (params) => { diff --git a/manager/src/views/member/list/index.vue b/manager/src/views/member/list/index.vue index fae9bd4..e26f16c 100644 --- a/manager/src/views/member/list/index.vue +++ b/manager/src/views/member/list/index.vue @@ -23,8 +23,9 @@ <Button @click="handleSearch" class="search-btn" type="primary" icon="ios-search">鎼滅储</Button> </Form> </Row> - <Row class="operation padding-row" v-if="!selectedMember"> - <Button @click="addMember" type="primary">娣诲姞浼氬憳</Button> + <Row class="operation padding-row" > + <Button @click="addMember" v-if="!selectedMember" type="primary">娣诲姞浼氬憳</Button> + <Button @click="exportExcel" type="primary">瀵煎嚭excel</Button> </Row> <Table :loading="loading" border :columns="columns" class="mt_10" :data="data" ref="table"></Table> @@ -118,6 +119,7 @@ import * as RegExp from "@/libs/RegExp.js"; import { getTags } from "@/api/tag.js"; import { detailById } from "@/api/memberCustomerTag.js" +import {exportMemberListData} from "@/api/member.js"; export default { name: "member", @@ -400,6 +402,28 @@ this.searchForm.pageNumber = 1; this.searchForm.pageSize = 10; this.getData(); + }, // 鎼滅储 + exportExcel() { + API_Member.exportMemberListData(this.searchForm).then(res =>{ + const blob = new Blob([res], { + type: "application/vnd.ms-excel;charset=utf-8", + }); + //瀵逛簬<a>鏍囩锛屽彧鏈� Firefox 鍜� Chrome锛堝唴鏍革級 鏀寔 download 灞炴�� + //IE10浠ヤ笂鏀寔blob浣嗘槸渚濈劧涓嶆敮鎸乨ownload + if ("download" in document.createElement("a")) { + //鏀寔a鏍囩download鐨勬祻瑙堝櫒 + const link = document.createElement("a"); //鍒涘缓a鏍囩 + link.download = "浼氬憳鍒楄〃.xlsx"; //a鏍囩娣诲姞灞炴�� + link.style.display = "none"; + link.href = URL.createObjectURL(blob); + document.body.appendChild(link); + link.click(); //鎵ц涓嬭浇 + URL.revokeObjectURL(link.href); //閲婃斁url + document.body.removeChild(link); //閲婃斁鏍囩 + } else { + navigator.msSaveBlob(blob, fileName); + } + }) }, //鏌ョ湅璇︽儏淇敼 editPerm(val) { -- Gitblit v1.8.0