bmc-common-resource 1.1.40 → 1.1.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 销售合同状态选项数组
3
+ * 提供 {name: '状态名称', value: '状态代码'} 格式的数据
4
+ */
5
+ import { CONTRACT_STATE_ENUM } from '../enums/contract-state.enum';
6
+ export interface ContractStatusOption {
7
+ /** 状态名称 */
8
+ name: string;
9
+ /** 状态代码 */
10
+ value: CONTRACT_STATE_ENUM;
11
+ }
12
+ /**
13
+ * 销售合同状态选项数组
14
+ */
15
+ export declare const CONTRACT_STATUS_OPTIONS: ContractStatusOption[];
@@ -19,3 +19,4 @@ export * from './rounding-rule-options.constant';
19
19
  export * from './assign-business-type-options.constant';
20
20
  export * from './dictionary-business-scope-options.constant';
21
21
  export * from './dictionary-business-work-phase-options.constant';
22
+ export * from './contract-status-options.constant';
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 销售合同状态
3
+ */
4
+ export declare enum CONTRACT_STATE_ENUM {
5
+ /** 已作废 */
6
+ VOIDED = "VOIDED",
7
+ /** 草稿 */
8
+ DRAFT = "DRAFT",
9
+ /** 待我签 */
10
+ SIGN_STAY_FOR_ME = "SIGN_STAY_FOR_ME",
11
+ /** 待客签 */
12
+ SIGN_STAY_CUSTOMER = "SIGN_STAY_CUSTOMER",
13
+ /** 待提报 */
14
+ STAY_REPORTED = "STAY_REPORTED",
15
+ /** 已驳回 */
16
+ REJECTED = "REJECTED",
17
+ /** 审核中 */
18
+ UNDER_REVIEW = "UNDER_REVIEW",
19
+ /** 待审核 */
20
+ STAY_AUDIT = "STAY_AUDIT",
21
+ /** 已完成 */
22
+ COMPLETED = "COMPLETED",
23
+ /** 待复尺 */
24
+ STAY_SCALE = "STAY_SCALE",
25
+ /** 分单未完 */
26
+ INCOMPLETE_ORDER_SPLITTING = "INCOMPLETE_ORDER_SPLITTING"
27
+ }
@@ -52,6 +52,8 @@ export declare enum CUSTOMER_SOURCE_ENUM {
52
52
  ALLIANCE_COOPERATION = "ALLIANCE_COOPERATION",
53
53
  /** 家装设计师合作 */
54
54
  INTERIOR_DESIGNER_COLLABORATION = "INTERIOR_DESIGNER_COLLABORATION",
55
+ /** 裂变客户推荐 */
56
+ FRACTURED_CUSTOMER_REFERRAL = "FRACTURED_CUSTOMER_REFERRAL",
55
57
  /** 家装公司合作 */
56
58
  HOME_IMPROVEMENT_COMPANY_COLLABORATION = "HOME_IMPROVEMENT_COMPANY_COLLABORATION",
57
59
  /** 主材商家合作 */
@@ -17,3 +17,4 @@ export * from './rounding-rule.enum';
17
17
  export * from './assign-business-type.enum';
18
18
  export * from './business-scope.enum';
19
19
  export * from './business-work-phase.enum';
20
+ export * from './contract-state.enum';
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export * from './utils';
9
9
  export * from './modules';
10
10
  export { assignBusinessTypeOption } from './constants/assign-business-type-options.constant';
11
11
  export { assign_business_type_options } from './constants/assign-business-type-options.constant';
12
+ export { ContractStatusOption } from './constants/contract-status-options.constant';
13
+ export { CONTRACT_STATUS_OPTIONS } from './constants/contract-status-options.constant';
12
14
  export { CurrencyOption } from './constants/currency-unit-options.constant';
13
15
  export { CURRENCY_UNIT_OPTIONS } from './constants/currency-unit-options.constant';
14
16
  export { designTypeOption } from './constants/design-type-options.constant';
@@ -47,6 +49,7 @@ export { supply_mode_options } from './constants/supply-mode-options.constant';
47
49
  export { assign_business_type } from './enums/assign-business-type.enum';
48
50
  export { BUSINESS_SCOPE_ENUM } from './enums/business-scope.enum';
49
51
  export { BUSINESS_WORK_PHASE_ENUM } from './enums/business-work-phase.enum';
52
+ export { CONTRACT_STATE_ENUM } from './enums/contract-state.enum';
50
53
  export { CURRENCY_UNIT_ENUM } from './enums/currency-unit.enum';
51
54
  export { CUSTOMER_LABEL_ENUM } from './enums/customer-label.enum';
52
55
  export { CustomerLabelType } from './enums/customer-label.enum';
@@ -84,6 +87,7 @@ export { formatNumberWithCommas } from './utils/common.util';
84
87
  export { findOptionByValue } from './utils/common.util';
85
88
  export { getFileExtension } from './utils/common.util';
86
89
  export { formatChineseMobile } from './utils/common.util';
90
+ export { formatDecimal } from './utils/common.util';
87
91
  export { calcStandardPrice } from './utils/solution.util';
88
92
  export { calcActualPrice } from './utils/solution.util';
89
93
  export { ROOM_TYPES, getSortedRoomTypes, getRoomTypeByKey } from './modules/solution/roomTypes';
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- var e,E,r,a,n,o,A,t,N,T,O,i,R,I,_;!function(e){e.DRAFT="DRAFT",e.ACTIVE="ACTIVE",e.LOCKED="LOCKED",e.REVOKED="REVOKED",e.PRE_SIGNED="PRE_SIGNED",e.SIGNED="SIGNED",e.SIGNED_REVOKED="SIGNED_REVOKED"}(e||(e={})),function(e){e.BUDGET="BUDGET",e.MODEL_ROOM_EX="MODEL_ROOM_EX",e.COMMUNITY_EX="COMMUNITY_EX",e.ORDER="ORDER",e.CONTRACT="CONTRACT"}(E||(E={})),function(e){e.CNY="CNY",e.USD="USD",e.EUR="EUR",e.GBP="GBP",e.HKD="HKD"}(r||(r={})),function(e){e.own_production="own_production",e.brand_agency="brand_agency",e.wholesale_procur="wholesale_procur",e.cross_border_pro="cross_border_pro",e.oem_contract="oem_contract"}(a||(a={})),function(e){e.CUSTOMER_RECOMMENDATION="CUSTOMER_RECOMMENDATION",e.DESIGN_ALLIANCE="DESIGN_ALLIANCE",e.DIFFERENT_DESIGN_ALLIANCE="DIFFERENT_DESIGN_ALLIANCE",e.EMPLOYEE_RECOMMENDATION="EMPLOYEE_RECOMMENDATION",e.WECHAT_GROUPS="WECHAT_GROUPS"}(n||(n={})),function(e){e.SERIES="SERIES",e.STYLE="STYLE"}(o||(o={})),function(e){e.STANDARD_RETAIL="STANDARD_RETAIL",e.ACTUAL_RETAIL="ACTUAL_RETAIL"}(A||(A={})),function(e){e.KITCHEN="KITCHEN",e.LIVING_ROOM="LIVING_ROOM",e.RESTAURANT="RESTAURANT",e.MASTER_BEDROOM="MASTER_BEDROOM",e.SECOND_BEDROOM="SECOND_BEDROOM",e.CLOAKROOM="CLOAKROOM",e.YOUNGSTER_ROOM="YOUNGSTER_ROOM",e.STUDY="STUDY",e.MASTER_BATHROOM="MASTER_BATHROOM",e.SECOND_BATHROOM="SECOND_BATHROOM",e.HALLWAY="HALLWAY",e.BALCONY="BALCONY",e.STOREROOM="STOREROOM",e.OTHER_SPACE="OTHER_SPACE"}(t||(t={})),function(e){e.DELIVERED_HOUSE="DELIVERED_HOUSE",e.UNDEVELOPED_HOUSE="UNDEVELOPED_HOUSE",e.UNCERTAIN_DELIVERY="UNCERTAIN_DELIVERY"}(N||(N={})),function(e){e.LUXURY_HOUSE="LUXURY_HOUSE",e.BARE_SHELL_HOUSE="BARE_SHELL_HOUSE",e.SECOND_HAND_HOUSE="SECOND_HAND_HOUSE",e.UNDETERMINED="UNDETERMINED"}(T||(T={})),function(e){e.stdConf="stdConf",e.gift="gift",e.present="present",e.package="package",e.positive="positive",e.specialPrice="specialPrice",e.fixPrice="fixPrice",e.returnedPurchase="returnedPurchase",e.refund="refund",e.sample="sample",e.returning_inventory="returning_inventory",e.backup_warehouse="backup_warehouse",e.sec_kill_product="sec_kill_product",e.activity_product="activity_product",e.product_stock="product_stock"}(O||(O={})),function(e){e.SINGLE_ROUND="SINGLE_ROUND",e.SINGLE_SET_EIGHT="SINGLE_SET_EIGHT",e.SINGLE_SET_NINE="SINGLE_SET_NINE",e.SINGLE_SET_TEN="SINGLE_SET_TEN",e.SINGLE_PLUS_ONE="SINGLE_PLUS_ONE",e.TEN_PLUS_ONE="TEN_PLUS_ONE",e.SINGLE_TEN_PLUS_ONE="SINGLE_TEN_PLUS_ONE"}(i||(i={})),function(e){e.ESTATE="ESTATE"}(R||(R={})),function(e){e.SELF_OPERATED_PRODUCT="SELF_OPERATED_PRODUCT",e.AGENCY_PURCHASE_SALES="AGENCY_PURCHASE_SALES",e.INTERIOR_DESIGN="INTERIOR_DESIGN",e.ENGINEERING_CONSTRUCTION="ENGINEERING_CONSTRUCTION"}(I||(I={})),function(e){e.MARKETING="MARKETING",e.SALES="SALES",e.DESIGN="DESIGN",e.INSTALLATION="INSTALLATION",e.AFTER_SALES="AFTER_SALES"}(_||(_={}));const u={},l=[{name:"草稿",value:e.DRAFT},{name:"可用",value:e.ACTIVE},{name:"锁定",value:e.LOCKED},{name:"已作废",value:e.REVOKED},{name:"预签",value:e.PRE_SIGNED},{name:"已签",value:e.SIGNED},{name:"已签作废",value:e.SIGNED_REVOKED}],s=[{name:"预算方案",value:E.BUDGET},{name:"样板间专属方案",value:E.MODEL_ROOM_EX},{name:"小区专属方案",value:E.COMMUNITY_EX},{name:"订单方案",value:E.ORDER},{name:"合同清单",value:E.CONTRACT}];var C;!function(e){e.NULLIFIED="NULLIFIED",e.LOCKED="LOCKED",e.OPEN="OPEN"}(C||(C={}));const m=[{name:"作废",value:C.NULLIFIED},{name:"锁定",value:C.LOCKED},{name:"开放",value:C.OPEN}],L=[{name:"人民币",value:r.CNY},{name:"美元",value:r.USD},{name:"欧元",value:r.EUR},{name:"英镑",value:r.GBP},{name:"港币",value:r.HKD}],S=[{name:"自制生产",value:a.own_production},{name:"品牌代理",value:a.brand_agency},{name:"批发采购",value:a.wholesale_procur},{name:"跨境采购",value:a.cross_border_pro},{name:"OEM代工",value:a.oem_contract}];var d,c;!function(e){e.CUSTOMER_SOURCE="CUSTOMER_SOURCE",e.PROCESS_STAGE="PROCESS_STAGE",e.POSITION="POSITION",e.CUSTOMER_LABEL="CUSTOMER_LABEL",e.BEDROOM="BEDROOM",e.DELIVERY_TIME_OPTION="DELIVERY_TIME_OPTION",e.HOUSE_INFORMATION="HOUSE_INFORMATION",e.HOUSE_SQUARE_METERS="HOUSE_SQUARE_METERS",e.BUSINESS_SCOPE="BUSINESS_SCOPE",e.BUSINESS_WORK_PHASE="BUSINESS_WORK_PHASE",e.PROJECT_CLASSIFICATION="PROJECT_CLASSIFICATION",e.PROJECT_TYPE="PROJECT_TYPE",e.PROJECT_SOLUTION="PROJECT_SOLUTION"}(d||(d={})),function(e){e.OTO_TOURIST_SOURCE="OTO_TOURIST_SOURCE",e.GROUP_OTO="GROUP_OTO",e.TMALL="TMALL",e.TENCENT_PLATFORM="TENCENT_PLATFORM",e.DA_ZHONG_DIAN_PING="DA_ZHONG_DIAN_PING",e.STORE_SALES="STORE_SALES",e.OFFICIAL_REGISTRATION="OFFICIAL_REGISTRATION",e.CITY_OTO="CITY_OTO",e.COMMUNITY_MARKETING_ACCOUNTS="COMMUNITY_MARKETING_ACCOUNTS",e.MERCHANT_WE_MEDIA_REGISTRATION="MERCHANT_WE_MEDIA_REGISTRATION",e.PRIVATE_DOMAIN="PRIVATE_DOMAIN",e.CUSTOMER_RECOMMENDATION="CUSTOMER_RECOMMENDATION",e.ON_GOING_CUSTOMER_REFERRAL="ON_GOING_CUSTOMER_REFERRAL",e.OLD_CUSTOMER_REFERRAL="OLD_CUSTOMER_REFERRAL",e.RECOMMENDED_BY_SEED_CUSTOMER="RECOMMENDED_BY_SEED_CUSTOMER",e.MALL_TRAFFIC_FLOW="MALL_TRAFFIC_FLOW",e.NATURAL_TRAFFIC="NATURAL_TRAFFIC",e.EVENT_TRAFFIC="EVENT_TRAFFIC",e.ADVERTISING_TRAFFIC="ADVERTISING_TRAFFIC",e.SOCIAL_COMMUNITY_CUSTOMER="SOCIAL_COMMUNITY_CUSTOMER",e.SELF_BUILT_COMMUNITY="SELF_BUILT_COMMUNITY",e.SELF_BUILT_EVENT_COMMUNITY="SELF_BUILT_EVENT_COMMUNITY",e.MALL_MARKETING_COMMUNITY="MALL_MARKETING_COMMUNITY",e.ALLIANCE_COOPERATION="ALLIANCE_COOPERATION",e.INTERIOR_DESIGNER_COLLABORATION="INTERIOR_DESIGNER_COLLABORATION",e.HOME_IMPROVEMENT_COMPANY_COLLABORATION="HOME_IMPROVEMENT_COMPANY_COLLABORATION",e.MAIN_MATERIAL_MERCHANT_COLLABORATION="MAIN_MATERIAL_MERCHANT_COLLABORATION",e.MAIN_MATERIAL_SALES_COLLABORATION="MAIN_MATERIAL_SALES_COLLABORATION",e.NON_INDUSTRY_ALLIANCE="NON_INDUSTRY_ALLIANCE",e.DEVELOPER_COLLABORATION="DEVELOPER_COLLABORATION",e.PROPERTY_COLLABORATION="PROPERTY_COLLABORATION",e.MALL_COLLABORATION="MALL_COLLABORATION",e.BANK_COOPERATION="BANK_COOPERATION",e.EMPLOYEE_REFERRAL="EMPLOYEE_REFERRAL",e.BE_ON_THE_JOB_EMPLOYEE_REFERRAL="BE_ON_THE_JOB_EMPLOYEE_REFERRAL",e.EARLY_EMPLOYEE_REFERRAL="EARLY_EMPLOYEE_REFERRAL",e.OTHER_SOURCE="OTHER_SOURCE",e.SCAN_EMPLOYEE_QR_CODE="SCAN_EMPLOYEE_QR_CODE"}(c||(c={}));const D=[{label:"O2O客户",value:c.OTO_TOURIST_SOURCE},{label:"集团O2O",value:c.GROUP_OTO},{label:"天猫商城",value:c.TMALL},{label:"腾讯平台",value:c.TENCENT_PLATFORM},{label:"大众点评",value:c.DA_ZHONG_DIAN_PING},{label:"百度平台",value:c.STORE_SALES},{label:"官方报名",value:c.OFFICIAL_REGISTRATION},{label:"城市O2O",value:c.CITY_OTO},{label:"社群营销号获客",value:c.COMMUNITY_MARKETING_ACCOUNTS},{label:"商家自媒体报名",value:c.MERCHANT_WE_MEDIA_REGISTRATION},{label:"私域O2O",value:c.PRIVATE_DOMAIN},{label:"客户推荐",value:c.CUSTOMER_RECOMMENDATION},{label:"在途客户推荐",value:c.ON_GOING_CUSTOMER_REFERRAL},{label:"老客户推荐",value:c.OLD_CUSTOMER_REFERRAL},{label:"种子客户推荐",value:c.RECOMMENDED_BY_SEED_CUSTOMER},{label:"商场客流",value:c.MALL_TRAFFIC_FLOW},{label:"自然客流",value:c.NATURAL_TRAFFIC},{label:"活动客流",value:c.EVENT_TRAFFIC},{label:"广告导流",value:c.ADVERTISING_TRAFFIC},{label:"社群客户",value:c.SOCIAL_COMMUNITY_CUSTOMER},{label:"自建小区社群",value:c.SELF_BUILT_COMMUNITY},{label:"自建活动社群",value:c.SELF_BUILT_EVENT_COMMUNITY},{label:"商场营销社群",value:c.MALL_MARKETING_COMMUNITY},{label:"同业联盟推荐",value:c.ALLIANCE_COOPERATION},{label:"家装设计师合作",value:c.INTERIOR_DESIGNER_COLLABORATION},{label:"家装公司合作",value:c.HOME_IMPROVEMENT_COMPANY_COLLABORATION},{label:"主材商家合作",value:c.MAIN_MATERIAL_MERCHANT_COLLABORATION},{label:"主材销售合作",value:c.MAIN_MATERIAL_SALES_COLLABORATION},{label:"异业联盟推荐",value:c.NON_INDUSTRY_ALLIANCE},{label:"开发商合作",value:c.DEVELOPER_COLLABORATION},{label:"物业合作",value:c.PROPERTY_COLLABORATION},{label:"商场合作",value:c.MALL_COLLABORATION},{label:"银行合作",value:c.BANK_COOPERATION},{label:"员工推荐",value:c.EMPLOYEE_REFERRAL},{label:"在职员工推荐",value:c.BE_ON_THE_JOB_EMPLOYEE_REFERRAL},{label:"早期员工推荐",value:c.EARLY_EMPLOYEE_REFERRAL},{label:"其他来源",value:c.OTHER_SOURCE},{label:"扫描员工码",value:c.SCAN_EMPLOYEE_QR_CODE}];var U;!function(e){e.INFORMATION_IN_TRANSIT="INFORMATION_IN_TRANSIT",e.CUSTOMER_SOURCE_IN_TRANSIT="CUSTOMER_SOURCE_IN_TRANSIT",e.LINK_IN_TRANSIT="LINK_IN_TRANSIT",e.MEETING_IN_TRANSIT="MEETING_IN_TRANSIT",e.INTENTION_IN_TRANSIT="INTENTION_IN_TRANSIT",e.ORDER_FORM_IN_TRANSIT="ORDER_FORM_IN_TRANSIT",e.ASSIGN_DESIGNER="ASSIGN_DESIGNER",e.MEASURE_IN_TRANSIT="MEASURE_IN_TRANSIT",e.SOLUTION_QUOTATION_IN_TRANSIT="SOLUTION_QUOTATION_IN_TRANSIT",e.CONTRACT_IN_TRANSIT="CONTRACT_IN_TRANSIT",e.COMPOUND_RULER_IN_TRANSIT="COMPOUND_RULER_IN_TRANSIT",e.PURCHASE_IN_TRANSIT="PURCHASE_IN_TRANSIT",e.PRODUCTION_IN_TRANSIT="PRODUCTION_IN_TRANSIT",e.LOGISTICS_IN_TRANSIT="LOGISTICS_IN_TRANSIT",e.STORAGE_IN_TRANSIT="STORAGE_IN_TRANSIT",e.INSTALL_IN_TRANSIT="INSTALL_IN_TRANSIT",e.DELIVER_IN_TRANSIT="DELIVER_IN_TRANSIT",e.OLD_CUSTOMER_IN_TRANSIT="OLD_CUSTOMER_IN_TRANSIT"}(U||(U={}));const M=[{label:"信息",value:U.INFORMATION_IN_TRANSIT},{label:"客源",value:U.CUSTOMER_SOURCE_IN_TRANSIT},{label:"链接",value:U.LINK_IN_TRANSIT},{label:"会见",value:U.MEETING_IN_TRANSIT},{label:"意向",value:U.INTENTION_IN_TRANSIT},{label:"订单",value:U.ORDER_FORM_IN_TRANSIT},{label:"派单",value:U.ASSIGN_DESIGNER},{label:"量房",value:U.MEASURE_IN_TRANSIT},{label:"报价",value:U.SOLUTION_QUOTATION_IN_TRANSIT},{label:"合同",value:U.CONTRACT_IN_TRANSIT},{label:"复尺",value:U.COMPOUND_RULER_IN_TRANSIT},{label:"采购",value:U.PURCHASE_IN_TRANSIT},{label:"生产",value:U.PRODUCTION_IN_TRANSIT},{label:"物流",value:U.LOGISTICS_IN_TRANSIT},{label:"仓储",value:U.STORAGE_IN_TRANSIT},{label:"安装",value:U.INSTALL_IN_TRANSIT},{label:"满意度交付",value:U.DELIVER_IN_TRANSIT},{label:"老客户",value:U.OLD_CUSTOMER_IN_TRANSIT}];var p;!function(e){e.UNGROUPED="UNGROUPED"}(p||(p={}));const P=[{label:"未分组",value:p.UNGROUPED}],B=[{label:"自营产品",value:I.SELF_OPERATED_PRODUCT},{label:"代购代销",value:I.AGENCY_PURCHASE_SALES},{label:"室内设计",value:I.INTERIOR_DESIGN},{label:"工程施工",value:I.ENGINEERING_CONSTRUCTION}],h=[{label:"营销",value:_.MARKETING},{label:"销售",value:_.SALES},{label:"设计",value:_.DESIGN},{label:"安装",value:_.INSTALLATION},{label:"售后",value:_.AFTER_SALES}],g={[d.CUSTOMER_SOURCE]:D,[d.PROCESS_STAGE]:M,[d.CUSTOMER_LABEL]:P,[d.BUSINESS_SCOPE]:B,[d.BUSINESS_WORK_PHASE]:h},H=[{label:"客户来源",value:d.CUSTOMER_SOURCE},{label:"进程阶段",value:d.PROCESS_STAGE},{label:"职业名称",value:d.POSITION},{label:"客户标签",value:d.CUSTOMER_LABEL},{label:"房屋居室",value:d.BEDROOM},{label:"交房选项",value:d.DELIVERY_TIME_OPTION},{label:"房屋户型",value:d.HOUSE_INFORMATION},{label:"房屋面积",value:d.HOUSE_SQUARE_METERS},{label:"业务范围分类",value:d.BUSINESS_SCOPE},{label:"业务工作",value:d.BUSINESS_WORK_PHASE},{label:"项目分类",value:d.PROJECT_CLASSIFICATION},{label:"项目类型",value:d.PROJECT_TYPE},{label:"项目解决",value:d.PROJECT_SOLUTION}],v=[{name:"客户推荐",value:n.CUSTOMER_RECOMMENDATION},{name:"同业联盟推荐",value:n.DESIGN_ALLIANCE},{name:"异业联盟推荐",value:n.DIFFERENT_DESIGN_ALLIANCE},{name:"员工推荐",value:n.EMPLOYEE_RECOMMENDATION},{name:"微信群",value:n.WECHAT_GROUPS}],b=[{name:"系列",value:o.SERIES},{name:"款式",value:o.STYLE}],G=[{name:"厨房",value:t.KITCHEN},{name:"客厅",value:t.LIVING_ROOM},{name:"餐厅",value:t.RESTAURANT},{name:"主卧",value:t.MASTER_BEDROOM},{name:"次卧",value:t.SECOND_BEDROOM},{name:"衣帽间",value:t.CLOAKROOM},{name:"青少年房",value:t.YOUNGSTER_ROOM},{name:"书房",value:t.STUDY},{name:"主卫",value:t.MASTER_BATHROOM},{name:"次卫",value:t.SECOND_BATHROOM},{name:"玄关",value:t.HALLWAY},{name:"阳台",value:t.BALCONY},{name:"储物间",value:t.STOREROOM},{name:"其他空间",value:t.OTHER_SPACE}],F=[{name:"已交房",value:N.DELIVERED_HOUSE},{name:"未交房",value:N.UNDEVELOPED_HOUSE},{name:"不确认交期",value:N.UNCERTAIN_DELIVERY}],y=[{name:"精装房",value:T.LUXURY_HOUSE},{name:"毛坯房",value:T.BARE_SHELL_HOUSE},{name:"二手房",value:T.SECOND_HAND_HOUSE},{name:"待定",value:T.UNDETERMINED}];var f;!function(e){e.QUOTATION_SOLUTION="QUOTATION_SOLUTION"}(f||(f={}));const W=[{name:"标配",value:O.stdConf},{name:"赠品",value:O.gift},{name:"礼品",value:O.present},{name:"套餐",value:O.package},{name:"正价",value:O.positive},{name:"特价",value:O.specialPrice},{name:"定价",value:O.fixPrice},{name:"退货",value:O.returnedPurchase},{name:"退款",value:O.refund},{name:"样品",value:O.sample},{name:"退库",value:O.returning_inventory},{name:"备库",value:O.backup_warehouse},{name:"秒杀品",value:O.sec_kill_product},{name:"活动产品",value:O.activity_product},{name:"库存产品",value:O.product_stock}],Y={[f.QUOTATION_SOLUTION]:[O.stdConf,O.gift,O.present,O.positive,O.specialPrice,O.fixPrice,O.returning_inventory]};function V(e){const E=Y[e]||[];return 0===E.length?W:W.filter((e=>E.includes(e.value)))}function w(e,E){return(Y[E]||[]).includes(e)}const K=[{name:"个位四舍五入",value:i.SINGLE_ROUND},{name:'个位凑"8"',value:i.SINGLE_SET_EIGHT},{name:'个位凑"9"',value:i.SINGLE_SET_NINE},{name:"个位进十",value:i.SINGLE_SET_TEN},{name:'个位替换 "4"或"7" (加 "1")',value:i.SINGLE_PLUS_ONE},{name:'十位替换 "4"或"7" (加 "1")',value:i.TEN_PLUS_ONE},{name:'个位和十位替换 "4"或"7" (加 "1")',value:i.SINGLE_TEN_PLUS_ONE}],q=[{name:"房产",value:R.ESTATE}],k={},x={},j=(e,E=0)=>{const r=e.measure,a=e.count,n=e.unitPrice,o=e.priceFlag?O[e.priceFlag]:void 0,A=Math.max(0,r||0),t=Math.max(0,a||0),N=Math.max(0,n||0);let T;switch(o){case O.gift:case O.present:case O.sample:T=0;break;case O.refund:case O.returnedPurchase:T=-1*A*t*N;break;case O.stdConf:case O.positive:case O.specialPrice:case O.fixPrice:case O.package:case O.activity_product:case O.sec_kill_product:case O.product_stock:case O.backup_warehouse:case O.returning_inventory:default:T=A*t*N}if(void 0!==E){const e=Math.max(0,Math.floor(E)),r=Math.pow(10,e);return Math.round(T*r)/r}return T},Q=(e,E=0)=>{if(e.children&&e.children.length>0){let r=0;return e.children.forEach((e=>{r+=Q(e,E)})),r}const r=e.priceFlag?O[e.priceFlag]:void 0;if(r===O.stdConf||r===O.gift)return 0;const a=j(e,E);let n=a*Math.max(0,e.productCoefficient||1)*(Math.max(0,e.itemDiscount||100)/100);if(a<0&&(n=-Math.abs(n)),void 0!==E){const e=Math.max(0,Math.floor(E)),r=Math.pow(10,e);return Math.round(n*r)/r}return n};function J(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const E=16*Math.random()|0;return("x"===e?E:3&E|8).toString(16)}))}function $(e=32){const E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";let r="";for(let a=0;a<e;a++){r+=E[Math.floor(64*Math.random())]}return r}function X(e){if(null==e||""===e)return"0";const E=parseFloat(e);return isNaN(E)?"0":new Intl.NumberFormat("en-US").format(E)}function Z(e,E,r="value",a=!1){if(!Array.isArray(E))return;let n=!1,o="value";return"boolean"==typeof a?(n=a,o=r):"string"==typeof a&&(o=a,n="boolean"==typeof r&&r),E.find((E=>!(!E||"object"!=typeof E)&&(o in E&&(n?E[o]===e:E[o]==e))))}function z(e){var E;if("string"!=typeof e)return"";const r=e.split(".");return r.length>1&&(null===(E=r.pop())||void 0===E?void 0:E.toLowerCase())||""}function ee(e){if(!e)return null;const E=e.replace(/[^\d]/g,"");return/^1[3-9]\d{9}$/.test(E)?`${E.slice(0,3)} ${E.slice(3,7)} ${E.slice(7)}`:null}const Ee={wholeHouse:{name:"全屋",order:0},drawing:{name:"客厅",order:1},dining:{name:"餐厅",order:2},masterBedroom:{name:"卧室",order:3},cloakRoom:{name:"衣帽间",order:4},teenagerBedroom:{name:"青少年房",order:5},studyBedroom:{name:"书房",order:6},entrance:{name:"玄关",order:7},balcony:{name:"阳台",icon:"garden",order:8},storageRoom:{name:"储物间",order:9},otherStorageRoom:{name:"其他空间",order:10},publicAreas:{name:"公共区域",order:11},kitchen:{name:"厨房",order:12},mainBathroom:{name:"卫生间",order:13}};function re(){return Object.values(Ee).sort(((e,E)=>e.order-E.order))}function ae(e){return Ee[e]||null}const ne={FLOOR_CABINET:{name:"地柜",order:1},WALL_CABINET:{name:"吊柜",order:2},CYLINDER_CABINET:{name:"筒柜",order:3},HALF_HEIGHT_CABINET:{name:"半高柜",order:4},SLIDE_DOOR_CABINET:{name:"移门柜",order:5},STORAGE_CABINET:{name:"收纳柜",order:6},DISPLAY_CABINET:{name:"展示柜",order:7},TV_CABINET:{name:"电视柜",order:17},WINE_CABINET:{name:"酒柜",order:18},SIDE_CABINET:{name:"边柜",order:30},CONSOLE_CABINET:{name:"玄关柜",order:31},MESA:{name:"台面",order:32},HALL_CABINET:{name:"厅柜",order:35},BOOKCASE:{name:"书柜",order:36},WARDROBE:{name:"衣柜",order:37},BAR_COUNTER:{name:"吧台",order:39},WATER_BASIN_CABINET:{name:"水盆柜",order:61},CABINET_STYLE_WARDROBE:{name:"柜式衣柜",order:69},WALL_MOUNTED_WARDROBE:{name:"挂墙衣柜",order:70},COLUMN_WARDROBE:{name:"立柱衣柜",order:71},BED_CABINET:{name:"床柜",order:73},ELEVATED_CABINET:{name:"加高柜",order:74},WINE_GRILLE_HOLDER:{name:"酒杯架",order:78},OPEN_LATTICE:{name:"开放格",order:109},BEDSIDE:{name:"床头柜",order:111},DRAWER_CABINET:{name:"抽屉柜",order:112},DECORATIVE_CABINET:{name:"装饰柜",order:113},CYLINDER_CABINET_HIGH_LATTICE:{name:"筒柜加高格",order:117},BATHROOM_CABINET:{name:"浴室柜",order:128},MIRROR_CABINET:{name:"镜柜",order:136},SHOE_CABINET:{name:"鞋柜",order:162},TABLEWARE:{name:"餐边柜",order:216},BALCONY_CABINET:{name:"阳台柜",order:257},SHOE_HAT_CABINET:{name:"鞋帽柜",order:258},SPLIT_HALL_CABINET:{name:"分体式厅柜",order:350},DRAWER:{name:"抽屉",order:8},PULL_BASKET:{name:"拉篮",order:9},WATER_BASIN:{name:"水盆",order:33},FAUCET:{name:"龙头",order:38},SLIDE_DOOR_HARDWARE:{name:"移门五金",order:91},BRACE:{name:"支撑",order:119},DAMPER:{name:"阻尼器",order:121},SLIDE_RAIL:{name:"滑轨",order:81},SWITCH:{name:"开关",order:84},LIGHT_BELT:{name:"灯带",order:85},FLOODLIGHT:{name:"射灯",order:86},HANGER_ROD:{name:"挂衣杆",order:87},WATERPROOF_PARTS:{name:"防水件",order:88},HINGE:{name:"铰链",order:116},STOP:{name:"门碰",order:119},COUPLING_HEAD:{name:"连接头",order:149},COUPLE:{name:"三合一",order:151},REBOUND_DEVICE:{name:"反弹装置",order:159},DISC_EXTRACTOR:{name:"碟架",order:160},BOTTLE_OPENER:{name:"开瓶器",order:194},CAN_OPENER:{name:"开罐器",order:209},COOKER:{name:"锅架",order:211},OTHER_HARDWARE:{name:"其他五金",order:99},SMOKE_MACHINE:{name:"油烟机",order:256},GAS_STOVE:{name:"燃气灶",order:257},RADIANT_COOKER:{name:"辐热电灶",order:258},DISINFECTION_CABINET:{name:"消毒柜",order:259},ELECTRIC_OVEN:{name:"电烤箱",order:260},ELECTRIC_STEAMER:{name:"电蒸箱",order:261},DISHWASHER:{name:"洗碗机",order:262},MICROWAVE_OVEN:{name:"微波炉",order:263},SLAG_CRUSHER:{name:"渣粉碎机",order:264},WATER_PURIFIER:{name:"净水器",order:265},LAMPS_AND_LANTERNS:{name:"灯具",order:266},TRANSFORMER:{name:"变压器",order:267},AGITATOR:{name:"搅拌器",order:268},HEATER:{name:"热水器",order:269},WASHING_MACHINE:{name:"洗衣机",order:270},DRYER:{name:"烘干机",order:271},SMART_TRASH_CAN:{name:"智能垃圾桶",order:272},STERILIZER:{name:"消毒器",order:273},PURIFIER:{name:"净化器",order:274},INTELLIGENT_PLUG_IN:{name:"智能插座",order:275},PROXYELE:{name:"电源模块",order:276},ADDTIONAL:{name:"其他电器",order:277},DOOR_LEAF:{name:"门扇",order:131},DOOR_JAMB:{name:"门套",order:132},DOOR_LOCK:{name:"门锁",order:165},DOOR_HEADER:{name:"门楣",order:166},DOOR_STOPPER:{name:"门吸",order:168},PASS:{name:"垭口",order:169},WALLBOARD:{name:"墙板",order:167},SOFA:{name:"沙发",order:278},TEA_TABLE:{name:"沙发",order:278},CORNER_TABLE:{name:"沙发",order:278},TABLE:{name:"沙发",order:278},BED:{name:"沙发",order:278},DESK:{name:"沙发",order:278},CHAIR:{name:"沙发",order:278},LOUNGE_CHAIR:{name:"沙发",order:278}};function oe(e){return ne[e]||null}function Ae(){return Object.entries(ne).map((([e,E])=>({code:e,name:E.name})))}const te={CABINET_TYPE:{name:"定制柜",order:0,mainCategory:[],productCategories:["HALL_CABINET","CONSOLE_CABINET","WINE_CABINET","SHOE_CABINET","WALL_CABINET","FLOOR_CABINET","STORAGE_CABINET","TV_CABINET","WARDROBE","BOOKCASE","MIRROR_CABINET","BATHROOM_CABINET","CYLINDER_CABINET","SIDE_CABINET","HALF_HEIGHT_CABINET","SLIDE_DOOR_CABINET","DISPLAY_CABINET","WATER_BASIN_CABINET","COLUMN_WARDROBE","BED_CABINET","ELEVATED_CABINET","DECORATIVE_CABINET","DRAWER_CABINET","BEDSIDE","TABLEWARE","SPLIT_HALL_CABINET","BALCONY_CABINET","SHOE_HAT_CABINET"]},MESA:{name:"台面",order:1,mainCategory:["MESA"],productCategories:[]},INNER_DOOR:{name:"内门",order:2,mainCategory:["INNER_DOOR"],productCategories:["DOOR_LEAF","DOOR_JAMB"]},PASS:{name:"垭口",order:3,mainCategory:["PASS"],productCategories:[]},WALLBOARD:{name:"墙板",order:4,mainCategory:["WALLBOARD"],productCategories:["WALLBOARD"]},FUNCTIONAL_HARDWARE:{name:"功能五金",order:5,mainCategory:["FUNCTIONAL_HARDWARE","INNER_DOOR"],productCategories:["DRAWER","PULL_BASKET","WATER_BASIN","FAUCET","INTELLIGENCE_HARDWARE","OTHER_HARDWARE","HARDWARE_ACCESSORIES","SLIDE_DOOR_HARDWARE","COUPLING_HEAD","BRACE","HANDLES","DAMPER","SLIDE_RAIL","SWITCH","LIGHT_BELT","FLOODLIGHT","HANGER_ROD","WATERPROOF_PARTS","HINGE","STOP","COUPLE","REBOUND_DEVICE","DISC_EXTRACTOR","BOTTLE_OPENER","CAN_OPENER","COOKER","DOOR_STOPPER","DOOR_LOCK","DOOR_HEADER"]},APPLIANCE:{name:"配套电器",order:6,mainCategory:["INTELLIGENCE_ELECTRICAL"],productCategories:["SMOKE_MACHINE","GAS_STOVE","RADIANT_COOKER","DISINFECTION_CABINET","ELECTRIC_OVEN","ELECTRIC_STEAMER","DISHWASHER","MICROWAVE_OVEN","SLAG_CRUSHER","INTELLIGENCE_ELECTRICAL_APPARATUS","WATER_PURIFIER","LAMPS_AND_LANTERNS","TRANSFORMER","STOVE","AGITATOR","HEATER","WASHING_MACHINE","DRYER","SMART_TRASH_CAN","STERILIZER","PURIFIER","INTELLIGENT_PLUG_IN","ADDTIONAL","PROXYELE"]},SOFA:{name:"沙发",order:7,mainCategory:["SOFA"],productCategories:[]},TEA_TABLE:{name:"茶几",order:7,mainCategory:["TEA_TABLE"],productCategories:[]},CORNER_TABLE:{name:"角几",order:7,mainCategory:["CORNER_TABLE"],productCategories:[]},SIDE_CABINET:{name:"边柜",order:7,mainCategory:["SIDE_CABINET"],productCategories:[]},TABLE:{name:"餐桌",order:7,mainCategory:["TABLE"],productCategories:[]},BED:{name:"床",order:7,mainCategory:["BED"],productCategories:[]},BEDSIDE:{name:"床头柜",order:7,mainCategory:["BEDSIDE"],productCategories:[]},DESK:{name:"书桌",order:7,mainCategory:["DESK"],productCategories:[]},CHAIR:{name:"椅子",order:7,mainCategory:["CHAIR"],productCategories:[]},LOUNGE_CHAIR:{name:"休闲椅",order:7,mainCategory:["LOUNGE_CHAIR"],productCategories:[]},TV_CABINET:{name:"电视柜",order:7,mainCategory:["TV_CABINET"],productCategories:[]},CONSOLE_CABINET:{name:"玄关柜",order:7,mainCategory:["CONSOLE_CABINET"],productCategories:[]},DECORATIVE_CABINET:{name:"装饰柜",order:7,mainCategory:["DECORATIVE_CABINET"],productCategories:[]}},Ne={TOTAL_CUPBOARD:{...te,CABINET_TYPE:{name:"定制柜",order:0,mainCategory:[],productCategories:["FLOOR_CABINET","MESA","WALL_CABINET","CYLINDER_CABINET","SLIDE_DOOR_CABINET","HALF_HEIGHT_CABINET","BAR_COUNTER"]}}},Te=te;function Oe(e){const E=e&&Ne[e]?Ne[e]:te;return Object.values(E).sort(((e,E)=>e.order-E.order))}function ie(e,E){return E&&Ne[E]&&Ne[E][e]?Ne[E][e]:te[e]||null}function Re(e,E){const r=ie(e,E);return r&&r.productCategories?r.productCategories.map((e=>{const E=ne[e];return{categoryName:E?E.name:e,categoryCode:e}})):[]}function Ie(e,E){if(!e)return null;const r=E&&Ne[E]?Ne[E]:te;for(const[E,a]of Object.entries(r)){if(a.productCategories&&Array.isArray(a.productCategories)&&a.productCategories.some((E=>E.toUpperCase()===e.toUpperCase())))return E;if(a.mainCategory&&Array.isArray(a.mainCategory)&&a.mainCategory.some((E=>E.toUpperCase()===e.toUpperCase())))return E}return null}const _e={CUSTOM_FURNITURE:{name:"定制家具",icon:"CUSTOM_FURNITURE",order:0,matchUnit:["平米"],roomGroups:[{room:Ee.wholeHouse,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.drawing,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.dining,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.masterBedroom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.cloakRoom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.teenagerBedroom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.studyBedroom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.entrance,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.balcony,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.storageRoom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.otherStorageRoom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.publicAreas,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.kitchen,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]},{room:Ee.mainBathroom,groups:[te.CABINET_TYPE,te.FUNCTIONAL_HARDWARE,te.APPLIANCE]}]},ALL_SUBJECT:{name:"全品项",icon:"ALL_SUBJECT",order:1,roomGroups:[]},TOTAL_CUPBOARD:{name:"整体橱柜",icon:"TOTAL_CUPBOARD",order:1,matchUnit:["延米"],roomGroups:[{room:Ee.kitchen,groups:[Ne.TOTAL_CUPBOARD.CABINET_TYPE,Ne.TOTAL_CUPBOARD.FUNCTIONAL_HARDWARE,Ne.TOTAL_CUPBOARD.APPLIANCE]}]},INNER_DOOR_WALLBOARD:{name:"内门墙板",icon:"INNER_DOOR_WALLBOARD",order:3,roomGroups:[{room:Ee.wholeHouse,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.drawing,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.dining,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.masterBedroom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.cloakRoom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.teenagerBedroom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.studyBedroom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.entrance,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.balcony,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.storageRoom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.otherStorageRoom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.publicAreas,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.kitchen,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]},{room:Ee.mainBathroom,groups:[te.INNER_DOOR,te.PASS,te.WALLBOARD,te.FUNCTIONAL_HARDWARE]}]},SOFT_FURNITURE:{name:"软成品",icon:"SOFT_FURNITURE",order:4,roomGroups:[{room:Ee.wholeHouse,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]},{room:Ee.drawing,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]},{room:Ee.masterBedroom,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]},{room:Ee.teenagerBedroom,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]},{room:Ee.studyBedroom,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]},{room:Ee.dining,groups:[te.SOFA,te.TEA_TABLE,te.CORNER_TABLE,te.SIDE_CABINET,te.TABLE,te.BED,te.BEDSIDE,te.DESK,te.CHAIR,te.LOUNGE_CHAIR,te.TV_CABINET,te.CONSOLE_CABINET,te.DECORATIVE_CABINET]}]},HOME_DECORATION_CONSTRUCTION:{name:"家装施工",icon:"HOME_DECORATION_CONSTRUCTION",order:5,roomGroups:[{room:Ee.wholeHouse,groups:[]},{room:Ee.drawing,groups:[]},{room:Ee.dining,groups:[]},{room:Ee.masterBedroom,groups:[]},{room:Ee.cloakRoom,groups:[]},{room:Ee.teenagerBedroom,groups:[]},{room:Ee.studyBedroom,groups:[]},{room:Ee.entrance,groups:[]},{room:Ee.balcony,groups:[]},{room:Ee.storageRoom,groups:[]},{room:Ee.otherStorageRoom,groups:[]},{room:Ee.publicAreas,groups:[]},{room:Ee.kitchen,groups:[]},{room:Ee.mainBathroom,groups:[]}]}};function ue(e){const E=_e[e];return E?E.roomGroups.map((E=>{const r=E.room,a=Object.keys(Ee).find((e=>Ee[e]===r)),n=E.groups.map((E=>{let r=Object.keys(te).find((e=>te[e]===E));!r&&Ne[e]&&(r=Object.keys(Ne[e]).find((r=>Ne[e][r]===E)));let a=[];if(E&&E.productCategories)a=E.productCategories.map((e=>{const E=ne[e];return{categoryName:E?E.name:e,categoryCode:e}}));else if(r){a=(Re(r,e)||[]).map((e=>{const E=ne[e.categoryCode];return{categoryName:E?E.name:e.categoryCode,categoryCode:e.categoryCode}}))}return{groupName:E.name,groupCode:r||"",productCategories:a}}));return{roomName:r.name,roomCode:a||"",groups:n}})):[]}function le(e,E){const r=_e[e];if(!r)return[];const a=r.roomGroups.find((e=>e.room===Ee[E]));return a?a.groups.map((E=>{const r=Object.keys(te).find((r=>te[r]===E||!(!Ne[e]||Ne[e][r]!==E)));if(!r)return{groupName:E.name,groupCode:"",productCategories:[],classifyType:e};const a=(Re(r,e)||[]).map((e=>{const E=ne[e.categoryCode];return{categoryName:E?E.name:e.categoryCode,categoryCode:e.categoryCode}}));return{groupName:E.name,groupCode:r,productCategories:a,classifyType:e}})):[]}function se(e){if(!e)return null;const E=_e[e];return E?{code:e,name:E.name,icon:E.icon,order:E.order,matchUnit:E.matchUnit}:null}function Ce(e=[]){const E=Object.keys(_e).filter((E=>"ALL_SUBJECT"!==E&&!e.includes(E)));let r=[];E.forEach((e=>{const E=ue(e);r=[...r,...E]}));const a={};return r.forEach((e=>{if(a[e.roomCode]){const E=a[e.roomCode].groups.map((e=>e.groupCode));e.groups.forEach((r=>{E.includes(r.groupCode)||(a[e.roomCode].groups.push(r),E.push(r.groupCode))}))}else a[e.roomCode]={...e,groups:[...e.groups]}})),Object.values(a)}const me=class{static ProductUnitMeasureEnum={PC:{name:"PC",label:"件",enName:"Place",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},EA:{name:"EA",label:"个",enName:"Each",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SET:{name:"SET",label:"套",enName:"Set",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BAN:{name:"BAN",label:"把",enName:"Ban",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SAG:{name:"SAG",label:"袋",enName:"Bag",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},VOL:{name:"VOL",label:"本",enName:"Volume",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BOX:{name:"BOX",label:"箱",enName:"Boxful",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAIL:{name:"PAIL",label:"桶",enName:"Pail",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},CAN:{name:"CAN",label:"罐",enName:"Can",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},TAI:{name:"TAI",label:"台",enName:"Tai",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},CAR:{name:"CAR",label:"盒",enName:"Carton",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAK:{name:"PAK",label:"包",enName:"Package",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},STP:{name:"STP",label:"条",enName:"Strip",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZHI:{name:"ZHI",label:"只",enName:"Zhi",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZII:{name:"ZII",label:"支",enName:"Zii",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SLC:{name:"SLC",label:"片",enName:"Slice",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BLK:{name:"BLK",label:"块",enName:"Block",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZHG:{name:"ZHG",label:"张",enName:"Zhang",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAL:{name:"PAL",label:"货盘",enName:"Pallet",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},GEN:{name:"GEN",label:"根",enName:"Gen",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},FAN:{name:"FAN",label:"扇",enName:"Fan",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},REEL:{name:"REEL",label:"卷",enName:"Reel",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAIR:{name:"PAIR",label:"副",enName:"Pair",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},GROUP:{name:"GROUP",label:"组",enName:"Group",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},STEP:{name:"STEP",label:"步",enName:"Step",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},M:{name:"M",label:"米",enName:"Metre",dimension:1,scale:1e3,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/1e3}})},LM:{name:"LM",label:"延米",enName:"LinearMeter",dimension:1,scale:1e3,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/1e3}})},H2W1:{name:"H2W1",label:"门套延米",enName:"Tow",dimension:1,scale:1e3,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:r}=e;return(2*r+E)/1e3}})},MM:{name:"MM",label:"毫米",enName:"MilliMetre",dimension:1,scale:10,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E}})},INC:{name:"INC",label:"英寸",enName:"Inch",dimension:1,scale:304,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/25.4}})},M2:{name:"M2",label:"平米",enName:"SquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:r}=e;return E*r/1e6}})},PM2:{name:"PM2",label:"投影平米",enName:"ProjectionSquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:r}=e;return E*r/1e6}})},FM2:{name:"FM2",label:"立面平米",enName:"FacadeSquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:r}=e;return E*r/1e6}})},M3:{name:"M3",label:"立方米",enName:"CubicMetre",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:r,depth:a}=e;return E*r*a/1e9}})},L:{name:"L",label:"公升",enName:"Liter",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:r,depth:a}=e;return E*r*a/1e6}})},ML:{name:"ML",label:"毫升",enName:"MilliLiter",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:r,depth:a}=e;return E*r*a/1e3}})},KG:{name:"KG",label:"千克",enName:"Kilogram",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},TON:{name:"TON",label:"吨",enName:"Ton",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},WORKLOAD:{name:"WORKLOAD",label:"工作量",enName:"workload",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},getByName:function(e){if(!e)return null;for(const E in this)if(this[E]&&this[E].name===e)return this[E];return null}};static ProductAttrQuotaOperatorTypeEnum={NORMAL:"NORMAL",ADD_MULTIPLE:"ADD_MULTIPLE",MULTIPLE_ADD:"MULTIPLE_ADD"};static findItemUnitMeasure(e){const{width:E,height:r,depth:a}=this.calculateSizeByConfig(e);e.width=E,e.height=r,e.depth=a;const n=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e.measureUnit));if(!n)return console.warn(`未找到计量单位 ${e.measureUnit} 的处理方法`),1;const o=this.ProductUnitMeasureEnum[n];try{if(!e.calculationMethod)return this.calculateByUnitDefinition(o,E,r,a,e.customLength);switch(e.calculationMethod){case"WIDTH_HEIGHT":return E*r/(o.scale||1e6);case"HEIGHT_DEPTH":return r*a/(o.scale||1e6);case"WIDTH_DEPTH":return E*a/(o.scale||1e6);case"PERIMETER":return 2*(E+a)/1e3;case"WIDTH":return E/(1===o.dimension?1e3:1);case"HEIGHT":return r/(1===o.dimension?1e3:1);case"DEPTH":return a/(1===o.dimension?1e3:1);case"CUSTOM_LENGTH":return(e.customLength||E)/1e3;default:return this.calculateByUnitDefinition(o,E,r,a,e.customLength)}}catch(e){return console.error("计算过程中出错:",e),1}}static calculateByUnitDefinition(e,E,r,a,n){return e.getCount().apply({width:E,height:r,depth:a,customLength:n})}static getMeasureUnitInfo(e){const E=Object.keys(this.ProductUnitMeasureEnum).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!E)return null;const r=this.ProductUnitMeasureEnum[E];let a=[];2===r.dimension?(a.push({key:"WIDTH_HEIGHT",label:"宽度×高度",description:`${r.label}宽×高计算方式`,requiredDimensions:["width","height"]}),a.push({key:"WIDTH_DEPTH",label:"宽度×深度",description:`${r.label}宽×深计算方式`,requiredDimensions:["width","depth"]}),a.push({key:"HEIGHT_DEPTH",label:"高度×深度",description:`${r.label}高×深计算方式`,requiredDimensions:["height","depth"]})):1===r.dimension&&(a.push({key:"WIDTH",label:"宽度",description:`${r.label}宽度计算方式`,requiredDimensions:["width"]}),a.push({key:"HEIGHT",label:"高度",description:`${r.label}高度计算方式`,requiredDimensions:["height"]}),a.push({key:"DEPTH",label:"深度",description:`${r.label}深度计算方式`,requiredDimensions:["depth"]}),a.push({key:"PERIMETER",label:"周长",description:`${r.label}周长计算方式`,requiredDimensions:["width","depth"]})),0===a.length&&a.push({key:"DEFAULT",label:"标准计算",description:`标准${r.label}计算方式`,requiredDimensions:r.requiredDimensions});let n="DEFAULT";return 2===r.dimension?n="WIDTH_HEIGHT":1===r.dimension&&(n="WIDTH"),{name:r.name,label:r.label,enName:r.enName,dimension:r.dimension,defaultMethod:n,methods:a,requiredDimensions:r.requiredDimensions}}static getAllMeasureUnits(){return Object.entries(this.ProductUnitMeasureEnum).filter((([e])=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).map((([e,E])=>{const r=this.getMeasureUnitInfo(E.label);return{name:E.name,label:E.label,enName:E.enName,dimension:E.dimension,defaultMethod:r?.defaultMethod||"DEFAULT",methods:r?.methods||[{key:"DEFAULT",label:"标准计算",description:`标准${E.label}计算方式`,requiredDimensions:E.requiredDimensions}],requiredDimensions:E.requiredDimensions}}))}static calculateSizeByConfig(e){const E={width:e.width||0,height:e.height||0,depth:e.depth||0},r=this.getQuotaMapByDto(e);return r.WIDTH&&(E.width=this.calculateValue(E.width,r.WIDTH)),r.HEIGHT&&(E.height=this.calculateValue(E.height,r.HEIGHT)),r.DEPTH&&(E.depth=this.calculateValue(E.depth,r.DEPTH)),E}static getQuotaMapByDto(e){return{WIDTH:{operatorType:"NORMAL",addValue:0,multipleValue:1},HEIGHT:{operatorType:"NORMAL",addValue:0,multipleValue:1},DEPTH:{operatorType:"NORMAL",addValue:0,multipleValue:1}}}static calculateValue(e,E){const{operatorType:r,addValue:a,multipleValue:n}=E;let o=e;const A=parseFloat(a||0),t=parseFloat(n||1);switch(r){case this.ProductAttrQuotaOperatorTypeEnum.ADD_MULTIPLE:o=(o+A)*t;break;case this.ProductAttrQuotaOperatorTypeEnum.MULTIPLE_ADD:o=o*t+A;case this.ProductAttrQuotaOperatorTypeEnum.NORMAL:}return o}static isDimensionRequired(e,E,r){if(!e||!E)return!1;const a=E.toLowerCase();if(!["width","height","depth"].includes(a))return!1;const n=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!n)return!1;const o=this.ProductUnitMeasureEnum[n];if(r)switch(r){case"WIDTH_HEIGHT":return"width"===a||"height"===a;case"WIDTH_DEPTH":case"PERIMETER":return"width"===a||"depth"===a;case"HEIGHT_DEPTH":return"height"===a||"depth"===a;case"WIDTH":case"CUSTOM_LENGTH":return"width"===a;case"HEIGHT":return"height"===a;case"DEPTH":return"depth"===a;default:return o.requiredDimensions.includes(a)}return o.requiredDimensions.includes(a)}static isDimensionRelated(e){if(!e)return!1;const E=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!E)return!1;const r=this.ProductUnitMeasureEnum[E];return r.dimension>0||r.requiredDimensions.length>0}};var Le={calculateProductMeasure:function(e){try{!function(e){const{measureUnit:E,width:r,height:a,depth:n}=e,o=[];if(E?"string"!=typeof E&&o.push("计量单位必须是字符串"):o.push("缺少必要参数:计量单位"),[{name:"宽度",value:r},{name:"高度",value:a},{name:"深度",value:n}].forEach((e=>{null!==e.value&&void 0!==e.value&&""!==e.value&&isNaN(Number(e.value))&&!Array.isArray(e.value)&&o.push(`${e.name}必须是数字或数组`),Array.isArray(e.value)?e.value.some((e=>isNaN(Number(e))||Number(e)<0))&&o.push(`${e.name}数组中的值必须是大于等于0的数字`):null!==e.value&&void 0!==e.value&&""!==e.value&&Number(e.value)<0&&o.push(`${e.name}不能小于0`)})),o.length>0)throw new Error(o.join("; "))}(e);const E=me.findItemUnitMeasure({measureUnit:e.measureUnit,width:e.width||0,height:e.height||0,depth:e.depth||0,calculationMethod:e.calculationMethod,customLength:e.customLength});return E||0}catch(e){throw e}},getMeasureUnitInfo:function(e){try{return me.getMeasureUnitInfo(e)}catch(e){throw e}},getAllMeasureUnits:function(){try{return me.getAllMeasureUnits()}catch(e){throw e}},isDimensionRequired:function(e,E,r){try{return me.isDimensionRequired(e,E,r)}catch(e){throw e}},isDimensionRelated:function(e){try{return me.isDimensionRelated(e)}catch(e){throw e}},ItemUnitMeasureCalculator:me};const Se={wholeHouse:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],drawing:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],dining:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],masterBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],cloakRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],teenagerBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],studyBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],entrance:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],balcony:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],storageRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],otherStorageRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],publicAreas:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],kitchen:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],mainBathroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"]};function de(e){return Se[e]||[]}function ce(e){return de(e).map((e=>{var E;return{groupId:e,groupName:(null===(E=te[e])||void 0===E?void 0:E.name)||e}}))}function De(e,E){return de(e).includes(E)}const Ue={CABINET_TYPE:["HALL_CABINET","CONSOLE_CABINET","WARDROBE","BOOKCASE"],FUNCTIONAL_HARDWARE:["DRAWER","PULL_BASKET","HINGE","SLIDE_RAIL"],APPLIANCE:["SMOKE_MACHINE","GAS_STOVE","MICROWAVE_OVEN","DISHWASHER"]};function Me(e){return Ue[e]||[]}function pe(e){return Me(e).map((e=>{const E=ne[e];return{itemId:e,categoryName:E?E.name:e}}))}class Pe{constructor(e){this.uuid="",this.productId="",this.unitPrice=0,this.productPriceId="",this.spuName="",this.unitLabel="",this.spuId="",this.brandId="",this.brandName="",this.classifyId="",this.classifyName="",this.model="",this.outlineDemension="",this.categoryCode="",this.categoryName="",this.parentCategoryCode="",this.parentCategoryName="",this.styleId="",this.styleName="",this.roomName="",this.roomCode="",this.schemeName="方案A",this.groupName="",this.groupCode="",this.width=null,this.height=null,this.depth=null,this.originWidth=null,this.originHeight=null,this.originDepth=null,this.skuAttributes=[],this.moveDirection="",this.location="",this.measureUnit="",this.measure=1,this.priceFlag="",this.standardPrice=0,this.actualPrice=0,this.count=1,this.remark="",this.productCoefficient=1,this.itemDiscount=100,this.picture=[],this.children=[],this.components=[],e&&Object.assign(this,e)}}var Be=Le.ItemUnitMeasureCalculator,he=Le.calculateProductMeasure,ge=Le.getAllMeasureUnits,He=Le.getMeasureUnitInfo,ve=Le.isDimensionRelated,be=Le.isDimensionRequired;export{te as BASE_GROUP_TYPES,I as BUSINESS_SCOPE_ENUM,_ as BUSINESS_WORK_PHASE_ENUM,Ne as CLASSIFY_GROUP_TYPES,_e as CLASSIFY_ROOM_GROUP_MAP,r as CURRENCY_UNIT_ENUM,L as CURRENCY_UNIT_OPTIONS,p as CUSTOMER_LABEL_ENUM,c as CUSTOMER_SOURCE_ENUM,g as DICTIONARY_ATTRIBUTE_OPTIONS_MAP,B as DICTIONARY_BUSINESS_SCOPE_OPTIONS,h as DICTIONARY_BUSINESS_WORK_PHASE_OPTIONS,P as DICTIONARY_CUSTOMER_LABEL_OPTIONS,D as DICTIONARY_CUSTOMER_SOURCE_OPTIONS,d as DICTIONARY_IDENTIFY_ENUM,H as DICTIONARY_IDENTIFY_OPTIONS,M as DICTIONARY_PROCESS_STAGE_OPTIONS,Ue as GROUP_ITEM_MAPPING,Te as GROUP_TYPES,Be as ItemUnitMeasureCalculator,f as ListType,Y as PRICE_FLAG_LIST_TYPE_MAP,U as PROCESS_STAGE_ENUM,ne as PRODUCT_CATEGORIES,Pe as QuotationItem,n as RECOMMENDATION_TYPE_ENUM,Se as ROOM_GROUP_MAPPING,Ee as ROOM_TYPES,k as __constantsPlaceholder,u as __enumsPlaceholder,x as __interfacesPlaceholder,R as assign_business_type,q as assign_business_type_options,Q as calcActualPrice,j as calcStandardPrice,he as calculateProductMeasure,E as design_type,s as design_type_options,Z as findOptionByValue,ee as formatChineseMobile,X as formatNumberWithCommas,$ as generateRandomId,J as generateUUID,Ce as getAllClassifyRoomsAndGroups,ge as getAllMeasureUnits,Ae as getAllProductCategories,se as getClassifyBaseInfo,ue as getClassifyRoomsAndGroups,z as getFileExtension,ce as getGroupObjectsByRoomId,ie as getGroupTypeByKey,Ie as getGroupTypeByProductCategory,le as getGroupsByClassifyAndRoom,de as getGroupsByRoomId,pe as getItemObjectsByGroupId,Me as getItemsByGroupId,He as getMeasureUnitInfo,V as getPriceFlagOptionsByListType,Re as getProductCategoriesByGroupType,oe as getProductCategoryByKey,ae as getRoomTypeByKey,Oe as getSortedGroupTypes,re as getSortedRoomTypes,N as house_status,F as house_status_options,T as house_type,y as house_type_options,ve as isDimensionRelated,be as isDimensionRequired,De as isGroupAvailableForRoom,w as isPriceFlagValidForListType,C as order_status,m as order_status_options,O as price_flag,W as price_flag_options,o as pro_series_type_enum,b as pro_series_type_options,v as recommendation_type_options,i as rounding_rule,K as rounding_rule_options,A as sales_end_app_tag,e as solution_status,l as solution_status_options,t as spatial_category,G as spatial_category_options,a as supply_mode,S as supply_mode_options};
1
+ var e,E,a,r,n,o,A,t,T,N,R,_,O,I,i,u;!function(e){e.DRAFT="DRAFT",e.ACTIVE="ACTIVE",e.LOCKED="LOCKED",e.REVOKED="REVOKED",e.PRE_SIGNED="PRE_SIGNED",e.SIGNED="SIGNED",e.SIGNED_REVOKED="SIGNED_REVOKED"}(e||(e={})),function(e){e.BUDGET="BUDGET",e.MODEL_ROOM_EX="MODEL_ROOM_EX",e.COMMUNITY_EX="COMMUNITY_EX",e.ORDER="ORDER",e.CONTRACT="CONTRACT"}(E||(E={})),function(e){e.CNY="CNY",e.USD="USD",e.EUR="EUR",e.GBP="GBP",e.HKD="HKD"}(a||(a={})),function(e){e.own_production="own_production",e.brand_agency="brand_agency",e.wholesale_procur="wholesale_procur",e.cross_border_pro="cross_border_pro",e.oem_contract="oem_contract"}(r||(r={})),function(e){e.CUSTOMER_RECOMMENDATION="CUSTOMER_RECOMMENDATION",e.DESIGN_ALLIANCE="DESIGN_ALLIANCE",e.DIFFERENT_DESIGN_ALLIANCE="DIFFERENT_DESIGN_ALLIANCE",e.EMPLOYEE_RECOMMENDATION="EMPLOYEE_RECOMMENDATION",e.WECHAT_GROUPS="WECHAT_GROUPS"}(n||(n={})),function(e){e.SERIES="SERIES",e.STYLE="STYLE"}(o||(o={})),function(e){e.STANDARD_RETAIL="STANDARD_RETAIL",e.ACTUAL_RETAIL="ACTUAL_RETAIL"}(A||(A={})),function(e){e.KITCHEN="KITCHEN",e.LIVING_ROOM="LIVING_ROOM",e.RESTAURANT="RESTAURANT",e.MASTER_BEDROOM="MASTER_BEDROOM",e.SECOND_BEDROOM="SECOND_BEDROOM",e.CLOAKROOM="CLOAKROOM",e.YOUNGSTER_ROOM="YOUNGSTER_ROOM",e.STUDY="STUDY",e.MASTER_BATHROOM="MASTER_BATHROOM",e.SECOND_BATHROOM="SECOND_BATHROOM",e.HALLWAY="HALLWAY",e.BALCONY="BALCONY",e.STOREROOM="STOREROOM",e.OTHER_SPACE="OTHER_SPACE"}(t||(t={})),function(e){e.DELIVERED_HOUSE="DELIVERED_HOUSE",e.UNDEVELOPED_HOUSE="UNDEVELOPED_HOUSE",e.UNCERTAIN_DELIVERY="UNCERTAIN_DELIVERY"}(T||(T={})),function(e){e.LUXURY_HOUSE="LUXURY_HOUSE",e.BARE_SHELL_HOUSE="BARE_SHELL_HOUSE",e.SECOND_HAND_HOUSE="SECOND_HAND_HOUSE",e.UNDETERMINED="UNDETERMINED"}(N||(N={})),function(e){e.stdConf="stdConf",e.gift="gift",e.present="present",e.package="package",e.positive="positive",e.specialPrice="specialPrice",e.fixPrice="fixPrice",e.returnedPurchase="returnedPurchase",e.refund="refund",e.sample="sample",e.returning_inventory="returning_inventory",e.backup_warehouse="backup_warehouse",e.sec_kill_product="sec_kill_product",e.activity_product="activity_product",e.product_stock="product_stock"}(R||(R={})),function(e){e.SINGLE_ROUND="SINGLE_ROUND",e.SINGLE_SET_EIGHT="SINGLE_SET_EIGHT",e.SINGLE_SET_NINE="SINGLE_SET_NINE",e.SINGLE_SET_TEN="SINGLE_SET_TEN",e.SINGLE_PLUS_ONE="SINGLE_PLUS_ONE",e.TEN_PLUS_ONE="TEN_PLUS_ONE",e.SINGLE_TEN_PLUS_ONE="SINGLE_TEN_PLUS_ONE"}(_||(_={})),function(e){e.ESTATE="ESTATE"}(O||(O={})),function(e){e.SELF_OPERATED_PRODUCT="SELF_OPERATED_PRODUCT",e.AGENCY_PURCHASE_SALES="AGENCY_PURCHASE_SALES",e.INTERIOR_DESIGN="INTERIOR_DESIGN",e.ENGINEERING_CONSTRUCTION="ENGINEERING_CONSTRUCTION"}(I||(I={})),function(e){e.MARKETING="MARKETING",e.SALES="SALES",e.DESIGN="DESIGN",e.INSTALLATION="INSTALLATION",e.AFTER_SALES="AFTER_SALES"}(i||(i={})),function(e){e.VOIDED="VOIDED",e.DRAFT="DRAFT",e.SIGN_STAY_FOR_ME="SIGN_STAY_FOR_ME",e.SIGN_STAY_CUSTOMER="SIGN_STAY_CUSTOMER",e.STAY_REPORTED="STAY_REPORTED",e.REJECTED="REJECTED",e.UNDER_REVIEW="UNDER_REVIEW",e.STAY_AUDIT="STAY_AUDIT",e.COMPLETED="COMPLETED",e.STAY_SCALE="STAY_SCALE",e.INCOMPLETE_ORDER_SPLITTING="INCOMPLETE_ORDER_SPLITTING"}(u||(u={}));const l={},C=[{name:"草稿",value:e.DRAFT},{name:"可用",value:e.ACTIVE},{name:"锁定",value:e.LOCKED},{name:"已作废",value:e.REVOKED},{name:"预签",value:e.PRE_SIGNED},{name:"已签",value:e.SIGNED},{name:"已签作废",value:e.SIGNED_REVOKED}],s=[{name:"预算方案",value:E.BUDGET},{name:"样板间专属方案",value:E.MODEL_ROOM_EX},{name:"小区专属方案",value:E.COMMUNITY_EX},{name:"订单方案",value:E.ORDER},{name:"合同清单",value:E.CONTRACT}];var m;!function(e){e.NULLIFIED="NULLIFIED",e.LOCKED="LOCKED",e.OPEN="OPEN"}(m||(m={}));const L=[{name:"作废",value:m.NULLIFIED},{name:"锁定",value:m.LOCKED},{name:"开放",value:m.OPEN}],S=[{name:"人民币",value:a.CNY},{name:"美元",value:a.USD},{name:"欧元",value:a.EUR},{name:"英镑",value:a.GBP},{name:"港币",value:a.HKD}],D=[{name:"自制生产",value:r.own_production},{name:"品牌代理",value:r.brand_agency},{name:"批发采购",value:r.wholesale_procur},{name:"跨境采购",value:r.cross_border_pro},{name:"OEM代工",value:r.oem_contract}];var d,c;!function(e){e.CUSTOMER_SOURCE="CUSTOMER_SOURCE",e.PROCESS_STAGE="PROCESS_STAGE",e.POSITION="POSITION",e.CUSTOMER_LABEL="CUSTOMER_LABEL",e.BEDROOM="BEDROOM",e.DELIVERY_TIME_OPTION="DELIVERY_TIME_OPTION",e.HOUSE_INFORMATION="HOUSE_INFORMATION",e.HOUSE_SQUARE_METERS="HOUSE_SQUARE_METERS",e.BUSINESS_SCOPE="BUSINESS_SCOPE",e.BUSINESS_WORK_PHASE="BUSINESS_WORK_PHASE",e.PROJECT_CLASSIFICATION="PROJECT_CLASSIFICATION",e.PROJECT_TYPE="PROJECT_TYPE",e.PROJECT_SOLUTION="PROJECT_SOLUTION"}(d||(d={})),function(e){e.OTO_TOURIST_SOURCE="OTO_TOURIST_SOURCE",e.GROUP_OTO="GROUP_OTO",e.TMALL="TMALL",e.TENCENT_PLATFORM="TENCENT_PLATFORM",e.DA_ZHONG_DIAN_PING="DA_ZHONG_DIAN_PING",e.STORE_SALES="STORE_SALES",e.OFFICIAL_REGISTRATION="OFFICIAL_REGISTRATION",e.CITY_OTO="CITY_OTO",e.COMMUNITY_MARKETING_ACCOUNTS="COMMUNITY_MARKETING_ACCOUNTS",e.MERCHANT_WE_MEDIA_REGISTRATION="MERCHANT_WE_MEDIA_REGISTRATION",e.PRIVATE_DOMAIN="PRIVATE_DOMAIN",e.CUSTOMER_RECOMMENDATION="CUSTOMER_RECOMMENDATION",e.ON_GOING_CUSTOMER_REFERRAL="ON_GOING_CUSTOMER_REFERRAL",e.OLD_CUSTOMER_REFERRAL="OLD_CUSTOMER_REFERRAL",e.RECOMMENDED_BY_SEED_CUSTOMER="RECOMMENDED_BY_SEED_CUSTOMER",e.MALL_TRAFFIC_FLOW="MALL_TRAFFIC_FLOW",e.NATURAL_TRAFFIC="NATURAL_TRAFFIC",e.EVENT_TRAFFIC="EVENT_TRAFFIC",e.ADVERTISING_TRAFFIC="ADVERTISING_TRAFFIC",e.SOCIAL_COMMUNITY_CUSTOMER="SOCIAL_COMMUNITY_CUSTOMER",e.SELF_BUILT_COMMUNITY="SELF_BUILT_COMMUNITY",e.SELF_BUILT_EVENT_COMMUNITY="SELF_BUILT_EVENT_COMMUNITY",e.MALL_MARKETING_COMMUNITY="MALL_MARKETING_COMMUNITY",e.ALLIANCE_COOPERATION="ALLIANCE_COOPERATION",e.INTERIOR_DESIGNER_COLLABORATION="INTERIOR_DESIGNER_COLLABORATION",e.FRACTURED_CUSTOMER_REFERRAL="FRACTURED_CUSTOMER_REFERRAL",e.HOME_IMPROVEMENT_COMPANY_COLLABORATION="HOME_IMPROVEMENT_COMPANY_COLLABORATION",e.MAIN_MATERIAL_MERCHANT_COLLABORATION="MAIN_MATERIAL_MERCHANT_COLLABORATION",e.MAIN_MATERIAL_SALES_COLLABORATION="MAIN_MATERIAL_SALES_COLLABORATION",e.NON_INDUSTRY_ALLIANCE="NON_INDUSTRY_ALLIANCE",e.DEVELOPER_COLLABORATION="DEVELOPER_COLLABORATION",e.PROPERTY_COLLABORATION="PROPERTY_COLLABORATION",e.MALL_COLLABORATION="MALL_COLLABORATION",e.BANK_COOPERATION="BANK_COOPERATION",e.EMPLOYEE_REFERRAL="EMPLOYEE_REFERRAL",e.BE_ON_THE_JOB_EMPLOYEE_REFERRAL="BE_ON_THE_JOB_EMPLOYEE_REFERRAL",e.EARLY_EMPLOYEE_REFERRAL="EARLY_EMPLOYEE_REFERRAL",e.OTHER_SOURCE="OTHER_SOURCE",e.SCAN_EMPLOYEE_QR_CODE="SCAN_EMPLOYEE_QR_CODE"}(c||(c={}));const U=[{label:"O2O客户",value:c.OTO_TOURIST_SOURCE},{label:"集团O2O",value:c.GROUP_OTO},{label:"天猫商城",value:c.TMALL},{label:"腾讯平台",value:c.TENCENT_PLATFORM},{label:"大众点评",value:c.DA_ZHONG_DIAN_PING},{label:"百度平台",value:c.STORE_SALES},{label:"官方报名",value:c.OFFICIAL_REGISTRATION},{label:"城市O2O",value:c.CITY_OTO},{label:"社群营销号获客",value:c.COMMUNITY_MARKETING_ACCOUNTS},{label:"商家自媒体报名",value:c.MERCHANT_WE_MEDIA_REGISTRATION},{label:"私域O2O",value:c.PRIVATE_DOMAIN},{label:"客户推荐",value:c.CUSTOMER_RECOMMENDATION},{label:"在途客户推荐",value:c.ON_GOING_CUSTOMER_REFERRAL},{label:"老客户推荐",value:c.OLD_CUSTOMER_REFERRAL},{label:"种子客户推荐",value:c.RECOMMENDED_BY_SEED_CUSTOMER},{label:"商场客流",value:c.MALL_TRAFFIC_FLOW},{label:"自然客流",value:c.NATURAL_TRAFFIC},{label:"活动客流",value:c.EVENT_TRAFFIC},{label:"广告导流",value:c.ADVERTISING_TRAFFIC},{label:"社群客户",value:c.SOCIAL_COMMUNITY_CUSTOMER},{label:"自建小区社群",value:c.SELF_BUILT_COMMUNITY},{label:"自建活动社群",value:c.SELF_BUILT_EVENT_COMMUNITY},{label:"商场营销社群",value:c.MALL_MARKETING_COMMUNITY},{label:"同业联盟推荐",value:c.ALLIANCE_COOPERATION},{label:"家装设计师合作",value:c.INTERIOR_DESIGNER_COLLABORATION},{label:"裂变客户推荐",value:c.FRACTURED_CUSTOMER_REFERRAL},{label:"家装公司合作",value:c.HOME_IMPROVEMENT_COMPANY_COLLABORATION},{label:"主材商家合作",value:c.MAIN_MATERIAL_MERCHANT_COLLABORATION},{label:"主材销售合作",value:c.MAIN_MATERIAL_SALES_COLLABORATION},{label:"异业联盟推荐",value:c.NON_INDUSTRY_ALLIANCE},{label:"开发商合作",value:c.DEVELOPER_COLLABORATION},{label:"物业合作",value:c.PROPERTY_COLLABORATION},{label:"商场合作",value:c.MALL_COLLABORATION},{label:"银行合作",value:c.BANK_COOPERATION},{label:"员工推荐",value:c.EMPLOYEE_REFERRAL},{label:"在职员工推荐",value:c.BE_ON_THE_JOB_EMPLOYEE_REFERRAL},{label:"早期员工推荐",value:c.EARLY_EMPLOYEE_REFERRAL},{label:"其他来源",value:c.OTHER_SOURCE},{label:"扫描员工码",value:c.SCAN_EMPLOYEE_QR_CODE}];var M;!function(e){e.INFORMATION_IN_TRANSIT="INFORMATION_IN_TRANSIT",e.CUSTOMER_SOURCE_IN_TRANSIT="CUSTOMER_SOURCE_IN_TRANSIT",e.LINK_IN_TRANSIT="LINK_IN_TRANSIT",e.MEETING_IN_TRANSIT="MEETING_IN_TRANSIT",e.INTENTION_IN_TRANSIT="INTENTION_IN_TRANSIT",e.ORDER_FORM_IN_TRANSIT="ORDER_FORM_IN_TRANSIT",e.ASSIGN_DESIGNER="ASSIGN_DESIGNER",e.MEASURE_IN_TRANSIT="MEASURE_IN_TRANSIT",e.SOLUTION_QUOTATION_IN_TRANSIT="SOLUTION_QUOTATION_IN_TRANSIT",e.CONTRACT_IN_TRANSIT="CONTRACT_IN_TRANSIT",e.COMPOUND_RULER_IN_TRANSIT="COMPOUND_RULER_IN_TRANSIT",e.PURCHASE_IN_TRANSIT="PURCHASE_IN_TRANSIT",e.PRODUCTION_IN_TRANSIT="PRODUCTION_IN_TRANSIT",e.LOGISTICS_IN_TRANSIT="LOGISTICS_IN_TRANSIT",e.STORAGE_IN_TRANSIT="STORAGE_IN_TRANSIT",e.INSTALL_IN_TRANSIT="INSTALL_IN_TRANSIT",e.DELIVER_IN_TRANSIT="DELIVER_IN_TRANSIT",e.OLD_CUSTOMER_IN_TRANSIT="OLD_CUSTOMER_IN_TRANSIT"}(M||(M={}));const P=[{label:"信息",value:M.INFORMATION_IN_TRANSIT},{label:"客源",value:M.CUSTOMER_SOURCE_IN_TRANSIT},{label:"链接",value:M.LINK_IN_TRANSIT},{label:"会见",value:M.MEETING_IN_TRANSIT},{label:"意向",value:M.INTENTION_IN_TRANSIT},{label:"订单",value:M.ORDER_FORM_IN_TRANSIT},{label:"派单",value:M.ASSIGN_DESIGNER},{label:"量房",value:M.MEASURE_IN_TRANSIT},{label:"报价",value:M.SOLUTION_QUOTATION_IN_TRANSIT},{label:"合同",value:M.CONTRACT_IN_TRANSIT},{label:"复尺",value:M.COMPOUND_RULER_IN_TRANSIT},{label:"采购",value:M.PURCHASE_IN_TRANSIT},{label:"生产",value:M.PRODUCTION_IN_TRANSIT},{label:"物流",value:M.LOGISTICS_IN_TRANSIT},{label:"仓储",value:M.STORAGE_IN_TRANSIT},{label:"安装",value:M.INSTALL_IN_TRANSIT},{label:"满意度交付",value:M.DELIVER_IN_TRANSIT},{label:"老客户",value:M.OLD_CUSTOMER_IN_TRANSIT}];var p;!function(e){e.UNGROUPED="UNGROUPED"}(p||(p={}));const B=[{label:"未分组",value:p.UNGROUPED}],h=[{label:"自营产品",value:I.SELF_OPERATED_PRODUCT},{label:"代购代销",value:I.AGENCY_PURCHASE_SALES},{label:"室内设计",value:I.INTERIOR_DESIGN},{label:"工程施工",value:I.ENGINEERING_CONSTRUCTION}],g=[{label:"营销",value:i.MARKETING},{label:"销售",value:i.SALES},{label:"设计",value:i.DESIGN},{label:"安装",value:i.INSTALLATION},{label:"售后",value:i.AFTER_SALES}],H={[d.CUSTOMER_SOURCE]:U,[d.PROCESS_STAGE]:P,[d.CUSTOMER_LABEL]:B,[d.BUSINESS_SCOPE]:h,[d.BUSINESS_WORK_PHASE]:g},G=[{label:"客户来源",value:d.CUSTOMER_SOURCE},{label:"进程阶段",value:d.PROCESS_STAGE},{label:"职业名称",value:d.POSITION},{label:"客户标签",value:d.CUSTOMER_LABEL},{label:"房屋居室",value:d.BEDROOM},{label:"交房选项",value:d.DELIVERY_TIME_OPTION},{label:"房屋户型",value:d.HOUSE_INFORMATION},{label:"房屋面积",value:d.HOUSE_SQUARE_METERS},{label:"业务范围分类",value:d.BUSINESS_SCOPE},{label:"业务工作",value:d.BUSINESS_WORK_PHASE},{label:"项目分类",value:d.PROJECT_CLASSIFICATION},{label:"项目类型",value:d.PROJECT_TYPE},{label:"项目解决",value:d.PROJECT_SOLUTION}],v=[{name:"客户推荐",value:n.CUSTOMER_RECOMMENDATION},{name:"同业联盟推荐",value:n.DESIGN_ALLIANCE},{name:"异业联盟推荐",value:n.DIFFERENT_DESIGN_ALLIANCE},{name:"员工推荐",value:n.EMPLOYEE_RECOMMENDATION},{name:"微信群",value:n.WECHAT_GROUPS}],F=[{name:"系列",value:o.SERIES},{name:"款式",value:o.STYLE}],b=[{name:"厨房",value:t.KITCHEN},{name:"客厅",value:t.LIVING_ROOM},{name:"餐厅",value:t.RESTAURANT},{name:"主卧",value:t.MASTER_BEDROOM},{name:"次卧",value:t.SECOND_BEDROOM},{name:"衣帽间",value:t.CLOAKROOM},{name:"青少年房",value:t.YOUNGSTER_ROOM},{name:"书房",value:t.STUDY},{name:"主卫",value:t.MASTER_BATHROOM},{name:"次卫",value:t.SECOND_BATHROOM},{name:"玄关",value:t.HALLWAY},{name:"阳台",value:t.BALCONY},{name:"储物间",value:t.STOREROOM},{name:"其他空间",value:t.OTHER_SPACE}],y=[{name:"已交房",value:T.DELIVERED_HOUSE},{name:"未交房",value:T.UNDEVELOPED_HOUSE},{name:"不确认交期",value:T.UNCERTAIN_DELIVERY}],f=[{name:"精装房",value:N.LUXURY_HOUSE},{name:"毛坯房",value:N.BARE_SHELL_HOUSE},{name:"二手房",value:N.SECOND_HAND_HOUSE},{name:"待定",value:N.UNDETERMINED}];var W;!function(e){e.QUOTATION_SOLUTION="QUOTATION_SOLUTION"}(W||(W={}));const Y=[{name:"标配",value:R.stdConf},{name:"赠品",value:R.gift},{name:"礼品",value:R.present},{name:"套餐",value:R.package},{name:"正价",value:R.positive},{name:"特价",value:R.specialPrice},{name:"定价",value:R.fixPrice},{name:"退货",value:R.returnedPurchase},{name:"退款",value:R.refund},{name:"样品",value:R.sample},{name:"退库",value:R.returning_inventory},{name:"备库",value:R.backup_warehouse},{name:"秒杀品",value:R.sec_kill_product},{name:"活动产品",value:R.activity_product},{name:"库存产品",value:R.product_stock}],V={[W.QUOTATION_SOLUTION]:[R.stdConf,R.gift,R.present,R.positive,R.specialPrice,R.fixPrice,R.returning_inventory]};function w(e){const E=V[e]||[];return 0===E.length?Y:Y.filter((e=>E.includes(e.value)))}function K(e,E){return(V[E]||[]).includes(e)}const q=[{name:"个位四舍五入",value:_.SINGLE_ROUND},{name:'个位凑"8"',value:_.SINGLE_SET_EIGHT},{name:'个位凑"9"',value:_.SINGLE_SET_NINE},{name:"个位进十",value:_.SINGLE_SET_TEN},{name:'个位替换 "4"或"7" (加 "1")',value:_.SINGLE_PLUS_ONE},{name:'十位替换 "4"或"7" (加 "1")',value:_.TEN_PLUS_ONE},{name:'个位和十位替换 "4"或"7" (加 "1")',value:_.SINGLE_TEN_PLUS_ONE}],k=[{name:"房产",value:O.ESTATE}],x=[{name:"已作废",value:u.VOIDED},{name:"草稿",value:u.DRAFT},{name:"待我签",value:u.SIGN_STAY_FOR_ME},{name:"待客签",value:u.SIGN_STAY_CUSTOMER},{name:"待提报",value:u.STAY_REPORTED},{name:"已驳回",value:u.REJECTED},{name:"审核中",value:u.UNDER_REVIEW},{name:"待审核",value:u.STAY_AUDIT},{name:"已完成",value:u.COMPLETED},{name:"待复尺",value:u.STAY_SCALE},{name:"分单未完",value:u.INCOMPLETE_ORDER_SPLITTING}],j={},J={},Q=(e,E=0)=>{const a=e.measure,r=e.count,n=e.unitPrice,o=e.priceFlag?R[e.priceFlag]:void 0,A=Math.max(0,a||0),t=Math.max(0,r||0),T=Math.max(0,n||0);let N;switch(o){case R.gift:case R.present:case R.sample:N=0;break;case R.refund:case R.returnedPurchase:N=-1*A*t*T;break;case R.stdConf:case R.positive:case R.specialPrice:case R.fixPrice:case R.package:case R.activity_product:case R.sec_kill_product:case R.product_stock:case R.backup_warehouse:case R.returning_inventory:default:N=A*t*T}if(void 0!==E){const e=Math.max(0,Math.floor(E)),a=Math.pow(10,e);return Math.round(N*a)/a}return N},X=(e,E=0)=>{if(e.children&&e.children.length>0){let a=0;return e.children.forEach((e=>{a+=X(e,E)})),a}const a=e.priceFlag?R[e.priceFlag]:void 0;if(a===R.stdConf||a===R.gift)return 0;const r=Q(e,E);let n=r*Math.max(0,e.productCoefficient||1)*(Math.max(0,e.itemDiscount||100)/100);if(r<0&&(n=-Math.abs(n)),void 0!==E){const e=Math.max(0,Math.floor(E)),a=Math.pow(10,e);return Math.round(n*a)/a}return n};function Z(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const E=16*Math.random()|0;return("x"===e?E:3&E|8).toString(16)}))}function $(e=32){const E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";let a="";for(let r=0;r<e;r++){a+=E[Math.floor(64*Math.random())]}return a}function z(e){if(null==e||""===e)return"0";const E=parseFloat(e);return isNaN(E)?"0":new Intl.NumberFormat("en-US").format(E)}function ee(e,E,a="value",r=!1){if(!Array.isArray(E))return;let n=!1,o="value";return"boolean"==typeof r?(n=r,o=a):"string"==typeof r&&(o=r,n="boolean"==typeof a&&a),E.find((E=>!(!E||"object"!=typeof E)&&(o in E&&(n?E[o]===e:E[o]==e))))}function Ee(e){var E;if("string"!=typeof e)return"";const a=e.split(".");return a.length>1&&(null===(E=a.pop())||void 0===E?void 0:E.toLowerCase())||""}function ae(e){if(!e)return null;const E=e.replace(/[^\d]/g,"");return/^1[3-9]\d{9}$/.test(E)?`${E.slice(0,3)} ${E.slice(3,7)} ${E.slice(7)}`:null}function re(e,E=0){const a=parseFloat(e);return isNaN(a)||"number"!=typeof E||E<0?Number((0).toFixed(E)):Number(a.toFixed(E))}const ne={wholeHouse:{name:"全屋",order:0},drawing:{name:"客厅",order:1},dining:{name:"餐厅",order:2},masterBedroom:{name:"卧室",order:3},cloakRoom:{name:"衣帽间",order:4},teenagerBedroom:{name:"青少年房",order:5},studyBedroom:{name:"书房",order:6},entrance:{name:"玄关",order:7},balcony:{name:"阳台",icon:"garden",order:8},storageRoom:{name:"储物间",order:9},otherStorageRoom:{name:"其他空间",order:10},publicAreas:{name:"公共区域",order:11},kitchen:{name:"厨房",order:12},mainBathroom:{name:"卫生间",order:13}};function oe(){return Object.values(ne).sort(((e,E)=>e.order-E.order))}function Ae(e){return ne[e]||null}const te={FLOOR_CABINET:{name:"地柜",order:1},WALL_CABINET:{name:"吊柜",order:2},CYLINDER_CABINET:{name:"筒柜",order:3},HALF_HEIGHT_CABINET:{name:"半高柜",order:4},SLIDE_DOOR_CABINET:{name:"移门柜",order:5},STORAGE_CABINET:{name:"收纳柜",order:6},DISPLAY_CABINET:{name:"展示柜",order:7},TV_CABINET:{name:"电视柜",order:17},WINE_CABINET:{name:"酒柜",order:18},SIDE_CABINET:{name:"边柜",order:30},CONSOLE_CABINET:{name:"玄关柜",order:31},MESA:{name:"台面",order:32},HALL_CABINET:{name:"厅柜",order:35},BOOKCASE:{name:"书柜",order:36},WARDROBE:{name:"衣柜",order:37},BAR_COUNTER:{name:"吧台",order:39},WATER_BASIN_CABINET:{name:"水盆柜",order:61},CABINET_STYLE_WARDROBE:{name:"柜式衣柜",order:69},WALL_MOUNTED_WARDROBE:{name:"挂墙衣柜",order:70},COLUMN_WARDROBE:{name:"立柱衣柜",order:71},BED_CABINET:{name:"床柜",order:73},ELEVATED_CABINET:{name:"加高柜",order:74},WINE_GRILLE_HOLDER:{name:"酒杯架",order:78},OPEN_LATTICE:{name:"开放格",order:109},BEDSIDE:{name:"床头柜",order:111},DRAWER_CABINET:{name:"抽屉柜",order:112},DECORATIVE_CABINET:{name:"装饰柜",order:113},CYLINDER_CABINET_HIGH_LATTICE:{name:"筒柜加高格",order:117},BATHROOM_CABINET:{name:"浴室柜",order:128},MIRROR_CABINET:{name:"镜柜",order:136},SHOE_CABINET:{name:"鞋柜",order:162},TABLEWARE:{name:"餐边柜",order:216},BALCONY_CABINET:{name:"阳台柜",order:257},SHOE_HAT_CABINET:{name:"鞋帽柜",order:258},SPLIT_HALL_CABINET:{name:"分体式厅柜",order:350},DRAWER:{name:"抽屉",order:8},PULL_BASKET:{name:"拉篮",order:9},WATER_BASIN:{name:"水盆",order:33},FAUCET:{name:"龙头",order:38},SLIDE_DOOR_HARDWARE:{name:"移门五金",order:91},BRACE:{name:"支撑",order:119},DAMPER:{name:"阻尼器",order:121},SLIDE_RAIL:{name:"滑轨",order:81},SWITCH:{name:"开关",order:84},LIGHT_BELT:{name:"灯带",order:85},FLOODLIGHT:{name:"射灯",order:86},HANGER_ROD:{name:"挂衣杆",order:87},WATERPROOF_PARTS:{name:"防水件",order:88},HINGE:{name:"铰链",order:116},STOP:{name:"门碰",order:119},COUPLING_HEAD:{name:"连接头",order:149},COUPLE:{name:"三合一",order:151},REBOUND_DEVICE:{name:"反弹装置",order:159},DISC_EXTRACTOR:{name:"碟架",order:160},BOTTLE_OPENER:{name:"开瓶器",order:194},CAN_OPENER:{name:"开罐器",order:209},COOKER:{name:"锅架",order:211},OTHER_HARDWARE:{name:"其他五金",order:99},SMOKE_MACHINE:{name:"油烟机",order:256},GAS_STOVE:{name:"燃气灶",order:257},RADIANT_COOKER:{name:"辐热电灶",order:258},DISINFECTION_CABINET:{name:"消毒柜",order:259},ELECTRIC_OVEN:{name:"电烤箱",order:260},ELECTRIC_STEAMER:{name:"电蒸箱",order:261},DISHWASHER:{name:"洗碗机",order:262},MICROWAVE_OVEN:{name:"微波炉",order:263},SLAG_CRUSHER:{name:"渣粉碎机",order:264},WATER_PURIFIER:{name:"净水器",order:265},LAMPS_AND_LANTERNS:{name:"灯具",order:266},TRANSFORMER:{name:"变压器",order:267},AGITATOR:{name:"搅拌器",order:268},HEATER:{name:"热水器",order:269},WASHING_MACHINE:{name:"洗衣机",order:270},DRYER:{name:"烘干机",order:271},SMART_TRASH_CAN:{name:"智能垃圾桶",order:272},STERILIZER:{name:"消毒器",order:273},PURIFIER:{name:"净化器",order:274},INTELLIGENT_PLUG_IN:{name:"智能插座",order:275},PROXYELE:{name:"电源模块",order:276},ADDTIONAL:{name:"其他电器",order:277},DOOR_LEAF:{name:"门扇",order:131},DOOR_JAMB:{name:"门套",order:132},DOOR_LOCK:{name:"门锁",order:165},DOOR_HEADER:{name:"门楣",order:166},DOOR_STOPPER:{name:"门吸",order:168},PASS:{name:"垭口",order:169},WALLBOARD:{name:"墙板",order:167},SOFA:{name:"沙发",order:278},TEA_TABLE:{name:"沙发",order:278},CORNER_TABLE:{name:"沙发",order:278},TABLE:{name:"沙发",order:278},BED:{name:"沙发",order:278},DESK:{name:"沙发",order:278},CHAIR:{name:"沙发",order:278},LOUNGE_CHAIR:{name:"沙发",order:278}};function Te(e){return te[e]||null}function Ne(){return Object.entries(te).map((([e,E])=>({code:e,name:E.name})))}const Re={CABINET_TYPE:{name:"定制柜",order:0,mainCategory:[],productCategories:["HALL_CABINET","CONSOLE_CABINET","WINE_CABINET","SHOE_CABINET","WALL_CABINET","FLOOR_CABINET","STORAGE_CABINET","TV_CABINET","WARDROBE","BOOKCASE","MIRROR_CABINET","BATHROOM_CABINET","CYLINDER_CABINET","SIDE_CABINET","HALF_HEIGHT_CABINET","SLIDE_DOOR_CABINET","DISPLAY_CABINET","WATER_BASIN_CABINET","COLUMN_WARDROBE","BED_CABINET","ELEVATED_CABINET","DECORATIVE_CABINET","DRAWER_CABINET","BEDSIDE","TABLEWARE","SPLIT_HALL_CABINET","BALCONY_CABINET","SHOE_HAT_CABINET"]},MESA:{name:"台面",order:1,mainCategory:["MESA"],productCategories:[]},INNER_DOOR:{name:"内门",order:2,mainCategory:["INNER_DOOR"],productCategories:["DOOR_LEAF","DOOR_JAMB"]},PASS:{name:"垭口",order:3,mainCategory:["PASS"],productCategories:[]},WALLBOARD:{name:"墙板",order:4,mainCategory:["WALLBOARD"],productCategories:["WALLBOARD"]},FUNCTIONAL_HARDWARE:{name:"功能五金",order:5,mainCategory:["FUNCTIONAL_HARDWARE","INNER_DOOR"],productCategories:["DRAWER","PULL_BASKET","WATER_BASIN","FAUCET","INTELLIGENCE_HARDWARE","OTHER_HARDWARE","HARDWARE_ACCESSORIES","SLIDE_DOOR_HARDWARE","COUPLING_HEAD","BRACE","HANDLES","DAMPER","SLIDE_RAIL","SWITCH","LIGHT_BELT","FLOODLIGHT","HANGER_ROD","WATERPROOF_PARTS","HINGE","STOP","COUPLE","REBOUND_DEVICE","DISC_EXTRACTOR","BOTTLE_OPENER","CAN_OPENER","COOKER","DOOR_STOPPER","DOOR_LOCK","DOOR_HEADER"]},APPLIANCE:{name:"配套电器",order:6,mainCategory:["INTELLIGENCE_ELECTRICAL"],productCategories:["SMOKE_MACHINE","GAS_STOVE","RADIANT_COOKER","DISINFECTION_CABINET","ELECTRIC_OVEN","ELECTRIC_STEAMER","DISHWASHER","MICROWAVE_OVEN","SLAG_CRUSHER","INTELLIGENCE_ELECTRICAL_APPARATUS","WATER_PURIFIER","LAMPS_AND_LANTERNS","TRANSFORMER","STOVE","AGITATOR","HEATER","WASHING_MACHINE","DRYER","SMART_TRASH_CAN","STERILIZER","PURIFIER","INTELLIGENT_PLUG_IN","ADDTIONAL","PROXYELE"]},SOFA:{name:"沙发",order:7,mainCategory:["SOFA"],productCategories:[]},TEA_TABLE:{name:"茶几",order:7,mainCategory:["TEA_TABLE"],productCategories:[]},CORNER_TABLE:{name:"角几",order:7,mainCategory:["CORNER_TABLE"],productCategories:[]},SIDE_CABINET:{name:"边柜",order:7,mainCategory:["SIDE_CABINET"],productCategories:[]},TABLE:{name:"餐桌",order:7,mainCategory:["TABLE"],productCategories:[]},BED:{name:"床",order:7,mainCategory:["BED"],productCategories:[]},BEDSIDE:{name:"床头柜",order:7,mainCategory:["BEDSIDE"],productCategories:[]},DESK:{name:"书桌",order:7,mainCategory:["DESK"],productCategories:[]},CHAIR:{name:"椅子",order:7,mainCategory:["CHAIR"],productCategories:[]},LOUNGE_CHAIR:{name:"休闲椅",order:7,mainCategory:["LOUNGE_CHAIR"],productCategories:[]},TV_CABINET:{name:"电视柜",order:7,mainCategory:["TV_CABINET"],productCategories:[]},CONSOLE_CABINET:{name:"玄关柜",order:7,mainCategory:["CONSOLE_CABINET"],productCategories:[]},DECORATIVE_CABINET:{name:"装饰柜",order:7,mainCategory:["DECORATIVE_CABINET"],productCategories:[]}},_e={TOTAL_CUPBOARD:{...Re,CABINET_TYPE:{name:"定制柜",order:0,mainCategory:[],productCategories:["FLOOR_CABINET","MESA","WALL_CABINET","CYLINDER_CABINET","SLIDE_DOOR_CABINET","HALF_HEIGHT_CABINET","BAR_COUNTER"]}}},Oe=Re;function Ie(e){const E=e&&_e[e]?_e[e]:Re;return Object.values(E).sort(((e,E)=>e.order-E.order))}function ie(e,E){return E&&_e[E]&&_e[E][e]?_e[E][e]:Re[e]||null}function ue(e,E){const a=ie(e,E);return a&&a.productCategories?a.productCategories.map((e=>{const E=te[e];return{categoryName:E?E.name:e,categoryCode:e}})):[]}function le(e,E){if(!e)return null;const a=E&&_e[E]?_e[E]:Re;for(const[E,r]of Object.entries(a)){if(r.productCategories&&Array.isArray(r.productCategories)&&r.productCategories.some((E=>E.toUpperCase()===e.toUpperCase())))return E;if(r.mainCategory&&Array.isArray(r.mainCategory)&&r.mainCategory.some((E=>E.toUpperCase()===e.toUpperCase())))return E}return null}const Ce={CUSTOM_FURNITURE:{name:"定制家具",icon:"CUSTOM_FURNITURE",order:0,matchUnit:["平米"],roomGroups:[{room:ne.wholeHouse,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.drawing,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.dining,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.masterBedroom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.cloakRoom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.teenagerBedroom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.studyBedroom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.entrance,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.balcony,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.storageRoom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.otherStorageRoom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.publicAreas,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.kitchen,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]},{room:ne.mainBathroom,groups:[Re.CABINET_TYPE,Re.FUNCTIONAL_HARDWARE,Re.APPLIANCE]}]},ALL_SUBJECT:{name:"全品项",icon:"ALL_SUBJECT",order:1,roomGroups:[]},TOTAL_CUPBOARD:{name:"整体橱柜",icon:"TOTAL_CUPBOARD",order:1,matchUnit:["延米"],roomGroups:[{room:ne.kitchen,groups:[_e.TOTAL_CUPBOARD.CABINET_TYPE,_e.TOTAL_CUPBOARD.FUNCTIONAL_HARDWARE,_e.TOTAL_CUPBOARD.APPLIANCE]}]},INNER_DOOR_WALLBOARD:{name:"内门墙板",icon:"INNER_DOOR_WALLBOARD",order:3,roomGroups:[{room:ne.wholeHouse,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.drawing,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.dining,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.masterBedroom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.cloakRoom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.teenagerBedroom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.studyBedroom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.entrance,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.balcony,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.storageRoom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.otherStorageRoom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.publicAreas,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.kitchen,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]},{room:ne.mainBathroom,groups:[Re.INNER_DOOR,Re.PASS,Re.WALLBOARD,Re.FUNCTIONAL_HARDWARE]}]},SOFT_FURNITURE:{name:"软成品",icon:"SOFT_FURNITURE",order:4,roomGroups:[{room:ne.wholeHouse,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]},{room:ne.drawing,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]},{room:ne.masterBedroom,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]},{room:ne.teenagerBedroom,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]},{room:ne.studyBedroom,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]},{room:ne.dining,groups:[Re.SOFA,Re.TEA_TABLE,Re.CORNER_TABLE,Re.SIDE_CABINET,Re.TABLE,Re.BED,Re.BEDSIDE,Re.DESK,Re.CHAIR,Re.LOUNGE_CHAIR,Re.TV_CABINET,Re.CONSOLE_CABINET,Re.DECORATIVE_CABINET]}]},HOME_DECORATION_CONSTRUCTION:{name:"家装施工",icon:"HOME_DECORATION_CONSTRUCTION",order:5,roomGroups:[{room:ne.wholeHouse,groups:[]},{room:ne.drawing,groups:[]},{room:ne.dining,groups:[]},{room:ne.masterBedroom,groups:[]},{room:ne.cloakRoom,groups:[]},{room:ne.teenagerBedroom,groups:[]},{room:ne.studyBedroom,groups:[]},{room:ne.entrance,groups:[]},{room:ne.balcony,groups:[]},{room:ne.storageRoom,groups:[]},{room:ne.otherStorageRoom,groups:[]},{room:ne.publicAreas,groups:[]},{room:ne.kitchen,groups:[]},{room:ne.mainBathroom,groups:[]}]}};function se(e){const E=Ce[e];return E?E.roomGroups.map((E=>{const a=E.room,r=Object.keys(ne).find((e=>ne[e]===a)),n=E.groups.map((E=>{let a=Object.keys(Re).find((e=>Re[e]===E));!a&&_e[e]&&(a=Object.keys(_e[e]).find((a=>_e[e][a]===E)));let r=[];if(E&&E.productCategories)r=E.productCategories.map((e=>{const E=te[e];return{categoryName:E?E.name:e,categoryCode:e}}));else if(a){r=(ue(a,e)||[]).map((e=>{const E=te[e.categoryCode];return{categoryName:E?E.name:e.categoryCode,categoryCode:e.categoryCode}}))}return{groupName:E.name,groupCode:a||"",productCategories:r}}));return{roomName:a.name,roomCode:r||"",groups:n}})):[]}function me(e,E){const a=Ce[e];if(!a)return[];const r=a.roomGroups.find((e=>e.room===ne[E]));return r?r.groups.map((E=>{const a=Object.keys(Re).find((a=>Re[a]===E||!(!_e[e]||_e[e][a]!==E)));if(!a)return{groupName:E.name,groupCode:"",productCategories:[],classifyType:e};const r=(ue(a,e)||[]).map((e=>{const E=te[e.categoryCode];return{categoryName:E?E.name:e.categoryCode,categoryCode:e.categoryCode}}));return{groupName:E.name,groupCode:a,productCategories:r,classifyType:e}})):[]}function Le(e){if(!e)return null;const E=Ce[e];return E?{code:e,name:E.name,icon:E.icon,order:E.order,matchUnit:E.matchUnit}:null}function Se(e=[]){const E=Object.keys(Ce).filter((E=>"ALL_SUBJECT"!==E&&!e.includes(E)));let a=[];E.forEach((e=>{const E=se(e);a=[...a,...E]}));const r={};return a.forEach((e=>{if(r[e.roomCode]){const E=r[e.roomCode].groups.map((e=>e.groupCode));e.groups.forEach((a=>{E.includes(a.groupCode)||(r[e.roomCode].groups.push(a),E.push(a.groupCode))}))}else r[e.roomCode]={...e,groups:[...e.groups]}})),Object.values(r)}const De=class{static ProductUnitMeasureEnum={PC:{name:"PC",label:"件",enName:"Place",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},EA:{name:"EA",label:"个",enName:"Each",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SET:{name:"SET",label:"套",enName:"Set",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BAN:{name:"BAN",label:"把",enName:"Ban",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SAG:{name:"SAG",label:"袋",enName:"Bag",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},VOL:{name:"VOL",label:"本",enName:"Volume",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BOX:{name:"BOX",label:"箱",enName:"Boxful",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAIL:{name:"PAIL",label:"桶",enName:"Pail",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},CAN:{name:"CAN",label:"罐",enName:"Can",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},TAI:{name:"TAI",label:"台",enName:"Tai",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},CAR:{name:"CAR",label:"盒",enName:"Carton",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAK:{name:"PAK",label:"包",enName:"Package",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},STP:{name:"STP",label:"条",enName:"Strip",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZHI:{name:"ZHI",label:"只",enName:"Zhi",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZII:{name:"ZII",label:"支",enName:"Zii",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},SLC:{name:"SLC",label:"片",enName:"Slice",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},BLK:{name:"BLK",label:"块",enName:"Block",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},ZHG:{name:"ZHG",label:"张",enName:"Zhang",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAL:{name:"PAL",label:"货盘",enName:"Pallet",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},GEN:{name:"GEN",label:"根",enName:"Gen",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},FAN:{name:"FAN",label:"扇",enName:"Fan",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},REEL:{name:"REEL",label:"卷",enName:"Reel",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},PAIR:{name:"PAIR",label:"副",enName:"Pair",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},GROUP:{name:"GROUP",label:"组",enName:"Group",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},STEP:{name:"STEP",label:"步",enName:"Step",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},M:{name:"M",label:"米",enName:"Metre",dimension:1,scale:1e3,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/1e3}})},LM:{name:"LM",label:"延米",enName:"LinearMeter",dimension:1,scale:1e3,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/1e3}})},H2W1:{name:"H2W1",label:"门套延米",enName:"Tow",dimension:1,scale:1e3,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:a}=e;return(2*a+E)/1e3}})},MM:{name:"MM",label:"毫米",enName:"MilliMetre",dimension:1,scale:10,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E}})},INC:{name:"INC",label:"英寸",enName:"Inch",dimension:1,scale:304,requiredDimensions:["width"],getCount:()=>({apply:e=>{const{width:E}=e;return E/25.4}})},M2:{name:"M2",label:"平米",enName:"SquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:a}=e;return E*a/1e6}})},PM2:{name:"PM2",label:"投影平米",enName:"ProjectionSquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:a}=e;return E*a/1e6}})},FM2:{name:"FM2",label:"立面平米",enName:"FacadeSquareMetre",dimension:2,scale:1e6,requiredDimensions:["width","height"],getCount:()=>({apply:e=>{const{width:E,height:a}=e;return E*a/1e6}})},M3:{name:"M3",label:"立方米",enName:"CubicMetre",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:a,depth:r}=e;return E*a*r/1e9}})},L:{name:"L",label:"公升",enName:"Liter",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:a,depth:r}=e;return E*a*r/1e6}})},ML:{name:"ML",label:"毫升",enName:"MilliLiter",dimension:3,scale:1e9,requiredDimensions:["width","height","depth"],getCount:()=>({apply:e=>{const{width:E,height:a,depth:r}=e;return E*a*r/1e3}})},KG:{name:"KG",label:"千克",enName:"Kilogram",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},TON:{name:"TON",label:"吨",enName:"Ton",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},WORKLOAD:{name:"WORKLOAD",label:"工作量",enName:"workload",dimension:0,scale:1,requiredDimensions:[],getCount:()=>({apply:e=>1})},getByName:function(e){if(!e)return null;for(const E in this)if(this[E]&&this[E].name===e)return this[E];return null}};static ProductAttrQuotaOperatorTypeEnum={NORMAL:"NORMAL",ADD_MULTIPLE:"ADD_MULTIPLE",MULTIPLE_ADD:"MULTIPLE_ADD"};static findItemUnitMeasure(e){const{width:E,height:a,depth:r}=this.calculateSizeByConfig(e);e.width=E,e.height=a,e.depth=r;const n=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e.measureUnit));if(!n)return console.warn(`未找到计量单位 ${e.measureUnit} 的处理方法`),1;const o=this.ProductUnitMeasureEnum[n];try{if(!e.calculationMethod)return this.calculateByUnitDefinition(o,E,a,r,e.customLength);switch(e.calculationMethod){case"WIDTH_HEIGHT":return E*a/(o.scale||1e6);case"HEIGHT_DEPTH":return a*r/(o.scale||1e6);case"WIDTH_DEPTH":return E*r/(o.scale||1e6);case"PERIMETER":return 2*(E+r)/1e3;case"WIDTH":return E/(1===o.dimension?1e3:1);case"HEIGHT":return a/(1===o.dimension?1e3:1);case"DEPTH":return r/(1===o.dimension?1e3:1);case"CUSTOM_LENGTH":return(e.customLength||E)/1e3;default:return this.calculateByUnitDefinition(o,E,a,r,e.customLength)}}catch(e){return console.error("计算过程中出错:",e),1}}static calculateByUnitDefinition(e,E,a,r,n){return e.getCount().apply({width:E,height:a,depth:r,customLength:n})}static getMeasureUnitInfo(e){const E=Object.keys(this.ProductUnitMeasureEnum).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!E)return null;const a=this.ProductUnitMeasureEnum[E];let r=[];2===a.dimension?(r.push({key:"WIDTH_HEIGHT",label:"宽度×高度",description:`${a.label}宽×高计算方式`,requiredDimensions:["width","height"]}),r.push({key:"WIDTH_DEPTH",label:"宽度×深度",description:`${a.label}宽×深计算方式`,requiredDimensions:["width","depth"]}),r.push({key:"HEIGHT_DEPTH",label:"高度×深度",description:`${a.label}高×深计算方式`,requiredDimensions:["height","depth"]})):1===a.dimension&&(r.push({key:"WIDTH",label:"宽度",description:`${a.label}宽度计算方式`,requiredDimensions:["width"]}),r.push({key:"HEIGHT",label:"高度",description:`${a.label}高度计算方式`,requiredDimensions:["height"]}),r.push({key:"DEPTH",label:"深度",description:`${a.label}深度计算方式`,requiredDimensions:["depth"]}),r.push({key:"PERIMETER",label:"周长",description:`${a.label}周长计算方式`,requiredDimensions:["width","depth"]})),0===r.length&&r.push({key:"DEFAULT",label:"标准计算",description:`标准${a.label}计算方式`,requiredDimensions:a.requiredDimensions});let n="DEFAULT";return 2===a.dimension?n="WIDTH_HEIGHT":1===a.dimension&&(n="WIDTH"),{name:a.name,label:a.label,enName:a.enName,dimension:a.dimension,defaultMethod:n,methods:r,requiredDimensions:a.requiredDimensions}}static getAllMeasureUnits(){return Object.entries(this.ProductUnitMeasureEnum).filter((([e])=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).map((([e,E])=>{const a=this.getMeasureUnitInfo(E.label);return{name:E.name,label:E.label,enName:E.enName,dimension:E.dimension,defaultMethod:a?.defaultMethod||"DEFAULT",methods:a?.methods||[{key:"DEFAULT",label:"标准计算",description:`标准${E.label}计算方式`,requiredDimensions:E.requiredDimensions}],requiredDimensions:E.requiredDimensions}}))}static calculateSizeByConfig(e){const E={width:e.width||0,height:e.height||0,depth:e.depth||0},a=this.getQuotaMapByDto(e);return a.WIDTH&&(E.width=this.calculateValue(E.width,a.WIDTH)),a.HEIGHT&&(E.height=this.calculateValue(E.height,a.HEIGHT)),a.DEPTH&&(E.depth=this.calculateValue(E.depth,a.DEPTH)),E}static getQuotaMapByDto(e){return{WIDTH:{operatorType:"NORMAL",addValue:0,multipleValue:1},HEIGHT:{operatorType:"NORMAL",addValue:0,multipleValue:1},DEPTH:{operatorType:"NORMAL",addValue:0,multipleValue:1}}}static calculateValue(e,E){const{operatorType:a,addValue:r,multipleValue:n}=E;let o=e;const A=parseFloat(r||0),t=parseFloat(n||1);switch(a){case this.ProductAttrQuotaOperatorTypeEnum.ADD_MULTIPLE:o=(o+A)*t;break;case this.ProductAttrQuotaOperatorTypeEnum.MULTIPLE_ADD:o=o*t+A;case this.ProductAttrQuotaOperatorTypeEnum.NORMAL:}return o}static isDimensionRequired(e,E,a){if(!e||!E)return!1;const r=E.toLowerCase();if(!["width","height","depth"].includes(r))return!1;const n=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!n)return!1;const o=this.ProductUnitMeasureEnum[n];if(a)switch(a){case"WIDTH_HEIGHT":return"width"===r||"height"===r;case"WIDTH_DEPTH":case"PERIMETER":return"width"===r||"depth"===r;case"HEIGHT_DEPTH":return"height"===r||"depth"===r;case"WIDTH":case"CUSTOM_LENGTH":return"width"===r;case"HEIGHT":return"height"===r;case"DEPTH":return"depth"===r;default:return o.requiredDimensions.includes(r)}return o.requiredDimensions.includes(r)}static isDimensionRelated(e){if(!e)return!1;const E=Object.keys(this.ProductUnitMeasureEnum).filter((e=>"object"==typeof this.ProductUnitMeasureEnum[e]&&"getByName"!==e)).find((E=>this.ProductUnitMeasureEnum[E]?.label===e));if(!E)return!1;const a=this.ProductUnitMeasureEnum[E];return a.dimension>0||a.requiredDimensions.length>0}};var de={calculateProductMeasure:function(e){try{if(!e.measureUnit)return 0;const E=De.findItemUnitMeasure({measureUnit:e.measureUnit,width:e.width||0,height:e.height||0,depth:e.depth||0,calculationMethod:e.calculationMethod,customLength:e.customLength});return E||0}catch(e){throw e}},getMeasureUnitInfo:function(e){try{return De.getMeasureUnitInfo(e)}catch(e){throw e}},getAllMeasureUnits:function(){try{return De.getAllMeasureUnits()}catch(e){throw e}},isDimensionRequired:function(e,E,a){try{return De.isDimensionRequired(e,E,a)}catch(e){throw e}},isDimensionRelated:function(e){try{return De.isDimensionRelated(e)}catch(e){throw e}},ItemUnitMeasureCalculator:De};const ce={wholeHouse:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],drawing:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],dining:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],masterBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],cloakRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],teenagerBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],studyBedroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],entrance:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],balcony:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],storageRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],otherStorageRoom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],publicAreas:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],kitchen:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"],mainBathroom:["CABINET_TYPE","FUNCTIONAL_HARDWARE","APPLIANCE"]};function Ue(e){return ce[e]||[]}function Me(e){return Ue(e).map((e=>{var E;return{groupId:e,groupName:(null===(E=Re[e])||void 0===E?void 0:E.name)||e}}))}function Pe(e,E){return Ue(e).includes(E)}const pe={CABINET_TYPE:["HALL_CABINET","CONSOLE_CABINET","WARDROBE","BOOKCASE"],FUNCTIONAL_HARDWARE:["DRAWER","PULL_BASKET","HINGE","SLIDE_RAIL"],APPLIANCE:["SMOKE_MACHINE","GAS_STOVE","MICROWAVE_OVEN","DISHWASHER"]};function Be(e){return pe[e]||[]}function he(e){return Be(e).map((e=>{const E=te[e];return{itemId:e,categoryName:E?E.name:e}}))}class ge{constructor(e){this.uuid="",this.productId="",this.unitPrice=0,this.productPriceId="",this.spuName="",this.unitLabel="",this.spuId="",this.brandId="",this.brandName="",this.classifyId="",this.classifyName="",this.model="",this.outlineDemension="",this.categoryCode="",this.categoryName="",this.parentCategoryCode="",this.parentCategoryName="",this.styleId="",this.styleName="",this.roomName="",this.roomCode="",this.schemeName="方案A",this.groupName="",this.groupCode="",this.width=null,this.height=null,this.depth=null,this.originWidth=null,this.originHeight=null,this.originDepth=null,this.skuAttributes=[],this.moveDirection="",this.location="",this.measureUnit="",this.measure=1,this.priceFlag="",this.standardPrice=0,this.actualPrice=0,this.count=1,this.remark="",this.productCoefficient=1,this.itemDiscount=100,this.picture=[],this.children=[],this.components=[],e&&Object.assign(this,e)}}var He=de.ItemUnitMeasureCalculator,Ge=de.calculateProductMeasure,ve=de.getAllMeasureUnits,Fe=de.getMeasureUnitInfo,be=de.isDimensionRelated,ye=de.isDimensionRequired;export{Re as BASE_GROUP_TYPES,I as BUSINESS_SCOPE_ENUM,i as BUSINESS_WORK_PHASE_ENUM,_e as CLASSIFY_GROUP_TYPES,Ce as CLASSIFY_ROOM_GROUP_MAP,u as CONTRACT_STATE_ENUM,x as CONTRACT_STATUS_OPTIONS,a as CURRENCY_UNIT_ENUM,S as CURRENCY_UNIT_OPTIONS,p as CUSTOMER_LABEL_ENUM,c as CUSTOMER_SOURCE_ENUM,H as DICTIONARY_ATTRIBUTE_OPTIONS_MAP,h as DICTIONARY_BUSINESS_SCOPE_OPTIONS,g as DICTIONARY_BUSINESS_WORK_PHASE_OPTIONS,B as DICTIONARY_CUSTOMER_LABEL_OPTIONS,U as DICTIONARY_CUSTOMER_SOURCE_OPTIONS,d as DICTIONARY_IDENTIFY_ENUM,G as DICTIONARY_IDENTIFY_OPTIONS,P as DICTIONARY_PROCESS_STAGE_OPTIONS,pe as GROUP_ITEM_MAPPING,Oe as GROUP_TYPES,He as ItemUnitMeasureCalculator,W as ListType,V as PRICE_FLAG_LIST_TYPE_MAP,M as PROCESS_STAGE_ENUM,te as PRODUCT_CATEGORIES,ge as QuotationItem,n as RECOMMENDATION_TYPE_ENUM,ce as ROOM_GROUP_MAPPING,ne as ROOM_TYPES,j as __constantsPlaceholder,l as __enumsPlaceholder,J as __interfacesPlaceholder,O as assign_business_type,k as assign_business_type_options,X as calcActualPrice,Q as calcStandardPrice,Ge as calculateProductMeasure,E as design_type,s as design_type_options,ee as findOptionByValue,ae as formatChineseMobile,re as formatDecimal,z as formatNumberWithCommas,$ as generateRandomId,Z as generateUUID,Se as getAllClassifyRoomsAndGroups,ve as getAllMeasureUnits,Ne as getAllProductCategories,Le as getClassifyBaseInfo,se as getClassifyRoomsAndGroups,Ee as getFileExtension,Me as getGroupObjectsByRoomId,ie as getGroupTypeByKey,le as getGroupTypeByProductCategory,me as getGroupsByClassifyAndRoom,Ue as getGroupsByRoomId,he as getItemObjectsByGroupId,Be as getItemsByGroupId,Fe as getMeasureUnitInfo,w as getPriceFlagOptionsByListType,ue as getProductCategoriesByGroupType,Te as getProductCategoryByKey,Ae as getRoomTypeByKey,Ie as getSortedGroupTypes,oe as getSortedRoomTypes,T as house_status,y as house_status_options,N as house_type,f as house_type_options,be as isDimensionRelated,ye as isDimensionRequired,Pe as isGroupAvailableForRoom,K as isPriceFlagValidForListType,m as order_status,L as order_status_options,R as price_flag,Y as price_flag_options,o as pro_series_type_enum,F as pro_series_type_options,v as recommendation_type_options,_ as rounding_rule,q as rounding_rule_options,A as sales_end_app_tag,e as solution_status,C as solution_status_options,t as spatial_category,b as spatial_category_options,r as supply_mode,D as supply_mode_options};
2
2
  //# sourceMappingURL=index.esm.js.map