产品一张表luckysheet前端代码库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1370 lines
57 KiB

import { seriesLoadScripts, loadLinks, $$ } from '../../utils/util'
import { generateRandomKey, replaceHtml } from '../../utils/chartUtil'
import { getdatabyselection, getcellvalue } from '../../global/getdata';
import chartInfo from '../../store'
import formula from '../../global/formula';
import { luckysheet_getcelldata } from '../../function/func';
import { getSheetIndex, getRangetxt } from '../../methods/get'
import { rowLocation, colLocation, mouseposition } from '../../global/location'
import {
luckysheetMoveHighlightCell,
luckysheetMoveHighlightCell2,
luckysheetMoveHighlightRange,
luckysheetMoveHighlightRange2,
luckysheetMoveEndCell
} from '../../controllers/sheetMove';
import { isEditMode } from '../../global/validate';
import luckysheetsizeauto from '../../controllers/resize';
import { getvisibledatarow, getvisibledatacolumn, setluckysheet_scroll_status } from '../../methods/get'
let _rowLocation = rowLocation
let _colLocation = colLocation
// Dynamically load dependent scripts and styles
const dependScripts = [
'https://cdn.jsdelivr.net/npm/vue@2.6.11',
'https://unpkg.com/vuex@3.4.0',
'https://cdn.bootcdn.net/ajax/libs/element-ui/2.13.2/index.js',
'https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js',
'expendPlugins/chart/chartmix.umd.js'
// 'http://192.168.10.246:8000/chartmix.umd.js'
]
const dependLinks = [
'https://cdn.bootcdn.net/ajax/libs/element-ui/2.13.2/theme-chalk/index.css',
'expendPlugins/chart/chartmix.css'
// 'http://192.168.10.246:8000/chartmix.css'
]
// Initialize the chart component
function chart(data) {
loadLinks(dependLinks);
seriesLoadScripts(dependScripts, null, function () {
const store = new Vuex.Store()
console.info('chartmix::', chartmix.default)
Vue.use(chartmix.default, { store })
let outDom = document.getElementById('luckysheet_info_detail')
chartmix.default.initChart(outDom, chartInfo.lang)
$('.chartSetting').css({
position: 'absolute',
right: 0,
width: '300px',
display: 'none',
background: '#fff',
paddingLeft: '10px',
border: '1px solid #ccc',
height: 'auto',
zIndex: 99999999
})
chartInfo.createChart = chartmix.default.createChart
chartInfo.highlightChart = chartmix.default.highlightChart
chartInfo.deleteChart = chartmix.default.deleteChart
chartInfo.resizeChart = chartmix.default.resizeChart
chartInfo.changeChartRange = chartmix.default.changeChartRange
chartInfo.changeChartCellData = chartmix.default.changeChartCellData
chartInfo.chart_selection = chart_selection()
chartInfo.chartparam.jfrefreshchartall = jfrefreshchartall
chartInfo.chartparam.changeChartCellData = chartmix.default.changeChartCellData
chartInfo.chartparam.renderChart = chartmix.default.renderChart
// 初始化渲染图表
for (let i = 0; i < data.length; i++) {
if (data[i].status == '1') {
renderCharts(data[i].chart)
}
}
});
}
// rendercharts
function renderCharts(chartLists) {
for (let i = 0; i < chartLists.length; i++) {
let chart = chartLists[i]
let chart_id_c = chart.chart_id + '_c'
let modelChartShowHTML =
'<div id="${id}"class="luckysheet-modal-dialog luckysheet-modal-dialog-chart ${addclass}"tabindex="0"role="dialog"aria-labelledby=":41e"dir="ltr"><div class="luckysheet-modal-dialog-resize"><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lt"data-type="lt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-mt"data-type="mt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lm"data-type="lm"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rm"data-type="rm"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rt"data-type="rt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lb"data-type="lb"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-mb"data-type="mb"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rb"data-type="rb"></div></div><div class="luckysheet-modal-dialog-controll"><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-update"role="button"tabindex="0"aria-label="修改图表"title="修改图表"><i class="fa fa-pencil"aria-hidden="true"></i></span><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-max"role="butluckysheet_chartIns_indexton"tabindex="0"aria-label="最大化"title="最大化"><i class="fa fa-window-maximize"aria-hidden="true"></i></span><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-del"role="button"tabindex="0"aria-label="删除"title="删除"><i class="fa fa-trash"aria-hidden="true"></i></span></div><div class="luckysheet-modal-dialog-content">${content}</div></div>'
let $t = $(
replaceHtml(modelChartShowHTML, {
id: chart_id_c,
addclass: 'luckysheet-data-visualization-chart',
title: '图表生成',
content: ''
})
).appendTo($('.luckysheet-cell-main'))
let container = document.getElementById(chart_id_c)
let { render, chart_json } = chartInfo.createChart($(`#${chart_id_c}`).children('.luckysheet-modal-dialog-content')[0], chartData, chart_id, rangeArray, rangeTxt)
chartInfo.currentChart = chart_json.chartOptions
console.dir(JSON.stringify(chart_json))
width = chart.width
height = chart.height
left = chart.left
top = chart.top
container.style.width = width + 'px'
container.style.height = height + 'px'
container.style.position = 'absolute'
container.style.background = '#fff'
container.style.left = left + 'px'
container.style.top = top + 'px'
render.style.width = '100%'
render.style.height = '100%'
container.style.zIndex = chartInfo.zIndex ? chartInfo.zIndex : 15
chartInfo.zIndex++
}
}
function jfrefreshchartall(flowdata1, r_st, r_ed, c_st, c_ed) {
let chart = chartInfo.currentChart
if (!chart) {
return
}
if (chart.rangeArray.length == 1) {
var row = chart.rangeArray[0].row;
var column = chart.rangeArray[0].column;
//不在范围内的不更新
if (
r_st > row[1] ||
r_ed < row[0] ||
c_st > column[1] ||
c_ed < column[0]
) {
return
}
//根据原有的范围取得数据
var luckysheetgetcellrange = formula.getcellrange(
chart.rangeTxt
);
var sheetIndex =
luckysheetgetcellrange.sheetIndex == -1
? 0
: luckysheetgetcellrange.sheetIndex; //sheetIndex为-1时,转化为0
var selection = {
row: luckysheetgetcellrange.row,
column: luckysheetgetcellrange.column,
dataSheetIndex: sheetIndex
}; //数组
var getcelldata = luckysheet_getcelldata(chart.rangeTxt);
if (
typeof getcelldata === "object" &&
getcelldata.length != 0 &&
getcelldata.data.length != null
) {
//getcelldata有值,且不为空数组 && getcelldata.data为二维数组
var chartData = getcelldata.data;
chartInfo.chartparam.changeChartCellData(chart.chart_id, chartData);
}
}
}
function chart_selection() {
return {
create: function () {
var chart_json = chartInfo.currentChart
if (chart_json.rangeArray.length > 1) {
return
}
$('#luckysheet-chart-rangeShow').empty()
$('#luckysheet-cell-selected-boxs').hide()
$('#luckysheet-cell-selected-focus').hide()
$('#luckysheet-rows-h-selected').hide()
$('#luckysheet-cols-h-selected').hide()
$('#luckysheet-row-count-show').hide()
$('#luckysheet-column-count-show').hide()
var st_r = chart_json.rangeArray[0].row[0]
var st_c = chart_json.rangeArray[0].column[0]
var rangeSplitArray = chart_json.rangeSplitArray
//首行是否标题
var rangeRowCheck = chart_json.rangeRowCheck
if (rangeRowCheck.exits) {
var chart_rowtitle_html = getRangeShowHtml(
'rowtitle',
rangeSplitArray.rowtitle.row[0] + st_r,
rangeSplitArray.rowtitle.row[1] + st_r,
rangeSplitArray.rowtitle.column[0] + st_c,
rangeSplitArray.rowtitle.column[1] + st_c
)
} else {
var chart_rowtitle_html = ''
}
//首列是否标题
var rangeColCheck = chart_json.rangeColCheck
if (rangeColCheck.exits) {
var chart_coltitle_html = getRangeShowHtml(
'coltitle',
rangeSplitArray.coltitle.row[0] + st_r,
rangeSplitArray.coltitle.row[1] + st_r,
rangeSplitArray.coltitle.column[0] + st_c,
rangeSplitArray.coltitle.column[1] + st_c
)
} else {
var chart_coltitle_html = ''
}
//内容块
var chart_content_html = getRangeShowHtml(
'content',
rangeSplitArray.content.row[0] + st_r,
rangeSplitArray.content.row[1] + st_r,
rangeSplitArray.content.column[0] + st_c,
rangeSplitArray.content.column[1] + st_c
)
$('#luckysheet-chart-rangeShow').append(
chart_rowtitle_html + chart_coltitle_html + chart_content_html
)
function getRangeShowHtml(type, r1, r2, c1, c2) {
var visibledatarow = getvisibledatarow()
var visibledatacolumn = getvisibledatacolumn()
var row = visibledatarow[r2],
row_pre = r1 - 1 == -1 ? 0 : visibledatarow[r1 - 1]
var col = visibledatacolumn[c2],
col_pre = c1 - 1 == -1 ? 0 : visibledatacolumn[c1 - 1]
if (type == 'rowtitle') {
var color = '#C65151'
}
if (type == 'coltitle') {
var color = '#9667C0'
}
if (type == 'content') {
var color = '#4970D1'
}
var html =
'<div id="luckysheet-chart-rangeShow-' +
type +
'" style="left: ' +
col_pre +
'px;width: ' +
(col - col_pre - 1) +
'px;top: ' +
row_pre +
'px;height: ' +
(row - row_pre - 1) +
'px;border: none;margin: 0;position: absolute;z-index: 14;">' +
'<div class="luckysheet-chart-rangeShow-move" data-type="top" style="height: 2px;border-top: 2px solid #fff;border-bottom: 2px solid #fff;background: ' +
color +
';position: absolute;left: 0;right: 0;top: -2px;z-index: 18;opacity: 0.9;cursor: move;"></div>' +
'<div class="luckysheet-chart-rangeShow-move" data-type="right" style="width: 2px;border-left: 2px solid #fff;border-right: 2px solid #fff;background: ' +
color +
';position: absolute;top: 0;bottom: 0;right: -2px;z-index: 18;opacity: 0.9;cursor: move;"></div>' +
'<div class="luckysheet-chart-rangeShow-move" data-type="bottom" style="height: 2px;border-top: 2px solid #fff;border-bottom: 2px solid #fff;background: ' +
color +
';position: absolute;left: 0;right: 0;bottom: -2px;z-index: 18;opacity: 0.9;cursor: move;"></div>' +
'<div class="luckysheet-chart-rangeShow-move" data-type="left" style="width: 2px;border-left: 2px solid #fff;border-right: 2px solid #fff;background: ' +
color +
';position: absolute;top: 0;bottom: 0;left: -2px;z-index: 18;opacity: 0.9;cursor: move;"></div>' +
'<div style="border: 2px solid #FC6666;background: ' +
color +
';position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 15;opacity: 0.1;"></div>' +
'<div class="luckysheet-chart-rangeShow-resize" data-type="lt" style="width: 6px;height: 6px;border: 1px solid #fff;background: ' +
color +
';position: absolute;left: -3px;top: -3px;z-index: 19;cursor: se-resize;"></div>' +
'<div class="luckysheet-chart-rangeShow-resize" data-type="rt" style="width: 6px;height: 6px;border: 1px solid #fff;background: ' +
color +
';position: absolute;right: -3px;top: -3px;z-index: 19;cursor: ne-resize;"></div>' +
'<div class="luckysheet-chart-rangeShow-resize" data-type="lb" style="width: 6px;height: 6px;border: 1px solid #fff;background: ' +
color +
';position: absolute;left: -3px;bottom: -3px;z-index: 19;cursor: ne-resize;"></div>' +
'<div class="luckysheet-chart-rangeShow-resize" data-type="rb" style="width: 6px;height: 6px;border: 1px solid #fff;background: ' +
color +
';position: absolute;right: -3px;bottom: -3px;z-index: 19;cursor: se-resize;"></div>' +
'</div>'
return html
}
},
rangeMove: false,
rangeMovexy: null,
rangeMoveIndex: null,
rangeMoveObj: null,
rangeMoveDraging: function (event, sheetBarHeight, statisticBarHeight) {
var chart_json = chartInfo.currentChart
var st_r = chart_json.rangeArray[0].row[0]
var st_c = chart_json.rangeArray[0].column[0]
var rangeRowCheck = chart_json.rangeRowCheck
var rangeColCheck = chart_json.rangeColCheck
var rangeSplitArray = chart_json.rangeSplitArray
var mouse = mouseposition(event.pageX, event.pageY)
var scrollLeft = $('#luckysheet-cell-main').scrollLeft()
var scrollTop = $('#luckysheet-cell-main').scrollTop()
var x = mouse[0] + scrollLeft
var y = mouse[1] + scrollTop
var winH =
$(window).height() + scrollTop - sheetBarHeight - statisticBarHeight,
winW = $(window).width() + scrollLeft
var rowLocation = _rowLocation(y),
row_index = rowLocation[2]
var colLocation = _colLocation(x),
col_index = colLocation[2]
var visibledatarow = getvisibledatarow()
var visibledatacolumn = getvisibledatacolumn()
var $id = chartInfo.chart_selection.rangeMoveObj.attr('id')
if ($id == 'luckysheet-chart-rangeShow-content') {
//行
var row_s =
chartInfo.chart_selection.rangeMoveIndex[0] -
chartInfo.chart_selection.rangeMovexy[0] +
row_index
if (rangeRowCheck.exits) {
if (row_s < st_r + rangeRowCheck.range[1] + 1 || y < 0) {
row_s = st_r + rangeRowCheck.range[1] + 1
}
} else {
if (row_s < 0 || y < 0) {
row_s = 0
}
}
var row_e =
rangeSplitArray.content.row[1] - rangeSplitArray.content.row[0] + row_s
if (row_e >= visibledatarow.length - 1 || y > winH) {
row_s =
visibledatarow.length -
1 -
rangeSplitArray.content.row[1] +
rangeSplitArray.content.row[0]
row_e = visibledatarow.length - 1
}
//列
var col_s =
chartInfo.chart_selection.rangeMoveIndex[1] -
chartInfo.chart_selection.rangeMovexy[1] +
col_index
if (rangeColCheck.exits) {
if (col_s < st_c + rangeColCheck.range[1] + 1 || x < 0) {
col_s = st_c + rangeColCheck.range[1] + 1
}
} else {
if (col_s < 0 || x < 0) {
col_s = 0
}
}
var col_e =
rangeSplitArray.content.column[1] -
rangeSplitArray.content.column[0] +
col_s
if (col_e >= visibledatacolumn.length - 1 || x > winW) {
col_s =
visibledatacolumn.length -
1 -
rangeSplitArray.content.column[1] +
rangeSplitArray.content.column[0]
col_e = visibledatacolumn.length - 1
}
//更新
if (rangeRowCheck.exits && rangeColCheck.exits) {
chart_json.rangeArray = [{ row: [st_r, row_e], column: [st_c, col_e] }]
chart_json.rangeSplitArray.range = {
row: [st_r, row_e],
column: [st_c, col_e]
}
chart_json.rangeSplitArray.content = {
row: [row_s - st_r, row_e - st_r],
column: [col_s - st_c, col_e - st_c]
}
chart_json.rangeSplitArray.rowtitle = {
row: chart_json.rangeSplitArray.rowtitle.row,
column: [col_s - st_c, col_e - st_c]
}
chart_json.rangeSplitArray.coltitle = {
row: [row_s - st_r, row_e - st_r],
column: chart_json.rangeSplitArray.coltitle.column
}
} else if (rangeRowCheck.exits) {
chart_json.rangeArray = [{ row: [st_r, row_e], column: [col_s, col_e] }]
chart_json.rangeSplitArray.range = {
row: [st_r, row_e],
column: [col_s, col_e]
}
chart_json.rangeSplitArray.content = {
row: [row_s - st_r, row_e - st_r],
column: chart_json.rangeSplitArray.content.column
}
} else if (rangeColCheck.exits) {
chart_json.rangeArray = [{ row: [row_s, row_e], column: [st_c, col_e] }]
chart_json.rangeSplitArray.range = {
row: [row_s, row_e],
column: [st_c, col_e]
}
chart_json.rangeSplitArray.content = {
row: chart_json.rangeSplitArray.content.row,
column: [col_s - st_c, col_e - st_c]
}
} else {
chart_json.rangeArray = [
{ row: [row_s, row_e], column: [col_s, col_e] }
]
chart_json.rangeSplitArray.range = {
row: [row_s, row_e],
column: [col_s, col_e]
}
}
} else if ($id == 'luckysheet-chart-rangeShow-rowtitle') {
//列
var col_s =
chartInfo.chart_selection.rangeMoveIndex[1] -
chartInfo.chart_selection.rangeMovexy[1] +
col_index
if (rangeColCheck.exits) {
if (col_s < st_c + rangeColCheck.range[1] + 1 || x < 0) {
col_s = st_c + rangeColCheck.range[1] + 1
}
} else {
if (col_s < 0 || x < 0) {
col_s = 0
}
}
var col_e =
rangeSplitArray.rowtitle.column[1] -
rangeSplitArray.rowtitle.column[0] +
col_s
if (col_e >= visibledatacolumn.length - 1 || x > winW) {
col_s =
visibledatacolumn.length -
1 -
rangeSplitArray.rowtitle.column[1] +
rangeSplitArray.rowtitle.column[0]
col_e = visibledatacolumn.length - 1
}
//更新
if (rangeColCheck.exits) {
chart_json.rangeArray = [
{ row: chart_json.rangeArray[0].row, column: [st_c, col_e] }
]
chart_json.rangeSplitArray.range = {
row: chart_json.rangeArray[0].row,
column: [st_c, col_e]
}
chart_json.rangeSplitArray.rowtitle = {
row: chart_json.rangeSplitArray.rowtitle.row,
column: [col_s - st_c, col_e - st_c]
}
chart_json.rangeSplitArray.content = {
row: chart_json.rangeSplitArray.content.row,
column: [col_s - st_c, col_e - st_c]
}
} else {
chart_json.rangeArray = [
{ row: chart_json.rangeArray[0].row, column: [col_s, col_e] }
]
chart_json.rangeSplitArray.range = {
row: chart_json.rangeArray[0].row,
column: [col_s, col_e]
}
}
} else if ($id == 'luckysheet-chart-rangeShow-coltitle') {
//行
var row_s =
chartInfo.chart_selection.rangeMoveIndex[0] -
chartInfo.chart_selection.rangeMovexy[0] +
row_index
if (rangeRowCheck.exits) {
if (row_s < st_r + rangeRowCheck.range[1] + 1 || y < 0) {
row_s = st_r + rangeRowCheck.range[1] + 1
}
} else {
if (row_s < 0 || y < 0) {
row_s = 0
}
}
//更新
var row_e =
rangeSplitArray.coltitle.row[1] -
rangeSplitArray.coltitle.row[0] +
row_s
if (row_e >= visibledatarow.length - 1 || y > winH) {
row_s =
visibledatarow.length -
1 -
rangeSplitArray.coltitle.row[1] +
rangeSplitArray.coltitle.row[0]
row_e = visibledatarow.length - 1
}
if (rangeRowCheck.exits) {
chart_json.rangeArray = [
{ row: [st_r, row_e], column: chart_json.rangeArray[0].column }
]
chart_json.rangeSplitArray.range = {
row: [st_r, row_e],
column: chart_json.rangeArray[0].column
}
chart_json.rangeSplitArray.coltitle = {
row: [row_s - st_r, row_e - st_r],
column: chart_json.rangeSplitArray.coltitle.column
}
chart_json.rangeSplitArray.content = {
row: [row_s - st_r, row_e - st_r],
column: chart_json.rangeSplitArray.content.column
}
} else {
chart_json.rangeArray = [
{ row: [row_s, row_e], column: chart_json.rangeArray[0].column }
]
chart_json.rangeSplitArray.range = {
row: [row_s, row_e],
column: chart_json.rangeArray[0].column
}
}
}
chartInfo.chart_selection.create(chartInfo.currentChart)
},
rangeMoveDragged: function () {
chartInfo.chart_selection.rangeMove = false
var updateJson = chartInfo.currentChart
updateJson.rangeTxt = getRangetxt(
chartInfo.currentSheetIndex,
updateJson.rangeArray[0],
chartInfo.currentSheetIndex
)
updateJson.chartData = getdatabyselection(
updateJson.rangeArray[0],
chartInfo.currentSheetIndex
)
// 渲染
chartInfo.changeChartRange(updateJson.chart_id, updateJson.chartData, updateJson.rangeArray, updateJson.rangeTxt)
},
rangeResize: false,
rangeResizexy: null,
rangeResizeIndex: null,
rangeResizeObj: null,
rangeResizeDraging: function (event, sheetBarHeight, statisticBarHeight) {
var chart_json = chartInfo.currentChart
var st_r = chart_json.rangeArray[0].row[0]
var st_c = chart_json.rangeArray[0].column[0]
var rangeRowCheck = chart_json.rangeRowCheck
var rangeColCheck = chart_json.rangeColCheck
var rangeSplitArray = chart_json.rangeSplitArray
var mouse = mouseposition(event.pageX, event.pageY)
var scrollLeft = $('#luckysheet-cell-main').scrollLeft()
var scrollTop = $('#luckysheet-cell-main').scrollTop()
var x = mouse[0] + scrollLeft
var y = mouse[1] + scrollTop
var winH =
$(window).height() + scrollTop - sheetBarHeight - statisticBarHeight,
winW = $(window).width() + scrollLeft
var rowLocation = _rowLocation(y),
row_index = rowLocation[2]
var colLocation = _colLocation(x),
col_index = colLocation[2]
var visibledatarow = getvisibledatarow()
var visibledatacolumn = getvisibledatacolumn()
var $id = chartInfo.chart_selection.rangeResizeObj.attr('id')
if ($id == 'luckysheet-chart-rangeShow-content') {
var r1, r2, c1, c2
if (chartInfo.chart_selection.rangeResize == 'lt') {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[0]
c1 = chartInfo.chart_selection.rangeResizeIndex.column[0]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[1]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[1]
} else if (chartInfo.chart_selection.rangeResize == 'lb') {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[1]
c1 = chartInfo.chart_selection.rangeResizeIndex.column[0]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[0]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[1]
} else if (chartInfo.chart_selection.rangeResize == 'rt') {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[0]
c1 = chartInfo.chart_selection.rangeResizeIndex.column[1]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[1]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[0]
} else if (chartInfo.chart_selection.rangeResize == 'rb') {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[1]
c1 = chartInfo.chart_selection.rangeResizeIndex.column[1]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[0]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[0]
}
//行
if (rangeRowCheck.exits) {
var row_s = r1 - chartInfo.chart_selection.rangeResizexy[0] + row_index
if (row_s < st_r + rangeRowCheck.range[1] + 1 || y < 0) {
row_s = st_r + rangeRowCheck.range[1] + 1
} else if (row_s >= visibledatarow.length - 1 || y > winH) {
row_s = visibledatarow.length - 1
}
} else {
var row_s = st_r - chartInfo.chart_selection.rangeResizexy[0] + row_index
if (row_s < 0 || y < 0) {
row_s = 0
} else if (row_s >= visibledatarow.length - 1 || y > winH) {
row_s = visibledatarow.length - 1
}
}
//列
if (rangeColCheck.exits) {
var col_s = c1 - chartInfo.chart_selection.rangeResizexy[1] + col_index
if (col_s < st_c + rangeColCheck.range[1] + 1 || x < 0) {
col_s = st_c + rangeColCheck.range[1] + 1
} else if (col_s >= visibledatacolumn.length - 1 || x > winW) {
col_s = visibledatacolumn.length - 1
}
} else {
var col_s = st_c - chartInfo.chart_selection.rangeResizexy[1] + col_index
if (col_s < 0 || x < 0) {
col_s = 0
} else if (col_s >= visibledatacolumn.length - 1 || x > winW) {
col_s = visibledatacolumn.length - 1
}
}
var obj_r1, obj_r2, obj_c1, obj_c2
if (row_s > r2) {
obj_r1 = r2
obj_r2 = row_s
} else {
obj_r1 = row_s
obj_r2 = r2
}
if (col_s > c2) {
obj_c1 = c2
obj_c2 = col_s
} else {
obj_c1 = col_s
obj_c2 = c2
}
if (!rangeRowCheck.exits && !rangeColCheck.exits) {
chart_json.rangeArray = [
{ row: [obj_r1, obj_r2], column: [obj_c1, obj_c2] }
]
chart_json.rangeSplitArray.range = {
row: [obj_r1, obj_r2],
column: [obj_c1, obj_c2]
}
} else {
chart_json.rangeArray = [
{ row: [st_r, obj_r2], column: [st_c, obj_c2] }
]
chart_json.rangeSplitArray.range = {
row: [st_r, obj_r2],
column: [st_c, obj_c2]
}
chart_json.rangeSplitArray.content = {
row: [obj_r1 - st_r, obj_r2 - st_r],
column: [obj_c1 - st_c, obj_c2 - st_c]
}
if (rangeRowCheck.exits) {
chart_json.rangeSplitArray.rowtitle = {
row: chart_json.rangeSplitArray.rowtitle.row,
column: [obj_c1 - st_c, obj_c2 - st_c]
}
}
if (rangeColCheck.exits) {
chart_json.rangeSplitArray.coltitle = {
row: [obj_r1 - st_r, obj_r2 - st_r],
column: chart_json.rangeSplitArray.coltitle.column
}
}
}
} else if ($id == 'luckysheet-chart-rangeShow-rowtitle') {
var c1, c2
if (
chartInfo.chart_selection.rangeResize == 'lt' ||
chartInfo.chart_selection.rangeResize == 'lb'
) {
c1 = chartInfo.chart_selection.rangeResizeIndex.column[0]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[1]
} else if (
chartInfo.chart_selection.rangeResize == 'rt' ||
chartInfo.chart_selection.rangeResize == 'rb'
) {
c1 = chartInfo.chart_selection.rangeResizeIndex.column[1]
c2 = chartInfo.chart_selection.rangeResizeIndex.column[0]
}
//列
if (rangeColCheck.exits) {
var col_s = c1 - chartInfo.chart_selection.rangeResizexy[1] + col_index
if (col_s < st_c + rangeColCheck.range[1] + 1 || x < 0) {
col_s = st_c + rangeColCheck.range[1] + 1
} else if (col_s >= visibledatacolumn.length - 1 || x > winW) {
col_s = visibledatacolumn.length - 1
}
} else {
var col_s = st_c - chartInfo.chart_selection.rangeResizexy[1] + col_index
if (col_s < 0 || x < 0) {
col_s = 0
} else if (col_s >= visibledatacolumn.length - 1 || x > winW) {
col_s = visibledatacolumn.length - 1
}
}
var obj_c1, obj_c2
if (col_s > c2) {
obj_c1 = c2
obj_c2 = col_s
} else {
obj_c1 = col_s
obj_c2 = c2
}
//更新
if (!rangeColCheck.exits) {
chart_json.rangeArray = [
{ row: chart_json.rangeArray[0].row, column: [obj_c1, obj_c2] }
]
chart_json.rangeSplitArray.range = {
row: chart_json.rangeArray[0].row,
column: [obj_c1, obj_c2]
}
} else {
chart_json.rangeArray = [
{ row: chart_json.rangeArray[0].row, column: [st_c, obj_c2] }
]
chart_json.rangeSplitArray.range = {
row: chart_json.rangeArray[0].row,
column: [st_c, obj_c2]
}
chart_json.rangeSplitArray.rowtitle = {
row: chart_json.rangeSplitArray.rowtitle.row,
column: [obj_c1 - st_c, obj_c2 - st_c]
}
chart_json.rangeSplitArray.content = {
row: chart_json.rangeSplitArray.content.row,
column: [obj_c1 - st_c, obj_c2 - st_c]
}
}
} else if ($id == 'luckysheet-chart-rangeShow-coltitle') {
var r1, r2
if (
chartInfo.chart_selection.rangeResize == 'lt' ||
chartInfo.chart_selection.rangeResize == 'rt'
) {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[0]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[1]
} else if (
chartInfo.chart_selection.rangeResize == 'lb' ||
chartInfo.chart_selection.rangeResize == 'rb'
) {
r1 = chartInfo.chart_selection.rangeResizeIndex.row[1]
r2 = chartInfo.chart_selection.rangeResizeIndex.row[0]
}
//行
if (rangeRowCheck.exits) {
var row_s = r1 - chartInfo.chart_selection.rangeResizexy[0] + row_index
if (row_s < st_r + rangeRowCheck.range[1] + 1 || y < 0) {
row_s = st_r + rangeRowCheck.range[1] + 1
} else if (row_s >= visibledatarow.length - 1 || y > winH) {
row_s = visibledatarow.length - 1
}
} else {
var row_s = st_r - chartInfo.chart_selection.rangeResizexy[0] + row_index
if (row_s < 0 || y < 0) {
row_s = 0
} else if (row_s >= visibledatarow.length - 1 || y > winH) {
row_s = visibledatarow.length - 1
}
}
var obj_r1, obj_r2
if (row_s > r2) {
obj_r1 = r2
obj_r2 = row_s
} else {
obj_r1 = row_s
obj_r2 = r2
}
//更新
if (!rangeRowCheck.exits) {
chart_json.rangeArray = [
{ row: [obj_r1, obj_r2], column: chart_json.rangeArray[0].column }
]
chart_json.rangeSplitArray.range = {
row: [obj_r1, obj_r2],
column: chart_json.rangeArray[0].column
}
} else {
chart_json.rangeArray = [
{ row: [st_r, obj_r2], column: chart_json.rangeArray[0].column }
]
chart_json.rangeSplitArray.range = {
row: [st_r, obj_r2],
column: chart_json.rangeArray[0].column
}
chart_json.rangeSplitArray.coltitle = {
row: [obj_r1 - st_r, obj_r2 - st_r],
column: chart_json.rangeSplitArray.coltitle.column
}
chart_json.rangeSplitArray.content = {
row: [obj_r1 - st_r, obj_r2 - st_r],
column: chart_json.rangeSplitArray.content.column
}
}
}
chartInfo.chart_selection.create(chartInfo.currentChart)
},
rangeResizeDragged: function () {
chartInfo.chart_selection.rangeResize = null
updateJson.rangeTxt = getRangetxt(
chartInfo.currentSheetIndex,
updateJson.rangeArray[0],
chartInfo.currentSheetIndex
)
updateJson.chartData = getdatabyselection(
updateJson.rangeArray[0],
chartInfo.currentSheetIndex
)
// 渲染
chartInfo.changeChartRange(updateJson.chart_id, updateJson.chartData, updateJson.rangeArray, updateJson.rangeTxt)
}
}
}
// create chart
function createLuckyChart(width, height, left, top) {
//如果只选中一个单元格,则自动填充选取
var jfgird_select_save = luckysheet.getluckysheet_select_save();
if (
jfgird_select_save.length == 1 &&
jfgird_select_save[0].row[0] == jfgird_select_save[0].row[1] &&
jfgird_select_save[0].column[0] == jfgird_select_save[0].column[1]
) {
luckysheetMoveHighlightRange2("right", "rangeOfSelect");
luckysheetMoveHighlightRange2("down", "rangeOfSelect");
jfgird_select_save = luckysheet.getluckysheet_select_save();
}
//处理右边的空白单元格,自动略过并修改选区 ---------------start
var shiftpositon_row = -1;
var row_ed =
jfgird_select_save[0]["row"][1] - jfgird_select_save[0]["row"][0];
for (
var r = jfgird_select_save[0]["row"][0];
r <= jfgird_select_save[0]["row"][1];
r++
) {
for (
var c = jfgird_select_save[0]["column"][0];
c <= jfgird_select_save[0]["column"][1];
c++
) {
var value = getcellvalue(r, c, luckysheet.flowdata());
//console.log("value,r,c",value,r,c);
if (value != null && value.toString().length > 0) {
shiftpositon_row = r;
break;
}
}
if (shiftpositon_row !== -1) {
break;
}
}
if (shiftpositon_row == -1) {
shiftpositon_row = 0;
}
jfgird_select_save[0]["row"] = [shiftpositon_row, shiftpositon_row];
luckysheet.setluckysheet_select_save(jfgird_select_save);
chartInfo.luckysheet_shiftpositon = $.extend(true, {}, jfgird_select_save[0]);
luckysheetMoveEndCell("down", "range", false, row_ed);
jfgird_select_save = luckysheet.getluckysheet_select_save();
var shiftpositon_col = -1;
var column_ed =
jfgird_select_save[0]["column"][1] - jfgird_select_save[0]["column"][0];
for (
var c = jfgird_select_save[0]["column"][0];
c <= jfgird_select_save[0]["column"][1];
c++
) {
for (
var r = jfgird_select_save[0]["row"][0];
r <= jfgird_select_save[0]["row"][1];
r++
) {
var value = getcellvalue(r, c, luckysheet.flowdata());
if (value != null && value.toString().length > 0) {
shiftpositon_col = c;
break;
}
}
if (shiftpositon_col !== -1) {
break;
}
}
if (shiftpositon_col == -1) {
shiftpositon_col = 0;
}
jfgird_select_save[0]["column"] = [shiftpositon_col, shiftpositon_col];
luckysheet.setluckysheet_select_save(jfgird_select_save);
chartInfo.luckysheet_shiftpositon = $.extend(true, {}, jfgird_select_save[0]);
luckysheetMoveEndCell("right", "range", false, column_ed);
jfgird_select_save = luckysheet.getluckysheet_select_save()
var rangeArray = $.extend(true, [], jfgird_select_save);
var rangeTxt = getRangetxt(chartInfo.currentSheetIndex, rangeArray[0], chartInfo.currentSheetIndex)
let chartData = getdatabyselection()
console.dir(chartData)
let chart_id = generateRandomKey('chart')
let chart_id_c = chart_id + '_c'
let modelChartShowHTML =
'<div id="${id}"class="luckysheet-modal-dialog luckysheet-modal-dialog-chart ${addclass}"tabindex="0"role="dialog"aria-labelledby=":41e"dir="ltr"><div class="luckysheet-modal-dialog-resize"><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lt"data-type="lt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-mt"data-type="mt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lm"data-type="lm"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rm"data-type="rm"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rt"data-type="rt"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-lb"data-type="lb"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-mb"data-type="mb"></div><div class="luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-rb"data-type="rb"></div></div><div class="luckysheet-modal-dialog-controll"><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-update"role="button"tabindex="0"aria-label="修改图表"title="修改图表"><i class="fa fa-pencil"aria-hidden="true"></i></span><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-max"role="butluckysheet_chartIns_indexton"tabindex="0"aria-label="最大化"title="最大化"><i class="fa fa-window-maximize"aria-hidden="true"></i></span><span class="luckysheet-modal-controll-btn luckysheet-modal-controll-del"role="button"tabindex="0"aria-label="删除"title="删除"><i class="fa fa-trash"aria-hidden="true"></i></span></div><div class="luckysheet-modal-dialog-content">${content}</div></div>'
let $t = $(
replaceHtml(modelChartShowHTML, {
id: chart_id_c,
addclass: 'luckysheet-data-visualization-chart',
title: '图表生成',
content: ''
})
).appendTo($('.luckysheet-cell-main'))
let container = document.getElementById(chart_id_c)
let { render, chart_json } = chartInfo.createChart($(`#${chart_id_c}`).children('.luckysheet-modal-dialog-content')[0], chartData, chart_id, rangeArray, rangeTxt)
chartInfo.currentChart = chart_json.chartOptions
console.dir(JSON.stringify(chart_json))
width = width ? width : 400
height = height ? height : 250
left = left ? left : 0
top = top ? top : 0
container.style.width = width + 'px'
container.style.height = height + 'px'
container.style.position = 'absolute'
container.style.background = '#fff'
container.style.left = left + 'px'
container.style.top = top + 'px'
render.style.width = '100%'
render.style.height = '100%'
container.style.zIndex = chartInfo.zIndex ? chartInfo.zIndex : 15
chartInfo.zIndex++
// insert chartinfo
let sheetFile = chartInfo.luckysheetfile[getSheetIndex(chartInfo.currentSheetIndex)];
if (!sheetFile.chart) {
sheetFile.chart = [];
}
sheetFile.chart.push({
chart_id,
width,
height,
left,
top,
sheetIndex: sheetFile.index
})
//处理区域高亮框参数,当前页中,只有当前的图表的needRangShow为true,其他为false
showNeedRangeShow(chart_id);
// delete current chart
$(`#${chart_id}_c .luckysheet-modal-controll-del`).click(function (e) {
delChart(chart_id)
})
// chartInfo.chartparam.luckysheetCurrentChartMoveObj = $(`#${chart_id}_c `)
// chartInfo.chartparam.luckysheetCurrentChartResizeObj = $(`#${chart_id}_c `)
// chartInfo.chartparam.luckysheetCurrentChartActive = true
$t.children('.luckysheet-modal-dialog-content').mousedown(function (e) {
if (!chartInfo.chartparam.luckysheetCurrentChartMaxState) {
//当前图表显示区域高亮
showNeedRangeShow(chart_id);
}
e.stopPropagation()
})
$t.dblclick(function (e) {
if (!chartInfo.chartparam.luckysheetCurrentChartMaxState) {
$(this)
.find('.jfgrid-modal-controll-update')
.click()
} else {
// TODO:全屏关闭
// closebtn.click()
}
e.stopPropagation()
})
// move chart
.mousedown(function (e) {
if (!chartInfo.chartparam.luckysheetCurrentChartMaxState) {
//当前图表显示区域高亮
showNeedRangeShow(chart_id);
setluckysheet_scroll_status(true);
//允许拖动渲染框
if (
!$(e.target).is(".luckysheet-modal-dialog-controll") &&
!$(e.target).is(".luckysheet-modal-controll-btn") &&
!$(e.target).is("i")
) {
// Debounce
chartInfo.chartparam.luckysheetCurrentChartMoveTimeout = setTimeout(
function () {
chartInfo.chartparam.luckysheetCurrentChartMove = true;
},
100
);
}
var toffset = chartInfo.chartparam.luckysheetCurrentChartMoveObj.offset();
var tpsition = chartInfo.chartparam.luckysheetCurrentChartMoveObj.position();
//luckysheetCurrentChartMoveXy: [鼠标点相对chart框的距离X方向,鼠标点相对chart框的距离Y方向,chart框相对cell-main的距离X方向,chart框相对cell-main的距离Y方向,水平滚动条的位置,垂直滚动条的位置]
chartInfo.chartparam.luckysheetCurrentChartMoveXy = [
e.pageX - toffset.left,
e.pageY - toffset.top,
tpsition.left,
tpsition.top,
$("#luckysheet-scrollbar-x").scrollLeft(),
$("#luckysheet-scrollbar-y").scrollTop()
];
chartInfo.chartparam.luckysheetCurrentChartMoveWinH = $(
"#luckysheet-cell-main"
)[0].scrollHeight;
chartInfo.chartparam.luckysheetCurrentChartMoveWinW = $(
"#luckysheet-cell-main"
)[0].scrollWidth;
if (
!$(e.target).hasClass("luckysheet-mousedown-cancel") &&
$(e.target).filter("[class*='sp-palette']").length == 0 &&
$(e.target).filter("[class*='sp-thumb']").length == 0 &&
$(e.target).filter("[class*='sp-']").length == 0
) {
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-cols-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
$("#luckysheet-rightclick-menu").hide();
$(
"#luckysheet-sheet-list, #luckysheet-rightclick-sheet-menu, #luckysheet-user-menu"
).hide();
$(
"body > .luckysheet-filter-menu, body > .luckysheet-filter-submenu, body > .luckysheet-cols-menu"
).hide();
}
e.stopPropagation();
}
}).find(".luckysheet-modal-dialog-resize-item")
.mousedown(function (e) {
if (chartInfo.chartparam.luckysheetCurrentChartActive) {
chartInfo.chartparam.luckysheetCurrentChartResize = $(this).data("type"); //开始状态resize
var mouse = mouseposition(e.pageX, e.pageY),
scrollLeft = $("#luckysheet-scrollbar-x").scrollLeft(),
scrollTop = $("#luckysheet-scrollbar-y").scrollTop();
var x = mouse[0] + scrollLeft;
var y = mouse[1] + scrollTop;
var position = chartInfo.chartparam.luckysheetCurrentChartResizeObj.position();
//参数:x,y:鼠标位置,$t.width(), $t.height(): chart框宽高, position.left + scrollLeft, position.top + scrollTop :chart框位置 ,scrollLeft, scrollTop:滚动条位置
chartInfo.chartparam.luckysheetCurrentChartResizeXy = [
x,
y,
$t.width(),
$t.height(),
position.left + scrollLeft,
position.top + scrollTop,
scrollLeft,
scrollTop
];
chartInfo.chartparam.luckysheetCurrentChartResizeWinH = $(
"#luckysheet-cell-main"
)[0].scrollHeight;
chartInfo.chartparam.luckysheetCurrentChartResizeWinW = $(
"#luckysheet-cell-main"
)[0].scrollWidth;
chartInfo.chartparam.luckysheetCurrentChart = chart_id;
e.stopPropagation();
}
})
}
// delete chart
function delChart(chart_id) {
// delete container
$(`.luckysheet-cell-main #${chart_id}_c`).remove()
// Hide selected range
hideAllNeedRangeShow()
// delete storage
let sheetFile = chartInfo.luckysheetfile[getSheetIndex(chartInfo.currentSheetIndex)]
let index = sheetFile.chart.findIndex(item => item.chart_id == chart_id)
sheetFile.chart.splice(index, 1)
// api call
chartInfo.deleteChart(chart_id)
}
//设置某个图表的高亮区域状态为显示,处理当前页的所有图表,只取一个图表设置为显示,其他隐藏,其他页不管
function showNeedRangeShow(chart_id) {
let chartLists = chartInfo.luckysheetfile[getSheetIndex(chartInfo.currentSheetIndex)].chart;
for (let chartId in chartLists) {
// if (chartLists[chartId].sheetIndex == chartInfo.currentSheetIndex) {
//当前sheet的图表先设置为false
chartLists[chartId].needRangeShow = false
if (chartLists[chartId].chart_id == chart_id) {
chartLists[chartId].needRangeShow = true
}
// }
}
//操作DOM当前图表选择区域高亮
selectRangeBorderShow(chart_id)
}
//隐藏当前sheet所有的图表高亮区域
function hideAllNeedRangeShow() {
let chartLists = chartInfo.luckysheetfile[getSheetIndex(chartInfo.currentSheetIndex)].chart;
for (let chartId in chartLists) {
// if (chartLists[chartId].sheetIndex == chartInfo.currentSheetIndex) {
//当前sheet的图表设置为false
chartLists[chartId].needRangeShow = false
// }
}
//操作DOM 当前图表选择区域隐藏
selectRangeBorderHide()
}
//选择区域高亮
function selectRangeBorderShow(chart_id) {
let $t = $('#' + chart_id + '_c')
// Highlight of data range
chartInfo.chart_selection.create(chart_id)
chartInfo.chartparam.luckysheetCurrentChartActive = true
chartInfo.chartparam.luckysheetCurrentChartMoveObj = $t
chartInfo.chartparam.luckysheetCurrentChartResizeObj = $t
chartInfo.chartparam.luckysheetCurrentChart = chart_id
//luckysheet取cell-main,后续扩展到其他的用户自定义元素
$('#luckysheet-cell-main')
.find('.luckysheet-modal-dialog-resize')
.hide()
$('#luckysheet-cell-main')
.find('.luckysheet-modal-dialog-controll')
.hide()
$t.css('z-index', chartInfo.chartparam.luckysheetCurrentChartZIndexRank++)
$t.find('.luckysheet-modal-dialog-resize').show()
$t.find('.luckysheet-modal-dialog-controll').show()
if (
($('.chartSetting').is(':visible') || chartInfo.chartparam.luckysheet_chart_redo_click) &&
chart_id != chartInfo.chartparam.luckysheetCurrentChart
) {
// TODO: 第一次创建图表时候需要初始化数据选择框 qkSelection
// generator.ini(chartMixConfig)
$('body .luckysheet-cols-menu').hide()
}
// 切换到当前图表设置项
chartInfo.highlightChart(chart_id)
}
//选择区域高亮隐藏
function selectRangeBorderHide(settingShow) {
$('#luckysheet-cell-main .luckysheet-modal-dialog-resize, #luckysheet-cell-main .luckysheet-modal-dialog-controll').hide()
$('#luckysheet-cell-main').find('.luckysheet-datavisual-selection-set div').remove()
chartInfo.chartparam.luckysheetCurrentChartActive = false
$('#luckysheet-chart-rangeShow').empty()
//标识:是否处理设置界面
if (!settingShow && $('.chartSetting').is(':visible') && !isEditMode()) {
hideChartSettingComponent()
}
}
// 显示图表设置界面
function showChartSettingComponent(refresh, chart_id) {
if (!$('.chartSetting').is(':visible')) {
//隐藏设置界面
$('.chartSetting').show();
//.luckysheet-modal-dialog-resize为图表显示框的缩放框,.luckysheet-modal-dialog-controll为显示框右边的控制按钮
$("#luckysheet-cell-main .luckysheet-modal-dialog-resize, #luckysheet-cell-main .luckysheet-modal-dialog-controll").show();
// 切换图表后再打开设置界面时候执行更新DOM
if (!!chart_id) {
chartInfo.highlightChart(chart_id)
}
$('#luckysheet-cell-main').find('.luckysheet-datavisual-selection-set div').show()
chartInfo.chartparam.luckysheetCurrentChartActive = true
if (!isEditMode() && !refresh) {
setTimeout(function () {
luckysheetsizeauto()
}, 0)
}
}
}
// 隐藏图表设置界面
function hideChartSettingComponent(refresh) {
if ($('.chartSetting').is(':visible')) {
//隐藏设置界面
$('.chartSetting').hide();
//.luckysheet-modal-dialog-resize为图表显示框的缩放框,.luckysheet-modal-dialog-controll为显示框右边的控制按钮
$('#luckysheet-cell-main .luckysheet-modal-dialog-resize, #luckysheet-cell-main .luckysheet-modal-dialog-controll').hide()
$('#luckysheet-cell-main').find('.luckysheet-datavisual-selection-set div').remove()
chartInfo.chartparam.luckysheetCurrentChartActive = false
if (!isEditMode() && !refresh) {
setTimeout(function () {
luckysheetsizeauto()
}, 0)
}
}
}
// 隐藏其他sheet的图表,显示当前sheet的图表 chartMix 切换sheet页显示隐藏图表
function renderChartShow(index) {
//传入index,图表显示隐藏
selectRangeBorderHide('true') //隐藏数据高亮区域,随意传入一个字符串,表示不处理chartSetting界面
const luckysheetfile = chartInfo.luckysheetfile;
luckysheetfile.forEach((file) => {
//切换当前页的所有图表都显示出来
if (file.index == index) {
const chartLists = file.chart || [];
chartLists.forEach((chart) => {
chart.isShow = true;
$('#' + chart.chart_id + '_c').show();
if (chart.needRangeShow == true) {
//一个sheet页只有一个图表高亮显示,//重要!因为在store了做了存储,所以能在此处找到对应图表设置显示隐藏
//操作DOM当前图表选择区域高亮
selectRangeBorderShow(chart.chart_id)
}
})
}
// 隐藏其他页的图表
else {
const chartLists = file.chart || [];
chartLists.forEach((chart) => {
chart.isShow = false;
$('#' + chart.chart_id + '_c').hide();
})
}
});
}
export { chart, createLuckyChart, hideAllNeedRangeShow, renderChartShow }