找回密码
 立即注册

QQ登录

只需一步,快速开始

繁星满天828

注册会员

3

主题

8

帖子

27

积分

注册会员

积分
27
  • 585

    金币

  • 3

    主题

  • 8

    帖子

最新发帖
繁星满天828
注册会员   /  发表于:2023-8-23 11:17  /   查看:2818  /  回复:7
10金币
大神好,本人通过 npm包管理器下载了 ActiveReportsJS,根据文档想要显示报表设计器在页面中,但编译后,提示moment.js错误:


设计器组件的代码如下:



<template lang="">
    <div id="host" style="height:100%;width:100%;margin:10px">
        <ReportDesigner ref='reportDesigner'></ReportDesigner>
    </div>
</template>
<script>
import {ref,onMounted,watch} from 'vue';
import {Designer as ReportDesigner} from '@grapecity/activereports-vue';

//import "@grapecity/activereports-localization/dist/designer/zh-locale";

import "@grapecity/activereports/styles/ar-js-ui.css";
import "@grapecity/activereports/styles/ar-js-designer.css";


export default {
     name:'ActiveReportsDesigner',
     props:{
        reportFile:{
            type:String,
            default:''
        },
        reportOrientation:{
            type:String,
            default:"Landscape"
        }
     },
     components:{ReportDesigner},
     setup(props,context){

        let reportDesigner = ref();
        let resolveFunc = ref(null);
        let reportStorage = new Map();
        let counter = 0;
        onMounted(()=>{

            reportDesigner = new ReportDesigner("#host",{language:"zh"});

            reportDesigner.setActionHandlers({
                onCreate: () => {
                    const reportId = `NewReport${counter + 1}`;
                    counter++;
                    return Promise.resolve({ definition: templates.CPL, id: reportId, displayName: reportId });
                },
                onOpen: function () {
                    const ret = new Promise((resolve)=> {
                    resolveFunc.value = resolve;

                    return ret;})
                },
                onSave: (info)=>{
                    const reportId = info.id || `NewReport${counter + 1}`;
                    this.reportStorage.set(reportId, info.definition);
                    counter++;
                    return Promise.resolve({displayName: reportId});
                },
                onSaveAs: (info) => {
                    const reportId = `NewReport${counter + 1}`;
                    this.reportStorage.set(reportId, info.definition);
                    counter++;
                    return Promise.resolve({id: reportId, displayName: reportId });
                }         
            });   
        })

        return {
            reportDesigner,
            reportStorage,
            resolveFunc,
            counter,
        }
     }
}



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,arjs安装包会默认带一个vue的工程,您可以参考一下: 或者参考附件的demo

7 个回复

正序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2023-9-13 15:40:18
8#

回复 使用道具 举报
testSplit
注册会员   /  发表于:2023-9-13 14:40:49
7#
好的 我开个新的
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-9-13 14:32:16
6#
testSplit 发表于 2023-9-13 13:59
为啥我没找到这个文件呀 兄弟

您好,官网下载对应的安装包后就有这个路径哦,您下载看看。如果还有问题请开新帖。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
testSplit
注册会员   /  发表于:2023-9-13 13:59:19
5#
为啥我没找到这个文件呀 兄弟

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-8-24 08:50:10
4#

不客气,成功了就好
回复 使用道具 举报
繁星满天828
注册会员   /  发表于:2023-8-23 22:19:27
3#
Bella.Yuan 发表于 2023-8-23 11:17
您好,arjs安装包会默认带一个vue的工程,您可以参考一下:

谢谢,已成功
回复 使用道具 举报
最佳答案
最佳答案
Bella.YuanWyn认证
超级版主   /  发表于:2023-8-23 11:17:42
来自 2#
本帖最后由 Bella.Yuan 于 2023-8-23 15:03 编辑

您好,arjs安装包会默认带一个vue的工程,您可以参考一下:



或者参考附件的demo

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部