Service

Service

Service 公文编辑器服务。

Constructor

new Service()

处理公文编辑器与后端服务器的交互。需要重载实现五个方法:getData、saveData、listHistory、getHistory、saveHistory,用于公文编辑器与后端服务交互

Source:
Examples
import DocEditor from '@o2oa/doceditor';
const service = new DocEditor.Service();
service.listHistory = function(docid){
    //实现获取历史痕迹列表,返回一个数组列表
};
service.getHistory = function(id){
    //实现获取历史痕迹数据
};
service.saveHistory = function(data){
    //实现保存历史痕迹数据
};
service.getData = function(docid){
    //实现获取编辑器数据
};
service.listHistory = function(data){
    //实现保存编辑器数据
};

const editor = DocEditor.createEditor("#div", options, service);
editor.load().then(()=>{
    //做一些其他的事情,比如绑定事件
});
import DocEditor from '@o2oa/doceditor';
class MyService extends DocEditor.Service {
    async listHistory(id) {
        //实现获取历史痕迹列表,返回一个数组列表
    }
    async getHistory(id){
        //实现获取历史痕迹数据
    }
    async saveHistory(data){
        //实现保存历史痕迹数据
    }
    async getData(id){
        //实现获取编辑器数据
    }
    async saveData(data){
        //实现保存编辑器数据
    }
};

const service = new MyService()
const editor = DocEditor.createEditor("#div", options, service);
editor.load().then(()=>{
    //做一些其他的事情,比如绑定事件
});

Methods

(async) getData(id) → {Promise.<Object>}

获取编辑器数据

Source:
Example
service.getData = function(data){
    return Promise.resolve({
                "copies": "",
                "secret": "",
                "priority": "",
                "redHeader": "文件红头",
                "fileno": "[文号]",
                "signerTitle": "签发人:",
                "signer": "[签发人]",
                "subject": "[文件标题]",
                "mainSend": "[主送单位:]",
                "filetext": "[请在此处编辑正文内容]",
                "attachmentTitle": "附件:",
                "attachment": "",
                "issuanceUnit": "[发文机关]",
                "issuanceDate": "[成文日期]",
                "annotation": "",
                "copytoTitle": "抄送:",
                "copyto": "[抄送]",
                "copyto2Title": "发:",
                "copyto2": "[发]",
                "editionUnit": "[印发机关]",
                "editionDate": "[印发日期]",
                "meetingAttendTitle": "出席:",
                "meetingLeaveTitle": "请假:",
                "meetingSitTitle": "列席:",
                "meetingAttend": "",
                "meetingLeave": "",
                "meetingSit": "",
                "meetingRecord": ""
            });
};
Parameters:
Name Type Description
id String 当前文档的唯一标识,创建编辑器时的options中的docId
Returns:
返回一个Promise resolve一个编辑器数据对象
Type
Promise.<Object>

(async) getHistory(id) → {Promise.<Object>}

实现获取历史痕迹数据

Source:
Example
service.listHistory = function(id){
    //实现获取历史痕迹列表,返回一个数组列表,格式如下:
    return Promise.resolve({
         "id": "1746f647-910f-419e-a55a-d07c176a3f87",           //痕迹内容唯一标识,用于获取具体的痕迹数据,由服务器生成
         "person": "胡起",                                         //痕迹修订的用户 创建编辑器时的options中的user.name
         "category": "documenteditor",                            //编辑id号,由创建编辑器时的options中id字段提供
         "data": "...",                                          //修订痕迹数据,保存时的data
         "json": {}                                              //将data中的文本转换为json对象(JSON.parse)
         "activityName": "拟稿",                                   //产生痕迹的步骤 创建编辑器时的options中的activity.name
         "createTime": "2022-03-12 17:23:40",                    //保存时由服务器自动生成
         "updateTime": "2022-03-12 17:23:40"                     //保存时由服务器自动生成
   });
};
Parameters:
Name Type Description
id String 历史痕迹的唯一标识,listHistory方法返回列表中的id
Returns:
返回一个Promise resolve一个存储了痕迹数据的对象
Type
Promise.<Object>

(async) listHistory(id) → {Promise.<Array>}

实现获取历史痕迹列表,返回一个数组列表

Source:
Example
service.listHistory = function(id){
    //实现获取历史痕迹列表,返回一个数组列表,格式如下:
    return Promise.resolve([
         {
           "id": "f2c17bf6-8d00-4204-97ed-00cc843a01cb",         //痕迹内容唯一标识,用于获取具体的痕迹数据,由服务器生成
           "person": "huqi@huqi@P",                              //痕迹修订的用户
           "category": "documenteditor",                         //编辑id号,由创建编辑器时的options中id字段提供
           "activityName": "拟稿",                                //产生痕迹的步骤
           "createTime": "2022-03-14 10:16:05",                  //保存时由服务器自动生成
           "updateTime": "2022-03-14 10:16:05"                   //保存时由服务器自动生成
           ...                                                   //其他数据由创建编辑器时的options中的processInfo对象提供
         }
   ]);
};
Parameters:
Name Type Description
id String 当前文档的唯一标识,创建编辑器时的options中的docId
Returns:
返回一个Promise resolve一个存储了痕迹列表的对象数组
Type
Promise.<Array>

(async) saveData()

保存编辑器数据

Source:
Example
service.saveData = function(data){
    //data为要保存的数据,格式如下:
    {
         "docId": "xxxxxxx"  //文档的唯一标识
         "copies": "",
         "secret": "",
         "priority": "",
         "redHeader": "文件红头",
         "fileno": "[文号]",
         "signerTitle": "签发人:",
         "signer": "[签发人]",
         "subject": "[文件标题]",
         "mainSend": "[主送单位:]",
         "filetext": "[请在此处编辑正文内容]",
         "attachmentTitle": "附件:",
         "attachment": "",
         "issuanceUnit": "[发文机关]",
         "issuanceDate": "[成文日期]",
         "annotation": "",
         "copytoTitle": "抄送:",
         "copyto": "[抄送]",
         "copyto2Title": "发:",
         "copyto2": "[发]",
         "editionUnit": "[印发机关]",
         "editionDate": "[印发日期]",
         "meetingAttendTitle": "出席:",
         "meetingLeaveTitle": "请假:",
         "meetingSitTitle": "列席:",
         "meetingAttend": "",
         "meetingLeave": "",
         "meetingSit": "",
         "meetingRecord": "",
         ...                                 //其他自定义扩展字段
     }
};

(async) saveHistory()

保存历史痕迹

Source:
Example
service.saveHistory = function(data){
    //data为要保存的数据,格式如下:
    {
         "docId": "xxxx"                 //当前文档的唯一标识,创建编辑器时的options中的docId
         "category": "documenteditor",   //编辑id号,由创建编辑器时的options中id字段提供
         "data": "...",                  //修订痕迹数据
         "person": "测试",                //修订用户 创建编辑器时的options中的user.name
         "activityName": "核稿"            //修订时的活动状态 创建编辑器时的options中的activity.name
          ...                            //其他数据由创建编辑器时的options中的processInfo对象提供
     }
};