// 部分数据从main_consts.js中抽出来，因为除了造价书界面，有一些页面也需要用到其中的变量
// 但是其他页面直接引入整个main_consts.js不合理，且会报错（main_consts.js正常运行依赖main.html的一些内容）
((factory) => {
    if (typeof module !== 'undefined') {
        module.exports = factory();
    } else {
        window.commonConstants = factory();
    }
})(() => {
    // 清单固定行
    const fixedFlag = {
        // 分部分项工程
        SUB_ENGINERRING: 1,
        // 措施项目
        MEASURE: 2,
        // 施工技术措施项目
        CONSTRUCTION_TECH: 3,
        // 安全文明施工按实计算费用
        SAFETY_CONSTRUCTION_ACTUAL: 4,
        // 施工组织措施专项费用
        CONSTRUCTION_ORGANIZATION: 5,
        // 安全文明施工专项费用
        SAFETY_CONSTRUCTION: 6,
        // 其他项目
        OTHER: 7,
        // 暂列金额
        PROVISIONAL: 8,
        // 暂估价
        ESTIMATE: 9,
        // 材料（工程设备）暂估价
        MATERIAL_PROVISIONAL: 10,
        // 专业工程暂估价
        ENGINEERING_ESITIMATE: 11,
        // 计日工
        DAYWORK: 12,
        // 总承包服务费
        TURN_KEY_CONTRACT: 13,
        // 索赔与现场签证
        CLAIM_VISA: 14,
        // 规费
        CHARGE: 15,
        // 社会保险费及住房公积金 Social insurance fee and housing accumulation fund
        SOCIAL_INSURANCE_HOUSING_FUND: 16,
        // 工程排污费 charges for disposing pollutants
        POLLUTANTS: 17,
        // 税金
        TAX: 18,
        //工程造价
        ENGINEERINGCOST: 19,
        //增值税
        ADDED_VALUE_TAX: 20,
        //专项技术措施暂估价
        SPECIAL_TECH_PROVISIONAL: 21,
        //专业发包工程管理费
        LET_CONTRACT_MANAGEMENT: 22,
        //人工
        LABOUR: 23,
        //材料
        MATERIAL: 24,
        //施工机械
        MACHINE: 25,
        //索赔
        CLAIM: 26,
        //现场签证
        VISA: 27,
        //附加税
        ADDITIONAL_TAX: 28,
        //环境保护税
        ENVIRONMENTAL_PROTECTION_TAX: 29,
        //建设工程竣工档案编制费
        PROJECT_COMPLETE_ARCH_FEE: 30,
        //住宅工程质量分户验收费
        HOUSE_QUALITY_ACCEPT_FEE: 31,
        //组织措施费
        ORGANIZATION: 32,
        //其他措施费
        OTHER_MEASURE_FEE: 33,
        // 绿色施工安全防护措施费
        GREEN_MEASURE_FEE: 34,
        // 预算包干费
        BUDGET_INCLUDE_WORK_FEE: 35,
        // 工程优质费
        PROJECT_HIGH_QUALITY_FEE: 36,
        // 概算幅度差
        BUDGET_ESTIMATE_DIFF: 37,
        // 其他费用（与其他项目不同，参考广东的用法）
        OTHER_FEE: 38
    };
    // 清单类型
    const billType = {
        DXFY: 1,//大项费用
        FB: 2,//分部
        FX: 3,//分项
        BILL: 4,//清单
        BX: 5//补项
    };
    // 定额类型
    const rationType = {
        ration: 1,
        volumePrice: 2,
        gljRation: 3,
        install: 4,
        overHeight: 5, // 超高子目
        itemIncrease: 6//子目增加
    };
    //项目类型
    const projectType = {
        Folder: 'Folder',
        Project: 'Project',
        Engineering: 'Engineering',
        Tender: 'Tender'
    };
    // 计税方式
    const TaxType = {
        NORMAL: 1,
        SIMPLE: 2
    };
    // 供货方式
    const supplyType = {
        //自行采购
        ZXCG: 0,
        //部分甲供
        BFJG: 1,
        //完全甲供
        WQJG: 2,
        // 甲供材料 （“完全甲供”改文字为“甲供材料”）
        JGCL: 2,
        //甲定乙供
        JDYG: 3
    };
    const supplyText = {
        //自行采购
        ZXCG: '自行采购',
        //部分甲供
        BFJG: '部分甲供',
        //完全甲供
        WQJG: '完全甲供',
        //甲定乙供
        JDYG: '甲定乙供'
    };
    const SourceType = {
        BILLS: 'bills',
        RATION: 'ration',
    };
    const DEFAULT_REGION = '全省';

    // 补充人材机库
    const COMPLEMENTARY_LIB = 'complementaryLib';

    // 费用定额
    const COMPILATION = 'compilation';

    // 缓存key
    const StorageKey = {
        // 主界面一旦出现这个缓存，马上提示
        ONCE_MAIN_LOADED: 'onceMainLoaded'
    };
    
    // 分享权限变更的类型
    const SharePermissionChangeType = {
        UPDATE_COOPERATE: 1,
        UPDATE_COPY: 2,
        CANCEL: 3,
        SHARE: 4,
        READ: 5
    };

    // 页面目标
    const PageTarget = {
        PM: 1, // 项目管理
        MAIN: 2 // 造价书
    };

    const BlankType = {
        NOT_FOUND: 1,
        SHARE_CANCEL: 2,
    };

    // 分享库类型
    const ShareLibType = {
        RATION_LIB: 1,
        GLJ_LIB: 2,
        BLOCK_LIB: 3,
    };

    return {
        fixedFlag,
        billType,
        rationType,
        projectType,
        TaxType,
        supplyType,
        supplyText,
        SourceType,
        DEFAULT_REGION,
        COMPILATION,
        COMPLEMENTARY_LIB,
        StorageKey,
        SharePermissionChangeType,
        PageTarget,
        BlankType,
        ShareLibType,
    };
});