feat: 新增7个工具,修复部分问题

新增工具:
数据图表:折线图(#)
数据图表:饼图(#)
数据图表:散点图(#)
选择随机: 投骰子(#)
选择随机: 抛硬币(#)
文本处理:删除重复行(#)
图片工具:图片切割(#)

修复:
数据图表上传数据文件只有第一次有效问题
This commit is contained in:
osiris
2024-04-11 12:09:34 +08:00
parent df8ed7f9c8
commit d863f0174c
26 changed files with 2303 additions and 57 deletions
+88 -3
View File
@@ -22,11 +22,11 @@ export function toSpreadsheetData(data, type = 'bar') {
}
/**
* 转换成echarts使用的数据
* 转换成echarts使用的数据 - 基础格式(适用于柱状图、折线图等)
*/
export function toEchartsData(data) {
let tmpColumn: Array<string> = [];
let tmpValue: Array<string> = [];
let tmpColumn: Array<any> = [];
let tmpValue: Array<any> = [];
for (let item in data.rows) {
if (item == 'len') {
continue
@@ -37,9 +37,94 @@ export function toEchartsData(data) {
return [tmpColumn, tmpValue];
}
/**
* 转换成echarts使用的数据 - 适用于饼图
*
* @param data
* @returns
*/
export function toEchartsPieData(data) {
let tmpArr: Array<Object> = []
for (let item in data.rows) {
if (item == 'len') {
continue
}
tmpArr.push({
name: data.rows[item]['cells'][0] ? data.rows[item]['cells'][0]['text'] : '',
value: data.rows[item]['cells'][1] ? data.rows[item]['cells'][1]['text'] : ''
})
// tmpColumn.push(data.rows[item]['cells'][0] ? data.rows[item]['cells'][0]['text'] : '')
// tmpValue.push(data.rows[item]['cells'][1] ? data.rows[item]['cells'][1]['text'] : '')
}
return tmpArr;
}
/**
* 数据格式转换 - 根据type转换格式
* 对象格式{name: '', value: ''}; 列格式: nameArr = [], valueArr = []
* @param data
* @returns
*/
export function tranObjAndColumn(data, type = 'toObj') {
let returnData = [] as any[];
if (type == 'toObj') {
if (data.len === 0 || data[0].len === 0) {
return returnData;
}
//转换成饼图使用的obj
let nameArr = data[0];
let valueArr = data[1];
let tmpArr: Array<Object> = []
for (let item in nameArr) {
if (item == 'len') {
continue
}
tmpArr.push({
name: nameArr[item] ? nameArr[item] : '',
value: valueArr[item] ? valueArr[item] : '',
})
}
returnData = tmpArr
} else if (type == 'toColumn') {
//饼图对象转换成列数组
let nameArr = [] as string[]
let valueArr = [] as number[]
for (let item in data) {
nameArr.push(data[item]?.name)
valueArr.push(data[item]?.value)
}
returnData = [nameArr, valueArr]
} else if (type == "toCoord") {
//转换成坐标(散点图用到)
if (data.len === 0 || data[0].len === 0) {
return returnData;
}
//转换成饼图使用的obj
let nameArr = data[0];
let valueArr = data[1];
let tmpArr: Array<any> = []
for (let item in nameArr) {
if (item == 'len') {
continue
}
tmpArr.push([
nameArr[item] ? nameArr[item] : 0,
valueArr[item] ? valueArr[item] : 0,
])
}
returnData = tmpArr
}
return returnData;
}
const EchartsUtils = {
toSpreadsheetData,
toEchartsData,
toEchartsPieData,
tranObjAndColumn,
}
export default EchartsUtils