Javascript 使用datetime类型时,Apexcharts xaxis格式化失败

Javascript 使用datetime类型时,Apexcharts xaxis格式化失败,javascript,vue.js,apexcharts,Javascript,Vue.js,Apexcharts,我使用vue apexcharts在仪表板中绘制图表。我创建了一个通用文件,其中包含所有图表的基本选项(以统一样式和代码重用性),并在必要时使用扩展/覆盖该对象。xaxis类型被定义为“category”作为默认值,如果“datetime”图表需要,此值将在以后更改 将xaxis.type重写为“datetime”时,图表将失败,并显示unix历元值,而不是格式化的字符串日期。如果图表是独立的,或者从基本选项文件中删除de xaxis.labels对象,则不会发生这种情况 我使用的是最新的ape

我使用vue apexcharts在仪表板中绘制图表。我创建了一个通用文件,其中包含所有图表的基本选项(以统一样式和代码重用性),并在必要时使用扩展/覆盖该对象。xaxis类型被定义为“category”作为默认值,如果“datetime”图表需要,此值将在以后更改

将xaxis.type重写为“datetime”时,图表将失败,并显示unix历元值,而不是格式化的字符串日期。如果图表是独立的,或者从基本选项文件中删除de xaxis.labels对象,则不会发生这种情况

我使用的是最新的apexchart(3.8.0)和vue apexcharts(1.3.6)版本

使用新日期()正确创建日期

我尝试过的事情:

  • 独立图表有效但我可能需要合并图表

  • 删除apexchartGenericOptions.js对象中的xaxis.labels对象工作但axis未设置样式

  • 使用JSON.parse(JSON.stringify(options))深度克隆所有单独的options对象。函数的作用是:使用Array.reduce创建一个完整的新对象,这样就不会出现变异问题。不起作用

  • 重置创建的两个属性我不知道在哪里
    convertedCatToNumeric:true
    ,以及
    类别:[]
    。不起作用

  • 我创造了一个例子

    apexchartGenericOptions.js中的xaxis配置

    export default {
      (...)
      xaxis: {
        type: 'category',
        labels: {
          show: true,
          style: { colors: '#bcc6d3', fontSize: '10px', fontFamily: 'Nunito Sans, sans-serif' },
        },
        axisBorder: { show: false },
        axisTicks: { show: false },
        tooltip: { enabled: false },
      },
      (...)
    },
    
    import mergeDeep from '../mergeDeep';
    import apexchartGenericOptions from './apexchartGenericOptions';
    import apexchartPieOptions from './apexchartPieOptions';
    
    export default {
      columns: mergeDeep(apexchartGenericOptions, { xaxis: { type: 'datetime' } }),
      lines: mergeDeep(apexchartGenericOptions, { ... }),
      pie: mergeDeep(apexchartGenericOptions, apexchartPieOptions), 
    };
    
    apexOptions.js中不同图表的新选项对象

    export default {
      (...)
      xaxis: {
        type: 'category',
        labels: {
          show: true,
          style: { colors: '#bcc6d3', fontSize: '10px', fontFamily: 'Nunito Sans, sans-serif' },
        },
        axisBorder: { show: false },
        axisTicks: { show: false },
        tooltip: { enabled: false },
      },
      (...)
    },
    
    import mergeDeep from '../mergeDeep';
    import apexchartGenericOptions from './apexchartGenericOptions';
    import apexchartPieOptions from './apexchartPieOptions';
    
    export default {
      columns: mergeDeep(apexchartGenericOptions, { xaxis: { type: 'datetime' } }),
      lines: mergeDeep(apexchartGenericOptions, { ... }),
      pie: mergeDeep(apexchartGenericOptions, apexchartPieOptions), 
    };
    
    在我的vue组件中,我将其存储到数据或以计算方式返回

    
    

    我希望xaxis在折线图中以类别形式绘制,在柱状图中以格式化字符串datetime绘制,但它是以数字形式绘制的。仅当我删除
    apexchartGenericOptions.js中的xaxis.labels对象时,或者如果我只打印一个图表时,才能正确打印。

    您能用上面发布的代码创建一个codesandbox演示吗?我编辑了codesandbox示例,以或多或少地适应我的设置并重现我的问题