| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- import { IOption } from './option';
- import { ICompilation } from './compilation';
- import { EntityType, IUser } from './user';
- import { ISystemSetting, ProjectType } from '.';
- // 分享类型
- export enum ShareType {
- PROJECT = 'project', // 项目
- RATION_LIB = 'rationLib', // 定额库
- GLJ_LIB = 'gljLib', // 工料机库
- PRICE_TEMPLATE = 'priceTemplate', // 租价模板
- }
- // 分享版本
- export enum ShareVersion {
- // 个人版
- PERSON = 'person',
- // 企业版
- ENTERPRISE = 'enterprise',
- // 成员协作
- MEMBER_COOPERATION = 'memberCooperation',
- }
- // 分享权限
- export interface ISharePermission {
- allowCopy: boolean;
- allowCooperate: boolean;
- }
- /* 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;
- }
- export interface IShareProject extends IShareBase {
- projectID: string; // 项目ID
- constructionID: string; // 项目所属建设项目ID,涉及到一些层级,有这个字段会更方便
- compilationID: string;
- isRead?: boolean;
- }
- export interface IShareLib extends IShareBase {
- compilationID: string;
- }
- 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 {
- 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;
- isRead?: boolean;
- allowCopy?: boolean;
- allowCooperate?: boolean;
- };
- type: ShareType;
- }
- export interface IDelShare {
- receiverID: string;
- receiverEnterpriseID: string;
- filter: { ID: string; projectID?: string; compilationID?: string };
- type: ShareType;
- }
- export interface IBulkShare {
- update?: IUpdateShare[];
- create?: ICreatShare[];
- remove?: IDelShare[];
- }
- // 分享链接
- export interface IShareLink {
- // 链接ID
- ID: string;
- // 是否需要密码
- needPassword: boolean;
- // 密码
- password?: string;
- // 分享的项目ID
- projectID: string;
- // 所属建设项目ID
- constructionID: string;
- // 项目所属费用定额ID
- compilationID: string;
- // 拥有者ID
- ownerID: string;
- ownerType: EntityType;
- // 创建链接的人ID
- 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 {
- // 个人版已分享
- personHistory: IShareHistory[];
- // 企业版已分享
- enterpriseHistory: IShareHistory[];
- // 成员协作已分享
- memberCoHistory: IShareHistory[];
- // 个人版最近分享
- personRecentUsers: IRecentShareUser[];
- // 企业版最近分享
- enterpriseRecentUsers: IRecentShareUser[];
- // 成员协作最近分享
- memberCoRecentUsers: IRecentShareUser[];
- // 分享链接
- shareLink?: IShareLink;
- }
- // 检查分享链接时需要的信息
- export interface IShareLinkInfo {
- // 链接ID
- ID: string;
- // 是否需要密码
- needPassword: boolean;
- // 项目所属费用定额ID
- compilationID: string;
- // 分享的项目ID
- projectID: string;
- // 所属建设项目ID
- constructionID: string;
- // 分享的项目名称
- projectName: string;
- // 分享链接的人名
- creatorName: string;
- }
- // 进入分享链接项目前准备数据
- export interface IPrepareShareLinkProject {
- // 分享链接项目的费用定额数据
- compilation: ICompilation;
- // 选项信息
- option: IOption;
- // 系统设置信息
- systemSetting: ISystemSetting;
- // 报表设置信息(用户)
- customizeCfg: any;
- }
- // 接收到的项目数据
- export interface IReceivedShareProject {
- // 项目ID
- ID: string;
- // 项目类型
- type: ProjectType;
- // 建设项目名称
- name: string;
- // 建设项目下分享的工程
- children: IReceivedShareProject[];
- // 来自用户名
- fromUserName: string;
- // 分享时间
- shareDate: number;
- // 分享项目来自的企业ID
- enterpriseID?: string;
- // 分享项目来自的企业名称
- enterpriseName?: string;
- }
- // 接收到的库数据
- export interface IReceivedShareLib {
- // 类型
- type: ShareType;
- // 库名称
- name: string;
- // 拼接成的库ID(非分享数据ID)
- ID: string;
- // 分享时间
- shareDate: number;
- // 来自用户名
- fromUserName: string;
- // 指定用户(名称)
- toUsers?: string[];
- }
- // 根据手机号搜索出来用户信息
- export interface IShareSearchUser {
- userID: string;
- userName: string;
- mobile: string;
- enterpriseID?: string;
- enterpriseName?: string;
- }
|