|
|
@@ -1,13 +1,24 @@
|
|
|
import { IOption } from './option';
|
|
|
import { ICompilation } from './compilation';
|
|
|
-import { IRecentUser, IUser } from './user';
|
|
|
+import { EntityType, IUser } from './user';
|
|
|
import { ISystemSetting, ProjectType } from '.';
|
|
|
|
|
|
+// 分享类型
|
|
|
export enum ShareType {
|
|
|
- PROJECT = 1, // 项目
|
|
|
- RATION_LIB, // 定额库
|
|
|
- GLJ_LIB, // 工料机库
|
|
|
- PRICE_TEMPLATE, // 租价模板
|
|
|
+ PROJECT = 'project', // 项目
|
|
|
+ RATION_LIB = 'rationLib', // 定额库
|
|
|
+ GLJ_LIB = 'gljLib', // 工料机库
|
|
|
+ PRICE_TEMPLATE = 'priceTemplate', // 租价模板
|
|
|
+}
|
|
|
+
|
|
|
+// 分享版本
|
|
|
+export enum ShareVersion {
|
|
|
+ // 个人版
|
|
|
+ PERSON = 'person',
|
|
|
+ // 企业版
|
|
|
+ ENTERPRISE = 'enterprise',
|
|
|
+ // 成员协作
|
|
|
+ MEMBER_COOPERATION = 'memberCooperation',
|
|
|
}
|
|
|
|
|
|
// 分享权限
|
|
|
@@ -16,50 +27,82 @@ export interface ISharePermission {
|
|
|
allowCooperate: boolean;
|
|
|
}
|
|
|
|
|
|
-export interface IShareProject extends ISharePermission {
|
|
|
+/* export interface IShare {
|
|
|
+ ID: string;
|
|
|
+ version: ShareVersion;
|
|
|
+ ownerID: string;
|
|
|
+ ownerType: EntityType;
|
|
|
+ // 负责人ID
|
|
|
+ managerID: string;
|
|
|
+ receiverID: string;
|
|
|
+ receiverEnterpriseID?: string;
|
|
|
+ recentDate: number;
|
|
|
+ projectList: IShareProject[];
|
|
|
+ rationLibList: IShareLib[];
|
|
|
+ gljLibList: IShareLib[];
|
|
|
+ priceTemplateList: IShareLib[];
|
|
|
+} */
|
|
|
+
|
|
|
+export interface IShareBase extends ISharePermission {
|
|
|
+ ID: string;
|
|
|
+ version: ShareVersion;
|
|
|
+ type: ShareType;
|
|
|
+ ownerID: string;
|
|
|
+ ownerType: EntityType;
|
|
|
+ userID: string;
|
|
|
+ enterpriseID: string;
|
|
|
+ receiverID: string;
|
|
|
+ receiverEnterpriseID: string;
|
|
|
shareDate: number;
|
|
|
- updateDate?: number;
|
|
|
+ updateDate: number;
|
|
|
+}
|
|
|
+
|
|
|
+export interface IShareProject extends IShareBase {
|
|
|
projectID: string; // 项目ID
|
|
|
constructionID: string; // 项目所属建设项目ID,涉及到一些层级,有这个字段会更方便
|
|
|
compilationID: string;
|
|
|
isRead?: boolean;
|
|
|
}
|
|
|
|
|
|
-export interface IShareLib extends ISharePermission {
|
|
|
- shareDate: number;
|
|
|
- updateDate?: number;
|
|
|
+export interface IShareLib extends IShareBase {
|
|
|
compilationID: string;
|
|
|
}
|
|
|
|
|
|
-export interface IShare {
|
|
|
- ID: string;
|
|
|
- owner: string;
|
|
|
- receiver: string;
|
|
|
- recentDate: number;
|
|
|
- projectList: IShareProject[];
|
|
|
- rationLibList: IShareLib[];
|
|
|
- gljLibList: IShareLib[];
|
|
|
- priceTemplateList: IShareLib[];
|
|
|
-}
|
|
|
-
|
|
|
export type ShareItem = IShareProject | IShareLib;
|
|
|
|
|
|
// 分享历史
|
|
|
export interface IShareHistory extends ISharePermission {
|
|
|
ID: string; // 分享ID
|
|
|
user: Partial<IUser>;
|
|
|
+ enterpriseID?: string;
|
|
|
+ enterpriseName?: string;
|
|
|
shareType: ShareType;
|
|
|
projectID?: string;
|
|
|
compilationID?: string;
|
|
|
}
|
|
|
|
|
|
+export interface ICreateShareProject extends ISharePermission {
|
|
|
+ ID: string;
|
|
|
+ projectID: string; // 项目ID
|
|
|
+ constructionID: string; // 项目所属建设项目ID,涉及到一些层级,有这个字段会更方便
|
|
|
+ compilationID: string;
|
|
|
+}
|
|
|
+
|
|
|
+export interface ICreateShareLib extends ISharePermission {
|
|
|
+ ID: string;
|
|
|
+ compilationID: string;
|
|
|
+}
|
|
|
+
|
|
|
export interface ICreatShare {
|
|
|
- receiver: string;
|
|
|
- doc: ShareItem;
|
|
|
+ receiverID: string;
|
|
|
+ receiverEnterpriseID: string; // 一个用户可能有多个企业,需要记住企业ID
|
|
|
+ doc: ICreateShareProject | ICreateShareLib;
|
|
|
type: ShareType;
|
|
|
}
|
|
|
|
|
|
export interface IUpdateShare {
|
|
|
+ receiverID: string;
|
|
|
+ receiverEnterpriseID: string;
|
|
|
filter: { ID: string; projectID?: string; compilationID?: string };
|
|
|
update: {
|
|
|
updateDate?: number;
|
|
|
@@ -71,13 +114,15 @@ export interface IUpdateShare {
|
|
|
}
|
|
|
|
|
|
export interface IDelShare {
|
|
|
+ receiverID: string;
|
|
|
+ receiverEnterpriseID: string;
|
|
|
filter: { ID: string; projectID?: string; compilationID?: string };
|
|
|
type: ShareType;
|
|
|
}
|
|
|
|
|
|
export interface IBulkShare {
|
|
|
update?: IUpdateShare[];
|
|
|
- create?: { ID: string; docs: ICreatShare[] };
|
|
|
+ create?: ICreatShare[];
|
|
|
remove?: IDelShare[];
|
|
|
}
|
|
|
|
|
|
@@ -96,19 +141,57 @@ export interface IShareLink {
|
|
|
// 项目所属费用定额ID
|
|
|
compilationID: string;
|
|
|
// 拥有者ID
|
|
|
- owner: string;
|
|
|
+ ownerID: string;
|
|
|
+ ownerType: EntityType;
|
|
|
// 创建链接的人ID
|
|
|
- creator: string;
|
|
|
+ creatorID: string;
|
|
|
// 分享时间
|
|
|
shareDate: number;
|
|
|
}
|
|
|
|
|
|
+// 最近分享 条目
|
|
|
+export interface IRecentShareItem {
|
|
|
+ userID: string;
|
|
|
+ enterpriseID: string;
|
|
|
+ recentDate: number;
|
|
|
+}
|
|
|
+
|
|
|
+// 最近分享
|
|
|
+export interface IRecentShare {
|
|
|
+ userID: string;
|
|
|
+ enterpriseID: string;
|
|
|
+ // 个人版
|
|
|
+ personVer: IRecentShareItem[];
|
|
|
+ // 企业版
|
|
|
+ enterpriseVer: IRecentShareItem[];
|
|
|
+ // 成员协作
|
|
|
+ memberCooperation: IRecentShareItem[];
|
|
|
+}
|
|
|
+
|
|
|
+// 最近分享用户
|
|
|
+export interface IRecentShareUser {
|
|
|
+ userID: string;
|
|
|
+ name: string;
|
|
|
+ mobile: string;
|
|
|
+ enterpriseID?: string;
|
|
|
+ enterpriseName?: string;
|
|
|
+ recentDate: number;
|
|
|
+}
|
|
|
+
|
|
|
// 初始化分享弹窗时需要的数据
|
|
|
export interface IPreparePopup {
|
|
|
- // 已分享
|
|
|
- history: IShareHistory[];
|
|
|
- // 最近分享
|
|
|
- recentContacts: IRecentUser[];
|
|
|
+ // 个人版已分享
|
|
|
+ personHistory: IShareHistory[];
|
|
|
+ // 企业版已分享
|
|
|
+ enterpriseHistory: IShareHistory[];
|
|
|
+ // 成员协作已分享
|
|
|
+ memberCoHistory: IShareHistory[];
|
|
|
+ // 个人版最近分享
|
|
|
+ personRecentUsers: IRecentShareUser[];
|
|
|
+ // 企业版最近分享
|
|
|
+ enterpriseRecentUsers: IRecentShareUser[];
|
|
|
+ // 成员协作最近分享
|
|
|
+ memberCoRecentUsers: IRecentShareUser[];
|
|
|
// 分享链接
|
|
|
shareLink?: IShareLink;
|
|
|
}
|
|
|
@@ -157,6 +240,10 @@ export interface IReceivedShareProject {
|
|
|
fromUserName: string;
|
|
|
// 分享时间
|
|
|
shareDate: number;
|
|
|
+ // 分享项目来自的企业ID
|
|
|
+ enterpriseID?: string;
|
|
|
+ // 分享项目来自的企业名称
|
|
|
+ enterpriseName?: string;
|
|
|
}
|
|
|
|
|
|
// 接收到的库数据
|
|
|
@@ -174,3 +261,12 @@ export interface IReceivedShareLib {
|
|
|
// 指定用户(名称)
|
|
|
toUsers?: string[];
|
|
|
}
|
|
|
+
|
|
|
+// 根据手机号搜索出来用户信息
|
|
|
+export interface IShareSearchUser {
|
|
|
+ userID: string;
|
|
|
+ userName: string;
|
|
|
+ mobile: string;
|
|
|
+ enterpriseID?: string;
|
|
|
+ enterpriseName?: string;
|
|
|
+}
|