用户列表新增导出功能
This commit is contained in:
@@ -71,7 +71,16 @@ const API = {
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
}
|
||||
},
|
||||
// 导出
|
||||
export(params: any) {
|
||||
return request({
|
||||
url: `${baseURL}/export`,
|
||||
method: "get",
|
||||
params,
|
||||
responseType: 'blob'
|
||||
});
|
||||
},
|
||||
}
|
||||
export default API;
|
||||
export interface getRequest {
|
||||
|
||||
@@ -26,7 +26,6 @@ const Api = {
|
||||
method: "get",
|
||||
params,
|
||||
responseType: 'blob'
|
||||
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
@@ -111,8 +111,16 @@ export function downloadFile(obj: BlobPart, name: string, suffix: string, useUni
|
||||
const link = document.createElement("a");
|
||||
link.style.display = "none";
|
||||
link.href = url;
|
||||
const newFilename = useUnix ? (parseTime(new Date(), undefined) + "-") : '' + name.trim()
|
||||
const fileName = newFilename + "." + suffix;
|
||||
// 期望行为:
|
||||
// - 当 useUnix 为 true 且传入 name 时:`${timestamp}-${name}`
|
||||
// - 当 useUnix 为 true 且 name 为空时:仅 `${timestamp}`(不带多余的 `-`)
|
||||
// - 当 useUnix 为 false:使用传入的 name(如为空则回退到时间戳)
|
||||
const safeName = (name || "").trim();
|
||||
const timeStamp = parseTime(new Date(), undefined);
|
||||
const fileBase = useUnix
|
||||
? (safeName ? `${timeStamp}-${safeName}` : timeStamp)
|
||||
: (safeName || timeStamp);
|
||||
const fileName = fileBase + "." + suffix;
|
||||
link.setAttribute("download", fileName);
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
|
||||
@@ -32,7 +32,7 @@ export const newMenus = [
|
||||
intro: '协助商家拉来新客户,拓展客户群体',
|
||||
childrenList: [
|
||||
{
|
||||
name: "全民分销",
|
||||
name: "全民股东",
|
||||
icon: "zhcz",
|
||||
pathName: "distribution_page",
|
||||
intro: "用户成为股东,可促进消费"
|
||||
|
||||
@@ -21,7 +21,7 @@ const contentConfig: IContentConfig<any> = {
|
||||
// // return shopUserApi.edit(data);
|
||||
// },
|
||||
pk: "id",
|
||||
toolbar: ["add"],
|
||||
toolbar: ["add", 'export'],
|
||||
defaultToolbar: ["refresh", "filter", "search"],
|
||||
cols: [
|
||||
{ type: "selection", width: 50, align: "center" },
|
||||
|
||||
@@ -158,6 +158,7 @@ import { returnOptionsLabel } from "./config/config";
|
||||
import shopUserApi from "@/api/account/shopUser";
|
||||
import { useRoute } from 'vue-router'
|
||||
import { ElNotification } from 'element-plus'
|
||||
import { downloadFile } from "@/utils/index";
|
||||
const editMoneyModalRef = ref(null);
|
||||
const userCouponDialogRef = ref(null);
|
||||
const GiveCouponRef = ref(null);
|
||||
@@ -175,7 +176,7 @@ const {
|
||||
// handleAddClick,
|
||||
// handleEditClick,
|
||||
handleSubmitClick,
|
||||
handleExportClick,
|
||||
// handleExportClick,
|
||||
handleSearchClick,
|
||||
handleFilterChange,
|
||||
} = usePage();
|
||||
@@ -217,6 +218,16 @@ function formDataChange(type, val) {
|
||||
}
|
||||
}
|
||||
|
||||
// 导出
|
||||
async function handleExportClick() {
|
||||
try {
|
||||
const file = await shopUserApi.export(searchRef.value.getQueryParams());
|
||||
downloadFile(file, "用户列表", "xlsx");
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
// 新增
|
||||
async function handleAddClick() {
|
||||
addModalRef.value?.setModalVisible();
|
||||
|
||||
Reference in New Issue
Block a user