diff --git a/src/ts/core/thing/resource.ts b/src/ts/core/thing/resource.ts index 5481e07749e969711ab6732c3dc29db67388aa15..46d25d2e8b5c101d4e803072de5316bdb096d61e 100644 --- a/src/ts/core/thing/resource.ts +++ b/src/ts/core/thing/resource.ts @@ -32,6 +32,7 @@ import { XAssignTask, XAssignTaskTree, XAssignTaskTreeNode, XOrder, + XAttribute, } from '../../base/schema'; import { BucketOpreates, ChatMessageType, Transfer } from '@/ts/base/model'; import { kernel, model } from '@/ts/base'; @@ -91,6 +92,7 @@ export class DataResource { this.orderColl = this.genTargetColl('mall-order'); this.assignTaskTreePublicColl = this.genTargetColl('-assign-task-tree'); + this.attributeColl = this.genTargetColl('standard-form-attribute'); } /** 表单集合 */ formColl: XCollection; @@ -166,6 +168,8 @@ export class DataResource { orderColl: XCollection; /** 任务树公共集合 */ assignTaskTreePublicColl: XCollection; + /** 属性集合 */ + attributeColl: XCollection; /** 资源对应的用户信息 */ get targetMetadata() { return this.target; diff --git a/src/ts/core/thing/standard/view/baseView.ts b/src/ts/core/thing/standard/view/baseView.ts index d9e1e38b8fc25374270d093e6dca3d891ac8e0a8..7bf9bd9c35fbc318b30ea19a21ec582aa0afa3b1 100644 --- a/src/ts/core/thing/standard/view/baseView.ts +++ b/src/ts/core/thing/standard/view/baseView.ts @@ -128,7 +128,24 @@ export class BaseView extends StandardFileInfo implements IBaseVie let data = await this.directory.resource.viewColl.find([this.id]); // 兼容历史 表单视图 查看 if (data.length === 0) { - data = (await this.directory.resource.formColl.find([this.id])) as any; + if (this._metadata.primaryId && this._metadata.primaryId.length > 0) { + var attrs = await this.directory.resource.attributeColl.loadSpace({ + options: { + match: { + formId: this.id, + isDeleted: false, + }, + }, + }); + this.metadata.attributes = attrs.map((a) => { + return { ...a, id: a.primaryId ?? a.id }; + }); + if (this.metadata.attributes.length >= 0) { + data = { ...this._metadata, attributes: attrs } as any; + } + } else { + data = (await this.directory.resource.formColl.find([this.id])) as any; + } } if (data.length > 0) { this._metadata = data[0];