2021SC@SDUSC
此次继续分析文件src/model/cmswing/document.js
该文件中的方法主要是与文档信息相关的操作。
一、modelinfo()
此方法用于添加或者新增扩展内容, 获取当前模型表名字。
此方法只有一个参数 mdoelid(应该是开发的时候手误了orz),是模型id。
首先通过参数 mdoelid 获取文档模型信息。判断模型信息是否有来自于其他模型的扩展信息,若有则将当前模型表名字添加扩展内容赋值给返回对象,若没有直接将文档模型名字赋值给返回对象。返回对象即表名。
async modelinfo(mdoelid) {
const modelinfo = await this.model('cmswing/model').get_document_model(mdoelid);
let model;
if (modelinfo.extend == 1) {
model = `document_${
modelinfo.name}`;
} else {
model = modelinfo.name;
}
return model;
}
二、checkdoctype()
此方法用于检查指定文档下面字文档的类型。
此方法共有两个参数,第一个参数 type 是子文档的类型,第二个参数 pid 是父文档类型。
首先对 type 和 pid 进行初始化处理:传入的参数不为空则为传入的值,传入的参数为空则赋值为 null 。res 为返回值,此处进行初始化赋值。
若 type 为空,返回一个 map 类型的值,在返回值中告知系统文档类型不能为空。若 pid 为空或0,返回初始化的 res 。若 type 不为空、pid 不为空且不为0,查询父文档的类型,并按不同类型进行返回。若父文档类型为目录或主题,方法返回初始化的 res ;若父文档类型为段落,在返回值中告知