Ver Fonte

修正导出excel的时候 如果有通过formatter转换的值,则转换后导出,而不是导出原始数据
修正导出excel的时候 如果有通过formatter转换的值,则转换后导出,而不是导出原始数据

Signed-off-by: Mr先生 <362270511@qq.com>

Mr先生 há 2 anos atrás
pai
commit
001ddb49ee
1 ficheiros alterados com 25 adições e 1 exclusões
  1. 25 1
      Web/src/utils/exportExcel.ts

+ 25 - 1
Web/src/utils/exportExcel.ts

@@ -62,7 +62,14 @@ export function exportExcel(jsonarr: Array<EmptyObjectType>, name: string, heade
 		header.forEach((item) => {
 			if (json.hasOwnProperty(item.prop)) {
 				let val = '';
-				if (json[item.prop] != null) val = json[item.prop];
+				if (json[item.prop] != null) {
+					if (item.formatter) {
+						var itemf = item.formatter(json);
+						val = formatterRec(itemf);//递归获取formatter信息
+					} else {
+						val = json[item.prop];
+					}
+				}
 				row.push({
 					v: val,
 					t: 's',
@@ -82,3 +89,20 @@ export function exportExcel(jsonarr: Array<EmptyObjectType>, name: string, heade
 	/* generate file and send to client */
 	XLSXS.writeFile(wb, name + '.xlsx');
 }
+//递归formatter
+function formatterRec(itemf:any) {
+	let r = '';
+	if (itemf.children) {
+		if (itemf.children.default) {
+			r = itemf.children.default();
+		} else {
+			itemf.children.forEach((element: any) => {
+				r = r + formatterRec(element);
+			});
+			
+		}
+	} else {
+		r = itemf;
+	}
+	return r;
+}