提交 18ae5a3d authored 作者: 钟是志's avatar 钟是志

导出文件函数修改

上级 8dea8c22
......@@ -10,7 +10,7 @@ import {
getColumnsSqlKeyRealize,
getWord,
renderContentAll,
renderContentRow,
renderContentRow, downloadFile,
} from './globalFunction';
export function giveSmartFormGlobalProps({
......@@ -22,7 +22,7 @@ export function giveSmartFormGlobalProps({
data = {},
nextUsers = {}, //
calculateFlowData = [], // 移动端使用 用于分块块 禅道 23933 移动端全表单后审核步骤的显示问题优化
}) {
}) {
window.smartFormGlobalProps = {
fromStart,
hasSingle,
......@@ -39,9 +39,11 @@ export function giveSmartFormGlobalProps({
getColumnsDataRealize,
getColumnsSqlKeyRealize,
getWord,
downloadFile,
renderContentAll,
renderContentRow,
remark: {
downloadFile: '下载文件函数.',
'giveFilePostDataInfoForTrue(params, url) ': `将接口参数 二进制文件化 并返回新的接口地址与参数';`,
'getSpanJson(mergeKey, data, eliminateStr)': `列表获取纵向合并数据 ;参数-> mergeKey : 需要合并的表头key data : 列表数据 eliminateStr : 需要忽略合并的数据`,
'getColumns(columns)': `获取ant表头的属性 ;参数->columns : ant的表头`,
......@@ -52,8 +54,7 @@ export function giveSmartFormGlobalProps({
'renderContentRow(value, row, index, key, spanData, cloumnNames) ': `ant表头纵向合并 ;参数->所有必填 value, row, index, key, spanData, cloumnNames 实例:render:(value, row, index)=>{return renderContentRow(value, row, index,"inst_name",spanData,cloumnNames)}`,
},
},
activeJsonConfig: {
}, // 27282 双选会报名后管理员修改举办时间 但是单位申请信息么有随着更新
activeJsonConfig: {}, // 27282 双选会报名后管理员修改举办时间 但是单位申请信息么有随着更新
publicComponent: {
React,
Modal,
......
import { giveFilePostDataInfoForTrue } from '@/webPublic/one_stop_public/Base16';
import { queryOauthActionPath } from '@/webPublic/one_stop_public/utils/queryConfig';
import { getToken } from '@/webPublic/one_stop_public/utils/token';
import { deepCopy, getHeaders } from '@/webPublic/zyd_public/utils/utils';
import { deepCopy } from '@/webPublic/zyd_public/utils/utils';
const apiUrl = queryOauthActionPath();
......@@ -21,13 +21,16 @@ const apiUrl = queryOauthActionPath();
* rowSpanData 列合并数据,colSpanData行合并数据
* */
export function getSpanJson({
mergeKey, data, eliminateRow = [], eliminateCol = []
}) {
mergeKey,
data,
eliminateRow = [],
eliminateCol = []
}) {
try {
let dataList = deepCopy(data);
return {
rowSpanData: getRowSpanJson(mergeKey,dataList, eliminateRow),
rowSpanData: getRowSpanJson(mergeKey, dataList, eliminateRow),
colSpanData: getColSpanJson(mergeKey, dataList, eliminateCol),
};
} catch (err) {
......@@ -114,7 +117,7 @@ function getColSpanJson(cloumnNames, data, eliminateStr = []) {
colSpanJson[triggerColIndex][idx] = triggerColSum;
colSpanJson[keyItem][idx] = 0;
triggerColIndex = null;
} else if(isCol && triggerColIndex !== null ) {
} else if (isCol && triggerColIndex !== null) {
colSpanJson[keyItem][idx] = 0;
} else {
colSpanJson[keyItem][idx] = colSum;
......@@ -153,7 +156,7 @@ export function getColumns(columns) {
}
function getColumnsData(data = [], res = [], level = 1) {
try{
try {
for (let item of data) {
//item.key = i;
let isLast = !item.children;
......@@ -177,7 +180,7 @@ export function getColumns(columns) {
}
}
return res;
}catch (e) {
} catch (e) {
debugger;
console.table(e);
return false;
......@@ -194,7 +197,7 @@ export function getColumns(columns) {
columnsHeight = x;
}
getColumnsMaxLevel(item.children, x);
}else{
} else {
columnsHeight += 1;
}
}
......@@ -213,12 +216,18 @@ export function getColumns(columns) {
return sum;
}
let columnsHandle = getColumnsData(columns).filter((v, i) => {
let columnsHandle = getColumnsData(columns)
.filter((v, i) => {
return (v.level < columnsHeight && v.isLast) || v.width > 1;
});
let columnsMerges = [];
columnsHandle.forEach((v, i) => {
let { isLast, width, col, level } = v;
let {
isLast,
width,
col,
level
} = v;
let nowCol = col - 1;
let nowLevel = level - 1;
if (isLast && width === 1) {
......@@ -254,10 +263,14 @@ export function getColumnsSqlKeyRealize({
styles,
fileName = '导出文件',
ext = 'xlsx',
}) {
}) {
columns = deepCopy(columns);
let { columnsList, columnsMerges, columnsKey } = getColumns(columns);
let {
columnsList,
columnsMerges,
columnsKey
} = getColumns(columns);
let content = {
sheets: [
......@@ -342,11 +355,24 @@ export function getColumnsDataRealize({
ext = 'xlsx',
eliminateRow = [],
eliminateCol = [],
}) {
}) {
columns = deepCopy(columns);
data = deepCopy(data);
let { columnsList, columnsMerges, columnsKey, columnsHeight } = getColumns(columns);
let { colSpanData, rowSpanData } = getSpanJson({ mergeKey, data, eliminateRow, eliminateCol });
let {
columnsList,
columnsMerges,
columnsKey,
columnsHeight
} = getColumns(columns);
let {
colSpanData,
rowSpanData
} = getSpanJson({
mergeKey,
data,
eliminateRow,
eliminateCol
});
// 处理数据
let bodyData = [];
let dataMerges = [];
......@@ -449,7 +475,8 @@ export function getColumnsDataRealize({
// ant列表组件合并表格 render属性,合并纵向、横向。
export function renderContentAll(value, row, index, key, spanData, cloumnNames = []) {
let colSpan, rowSpan = null;
let colSpan,
rowSpan = null;
try {
colSpan = spanData.colSpanData[key][index];// 横向合并
rowSpan = spanData.rowSpanData[key][index];// 纵向合并
......@@ -468,7 +495,8 @@ export function renderContentAll(value, row, index, key, spanData, cloumnNames =
// ant列表组件合并表格 render属性,合并纵向。 meanwhileKey :key 是本身字段key,value 是同步的字段key
export function renderContentRow(value, row, index, key, spanData, cloumnNames = [], meanwhileKey = {}) {
let colSpan, rowSpan = null;
let colSpan,
rowSpan = null;
try {
if (cloumnNames.indexOf(key) !== -1) {
rowSpan = spanData.rowSpanData[key][index];// 纵向合并
......@@ -494,7 +522,6 @@ export function renderContentRow(value, row, index, key, spanData, cloumnNames =
}
/**
* 表头和数据导出(合并表格)
* templatePath : word文档模板地址
......@@ -512,7 +539,7 @@ export function getWord({
allValues = {},
listConfig = {},
ext = 'docx',
}) {
}) {
try {
let getFileData = giveFilePostDataInfoForTrue(
{
......@@ -539,6 +566,7 @@ export function getWord({
} catch (err) {
console.table(err);
}
//可更新的
function setObjectKey(data) {
......@@ -575,7 +603,8 @@ function makeArrayKey(key) {
function FormdataWrapper(obj, fd, pre) {
fd = fd || new FormData();
Object.keys(obj).forEach(function (prop) {
Object.keys(obj)
.forEach(function (prop) {
var key = pre ? pre + '[' + prop + ']' : prop;
if (isObject(obj[prop]) && !isArray(obj[prop]) && !isFile(obj[prop])) {
FormdataWrapper(obj[prop], fd, key);
......@@ -595,12 +624,14 @@ function FormdataWrapper(obj, fd, pre) {
return fd;
}
function downloadFile(url, params, fileName = '导出文件', ext = 'xlsx') {
export function downloadFile(url, params, fileName = '导出文件', ext = 'xlsx') {
// console.log("downloadFile",url);
fetch(url, {
method: 'POST',
body: FormdataWrapper(params),
...getHeaders(),
headers: {
Authorization: `bearer ${localStorage.getItem('antd-pro-token-onestop')}`,
},
})
.then((res) => {
if (res.status + '' !== '200') {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论