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

导出文件函数修改

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