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