[{"/Users/zhongan/project/za-dplatform-h5/src/actions/handlePlan.js":"1","/Users/zhongan/project/za-dplatform-h5/src/actions/tool/form.js":"2","/Users/zhongan/project/za-dplatform-h5/src/app.js":"3","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/CertValidity/index.js":"4","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/CustomIcon/index.js":"5","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/DateSelect/index.js":"6","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/FormItem/index.js":"7","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Iconfont/index.js":"8","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Remark/index.js":"9","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Select/index.js":"10","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/index.js":"11","/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabs/index.js":"12","/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabsModule/TabsModule.js":"13","/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabsModule/index.js":"14","/Users/zhongan/project/za-dplatform-h5/src/components/BankAccountName/index.js":"15","/Users/zhongan/project/za-dplatform-h5/src/components/Banks/index.js":"16","/Users/zhongan/project/za-dplatform-h5/src/components/Banner/index.js":"17","/Users/zhongan/project/za-dplatform-h5/src/components/BaseModule/index.js":"18","/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/Item.js":"19","/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/ItemRender.js":"20","/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/index.js":"21","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstration/index.js":"22","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstration/previewData.js":"23","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationBar/index.js":"24","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationFactor/index.js":"25","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationSlider/index.js":"26","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationTable/index.js":"27","/Users/zhongan/project/za-dplatform-h5/src/components/Button/hooks.js":"28","/Users/zhongan/project/za-dplatform-h5/src/components/Button/index.js":"29","/Users/zhongan/project/za-dplatform-h5/src/components/CalculateTrial/index.js":"30","/Users/zhongan/project/za-dplatform-h5/src/components/CertNo/index.js":"31","/Users/zhongan/project/za-dplatform-h5/src/components/ChooseEnumBtn/index.js":"32","/Users/zhongan/project/za-dplatform-h5/src/components/ChooseEnumPeriod/index.js":"33","/Users/zhongan/project/za-dplatform-h5/src/components/ChooseIsInsured/index.js":"34","/Users/zhongan/project/za-dplatform-h5/src/components/ClaimFlow/index.js":"35","/Users/zhongan/project/za-dplatform-h5/src/components/ClaimSteps/index.js":"36","/Users/zhongan/project/za-dplatform-h5/src/components/Clause/content/Content.js":"37","/Users/zhongan/project/za-dplatform-h5/src/components/Clause/content/index.js":"38","/Users/zhongan/project/za-dplatform-h5/src/components/Clause/index.js":"39","/Users/zhongan/project/za-dplatform-h5/src/components/ClauseModule/index.js":"40","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/Detail/index.js":"41","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/FieldValue.js":"42","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/index.js":"43","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmCommon/index.js":"44","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmHolderInfo/index.js":"45","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmInsurantInfo/index.js":"46","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/ConfirmInfoTitle/index.js":"47","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/index.js":"48","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/transformValue.js":"49","/Users/zhongan/project/za-dplatform-h5/src/components/ConsultIconButton/index.js":"50","/Users/zhongan/project/za-dplatform-h5/src/components/Content/Content.js":"51","/Users/zhongan/project/za-dplatform-h5/src/components/Content/index.js":"52","/Users/zhongan/project/za-dplatform-h5/src/components/CustomerService/index.js":"53","/Users/zhongan/project/za-dplatform-h5/src/components/Email/index.js":"54","/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/handleList/handle.js":"55","/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/handleList/index.js":"56","/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/index.js":"57","/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/index.js":"58","/Users/zhongan/project/za-dplatform-h5/src/components/Fixed/index.js":"59","/Users/zhongan/project/za-dplatform-h5/src/components/FixedBottom/FixedBottom.js":"60","/Users/zhongan/project/za-dplatform-h5/src/components/FixedBottom/index.js":"61","/Users/zhongan/project/za-dplatform-h5/src/components/GuaranteeDutyConfirm/index.js":"62","/Users/zhongan/project/za-dplatform-h5/src/components/HealthInsureRule/index.js":"63","/Users/zhongan/project/za-dplatform-h5/src/components/HealthNotificationList/index.js":"64","/Users/zhongan/project/za-dplatform-h5/src/components/HealthNotificationList/methods.js":"65","/Users/zhongan/project/za-dplatform-h5/src/components/HealthTextEdit/index.js":"66","/Users/zhongan/project/za-dplatform-h5/src/components/Holder/index.js":"67","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/Info.js":"68","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/components/text/Text.js":"69","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/components/text/index.js":"70","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/hook.js":"71","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/index.js":"72","/Users/zhongan/project/za-dplatform-h5/src/components/IconButton/index.js":"73","/Users/zhongan/project/za-dplatform-h5/src/components/Images/index.js":"74","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/Watermark/index.js":"75","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/bubbleTip/index.js":"76","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/confirmButton/index.js":"77","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/confirmTip/index.js":"78","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/content/index.js":"79","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/index.js":"80","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/popupBubble/index.js":"81","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/supervisionPopup/index.js":"82","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tabContent/index.js":"83","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tabList/index.js":"84","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tooltipFullScreen/index.js":"85","/Users/zhongan/project/za-dplatform-h5/src/components/InformationList/index.js":"86","/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePeriod/index.js":"87","/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePlanDesc/index.js":"88","/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePlanSelect/index.js":"89","/Users/zhongan/project/za-dplatform-h5/src/components/InsuranceStartDate/index.js":"90","/Users/zhongan/project/za-dplatform-h5/src/components/Insurant/index.js":"91","/Users/zhongan/project/za-dplatform-h5/src/components/InsureEndDate/index.js":"92","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/InsureResult.js":"93","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/adBanner/index.js":"94","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/btn/Btn.js":"95","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/btn/index.js":"96","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/channel/Channel.js":"97","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/channel/index.js":"98","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/description/Description.js":"99","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/description/index.js":"100","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/fail/Fail.js":"101","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/fail/index.js":"102","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/orderInfo/OrderInfo.js":"103","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/orderInfo/index.js":"104","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/success/Success.js":"105","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/success/index.js":"106","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/text/Text.js":"107","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/text/index.js":"108","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/hooks.js":"109","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/index.js":"110","/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/Info.js":"111","/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/components/text/Text.js":"112","/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/components/text/index.js":"113","/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/index.js":"114","/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/Ticktock.js":"115","/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/hooks.js":"116","/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/index.js":"117","/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/index.js":"118","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/Modal.js":"119","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/RenderModal.js":"120","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/params/index.js":"121","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/picture/index.js":"122","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/text/index.js":"123","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/index.js":"124","/Users/zhongan/project/za-dplatform-h5/src/components/ModalModule/index.js":"125","/Users/zhongan/project/za-dplatform-h5/src/components/Module/index.js":"126","/Users/zhongan/project/za-dplatform-h5/src/components/Name/index.js":"127","/Users/zhongan/project/za-dplatform-h5/src/components/Page.js":"128","/Users/zhongan/project/za-dplatform-h5/src/components/PageView.js":"129","/Users/zhongan/project/za-dplatform-h5/src/components/PaymentFrequency/index.js":"130","/Users/zhongan/project/za-dplatform-h5/src/components/PersonalAnnualIncome/index.js":"131","/Users/zhongan/project/za-dplatform-h5/src/components/PhoneNo/index.js":"132","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTab/PlanTab.js":"133","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTab/index.js":"134","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTabs/PlanTabs.js":"135","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTabs/index.js":"136","/Users/zhongan/project/za-dplatform-h5/src/components/PolicyholdersExemptionModule/index.js":"137","/Users/zhongan/project/za-dplatform-h5/src/components/Premium/index.js":"138","/Users/zhongan/project/za-dplatform-h5/src/components/ProductTitle/index.js":"139","/Users/zhongan/project/za-dplatform-h5/src/components/Question/index.js":"140","/Users/zhongan/project/za-dplatform-h5/src/components/Question/questionItem/QuestionItem.js":"141","/Users/zhongan/project/za-dplatform-h5/src/components/Question/questionItem/index.js":"142","/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/QuestionMore.js":"143","/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/StickyScroll/index.js":"144","/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/index.js":"145","/Users/zhongan/project/za-dplatform-h5/src/components/RadioEnumGroup/index.js":"146","/Users/zhongan/project/za-dplatform-h5/src/components/Render.js":"147","/Users/zhongan/project/za-dplatform-h5/src/components/RowAddress/index.js":"148","/Users/zhongan/project/za-dplatform-h5/src/components/RowAge/index.js":"149","/Users/zhongan/project/za-dplatform-h5/src/components/RowArea/index.js":"150","/Users/zhongan/project/za-dplatform-h5/src/components/RowBirthday/index.js":"151","/Users/zhongan/project/za-dplatform-h5/src/components/RowCareer/index.js":"152","/Users/zhongan/project/za-dplatform-h5/src/components/RowCascade/index.js":"153","/Users/zhongan/project/za-dplatform-h5/src/components/RowCertValidity/index.js":"154","/Users/zhongan/project/za-dplatform-h5/src/components/RowDate/index.js":"155","/Users/zhongan/project/za-dplatform-h5/src/components/RowDate/tool.js":"156","/Users/zhongan/project/za-dplatform-h5/src/components/RowInput/index.js":"157","/Users/zhongan/project/za-dplatform-h5/src/components/RowNation/index.js":"158","/Users/zhongan/project/za-dplatform-h5/src/components/RowPlanBrief/index.js":"159","/Users/zhongan/project/za-dplatform-h5/src/components/RowRadioList/index.js":"160","/Users/zhongan/project/za-dplatform-h5/src/components/RowSelect/index.js":"161","/Users/zhongan/project/za-dplatform-h5/src/components/RowSex/index.js":"162","/Users/zhongan/project/za-dplatform-h5/src/components/RowStepper/index.js":"163","/Users/zhongan/project/za-dplatform-h5/src/components/SimpleButton/index.js":"164","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/SupervisionPopModule.js":"165","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/Watermark/index.js":"166","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/bubbleTip/index.js":"167","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/confirmButton/index.js":"168","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/confirmTip/index.js":"169","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/content/index.js":"170","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/fullscreenTipsModule/index.js":"171","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/index.js":"172","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/popupBubble/index.js":"173","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/supervisionPopup/index.js":"174","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tabContent/index.js":"175","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tabList/index.js":"176","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tooltipFullScreen/index.js":"177","/Users/zhongan/project/za-dplatform-h5/src/components/Tabs/index.js":"178","/Users/zhongan/project/za-dplatform-h5/src/components/Title/index.js":"179","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/Toolbar.js":"180","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/CustomerService/CustomerService.js":"181","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/CustomerService/index.js":"182","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/DetailRemark/DetailRemark.js":"183","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/DetailRemark/index.js":"184","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/Premium/Premium.js":"185","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/Premium/index.js":"186","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/SimpleRemark/SimpleRemark.js":"187","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/SimpleRemark/index.js":"188","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/index.js":"189","/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/Ticktock.js":"190","/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/hooks.js":"191","/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/index.js":"192","/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/index.js":"193","/Users/zhongan/project/za-dplatform-h5/src/components/common/AddableBlock/index.js":"194","/Users/zhongan/project/za-dplatform-h5/src/components/common/Block1/index.js":"195","/Users/zhongan/project/za-dplatform-h5/src/components/common/ButtonAdd/index.js":"196","/Users/zhongan/project/za-dplatform-h5/src/components/common/ButtonDelete/index.js":"197","/Users/zhongan/project/za-dplatform-h5/src/components/common/CPopup/index.js":"198","/Users/zhongan/project/za-dplatform-h5/src/components/common/CustomIcon/index.js":"199","/Users/zhongan/project/za-dplatform-h5/src/components/common/DeletableBlock/index.js":"200","/Users/zhongan/project/za-dplatform-h5/src/components/common/Detail/index.js":"201","/Users/zhongan/project/za-dplatform-h5/src/components/common/Header/index.js":"202","/Users/zhongan/project/za-dplatform-h5/src/components/common/RowBlockTitle/index.js":"203","/Users/zhongan/project/za-dplatform-h5/src/components/common/Value/index.js":"204","/Users/zhongan/project/za-dplatform-h5/src/components/common/index.js":"205","/Users/zhongan/project/za-dplatform-h5/src/components/index.js":"206","/Users/zhongan/project/za-dplatform-h5/src/constants/index.js":"207","/Users/zhongan/project/za-dplatform-h5/src/constants/storeKey.js":"208","/Users/zhongan/project/za-dplatform-h5/src/env.js":"209","/Users/zhongan/project/za-dplatform-h5/src/global.js":"210","/Users/zhongan/project/za-dplatform-h5/src/history.js":"211","/Users/zhongan/project/za-dplatform-h5/src/hoc/index.js":"212","/Users/zhongan/project/za-dplatform-h5/src/hoc/withProps.js":"213","/Users/zhongan/project/za-dplatform-h5/src/hoc/withQuery.js":"214","/Users/zhongan/project/za-dplatform-h5/src/hooks/index.js":"215","/Users/zhongan/project/za-dplatform-h5/src/hooks/useCacheState.js":"216","/Users/zhongan/project/za-dplatform-h5/src/hooks/useCountdown.js":"217","/Users/zhongan/project/za-dplatform-h5/src/hooks/useEnum.js":"218","/Users/zhongan/project/za-dplatform-h5/src/hooks/useFixedUI.js":"219","/Users/zhongan/project/za-dplatform-h5/src/hooks/useStore.js":"220","/Users/zhongan/project/za-dplatform-h5/src/layouts/index.js":"221","/Users/zhongan/project/za-dplatform-h5/src/pages/JSON.js":"222","/Users/zhongan/project/za-dplatform-h5/src/pages/abandonPay/confirm/index.js":"223","/Users/zhongan/project/za-dplatform-h5/src/pages/abandonPay/query/index.js":"224","/Users/zhongan/project/za-dplatform-h5/src/pages/index/QueryOrderDetail.js":"225","/Users/zhongan/project/za-dplatform-h5/src/pages/index/Trial.js":"226","/Users/zhongan/project/za-dplatform-h5/src/pages/index/index.js":"227","/Users/zhongan/project/za-dplatform-h5/src/pages/index/previewButton/index.js":"228","/Users/zhongan/project/za-dplatform-h5/src/services/JDservice.js":"229","/Users/zhongan/project/za-dplatform-h5/src/services/config.js":"230","/Users/zhongan/project/za-dplatform-h5/src/services/dict.js":"231","/Users/zhongan/project/za-dplatform-h5/src/services/goods.js":"232","/Users/zhongan/project/za-dplatform-h5/src/services/index.js":"233","/Users/zhongan/project/za-dplatform-h5/src/services/order.js":"234","/Users/zhongan/project/za-dplatform-h5/src/services/questionnaire.js":"235","/Users/zhongan/project/za-dplatform-h5/src/services/reservation.js":"236","/Users/zhongan/project/za-dplatform-h5/src/services/ruleCheck.js":"237","/Users/zhongan/project/za-dplatform-h5/src/services/supervision.js":"238","/Users/zhongan/project/za-dplatform-h5/src/services/underwriting.js":"239","/Users/zhongan/project/za-dplatform-h5/src/services/wx.js":"240","/Users/zhongan/project/za-dplatform-h5/src/singleAlert.js":"241","/Users/zhongan/project/za-dplatform-h5/src/store/behavior.js":"242","/Users/zhongan/project/za-dplatform-h5/src/store/context.js":"243","/Users/zhongan/project/za-dplatform-h5/src/store/form.js":"244","/Users/zhongan/project/za-dplatform-h5/src/store/index.js":"245","/Users/zhongan/project/za-dplatform-h5/src/store/initvalues.js":"246","/Users/zhongan/project/za-dplatform-h5/src/store/session.js":"247","/Users/zhongan/project/za-dplatform-h5/src/utils/ZaToast.js":"248","/Users/zhongan/project/za-dplatform-h5/src/utils/consts.js":"249","/Users/zhongan/project/za-dplatform-h5/src/utils/content.js":"250","/Users/zhongan/project/za-dplatform-h5/src/utils/navigation.js":"251","/Users/zhongan/project/za-dplatform-h5/src/utils/planRelationMethods/rulesProduct.js":"252","/Users/zhongan/project/za-dplatform-h5/src/utils/queryString.js":"253","/Users/zhongan/project/za-dplatform-h5/src/utils/request.js":"254","/Users/zhongan/project/za-dplatform-h5/src/utils/runEnv.js":"255","/Users/zhongan/project/za-dplatform-h5/src/utils/scroll.js":"256","/Users/zhongan/project/za-dplatform-h5/src/utils/tool.js":"257","/Users/zhongan/project/za-dplatform-h5/src/utils/utils.js":"258","/Users/zhongan/project/za-dplatform-h5/src/utils/validator/filters.js":"259","/Users/zhongan/project/za-dplatform-h5/src/utils/validator/index.js":"260","/Users/zhongan/project/za-dplatform-h5/src/utils/validator/rules.js":"261","/Users/zhongan/project/za-dplatform-h5/src/utils/wx.js":"262","/Users/zhongan/project/za-dplatform-h5/src/validator/index.js":"263","/Users/zhongan/project/za-dplatform-h5/src/validator/proValidator.js":"264"},{"size":12028,"mtime":1637908728917,"results":"265","hashOfConfig":"266"},{"size":706,"mtime":1637908728917,"results":"267","hashOfConfig":"266"},{"size":1636,"mtime":1638178954372,"results":"268","hashOfConfig":"266"},{"size":1089,"mtime":1634203009520,"results":"269","hashOfConfig":"266"},{"size":357,"mtime":1637908728918,"results":"270","hashOfConfig":"266"},{"size":528,"mtime":1635336090079,"results":"271","hashOfConfig":"266"},{"size":2555,"mtime":1637908728918,"results":"272","hashOfConfig":"266"},{"size":574,"mtime":1625627694779,"results":"273","hashOfConfig":"266"},{"size":1065,"mtime":1637908728919,"results":"274","hashOfConfig":"266"},{"size":928,"mtime":1637063630810,"results":"275","hashOfConfig":"266"},{"size":526,"mtime":1625627694783,"results":"276","hashOfConfig":"266"},{"size":2657,"mtime":1637908728919,"results":"277","hashOfConfig":"266"},{"size":595,"mtime":1625627694785,"results":"278","hashOfConfig":"266"},{"size":123,"mtime":1637908728920,"results":"279","hashOfConfig":"266"},{"size":607,"mtime":1637908728920,"results":"280","hashOfConfig":"266"},{"size":967,"mtime":1637908728920,"results":"281","hashOfConfig":"266"},{"size":2606,"mtime":1637908728921,"results":"282","hashOfConfig":"266"},{"size":1013,"mtime":1636687455855,"results":"283","hashOfConfig":"266"},{"size":2506,"mtime":1637908728921,"results":"284","hashOfConfig":"266"},{"size":2059,"mtime":1636687455858,"results":"285","hashOfConfig":"266"},{"size":2273,"mtime":1637908728922,"results":"286","hashOfConfig":"266"},{"size":3569,"mtime":1638178954376,"results":"287","hashOfConfig":"266"},{"size":4119,"mtime":1638178954380,"results":"288","hashOfConfig":"266"},{"size":3129,"mtime":1637908728923,"results":"289","hashOfConfig":"266"},{"size":689,"mtime":1625627694798,"results":"290","hashOfConfig":"266"},{"size":7348,"mtime":1638178954385,"results":"291","hashOfConfig":"266"},{"size":1235,"mtime":1625627694802,"results":"292","hashOfConfig":"266"},{"size":13277,"mtime":1638428378480,"results":"293","hashOfConfig":"266"},{"size":49,"mtime":1636687455863,"results":"294","hashOfConfig":"266"},{"size":3784,"mtime":1637908728925,"results":"295","hashOfConfig":"266"},{"size":471,"mtime":1625627694814,"results":"296","hashOfConfig":"266"},{"size":4697,"mtime":1637908728925,"results":"297","hashOfConfig":"266"},{"size":416,"mtime":1625627694817,"results":"298","hashOfConfig":"266"},{"size":975,"mtime":1637908728925,"results":"299","hashOfConfig":"266"},{"size":1734,"mtime":1625627694819,"results":"300","hashOfConfig":"266"},{"size":1232,"mtime":1625627694820,"results":"301","hashOfConfig":"266"},{"size":4256,"mtime":1637908728926,"results":"302","hashOfConfig":"266"},{"size":117,"mtime":1637908728926,"results":"303","hashOfConfig":"266"},{"size":4232,"mtime":1637908728927,"results":"304","hashOfConfig":"266"},{"size":818,"mtime":1625627694837,"results":"305","hashOfConfig":"266"},{"size":254,"mtime":1637908728927,"results":"306","hashOfConfig":"266"},{"size":3174,"mtime":1637908728927,"results":"307","hashOfConfig":"266"},{"size":2806,"mtime":1638429788655,"results":"308","hashOfConfig":"266"},{"size":1800,"mtime":1637908728928,"results":"309","hashOfConfig":"266"},{"size":1780,"mtime":1625627694843,"results":"310","hashOfConfig":"266"},{"size":2672,"mtime":1637908728928,"results":"311","hashOfConfig":"266"},{"size":361,"mtime":1625627694845,"results":"312","hashOfConfig":"266"},{"size":1643,"mtime":1636621372161,"results":"313","hashOfConfig":"266"},{"size":3753,"mtime":1637908728929,"results":"314","hashOfConfig":"266"},{"size":2443,"mtime":1637908728929,"results":"315","hashOfConfig":"266"},{"size":4095,"mtime":1637908728930,"results":"316","hashOfConfig":"266"},{"size":110,"mtime":1637908728930,"results":"317","hashOfConfig":"266"},{"size":1725,"mtime":1637908728931,"results":"318","hashOfConfig":"266"},{"size":420,"mtime":1625627694855,"results":"319","hashOfConfig":"266"},{"size":438,"mtime":1625627694855,"results":"320","hashOfConfig":"266"},{"size":3320,"mtime":1637908728932,"results":"321","hashOfConfig":"266"},{"size":914,"mtime":1625627694858,"results":"322","hashOfConfig":"266"},{"size":170,"mtime":1625627694859,"results":"323","hashOfConfig":"266"},{"size":627,"mtime":1625627694860,"results":"324","hashOfConfig":"266"},{"size":1061,"mtime":1625627694863,"results":"325","hashOfConfig":"266"},{"size":133,"mtime":1637908728932,"results":"326","hashOfConfig":"266"},{"size":7931,"mtime":1637908728933,"results":"327","hashOfConfig":"266"},{"size":751,"mtime":1637063630843,"results":"328","hashOfConfig":"266"},{"size":8378,"mtime":1637908728933,"results":"329","hashOfConfig":"266"},{"size":3313,"mtime":1637908728934,"results":"330","hashOfConfig":"266"},{"size":503,"mtime":1625627694873,"results":"331","hashOfConfig":"266"},{"size":918,"mtime":1637908728935,"results":"332","hashOfConfig":"266"},{"size":770,"mtime":1625627694874,"results":"333","hashOfConfig":"266"},{"size":2531,"mtime":1636687455875,"results":"334","hashOfConfig":"266"},{"size":105,"mtime":1637908728935,"results":"335","hashOfConfig":"266"},{"size":1530,"mtime":1637908728936,"results":"336","hashOfConfig":"266"},{"size":157,"mtime":1637908728936,"results":"337","hashOfConfig":"266"},{"size":1442,"mtime":1625627694882,"results":"338","hashOfConfig":"266"},{"size":817,"mtime":1625627694884,"results":"339","hashOfConfig":"266"},{"size":333,"mtime":1638170756758,"results":"340","hashOfConfig":"266"},{"size":1860,"mtime":1638170756189,"results":"341","hashOfConfig":"266"},{"size":809,"mtime":1638170756246,"results":"342","hashOfConfig":"266"},{"size":385,"mtime":1638170756299,"results":"343","hashOfConfig":"266"},{"size":3194,"mtime":1638170756363,"results":"344","hashOfConfig":"266"},{"size":202,"mtime":1638170993503,"results":"345","hashOfConfig":"266"},{"size":1988,"mtime":1638170756456,"results":"346","hashOfConfig":"266"},{"size":13034,"mtime":1638170756518,"results":"347","hashOfConfig":"266"},{"size":4742,"mtime":1638170756580,"results":"348","hashOfConfig":"266"},{"size":3044,"mtime":1638170756642,"results":"349","hashOfConfig":"266"},{"size":1263,"mtime":1638170756700,"results":"350","hashOfConfig":"266"},{"size":1075,"mtime":1637908728937,"results":"351","hashOfConfig":"266"},{"size":618,"mtime":1637063630864,"results":"352","hashOfConfig":"266"},{"size":7000,"mtime":1625627694887,"results":"353","hashOfConfig":"266"},{"size":2178,"mtime":1637908728938,"results":"354","hashOfConfig":"266"},{"size":1438,"mtime":1637908728938,"results":"355","hashOfConfig":"266"},{"size":5366,"mtime":1638429770193,"results":"356","hashOfConfig":"266"},{"size":1465,"mtime":1637063630875,"results":"357","hashOfConfig":"266"},{"size":2057,"mtime":1636687455879,"results":"358","hashOfConfig":"266"},{"size":601,"mtime":1625627694898,"results":"359","hashOfConfig":"266"},{"size":1041,"mtime":1637908728940,"results":"360","hashOfConfig":"266"},{"size":101,"mtime":1637908728941,"results":"361","hashOfConfig":"266"},{"size":1321,"mtime":1637908728941,"results":"362","hashOfConfig":"266"},{"size":117,"mtime":1637908728942,"results":"363","hashOfConfig":"266"},{"size":447,"mtime":1625627694903,"results":"364","hashOfConfig":"266"},{"size":133,"mtime":1637908728942,"results":"365","hashOfConfig":"266"},{"size":1328,"mtime":1637908728943,"results":"366","hashOfConfig":"266"},{"size":105,"mtime":1637908728943,"results":"367","hashOfConfig":"266"},{"size":3599,"mtime":1625627694906,"results":"368","hashOfConfig":"266"},{"size":125,"mtime":1637908728944,"results":"369","hashOfConfig":"266"},{"size":1187,"mtime":1636687455881,"results":"370","hashOfConfig":"266"},{"size":117,"mtime":1637908728945,"results":"371","hashOfConfig":"266"},{"size":854,"mtime":1637908728945,"results":"372","hashOfConfig":"266"},{"size":105,"mtime":1637908728947,"results":"373","hashOfConfig":"266"},{"size":685,"mtime":1637908728948,"results":"374","hashOfConfig":"266"},{"size":689,"mtime":1637908728948,"results":"375","hashOfConfig":"266"},{"size":770,"mtime":1625627694912,"results":"376","hashOfConfig":"266"},{"size":3254,"mtime":1637908728949,"results":"377","hashOfConfig":"266"},{"size":105,"mtime":1637908728950,"results":"378","hashOfConfig":"266"},{"size":157,"mtime":1637908728950,"results":"379","hashOfConfig":"266"},{"size":1275,"mtime":1637063630877,"results":"380","hashOfConfig":"266"},{"size":263,"mtime":1637063630878,"results":"381","hashOfConfig":"266"},{"size":68,"mtime":1637063630879,"results":"382","hashOfConfig":"266"},{"size":6164,"mtime":1638178954389,"results":"383","hashOfConfig":"266"},{"size":4274,"mtime":1638429886756,"results":"384","hashOfConfig":"266"},{"size":2422,"mtime":1636687455885,"results":"385","hashOfConfig":"266"},{"size":3375,"mtime":1638346535327,"results":"386","hashOfConfig":"266"},{"size":810,"mtime":1638338442134,"results":"387","hashOfConfig":"266"},{"size":779,"mtime":1625627694919,"results":"388","hashOfConfig":"266"},{"size":459,"mtime":1625627694920,"results":"389","hashOfConfig":"266"},{"size":224,"mtime":1638429281029,"results":"390","hashOfConfig":"266"},{"size":768,"mtime":1637908728954,"results":"391","hashOfConfig":"266"},{"size":418,"mtime":1625627694924,"results":"392","hashOfConfig":"266"},{"size":811,"mtime":1637908728954,"results":"393","hashOfConfig":"266"},{"size":2036,"mtime":1637908728955,"results":"394","hashOfConfig":"266"},{"size":351,"mtime":1625627694927,"results":"395","hashOfConfig":"266"},{"size":465,"mtime":1625627694928,"results":"396","hashOfConfig":"266"},{"size":363,"mtime":1625627694930,"results":"397","hashOfConfig":"266"},{"size":977,"mtime":1636687455888,"results":"398","hashOfConfig":"266"},{"size":117,"mtime":1637908728955,"results":"399","hashOfConfig":"266"},{"size":1556,"mtime":1637908728956,"results":"400","hashOfConfig":"266"},{"size":115,"mtime":1637908728957,"results":"401","hashOfConfig":"266"},{"size":732,"mtime":1637908728957,"results":"402","hashOfConfig":"266"},{"size":1951,"mtime":1625627694938,"results":"403","hashOfConfig":"266"},{"size":1075,"mtime":1637908728958,"results":"404","hashOfConfig":"266"},{"size":2015,"mtime":1625627694942,"results":"405","hashOfConfig":"266"},{"size":1334,"mtime":1625627694944,"results":"406","hashOfConfig":"266"},{"size":76,"mtime":1625627694945,"results":"407","hashOfConfig":"266"},{"size":1650,"mtime":1637908728959,"results":"408","hashOfConfig":"266"},{"size":3464,"mtime":1625627694951,"results":"409","hashOfConfig":"266"},{"size":137,"mtime":1637908728959,"results":"410","hashOfConfig":"266"},{"size":1087,"mtime":1637908728959,"results":"411","hashOfConfig":"266"},{"size":1475,"mtime":1637908728960,"results":"412","hashOfConfig":"266"},{"size":405,"mtime":1637908728960,"results":"413","hashOfConfig":"266"},{"size":2577,"mtime":1637908728961,"results":"414","hashOfConfig":"266"},{"size":5690,"mtime":1637908728961,"results":"415","hashOfConfig":"266"},{"size":457,"mtime":1635336266099,"results":"416","hashOfConfig":"266"},{"size":2662,"mtime":1637908728961,"results":"417","hashOfConfig":"266"},{"size":3284,"mtime":1638429836876,"results":"418","hashOfConfig":"266"},{"size":846,"mtime":1634203427221,"results":"419","hashOfConfig":"266"},{"size":1494,"mtime":1638178954398,"results":"420","hashOfConfig":"266"},{"size":1026,"mtime":1637908728963,"results":"421","hashOfConfig":"266"},{"size":1617,"mtime":1637908728963,"results":"422","hashOfConfig":"266"},{"size":772,"mtime":1625627694968,"results":"423","hashOfConfig":"266"},{"size":780,"mtime":1637908728964,"results":"424","hashOfConfig":"266"},{"size":1493,"mtime":1637063630899,"results":"425","hashOfConfig":"266"},{"size":1702,"mtime":1637063630900,"results":"426","hashOfConfig":"266"},{"size":2698,"mtime":1637063630904,"results":"427","hashOfConfig":"266"},{"size":961,"mtime":1637063630908,"results":"428","hashOfConfig":"266"},{"size":6076,"mtime":1638429293557,"results":"429","hashOfConfig":"266"},{"size":111,"mtime":1625627694986,"results":"430","hashOfConfig":"266"},{"size":333,"mtime":1625627694986,"results":"431","hashOfConfig":"266"},{"size":1860,"mtime":1636621372213,"results":"432","hashOfConfig":"266"},{"size":809,"mtime":1635320528743,"results":"433","hashOfConfig":"266"},{"size":385,"mtime":1637908728965,"results":"434","hashOfConfig":"266"},{"size":3194,"mtime":1637908728965,"results":"435","hashOfConfig":"266"},{"size":1134,"mtime":1638176955729,"results":"436","hashOfConfig":"266"},{"size":147,"mtime":1625627694995,"results":"437","hashOfConfig":"266"},{"size":1988,"mtime":1637908728966,"results":"438","hashOfConfig":"266"},{"size":13034,"mtime":1637908728966,"results":"439","hashOfConfig":"266"},{"size":4742,"mtime":1637908728967,"results":"440","hashOfConfig":"266"},{"size":3044,"mtime":1637908728967,"results":"441","hashOfConfig":"266"},{"size":1263,"mtime":1636621372219,"results":"442","hashOfConfig":"266"},{"size":760,"mtime":1637908728968,"results":"443","hashOfConfig":"266"},{"size":1414,"mtime":1636621372220,"results":"444","hashOfConfig":"266"},{"size":996,"mtime":1638178954404,"results":"445","hashOfConfig":"266"},{"size":1792,"mtime":1637908728968,"results":"446","hashOfConfig":"266"},{"size":149,"mtime":1637908728968,"results":"447","hashOfConfig":"266"},{"size":855,"mtime":1625627695015,"results":"448","hashOfConfig":"266"},{"size":137,"mtime":1637908728969,"results":"449","hashOfConfig":"266"},{"size":2386,"mtime":1637908728969,"results":"450","hashOfConfig":"266"},{"size":117,"mtime":1637908728970,"results":"451","hashOfConfig":"266"},{"size":2362,"mtime":1637063630912,"results":"452","hashOfConfig":"266"},{"size":137,"mtime":1637908728971,"results":"453","hashOfConfig":"266"},{"size":554,"mtime":1637908728971,"results":"454","hashOfConfig":"266"},{"size":1275,"mtime":1625627695024,"results":"455","hashOfConfig":"266"},{"size":263,"mtime":1625627695025,"results":"456","hashOfConfig":"266"},{"size":68,"mtime":1625627695025,"results":"457","hashOfConfig":"266"},{"size":3832,"mtime":1625627695027,"results":"458","hashOfConfig":"266"},{"size":4285,"mtime":1637908728972,"results":"459","hashOfConfig":"266"},{"size":600,"mtime":1625627695030,"results":"460","hashOfConfig":"266"},{"size":526,"mtime":1637908728973,"results":"461","hashOfConfig":"266"},{"size":626,"mtime":1637908728974,"results":"462","hashOfConfig":"266"},{"size":1079,"mtime":1637908728974,"results":"463","hashOfConfig":"266"},{"size":508,"mtime":1637908728975,"results":"464","hashOfConfig":"266"},{"size":509,"mtime":1625627695036,"results":"465","hashOfConfig":"266"},{"size":254,"mtime":1637908728976,"results":"466","hashOfConfig":"266"},{"size":586,"mtime":1637908728976,"results":"467","hashOfConfig":"266"},{"size":407,"mtime":1637908728977,"results":"468","hashOfConfig":"266"},{"size":955,"mtime":1625627695040,"results":"469","hashOfConfig":"266"},{"size":631,"mtime":1637908728978,"results":"470","hashOfConfig":"266"},{"size":8305,"mtime":1638429874112,"results":"471","hashOfConfig":"266"},{"size":599,"mtime":1637908728978,"results":"472","hashOfConfig":"266"},{"size":531,"mtime":1625627695045,"results":"473","hashOfConfig":"266"},{"size":2699,"mtime":1636621372228,"results":"474","hashOfConfig":"266"},{"size":89,"mtime":1637908728979,"results":"475","hashOfConfig":"266"},{"size":924,"mtime":1637908728980,"results":"476","hashOfConfig":"266"},{"size":257,"mtime":1625627695047,"results":"477","hashOfConfig":"266"},{"size":391,"mtime":1637908728981,"results":"478","hashOfConfig":"266"},{"size":415,"mtime":1637908728981,"results":"479","hashOfConfig":"266"},{"size":253,"mtime":1637908728983,"results":"480","hashOfConfig":"266"},{"size":1618,"mtime":1625627695049,"results":"481","hashOfConfig":"266"},{"size":497,"mtime":1608288462668,"results":"482","hashOfConfig":"266"},{"size":966,"mtime":1637908728983,"results":"483","hashOfConfig":"266"},{"size":629,"mtime":1636687455927,"results":"484","hashOfConfig":"266"},{"size":852,"mtime":1637908728984,"results":"485","hashOfConfig":"266"},{"size":86,"mtime":1637908728985,"results":"486","hashOfConfig":"266"},{"size":33006,"mtime":1637908728986,"results":"487","hashOfConfig":"266"},{"size":1454,"mtime":1637908728987,"results":"488","hashOfConfig":"266"},{"size":3932,"mtime":1637908728987,"results":"489","hashOfConfig":"266"},{"size":562,"mtime":1637063630925,"results":"490","hashOfConfig":"266"},{"size":2600,"mtime":1637908728988,"results":"491","hashOfConfig":"266"},{"size":9214,"mtime":1637913764575,"results":"492","hashOfConfig":"266"},{"size":1558,"mtime":1636687455933,"results":"493","hashOfConfig":"266"},{"size":1803,"mtime":1637908728990,"results":"494","hashOfConfig":"266"},{"size":539,"mtime":1636621372242,"results":"495","hashOfConfig":"266"},{"size":989,"mtime":1637908728990,"results":"496","hashOfConfig":"266"},{"size":997,"mtime":1637908728991,"results":"497","hashOfConfig":"266"},{"size":861,"mtime":1636687455937,"results":"498","hashOfConfig":"266"},{"size":2413,"mtime":1625627695098,"results":"499","hashOfConfig":"266"},{"size":640,"mtime":1636621372245,"results":"500","hashOfConfig":"266"},{"size":347,"mtime":1625627695099,"results":"501","hashOfConfig":"266"},{"size":334,"mtime":1636621372246,"results":"502","hashOfConfig":"266"},{"size":351,"mtime":1636621372247,"results":"503","hashOfConfig":"266"},{"size":368,"mtime":1637908728992,"results":"504","hashOfConfig":"266"},{"size":309,"mtime":1636621372250,"results":"505","hashOfConfig":"266"},{"size":674,"mtime":1625627695101,"results":"506","hashOfConfig":"266"},{"size":401,"mtime":1638429910866,"results":"507","hashOfConfig":"266"},{"size":351,"mtime":1636687455939,"results":"508","hashOfConfig":"266"},{"size":1053,"mtime":1637908728993,"results":"509","hashOfConfig":"266"},{"size":4968,"mtime":1637908728994,"results":"510","hashOfConfig":"266"},{"size":1776,"mtime":1637908728994,"results":"511","hashOfConfig":"266"},{"size":2333,"mtime":1637908728995,"results":"512","hashOfConfig":"266"},{"size":1162,"mtime":1637908728996,"results":"513","hashOfConfig":"266"},{"size":116,"mtime":1637908728996,"results":"514","hashOfConfig":"266"},{"size":11995,"mtime":1638178954409,"results":"515","hashOfConfig":"266"},{"size":1481,"mtime":1636621372253,"results":"516","hashOfConfig":"266"},{"size":4604,"mtime":1637908728998,"results":"517","hashOfConfig":"266"},{"size":2015,"mtime":1636621372255,"results":"518","hashOfConfig":"266"},{"size":2670,"mtime":1637908728998,"results":"519","hashOfConfig":"266"},{"size":704,"mtime":1637908728999,"results":"520","hashOfConfig":"266"},{"size":1169,"mtime":1637908729000,"results":"521","hashOfConfig":"266"},{"size":11171,"mtime":1637908729000,"results":"522","hashOfConfig":"266"},{"size":23689,"mtime":1638429519461,"results":"523","hashOfConfig":"266"},{"size":155,"mtime":1637908729001,"results":"524","hashOfConfig":"266"},{"size":4068,"mtime":1637908729001,"results":"525","hashOfConfig":"266"},{"size":6914,"mtime":1637908729002,"results":"526","hashOfConfig":"266"},{"size":2982,"mtime":1637908729002,"results":"527","hashOfConfig":"266"},{"size":3487,"mtime":1637908729003,"results":"528","hashOfConfig":"266"},{"size":972,"mtime":1637134689956,"results":"529","hashOfConfig":"266"},{"filePath":"530","messages":"531","errorCount":0,"warningCount":14,"fixableErrorCount":0,"fixableWarningCount":0,"source":"532"},"n02ik1",{"filePath":"533","messages":"534","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"535","messages":"536","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"537"},{"filePath":"538","messages":"539","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"540","messages":"541","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"542","messages":"543","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"544","messages":"545","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"546"},{"filePath":"547","messages":"548","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"549","messages":"550","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"551","messages":"552","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"553","messages":"554","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"555","messages":"556","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"557"},{"filePath":"558","messages":"559","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"560","messages":"561","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"562","messages":"563","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"564","messages":"565","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"566","messages":"567","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"568"},{"filePath":"569","messages":"570","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"571"},{"filePath":"572","messages":"573","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"574","messages":"575","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"576"},{"filePath":"577","messages":"578","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"579"},{"filePath":"580","messages":"581","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"582"},{"filePath":"583","messages":"584","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"585","messages":"586","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"587"},{"filePath":"588","messages":"589","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"590","messages":"591","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"592"},{"filePath":"593","messages":"594","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"595"},{"filePath":"596","messages":"597","errorCount":0,"warningCount":15,"fixableErrorCount":0,"fixableWarningCount":0,"source":"598"},{"filePath":"599","messages":"600","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"601","messages":"602","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"603"},{"filePath":"604","messages":"605","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"606","messages":"607","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"608"},{"filePath":"609","messages":"610","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"611"},{"filePath":"612","messages":"613","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"614","messages":"615","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"616"},{"filePath":"617","messages":"618","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"619"},{"filePath":"620","messages":"621","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"622"},{"filePath":"623","messages":"624","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"625","messages":"626","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"627"},{"filePath":"628","messages":"629","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"630"},{"filePath":"631","messages":"632","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"633","messages":"634","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"635"},{"filePath":"636","messages":"637","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"638","messages":"639","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"640","messages":"641","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"642","messages":"643","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"644","messages":"645","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"646"},{"filePath":"647","messages":"648","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"649"},{"filePath":"650","messages":"651","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"652"},{"filePath":"653","messages":"654","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"655"},{"filePath":"656","messages":"657","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"658"},{"filePath":"659","messages":"660","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"661","messages":"662","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"663","messages":"664","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"665","messages":"666","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"667","messages":"668","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"669","messages":"670","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"671","messages":"672","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"673","messages":"674","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"675","messages":"676","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"677"},{"filePath":"678","messages":"679","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"680","messages":"681","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"682"},{"filePath":"683","messages":"684","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"685","messages":"686","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"687"},{"filePath":"688","messages":"689","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"690"},{"filePath":"691","messages":"692","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"693"},{"filePath":"694","messages":"695","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"696","messages":"697","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"698","messages":"699","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"700"},{"filePath":"701","messages":"702","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"703","messages":"704","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"705"},{"filePath":"706","messages":"707","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"708","messages":"709","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"710"},{"filePath":"711","messages":"712","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"713"},{"filePath":"714","messages":"715","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"716","messages":"717","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"718","messages":"719","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"720","messages":"721","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"722","messages":"723","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"724"},{"filePath":"725","messages":"726","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"727","messages":"728","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"729"},{"filePath":"730","messages":"731","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"732"},{"filePath":"733","messages":"734","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"735"},{"filePath":"736","messages":"737","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"738"},{"filePath":"739","messages":"740","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"741"},{"filePath":"742","messages":"743","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"744","messages":"745","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"746"},{"filePath":"747","messages":"748","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"749"},{"filePath":"750","messages":"751","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"752"},{"filePath":"753","messages":"754","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"755"},{"filePath":"756","messages":"757","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"758","messages":"759","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"760"},{"filePath":"761","messages":"762","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"763","messages":"764","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"765","messages":"766","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"767"},{"filePath":"768","messages":"769","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"770","messages":"771","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"772"},{"filePath":"773","messages":"774","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"775","messages":"776","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"777","messages":"778","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"779","messages":"780","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"781","messages":"782","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"783","messages":"784","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"785"},{"filePath":"786","messages":"787","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"788","messages":"789","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"790","messages":"791","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"792","messages":"793","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"794","messages":"795","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"796","messages":"797","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"798","messages":"799","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"800","messages":"801","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"802","messages":"803","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"804"},{"filePath":"805","messages":"806","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"807","messages":"808","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"809","messages":"810","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"811","messages":"812","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"813","messages":"814","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"815","messages":"816","errorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":"817"},{"filePath":"818","messages":"819","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"820","messages":"821","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"822"},{"filePath":"823","messages":"824","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"825","messages":"826","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"827"},{"filePath":"828","messages":"829","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"830"},{"filePath":"831","messages":"832","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"833","messages":"834","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"835"},{"filePath":"836","messages":"837","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"838"},{"filePath":"839","messages":"840","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"841","messages":"842","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"843","messages":"844","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"845"},{"filePath":"846","messages":"847","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"848","messages":"849","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"850","messages":"851","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"852","messages":"853","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"854"},{"filePath":"855","messages":"856","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"857","messages":"858","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"859"},{"filePath":"860","messages":"861","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"862","messages":"863","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"864"},{"filePath":"865","messages":"866","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"867","messages":"868","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"869"},{"filePath":"870","messages":"871","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"872"},{"filePath":"873","messages":"874","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"875","messages":"876","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"877","messages":"878","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"879"},{"filePath":"880","messages":"881","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"882","messages":"883","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"884","messages":"885","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"886"},{"filePath":"887","messages":"888","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"889","messages":"890","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"891","messages":"892","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"893","messages":"894","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"895"},{"filePath":"896","messages":"897","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"898","messages":"899","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"900"},{"filePath":"901","messages":"902","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"903","messages":"904","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"905","messages":"906","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"907"},{"filePath":"908","messages":"909","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"910","messages":"911","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"912","messages":"913","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"914","messages":"915","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"916"},{"filePath":"917","messages":"918","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"919"},{"filePath":"920","messages":"921","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"922"},{"filePath":"923","messages":"924","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"925"},{"filePath":"926","messages":"927","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"928","messages":"929","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"930"},{"filePath":"931","messages":"932","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"933","messages":"934","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"935","messages":"936","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"937","messages":"938","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"939","messages":"940","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"941","messages":"942","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"724"},{"filePath":"943","messages":"944","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"945","messages":"946","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"947","messages":"948","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"729"},{"filePath":"949","messages":"950","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"732"},{"filePath":"951","messages":"952","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"735"},{"filePath":"953","messages":"954","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"738"},{"filePath":"955","messages":"956","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"741"},{"filePath":"957","messages":"958","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"959"},{"filePath":"960","messages":"961","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"962","messages":"963","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"964"},{"filePath":"965","messages":"966","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"967","messages":"968","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"969","messages":"970","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"971","messages":"972","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"973","messages":"974","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"975"},{"filePath":"976","messages":"977","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"978","messages":"979","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"980"},{"filePath":"981","messages":"982","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"983","messages":"984","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"985","messages":"986","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"987","messages":"988","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"989","messages":"990","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"991","messages":"992","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"993"},{"filePath":"994","messages":"995","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"996"},{"filePath":"997","messages":"998","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"999"},{"filePath":"1000","messages":"1001","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1002","messages":"1003","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1004","messages":"1005","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1006","messages":"1007","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1008","messages":"1009","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1010","messages":"1011","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1012","messages":"1013","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1014","messages":"1015","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1016","messages":"1017","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1018","messages":"1019","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1020","messages":"1021","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"1022","messages":"1023","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1024","messages":"1025","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1026","messages":"1027","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1028","messages":"1029","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1030","messages":"1031","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1032","messages":"1033","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1034","messages":"1035","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1036","messages":"1037","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1038","messages":"1039","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1040","messages":"1041","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1042"},{"filePath":"1043","messages":"1044","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1045"},{"filePath":"1046","messages":"1047","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1048","messages":"1049","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1050","messages":"1051","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1052","messages":"1053","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1054","messages":"1055","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1056","messages":"1057","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1058","messages":"1059","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1060"},{"filePath":"1061","messages":"1062","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1063"},{"filePath":"1064","messages":"1065","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1066"},{"filePath":"1067","messages":"1068","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1069"},{"filePath":"1070","messages":"1071","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1072"},{"filePath":"1073","messages":"1074","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1075","messages":"1076","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1077","messages":"1078","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1079","messages":"1080","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1081","messages":"1082","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1083","messages":"1084","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1085","messages":"1086","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1087","messages":"1088","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1089","messages":"1090","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1091","messages":"1092","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1093","messages":"1094","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1095","messages":"1096","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1097","messages":"1098","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1099"},{"filePath":"1100","messages":"1101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1102","messages":"1103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1104","messages":"1105","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1106"},{"filePath":"1107","messages":"1108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1109","messages":"1110","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1111","messages":"1112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1113","messages":"1114","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1115"},{"filePath":"1116","messages":"1117","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1118","messages":"1119","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1120"},{"filePath":"1121","messages":"1122","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1123","messages":"1124","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1125"},{"filePath":"1126","messages":"1127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1128","messages":"1129","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1130"},{"filePath":"1131","messages":"1132","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1133","messages":"1134","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1135","messages":"1136","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1137"},{"filePath":"1138","messages":"1139","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1140"},{"filePath":"1141","messages":"1142","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"1143","messages":"1144","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1145"},{"filePath":"1146","messages":"1147","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1148"},{"filePath":"1149","messages":"1150","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1151"},{"filePath":"1152","messages":"1153","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"1154"},{"filePath":"1155","messages":"1156","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/zhongan/project/za-dplatform-h5/src/actions/handlePlan.js",["1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170"],"import _ from 'lodash';\nimport { getState, dispatch } from '@/store';\nimport { findModuleFromState } from '@/utils/utils';\n\nconst handlePlan = () => {\n // 先从store中获取当前保险计划,如果没有再从 保险计划试算信息收集 组件中获取\n let plan = getState('insurancePlan');\n if (!plan) {\n const collectModule = findModuleFromState((module) => {\n return module.component === 'insurancePlanTrialCollect';\n }) || {};\n plan = collectModule.attrs?.plan;\n }\n if (!plan || plan.length === 0) return;\n\n const formValues = getState('formValues') || {};\n const {\n insurancePlanTrialCollect,\n insurancePlanTrialCollectValue = {\n insurancePeriod: '',\n paymentPeriod: '',\n product: {},\n liability: {},\n },\n insurancePlanTrialCollectId = { insurancePeriodId: '', paymentPeriodId: '' },\n chooseEnumBtnUnit,\n chooseEnumBtnType,\n } = formValues;\n\n const product = insurancePlanTrialCollect?.product || {};\n const liability = insurancePlanTrialCollect?.liability || {};\n const { insurancePeriod, paymentPeriod } = insurancePlanTrialCollectValue; // 用户选择的value存放\n const { insurancePeriodId, paymentPeriodId } = insurancePlanTrialCollectId;\n const sumProduct = insurancePlanTrialCollectValue.product;\n const selectedProductList = insurancePlanTrialCollectValue.product;\n const sumLiability = insurancePlanTrialCollectValue.liability;\n const selectedLiabilityList = insurancePlanTrialCollectValue.liability;\n const unitProduct = chooseEnumBtnUnit?.insurancePlanTrialCollectValue?.product;\n const unitLiability = chooseEnumBtnUnit?.insurancePlanTrialCollectValue?.liability;\n const productCalcType = chooseEnumBtnType?.insurancePlanTrialCollectValue?.product;\n const liabilityCalcType = chooseEnumBtnType?.insurancePlanTrialCollectValue?.liability;\n\n let productId;\n let liabilityId;\n const newPlanList = _.cloneDeep(plan);\n\n // //处理保障期间和缴费期间\n // newPlanList?.planConfigPackageList?.map((item)=>{ // 保障期间或者缴费期间找到对应的id 产品层级\n // item?.planConfigProductList?.map((planItem,index)=>{\n // if (planItem.id === Number(insurancePeriodId)){\n // let insurancePeriodObj = insurancePeriod && JSON.parse(insurancePeriod)\n // planItem.insurancePeriod = insurancePeriodObj?.value// 保障期间值\n // planItem.insurancePeriodUnitType = insurancePeriodObj?.unitType// 保障期间单位\n // }\n // if (planItem.id === Number(paymentPeriodId)){\n // let paymentPeriodObj = paymentPeriod && JSON.parse(paymentPeriod)\n // planItem.paymentPeriod=paymentPeriodObj?.value// 缴费期间值\n // planItem.paymentPeriodUnitType=paymentPeriodObj?.unitType// 缴费期间\n\n // }\n // })\n // })\n\n // 处理固定计划的保额\n newPlanList?.planConfigPackageList?.forEach((packageItem) => {\n packageItem?.planConfigProductList?.forEach((productItem, index) => {\n // 保额算保费\n if (productItem.premiumCalculateType === 'bySumInsured') {\n // 产品层\n if (productItem.fixedSumInsuredValue) {\n if (productItem.sumInsuredType === 'fixed') {\n productItem.sumInsured = productItem?.fixedSumInsuredValue?.value;\n }\n }\n // 责任层\n productItem.planConfigLiabilityList?.forEach((liabilityItem) => {\n if (liabilityItem.sumInsuredType === 'fixed') {\n liabilityItem.sumInsured = liabilityItem?.fixedSumInsuredValue?.value;\n }\n });\n }\n });\n });\n\n // 处理保障期间和缴费期间\n newPlanList?.planConfigPackageList?.forEach((item) => {\n // 保障期间或者缴费期间找到对应的code 产品层级\n item?.planConfigProductList?.forEach((planItem, index) => {\n if (selectedProductList) {\n Object.keys(selectedProductList).forEach((productCode) => {\n if (planItem.productCode === productCode.slice(1)) {\n const insurancePeriodObj = selectedProductList[productCode].insurancePeriod\n && JSON.parse(selectedProductList[productCode].insurancePeriod);\n planItem.insurancePeriod = insurancePeriodObj?.value; // 保障期间值\n planItem.insurancePeriodUnitType = insurancePeriodObj?.unitType; // 保障期间单位\n\n const paymentPeriodObj = selectedProductList[productCode].paymentPeriod\n && JSON.parse(selectedProductList[productCode].paymentPeriod);\n planItem.paymentPeriod = paymentPeriodObj?.value; // 缴费期间值\n planItem.paymentPeriodUnitType = paymentPeriodObj?.unitType; // 缴费期间\n }\n });\n }\n });\n });\n\n // 处理保额\n // newPlanList?.planConfigPackageList?.map((item) => {\n\n // if (sumProduct) {// 产品层级\n // for (let itemCode of Object.keys(sumProduct)) {\n // let sumProductId = itemCode.slice(1)\n // item?.planConfigProductList?.map((planItem, index) => {\n // if (sumProductId === planItem.productCode) {\n // let value = sumProduct[itemCode]\n // let unit = unitProduct[itemCode]\n // // if (unit === 'wanYuan'){\n // // planItem.sumInsured = Number(value*10000)\n // // } else {\n // // planItem.sumInsured = Number(value)\n // // }\n // planItem.sumInsured = Number(value)\n // }\n // if (planItem.sumInsuredType === 'fixed') {\n // planItem.sumInsured = planItem.fixedSumInsuredValue.value\n // }\n // })\n // }\n\n // }\n // if (sumLiability) {// 责任层级\n // for (let itemCode of Object.keys(sumLiability)) {\n // let sumLiabilityId = itemCode.slice(1)\n // item?.planConfigProductList?.map((planItem, index) => {\n // planItem.planConfigLiabilityList.map((ele) => {\n // if ((sumLiabilityId) === ele.liabilityCode) {\n // let value = sumLiability[itemCode]\n // // let unit = unitLiability[itemCode]\n\n // // if (unit === 'wanYuan'){\n // // ele.sumInsured = Number(value*10000)\n // // } else {\n // // ele.sumInsured = Number(value)\n // // }\n // ele.sumInsured = Number(value)\n // }\n // if (ele.sumInsuredType === 'fixed') {\n // ele.sumInsured = ele.fixedSumInsuredValue.value\n // }\n // })\n // })\n\n // }\n // }\n // })\n\n // 处理保额/保费\n newPlanList?.planConfigPackageList?.forEach((item) => {\n if (selectedProductList) {\n // 产品层级\n Object.keys(selectedProductList).forEach((productCode) => {\n const currentProductCode = productCode.slice(1);\n item?.planConfigProductList?.forEach((planItem, index) => {\n if (currentProductCode === planItem.productCode) {\n // 处理因子\n const factorsObject = selectedProductList[productCode]?.factors;\n if (!planItem.extraInfo) {\n planItem.extraInfo = {};\n }\n\n if (!planItem.dynamicFactorMap) {\n planItem.dynamicFactorMap = {};\n }\n // 合并对象不能改变对象的引用\n Object.keys(factorsObject || {}).forEach((_key) => {\n planItem.dynamicFactorMap[_key] = factorsObject[_key];\n planItem.extraInfo[_key] = factorsObject[_key];\n });\n\n const value = selectedProductList[productCode]?.enum;\n // let calcType = productCalcType && productCalcType[productCode]?.enum;\n const calcType = planItem.premiumCalculateType; // 保费计算类型\n\n if (calcType === 'bySumInsured') {\n if (planItem.sumInsuredType === 'fixed') {\n planItem.sumInsured = planItem.fixedSumInsuredValue.value;\n return;\n }\n planItem.sumInsured = Number(value);\n } else {\n if (planItem.premiumType === 'fixed') {\n planItem.sumInsured = planItem.fixedPremiumValue.value;\n return;\n }\n\n planItem.premium = Number(value);\n }\n }\n });\n });\n }\n if (selectedLiabilityList) {\n // 责任层级\n Object.keys(selectedLiabilityList).forEach((liabilityCode) => {\n const currLiabilityCode = liabilityCode.slice(1);\n item?.planConfigProductList?.forEach((planItem, index) => {\n planItem.planConfigLiabilityList.forEach((ele) => {\n if (currLiabilityCode === ele.liabilityCode) {\n // 处理因子\n const factorsObject = selectedLiabilityList[liabilityCode]?.factors;\n\n if (!ele.extraInfo) {\n ele.extraInfo = {};\n }\n\n if (!ele.dynamicFactorMap) {\n ele.dynamicFactorMap = {};\n }\n\n // 合并对象不能改变对象的引用\n Object.keys(factorsObject || {}).forEach((_key) => {\n ele.dynamicFactorMap[_key] = factorsObject[_key];\n ele.extraInfo[_key] = factorsObject[_key];\n });\n\n const value = selectedLiabilityList[liabilityCode].enum;\n const calcType = liabilityCalcType[liabilityCode].enum;\n\n if (calcType === 'bySumInsured') {\n if (ele.sumInsuredType === 'fixed') {\n ele.sumInsured = ele.fixedSumInsuredValue.value;\n return;\n }\n ele.sumInsured = Number(value);\n } else {\n if (ele.premiumType === 'fixed') {\n ele.sumInsured = ele.fixedPremiumValue.value;\n return;\n }\n ele.premium = Number(value);\n }\n }\n });\n });\n });\n }\n });\n\n // 处理投保不投保 包含投保人豁免\n newPlanList?.planConfigPackageList?.forEach((item) => {\n if (product) {\n Object.keys(product).forEach((itemCode) => {\n // 先遍历产品产品层级\n item?.planConfigProductList?.forEach((planItem, index) => {\n productId = itemCode.slice(1);\n if (productId === planItem.productCode) {\n // 产品层级\n if (product[itemCode] === 'N') {\n // 选择不投保 产品plan里面这个产品\n item.planConfigProductList.splice(index, 1);\n }\n }\n });\n });\n }\n if (liability) {\n // 没有产品层级\n item?.planConfigProductList?.forEach((planItem, index) => {\n Object.keys(liability).forEach((itemCode) => {\n // 再遍历责任层级 责任层级不投保,删除plan这个责任层级\n planItem?.planConfigLiabilityList?.length > 0\n && planItem?.planConfigLiabilityList.forEach((liabilityItem, i) => {\n liabilityId = itemCode.slice(1);\n if (liabilityId === liabilityItem.liabilityCode) {\n if (liability[itemCode] === 'N') {\n planItem?.planConfigLiabilityList.splice(i, 1);\n }\n }\n });\n });\n });\n }\n });\n\n // 不管产品层级是必选还是可选 只要责任层级没有任何投保的 则删除这个产品层级\n newPlanList?.planConfigPackageList?.forEach((_product) => {\n _product.planConfigProductList.forEach((item, index) => {\n if (item.planConfigLiabilityList.length === 0) {\n item.planConfigProductList?.splice(index, 1);\n }\n });\n });\n\n newPlanList?.planConfigPackageList?.forEach((_product) => {\n _product.productList = _product.planConfigProductList;\n delete _product.planConfigProductList;\n _product.productList.forEach((item) => {\n item.liabilityList = item.planConfigLiabilityList;\n delete item.planConfigLiabilityList;\n });\n });\n\n dispatch({\n handlePlan: newPlanList,\n });\n return newPlanList;\n};\n\nexport default handlePlan;\n","/Users/zhongan/project/za-dplatform-h5/src/actions/tool/form.js",[],"/Users/zhongan/project/za-dplatform-h5/src/app.js",["1171","1172"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-14 14:05:10\n * @LastEditTime: 2021-07-05 18:56:45\n * @LastEditors: wangshengqiang\n * @Description: app\n */\nimport 'babel-polyfill';\nimport React, { useEffect, Suspense } from 'react';\nimport { Provider } from 'react-redux';\nimport { Route, Router, Switch, withRouter } from 'react-router';\nimport { Loading } from 'zarm';\nimport { store } from '@/store';\nimport { getHistory } from './history';\nimport Index from './pages/index';\nimport './app.less';\nimport Querypay from './pages/abandonPay/query/index';\nimport Confirmpay from './pages/abandonPay/confirm/index';\nimport testModule from '../mock/testModules';\n\n// const Querypay = React.lazy(() => import(/* webpackChunkName: \"Querypay\" */ './pages/abandonPay/query/index'));\n// const Confirmpay = React.lazy(() => import(/* webpackChunkName: \"Confirmpay\" */ './pages/abandonPay/confirm/index'));\n\nfunction ImportLoading() {\n useEffect(() => {\n Loading.show();\n return () => {\n Loading.hide();\n };\n }, []);\n return null;\n}\n\nexport default function App({ baseUrl }) {\n const History = getHistory(baseUrl);\n return (\n \n \n {/* }> */}\n \n \n \n \n \n \n {/* */}\n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/CertValidity/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/CustomIcon/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/DateSelect/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/FormItem/index.js",["1173"],"import React, { useContext, useEffect } from 'react';\nimport _ from 'lodash';\nimport { useSelector } from 'react-redux';\nimport { Message, Icon, Cell } from 'zarm';\nimport { FormContext } from '@/store/context';\nimport './index.less';\n\nfunction ErrorMsg({ message }) {\n if (!message) {\n return null;\n }\n const iconNode = ;\n return (\n \n {message}\n \n );\n}\n// name 表单名称\n// fieldOption { rules : [], isPremiumFactor: false, ... }\n// children 需要被统一管理的字段组件\n// label, 字段标题\n// description 在表单组件后面出现\nconst FormItem = ({\n name,\n isShow,\n fieldOption = {},\n children,\n label,\n description,\n noStyle = false,\n}) => {\n const form = useContext(FormContext);\n // const [isInit, setIsI nit] = useState(true);\n const { getFieldDecorator, getFieldError, setFieldsValue } = form;\n const errors = getFieldError(name);\n const errMsg = errors ? errors.join(',') : '';\n const value = useSelector((state) => {\n return _.get(state.formValues, name);\n });\n\n const setValue = (val) => {\n setFieldsValue({\n [`${name}`]: val,\n });\n };\n const { isBenefitFactor, isPremiumFactor, initialValue } = fieldOption;\n const _rules = Array.isArray(fieldOption.rules) ? fieldOption.rules.slice() : [];\n if (isPremiumFactor || isBenefitFactor) {\n _rules.push({ required: true, message: '请输入' });\n }\n\n useEffect(() => {\n setTimeout(() => {\n if (!value && initialValue) {\n setValue(initialValue);\n }\n }, 100);\n }, [initialValue]);\n\n useEffect(() => {\n if (value) {\n setValue(value);\n }\n }, [value]);\n\n if (noStyle) {\n return getFieldDecorator([name], {\n ...fieldOption,\n rules: _rules,\n })(children);\n }\n return (\n
\n
\n
\n
\n \n {getFieldDecorator([name], {\n ...fieldOption,\n rules: _rules,\n })(children)}\n \n | \n
\n
\n
\n \n
\n
\n );\n};\nexport default FormItem;\n","/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Iconfont/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Remark/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/Select/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/baseComponents/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabs/index.js",["1174","1175","1176","1177","1178"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 14:12:04\n * @LastEditTime: 2021-04-25 10:41:30\n * @LastEditors: wangshengqiang\n * @Description: 可以快速定位到选择的模块上,相当于模块锚点\n */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport classnames from 'classnames';\nimport _ from 'lodash';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Tabs } from 'zarm';\nimport { isPreviewMode } from '@/utils/tool';\nimport './index.less';\n\nconst { Panel } = Tabs;\n\nconst AnchorTabs = (props) => {\n const { attrs } = props;\n const {\n dataSource = [],\n maxTitleCount,\n isMultiple,\n maxCount,\n } = attrs;\n const flagObj = useRef();\n const timer = useRef();\n if (dataSource.length === 0) {\n return null;\n }\n\n const [tabValue, setTabValue] = useState(0);\n\n const scrollChange = (e) => {\n if (flagObj.current) return;\n let current = { top: undefined, index: tabValue };\n\n dataSource.forEach(({ target }, index) => {\n if (document.getElementById(target)) {\n const [{ top, height }] = document.getElementById(target).getClientRects();\n // 找出没有被完全滚进屏幕顶端的 最上方的元素下标\n if (top - 43 > -height) {\n current = current.top === undefined || top < current.top ? { top, index } : current;\n }\n }\n });\n setTabValue(current.index);\n };\n\n useEffect(() => {\n if (!isPreviewMode()) {\n document.addEventListener('scroll', _.debounce(scrollChange, 60));\n }\n }, []);\n\n const tabChange = (index) => {\n if (timer.current) {\n clearTimeout(timer.current);\n }\n flagObj.current = true;\n dataSource.forEach((item, tabIndex) => {\n if (tabIndex === index) {\n setTabValue(index);\n const element = document.getElementById(item.target);\n\n if (!element) {\n return;\n }\n\n const a = element.getBoundingClientRect().top;\n const b = document.documentElement.getBoundingClientRect().top;\n\n document.documentElement.scrollTop = a - b - 42;\n document.body.scrollTop = a - b - 42;\n }\n });\n timer.current = setTimeout(() => {\n flagObj.current = false;\n }, 2000);\n };\n\n return (\n \n
\n {dataSource.map((item, index) => {\n const cls = classnames({\n 'anchor-tabs-title': true,\n active: index === tabValue,\n });\n\n return {item.title}} />;\n })}\n \n
\n );\n};\n\nexport default AnchorTabs;\n","/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabsModule/TabsModule.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/AnchorTabsModule/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/BankAccountName/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Banks/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Banner/index.js",["1179","1180","1181","1182"],"import React, { useState } from 'react';\nimport cn from 'classnames';\nimport { Carousel, Icon } from 'zarm';\nimport './index.less';\n\nfunction renderButton(button = [], events) {\n const [first = {}] = button;\n const { imageUrl = '' } = first;\n\n const style = {\n backgroundImage: `url(${imageUrl})`,\n };\n\n // const onClick = getLocalClick(events);\n const onClick = () => {\n // console.log('evenet:', events);\n };\n\n return (\n \n );\n}\n\nfunction renderItems(imgs, videos) {\n let imgItems = [];\n let videoItems = [];\n let ret;\n if (imgs && imgs.length) {\n imgItems = imgs.map((item, index) => {\n return (\n \n

\n
\n );\n });\n }\n if (videos && videos.length) {\n videoItems = videos.map((item, index) => {\n return ;\n });\n }\n ret = imgItems.concat(videoItems);\n if (!ret.length) {\n ret = ;\n }\n return ret;\n}\n\nfunction Video({ src, className }) {\n const [play, setPlay] = useState(false);\n return (\n \n
\n
{\n e.target.previousSibling.play();\n setPlay(true);\n }}\n />\n
\n );\n}\n\nfunction Features({ data }) {\n if (!data || !data.length) {\n return null;\n }\n return (\n
\n {data.map((item, index) => (\n - \n \n {item}\n
\n ))}\n
\n );\n}\n\nexport default function Banner(props) {\n const { attrs = {} } = props;\n const { imgs, videos, button, events, features } = attrs;\n const items = renderItems(imgs, videos);\n\n const cls = cn({\n 'c-banner': true,\n 'button-banner': !!button,\n });\n\n return (\n
\n {items.length > 1 ? (\n \n {items}\n \n ) : (\n items[0]\n )}\n \n {renderButton(button, events)}\n
\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/BaseModule/index.js",["1183","1184","1185"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-25 10:29:18\n * @LastEditTime: 2021-10-11 17:09:38\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, { createContext, useContext } from 'react';\nimport _ from 'lodash';\nimport { isInTemplateTool } from '@/utils/tool';\n\nexport const ModuleContext = createContext({});\nexport const useCurrentModule = () => {\n return useContext(ModuleContext);\n};\n\nconst BaseModule = (props) => {\n const { Render: RD, id, moduleUid, children, label } = props;\n if (!children || children.length === 0) return null;\n // console.log('base==>', props);\n if (moduleUid) {\n return (\n
\n \n {/* {isInTemplateTool &&
{label}
} */}\n \n \n \n );\n }\n return (\n
\n \n
\n );\n};\n\nexport default BaseModule;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/Item.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/ItemRender.js",["1186"],"/*\n * @Author: your name\n * @Date: 2021-01-19 18:19:40\n * @LastEditTime: 2021-10-14 19:13:11\n * @LastEditors: wangshengqiang\n * @Description: In User Settings Edit\n * @FilePath: /za-dplatform-product-life/Users/zhongan/project/za-dplatform-main/za-dplatform-h5/src/components/Beneficiary/ItemRender.js\n */\nimport React, { useState } from 'react';\nimport { Input } from 'zarm';\nimport { FormItem } from '@/baseComponents';\nimport { useFormContext } from '@/store/context.js';\nimport { CPopup, ButtonDelete } from '../common';\n\nconst getPreLeveFormKey = (formKey) => {\n const keys = formKey.split(/\\.|\\[/g);\n const nextkeys = keys.map((i) => {\n if (/\\]/g.test(i)) {\n return `[${i}`;\n }\n return i;\n });\n nextkeys.pop();\n const preKey = nextkeys.join('.').replaceAll('.[', '[');\n return preKey;\n};\n\nexport default function BeneficiaryRender({\n prefix,\n total,\n index,\n Render,\n preview,\n config,\n onDelete,\n}) {\n const [visible, setVisible] = useState(preview);\n const form = useFormContext();\n const handleDelete = () => {\n onDelete(index);\n };\n const preFormKey = getPreLeveFormKey(config[0].formKey);\n\n function handleBeneficiaryInputOk() {\n form.validateFields([preFormKey]).then((vals) => {\n setVisible(false);\n });\n }\n\n const title = (\n
1}\n onDelete={() => handleDelete()}\n />\n );\n\n const formItemProps = {\n hasArrow: true,\n name: `${preFormKey}.name`,\n label: title,\n fieldOption: {\n rules: [{ required: true, message: '请输入' }],\n },\n };\n return (\n \n \n setVisible(true)} />\n \n {\n setVisible(false);\n }}\n onRightClick={() => {\n handleBeneficiaryInputOk();\n }}\n >\n \n \n
\n\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/Beneficiary/index.js",["1187"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-13 15:32:55\n * @LastEditTime: 2021-11-17 17:50:59\n * @LastEditors: wangshengqiang\n * @Description: 受益人组件\n */\nimport React, { useEffect } from 'react';\nimport { getState, useStore } from '@/store';\nimport { isPreviewMode } from '@/utils/tool';\nimport { Detail } from '../common';\nimport BeneficiaryItem from './Item';\nimport './index.less';\n\nfunction updateFormKey2(configs, index) {\n const _formValueKey = `beneficiary[${index}]` || '';\n return configs.map((item) => {\n return {\n ...item,\n _formValueKey,\n formKey: item.formKey && item.formKey.replace('beneficiary', _formValueKey),\n };\n });\n}\n\nconst Beneficiary = (props) => {\n const { attrs, children, Render } = props;\n const { benefitMaxCount, prefix = '受益人', ...rest } = attrs;\n const isMutipleInsurant = getState('maxInsurant') > 1;\n\n const typeConfig = [];\n const restConfig = [];\n children.forEach((item) => {\n // benefitSpecialType beneficiaryType 旧\n if (item.component === 'beneficiaryType') {\n typeConfig.push(item);\n } else {\n restConfig.push(item);\n }\n });\n\n const holderName = useStore('formValues.policyHolder.name');\n const _insurants = useStore('formValues.insured');\n let insurants = Array.isArray(_insurants) ? _insurants : [_insurants];\n if (insurants.length === 0) {\n insurants = [{}];\n }\n useEffect(() => {\n }, []);\n\n // 根据投保人人数选择受益人\n return insurants.map((item, index) => {\n const config1 = updateFormKey2(typeConfig, index);\n const config2 = updateFormKey2(restConfig, index);\n item = item || {};\n const isSelf = item.holderRelation === 'self';\n\n return (\n \n {isMutipleInsurant && (\n \n )}\n {isPreviewMode() ? (\n \n ) : (\n \n )}\n
\n );\n });\n};\n\nexport default Beneficiary;\n","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstration/index.js",["1188","1189","1190","1191","1192","1193","1194","1195"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-19 10:08:41\n * @LastEditTime: 2021-08-26 17:04:18\n * @LastEditors: wangshengqiang\n * @Description: 利益演示模块\n */\nimport React, { useEffect, useState } from 'react';\nimport { Tabs } from 'zarm';\nimport _ from 'lodash';\nimport cn from 'classnames';\nimport { isPreviewMode } from '@/utils/tool';\nimport { getState, dispatch } from '@/store';\nimport request from '@/utils/request';\nimport { getFetchBaseData } from '@/utils/utils';\nimport SingleAlert from '@/singleAlert';\nimport ZaToast from '@/utils/ZaToast.js';\nimport { ModuleContext } from '../BaseModule';\nimport './index.less';\nimport previewData from './previewData';\n\nexport default function BenefitDemonstration(props = {}) {\n const { id, label, children, attrs, form, Render, component } = props;\n const { componentName } = attrs || {};\n const [isCanRequestBenfactor, setIsCanRequestBenfactor] = useState(true);\n const formState = getState('formValues');\n const [benefitTable, setBenefitTable] = useState([]);\n const [current, setCurrent] = useState(0);\n let key;\n // 查看所有的试算因子是否填写完成\n\n // 利益演算接口 入参跟试算一样\n const doBenefitDemo = async () => {\n const data = getFetchBaseData();\n const opts = { method: 'POST', data };\n const res = (await request('/v1/insure/benefitCalculate', opts)) || {};\n const { code, message, result } = res;\n if (Number(code)) {\n const codeList = ['20000', '20019'];\n if (codeList.includes(code)) {\n const modal = SingleAlert({\n title: '温馨提示',\n content: message,\n onCancel: () => {\n modal.hide();\n },\n });\n return;\n }\n ZaToast.show(message);\n return;\n }\n\n return result;\n };\n\n const formValuesStr = form.getFieldsValue(undefined, (fieldMeta) => {\n return fieldMeta.isBenefitFactor;\n });\n\n const isBenefitFactor = async () => {\n setIsCanRequestBenfactor(true);\n // getBenfitFactor(); // 手动展示利益演示副标题\n const data = (await doBenefitDemo()) || [];\n // data: Array<{datas, titles, benefitFactors, comparisonChartAttr}>;\n const _data = [...data];\n // dispatch({\n // benefitTable: _data,\n // });\n setBenefitTable(_data);\n };\n\n useEffect(() => {\n if (isPreviewMode()) {\n setBenefitTable(previewData);\n return;\n }\n\n const names = form.getFieldsName((meta) => meta.isBenefitFactor);\n form\n .validateFields(names, { noUpdate: true })\n .then((val) => {\n isBenefitFactor();\n })\n .catch(() => {\n setIsCanRequestBenfactor(false);\n });\n }, [JSON.stringify(formValuesStr)]);\n\n const cls = cn({\n [component]: true,\n });\n\n // 取被保人列表\n const insuredList = formState.trailElement?.[1] || [];\n\n return (\n \n
\n \n {insuredList?.length > 1\n && insuredList.map((insurer, index) => {\n return (\n
{\n setCurrent(index);\n }}\n >\n {insurer.name || `被保人${index + 1}`}\n
\n );\n })}\n
\n \n \n
\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstration/previewData.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationBar/index.js",["1196","1197","1198","1199","1200","1201","1202","1203"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-19 10:48:45\n * @LastEditTime: 2021-05-24 20:22:01\n * @LastEditors: wangshengqiang\n * @Description: 利益演示工具栏\n */\nimport React, { useState, useEffect, useMemo, useContext } from 'react';\nimport styled from 'styled-components';\nimport { Popper, Modal } from 'zarm';\nimport { Popover, Button } from 'antd';\nimport { QuestionCircleOutlined } from '@ant-design/icons';\nimport { dispatch as dvaDispatch } from '@/store';\nimport { ModuleContext } from '../BaseModule';\n\nimport './index.less';\n\nconst BenefitDemonstrationBar = (props) => {\n const { attrs } = props;\n const { benefitTable } = useContext(ModuleContext);\n const { insured, isShow, productBenefit } = attrs;\n const { datas, titles, comparisonChartAttr = [], benefitFactors } = benefitTable || {};\n // if ( !benefitTable) return null;\n\n const formatBenefitTable = useMemo(() => {\n const result = {};\n comparisonChartAttr?.forEach(({ itemCode, detailDesc, displayName, value }) => {\n result[itemCode] = { detailDesc, displayName, value };\n });\n return result;\n }, [benefitTable]);\n\n useEffect(() => {\n // 第一次进来把选中的利益演示表存入store\n dvaDispatch({ productBenefit: productBenefit || {} }); // 这样存会和利益演示滑动图模块产生覆盖\n }, []);\n\n if (!isShow || !benefitTable) return null;\n\n const TOTAL_BENEFIT_D_PREMIUM = formatBenefitTable.TOTAL_BENEFIT_D_PREMIUM || {};\n const TOTAL_PREMIUM = formatBenefitTable.TOTAL_PREMIUM || {};\n const TOTAL_BENEFIT = formatBenefitTable.TOTAL_BENEFIT || {};\n\n const ratioValue = Number(TOTAL_BENEFIT_D_PREMIUM.value);\n const ratio = Number.isFinite(1 / ratioValue) ? 0 : (1 / ratioValue).toFixed(2);\n\n const showDetailDesc = (desc) => {\n const modal = Modal.alert({\n content: desc,\n cancelText: '知道了',\n onCancel: () => {\n modal.hide();\n },\n });\n };\n\n return (\n \n
\n {TOTAL_BENEFIT_D_PREMIUM.displayName}≈{TOTAL_BENEFIT_D_PREMIUM.value}倍\n \n
\n
\n
\n
\n {TOTAL_PREMIUM.displayName}\n showDetailDesc(TOTAL_PREMIUM.detailDesc)} />\n
\n
{TOTAL_PREMIUM.value}元
\n
\n
\n
\n {TOTAL_BENEFIT.displayName}\n showDetailDesc(TOTAL_BENEFIT.detailDesc)} />\n
\n
{TOTAL_BENEFIT.value}元
\n
\n
\n
\n );\n};\n\nexport default BenefitDemonstrationBar;\n\nconst StyledTitle = styled.div`\n padding: 0 22px;\n text-align: center;\n font-size: 24px;\n & > span {\n color: blue;\n }\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationFactor/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationSlider/index.js",["1204","1205","1206"],"import React, { useState, useMemo, useEffect, useReducer, useContext } from 'react';\nimport styled from 'styled-components';\nimport { Slider } from 'antd';\nimport { ActionSheet } from 'zarm';\nimport { MinusOutlined, PlusOutlined, CaretDownOutlined } from '@ant-design/icons';\nimport { subscribe, dispatch as dvaDispatch } from '@/store';\nimport { ModuleContext } from '../BaseModule';\nimport './index.less';\n\nconst reducer = (store, { type, payload }) => {\n switch (type) {\n case 'setState':\n return {\n ...store,\n ...payload,\n };\n default:\n return store;\n }\n};\n\nconst initialState = {\n sheetVisible: false,\n // current: {},\n index: 0,\n};\nconst BenefitDemonstrationSlider = (props) => {\n const { attrs, productBenefit } = props;\n const { benefitTable } = useContext(ModuleContext);\n const { datas, titles } = benefitTable || {};\n const [store, dispatch] = useReducer(reducer, initialState);\n\n const setState = (payload) => {\n dispatch({ type: 'setState', payload });\n };\n\n const selectedHandle = (data, i) => {\n setState({\n sheetVisible: false,\n i,\n });\n };\n\n const dataList = useMemo(() => {\n return datas?.map((item, i) => {\n return {\n text: `保单年度${item[0]}, 被保人${item[1]}岁时`,\n onClick: () => {\n selectedHandle(item, i);\n },\n };\n });\n }, [datas]);\n\n useEffect(() => {\n // 第一次进来把选中的利益演示表存入store\n dvaDispatch({ productBenefit: productBenefit || {} }); // 这样存会和利益演示模块产生覆盖\n return subscribe(() => {\n setState({ index: 0 });\n }, 'benefitTable');\n }, []);\n\n if (!benefitTable) return null;\n\n const { sheetVisible, index } = store;\n\n const current = datas[index] || [];\n current[1] = Number(current[1]);\n const min = Number(datas[0]?.[1]);\n const max = Number(datas[datas.length - 1][1]);\n // ;\n\n if (!datas || datas.length === 0 || !titles) return null;\n return (\n \n \n {\n setState({ sheetVisible: true });\n }}\n >\n \n 保单年度{current[0]}年, 被保人{current[1]}岁时\n
\n \n \n\n {titles.map((item, i) => {\n if (i < 2) {\n return null;\n }\n return (\n \n {item}
\n \n {current[i]} {!String(current[i]).endsWith('%') && '元'}\n
\n \n );\n })}\n \n \n {\n if (current[1] > min) {\n setState({ index: index - 1 });\n }\n }}\n >\n \n \n triggerNode}\n min={min}\n max={max}\n defaultValue={current[1]}\n tooltipVisible\n tipFormatter={(value) => `${value}岁`}\n value={current[1]}\n onChange={(value) => {\n const _index = datas.findIndex((item) => {\n return item[1] == value;\n });\n setState({ index: _index });\n }}\n />\n {\n if (current[1] < max) {\n setState({ index: index + 1 });\n }\n }}\n >\n = max ? '#ccc' : 'var(--theme-primary)', fontSize: '16px' }}\n />\n \n \n {\n setState({ sheetVisible: false });\n }}\n />\n \n );\n};\n\nexport default BenefitDemonstrationSlider;\n\nconst StyledSlider = styled.div`\n margin: 0 14px;\n`;\nconst StyledMessage = styled.div`\n margin: 14px 18px;\n border: 1px solid var(--theme-primary-shallow);\n padding: 14px 18px;\n border-radius: 4px;\n`;\n\nconst StyledSliderAction = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n width: 22px;\n height: 22px;\n border: 1px solid #ccc;\n border-radius: 3px;\n`;\n\nconst StyledSliderWrap = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n .ant-slider {\n flex: 1;\n margin: 10px 20px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: rgba(0,0,0,.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n -webkit-font-feature-settings: \"tnum\";\n font-feature-settings: \"tnum\";\n position: relative;\n height: 12px;\n margin: 10px 20px;\n padding: 4px 0;\n cursor: pointer;\n -ms-touch-action: none;\n touch-action: none;\n .ant-slider-rail {\n height: 8px;\n border-radius: 4px;\n position: absolute;\n height: 4px;\n border-radius: 2px;\n -webkit-transition: background-color .3s;\n transition: background-color .3s;\n width: 100%;\n background-color: #f5f5f5;\n }\n .ant-slider-track {\n background-color: var(--theme-primary);\n height: 8px;\n border-radius: 4px;\n position: absolute;\n height: 4px;\n border-radius: 2px;\n -webkit-transition: background-color .3s;\n transition: background-color .3s;\n \n }\n .ant-slider-handle {\n border-color: var(--theme-primary-shallow);\n background-color: var(--theme-primary);\n width: 34px;\n height: 22px;\n border: none;\n border-radius: 11px;\n margin-top: -7px;\n\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n top: -26px;\n left: 10px;\n width: 10px;\n height: 10px;\n border-left: 1px solid var(--theme-primary-shallow);\n border-bottom: 1px solid var(--theme-primary-shallow);\n background: #fff;\n transform: rotate(-45deg);\n }\n }\n .ant-tooltip-arrow {\n display: none;\n }\n .ant-tooltip {\n top: 0 !important;\n }\n .ant-tooltip-inner {\n padding: 0;\n line-height: 22px;\n background: none;\n min-height: unset;\n box-shadow: unset;\n color: #fff;\n }\n }\n`;\n\nconst StyledCondition = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 10px;\n border-radius: 4px;\n background-color: var(--theme-primary-shallow);\n font-weight: 600;\n line-height: 1.1;\n margin-bottom: 6px;\n span {\n color: var(--theme-primary);\n }\n`;\n\nconst StyledRow = styled.div`\n display: flex;\n div {\n line-height: 28px;\n }\n & > div:nth-child(1) {\n text-align: right;\n flex: 4;\n }\n & > div:nth-child(2) {\n text-align: left;\n flex: 5;\n padding-left: 16px;\n }\n span {\n color: var(--theme-primary);\n margin-right: 6px;\n }\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/BenefitDemonstrationTable/index.js",["1207","1208","1209","1210","1211","1212"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-19 10:56:35\n * @LastEditTime: 2021-05-24 18:42:14\n * @LastEditors: wangshengqiang\n * @Description: 利益演示表格\n */\nimport React, { useEffect, useState, useContext } from 'react';\nimport { ModuleContext } from '../BaseModule';\nimport './index.less';\n\nconst BenefitDemonstrationTable = (props = {}) => {\n const { attrs } = props;\n const { benefitTable } = useContext(ModuleContext);\n const { datas = [], titles = [] } = benefitTable || {};\n if (!datas || !titles) return null;\n\n return (\n \n
\n
\n \n \n {titles?.map((item, index) => {\n return | {item} | ;\n })}\n
\n \n \n {datas?.map((colItem, i) => {\n return (\n \n {colItem.map((ele, k) => {\n return | {ele} | ;\n })}\n
\n );\n })}\n \n
\n
\n
\n );\n};\n\nexport default BenefitDemonstrationTable;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Button/hooks.js",["1213","1214","1215","1216","1217","1218","1219","1220","1221","1222","1223","1224","1225","1226","1227"],"import { useRef, useState, useEffect } from 'react';\nimport Clipboard from 'clipboard';\nimport _ from 'lodash';\nimport { Toast, Loading, Modal as ZaModal } from 'zarm';\nimport ZaToast from '@/utils/ZaToast';\nimport { getState, dispatch } from '@/store';\nimport { goNext, jumpPage } from '@/utils/navigation';\nimport { createForm } from '@/actions/tool/form';\nimport { getQueryParam, getHashParam } from '@/utils/tool';\nimport request from '@/utils/request';\nimport Modal from '@/components/Modal';\nimport { PLAN_ID, FETCH_STORE } from '@/constants';\nimport SingleAlert from '@/singleAlert';\nimport {\n getPage,\n findModuleFromPage,\n getNextStep,\n} from '@/utils/utils';\n\n// 处理前端配置的事件\nconst handleActionNextStep = (eventConfig, moduleConfig) => {\n const buttonCode = moduleConfig.id;\n getNextStep(buttonCode);\n};\n\nconst cacheStore = {};\n\nconst debounceRequest = (...args) => {\n const key = args.reduce((res = '', arg = '') => {\n const partKey = typeof arg === 'object' ? JSON.stringify(arg) : arg;\n\n return `${res}${partKey}`;\n }, 'debounce - ');\n\n if (!cacheStore[key]) {\n cacheStore[key] = request(...args)\n .then((res = {}) => {\n cacheStore[key] = undefined;\n return res;\n })\n .catch((e) => {\n cacheStore[key] = undefined;\n throw e;\n });\n }\n\n return cacheStore[key];\n};\n\nconst toArray = (list = []) => {\n return Array.isArray(list) ? list : [list];\n};\n\nconst getOrderData = () => {\n const fetchStore = getState(FETCH_STORE) || {};\n const queryParams = getQueryParam() || {};\n\n // 如果是告知列表页添加标识符\n const notificationModule = findModuleFromPage((module) => {\n return module.component === 'healthNotificationListModule';\n });\n\n return {\n ...fetchStore,\n ...queryParams,\n needAllInsured: true, // !!notificationModule\n };\n};\n\nexport const useEventCallback = (fn) => {\n const ref = useRef(fn);\n\n ref.current = fn;\n\n // return useCallback(\n // (...args) => {\n // const { current } = ref;\n\n // return current && current(...args);\n // },\n // [ref],\n // );\n\n return (...args) => {\n const { current } = ref;\n\n return current && current(...args);\n };\n};\n\n// 获取本地事件处理函数\nexport const getLocalClick = (opts = {}, middlewares = []) => {\n middlewares = toArray(middlewares) || [];\n if (!opts) {\n return;\n }\n\n const { type = '', link = '', modal = '', behavior = '', copyText = '', page = [] } = opts;\n\n const localClick = (eventConfig, moduleConfig) => {\n console.log('moduleConfig: ', moduleConfig);\n console.log('eventConfig: ', eventConfig);\n switch (type) {\n case 'link': {\n window.location.href = link;\n break;\n }\n case 'page': {\n const [pageId, moduleId, tabIndex] = page;\n\n const currentPage = Number(getState('currentPage'));\n const curr = getPage(pageId) || {};\n const { pageOrder } = curr;\n if (pageOrder === currentPage) {\n const element = document.getElementById(moduleId);\n if (!element) {\n return;\n }\n\n if (getState(`module${moduleId}`)) {\n getState(`module${moduleId}`).show();\n getState(`module${moduleId}`).setTab(Number(tabIndex));\n return;\n }\n\n const tab = document.getElementsByClassName('c-AnchorTabsComponents-tabs')[0];\n if (tab) {\n const a = element.getBoundingClientRect().top;\n const tabT = tab.getBoundingClientRect().top;\n const b = document.documentElement.getBoundingClientRect().top;\n if (a > tabT) {\n document.documentElement.scrollTop = a - b - 50;\n document.body.scrollTop = a - b - 50;\n } else {\n document.documentElement.scrollTop = a - b;\n document.body.scrollTop = a - b;\n }\n } else {\n const a = element.getBoundingClientRect().top;\n\n const b = document.documentElement.getBoundingClientRect().top;\n document.documentElement.scrollTop = a - b - 50;\n document.body.scrollTop = a - b - 50;\n }\n } else {\n goNext(pageOrder);\n }\n break;\n }\n case 'modal': {\n const modalObj = getState(`component_${modal}`);\n modalObj && modalObj.show();\n break;\n }\n case 'closeModal': {\n const modalObj = getState(`component_${modal}`);\n modalObj.hide();\n break;\n }\n case 'behavior': {\n if (behavior === 'copyAndOpenWechat') {\n const dom = document.createElement('div');\n\n dom.classList.add('behavior-copy-text');\n dom.setAttribute('data-clipboard-text', copyText);\n document.body.appendChild(dom);\n\n // eslint-disable-next-line no-new\n new Clipboard('.behavior-copy-text');\n dom.click();\n\n setTimeout(() => {\n window.location.href = 'weixin://';\n }, 0);\n } else if (behavior === 'cancel') {\n const modalObj = getState(`component_${modal}`);\n modalObj && modalObj.hide();\n } else if (behavior === 'close') {\n const modalObj = getState(`component_${modal}`);\n modalObj && modalObj.hide();\n } else if (behavior === 'continue') {\n handleActionNextStep(eventConfig, moduleConfig);\n }\n break;\n }\n default:\n console.warn(`按钮不支持${type}的操作`);\n break;\n }\n };\n\n return middlewares.reduceRight((next, middleware) => {\n return middleware(opts, next);\n }, localClick);\n};\n\nexport const useLocalClick = (...args) => {\n const localClick = getLocalClick(...args);\n return useEventCallback(localClick);\n};\n\n// 获取订单数据\nexport const getOrderDetail = async () => {\n const planId = getState(PLAN_ID);\n const data = getOrderData() || {};\n const { orderNo, thirdOrderNo } = data;\n const currentUrl = window.location.href; // baseData\n if (orderNo || thirdOrderNo) {\n const opts = { method: 'POST', data };\n const res = (await request('/v1/insure/queryOrderDetail', opts)) || {};\n const { code, message, result = {} } = res;\n\n if (Number(code) || !res.success) {\n Toast.show(message || '网络异常,请稍后重试');\n return;\n }\n // 详情存入extraInfo\n dispatch('extraInfo', res?.result?.extraInfo);\n dispatch('orderDetail', result);\n // handleNoticeQuestion(res.result);\n\n return { ...result, currentUrl, planId };\n }\n};\n// 流程接口调用\nexport const fetchClick = async (data = {}, middlewares = []) => {\n middlewares = toArray(middlewares);\n const queryParams = getQueryParam() || {};\n // 智能核保跳回时投保流程时 fetch_store被清空, 这时需要取地址栏上的订单号和加密订单号\n if (queryParams.orderNo) {\n data.orderNo = queryParams.orderNo;\n data.encryptOrderNo = queryParams.encryptOrderNo;\n }\n const nextOrderDetail = await getOrderDetail();\n const _premium = getState('premium');\n data.insuredList.forEach((item, inIndex) => {\n item.allowInsure = nextOrderDetail?.insuredList?.[inIndex]?.allowInsure;\n item.selected = nextOrderDetail?.insuredList?.[inIndex]?.selected;\n item.packageList?.forEach((packItem, packIndex) => {\n // // 新增\n // packItem.initialPremium = _premium.initialPremium;\n packItem.productList?.forEach((proItem, proIndex) => {\n const { productCode } = proItem;\n proItem?.liabilityList.forEach((liaItem, liaIndex) => {\n const { liabilityCode } = liaItem;\n nextOrderDetail?.insuredList?.forEach((detailInsuredItem, detailInsuredIndex) => {\n detailInsuredItem?.packageList.forEach((detailPackItem, detailPackIndex) => {\n detailPackItem?.productList.forEach((detailProItem, detailProIndex) => {\n detailProItem?.liabilityList.forEach((detailLiaItem, detailLiaIndex) => {\n const packFlag = detailPackItem.packageCode === packItem.packageCode;\n const personFlag = (item.person?.certNo === detailInsuredItem.person?.certNo);\n const productFlag = productCode === detailProItem.productCode;\n const liaFlag = liabilityCode === detailLiaItem.liabilityCode;\n const sumFlag = packFlag && personFlag && productFlag && liaFlag;\n if (sumFlag) {\n liaItem.sumInsuredString = detailLiaItem.sumInsuredString;\n }\n });\n });\n });\n });\n });\n\n // const _insuredList = getState('premium.insuredList')\n if (_premium?._insuredList) {\n _premium?._insuredList.forEach((pItem, pIndex) => {\n pItem.packageResultList?.forEach((packPItem, packPIndex) => {\n packPItem.productResultList?.forEach((proPItem, proPIndex) => {\n if (productCode === proPItem.productCode) {\n const { initialPremium, amount } = proPItem;\n proItem.premium = initialPremium;\n proItem.sumInsured = amount;\n }\n });\n });\n });\n } else {\n // proItem.premium = _premium.initialPremium;\n // proItem.sumInsured = amount;\n }\n });\n });\n });\n const opts = { method: 'POST', data };\n const { iseebiz } = window;\n const purchaseUserId = queryParams?.purchaseUserId;\n const thirdOrderNo = queryParams?.thirdOrderNo;\n const thirdOrderNoType = queryParams?.thirdOrderNoType;\n const insuredExtension = queryParams?.insuredExtension;\n\n if (iseebiz) {\n data.extraInfo.iseeBiz = iseebiz; // 接入千里眼可回溯\n }\n if (purchaseUserId) {\n data.extraInfo.purchaseUserId = purchaseUserId; // 华米登录id\n }\n if (thirdOrderNo) {\n data.extraInfo.thirdOrderNo = thirdOrderNo; // 第三方登录信息\n }\n if (thirdOrderNoType) {\n data.extraInfo.thirdOrderNoType = thirdOrderNoType; // 第三方登录信息\n }\n if (insuredExtension) {\n data.extraInfo.insuredExtension = insuredExtension; // 第三方扩展字段\n }\n\n Loading.show();\n const res = (await debounceRequest('/v1/insure/nextStep', opts)) || {};\n Loading.hide();\n const { code, message, success, result = {} } = res || {};\n\n if (!success || Number(code)) {\n const codeList = ['20000', '20019'];\n if (codeList.includes(code)) {\n const modal = SingleAlert({\n title: '温馨提示',\n content: message,\n onCancel: () => {\n modal.hide();\n },\n });\n return;\n }\n\n Toast.show(message || '网络异常,请稍后重试');\n return;\n }\n\n const { pageActionList = [] } = result;\n\n pageActionList.forEach((item = {}) => {\n const { pageAction, data: _data = {} } = item;\n const { message: dataMessage, url, formData, pageCode, encryptOrderNo, orderNo } = _data || {};\n const runAction = () => {\n switch (pageAction) {\n case 'updateOrderNo': {\n // const fetchStore = getState(FETCH_STORE) || {};\n\n // dispatch(FETCH_STORE, { ...fetchStore, ...data });\n break;\n }\n case 'alert': {\n const modal = SingleAlert({\n title: '温馨提示',\n content: dataMessage,\n onCancel: () => {\n modal.hide();\n },\n });\n\n break;\n }\n case 'jumpToUrl': {\n window.location.href = url;\n break;\n }\n case 'formSubmit': {\n const _data1 = formData ? JSON.parse(formData) : _data;\n const form = createForm(\n {\n action: url,\n method: 'POST',\n },\n _data1,\n );\n\n form.submit();\n break;\n }\n case 'jumpToPage': {\n const curr = getPage(pageCode) || {};\n const { pageOrder } = curr;\n Modal.hide();\n // goNext(pageOrder);\n if (encryptOrderNo) {\n jumpPage(pageOrder, { encryptOrderNo, orderNo });\n } else {\n jumpPage(pageOrder);\n }\n\n break;\n }\n case 'none':\n default:\n break;\n }\n };\n\n middlewares.reduceRight((next, middleware) => {\n return middleware(item, next);\n }, runAction)();\n });\n};\n\nexport const useNotice = (noticeObjectType) => {\n const [notice, setNotice] = useState({});\n const planId = getState(PLAN_ID);\n useEffect(() => {\n const fn = async () => {\n if (!planId) {\n return;\n }\n // eslint-disable-next-line no-undef\n const data = (await getFetchData()) || {};\n const { certNo } = getHashParam() || {};\n if (certNo) data.extraInfo.currentInsuredFlag = certNo;\n const opts = {\n method: 'POST',\n data: {\n ...data,\n planId,\n noticeObjectType,\n },\n };\n\n const res = (await request('/v1/insure/queryNoticeQuestion', opts)) || {};\n const { code, message, result = {} } = res;\n\n if (Number(code)) {\n ZaToast.show(message || '系统异常,请稍后重试');\n return;\n }\n\n setNotice(result);\n };\n\n fn();\n }, [planId]);\n return [notice, setNotice];\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/Button/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/CalculateTrial/index.js",["1228","1229","1230","1231","1232"],"import React, { useState, useEffect } from 'react';\nimport _ from 'lodash';\nimport './index.less';\nimport { getFormValue } from '@/store';\nimport { RowBlockTitle, DeletableBlock, AddableBlock } from '../common';\nimport { updateFormKey } from '../../utils/tool';\n\nfunction InsurantItem(props) {\n //\n const { Render, config, index, minCount, total, onDelete, prefix, ...rest } = props;\n const relationFieldKey = 'holderRelation';\n const { attrs = {}, formKey } = config[0];\n // const relationValue = getFormValue(formKey, attrs.value);\n // const [relation, setRelation] = useState(relationValue);\n // if (relation === 'self') {\n // const existingFields = getState('trailElementPolicyHolderFields') || [];\n // config = config.filter((item) => {\n // return item.component === relationFieldKey || existingFields.indexOf(item.component) === -1;\n // });\n // //\n // }\n\n function handleChange(value, name) {\n if (name.indexOf(relationFieldKey) !== -1) {\n // eslint-disable-next-line no-undef\n setRelation(value);\n }\n // handleCalcFieldsChange(value, name);\n }\n\n return (\n minCount}\n content={`删除${prefix}${index + 1}信息`}\n headerClassName=\"delete-block-header\"\n >\n {\n handleChange(value, name);\n }}\n />\n \n );\n}\n\nexport default function CalculateTrialMulti(props) {\n const { attrs, Render, children, label } = props;\n const {\n maxInsuredCount,\n minInsuredCount,\n defaultInsuredCount,\n prefix = '被保人',\n type,\n subType,\n } = attrs;\n\n const minInsurant = minInsuredCount || 1;\n const defaultCount = defaultInsuredCount || 1;\n const maxInsurant = maxInsuredCount || 1;\n\n const ts = {\n holder: 0,\n insured: 1,\n common: 2,\n };\n\n const _index = ts[type];\n const formValueKey = `trailElement[${_index}]`;\n const childrenConfig = updateFormKey(children, _index).concat({\n component: 'Hidden',\n attrs: { value: `${type}_${subType || ''}` },\n formKey: `${formValueKey}.__type`,\n });\n const relationFieldKey = 'holderRelation';\n const [relation, setRelation] = useState('');\n\n // 单被人的视图\n if (maxInsurant === 1) {\n let config = childrenConfig;\n if (relation === 'self') {\n config = childrenConfig.filter((item) => {\n return item.component === relationFieldKey;\n });\n }\n config = updateFormKey(config, 0);\n return (\n \n \n \n );\n }\n\n let initCount = defaultCount || 1;\n const trailElement = getFormValue(formValueKey);\n if (trailElement && trailElement.length) {\n initCount = trailElement.length;\n }\n\n if (initCount > maxInsurant) {\n initCount = maxInsurant;\n } else if (initCount < minInsurant) {\n initCount = minInsurant;\n }\n\n return (\n \n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/CertNo/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ChooseEnumBtn/index.js",["1233","1234","1235","1236","1237"],"import React, { useEffect, useState } from 'react';\nimport RowRadioList from '../RowRadioList';\nimport RowStepper from '../RowStepper';\nimport RowInput from '../RowInput';\nimport './index.less';\n\nexport default function ChooseEnumBtn(props) {\n const { attrs, formKey, label } = props;\n const {\n sumInsuredType,\n premiumCalculateType,\n isProduct,\n product,\n isLiability,\n liability,\n dataSource = [],\n } = attrs;\n const isAddition = product.productType === 'addition';\n const title = (\n \n {isAddition ? 附 : null}\n {label}\n
\n );\n\n const [newDataSource, setNewDataSource] = useState(dataSource);\n const [sumInsuredFormatType, setSumInsuredFormatType] = useState('元'); // 单位\n const [sumInsuredValueStr, setSumInsuredValueStr] = useState(''); // 范围\n const [stepSumInsuredValue, setStepSumInsuredValue] = useState({}); // 步进值范围\n const [inputSumInsuredValue, setInputSumInsuredValue] = useState({}); // 范围输入大小\n const [copiesSumInsuredValue, setCopiesSumInsuredValue] = useState({}); // 份额固定值\n\n // const cloneDataSource = _.cloneDeep(dataSource);\n const handleDataSource = () => {\n let insuredFormatType;\n let rangeStr;\n let stepValueRange = {};\n let inputValueRange = {};\n let copiesValueRange = {};\n\n if (isProduct) {\n insuredFormatType = premiumCalculateType === 'byPremium'\n ? product?.premiumFormatType\n : product?.sumInsuredFormatType;\n rangeStr = premiumCalculateType === 'byPremium'\n ? product?.premiumValueStr\n : product?.sumInsuredValueStr || '';\n stepValueRange = premiumCalculateType === 'byPremium'\n ? product?.stepPremiumValue\n : product?.stepSumInsuredValue;\n inputValueRange = premiumCalculateType === 'byPremium'\n ? product?.inputPremiumValue\n : product?.inputSumInsuredValue;\n copiesValueRange = premiumCalculateType === 'byPremium'\n ? product?.copiesPremiumValue\n : product?.copiesSumInsuredValue;\n } else {\n insuredFormatType = premiumCalculateType === 'byPremium'\n ? liability?.premiumFormatType\n : liability?.sumInsuredFormatType;\n rangeStr = premiumCalculateType === 'byPremium'\n ? liability?.premiumValueStr\n : liability?.sumInsuredValueStr || '';\n stepValueRange = premiumCalculateType === 'byPremium'\n ? liability?.stepPremiumValue\n : liability?.stepSumInsuredValue;\n inputValueRange = premiumCalculateType === 'byPremium'\n ? liability?.inputPremiumValue\n : liability?.inputSumInsuredValue;\n copiesValueRange = premiumCalculateType === 'byPremium'\n ? liability?.copiesPremiumValue\n : liability?.copiesSumInsuredValue;\n }\n const unitText = insuredFormatType === 'wanYuan' ? '万元' : '元';\n // setFormValue(`chooseEnumBtnUnit.${_name}`, insuredFormatType);\n setSumInsuredValueStr(rangeStr);\n setSumInsuredFormatType(unitText);\n if (sumInsuredType === 'enum') {\n // setNewDataSource(cloneDataSource);\n setNewDataSource(dataSource);\n } else if (sumInsuredType === 'step') {\n setStepSumInsuredValue(stepValueRange);\n } else if (sumInsuredType === 'range') {\n setInputSumInsuredValue(inputValueRange);\n } else if (sumInsuredType === 'copies') {\n setCopiesSumInsuredValue(copiesValueRange);\n }\n };\n\n const enumType = () => {\n return ;\n };\n\n const step = () => {\n return ;\n };\n\n const range = () => {\n const { maxValue, minValue } = inputSumInsuredValue || {};\n const validateRage = (relue, value, callback) => {\n if (value <= minValue && value <= maxValue) {\n callback();\n } else {\n callback(new Error('请输入正确的范围值'));\n }\n };\n return (\n \n );\n };\n\n const copies = () => {\n return ;\n };\n\n // enum:枚举 step:步进 range:范围 copies:份数\n const renderByType = (type) => {\n const Map = {\n enum: enumType,\n step,\n range,\n copies,\n };\n return Map[type] && Map[type]();\n };\n\n useEffect(() => {\n handleDataSource();\n }, []);\n\n return {renderByType(sumInsuredType)}
;\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/ChooseEnumPeriod/index.js",["1238","1239"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-27 11:28:29\n * @LastEditTime: 2021-04-27 16:51:58\n * @LastEditors: wangshengqiang\n * @Description: 保障期间和缴费期间\n */\nimport React, { useEffect, useState } from 'react';\nimport RowRadioList from '../RowRadioList';\nimport './index.less';\n\nexport default function ChooseEnumPeriod(props) {\n return (\n <>\n \n >\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/ChooseIsInsured/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ClaimFlow/index.js",["1240","1241","1242"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 17:38:15\n * @LastEditTime: 2021-04-22 17:40:43\n * @LastEditors: wangshengqiang\n * @Description: 理赔流程\n */\nimport React, { useState } from 'react';\nimport classnames from 'classnames';\n\nimport { Tabs } from 'zarm';\nimport './index.less';\n\nconst { Panel } = Tabs;\n\nconst Title = (props) => {\n const { title, className } = props;\n\n const cls = classnames({\n 'c-tab-title': true,\n [className]: !!className,\n });\n const _html = title ? `${title}
` : '';\n return ;\n};\n\nconst ClaimFlow = (props) => {\n const { Render, id, attrs } = props;\n const { dataSource = [] } = attrs;\n const [activeIndex, setActiveIndex] = useState(0);\n\n if (dataSource.length === 0) {\n return null;\n }\n\n return (\n \n
\n
\n {dataSource.map((item, index) => {\n const active = activeIndex === index;\n const cls = classnames({\n 'tab-title': true,\n noBottom: false,\n active,\n });\n if (dataSource.length <= 1\n && ([11, 13].includes(item.label.length) && item.label.includes('
'))) {\n return ;\n }\n return (\n }>\n \n \n );\n })}\n \n
\n
\n );\n};\n\nexport default ClaimFlow;\n","/Users/zhongan/project/za-dplatform-h5/src/components/ClaimSteps/index.js",["1243","1244"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 17:44:46\n * @LastEditTime: 2021-04-22 18:08:36\n * @LastEditors: wangshengqiang\n * @Description: 理赔流程模块中使用子组件\n */\nimport React from 'react';\nimport { Badge } from 'zarm';\nimport './index.less';\n\nconst ClaimSteps = (props) => {\n const { attrs, label } = props;\n const { dataSource = [] } = attrs;\n if (dataSource.length === 0) {\n return null;\n }\n\n return (\n \n {dataSource.map((item, index) => {\n return (\n
\n
\n
\n \n
\n
第{index + 1}步:{item.title}
\n
\n
{item.content}
\n
\n );\n })}\n {/*
*/}\n
\n );\n};\n\nexport default ClaimSteps;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Clause/content/Content.js",["1245","1246"],"import React from 'react';\nimport classnames from 'classnames';\nimport { Toast } from 'zarm';\nimport request from '@/utils/request';\nimport { getQueryParam } from '@/utils/tool';\nimport Modal from '@/components/Modal';\nimport session from '@/store/session';\nimport { ENV } from '@/env.js';\n\nconst getFileId = (element) => {\n if (!element) {\n return;\n }\n\n const { parentElement } = element;\n const fileId = element.getAttribute('data-file-id');\n\n return fileId || getFileId(parentElement);\n};\n\nconst Content = React.forwardRef((props = {}, ref) => {\n const {\n className,\n children,\n onClick: propsOnClick,\n contentFrom = false,\n tabValue = 1,\n ...others\n } = props;\n\n const cls = classnames({\n 'components-content-render': true,\n [className]: !!className,\n });\n\n const onClick = async (e = {}) => {\n propsOnClick && propsOnClick(e);\n\n const { target = {} } = e;\n const { innerText } = target;\n const fileId = getFileId(target);\n\n if (!fileId) {\n return;\n }\n\n e.stopPropagation();\n\n const opts = { METHOD: 'POST', data: { id: fileId } };\n const res = await request('/v1/document/queryDocumentDetail', opts) || {};\n const { code, message, result = {} } = res;\n\n if (Number(code)) {\n Toast.show(message || '网络异常,请稍后重试');\n } else {\n const { type, content, name = '' } = result;\n\n switch (type) {\n case 'file': {\n const fileLink = content && content.replace(/^http:/, 'https:');\n\n let fileHref = fileLink;\n\n let filePdfUrl = 'https://cdn-static.zhongan.io/index.html';\n if (window.location.host.includes('zhongan.com')) {\n filePdfUrl = 'https://cdn-health.zhongan.com/pdf/index.html';\n }\n\n if (typeof fileLink === 'string' && fileLink.includes('pdf')) {\n fileHref = `${filePdfUrl}?path=${encodeURIComponent(fileLink)}&env=${ENV}`;\n }\n\n if (typeof fileLink === 'string' && (fileLink.includes('jpg') || fileLink.includes('png') || fileLink.includes('gif') || fileLink.includes('svg') || fileLink.includes('webp') || fileLink.includes('bmp'))) {\n fileHref = `https://cdn-static.zhongan.io/image.html?path=${fileLink}&env=${ENV}`;\n }\n window.location.href = fileHref;\n break;\n }\n\n case 'url': {\n const link = content && content.replace(/^http:/, 'https:');\n const { from, tenantFrom } = getQueryParam();\n const qFrom = tenantFrom || from || '';\n\n let href = link;\n\n let pdfUrl = 'https://cdn-static.zhongan.io/index.html';\n if (window.location.host.includes('zhongan.com')) {\n pdfUrl = 'https://cdn-health.zhongan.com/pdf/index.html';\n }\n\n if (typeof link === 'string' && link.includes('pdf')) {\n href = `${pdfUrl}?path=${encodeURIComponent(link)}&env=${ENV}`;\n }\n\n if (typeof link === 'string' && (link.includes('jpg') || link.includes('png') || link.includes('gif') || link.includes('svg') || link.includes('webp') || link.includes('bmp'))) {\n href = `https://cdn-static.zhongan.io/image.html?path=${link}&env=${ENV}`;\n }\n\n if (contentFrom === 'popup') {\n session.set('supervisionPopupShow', true);\n session.set('supervisionPopupShowTab', tabValue);\n }\n\n window.location.href = href;\n\n break;\n }\n default: {\n const dangerouslySetInnerHTML = {\n __html: content,\n };\n\n const _children = (\n \n
{innerText || ''}
\n
\n
\n );\n\n const operations = [\n {\n shadow: true,\n type: 'primary',\n children: '关闭',\n },\n ];\n\n Modal.show({ children: _children, operations });\n break;\n }\n }\n }\n };\n\n return (\n \n {children}\n
\n );\n});\n\nexport default Content;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Clause/content/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Clause/index.js",["1247","1248","1249","1250"],"import classnames from 'classnames';\nimport React, { useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { Icon, Toast } from 'zarm';\nimport { getLocalClick } from '@/components/EventBtn/handleEvent';\nimport Content from '@/components/Content';\nimport Modal from '@/components/Modal';\nimport { FormItem } from '@/baseComponents';\nimport session, { FILES } from '@/store/session';\nimport { getQueryParam } from '@/utils/tool';\nimport history from '@/history';\nimport { useFixedUI } from '@/hooks/index.js';\nimport './index.less';\n\nconst getElement = (attribute, element) => {\n const fn = (curr = element) => {\n if (!curr) {\n return;\n }\n\n const { parentElement } = curr;\n const useful = curr.hasAttribute(attribute);\n\n return useful ? curr : fn(parentElement);\n };\n\n return fn();\n};\n\nconst getAttribute = (attribute, element) => {\n const curr = getElement(attribute, element);\n\n if (!curr) {\n return;\n }\n\n return curr.getAttribute(attribute);\n};\n\nconst validateChecked = (rule, value, callback) => {\n if (value) {\n callback();\n } else {\n Toast.show({\n className: 'test',\n content: '请选勾选条款',\n mask: true,\n });\n // callback();\n }\n};\n\nconst ClauseChecked = (props) => {\n const { onChange, value = 0 } = props;\n const [checked, setChecked] = useState(0);\n\n useEffect(() => {\n setChecked(value);\n }, [value]);\n\n const checkCls = classnames({\n 'clause-ele': true,\n checked,\n });\n\n const onClick = () => {\n const val = checked === 0 ? 1 : 0;\n onChange(val);\n setChecked(val);\n };\n\n return (\n \n \n
\n );\n};\n\nconst Clause = React.forwardRef((props = {}, ref) => {\n const myref = useRef();\n useFixedUI(myref);\n const { attrs, ...others } = props;\n const {\n className,\n dummy,\n confirm = false,\n content = '',\n clause = [],\n } = attrs;\n const cls = classnames({\n 'components-clause-render': true,\n [className]: !!className,\n });\n\n const renderCheck = () => {\n if (!confirm) {\n return null;\n }\n const formItemProps = {\n name: 'clause.checked',\n fieldOption: {\n rules: [{ validator: validateChecked }],\n },\n };\n return (\n \n \n \n );\n };\n\n const renderText = () => {\n const dangerouslySetInnerHTML = {\n __html: content,\n };\n\n const onClick = (e) => {\n const { target } = e;\n const hadClause = getElement('data-clause', target);\n\n if (hadClause) {\n const items = clause.map((item = {}, index) => {\n const { from, tenantFrom } = getQueryParam();\n const qFrom = tenantFrom || from || '';\n const { title, url = '', name = '' } = item;\n const link = url && url.replace(/^http:/, 'https:');\n let href = '';\n if (qFrom === 'ba') {\n href = url;\n } else {\n href = url.includes('pdf')\n ? `https://cdn-health.zhongan.com/pdf/index.html?path=${encodeURIComponent(\n link,\n )}&title=${name}`\n : url;\n }\n\n return (\n \n {title}\n \n );\n });\n\n session.set(FILES, items);\n Modal.hide();\n history.push('/healthfiles');\n }\n const pageId = getAttribute('data-page-id', target);\n const moduleId = getAttribute('data-module-id', target);\n const tabIndex = getAttribute('data-tab-index', target);\n if (pageId || moduleId || tabIndex) {\n const opts = {\n type: 'page',\n page: [pageId, moduleId, tabIndex],\n };\n\n getLocalClick(opts)();\n }\n };\n\n return (\n \n );\n };\n\n return (\n \n {renderCheck()}\n {renderText()}\n
\n );\n});\n\nexport default Clause;\n","/Users/zhongan/project/za-dplatform-h5/src/components/ClauseModule/index.js",["1251"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-06-28 16:06:21\n * @LastEditTime: 2021-06-28 16:16:20\n * @LastEditors: wangshengqiang\n * @Description: 条款模块\n */\n\nimport React from 'react';\nimport _ from 'lodash';\nimport { ModuleContext } from '../BaseModule';\nimport './index.less';\n\nconst ClauseModule = (props) => {\n const { Render: RD, id, moduleUid, children } = props;\n if (!children || children.length === 0) return null;\n\n if (moduleUid) {\n return (\n \n \n \n
\n \n );\n }\n return (\n \n \n
\n );\n};\n\nexport default ClauseModule;\n","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/Detail/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/FieldValue.js",["1252"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 16:41:21\n * @LastEditTime: 2021-05-07 16:43:51\n * @LastEditors: wangshengqiang\n * @Description: 受益人信息确认\n */\nimport React, { useState } from 'react';\nimport { getState } from '@/store';\nimport { getEnumList, queryAttrs } from '@/services/dict';\nimport { getValuePath, isPreviewMode, isTemplateMode } from '@/utils/tool';\nimport Detail from './Detail';\n\nexport default function FieldValue(props) {\n const { data, label, value: name, dataSource } = props;\n let value = data[name];\n const [enumValue, setEnumValue] = useState();\n if (dataSource && dataSource.length && name !== 'occupation') {\n let enumItem = {};\n if (name === 'insurancePeriod' || name === 'paymentPeriod') {\n enumItem = dataSource.find((item) => item.value.join('-') === value);\n } else {\n enumItem = dataSource.find((item) => item.value == value);\n }\n if (enumItem) {\n value = enumItem.label;\n }\n } else {\n const rawValue = value || (() => {\n let codes = [data.provinceCode, data.cityCode, data.countyCode];\n if (name === 'insureRegion') {\n codes = [data.insureProvinceCode, data.insureCityCode, data.insureCountyCode];\n } else if (name === 'receiverRegion') {\n codes = [data.receiverProvinceCode, data.receiverCityCode, data.receiverCountyCode];\n }\n return codes.filter((item) => item).join(',');\n })();\n if (name === 'occupation' && rawValue) {\n getEnumList('occupation').then((res) => {\n if (res.success) {\n const valuePath = getValuePath(rawValue, res.result, 'code');\n if (valuePath && valuePath.length) {\n setEnumValue(valuePath[valuePath.length - 1].name);\n }\n }\n });\n }\n\n if ((name === 'region' || name === 'insureRegion') && rawValue) {\n getEnumList('district').then((res) => {\n if (res.success) {\n const codeArr = rawValue.split(',');\n const valuePath = getValuePath(codeArr[codeArr.length - 1], res.result, 'code');\n if (valuePath && valuePath.length) {\n setEnumValue(valuePath.map((item) => item.name).join('/'));\n }\n }\n });\n }\n\n if (name === 'nationality' && rawValue) {\n rawValue && getEnumList('country').then((res) => {\n if (res.success) {\n const valuePath = getValuePath(+rawValue, res.result, 'code');\n if (valuePath && valuePath.length) {\n setEnumValue(valuePath[valuePath.length - 1].name);\n }\n }\n });\n }\n }\n\n if (name === 'drawerCertiType') {\n if (!isPreviewMode() && !isTemplateMode()) {\n queryAttrs({\n code: 'certiType',\n type: 1,\n holderType: 1,\n }).then((_data) => {\n if (_data.success) {\n const enumItem = _data.value.dataSource.find((item) => item.value === value);\n if (enumItem) {\n setEnumValue(enumItem.label);\n }\n }\n });\n }\n }\n\n if (name === 'firstYearPremium') {\n value = getState('healthOrderDetail.premium');\n }\n return (\n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmBeneficiary/index.js",["1253","1254","1255"],"/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmCommon/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmHolderInfo/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmInsurantInfo/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/ConfirmInfoTitle/index.js",["1256"],"import React from 'react';\n// import InfoImg from './infoImg';\nimport './index.less';\n\nconst ConfirmInfoTitle = (props) => {\n const { title, alt } = props;\n return (\n \n );\n};\n\nexport default ConfirmInfoTitle;\n","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/index.js",["1257"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 15:21:56\n * @LastEditTime: 2021-08-03 21:30:32\n * @LastEditors: wangshengqiang\n * @Description: 订单信息确认\n */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React from 'react';\nimport { useStore } from '@/store';\nimport { DetailItem } from './transformValue';\nimport ConfirmInfoTitle from './ConfirmInfoTitle';\nimport './index.less';\n\nconst map = {\n insurancePeriod: 'insurancePeriod',\n premium: 'firstPremium',\n};\n\nconst OrderInfoConfirm = (props) => {\n const { attrs, label } = props;\n const { dataSource = [], isDefault } = attrs;\n if (!isDefault) {\n return null;\n }\n\n const data = useStore('orderDetail') || {\n insuredList: [],\n extraInfo: { insurancePeriod: '' },\n };\n\n const Filter = dataSource.filter((item) => item.isDefault === true);\n if (Filter.length === 0) {\n return null;\n }\n\n if (!data) {\n return null;\n }\n\n return (\n \n
\n \n
\n
\n {Filter.map((item1, index) => {\n return (\n \n );\n })}\n
\n
\n );\n};\n\nexport default OrderInfoConfirm;\n","/Users/zhongan/project/za-dplatform-h5/src/components/ConfirmOrderInfo/transformValue.js",["1258"],"import React, { useState, useEffect } from 'react';\nimport { find } from 'lodash';\nimport moment from 'moment';\nimport { getValuePath, isTemplateMode, isPreviewMode, isTemplateToolMode } from '@/utils/tool';\nimport { getEnumList } from '@/services/dict';\n\n// 证件有效期\nconst transFormCertValidatePeriod = (val) => (val === '9999-12-31' ? '长期' : val);\n\nconst transformDate = (val) => (val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : '');\n\nconst transFormPerid = (itemValue) => {\n if (itemValue && typeof itemValue === 'string' && itemValue.indexOf('-') !== -1) {\n const arr = itemValue.split('-');\n const list = {\n Y: '年',\n D: '天',\n };\n if (arr[1] === 'L') {\n return '终身';\n }\n const value = arr[0] + list[arr[1]];\n\n return value;\n }\n\n return '';\n};\n\nconst transFormFn = {\n certValidatePeriod: transFormCertValidatePeriod,\n insuranceStartDate: transformDate,\n insuranceEndDate: transformDate,\n insurancePeriod: transFormPerid,\n};\n// value用户录入的值\n// dataSource 枚举项数据\n// key 用户录入的表单key 也是配置的要素code\nexport const transFormValue = (value, dataSource = [], key) => {\n if (key && transFormFn[key]) {\n return transFormFn[key](value);\n }\n if (dataSource && dataSource.length === 0) {\n return value;\n }\n let valueItem = {};\n if (key === 'nationality') {\n valueItem = find(dataSource, (item) => item.keyId === value);\n return valueItem ? valueItem.title : value;\n }\n valueItem = find(dataSource, (item) => item.value === value);\n\n return valueItem ? valueItem.label : value;\n};\n\nexport const DetailItem = (props) => {\n const { itemValue, dataSource = [], itemKey, itemlabel } = props;\n // ;\n const [data, setData] = useState('');\n\n useEffect(() => {\n setData(transFormValue(itemValue, dataSource, itemKey));\n }, [itemValue]);\n\n if (itemKey === 'occupation' && itemValue) {\n // 职业 && 职业改为显示所有层级\n if (!isTemplateMode() && !isPreviewMode() && !isTemplateToolMode()) {\n getEnumList('occupation').then((res) => {\n if (res.success) {\n const valuePath = getValuePath(itemValue, res.result, 'code');\n if (valuePath && valuePath.length) {\n console.log(valuePath);\n let name = '';\n valuePath?.forEach((v, i) => {\n if (i === valuePath.length - 1) {\n name += v.name;\n } else {\n name += `${v.name}-`;\n }\n });\n setData(name);\n }\n }\n });\n }\n }\n\n if ((itemKey === 'region' || itemKey === 'insureRegion') && itemValue) {\n // 省市区\n getEnumList('district').then((res) => {\n if (res.success) {\n const codeArr = itemValue.split(',');\n const valuePath = getValuePath(codeArr[codeArr.length - 1], res.result, 'code');\n if (valuePath && valuePath.length) {\n setData(valuePath.map((item) => item.name).join('/'));\n }\n }\n });\n }\n\n // 解决开户银行枚举对不上的bug && 鲸小保\n if (itemKey === 'bankCode' && itemValue) {\n // 省市区\n getEnumList('bank').then((res) => {\n const { success, message, result } = res;\n if (success) {\n result?.forEach((item) => {\n if (item?.code === itemValue) {\n setData(item?.name);\n }\n });\n } else {\n // eslint-disable-next-line no-undef\n Toast.show(message);\n }\n });\n }\n\n const unitList = ['premium'];\n let _data = data;\n if (unitList.includes(itemKey)) {\n _data = `${_data || ''} 元`;\n }\n\n return (\n \n
{itemlabel}:
\n
{_data}
\n
\n );\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/ConsultIconButton/index.js",["1259","1260","1261","1262","1263"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-26 11:46:14\n * @LastEditTime: 2021-08-03 19:09:26\n * @LastEditors: wangshengqiang\n * @Description: 咨询按钮组件\n */\n// import { ModuleContext } from '@/components/BaseModule';\nimport classnames from 'classnames';\nimport { stringify } from 'qs';\nimport React, { useContext } from 'react';\nimport { useLocation } from 'react-router';\nimport { Toast } from 'zarm';\nimport { getQueryParam } from '@/utils/queryString';\nimport { queryReservationConsultation } from '@/services/reservation';\nimport { getLocalClick } from '@/components/EventBtn/handleEvent';\nimport './index.less';\n\n// 增加了咨询特殊逻辑的 操作栏icon按钮\nconst ConsultIconButton = React.forwardRef((props = {}, ref) => {\n const { attrs, events = {}, label } = props;\n const {\n enable,\n fontClass,\n } = attrs;\n\n const query = getQueryParam();\n if (events.type === 'link') {\n const urlData = { tenantId: query.channelCode, thirdOrderNo: query.thirdOrderNo, thirdOrderNoType: query.thirdOrderNoType };\n events.link = `${events.link}?${stringify(urlData)}`;\n }\n const onClickLocal = getLocalClick(events, (opts = {}, next) => {\n return next;\n });\n\n const onClick = async (...args) => {\n const params = getQueryParam();\n let result;\n try {\n // thirdOrderNo 渠道id / channelCode 租户id\n result = await queryReservationConsultation({\n thirdOrderNoType: params.thirdOrderNoType,\n thirdOrderNo: params.thirdOrderNo,\n tenantId: params.channelCode,\n canalDefine: params.canalDefine,\n }); // channelId: 63148, tenantId: 100766\n } catch (error) {\n Toast.show('查询预约失败');\n }\n if (!result) return;\n if (result.success !== true) {\n Toast.show(result.message || '预约查询失败');\n return;\n }\n // 支持预约但没有配置二维码\n if (result.data.canSupportAppointment === 'Y' && !result.data.url) {\n Toast.show(result.message || '预约查询失败');\n return;\n }\n onClickLocal();\n };\n\n const cls = classnames({\n 'components-customer-service-render': true,\n });\n\n const iconCls = classnames({\n iconfont: true,\n [fontClass]: !!fontClass,\n });\n\n if (!enable) return null;\n return (\n onClick()}>\n
\n
{label}
\n
\n );\n});\n\nexport default ConsultIconButton;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Content/Content.js",["1264","1265"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-06 18:44:46\n * @LastEditTime: 2021-07-01 21:38:20\n * @LastEditors: wangshengqiang\n * @Description: TODO 保障详情用到了\n */\nimport React from 'react';\nimport classnames from 'classnames';\nimport { Toast } from 'zarm';\nimport request from '@/utils/request';\nimport { getQueryParam } from '@/utils/queryString';\nimport Modal from '@/components/Modal';\nimport session from '@/store/session';\nimport { HOST_ENV, ENV } from '@/env.js';\n\nconst { pdfUrl: PDFURL, imgUrl } = HOST_ENV;\n\nconst getFileId = (element) => {\n if (!element) {\n return;\n }\n\n const { parentElement } = element;\n const fileId = element.getAttribute('data-file-id');\n\n return fileId || getFileId(parentElement);\n};\n\nconst Content = React.forwardRef((props = {}, ref) => {\n const {\n className,\n children,\n onClick: propsOnClick,\n contentFrom = false,\n tabValue = 1,\n ...others\n } = props;\n\n const cls = classnames({\n 'components-content-render': true,\n [className]: !!className,\n });\n\n const onClick = async (e = {}) => {\n propsOnClick && propsOnClick(e);\n\n const { target = {} } = e;\n const { innerText } = target;\n const fileId = getFileId(target);\n\n if (!fileId) {\n return;\n }\n\n e.stopPropagation();\n\n const opts = { METHOD: 'POST', data: { id: fileId } };\n const res = await request('/v1/document/queryDocumentDetail', opts) || {};\n const { code, message, result = {} } = res;\n\n if (Number(code)) {\n Toast.show(message || '网络异常,请稍后重试');\n } else {\n const { type, content, name = '' } = result;\n\n switch (type) {\n case 'file': {\n const fileLink = content && content.replace(/^http:/, 'https:');\n\n let fileHref = fileLink;\n\n const filePdfUrl = PDFURL;\n\n if (typeof fileLink === 'string' && fileLink.includes('pdf')) {\n fileHref = `${filePdfUrl}?file=${encodeURIComponent(fileLink)}&env=${ENV}`;\n }\n\n if (typeof fileLink === 'string' && (fileLink.includes('jpg') || fileLink.includes('png') || fileLink.includes('gif') || fileLink.includes('svg') || fileLink.includes('webp') || fileLink.includes('bmp'))) {\n fileHref = `${imgUrl}?file=${fileLink}&env=${ENV}`;\n }\n window.location.href = fileHref;\n break;\n }\n\n case 'url':\n {\n const link = content && content.replace(/^http:/, 'https:');\n const { from, tenantFrom } = getQueryParam();\n const qFrom = tenantFrom || from || '';\n\n let href = link;\n\n const pdfUrl = PDFURL;\n\n if (typeof link === 'string' && link.includes('pdf')) {\n href = `${pdfUrl}?file=${encodeURIComponent(link)}&env=${ENV}`;\n }\n\n if (typeof link === 'string' && (link.includes('jpg') || link.includes('png') || link.includes('gif') || link.includes('svg') || link.includes('webp') || link.includes('bmp'))) {\n href = `${imgUrl}?file=${link}&env=${ENV}`;\n }\n\n if (contentFrom === 'popup') {\n session.set('supervisionPopupShow', true);\n session.set('supervisionPopupShowTab', tabValue);\n }\n\n window.location.href = href;\n\n break;\n }\n default:\n {\n const dangerouslySetInnerHTML = {\n __html: content,\n };\n\n const _children = (\n \n
{innerText || ''}
\n
\n
\n );\n\n const operations = [\n {\n shadow: true,\n type: 'primary',\n children: '关闭',\n },\n ];\n\n Modal.show({ children: _children, operations });\n break;\n }\n }\n }\n };\n\n return (\n \n {children}\n
\n );\n});\n\nexport default Content;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Content/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/CustomerService/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Email/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/handleList/handle.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/handleList/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/handleEvent/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/EventBtn/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Fixed/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/FixedBottom/FixedBottom.js",["1266","1267"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 17:21:10\n * @LastEditTime: 2021-05-25 19:17:43\n * @LastEditors: wangshengqiang\n * @Description: 告知牛逼\n */\nimport React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport Render from '@/components/Render';\nimport './FixedBottom.less';\n\nconst FixedBottom = React.forwardRef((props = {}, ref) => {\n const { attrs, children } = props;\n const { noticeObjectType = 'insured' } = attrs || {};\n const cls = classnames({\n 'components-fixed-bottom-render': true,\n // [className]: !!className,\n });\n\n // const children = useMemo(() => {\n // children.forEach((child = {}, index) => {\n // child.attrs = child.attrs || {};\n // child.attrs.noticeObjectType=noticeObjectType;\n // child.attrs.healthSpecialConfig = {\n // type: 'healthInfo',\n // index,\n // };\n // });\n\n // return children;\n // }, [children]);\n\n return (\n \n \n
\n );\n});\n\nexport default FixedBottom;\n","/Users/zhongan/project/za-dplatform-h5/src/components/FixedBottom/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/GuaranteeDutyConfirm/index.js",["1268","1269","1270","1271","1272","1273","1274","1275"],"import React, { useEffect } from 'react';\nimport classnames from 'classnames';\n\nimport Content from '../Content';\nimport './index.less';\n\nconst getTypeGroup = (type, columns = []) => {\n return columns.reduce((res = [], item = {}) => {\n const { fields = [] } = item;\n\n fields.forEach((field = {}) => {\n const { productType, dataType = [] } = field;\n\n if (productType === type) {\n res.push(dataType);\n }\n });\n\n return res;\n }, []);\n};\n\nconst getPartSource = (list = [], columns = []) => {\n return list.reduce((res = [], item = {}) => {\n const { planConfigLiabilityList = [], productType, productName, simpleRemark: productSampleDesc, sumInsuredValueStr: productSumInsuredValueStr, remark: productRemark } = item;\n\n const typeGroup = getTypeGroup(productType, columns);\n\n if (typeGroup[0][0] === 'product') {\n const curr = [];\n typeGroup.forEach((type = []) => {\n //\n const strs = [];\n type.forEach((currType) => {\n let str;\n switch (currType) {\n case 'productSampleDesc':\n str = productSampleDesc; // `${productSampleDesc || ''}
`;\n break;\n case 'product':\n str = productName;// `${productName || ''}
`;\n break;\n\n case 'sumInsured':\n case 'limmit':\n case 'deductible':\n str = productSumInsuredValueStr || '';\n str = str.replace(/\\d+\\.{0,1}\\d+/g, (text) => {\n const num = Number(text);\n if (Number.isNaN(num)) {\n return text;\n }\n return num < 10000 ? `${num}` : `${(num * 100) / 1000000}万`;\n });\n break;\n }\n strs.push(str);\n });\n //\n // curr.push(strs[0])\n const text = strs.join('');\n text && curr.push(text);\n });\n curr.push(productRemark);\n //\n res.push(curr);\n\n return res;\n }\n\n planConfigLiabilityList.forEach((liability = {}) => {\n const { liabilityName, sumInsuredValueStr, simpleRemark, remark } = liability;\n const curr = [];\n typeGroup.forEach((type = []) => {\n const strs = [];\n\n type.forEach((currType) => {\n let str;\n switch (currType) {\n case 'liability':\n str = liabilityName;\n break;\n case 'product':\n str = productName;\n break;\n case 'liabilitySampleDesc':\n str = simpleRemark;\n break;\n case 'sumInsured':\n case 'limmit':\n case 'deductible':\n str = sumInsuredValueStr || '';\n str = str.replace(/\\d+\\.{0,1}\\d+/g, (text) => {\n const num = Number(text);\n if (Number.isNaN(num)) {\n return text;\n }\n return num < 10000 ? `${num}` : `${(num * 100) / 1000000}万`;\n });\n break;\n }\n strs.push(str);\n });\n //\n const text = strs.join('') || '';\n\n curr.push(text);\n // curr.push(strs[0])\n });\n curr.push(remark);\n\n res.push(curr);\n });\n return res;\n }, []);\n};\n\nconst getStatus = (value, showColumns = []) => {\n const curr = showColumns.find((item = {}) => item.value === value) || {};\n\n return curr.isDefault;\n};\n\nconst renderBy = (status) => (node) => {\n return status ? node : null;\n};\n\nconst GuaranteeDutyConfirm = React.forwardRef((props = {}, ref) => {\n const { attrs, children } = props;\n const { className, columns = [], showColumns = [], dataSource = {}, ...others } = attrs;\n\n const {\n serviceList = [],\n planConfigMainProductList = [],\n planConfigAdditionProductList = [],\n } = dataSource;\n\n const cls = classnames({\n 'components-guarantee-duty-confirm-render': true,\n [className]: !!className,\n });\n\n useEffect(() => {\n setTimeout(() => {\n const element = document.getElementById('container');\n\n if (!element) {\n return;\n }\n\n element.scrollTop = 0.1;\n });\n }, []);\n\n const renderMain = () => {\n const mainStatus = getStatus('main', showColumns);\n const detailDescStatus = getStatus('detailDesc', showColumns);\n const data = getPartSource(planConfigMainProductList, columns) || [];\n if (!mainStatus) {\n return null;\n }\n // ;\n return data.map((item = [], index) => {\n const { length } = item;\n // const title = item.length > 2 ? item.slice(0, -2).join(' ') : '';\n // const desc = item[length - 2] || '';\n // const remark = item[length - 1] || '';\n\n const title = item[0] || '';\n const desc = item[1] || '';\n const remark = item[2] || '';\n\n const dangerouslySetInnerHTML = { __html: remark };\n const dangerouslySetInnerTitle = { __html: title };\n const dangerouslySetInnerDesc = { __html: desc };\n const bodyNode = renderBy(detailDescStatus && remark)(\n ,\n );\n return (\n \n );\n });\n };\n\n const renderAddition = () => {\n const additionStatus = getStatus('addition', showColumns);\n const detailDescStatus = getStatus('detailDesc', showColumns);\n const data = getPartSource(planConfigAdditionProductList, columns) || [];\n\n if (!additionStatus) {\n return null;\n }\n\n return data.map((item = [], index) => {\n // const title = item.slice(0, -2).join(' ');\n // const desc = item[length - 2] || '';\n // const remark = item[length - 1] || '';\n const title = item[0] || '';\n const desc = item[1] || '';\n const remark = item[2] || '';\n\n const dangerouslySetInnerHTML = { __html: remark };\n const bodyNode = renderBy(detailDescStatus && remark)(\n ,\n );\n return (\n \n );\n });\n };\n\n const renderService = () => {\n const serviceStatus = getStatus('service', showColumns);\n const moreIntrodutionStatus = getStatus('moreIntrodution', showColumns);\n const data = serviceList.map((item = {}) => {\n const { serviceShowName, serviceDescription, serviceRemark } = item;\n\n return [serviceShowName, serviceDescription, serviceRemark];\n });\n\n if (!serviceStatus) {\n return null;\n }\n\n return data.map((item = [], index) => {\n const [title, desc, remark] = item;\n\n const dangerouslySetInnerHTML = { __html: remark };\n const dangerouslySetInnerTitle = { __html: title };\n const bodyNode = renderBy(moreIntrodutionStatus && remark)(\n ,\n );\n\n return (\n \n );\n });\n };\n\n return (\n \n {renderMain()}\n {renderAddition()}\n {renderService()}\n
\n );\n});\n\nexport default GuaranteeDutyConfirm;\n","/Users/zhongan/project/za-dplatform-h5/src/components/HealthInsureRule/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/HealthNotificationList/index.js",["1276","1277","1278"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 14:36:38\n * @LastEditTime: 2021-10-22 17:58:40\n * @LastEditors: wangshengqiang\n * @Description: 问卷告知列表页面\n */\nimport React, { useEffect, useState } from 'react';\nimport { Checkbox, Button, Toast } from 'zarm';\nimport { getState, dispatch } from '@/store';\nimport './index.less';\nimport { getPackageList } from '@/utils/utils';\nimport { PLAN_ID } from '@/constants';\nimport { queryNoticeQuestion } from '@/services/JDservice';\nimport { rulesProduct } from '@/utils/planRelationMethods/rulesProduct.js';\nimport { useQueryOrderDetail, getPremium } from './methods';\n\n// const testHolder =\n// '抱歉,您不符合投保要求!非常抱歉,因为您曾经患有肺癌,您未能通过本次投保审核,请选择其他保险产品';\n\nconst HealthNotificationList = () => {\n const [data] = useQueryOrderDetail() || [];\n const { mixList = [], resultObj = {}, hasExemption = false } = data || {};\n const [list, setList] = useState(mixList);\n const [hasNotice, setHasNotice] = useState();\n\n const finalParams = (_list) => {\n // 有投保人豁免的话 投保人必须填写过问卷 并且是标体才能继续\n const holder = _list.find((item) => item.personType === 'holder');\n if (holder && holder.selected !== true) {\n return;\n }\n\n // 从列表中拿到被保人\n const insuredList = _list.flatMap((item, index) => {\n if (item.personType === 'insured') {\n if (item.selected === true) {\n return item;\n }\n item.selected = false;\n return item;\n }\n return [];\n });\n // 把勾选的被保人存下来 下一步接口时候根据这个过滤\n const checkedList = insuredList.flatMap((item) => {\n if (item.selected === true) {\n return item.person?.certNo;\n }\n return [];\n });\n const noticeListState = getState('noticeList');\n dispatch('noticeList', { ...noticeListState, checkedList });\n\n // 校验\n const hasInsured = insuredList.some((ins) => ins.selected);\n if (!hasInsured) {\n Toast.show('请至少选择一个被保人');\n return;\n }\n\n const packageList = getPackageList() || [];\n if (!getState('hasInsurancePlanModule')) {\n const insuredLength = insuredList.filter((item) => item.selected).length;\n insuredList.forEach((item) => {\n item.packageList = rulesProduct(packageList, item.person, insuredLength);\n });\n }\n\n if (resultObj) {\n resultObj.insuredList = insuredList;\n }\n\n getPremium(resultObj);\n };\n\n // 遍历配置查找对应告知页面\n const getInsurerNoticePage = (target = 'healthInfoModule') => {\n const config = getState('configJson') || {};\n\n return config.pageList?.find((page) => {\n return (\n undefined\n !== page.moduleList?.find((module) => {\n return module.component === target;\n })\n );\n });\n };\n\n const toNoticePage = (certNo, personType) => {\n const map = {\n holder: 'policyHolderInfoModule',\n insured: 'healthInfoModule',\n };\n\n const noticePage = getInsurerNoticePage(map[personType]) || {};\n const { pageOrder } = noticePage;\n window.location.hash = `#page=${pageOrder}&certNo=${certNo}`;\n };\n\n // 初始化\n useEffect(() => {\n if (list && list.length !== 0) {\n finalParams(list);\n }\n }, [list]);\n\n useEffect(() => {\n if (!hasNotice) {\n const planId = getState(PLAN_ID);\n const _hasNotice = [];\n Promise.all(\n ['holder', 'insured', 'agent'].map((item) => {\n return queryNoticeQuestion({\n noticeType: 'healthNotice',\n noticeObjectType: item,\n planId,\n }).then((res) => {\n if (res?.success === true && res?.result) {\n _hasNotice.push(item);\n }\n });\n }),\n ).then(() => {\n setHasNotice(_hasNotice);\n const noticeListState = getState('noticeList');\n dispatch('noticeList', { ...noticeListState, hasNotice: _hasNotice });\n });\n }\n return () => {\n dispatch('noticeList', undefined);\n };\n }, []);\n\n useEffect(() => {\n // 检查所有人是否有问卷 并改变状态\n const checkNotice = () => {\n if (!mixList || !hasNotice) return;\n\n const _list = mixList.filter((item, index) => {\n const show = hasNotice.indexOf(item.personType) !== -1; // 过滤没有告知的\n if (show) {\n // 根据问卷状态禁用\n item.isRefuseStatus = item.allowInsure === false;\n item.selected = item.allowInsure !== false;\n // 如果是投保人 则不可修改\n if (item.personType === 'holder') {\n item.unchangeable = true;\n // 过滤掉没投豁免险的投保人\n if (!hasExemption) return false;\n }\n }\n\n return show;\n });\n\n setList(_list);\n // 每次进入页面重新储存勾选列表\n const checkedList = [];\n _list.forEach((item) => {\n if (item.personType === 'insured' && item.selected === true && item.person) {\n checkedList.push(item.person.certNo);\n }\n });\n const noticeListState = getState('noticeList');\n dispatch('noticeList', { ...noticeListState, checkedList });\n };\n\n checkNotice();\n }, [mixList, hasNotice]);\n\n const checkChange = (value, certiNo, personType, index) => {\n list[index].selected = !!value;\n setList([...list]);\n\n finalParams(list);\n };\n\n return (\n \n
\n
\n 投保人应在对所有被保险人健康/职业状况充分了解的基础上履行如实告知义务。投保人承诺完全知晓所有被保险人健康/职业状态。\n
\n
若被保险人健康/职业状况与下述告知内容不符:
\n
(1)本公司有权不同意承保。
\n
(2)若发生保险事故,本公司不承担赔偿或给付保险金的责任,并有权不退还保费。
\n
\n
\n {list.map((item, index) => {\n const {\n person = {},\n personType,\n noticeQuestion,\n notAllowInsureReason,\n allowInsure,\n isRefuseStatus,\n unchangeable, // 投保人 && 有投保人告知\n selected,\n } = item;\n const { name, certNo } = person;\n const noticeResult = (allowInsure && '符合要求') || allowInsure === null\n ? '待完成'\n : '不符合要求';\n\n const buttonText = allowInsure !== null ? '重新填写' : '点击进行告知填写';\n return (\n
\n
\n {!unchangeable && (\n {\n checkChange(e.target.checked, certNo, personType, index);\n }}\n />\n )}\n
\n
\n
\n
\n {name}\n {personType === 'holder' ? '投保人' : '被保人'}\n
\n
\n {noticeResult}\n
\n
\n\n
{notAllowInsureReason}
\n\n
\n
\n \n
\n
\n
\n
\n );\n })}\n
\n
\n );\n};\n\nexport default HealthNotificationList;\n","/Users/zhongan/project/za-dplatform-h5/src/components/HealthNotificationList/methods.js",["1279"],"import React, { useEffect, useState, useRef } from 'react';\nimport { Loading, Toast } from 'zarm';\nimport { getOrderDetail } from '@/services/order';\nimport { dispatch, getState } from '@/store';\nimport { isPreviewMode, isTemplateToolMode, isTemplateMode, getQueryParam } from '@/utils/tool';\nimport { premiumCalculate } from '@/services/JDservice';\nimport SingleAlert from '@/singleAlert';\nimport ZaToast from '@/utils/ZaToast';\nimport { FETCH_STORE } from '@/constants';\n\nexport const useQueryOrderDetail = () => {\n const index = useRef(0);\n\n const [personList, setPersonList] = useState([]);\n\n useEffect(() => {\n const fetchStore = getState(FETCH_STORE) || {};\n const { orderNo, encryptOrderNo } = getQueryParam();\n const urlParams = getQueryParam();\n const params = {\n // orderNo: 2021032616593533152525,\n orderNo,\n encryptOrderNo,\n needAllInsured: true,\n // thirdOrderNoType: '3',\n // thirdOrderNo:\n // 'Ojo6OkcwMDAwMTI4MDAwMTo6MTI0MTI6OlNIWjAwMDE6OjEwMDc2Njo6a3VubHVuOjrmmIbku5HlgaXlurc6OuaYhuS7keWBpeW6ty3lpJrlgI3kv53vvIhIdW50ZXLvvIk',\n ...urlParams,\n ...fetchStore,\n };\n Loading.show();\n getOrderDetail(params).then((res) => {\n index.current += 1;\n Loading.hide();\n const { success, message, result } = res;\n if (!success) {\n Toast.show(message || '网络错误');\n return;\n }\n\n const { holder = {}, insuredList = [] } = result || {};\n const list = [];\n if (result?.holder) {\n list.push({\n ...holder,\n personType: 'holder',\n });\n }\n insuredList.forEach((item) => {\n item.personType = 'insured';\n list.push(item);\n });\n\n // 检查是否包含豁免险\n const _packageList = insuredList[0]?.packageList || [];\n const hasExemption = _packageList.some((item) => {\n return item.holderExemptionInsurance === 'Y';\n });\n\n setPersonList({\n mixList: list,\n resultObj: result,\n hasExemption,\n });\n });\n }, []);\n if (isPreviewMode() || isTemplateToolMode() || isTemplateMode()) {\n return;\n }\n\n return [personList];\n};\n\nexport const getPremium = async (params) => {\n const res = await premiumCalculate(params);\n const { code, message, result } = res;\n\n if (Number(code)) {\n const codeList = ['20000', '20019'];\n if (codeList.includes(code)) {\n const modal = SingleAlert({\n title: '温馨提示',\n content: message,\n onCancel: () => {\n modal.hide();\n },\n });\n return;\n }\n ZaToast.show(message);\n return;\n }\n\n // 这里通过改变 PREMIUM 字段触发试算操作栏保费监听\n const { insuredList, payType, initialPremium, nextPremium, totalSumInsured } = result;\n if (payType === undefined) {\n return;\n }\n\n if (Number(payType) === 1) {\n dispatch({\n insuredListPremium: insuredList,\n totalSumInsured,\n PREMIUM: {\n data: result,\n shit: true,\n type: 'year',\n value: initialPremium,\n },\n });\n } else {\n dispatch({\n totalSumInsured,\n insuredListPremium: insuredList,\n PREMIUM: {\n data: result,\n shit: true,\n type: 'month',\n value: [initialPremium, nextPremium],\n },\n });\n }\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/HealthTextEdit/index.js",["1280"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-06-28 15:47:58\n * @LastEditTime: 2021-07-01 15:04:31\n * @LastEditors: wangshengqiang\n * @Description: 文本配置\n */\nimport React from 'react';\n\nimport './index.less';\n\nconst HealthTextEdit = (props) => {\n const { attrs, id } = props;\n const { text } = attrs;\n\n return (\n \n );\n};\n\nexport default HealthTextEdit;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Holder/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/Info.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/components/text/Text.js",["1281"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 10:42:23\n * @LastEditTime: 2021-09-28 17:16:30\n * @LastEditors: wangshengqiang\n * @Description: 投保人健康告知\n */\n/* eslint-disable no-unused-expressions */\nimport React, { useMemo, useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport Content from '@/components/Content';\nimport { Iconfont } from '@/baseComponents';\nimport { useNotice } from '../../hook';\n\n// \"insured\"\n// \"holder\"\nconst Text = React.forwardRef((props = {}, ref) => {\n const { attrs, planId } = props;\n const { className, maxLength, buttonText, showType = 'expand' } = attrs;\n const [notice = {}] = useNotice({ noticeObjectType: 'insured', planId });\n const [showMore, setShowMore] = useState(false);\n\n const { header = '', noticeDetailList = [] } = notice || {};\n\n const cls = classnames({\n 'components-text-render': true,\n [className]: !!className,\n });\n\n const data = useMemo(() => {\n if (showMore) {\n return noticeDetailList;\n }\n\n if (maxLength) {\n return noticeDetailList.slice(0, maxLength);\n }\n\n return noticeDetailList;\n }, [showMore, noticeDetailList, maxLength]);\n\n const onClickFooter = () => setShowMore(!showMore);\n\n useEffect(() => {\n setShowMore(showType === 'expand');\n }, [showType]);\n\n const renderHeader = () => {\n const dangerouslySetInnerHTML = {\n __html: header,\n };\n\n return ;\n };\n\n const renderBody = () => {\n const html = data.reduce((res = '', item = {}) => {\n const { noticeContent = '' } = item;\n\n return `${res}${noticeContent}`;\n }, '');\n\n const dangerouslySetInnerHTML = {\n __html: html,\n };\n\n return ;\n };\n\n const renderFooter = () => {\n if (!maxLength) {\n return null;\n }\n\n if (maxLength >= noticeDetailList.length) {\n return null;\n }\n\n const footerCls = classnames({\n 'text-footer': true,\n reverse: !!showMore,\n });\n\n return (\n \n );\n };\n\n return (\n \n {renderHeader()}\n {renderBody()}\n {renderFooter()}\n
\n );\n});\n\nexport default Text;\n","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/components/text/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/hook.js",["1282"],"/* eslint-disable import/prefer-default-export */\n/* eslint-disable no-undef */\n/*\n * @Author: wangshengqiang\n * @Date: 2021-05-17 17:53:43\n * @LastEditTime: 2021-09-28 17:54:38\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, { useState, useEffect } from 'react';\nimport { PLAN_ID } from '@/constants';\nimport ZaToast from '@/utils/ZaToast';\nimport request from '@/utils/request';\nimport { useStore, dispatch } from '@/store';\nimport {\n getFetchBaseData,\n} from '@/utils/utils';\nimport {\n getHashParam,\n} from '@/utils/tool';\n\nexport const useNotice = ({ noticeObjectType = 'insured', planId }) => {\n const [notice, setNotice] = useState({});\n const _planId = useStore(PLAN_ID) || planId;\n\n useEffect(() => {\n const fn = async () => {\n if (!_planId) {\n return;\n }\n const data = getFetchBaseData() || {};\n const { certNo } = getHashParam() || {};\n if (certNo) data.extraInfo.currentInsuredFlag = certNo;\n const opts = {\n method: 'POST',\n data: {\n ...data,\n planId: _planId,\n noticeObjectType,\n },\n };\n\n const res = (await request('/v1/insure/queryNoticeQuestion', opts)) || {};\n const { code, message, result = {} } = res;\n\n if (Number(code)) {\n ZaToast.show(message || '系统异常,请稍后重试');\n return;\n }\n dispatch(`notice.${noticeObjectType}`, result);\n setNotice(result);\n };\n fn();\n }, [noticeObjectType, planId]);\n return [notice, setNotice];\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/HolderNotice/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IconButton/index.js",["1283","1284","1285"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-26 11:29:41\n * @LastEditTime: 2021-06-11 10:45:57\n * @LastEditors: wangshengqiang\n * @Description: 资料按钮组件\n */\nimport React, { useState, useContext } from 'react';\nimport classnames from 'classnames';\nimport { ModuleContext } from '@/components/BaseModule';\nimport { getLocalClick } from '@/components/EventBtn/handleEvent';\nimport './index.less';\n\nconst IconButton = React.forwardRef((props = {}, ref) => {\n const { attrs, events, label } = props;\n const {\n enable,\n fontClass,\n } = attrs;\n\n const context = useContext(ModuleContext) || {};\n const { id } = context;\n // const data = { buttonCode: id };\n // const onClickFetch = useFetchClick(data);\n const onClickLocal = getLocalClick(events, (opts = {}, next) => {\n const { type, behavior } = opts;\n if (type === 'behavior' && behavior === 'continue') {\n return () => {\n // Modal.hide();\n // onClickFetch();\n };\n }\n\n return next;\n });\n\n const onClick = () => {\n onClickLocal();\n };\n\n const cls = classnames({\n 'components-customer-service-render': true,\n });\n\n const iconCls = classnames({\n 'iconfont-button': true,\n [fontClass]: !!fontClass,\n });\n if (!enable) return null;\n return (\n onClick()}>\n
\n
{label}
\n
\n );\n});\n\nexport default IconButton;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Images/index.js",["1286","1287"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 16:59:54\n * @LastEditTime: 2021-04-22 17:01:46\n * @LastEditors: wangshengqiang\n * @Description: 展示产品图片的组件\n */\nimport React from 'react';\nimport styled from 'styled-components';\n\nexport default function Images({ attrs, label }) {\n const { imgs } = attrs;\n if (!imgs || !imgs.length) {\n return null;\n }\n const arr = imgs.map((item) => {\n if (typeof item !== 'string') {\n return item.imageUrl;\n }\n return item;\n });\n return (\n \n {arr.map((item, index) => {\n return
;\n })}\n \n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\nconst Img = styled.img`\n display: block;\n max-width: 100%;\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/Watermark/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/bubbleTip/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/confirmButton/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/confirmTip/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/content/index.js",["1288","1289","1290","1291","1292"],"/* eslint-disable no-unused-expressions */\nimport React, { useMemo, useState, useEffect } from 'react';\nimport classnames from 'classnames';\n\nimport { dispatch } from '@/store';\n\nimport Content from '@/components/Content';\nimport { Iconfont } from '@/baseComponents';\nimport { useNotice } from '@/components/Button';\nimport { HAD_NOTICE } from '@/constants';\n\nconst renderBy = (status) => (node) => {\n return status ? node : null;\n};\n\nconst Text = React.forwardRef((props = {}, ref) => {\n const {\n className,\n maxLength,\n buttonText,\n showType = 'expand',\n notice,\n tabValue = 1,\n ...others\n } = props;\n\n // const [notice = {}] = useNotice();\n const [showMore, setShowMore] = useState(false);\n\n const { header = '', noticeDetailList = [] } = notice || {};\n\n const cls = classnames({\n 'components-text-render': false,\n [className]: !!className,\n });\n\n const data = useMemo(() => {\n if (showMore) {\n return noticeDetailList;\n }\n\n if (maxLength) {\n return noticeDetailList.slice(0, maxLength);\n }\n\n return noticeDetailList;\n }, [showMore, noticeDetailList, maxLength]);\n\n const onClickFooter = () => setShowMore(!showMore);\n\n useEffect(() => {\n // dispatch(HAD_NOTICE, true);\n\n // setTimeout(()=>{\n const $block = document.querySelectorAll('.ql-indent-1');\n Array.from($block).forEach(($item) => {\n const $prev = $item.previousElementSibling;\n const $next = $item.nextElementSibling;\n if (!$prev?.classList.contains('ql-indent-1')) {\n $item?.classList.add('ql-indent-1-first');\n }\n if (!$next?.classList.contains('ql-indent-1')) {\n $item?.classList.add('ql-indent-1-last');\n }\n });\n // },1000)\n }, []);\n\n useEffect(() => {\n setShowMore(showType === 'expand');\n }, [showType]);\n\n const renderHeader = () => {\n const dangerouslySetInnerHTML = {\n __html: header,\n };\n\n return ;\n };\n\n const renderBody = () => {\n const html = data.reduce((res = '', item = {}) => {\n const { noticeContent = '' } = item;\n\n return `${res}${noticeContent}`;\n }, '');\n\n const dangerouslySetInnerHTML = {\n __html: html,\n };\n\n return (\n \n );\n };\n\n const renderFooter = () => {\n if (!maxLength) {\n return null;\n }\n\n if (maxLength >= noticeDetailList.length) {\n return null;\n }\n\n const footerCls = classnames({\n 'text-footer': true,\n reverse: !!showMore,\n });\n\n return (\n \n );\n };\n\n return (\n \n {renderHeader()}\n {renderBody()}\n {renderFooter()}\n
\n );\n});\nText.displayName = 'InfoContent';\n\nexport default Text;\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/popupBubble/index.js",["1293","1294","1295","1296","1297"],"import React, { useState, useEffect } from 'react';\nimport './index.less';\nimport ReactDOM from 'react-dom';\nimport Render from '@/components/Render';\nimport { isPreviewMode } from '@/utils/tool';\nimport { dispatch, getState } from '@/store';\n\nconst BubbleTip = (props) => {\n const {\n _attrs = {},\n tabIndex,\n } = props;\n\n const { delay, content = '', enable, autoHidden } = _attrs;\n\n const [time, setTime] = useState(delay);\n const [tabs, setTabs] = useState({});\n\n const dd = content.replace(/<[^>]+>/g, '');// 截取html标签\n const dds = dd.replace(/ /ig, '');// 截取空格等特殊标签\n\n const currentTabShow = (tabs[tabIndex] || 0) < 2;\n\n const isShow = enable && (dds.replace(/\\s*/g, '').length > 0) && currentTabShow;\n\n useEffect(() => {\n if (isPreviewMode()) {\n return;\n }\n\n const account = tabs[tabIndex] || 0;\n tabs[tabIndex] = account + 1;\n setTabs(tabs);\n\n if (isShow) {\n setTime(delay);\n }\n }, [tabIndex]);\n\n useEffect(() => {\n // if (isPreviewMode()) {\n // return\n // }\n\n if (autoHidden && isShow && !isPreviewMode()) {\n const timer = setInterval(() => {\n setTime((n) => {\n if (n <= 1) {\n clearInterval(timer);\n }\n return n - 1;\n });\n }, 1000);\n\n return () => {\n clearInterval(timer);\n };\n }\n }, [tabIndex]);\n\n return (\n <>\n {isShow && (\n \n {time !== 0 && (\n
\n \n\n {autoHidden && ({time}s)}\n
\n)}\n
\n)}\n >\n );\n};\n\nexport default BubbleTip;\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/supervisionPopup/index.js",["1298","1299","1300","1301"],"import cs from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\nimport { Button, Popup, Tabs, Toast } from 'zarm';\nimport { Promise } from 'core-js';\nimport { CLAUSE_CHECKED } from '@/constants';\nimport { isPreviewMode } from '@/utils/tool';\nimport session from '@/store/session';\nimport { dispatch } from '@/store';\nimport ConfirmButton from '../confirmButton';\nimport ConfirmTip from '../confirmTip';\nimport BubbleTip from '../popupBubble';\nimport TabContent from '../tabContent';\nimport TabList from '../tabList';\nimport './index.less';\n\nconst Title = styled.div`\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n line-height: 45px;\n`;\n\nconst useVisible = (initialVisible) => {\n const initShow = !isPreviewMode() && initialVisible;\n // const [visible, setVisible] = useCacheStateByPage('supervisionPopupVisible', initShow);\n const [visible, setVisible] = useState(initShow);\n return [visible, setVisible];\n};\n\nconst { Panel } = Tabs;\n/**\n * 健康告知的弹出层\n * @param {*} param0\n */\nconst SupervisionPopup = (props) => {\n const { attrs = {}, id } = props;\n const { buttonText = '', dataSource = [], visible = false } = attrs;\n // const moduleConfig = useCurrentModule();\n // 如果是tabs的情况,是否开启禁止所有tab,并点击按钮跳转到下一个tab\n const limitStep = true; // 默认开启点击按钮跳转到下一步,后续通过配置选择是否开启\n const [disabled, setDisabled] = useState(limitStep);\n // 同步组件内部的倒计时\n const [outerTime, setOuterTime] = useState(10);\n\n const [show, setShow] = useVisible(visible);\n const [value, setValue] = useState(0);\n const box = useRef();\n const countRef = useRef();\n const Pref = useRef({});\n const [isBottom, setIsBottom] = useState(false);\n const contentRef = useRef();\n\n const handleClose = () => {\n setShow(false);\n session.set('supervisionPopupShow', false);\n session.set('supervisionPopupShowTab', false);\n };\n\n const updateToStore = () => {\n Pref.current.resolve(true);\n dispatch(CLAUSE_CHECKED, true);\n dispatch('supervisionBtnClicked', {\n clicked: true,\n supervisionTarget: 'supervision',\n });\n };\n\n const initTab = (index) => {\n const list = box.current;\n const tabs = list?.getElementsByClassName('za-tabs__tab');\n if (!list || !tabs) {\n return;\n }\n const scroll = list?.getElementsByClassName('za-tabs__scroll')[0];\n const ul = scroll?.getElementsByTagName('ul')[0];\n const curr = tabs[index];\n const currOb = curr?.getBoundingClientRect();\n const left = currOb.left - currOb.width / 2;\n if (ul) {\n ul.scrollTo({\n top: 0,\n left,\n behavior: 'smooth',\n });\n }\n };\n\n const changeTab = (index) => {\n const list = document.getElementsByClassName('popup-box')[0];\n const tabs = list?.getElementsByClassName('za-tabs__tab');\n const scroll = list?.getElementsByClassName('za-tabs__scroll')[0];\n const ul = scroll?.getElementsByTagName('ul')[0];\n const curr = tabs[index];\n const first = tabs[0];\n const currOb = curr?.getBoundingClientRect();\n const ulOb = ul?.getBoundingClientRect();\n const firstOb = first?.getBoundingClientRect();\n const line = list?.getElementsByClassName('za-tabs__line')[0];\n\n const firstLeft = firstOb.x < 0 ? -firstOb.x : firstOb.x;\n\n // 自动将tab移动到屏幕中间\n const clientWidth = document.body.offsetWidth;\n const left = (clientWidth - currOb.width) / 2;\n const scrollDiv = document.getElementsByClassName('za-tabs__tablist')[0];\n const scrollLeft = firstLeft + currOb.x;\n scrollDiv.scrollLeft = scrollLeft - left;\n\n line.style = '';\n line.style.display = 'none';\n\n setTimeout(() => {\n line.style.width = `${(currOb.width * 4) / 4}px`;\n line.style.transform = '';\n line.style.display = 'block';\n line.style.position = 'absolute';\n line.style.left = `${firstLeft + currOb.x}px`;\n }, 100);\n };\n\n // 返回true继续流程\n const btnClick = () => {\n if (isPreviewMode()) {\n return;\n }\n // 进行tabs的自动切换\n if (disabled) {\n // 最后一个tab页 只有一个tab页的时候回进入这种场景\n if (dataSource?.length === value + 1 || !disabled) {\n updateToStore();\n setShow(false);\n return true;\n }\n if (dataSource?.length === value + 2) {\n setDisabled(false);\n }\n setValue(value + 1);\n changeTab(value + 1);\n } else {\n // tab页阅读10秒以上\n if (dataSource.length > 1 && outerTime > 0) {\n Toast.show('请仔细阅读协议内容10s以上');\n return false;\n }\n updateToStore();\n setShow(false);\n return true;\n }\n };\n\n useEffect(() => {\n if (!isPreviewMode()) {\n const supervisionPopupShow = session.get('supervisionPopupShow');\n const supervisionPopupShowTab = session.get('supervisionPopupShowTab');\n if (supervisionPopupShow !== null) {\n setShow(supervisionPopupShow);\n }\n supervisionPopupShowTab && setValue(supervisionPopupShowTab);\n }\n dispatch('supervisionBtnClicked', {\n clicked: false,\n supervisionTarget: 'supervision',\n });\n // 在store中保存这个弹出层模块的方法,供其他模块的button点击时做状态判断和操作\n dispatch('supervision', {\n isShow: () => show,\n show: () => {\n return new Promise((resolve, reject) => {\n Pref.current.resolve = resolve;\n // Pref.current.reject = reject;\n setShow(true);\n });\n },\n hide: handleClose,\n setTab: (tabIndex) => {\n if (Number(tabIndex) > dataSource.length) {\n setValue(0);\n return;\n }\n setValue(Number(tabIndex) - 1);\n },\n });\n\n dispatch('supervisionBtnClicked', {\n clicked: false,\n supervisionTarget: 'supervision',\n });\n // }\n // 组件被卸载时候清除这个状态 防止在其他页面中止下一步流程\n return () => {\n dispatch('supervisionBtnClicked', {\n clicked: false,\n supervisionTarget: undefined,\n });\n };\n }, []);\n\n useEffect(() => {\n setShow(visible);\n }, [visible]);\n\n useEffect(() => {\n if (isPreviewMode() || typeof show === 'undefined') {\n return;\n }\n if (show) {\n document.documentElement.style.overflow = 'hidden';\n document.body.style.position = 'fixed';\n document.body.style.top = '0px';\n document.body.style.width = '100%';\n } else {\n document.documentElement.style.overflow = 'scroll';\n document.body.style.position = 'static';\n }\n return () => {\n document.documentElement.style.overflow = 'scroll';\n document.body.style.position = 'static';\n };\n }, [show]);\n\n useEffect(() => {\n if (show) {\n setTimeout(() => {\n initTab(value);\n changeTab(value);\n }, 500);\n }\n }, [show]);\n\n useEffect(() => {\n setTimeout(() => {\n if (contentRef.current !== undefined && contentRef.current !== null) {\n const { className, offsetHeight, scrollTop, scrollHeight } = contentRef.current;\n\n if (offsetHeight + scrollTop > scrollHeight - 50) {\n setIsBottom(true);\n }\n }\n }, 2000);\n }, [show, contentRef.current]);\n\n const handleScroll = (e) => {\n // const { className, offsetHeight, scrollTop, scrollHeight } = e.target\n const { className, offsetHeight, scrollTop, scrollHeight } = contentRef.current;\n if (\n className\n && className.indexOf('c-tabContent') > -1\n && offsetHeight + scrollTop > scrollHeight - 50\n ) {\n setIsBottom(true);\n }\n };\n\n const cls = cs('c-supervisionPopup-bottom-bubble', {\n noTip: !dataSource[value]?.specialDesc.enable,\n });\n const clsTip = cs('c-supervisionPopup-bottom-tip', {});\n\n return (\n <>\n {show && (\n document.body}>\n \n \n
{\n setValue(v);\n changeTab(v);\n }}\n scrollThreshold={3}\n >\n {dataSource\n && dataSource.map((item, index) => (\n {item.title}}>\n {item.style === 'content' && value === index && (\n \n )}\n {item.style === 'list' && (\n \n )}\n \n ))}\n \n\n
\n
\n \n
\n\n {dataSource[value]?.specialDesc.enable && (\n
\n \n
\n )}\n\n
\n {visible ? (\n
\n \n
\n ) : (\n //
\n
\n )}\n
\n
\n
\n \n )}\n >\n );\n};\n\nexport default SupervisionPopup;\n\nconst GlobalStyled = createGlobalStyle`\n body {\n overflow: hidden;\n }\n`;\n\nconst countDown = (WrapComponent) => {\n return (props) => {\n const { countDown: initialCountDown, ...otherProps } = props;\n const [_countDown, setCountDown] = useState(initialCountDown);\n\n useEffect(() => {\n if (_countDown <= 0) return;\n\n const id = setTimeout(() => {\n setCountDown((c) => c - 1);\n }, 1000);\n\n return () => clearTimeout(id);\n }, [_countDown]);\n\n return ;\n };\n};\n\nconst changeBtnText = (WrapComponent) => {\n return (props) => {\n const {\n time,\n text,\n isBottom,\n dataSource,\n value,\n setValue,\n changeTab,\n disabled: superDisabled,\n setDisabled: setSuperDisabled,\n setOuterTime,\n ...otherProps\n } = props;\n const [disabled, setDisabled] = useState(true);\n const [finalText, setFinalText] = useState(text);\n\n useEffect(() => {\n setOuterTime(time);\n if (time <= 0) {\n // 只有一个tab页的时候要滚动到底部 && 鲸小保客户要求\n if (isBottom || dataSource?.length > 1) {\n setDisabled(false);\n setFinalText(text);\n } else {\n setDisabled(true);\n setFinalText(text);\n }\n } else if (dataSource?.length === 1) {\n setFinalText(`${text}(${time})秒`);\n } else {\n setDisabled(false);\n }\n }, [isBottom, time]);\n\n const disabledClick = () => {\n const { isBottom: _isBottom } = props;\n // 只有一个tab页的时候要滚动到底部 && 鲸小保客户要求\n if (!_isBottom && dataSource?.length === 1) {\n Toast.show('请继续下滑确认全部阅读!');\n }\n if (superDisabled) {\n // 最后一个tab页\n if (dataSource?.length === value + 1 || !disabled) {\n // TODO\n } else {\n if (dataSource?.length === value + 2) {\n setSuperDisabled(false);\n }\n setValue(value + 1);\n changeTab(value + 1);\n }\n }\n };\n return (\n \n );\n };\n};\n\nconst CountDownBtn = countDown(changeBtnText(ConfirmButton));\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tabContent/index.js",["1302"],"import React, { useState, useEffect, forwardRef } from 'react';\nimport { Toast } from 'zarm';\nimport { getState } from '@/store';\nimport { getQueryParam } from '@/utils/tool';\n\nimport { queryNotice } from '@/services/supervision';\nimport InfoContent from '../content/index';\nimport './index.less';\n\nconst TabContent = forwardRef((props, ref) => {\n const { content = {}, tabValue, onScroll } = props;\n\n const [healthNotices, setHealthNotices] = useState({\n noticeDetailList: [],\n });\n\n const [insureNotices, setInsureNotices] = useState({});\n\n const [specialAgreement, setSpecialAgreement] = useState({});\n\n const [contentFiles, setFiles] = useState({});\n\n const { relation = 'healthNotice', noticeObjectType, files = [] } = content;\n\n useEffect(() => {\n if (relation === 'healthNotice') {\n const currentPlan = getState('PLAN_ID') || getState('currentPlan');\n\n const { promotionId = '' } = getQueryParam() || {};\n\n queryNotice({\n noticeType: relation,\n planId: currentPlan,\n promotionId,\n noticeObjectType,\n }).then((res) => {\n const { success, result, message } = res;\n\n if (!success) {\n Toast.show(message || '网络错误');\n return;\n }\n\n setHealthNotices(result);\n });\n\n return;\n }\n\n if (relation === 'files') {\n // console.log('file==>', files);\n const { id } = files[0] || {};\n\n if (!id) {\n setFiles({});\n return;\n }\n // console.log(files?.[0]?.content);\n setFiles(files?.[0]);\n // fetchFileById({\n // id,\n // }).then((res) => {\n // console.log(res);\n // const { message, success, result = {} } = res;\n\n // if (!success) {\n // Toast.show(message || '网络异常,请稍后重试');\n // } else {\n // const { content, type } = result;\n\n // setFiles(result);\n // }\n // });\n }\n\n if (relation === 'insureNotice') {\n const currentPlan = getState('PLAN_ID') || getState('currentPlan');\n queryNotice({\n noticeType: relation,\n planId: currentPlan,\n noticeObjectType,\n }).then((res) => {\n const { success, result, message } = res;\n\n if (!success) {\n Toast.show(message || '网络错误');\n return;\n }\n\n setInsureNotices(result);\n });\n\n return;\n }\n\n if (relation === 'specialAgreement') {\n const currentPlan = getState('PLAN_ID') || getState('currentPlan');\n\n queryNotice({\n noticeType: relation,\n planId: currentPlan,\n }).then((res) => {\n const { success, result, message } = res;\n\n if (!success) {\n Toast.show(message || '网络错误');\n return;\n }\n\n setSpecialAgreement(result);\n });\n }\n }, [content]);\n\n if (relation === 'healthNotice') {\n // const { header = '', noticeDetailList = [] } = healthNotices || {};\n\n return (\n \n \n
\n );\n }\n\n if (relation === 'files') {\n const { content: _content = '' } = contentFiles || {};\n\n return (\n \n \n
\n );\n }\n\n if (relation === 'insureNotice') {\n const { smartQuestionType, header = '', noticeDetailList = [] } = insureNotices || {};\n\n const notice = {\n header: '',\n noticeDetailList: [],\n };\n if (smartQuestionType === 'third') {\n notice.header = header;\n notice.noticeDetailList = noticeDetailList;\n\n return (\n \n \n
\n );\n }\n\n return (\n \n \n
\n );\n }\n\n if (relation === 'specialAgreement') {\n // const { header = '', noticeDetailList = [] } = specialAgreement || {};\n\n return (\n \n \n
\n );\n }\n\n return (\n <>\n \n >\n );\n});\n\nTabContent.displayName = 'TabContent';\n\nexport default TabContent;\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tabList/index.js",["1303"],"import React, { forwardRef } from 'react';\nimport styled from 'styled-components';\nimport session from '@/store/session';\nimport { fetchFileById } from '@/services/supervision';\nimport { isPreviewMode } from '@/utils/tool';\nimport { HOST_ENV, ENV } from '@/env.js';\n\nimport './index.less';\n\nconst { pdfUrl: PDFURL, imgUrl } = HOST_ENV;\n\nconst TabList = forwardRef((props, ref) => {\n const { list = [], tabValue, noPopUp = false } = props;\n\n const gotoUrl = (url, type) => {\n if (isPreviewMode()) {\n return;\n }\n if (!noPopUp) {\n session.set('supervisionPopupShow', true);\n session.set('supervisionPopupShowTab', tabValue);\n }\n if (type === 'url') {\n window.location.href = url;\n return;\n }\n const link = url && url.replace(/^http:/, 'https:');\n // const { from, tenantFrom } = getQueryParam();\n // const qFrom = tenantFrom || from || '';\n let href = link;\n\n const pdfUrl = PDFURL;\n\n if (typeof link === 'string' && link.includes('pdf')) {\n href = `${pdfUrl}?file=${encodeURIComponent(link)}&env=${ENV}`;\n }\n\n if (\n typeof link === 'string'\n && (link.includes('jpg')\n || link.includes('png')\n || link.includes('gif')\n || link.includes('svg')\n || link.includes('webp')\n || link.includes('bmp'))\n ) {\n href = `${imgUrl}?path=${link}&env=${ENV}`;\n }\n window.location.href = href;\n };\n\n const fetchFile = (fileId, fileType) => {\n fetchFileById({\n id: fileId,\n }).then((res) => {\n const { message, success, result = {} } = res;\n\n if (!success) {\n // eslint-disable-next-line no-undef\n Toast.show(message || '网络异常,请稍后重试');\n } else {\n const { content, type } = result;\n\n gotoUrl(content, type);\n }\n });\n };\n\n return (\n \n \n {list\n && list.map((item) => {\n if (item.relation === 'files') {\n return item.files.map((fileItem) => {\n return (\n
{\n fetchFile(fileItem.id, fileItem.type);\n }}\n className=\"item\"\n >\n {fileItem.name}\n
\n );\n });\n }\n\n if (item.relation === 'clause') {\n return item.clause.map((fileItem) => {\n return (\n
{\n gotoUrl(fileItem.url);\n }}\n className=\"item\"\n >\n {fileItem.title}\n
\n );\n });\n }\n return null;\n })}\n
\n \n );\n});\n\nexport default TabList;\n\nconst Wrapper = styled.div`\n & .c-tabList-com {\n padding-bottom: 110px;\n }\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/IncomingTips/tooltipFullScreen/index.js",["1304","1305"],"/* eslint-disable react/no-danger */\nimport _ from 'lodash';\nimport React, { useCallback, useContext } from 'react';\nimport styled from 'styled-components';\nimport { useCountdown } from '@/hooks/useCountdown';\nimport { isPreviewMode } from '@/utils/tool';\nimport { FullScreenCtx } from '../fullscreenTipsModule';\n\nexport const TooltipFullScreen = (props) => {\n const { attrs } = props;\n const { autoHidden, enable, delay, content } = attrs || {};\n const [, setVisible] = useContext(FullScreenCtx);\n const onFinish = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n const remain = useCountdown(delay, {\n onFinish: onFinish && !isPreviewMode() ? onFinish : _.noop,\n });\n return (\n <>\n \n \n ({remain}s)
\n \n >\n );\n};\n\nexport default TooltipFullScreen;\n\nconst Text = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n justify-content: center;\n /* align-items: center; */\n color: #666666;\n font-size: 14px;\n margin: 20px 0;\n`;\nconst Content = styled.div`\n /* text-align: center; */\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InformationList/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePeriod/index.js",["1306"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-09-26 11:29:45\n * @LastEditTime: 2021-09-26 19:19:38\n * @LastEditors: wangshengqiang\n * @Description: 保障期间\n */\nimport React, { useEffect } from 'react';\nimport RowRadioList from '../RowRadioList';\n\nexport default (props) => {\n const { attrs = {} } = props;\n const _attrs = JSON.parse(JSON.stringify(attrs));\n const { dataSource = [] } = _attrs;\n const _optins = dataSource.map((item) => ({ ...item, value: Array.isArray(item.value) ? item.value.join('-') : item.value }));\n props.attrs.dataSource = _optins;\n return
;\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePlanDesc/index.js",["1307","1308"],"/* eslint-disable react/no-danger */\nimport React, { useMemo, useState } from 'react';\nimport classnames from 'classnames';\nimport { Iconfont } from '@/baseComponents';\nimport './index.less';\n\nconst getTypeGroup = (type, columns = []) => {\n return columns.reduce((res = [], item = {}) => {\n const { fields = [] } = item;\n fields.forEach((field = {}) => {\n const { productType, dataType = [] } = field;\n if (productType === type) {\n let curr = dataType || [];\n curr = Array.isArray(curr) ? curr : [curr];\n res.push(curr);\n }\n });\n return res;\n }, []);\n};\n\nconst getPartSource = (list = [], columns = []) => {\n return list.reduce((res = [], item = {}) => {\n const { planConfigLiabilityList = [], productType, productName, simpleRemark: productSampleDesc, sumInsuredValueStr: productSumInsuredValueStr } = item;\n const typeGroup = getTypeGroup(productType, columns);\n\n // console.log('typeGroup==>',typeGroup)\n if (typeGroup[0][0] === 'product') {\n const curr = [];\n typeGroup.forEach((type = []) => {\n const strs = [];\n type.forEach((currType) => {\n let str;\n switch (currType) {\n case 'productSampleDesc':\n str = `${productSampleDesc || ''}
`;\n break;\n case 'product':\n str = `${productName || ''}
`;\n break;\n\n case 'sumInsured':\n case 'limmit':\n case 'deductible':\n str = productSumInsuredValueStr || '';\n str = str.replace(/\\d+\\.{0,1}\\d+/g, (text) => {\n const num = Number(text);\n if (Number.isNaN(num)) {\n return text;\n }\n return num < 10000 ? `${num}` : `${(num * 100) / 1000000}万`;\n });\n break;\n }\n str && strs.push(str);\n });\n const text = strs.join('');\n text && curr.push(text);\n });\n res.push(curr);\n\n return res;\n }\n\n planConfigLiabilityList.forEach((liability = {}) => {\n const { liabilityName, sumInsuredValueStr = '', simpleRemark } = liability;\n const curr = [];\n typeGroup.forEach((type = []) => {\n const strs = [];\n type.forEach((currType) => {\n let str;\n switch (currType) {\n case 'liability':\n str = `${liabilityName || ''}
`;\n break;\n case 'liabilitySampleDesc':\n str = `${simpleRemark || ''}
`;\n break;\n case 'productSampleDesc':\n str = `${productSampleDesc || ''}
`;\n break;\n case 'product':\n str = `${productName || ''}
`;\n break;\n case 'sampleDesc':\n str = `${simpleRemark || ''}
`;\n break;\n case 'sumInsured':\n case 'limmit':\n case 'deductible':\n str = sumInsuredValueStr || '';\n str = str.replace(/\\d+\\.{0,1}\\d+/g, (text) => {\n const num = Number(text);\n if (Number.isNaN(num)) {\n return text;\n }\n return num < 10000 ? `${num}` : `${(num * 100) / 1000000}万`;\n });\n break;\n }\n str && strs.push(str);\n });\n const text = strs.join('');\n text && curr.push(text);\n });\n res.push(curr);\n });\n return res;\n }, []);\n};\n\nconst InsurancePlanDesc = React.forwardRef((props = {}, ref) => {\n const { className, attrs, ...others } = props;\n const {\n maxLength = '',\n buttonText = '',\n showColumn = false,\n specialDesc = {},\n columns = [],\n dataSource = [],\n } = attrs;\n\n // console.log('GuaranteeDutyprops==>',props)\n\n const [showMore, setShowMore] = useState(false);\n const source = useMemo(() => {\n const {\n serviceList = [],\n planConfigMainProductList = [],\n planConfigAdditionProductList = [],\n } = dataSource;\n\n let res = [];\n\n res = res.concat(getPartSource(planConfigMainProductList, columns));\n res = res.concat(getPartSource(planConfigAdditionProductList, columns));\n\n serviceList.forEach((item = {}) => {\n const { serviceShowName, serviceDescription } = item;\n\n res.push([serviceShowName, serviceDescription]);\n });\n\n return res;\n }, [dataSource, columns]);\n\n const data = useMemo(() => {\n if (showMore) {\n return source;\n }\n\n if (!maxLength) {\n return source;\n }\n\n return source.slice(0, maxLength);\n }, [maxLength, showMore, source]);\n\n const cls = classnames({\n 'components-guarantee-duty-render': true,\n [className]: !!className,\n });\n\n const onClickButton = () => setShowMore(!showMore);\n\n const renderColumns = () => {\n if (!showColumn) {\n return null;\n }\n\n const items = columns.map((item = {}, index) => {\n const { label } = item;\n\n const itemCls = classnames({\n 'columns-item': true,\n main: index === 0,\n });\n\n return {label}
;\n });\n\n return {items}
;\n };\n\n const renderData = () => {\n const items = data.map((item = {}, index) => {\n const [title, desc] = item;\n\n const dangerouslySetInnerHTML = {\n __html: title,\n };\n\n return (\n \n );\n });\n\n return {items}
;\n };\n\n const renderDesc = () => {\n const { enable, value = [] } = specialDesc;\n\n if (!enable) {\n return null;\n }\n\n if (data.length < source.length) {\n return null;\n }\n\n const items = value.map((item, index) => {\n return {item}
;\n });\n\n return {items}
;\n };\n\n const renderButton = () => {\n if (!maxLength) {\n return null;\n }\n\n if (maxLength >= source.length) {\n return null;\n }\n\n const buttonCls = classnames({\n 'duty-button': true,\n reverse: !!showMore,\n });\n\n return (\n \n );\n };\n\n return (\n \n {renderColumns()}\n {renderData()}\n {renderDesc()}\n {renderButton()}\n
\n );\n});\n\nexport default InsurancePlanDesc;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsurancePlanSelect/index.js",["1309","1310"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 14:12:57\n * @LastEditTime: 2021-07-15 18:14:29\n * @LastEditors: wangshengqiang\n * @Description: 计划选择组件\n */\nimport React, { useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport { dispatch, getState } from '@/store';\nimport useStore from '@/hooks/useStore.js';\nimport './index.less';\n\nconst InsurancePlanSelect = (props) => {\n const { attrs } = props;\n const { dataSource = [] } = attrs;\n const [PLAN_ID] = useStore('PLAN_ID');\n\n const handleChange = (planItem) => {\n if (planItem.value === PLAN_ID) return;\n // const currFormValues = getState('formValues');\n // const cacelFormValues = getState(`fvs._${planItem.value}`);\n const obj = {\n // [`fvs._${currentPlan}`]: currFormValues,\n currentPlan: planItem.value,\n PLAN_ID: planItem.value,\n insurancePlan: planItem,\n CLAUSE_CHECKED: false,\n formValues: {\n trailElement: [],\n },\n };\n dispatch(obj);\n };\n // const mockD = [...dataSource, ...dataSource, ...dataSource];\n const cls1 = cn('select-plan-container', {\n 'bg-fff': true,\n 'select-plan-container-scroll': dataSource.length > 3,\n });\n\n useEffect(() => {\n const planItem = dataSource.find((i) => i.value === PLAN_ID) || dataSource[0];\n if (planItem) {\n dispatch({\n insurancePlan: planItem,\n currentPlan: planItem.value,\n PLAN_ID: planItem.value,\n });\n }\n }, []);\n\n const firstI = dataSource[0];\n return (\n \n
\n {dataSource.map((item) => {\n const cls = cn('select-plan-item', {\n 'select-plan-item-active':\n PLAN_ID === item.value || (!PLAN_ID && firstI.value === item.value),\n 'select-plan-item-scroll': dataSource.length > 3,\n });\n return (\n
{\n handleChange(item);\n }}\n >\n {item.salesname}\n
\n );\n })}\n
\n
\n );\n};\n\nexport default InsurancePlanSelect;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsuranceStartDate/index.js",["1311","1312","1313","1314","1315"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-27 17:29:06\n * @LastEditTime: 2021-11-12 15:17:34\n * @LastEditors: wangshengqiang\n * @Description: 保险起期\n */\n\nimport React, { useEffect } from 'react';\nimport moment from 'moment';\nimport RowDate from '../RowDate';\n\nconst InsuranceStartDate = (props) => {\n const { attrs, form, formKey, defaultValue } = props;\n const { display = {} } = attrs || {};\n const min = moment().add(1, 'days').format('YYYY-MM-DD');\n const max = moment().add(80, 'years').format('YYYY-MM-DD');\n let initialValue;\n if (display.hasDefaultValue && display.defaultValue) {\n const defaultValueType = JSON.parse(display.defaultValue);\n if (defaultValueType == 2) {\n initialValue = moment(JSON.parse(defaultValue)).format('YYYY-MM-DD');\n } else if (defaultValueType == 1) {\n initialValue = min;\n } else if (defaultValueType.includes('+')) {\n const n = defaultValueType.split('+')[1] || 0;\n initialValue = moment().add(n, 'days').format('YYYY-MM-DD');\n } else if (defaultValueType.includes('-')) {\n const n = defaultValueType.split('-')[1] || 0;\n initialValue = moment().subtract(n, 'days').format('YYYY-MM-DD');\n }\n }\n const disabled = display.hasDefaultValue && display.defaultValue;\n return (\n \n \n
\n );\n};\n\nexport default InsuranceStartDate;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Insurant/index.js",["1316","1317","1318","1319"],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureEndDate/index.js",["1320"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-09-26 18:19:22\n * @LastEditTime: 2021-09-26 19:30:44\n * @LastEditors: wangshengqiang\n * @Description: 终保日期 安澜项目新增\n */\nimport React, { useEffect } from 'react';\nimport { useStore } from '@/store';\nimport { getStatePath } from '@/utils/utils.js';\nimport { addDay, addMonth, addYear, formatDate } from '@/utils/tool.js';\nimport RowDate from '../RowDate';\n\nfunction getNewDate(start, period) {\n if (start && period) {\n const [diff, type] = period.split('-');\n if (type === 'D') {\n return addDay(start, diff);\n } if (type === 'M') {\n return addMonth(start, diff);\n } if (type === 'Y') {\n return addYear(start, diff);\n }\n }\n}\n\nexport default function InsureEndDate(props) {\n const { attrs, formKey, form } = props;\n const startDateValuePath = getStatePath(formKey, 'insuranceStartDate');\n const insurancePeriodValuePath = getStatePath(formKey, 'insurancePeriod');\n const insuranceStartDateValue = useStore(`formValues.${startDateValuePath}`);\n const insurancePeriodValue = useStore(`formValues.${insurancePeriodValuePath}`);\n\n useEffect(() => {\n if (insuranceStartDateValue && insurancePeriodValue) {\n const dd = getNewDate(insuranceStartDateValue, insurancePeriodValue);\n form.setFieldsValue({\n [formKey]: formatDate(dd),\n });\n }\n }, [insuranceStartDateValue, insurancePeriodValue]);\n return (\n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/InsureResult.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/adBanner/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/btn/Btn.js",["1321"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-06-30 16:50:18\n * @LastEditTime: 2021-07-02 10:21:46\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React from 'react';\nimport classnames from 'classnames';\n\nimport { Button } from 'zarm';\n\nimport { getLocalClick } from '@/components/Button';\n\nconst Btn = React.forwardRef((props = {}, ref) => {\n const {\n className,\n attrs,\n ...others\n } = props;\n\n const {\n button = [],\n isShow,\n } = attrs;\n\n const cls = classnames({\n 'components-btn-render': true,\n [className]: !!className,\n });\n\n const items = button.map((item = {}, index) => {\n const { text, events = {} } = item;\n\n const onClick = getLocalClick(events);\n\n if (!text) {\n return null;\n }\n\n return (\n \n );\n });\n\n if (!isShow) {\n return null;\n }\n\n return (\n \n { items }\n
\n );\n});\n\nexport default Btn;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/btn/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/channel/Channel.js",["1322"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-07-07 11:14:54\n * @LastEditTime: 2021-07-08 14:24:39\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React from 'react';\nimport classnames from 'classnames';\nimport { runEnv } from '@/utils/runEnv.js';\n\nimport { isPreviewMode, isSimulateMode } from '@/utils/tool';\n\nimport { useBehavior } from '../../hooks';\n\nconst Channel = React.forwardRef((props = {}, ref) => {\n const {\n className,\n children,\n label,\n Render,\n attrs,\n } = props;\n\n const cls = classnames({\n 'components-channel-render': true,\n [className]: !!className,\n });\n\n const behavior = useBehavior();\n const { resultChannel = '0' } = behavior;\n\n if (isPreviewMode()) {\n const num = Number(resultChannel);\n\n if (label === 'h5' && num !== 0) {\n return null;\n }\n\n if (label === '微信' && num !== 1) {\n return null;\n }\n } else if (isSimulateMode()) {\n return (\n \n 不支持预览\n
\n );\n } else {\n if (label === 'h5' && runEnv !== 'browser') {\n return null;\n }\n\n if (label === '微信' && runEnv !== 'wechat') {\n return null;\n }\n }\n\n return (\n \n \n
\n );\n});\n\nexport default Channel;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/channel/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/description/Description.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/description/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/fail/Fail.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/fail/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/orderInfo/OrderInfo.js",["1323","1324","1325"],"import React, { useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport moment from 'moment';\nimport { subscribe, getState } from '@/store';\nimport { formatDate } from '@/utils/tool';\n\nimport { POLICY_INFO } from '@/constants';\n\nconst isDate = (date) => {\n if (date instanceof Date) {\n return !Number.isNaN(date.getTime());\n }\n\n return false;\n};\n\nconst getDate = (value) => {\n if (!value) {\n return;\n }\n\n if (typeof value === 'number') {\n return;\n }\n\n const a = new Date(value);\n\n if (isDate(a)) {\n return a;\n }\n\n // if (typeof value === 'string') {\n // value = value.replace(/-/g, '/');\n // }\n\n // const b = new Date(value);\n\n // if (isDate(b)) {\n // return b;\n // }\n};\n\nconst getUnitText = (type = '') => {\n if (!type) {\n return type;\n }\n\n type = type.toLowerCase();\n\n if (type === 'y' || type === 'year') {\n return '年';\n }\n\n if (type === 'm' || type === 'month') {\n return '月';\n }\n\n if (type === 'd' || type === 'day') {\n return '日';\n }\n\n if (type === 'season') {\n return '季度';\n }\n\n return type;\n};\n\nconst getDesc = (key, value, info = {}, policy = {}) => {\n if (value === undefined) {\n return;\n }\n\n const date = getDate(value);\n\n if (['insuranceStartDate', 'insuranceEndDate'].includes(key) && value) {\n return moment(value).format('YYYY-MM-DD HH:mm');\n }\n\n if (date) {\n const result = formatDate(date, 'yyyy年MM月dd日 hh时mm分ss秒');\n return result;\n }\n\n if (key === 'insurancePeriod') {\n const { insurancePeriodUnitType } = policy;\n if (insurancePeriodUnitType === 'life') {\n return '终身';\n }\n const unitText = getUnitText(insurancePeriodUnitType) || '';\n\n return value ? `${value}${unitText}` : undefined;\n }\n\n if (key === 'paymentPeriod') {\n const { paymentPeriodUnitType } = policy;\n if (paymentPeriodUnitType === 'life') {\n return '终身';\n }\n const unitText = getUnitText(paymentPeriodUnitType) || '';\n\n return value ? `${value}${unitText}` : undefined;\n }\n\n if (typeof value === 'number') {\n return value < 10000 ? `${value}元` : `${(value * 100) / 1000000}万元`;\n }\n\n return value;\n};\n\nconst OrderInfo = React.forwardRef((props = {}, ref) => {\n const { className, attrs, ...others } = props;\n const { dataSource = [] } = attrs;\n const cls = classnames({\n 'components-order-info-render': true,\n [className]: !!className,\n });\n\n const [policyInfo = {}, setPolicyInfo] = useState({});\n const { policyList = [] } = policyInfo;\n\n useEffect(() => {\n const fn = () => {\n setPolicyInfo(getState(POLICY_INFO) || {});\n };\n\n fn();\n subscribe(fn, POLICY_INFO);\n }, []);\n\n const renderPolicy = (curr = {}) => dataSource.map((item = {}, index) => {\n const { label, value: key, isDefault } = item;\n\n const value = curr[key] || policyInfo[key];\n const desc = getDesc(key, value, policyInfo, curr) || '';\n\n if (!desc) {\n return null;\n }\n\n if (!isDefault) {\n return null;\n }\n\n return (\n \n );\n });\n\n const renderPolicyList = () => {\n if (!policyList) {\n return null;\n }\n\n return policyList.map((policy = {}, index) => {\n return (\n \n {renderPolicy(policy)}\n
\n );\n });\n };\n\n return (\n \n {renderPolicyList()}\n
\n );\n});\n\nexport default OrderInfo;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/orderInfo/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/success/Success.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/success/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/text/Text.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/components/text/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/hooks.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsureResult/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/Info.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/components/text/Text.js",["1326"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-07 10:42:23\n * @LastEditTime: 2021-11-10 17:20:22\n * @LastEditors: wangshengqiang\n * @Description: 被保人健康告知\n */\n/* eslint-disable no-unused-expressions */\nimport React, { useMemo, useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport { dispatch } from '@/store';\nimport Content from '@/components/Content';\nimport { Iconfont } from '@/baseComponents';\nimport { useNotice } from '@/components/Button';\nimport { HAD_NOTICE } from '@/constants';\n\nconst Text = React.forwardRef((props = {}, ref) => {\n const { className, maxLength, buttonText, showType = 'expand', attrs, _attrs, ...others } = props;\n // 处理bug 暂时这么写,定义的数据接口乱\n const noticeObjectType = _attrs.noticeObjectType || attrs.noticeObjectType;\n const [notice = {}] = useNotice({ noticeObjectType });\n const [showMore, setShowMore] = useState(false);\n\n const { header = '', noticeDetailList = [] } = notice || {};\n\n const cls = classnames({\n 'components-text-render': true,\n [className]: !!className,\n });\n\n const data = useMemo(() => {\n if (showMore) {\n return noticeDetailList;\n }\n\n if (maxLength) {\n return noticeDetailList.slice(0, maxLength);\n }\n\n return noticeDetailList;\n }, [showMore, noticeDetailList, maxLength]);\n\n const onClickFooter = () => setShowMore(!showMore);\n\n useEffect(() => {\n dispatch(HAD_NOTICE, true);\n\n // setTimeout(()=>{\n const $block = document.querySelectorAll('.ql-indent-1');\n Array.from($block).forEach(($item) => {\n const $prev = $item.previousElementSibling;\n const $next = $item.nextElementSibling;\n if (!$prev?.classList.contains('ql-indent-1')) {\n $item?.classList.add('ql-indent-1-first');\n }\n if (!$next?.classList.contains('ql-indent-1')) {\n $item?.classList.add('ql-indent-1-last');\n }\n });\n // },1000)\n }, []);\n\n useEffect(() => {\n setShowMore(showType === 'expand');\n }, [showType]);\n\n const renderHeader = () => {\n const dangerouslySetInnerHTML = {\n __html: header,\n };\n\n return ;\n };\n\n const renderBody = () => {\n const html = data.reduce((res = '', item = {}) => {\n const { noticeContent = '' } = item;\n\n return `${res}${noticeContent}`;\n }, '');\n\n const dangerouslySetInnerHTML = {\n __html: html,\n };\n\n return ;\n };\n\n const renderFooter = () => {\n if (!maxLength) {\n return null;\n }\n\n if (maxLength >= noticeDetailList.length) {\n return null;\n }\n\n const footerCls = classnames({\n 'text-footer': true,\n reverse: !!showMore,\n });\n\n return (\n \n );\n };\n\n return (\n \n {renderHeader()}\n {renderBody()}\n {renderFooter()}\n
\n );\n});\n\nexport default Text;\n","/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/components/text/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/InsuredNotice/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/Ticktock.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/hooks.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/Ticktock/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/JDvalidateCode/index.js",["1327","1328","1329","1330","1331","1332","1333","1334","1335","1336"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 16:01:05\n * @LastEditTime: 2021-11-02 13:42:00\n * @LastEditors: wangshengqiang\n * @Description: sd\n */\nimport React, {\n useRef,\n useCallback,\n} from 'react';\nimport classnames from 'classnames';\nimport { Input, Cell, Toast } from 'zarm';\nimport request from '@/utils/request';\nimport { getState, getFormValue } from '@/store';\n\nimport { getQueryParam } from '@/utils/tool';\nimport { getPreLeveFormKey, getStatePath } from '@/utils/utils';\nimport { PLAN_ID } from '@/constants';\nimport RowInput from '../RowInput';\nimport Ticktock from './Ticktock';\nimport './index.less';\n\nconst KEY = 'phoneNo';\nconst PHONE_KEY = 'policyHolder.phoneNo';\nconst VALIDATE_CODE_KEY = 'policyHolder.validateCode';\n\nconst useEventCallback = (fn) => {\n const ref = useRef(fn);\n\n ref.current = fn;\n\n return useCallback((...args) => {\n const { current } = ref;\n\n return current && current(...args);\n }, [ref]);\n};\n\nconst VerifyCode = React.forwardRef((props = {}, ref) => {\n const { formKey = '' } = props;\n // const cls = classnames({\n // 'components-validate-code-render': true,\n // 'cc-row-input': true,\n // [className]: !!className,\n // });\n const preFormKey = getPreLeveFormKey(formKey);\n\n // const onClickSendSms = useEventCallback(async () => {\n // const planId = getState(PLAN_ID);\n // const target = getFormValue(`${preFormKey}.${KEY}`);\n // const { templateRelationId, promotionId = templateRelationId } = getQueryParam();\n\n // const data = {\n // planId,\n // target,\n // promotionId,\n // businessType: 'normalValidate',\n // validateCodeType: 'smsValidateCode',\n // };\n\n // const opts = { method: 'POST', data };\n\n // const res = await request('/v1/insure/sendValidateCode', opts) || {};\n // const { code, message = '网络异常,请稍后重试', result } = res;\n\n // Number(code) && Toast.show(message);\n // return result;\n // });\n\n // const onClickBeforeSendSms = useEventCallback((e) => {\n // const phoneKey = getStatePath(formKey, KEY);\n // const phone = getFormValue(phoneKey) || '';\n // const reg = /^1[3|4|5|8|7|9][0-9]\\d{8}$/;\n // const useful = reg.test(phone);\n\n // if (useful) {\n // return;\n // }\n\n // e.stopPropagation();\n // Toast.show('请输入正确的手机号后获取验证码');\n // });\n\n const onClickSendSms = useEventCallback(async () => {\n const planId = getState(PLAN_ID);\n const target = getFormValue(`${preFormKey}.${KEY}`);\n const { templateRelationId, promotionId = templateRelationId, orderNo } = getQueryParam();\n const bankCode = getFormValue('common.bankCode') || '';\n const paymentMethod = getFormValue('common.paymentMethod') || '';\n const bankAccountName = getFormValue('common.bankAccountName') || getFormValue('policyHolder.name') || '';\n const bankAccount = getFormValue('common.bankAccount') || '';\n\n const data = {\n planId,\n target,\n promotionId,\n businessType: 'identityValidate',\n validateCodeType: 'smsValidateCode',\n orderNo,\n extraInfo: {\n bankCode,\n paymentMethod,\n bankAccountName,\n bankAccount,\n phoneNo: target,\n },\n };\n\n const opts = { method: 'POST', data };\n\n const res = (await request('/v1/insure/sendValidateCode', opts)) || {};\n const { code, message = '网络异常,请稍后重试' } = res;\n\n Number(code) && Toast.show(message);\n });\n\n const onClickBeforeSendSms = useEventCallback((e) => {\n const phoneKey = getStatePath(formKey, KEY);\n const phone = getFormValue(phoneKey) || '';\n const reg = /^1[3|4|5|8|7|9][0-9]\\d{8}$/;\n const useful = reg.test(phone);\n const bankCode = getFormValue('common.bankCode') || '';\n const paymentMethod = getFormValue('common.paymentMethod') || '';\n const bankAccountName = getFormValue('common.bankAccountName') || getFormValue('policyHolder.name') || '';\n const bankAccount = getFormValue('common.bankAccount') || '';\n\n // if (\n // bankCode.length === 0 ||\n // paymentMethod.length === 0 ||\n // bankAccountName.length === 0 ||\n // bankAccount.length === 0\n // ) {\n // e.stopPropagation();\n // Toast.show('请填写完整支付信息!');\n // return;\n // }\n if (useful) {\n return;\n }\n\n e.stopPropagation();\n Toast.show('请输入正确的手机号后获取验证码');\n });\n\n // const ValidateCode = async (rule, value, callback) => {\n // const phoneKey = getStatePath(formKey, KEY);\n // const target = getFormValue(phoneKey) || '';\n // if (!target) {\n // callback(new Error('请输入手机号'));\n // return;\n // }\n // if (!value) {\n // callback(new Error('请输入验证码'));\n // return;\n // }\n // const planId = getState(PLAN_ID);\n // const { templateRelationId, promotionId = templateRelationId } = getQueryParam();\n\n // const data = {\n // planId,\n // target,\n // validateCode: value,\n // promotionId,\n // businessType: 'normalValidate',\n // validateCodeType: 'smsValidateCode',\n // };\n\n // const opts = { method: 'POST', data };\n // const res = (await request('/v1/insure/verifyValidateCode', opts)) || {};\n // const { message, success, result } = res;\n\n // if (!success || !result) {\n // Toast.show(message || '系统异常,请稍后重试');\n // callback(new Error(message));\n // return;\n // }\n // callback();\n // };\n\n const description = (\n \n 获取验证码\n \n );\n const inputProps = {\n formKey,\n inputType: 'text',\n placeholder: '请输入验证码',\n maxLength: 6,\n description,\n validateTrigger: 'no',\n // rules: [{ validator: ValidateCode }],\n rules: [{ required: true, message: '请输入验证码' }],\n };\n return (\n \n \n
\n );\n});\n\nexport default VerifyCode;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/Modal.js",["1337","1338","1339"],"/Users/zhongan/project/za-dplatform-h5/src/components/Modal/RenderModal.js",["1340","1341"],"import React from 'react';\n\nimport { Icon } from 'zarm';\n\nimport Render from '@/components/Render';\nimport Modal from '@/components/Modal';\nimport { findModuleFromPage } from '@/utils/utils';\n\nconst renderBy = (status) => (node) => {\n return status ? node : null;\n};\n\nconst toolbarStyleHTML = {\n __html: `\n .components-toolbar-render {\n z-index: 11 !important;\n }\n `,\n};\n\nconst moduleStyleHTML = {\n __html: `\n .components-modal-render.module-bottom {\n bottom: 61px !important;\n position: fixed;\n }\n `,\n};\n\nexport const render = (config = {}, getClick) => {\n const { attrs = {} } = config;\n const { type, position, title, button = [], dataSource = [] } = attrs;\n const hadToolbar = findModuleFromPage((curr = {}) => {\n return curr && curr.component === 'healthToolbarModule';\n });\n\n const showButton = (type === 1 || type === 2 || type === 4) && position !== 'bottom';\n const showTitle = (type === 1 || type === 2 || type === 4) && position !== 'bottom';\n\n const className = position ? `module-${position}` : '';\n\n const primary = type === 1;\n\n const headerNode = renderBy(showTitle && title)({title}
);\n\n const bodyNode = (\n \n \n
\n );\n\n const closeNode = (\n \n \n
\n );\n\n const toolbarStyleNode = renderBy(position === 'bottom')(\n ,\n );\n\n const moduleStyleNode = renderBy(hadToolbar)();\n\n const children = (\n <>\n {toolbarStyleNode}\n {moduleStyleNode}\n \n {headerNode}\n {bodyNode}\n {closeNode}\n
\n >\n );\n\n const operations = button.map((item = {}, index) => {\n const { text, events = {} } = item;\n\n const onClick = getClick({ ...events, index });\n\n let itemType;\n let shadow = false;\n\n if (primary) {\n itemType = 'primary';\n } else {\n itemType = index === 1 ? 'primary' : '';\n shadow = index === 1;\n }\n\n return {\n shadow,\n onClick,\n type: itemType,\n children: text,\n };\n });\n\n Modal.show({\n children,\n className,\n operations: showButton ? operations : [],\n });\n};\n\nexport default render;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/params/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/picture/index.js",["1342"],"import React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport './index.less';\n\nconst Picture = React.forwardRef((props = {}, ref) => {\n const { attrs } = props;\n const { images = [], imgs = [], ...others } = attrs;\n\n const cls = classnames({\n 'components-picture-render': true,\n });\n\n const data = useMemo(() => {\n const a = Array.isArray(images) ? images : [];\n const b = Array.isArray(imgs) ? imgs : [];\n const list = [...a, ...b];\n\n return list.filter((item) => !!item);\n }, [images, imgs]);\n\n const items = data.map((item = '', index) => {\n const { imageUrl = item } = item;\n\n return
;\n });\n\n return (\n \n {items}\n
\n );\n});\n\nexport default Picture;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/components/text/index.js",["1343"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 11:28:39\n * @LastEditTime: 2021-07-02 15:12:06\n * @LastEditors: wangshengqiang\n * @Description: 文案\n */\nimport React from 'react';\nimport classnames from 'classnames';\nimport Content from '@/components/Content';\nimport './index.less';\n\nconst Text = React.forwardRef((props = {}, ref) => {\n const { attrs, children, className } = props;\n const {\n text,\n ...others\n } = attrs;\n\n const cls = classnames({\n 'components-modal-text-render': true,\n [className]: !!className,\n });\n\n const dangerouslySetInnerHTML = {\n __html: text,\n };\n\n return (\n \n );\n});\n\nexport default Text;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Modal/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ModalModule/index.js",["1344"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-20 10:22:16\n * @LastEditTime: 2021-05-21 11:03:35\n * @LastEditors: wangshengqiang\n * @Description: 弹窗模块 TODO\n */\nimport React from 'react';\n\nexport default () => {\n\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/Module/index.js",["1345"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-19 11:31:01\n * @LastEditTime: 2021-07-02 14:01:53\n * @LastEditors: wangshengqiang\n * @Description: 嵌入flow-h5使用的容器组件\n */\nimport React from 'react';\nimport cn from 'classnames';\nimport './index.less';\n\nexport default (props) => {\n const { id, children, active, onClick, item } = props;\n const { component, style } = item;\n const cls = cn('c-module', component, {\n 'c-module--active': active,\n });\n return (\n \n {children}\n \n {style && (\n \n )}\n
\n );\n};\n","/Users/zhongan/project/za-dplatform-h5/src/components/Name/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Page.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PageView.js",["1346"],"import Module from '@C/Module';\nimport Render from '@C/Render';\nimport React, { createContext, useContext, useReducer, useState } from 'react';\nimport { isPreviewMode } from '@/utils/tool';\nimport Page from './Page';\n\nconst PageViewCtx = createContext();\n\nexport const PageViewProvider = ({ children, bg }) => {\n const localCache = useReducer((s, n) => ({ ...s, ...n }), {});\n const bottomItems = useState(0);\n return (\n \n {children}\n \n );\n};\nexport const usePageView = () => {\n return useContext(PageViewCtx);\n};\n\nexport default class PageView extends React.Component {\n handleModuleClick = (e) => {\n const activeModuleId = +e.currentTarget.dataset.id;\n if (this.props.activeModuleId !== activeModuleId) {\n this.props.postMessage({\n type: 'activeModuleId',\n data: activeModuleId,\n });\n this.props.setState({ activeModuleId });\n }\n };\n\n renderContent() {\n const { activeModuleId } = this.props;\n const { pageJson } = this.props;\n const { moduleList } = pageJson;\n if (isPreviewMode()) {\n moduleList\n && moduleList[activeModuleId]\n && document.getElementById(moduleList[activeModuleId].id)\n && document.getElementById(moduleList[activeModuleId].id).scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n\n return moduleList.map((item, index) => (\n \n \n \n ));\n }\n return (\n \n );\n }\n\n render() {\n const { pageJson } = this.props;\n return (\n \n {this.renderContent()}\n \n );\n }\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/PaymentFrequency/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PersonalAnnualIncome/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PhoneNo/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PlanTab/PlanTab.js",["1347","1348"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 17:30:18\n * @LastEditTime: 2021-09-28 17:11:15\n * @LastEditors: wangshengqiang\n * @Description: 多计划中 每个计划项组件\n */\n\nimport React from 'react';\nimport classnames from 'classnames';\nimport { useStore } from '@/store';\n\nconst PlanTab = React.forwardRef((props = {}, ref) => {\n const { attrs, children, Render } = props;\n const planId = useStore('PLAN_ID');\n const cls = classnames({\n 'components-plan-tab-render': true,\n });\n children.forEach((item) => {\n item.planId = attrs.planId;\n });\n const dangerouslySetInnerHTML = {\n __html: `\n .c-insure-plans::before {\n display: none !important;\n }\n\n .c-insure-plans::after {\n display: none !important;\n }\n `,\n };\n\n return (\n \n \n \n
\n );\n});\n\nexport default PlanTab;\n","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTab/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PlanTabs/PlanTabs.js",["1349","1350"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 17:30:18\n * @LastEditTime: 2021-11-26 14:27:13\n * @LastEditors: wangshengqiang\n * @Description: 计划\n */\nimport React from 'react';\nimport classnames from 'classnames';\nimport { Tabs } from 'zarm';\nimport Render from '@/components/Render';\nimport { useStore } from '@/store';\n\n// const { Panel } = Tabs;\n\nconst PlanTabs = React.forwardRef((props = {}, ref) => {\n const { attrs, children } = props;\n const _children = children || [];\n const planId = useStore('PLAN_ID');\n const cls = classnames({\n 'components-plan-tabs-render': true,\n });\n // const ComponentClass = _children.length > 1 ? Tabs : 'div';\n const ComponentClass = 'div';\n\n // const renderChildren = () => {\n // if (_children.length <= 1) {\n // return (\n // \n // );\n // }\n\n // return _children.map((child, index) => {\n // const components = [child];\n // return (\n // <>\n // \n // >\n // );\n // });\n // };\n\n const renderChildren = () => {\n let child = _children;\n if (_children.length > 1) {\n if (!planId) {\n child = [_children[0]];\n } else {\n child = _children.find((item) => {\n return item.attrs.planId === planId;\n });\n child = [child];\n }\n }\n return ;\n };\n\n return (\n \n {renderChildren()}\n \n );\n});\n\nexport default PlanTabs;\n","/Users/zhongan/project/za-dplatform-h5/src/components/PlanTabs/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/PolicyholdersExemptionModule/index.js",["1351","1352","1353","1354"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-11-08 18:21:35\n * @LastEditTime: 2021-11-08 19:13:11\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, { useEffect, useState } from 'react';\nimport { useStore, getFormValue } from '@/store/index.js';\n// eslint-disable-next-line import/no-cycle\nimport Render from '../Render';\n\nconst PolicyholdersExemptionModule = (props = {}) => {\n const { attrs, children } = props;\n const holderExemptionList = useStore('holderExemptionList') || [];\n const key = holderExemptionList[0] || '';\n const isShowModule = useStore(`formValues.${key}`) === 'Y';\n\n return <>{isShowModule && }>;\n};\nexport default PolicyholdersExemptionModule;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Premium/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ProductTitle/index.js",["1355","1356"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-26 15:58:04\n * @LastEditTime: 2021-05-25 19:18:02\n * @LastEditors: wangshengqiang\n * @Description: 简单标题信息\n */\nimport React from 'react';\nimport { getLocalClick } from '@/components/EventBtn/handleEvent';\nimport { isPreviewMode } from '@/utils/tool';\nimport './index.less';\n\nexport default function ProductTitle(props) {\n const { attrs, originAttrs = {} } = props;\n const {\n showName = false,\n showRemark = false,\n showAlias = false,\n goodsName,\n goodsAlias,\n goodsRemark,\n events,\n } = attrs;\n const onClick = () => {\n getLocalClick(events) && getLocalClick(events);\n };\n\n return (\n \n
\n {showName !== false ?
{goodsName}
: ''}\n {showAlias !== false ?
{goodsAlias || ''}
: ''}\n
\n {showRemark !== false ?
{goodsRemark || ''}
: ''}\n
\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/Question/index.js",["1357"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 18:13:19\n * @LastEditTime: 2021-04-25 20:05:26\n * @LastEditors: wangshengqiang\n * @Description: 常见问题组件\n */\nimport React, {\n useMemo,\n useState,\n} from 'react';\nimport classnames from 'classnames';\nimport { Iconfont } from '@/baseComponents';\nimport QuestionItem from './questionItem';\nimport './index.less';\n\nconst Question = React.forwardRef((props = {}, ref) => {\n const {\n className,\n attrs,\n ...others\n } = props;\n const {\n buttonText,\n maxLength,\n values = [],\n } = attrs;\n const cls = classnames({\n 'components-question-render': true,\n [className]: !!className,\n });\n\n const [showMore, setShowMore] = useState(false);\n\n const data = useMemo(() => {\n if (showMore) {\n return values;\n }\n return maxLength\n ? values.slice(0, maxLength)\n : values;\n }, [showMore, values, maxLength]);\n\n const renderBody = () => {\n const items = data.map((item = {}, index) => {\n const { label = '', value = '' } = item;\n\n return (\n \n { value }\n \n );\n });\n\n return (\n \n { items }\n
\n );\n };\n\n const renderFooter = () => {\n if (!buttonText) {\n return null;\n }\n\n if (values.length <= maxLength) {\n return null;\n }\n\n const footerCls = classnames({\n 'question-footer': true,\n reverse: !!showMore,\n });\n\n const onClick = () => setShowMore(!showMore);\n\n return (\n \n );\n };\n\n return (\n \n { renderBody() }\n { renderFooter() }\n
\n );\n});\n\nexport default Question;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Question/questionItem/QuestionItem.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Question/questionItem/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/QuestionMore.js",["1358","1359"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 11:28:39\n * @LastEditTime: 2021-06-30 17:44:40\n * @LastEditors: wangshengqiang\n * @Description: fdsa\n */\nimport classnames from 'classnames';\nimport React, { useEffect } from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport QuestionItem from '../Question/questionItem';\nimport StickyScroll from './StickyScroll';\n\nconst QuestionMore = React.forwardRef((props = {}, ref) => {\n const { attrs, children } = props;\n const { values = [], ...others } = attrs;\n const cls = classnames({\n 'components-question-more-render': true,\n });\n\n // 获取锚点的项目\n const topList = values\n .filter((item) => item.anchor)\n .map((item) => ({\n key: item.id,\n value: item.anchor,\n }));\n\n const contentList = values.map((item = {}, index) => {\n const { label = '', value = '', id } = item;\n return {\n element: (\n \n {value}\n \n ),\n id,\n };\n });\n\n // 微信浏览器的 bug 页面会自动滚动到最下面 2020-11-26 huaqingfeng\n useEffect(() => {\n document.documentElement.scrollTop = 0;\n document.body.scrollTop = 0;\n }, []);\n return (\n \n );\n});\n\nexport default QuestionMore;\n\nconst GlobalStyled = createGlobalStyle`\n #container {\n height: auto !important;\n }\n`;\n","/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/StickyScroll/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/QuestionMore/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RadioEnumGroup/index.js",["1360","1361","1362","1363","1364"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-27 11:32:02\n * @LastEditTime: 2021-04-27 11:45:41\n * @LastEditors: wangshengqiang\n * @Description: 枚举\n */\nimport React, { useEffect, useState } from 'react';\nimport { Radio } from 'zarm';\nimport _ from 'lodash';\nimport cn from 'classnames';\nimport FormItem from '@/baseComponents/FormItem';\nimport './index.less';\n\nexport default function RadioSelect(props) {\n const { attrs, formKey } = props;\n const {\n remark,\n label,\n dataSource,\n } = attrs;\n\n const datas = (dataSource && dataSource.filter((item) => item.isDefault !== false)) || [];\n\n const formItemProps = {\n name: formKey,\n label,\n remark,\n };\n return (\n \n \n {datas.map((item, index) => {\n return (\n \n {item.label}\n \n );\n })}\n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/Render.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowAddress/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowAge/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowArea/index.js",["1365","1366","1367","1368","1369"],"import React, { useState, useMemo, useEffect } from 'react';\nimport { getValuePath } from '@U/tool';\nimport _ from 'lodash';\nimport { useEnum } from '@/hooks';\nimport { getPropPath, getFormValue } from '@/store';\nimport RowSelect from '../RowSelect';\n\nconst DefaultCodeFields = ['provinceCode', 'cityCode', 'countyCode'];\n// const DefaultCodeFields = ['insureProvinceCode', 'insureCityCode', 'insureCountyCode'];\nexport const filterInitTreeNodes = (item) => {\n item = _.cloneDeep(item);\n if ('children' in item) {\n switch (item._checked) {\n case 0:\n item.children = [];\n break;\n case 1:\n item.children = item.children.filter((c) => c._checked);\n break;\n case 2:\n item.children = item.children\n .filter((c) => c._checked)\n .map((child) => filterInitTreeNodes(child));\n break;\n }\n delete item._checked;\n }\n return item;\n};\n\n// 获取带_checked数据\nexport const useGetCheckedTreeNodes = (\n treeData,\n checkedCodes,\n AreaItemKeys,\n) => {\n const { codeKey = 'code', childrenKey = 'children', labelKey = 'name' } = AreaItemKeys || {};\n\n // 添加全国\n treeData = {\n [childrenKey]: treeData?.length ? _.cloneDeep(treeData) : [],\n [labelKey]: '全国',\n [codeKey]: 'all',\n _checked: 0,\n };\n\n const checkedChildItem = (\n item,\n _checkedCodes,\n parentChecked,\n ) => {\n item._checked = parentChecked || (_checkedCodes?.includes(item[codeKey]) ? 1 : 0);\n const hasChild = item[childrenKey]?.length > 0;\n if (hasChild) {\n item[childrenKey] = item[childrenKey]?.map((child) => {\n return checkedChildItem(child, _checkedCodes, item._checked);\n });\n }\n return item;\n };\n\n const checkedParentItem = (item) => {\n const hasChild = item[childrenKey]?.length > 0;\n if (hasChild) {\n const next = item[childrenKey].map((child) => checkedParentItem(child));\n const hasCheckedChild = next.filter((c) => c._checked === 1);\n const hasIndeterminate = next.filter((c) => c._checked === 2);\n let checked = 2;\n if (!hasCheckedChild.length && !hasIndeterminate.length) {\n checked = 0;\n } else if (hasCheckedChild.length === next.length) {\n checked = 1;\n }\n item._checked = checked;\n return { ...item, [childrenKey]: next };\n }\n return item;\n };\n\n const getCheckedNodes = (\n node,\n _checkedCodes,\n ) => {\n const next = checkedChildItem(node, _checkedCodes, 0);\n const next2 = checkedParentItem(next);\n return next2;\n };\n const [checkedTreeNodes, setCheckedTreeNodes] = useState(treeData);\n\n useEffect(() => {\n if (Array.isArray(checkedCodes)) {\n const initialState = getCheckedNodes(treeData, checkedCodes);\n setCheckedTreeNodes(initialState);\n }\n }, [treeData.children?.length, checkedCodes?.length]);\n\n return [checkedTreeNodes];\n};\n\n// 获取投保流程过滤数据\nexport const useGetFilterTreeNodes = (\n treeData,\n checkedCodes,\n AreaItemKeys,\n) => {\n const { codeKey = 'code', childrenKey = 'children', labelKey = 'name' } = AreaItemKeys || {};\n const [checkedTreeNodes] = useGetCheckedTreeNodes(\n treeData,\n checkedCodes,\n AreaItemKeys,\n );\n const [treeNodes, setTreeNodes] = useState([]);\n\n useEffect(() => {\n if (checkedTreeNodes?.children) {\n const filterTreeNodes = filterInitTreeNodes(checkedTreeNodes);\n setTreeNodes(filterTreeNodes?.[childrenKey]);\n }\n }, [checkedTreeNodes?.children?.length]);\n\n return [treeNodes];\n};\n\nfunction removeDuplicate(selected) {\n if ((selected[0] && selected[0].name) === (selected[1] && selected[1].name)) {\n selected = selected.slice(1);\n }\n return selected;\n}\n\nfunction displayRender(selected) {\n selected = removeDuplicate(selected);\n selected = removeDuplicate(selected);\n return selected.map((item) => item.name).join('/');\n}\n\nfunction ensure3Cols(list) {\n list.forEach((item) => {\n if (!item.children) {\n item.children = [{ ...item }];\n }\n item.children.forEach((item2) => {\n if (!item2.children) {\n item2.children = [{ ...item2 }];\n }\n });\n });\n return list;\n}\n\nexport default function RowArea(props) {\n const { label, formKey, attrs, component } = props;\n const {\n dataSource,\n dataTree,\n value,\n codeFields = DefaultCodeFields,\n checkedCode,\n ...rest\n } = attrs;\n\n let localCodeFields = codeFields;\n if (component === 'insureRegion') {\n localCodeFields = ['insureProvinceCode', 'insureCityCode'];\n }\n // const [areaList, setArea] = useState([]);\n const [areaList] = useEnum('district');\n const [treeNodes] = useGetFilterTreeNodes(areaList, checkedCode, {\n codeKey: 'code',\n labelKey: 'name',\n childrenKey: 'children',\n });\n\n const list = useMemo(() => {\n if (treeNodes) {\n return ensure3Cols(treeNodes);\n }\n return treeNodes;\n }, [treeNodes]);\n\n let arrValue = useMemo(() => {\n return getValuePath(value, treeNodes, 'code').map((item) => item.code);\n }, [value, treeNodes]);\n const storeValue = getFormValue(formKey);\n\n if (storeValue) {\n arrValue = _.isString(storeValue) ? storeValue.split(',') : [];\n }\n\n const nodes = useMemo(() => {\n return localCodeFields.map((key) => getPropPath(formKey, key));\n }, [formKey]);\n\n const [finalValue, setFinalValue] = useState(arrValue);\n return (\n <>\n \n {nodes.map((name, index) => (\n \n ))}\n >\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowBirthday/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowCareer/index.js",["1370","1371"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-14 20:05:03\n * @LastEditTime: 2021-05-17 15:55:37\n * @LastEditors: wangshengqiang\n * @Description: 职业组件\n */\nimport React, { useEffect, useState } from 'react';\nimport { getEnumList } from '@/services/dict';\nimport { getQueryParam } from '@/utils/tool';\nimport { isPreviewMode, isTemplateMode, isTemplateToolMode } from '@/utils/tool.js';\nimport RowCascade from '../RowCascade';\n\nfunction doReturn(item, newList) {\n if (newList.length) {\n item.children = newList;\n }\n return newList.length > 0;\n}\n\n// 筛选出指定行业类别的数据\nfunction filter(dataSource, totalList) {\n if (dataSource) {\n dataSource = dataSource.filter((item) => item.isDefault).map((item) => item.value);\n if (dataSource.length) {\n return totalList.filter((item1) => {\n const item2List = item1.children.filter((item2) => {\n const item3List = item2.children.filter((item3) => dataSource.indexOf(item3.occupationCategory) !== -1);\n return doReturn(item2, item3List);\n });\n return doReturn(item1, item2List);\n });\n }\n }\n return totalList;\n}\n\nfunction getValueByLevel(level, filterList) {\n const ret = '';\n for (let i = 0; i < filterList.length; i++) {\n const item1 = filterList[i];\n for (let i2 = 0; i2 < item1.children.length; i2++) {\n const item2 = item1.children[i2];\n for (let i3 = 0; i3 < item2.children.length; i3++) {\n const item3 = item2.children[i3];\n for (let i4 = 0; i4 < item3.children.length; i4++) {\n const item4 = item3.children[i4];\n\n if (Number(level) === Number(item4.value)) {\n // console.log('找到')\n return item4.value;\n }\n }\n }\n }\n }\n return ret;\n}\n\nfunction format(list) {\n const temp = list.map((item) => {\n item.label = item.name;\n item.value = item.code;\n if (Array.isArray(item.children)) {\n item.children = format(item.children);\n }\n return item;\n });\n return temp;\n}\n\nexport default function RowCareer(props) {\n const { attrs, formKey } = props;\n const { dataSource } = attrs;\n const [list, setList] = useState([]);\n useEffect(() => {\n if (!isTemplateMode() && !isTemplateToolMode() && !isPreviewMode()) {\n const { goodsId } = getQueryParam();\n getEnumList('occupation', goodsId).then(({ result, success }) => {\n if (success) {\n const filterList = format(filter(dataSource, result));\n setList(filterList);\n }\n });\n }\n }, []);\n\n // 根据职业类型,筛选职业数据\n return (\n <>\n \n >\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowCascade/index.js",["1372"],"/Users/zhongan/project/za-dplatform-h5/src/components/RowCertValidity/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowDate/index.js",["1373"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-20 16:09:49\n * @LastEditTime: 2021-11-12 13:56:18\n * @LastEditors: wangshengqiang\n * @Description: 日期选择\n */\nimport React from 'react';\nimport moment from 'moment';\nimport FormItem from '@/baseComponents/FormItem';\nimport DateSelect from '@/baseComponents/DateSelect';\nimport { getDateRange } from './tool';\n// limit:\n// begin: (2) [\"28\", \"D\"]\n// end: (2) [18, \"Y\"]\n\nexport default function RowDate(props) {\n const {\n disabled,\n attrs,\n formKey,\n label,\n min = moment().subtract(80, 'years').format('YYYY-MM-DD'),\n max = moment().subtract(18, 'days').format('YYYY-MM-DD'),\n isBenefitFactor,\n isPremiumFactor,\n initialValue,\n } = props;\n const { dataSource, limit, display = {} } = attrs;\n const { placeholder } = display || {};\n const dateRange = getDateRange(limit, min, max);\n\n let _initialValue = initialValue;\n\n if (display.hasDefaultValue && display.defaultValue && !initialValue) {\n const str = JSON.parse(display.defaultValue);\n _initialValue = moment(str).format('YYYY-MM-DD');\n }\n\n const formItemProps = {\n name: formKey,\n label,\n fieldOption: {\n isBenefitFactor,\n isPremiumFactor,\n initialValue: _initialValue,\n },\n };\n return (\n \n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowDate/tool.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowInput/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowNation/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/RowPlanBrief/index.js",["1374"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-06-16 15:36:02\n * @LastEditTime: 2021-06-16 18:35:04\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React from 'react';\nimport cn from 'classnames';\nimport { getState } from '@/store';\nimport './index.less';\n\nexport default function RowPlanBrief() {\n const PLAN_ID = getState('PLAN_ID');\n const { affiliationName, planList = [], name: goodsName } = getState('goodsDetail');\n const plandObj = planList.find((item) => item.id === PLAN_ID);\n const { name } = plandObj;\n return (\n <>\n \n
{affiliationName || ''}
\n
{`${goodsName || ''} - ${name || ''}`}
\n
\n >\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowRadioList/index.js",["1375"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-06 10:05:53\n * @LastEditTime: 2021-11-08 18:37:18\n * @LastEditors: wangshengqiang\n * @Description: 单选\n */\nimport React from 'react';\nimport { Cell, Radio } from 'zarm';\nimport cn from 'classnames';\nimport FormItem from '@/baseComponents/FormItem';\nimport './index.less';\n\nfunction RadioList(data) {\n return data\n .filter((item) => item.isDefault !== false)\n .map((item) => {\n return (\n \n {item.label}\n \n );\n });\n}\n\nexport default function RowRadioList(props) {\n const { attrs, isPremiumFactor, label, formKey, isBenefitFactor, renderList, disabled, onChange } = props;\n const { dataSource, display = {} } = attrs;\n const initialValue = (display.hasDefaultValue && display.defaultValue) ? JSON.parse(display.defaultValue) : undefined;\n const formItemProps = {\n name: formKey,\n label,\n fieldOption: {\n isPremiumFactor,\n isBenefitFactor,\n initialValue,\n },\n };\n\n const childrenList = renderList ? renderList() : RadioList(dataSource);\n const childrenLength = React.Children.count(childrenList);\n const cls = cn({\n 'radio-group-more': childrenLength > 3,\n });\n return (\n \n \n {childrenList}\n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowSelect/index.js",["1376","1377","1378","1379"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-25 10:29:18\n * @LastEditTime: 2021-11-12 17:24:36\n * @LastEditors: wangshengqiang\n * @Description: 单选组件\n */\nimport React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { FormItem, Select } from '@/baseComponents';\n\nexport default function RowSelect(props) {\n const {\n remark,\n label,\n valueMember = 'value',\n textMember = 'label',\n displayRender,\n dataSource,\n attrs,\n formKey,\n rules,\n isPremiumFactor,\n isBenefitFactor,\n cols = 1,\n } = props;\n\n const { display } = attrs;\n const { placeholder, defaultValue } = display;\n const _dataSource = dataSource || attrs.dataSource;\n let datas = _dataSource && _dataSource.filter((item) => item.isDefault !== false);\n datas = datas.map((item) => {\n item.value = String(item.value); // 全部转成字符串防止类型不对导致的不回显\n return item;\n });\n const defaultDisplayRender = (selected) => {\n return selected.map((item) => item[textMember]).join('/');\n };\n\n const itemRender = (item) => {\n return item[textMember];\n };\n\n const initialValue = (defaultValue && JSON.parse(defaultValue)) ? JSON.parse(defaultValue) : undefined;\n\n const formItemProps = {\n name: formKey,\n fieldOption: {\n initialValue,\n rules,\n isPremiumFactor,\n isBenefitFactor,\n },\n label,\n };\n return (\n \n \n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowSex/index.js",["1380"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-19 11:31:01\n * @LastEditTime: 2021-10-27 17:19:57\n * @LastEditors: wangshengqiang\n * @Description: 性别组件\n */\nimport React, { useState, useEffect } from 'react';\nimport { Radio } from 'zarm';\nimport { CustomIcon } from '@/components/common';\nimport { getBirthday, getSex } from '@/utils/tool';\nimport { getPreLeveFormKey } from '@/utils/utils';\nimport { useStore, setFormValue } from '@/store';\nimport RowRadioList from '../RowRadioList';\nimport './index.less';\n\nconst isCard = (idCard) => {\n const arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子\n const arrValid = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; // 校验码\n if (/^\\d{17}\\d|x$/i.test(idCard)) {\n let sum = 0;\n // 对前17位数字与权值乘积求和\n for (let i = 0; i < idCard.length - 1; i++) {\n sum += parseInt(idCard.substr(i, 1), 10) * arrExp[i];\n }\n // 计算模(固定算法)\n const idx = sum % 11;\n // 检验第18为是否与校验码相等\n return arrValid[idx] == idCard.substr(17, 1).toUpperCase();\n }\n return false;\n};\nexport const useDisable = (formKey) => {\n const [disabled, setDisabled] = useState(false);\n const formKeyPrefix = getPreLeveFormKey(formKey);\n const certType = useStore(`formValues.${formKeyPrefix}.certType`);\n const certNo = useStore(`formValues.${formKeyPrefix}.certNo`);\n useEffect(() => {\n if (certType === 'I' && isCard(certNo)) {\n const birthday = getBirthday(certNo);\n const sex = getSex(certNo);\n setFormValue({\n [`${formKeyPrefix}.birthday`]: birthday,\n [`${formKeyPrefix}.gender`]: sex,\n });\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n }, [certNo, certType]);\n return [disabled, setDisabled];\n};\n\nfunction SexType(label) {\n switch (label) {\n case '男':\n return 'sex_nan';\n case '女':\n return 'sex_nv';\n default:\n return '';\n }\n}\n\nexport default function RowSex(props) {\n const { attrs, formKey } = props;\n const { dataSource } = attrs;\n const [disabled] = useDisable(formKey);\n const value = useStore(`formValues.${formKey}`);\n const renderList = () => {\n const sexArr = dataSource.filter((item) => item.isDefault !== false);\n return sexArr.map((item) => {\n return (\n \n \n {item.label} \n \n );\n });\n };\n return (\n \n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/RowStepper/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/SimpleButton/index.js",["1381","1382","1383","1384","1385"],"import classnames from 'classnames';\nimport React, { useContext } from 'react';\nimport { Loading, Toast, NoticeBar, Modal as ZaModal } from 'zarm';\nimport {\n fetchClick,\n} from '@/components/Button';\nimport { dispatch, getState, getFormValue } from '@/store';\nimport { getHashParam } from '@/utils/tool';\nimport { getFetchBaseData, findModuleFromCurrPage } from '@/utils/utils';\nimport { ModuleContext } from '../BaseModule';\nimport { getLocalClick } from '../Button';\nimport './index.less';\n\nconst SimpleButton = React.forwardRef((props = {}, ref) => {\n const { attrs, events, form } = props;\n const {\n buttonText = '',\n buttonId,\n } = attrs;\n const context = useContext(ModuleContext) || {};\n const { buttonCode, component: moduleComponent } = context;\n\n const cls = classnames({\n 'components-simple-button-render': true,\n // [className]: !!className,\n });\n const btnCls = classnames({\n btn: true,\n });\n\n // 获取下一步请求参数\n const getFetchDataWithNotice = () => {\n const data = getFetchBaseData();\n data.buttonCode = buttonCode;\n // data.premium = '';\n // 如何不在下面这几个模块使用sinmpleButton 将不需要整合告知信息作为入参数\n const includeArr = ['healthInfoModule', 'policyHolderInfoModule'];\n if (!includeArr.includes(moduleComponent)) {\n return data;\n }\n\n const noticeType = moduleComponent === 'policyHolderInfoModule' ? 'holder' : 'insured';\n const notice = getState('notice')?.[noticeType];\n\n const { certNo } = getHashParam() || {};\n let currentInsured = 0;\n if (certNo) {\n // 找出是第几个被保人\n const insured = getFormValue('insured');\n currentInsured = insured.findIndex((i) => i.certNo === certNo);\n data.extraInfo.currentInsuredFlag = certNo;\n }\n\n if (!notice) {\n return data;\n }\n\n const { noticeDetailList = [] } = notice;\n const nextNoticeDetailList = noticeDetailList.map((item = {}, index) => {\n // const noticeAnswer = buttonId;\n const noticeAnswer = buttonText.includes('是') ? 'unknown' : 'no';\n return { ...item, noticeAnswer };\n });\n\n const noticeQuestion = {\n ...notice,\n noticeDetailList: nextNoticeDetailList,\n };\n\n // const { state } = JSON.parse(sessionStorage.getItem('STATE'));\n // const { currentInsured = 0 } = state?.otherParams || {};\n\n const { holderNotice, insuredNotice } = getState('healthNoticeInformation') || [];\n // 投保人告知处理\n if (moduleComponent === 'policyHolderInfoModule') {\n noticeQuestion.smartQuestionContent = (holderNotice || {})?.smartQuestionContent;\n data.holder = {\n ...data.holder,\n noticeQuestion,\n };\n dispatch({ 'healthNoticeInformation.holderNotice': noticeQuestion });\n } else if (moduleComponent === 'healthInfoModule') { // 被保人告知处理\n data.insuredList = data.insuredList || [];\n data.insuredList = data.insuredList.map((item = {}, index) => {\n noticeQuestion.smartQuestionContent = (insuredNotice || [])[index]?.smartQuestionContent;\n dispatch({ [`healthNoticeInformation.insuredNotice[${currentInsured}]`]: noticeQuestion });\n // data?.insuredList?.length === 1说明是单被保人\n if (index === currentInsured || data?.insuredList?.length === 1) {\n return { ...item, noticeQuestion: { ...noticeQuestion } };\n }\n return { ...item };\n });\n }\n return data;\n };\n\n // 调用下一步请求\n const getNextStep = async (_buttonCode) => {\n Loading.show();\n const data = getFetchDataWithNotice();\n if (_buttonCode) { data.buttonCode = _buttonCode; }\n // data.noticeObjectType = noticeObjectType;\n Loading.hide();\n fetchClick(data, (resData = {}, next) => {\n const { pageAction } = resData;\n if (pageAction === 'continue') {\n // eslint-disable-next-line no-use-before-define\n return onClickLocal;\n }\n return next;\n });\n };\n\n // 按钮配置事件处理\n const onClickLocal = getLocalClick(events, (opt, next) => {\n return next;\n }, getNextStep);\n\n const { channelCodeStatus } = getState('otherParams') || {};\n\n const handleClick = async () => {\n const res = await form.validateFields();\n // 对条款的判断逻辑\n // const clauseIsRead = getState(CLAUSE_CHECKED);\n // // // 判断当前页面有没有阅读条款模块\n // const hasClauseModule = findModuleFromCurrPage('clauseModule');\n // // 如果没有勾选不能点击下一步接口\n // if (hasClauseModule && clauseIsRead !== true) {\n // Toast.show('请仔细阅读并勾选投保须知');\n // return;\n // }\n\n // 对逐页阅读弹逻辑处理\n // 在逐页阅读弹出层会dispatch一个全局状态标识阅读按钮是否被点击,此处需要读取这个状态\n const hasSupervisionPopupModule = findModuleFromCurrPage('supervisionPopupModule');\n if (hasSupervisionPopupModule) {\n const supervisionClicked = getState('supervisionBtnClicked');\n const { clicked = false, supervisionTarget } = supervisionClicked;\n if (!clicked) {\n if (supervisionTarget) {\n // supervision 监督\n const target = getState(supervisionTarget);\n // 带有逐页阅读模块的页面后退进入其他页面时残余数据会走下面的方法 阻止调用下一步方法\n if (target) {\n target.setTab(1);\n const result = await target.show();\n if (!result) return Toast.show('请仔细阅读并勾选投保须知');\n }\n }\n }\n }\n\n getNextStep();\n };\n\n return (\n <>\n {channelCodeStatus === 'offSale' ? (\n \n ) : (\n \n )}\n >\n );\n});\n\nexport default SimpleButton;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/SupervisionPopModule.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/Watermark/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/bubbleTip/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/confirmButton/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/confirmTip/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/content/index.js",["1386","1387","1388","1389","1390"],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/fullscreenTipsModule/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/popupBubble/index.js",["1391","1392","1393","1394","1395"],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/supervisionPopup/index.js",["1396","1397","1398","1399"],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tabContent/index.js",["1400"],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tabList/index.js",["1401"],"/Users/zhongan/project/za-dplatform-h5/src/components/Supervision/tooltipFullScreen/index.js",["1402","1403"],"/Users/zhongan/project/za-dplatform-h5/src/components/Tabs/index.js",["1404"],"import React from 'react';\nimport { Panel } from 'zarm';\nimport { AnchorTabs, Title1, CommonRemark } from '@C/_common';\n\nexport default function Tabs(props) {\n const { _render: Render, remark, _children = [], showLabel, _label } = props;\n // const cls = cn('c-tabs', { 'c-tabs--fixed': this.state.fixed })\n // if (_children.length === 1) {\n // return (\n // \n // )\n // }\n return (\n <>\n {showLabel && } />}\n \n {_children.map((item, index) => (\n \n \n \n ))}\n \n >\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/Title/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/Toolbar.js",["1405","1406","1407","1408"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 14:42:21\n * @LastEditTime: 2021-06-11 16:50:30\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport classnames from 'classnames';\nimport React from 'react';\n// import Fixed from '../../components/_common/FixedBottom/Fixed';\nimport { dispatch } from '@/store';\nimport BaseModule, { ModuleContext } from '../BaseModule';\n\nconst InitialPremiumModule = React.forwardRef((props = {}, ref) => {\n const { id, moduleUid, children, Render } = props;\n if (!children || children.length === 0) return null;\n\n if (!moduleUid) {\n return (\n \n \n
\n );\n }\n return (\n \n \n \n );\n});\n\nexport default InitialPremiumModule;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/CustomerService/CustomerService.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/CustomerService/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/DetailRemark/DetailRemark.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/DetailRemark/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/Premium/Premium.js",["1409"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 14:42:21\n * @LastEditTime: 2021-07-02 10:20:30\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, {\n useEffect,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { dispatch, getState } from '@/store';\n\nimport { usePremium } from '@/components/Button';\nimport { PREMIUM } from '@/constants';\n\nconst Sp = (props) => {\n return ({props.children});\n};\n\nconst getPrice = (num = 0) => {\n num = typeof num === 'string' ? Number(num) : num;\n num = Number.isNaN(num) ? 0 : num;\n\n return num ? num.toFixed(2) : 0;\n};\n\nconst Premium = React.forwardRef((props = {}, ref) => {\n const {\n className,\n defaultType = '',\n dataSource = [],\n ...others\n } = props;\n\n const cls = classnames({\n 'components-premium-render': true,\n [className]: !!className,\n });\n\n const [premium = {}] = usePremium();\n // const premium = {}\n useEffect(() => {\n const curr = dataSource.find(\n (item = {}) => item.type === defaultType,\n ) || {};\n dispatch(PREMIUM, curr);\n }, [dataSource, defaultType]);\n\n const renderContent = () => {\n const { type } = premium;\n const premiumConfig = getState(PREMIUM);\n const { isShow = [true, true] } = premiumConfig || {};\n if (type === 'year') {\n const { value = 0, remark = '元' } = premium;\n const price = value;\n return (\n \n ¥ {price} {remark}\n
\n );\n }\n\n if (type === 'month') {\n const { value = [], shit, remark = [] } = premium;\n const [first = 0, rest = 0] = value;\n const firstPrice = first;\n const restPrice = rest;\n return (\n <>\n \n 首月 ¥ {firstPrice}{shit ? '元' : remark[0]}\n
\n {\n isShow[1]\n ? (\n \n 次月起 ¥ {restPrice} {shit ? '元' : remark[1]}/月\n
\n )\n : null\n }\n >\n );\n }\n\n return '保费试算中';\n };\n\n return (\n \n { renderContent()}\n
\n );\n});\n\nexport default Premium;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/Premium/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/SimpleRemark/SimpleRemark.js",["1410","1411"],"import React, {\n useState,\n useEffect,\n} from 'react';\nimport classnames from 'classnames';\nimport { parseParam } from '@U/tool';\nimport { subscribe, getState } from '@/store';\n\nimport { useLocalClick } from '@/components/Button';\n\n// 监听表单变化获取被保人信息 判断是否显示简单描述\n// 监听表单 判断是否所有被保人都不抽烟\nconst useVisible = () => {\n const [data = {}, setData] = useState({});\n const { insuredList = [] } = data;\n\n useEffect(() => {\n // const fn = async () => {\n // const newData = await getFetchData() || {};\n\n // setData(newData);\n // };\n\n // subscribeTree(fn, 'formValues');\n }, []);\n\n return insuredList.every((item = {}) => {\n const { person } = item;\n\n if (!person) {\n return true;\n }\n\n return person.smoking !== 'Y';\n });\n};\n\n// 健康险操作栏简单描述组件\nconst SimpleRemark = React.forwardRef((props = {}, ref) => {\n const { attrs, className } = props;\n const {\n isShow = false,\n defaultType = 'cumstomer',\n dataSource = [],\n events = {},\n ...others\n } = attrs;\n const visible = useVisible();\n const [text = '', setText] = useState('');\n const [configJson = {}, setConfigJson] = useState({});\n const params = parseParam(window.location.search.split('?')[1]) || {};\n const { purchaseUserId = '' } = params;\n const cls = classnames({\n 'components-simple-remark-render': true,\n [className]: !!className,\n });\n\n const onClick = useLocalClick(events);\n\n useEffect(() => {\n setConfigJson(getState('configJson') || {});\n subscribe(setConfigJson, 'configJson');\n }, []);\n\n useEffect(() => {\n const curr = dataSource.find(\n (item = {}) => item.type === defaultType,\n ) || {};\n\n const { type, value = '优选价格' } = curr;\n const { goodsAlias = '商品别名' } = configJson;\n\n switch (type) {\n case 'cumstomer':\n setText(value);\n break;\n case 'interface':\n default:\n setText(goodsAlias);\n break;\n }\n }, [defaultType, dataSource, configJson]);\n\n if (!isShow) {\n return null;\n }\n\n if (!visible) {\n return null;\n }\n\n // 华米移除优选价格标示\n if (purchaseUserId.includes('HUAMI')) {\n return null;\n }\n\n return (\n \n );\n});\n\nexport default SimpleRemark;\n","/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/components/SimpleRemark/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/Toolbar/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/Ticktock.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/hooks.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/Ticktock/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/ValidateCode/index.js",["1412","1413","1414","1415","1416","1417"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-22 16:01:05\n * @LastEditTime: 2021-05-24 16:05:11\n * @LastEditors: wangshengqiang\n * @Description: sd\n */\nimport React, {\n useRef,\n useCallback,\n} from 'react';\nimport classnames from 'classnames';\nimport { Input, Cell, Toast } from 'zarm';\nimport request from '@/utils/request';\nimport { getState, getFormValue } from '@/store';\n\nimport { getQueryParam } from '@/utils/tool';\nimport { getPreLeveFormKey, getStatePath } from '@/utils/utils';\nimport { PLAN_ID } from '@/constants';\nimport RowInput from '../RowInput';\nimport Ticktock from './Ticktock';\nimport './index.less';\n\nconst KEY = 'phoneNo';\nconst PHONE_KEY = 'policyHolder.phoneNo';\nconst VALIDATE_CODE_KEY = 'policyHolder.validateCode';\n\nconst useEventCallback = (fn) => {\n const ref = useRef(fn);\n\n ref.current = fn;\n\n return useCallback((...args) => {\n const { current } = ref;\n\n return current && current(...args);\n }, [ref]);\n};\n\nconst VerifyCode = React.forwardRef((props = {}, ref) => {\n const { formKey } = props;\n // const cls = classnames({\n // 'components-validate-code-render': true,\n // 'cc-row-input': true,\n // [className]: !!className,\n // });\n const preFormKey = getPreLeveFormKey(formKey);\n const onClickSendSms = useEventCallback(async () => {\n const planId = getState(PLAN_ID);\n const target = getFormValue(`${preFormKey}.${KEY}`);\n const { templateRelationId, promotionId = templateRelationId } = getQueryParam();\n\n const data = {\n planId,\n target,\n promotionId,\n businessType: 'normalValidate',\n validateCodeType: 'smsValidateCode',\n };\n\n const opts = { method: 'POST', data };\n\n const res = await request('/v1/insure/sendValidateCode', opts) || {};\n const { code, message = '网络异常,请稍后重试', result } = res;\n\n Number(code) && Toast.show(message);\n return result;\n });\n\n const onClickBeforeSendSms = useEventCallback((e) => {\n const phoneKey = getStatePath(formKey, KEY);\n const phone = getFormValue(phoneKey) || '';\n const reg = /^1[3|4|5|8|7|9][0-9]\\d{8}$/;\n const useful = reg.test(phone);\n\n if (useful) {\n return;\n }\n\n e.stopPropagation();\n Toast.show('请输入正确的手机号后获取验证码');\n });\n const ValidateCode = async (rule, value, callback) => {\n const phoneKey = getStatePath(formKey, KEY);\n const target = getFormValue(phoneKey) || '';\n if (!target) {\n callback(new Error('请输入手机号'));\n return;\n }\n if (!value) {\n callback(new Error('请输入验证码'));\n return;\n }\n const planId = getState(PLAN_ID);\n const { templateRelationId, promotionId = templateRelationId } = getQueryParam();\n\n const data = {\n planId,\n target,\n validateCode: value,\n promotionId,\n businessType: 'normalValidate',\n validateCodeType: 'smsValidateCode',\n };\n\n const opts = { method: 'POST', data };\n const res = (await request('/v1/insure/verifyValidateCode', opts)) || {};\n const { message, success, result } = res;\n\n if (!success || !result) {\n Toast.show(message || '系统异常,请稍后重试');\n callback(new Error(message));\n return;\n }\n callback();\n };\n const description = (\n \n 获取验证码\n \n );\n const inputProps = {\n inputType: 'text',\n placeholder: '请输入验证码',\n maxLength: 6,\n description,\n validateTrigger: 'no',\n rules: [{ validator: ValidateCode }],\n };\n return (\n \n \n
\n );\n});\n\nexport default VerifyCode;\n","/Users/zhongan/project/za-dplatform-h5/src/components/common/AddableBlock/index.js",["1418","1419"],"/* eslint-disable no-plusplus */\nimport React from 'react';\nimport _ from 'lodash';\nimport { updateFormKey, rerangeFormKey } from '@/utils/tool';\nimport { getFormValue, setFormValue } from '@/store';\nimport ButtonAdd from '../ButtonAdd/index.js';\n\n/* interface PropTypes {\n // item to add\n Component: React.Component;\n // config json\n config: {},\n initCount: number;\n maxCount: number;\n // formKey\n formValueArrayKey?: string;\n // triggered when add or delete item\n onCountChange(e: { type: 'add' | 'delete', count: number }): void;\n addButtonText: string;\n addButtonNoBorder: boolean;\n} */\n\nexport default class AddableBlock extends React.Component {\n static childUniqueKeyCounter = 0;\n\n constructor(props) {\n super(props);\n this.state = this.getInitState();\n }\n\n componentDidUpdate(prevProps) {\n const { config, initCount } = this.props;\n // 响应模板配置改动 config !== prevProps.config ||\n if (initCount !== prevProps.initCount) {\n const initState = this.getInitState();\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(initState);\n }\n }\n\n getInitState() {\n const { config, initCount } = this.props;\n this.configStr = JSON.stringify(config);\n const components = _.times(initCount > 0 ? initCount : 1, (index) => this.getNewConfig(index));\n\n return { components };\n }\n\n getNewConfig(index) {\n let newConfig = JSON.parse(this.configStr);\n const { noUpdateConfig } = this.props;\n if (index >= 0 && !noUpdateConfig) {\n newConfig = updateFormKey(newConfig, index);\n }\n newConfig.key = AddableBlock.childUniqueKeyCounter++;\n return newConfig;\n }\n\n handleAdd = () => {\n const { components } = this.state;\n const len = components.length;\n if (len < this.props.maxCount) {\n this.updateComponents([...components, this.getNewConfig(len)], 'add');\n }\n };\n\n handleDelete = (index) => {\n const { formValueArrayKey } = this.props;\n const { components } = this.state;\n components.splice(index, 1);\n components.forEach(rerangeFormKey);\n this.updateComponents(components, 'delete');\n\n // 加个定制化的逻辑 专门删除被保人用\n const isInsure = ['trailElement[1]', 'insured', 'calcObj.insure'].indexOf(formValueArrayKey) !== -1;\n if (isInsure) {\n // 因为在提交时候会对这三个被保人做合并处理\n // 所以删除的时候也要都删除掉\n const insuredList = getFormValue('insured');\n const trailInsured = getFormValue('trailElement[1]');\n const calcInsured = getFormValue('calcObj.insure');\n\n if (insuredList) {\n insuredList.splice(index, 1);\n }\n if (trailInsured) {\n trailInsured.splice(index, 1);\n }\n if (calcInsured) {\n calcInsured.splice(index, 1);\n }\n\n setFormValue({\n insured: insuredList,\n 'trailElement[1]': trailInsured,\n 'calcObj.insure': calcInsured,\n });\n return;\n }\n\n // update stored form value\n if (formValueArrayKey) {\n const arr = getFormValue(formValueArrayKey);\n if (arr) {\n arr.splice(index, 1);\n }\n setFormValue(formValueArrayKey, arr);\n }\n };\n\n updateComponents(components, type) {\n const { onCountChange } = this.props;\n this.setState({ components });\n onCountChange\n && onCountChange({\n type,\n count: components.length,\n });\n }\n\n render() {\n const {\n addButtonText,\n addButtonNoBorder = true,\n maxCount,\n Component,\n config,\n ...rest\n } = this.props;\n const { components } = this.state;\n const total = components.length;\n console.log('components: ', components);\n\n return (\n \n {components.map((item, index) => (\n \n ))}\n \n {addButtonText}\n \n
\n );\n }\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/common/Block1/index.js",["1420","1421","1422"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-12 17:27:15\n * @LastEditTime: 2021-05-12 17:27:30\n * @LastEditors: wangshengqiang\n * @Description: d\n */\nimport React from 'react';\nimport cn from 'classnames';\nimport './index.less';\n\nexport default function Block(props) {\n const { noGap, _label, remark, showLabel, title, className, titleClass, children } = props;\n const cls = cn(\n 'cc-block',\n {\n 'cc-block--nogap': noGap,\n },\n className,\n );\n\n const _title = showLabel === false ? '' : title || _label;\n\n return (\n \n {children}\n
\n );\n}\n","/Users/zhongan/project/za-dplatform-h5/src/components/common/ButtonAdd/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/ButtonDelete/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/CPopup/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/CustomIcon/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/DeletableBlock/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/Detail/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/Header/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/RowBlockTitle/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/Value/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/common/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/components/index.js",["1423"],"/Users/zhongan/project/za-dplatform-h5/src/constants/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/constants/storeKey.js",[],"/Users/zhongan/project/za-dplatform-h5/src/env.js",[],"/Users/zhongan/project/za-dplatform-h5/src/global.js",[],"/Users/zhongan/project/za-dplatform-h5/src/history.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hoc/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hoc/withProps.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hoc/withQuery.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hooks/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hooks/useCacheState.js",["1424","1425"],"import { useCallback, useState } from 'react';\nimport session from '../store/session';\nimport { isPreviewMode, toParam } from '../utils/tool';\nimport { useStore } from './useStore';\n\nexport const setStorage = (key, val, expire) => {\n if (isPreviewMode()) {\n return;\n }\n const item = {\n value: val,\n expire: expire ? Date.now() + expire : NaN,\n };\n localStorage.setItem(key, JSON.stringify(item));\n};\n\nexport const getStorage = (key) => {\n if (isPreviewMode()) {\n return undefined;\n }\n const val = localStorage.getItem(key);\n try {\n const item = JSON.parse(val);\n if (item.expire && Date.now() < item.expire) {\n return undefined;\n }\n return item.value;\n } catch (e) {\n return undefined;\n }\n};\n\nexport const useCacheState = (key, initialState) => {\n const initialValue = getStorage(key);\n const [state, setState] = useState(\n typeof initialValue !== 'undefined' ? initialValue : initialState,\n );\n const set = useCallback(\n (val) => {\n setState(val);\n setStorage(key, val);\n },\n [key],\n );\n const clear = () => {};\n return [state, set, { clear }];\n};\n\nexport const useSessionState = (key, initialState) => {\n const sessionVal = session.get(key);\n};\n\n// 针对每个投保配置和商品id读写本地缓存状态\nexport const useCacheStateByPage = (key, initialState) => {\n const [config] = useStore('configJson');\n const { templateId, goodsId, insureConfigId } = config;\n const nextKey = toParam({\n key,\n templateId,\n goodsId,\n insureConfigId,\n });\n return useCacheState(nextKey, initialState);\n};\n\nexport default useCacheState;\n","/Users/zhongan/project/za-dplatform-h5/src/hooks/useCountdown.js",["1426","1427"],"import { useToggle, useInterval } from 'react-use';\nimport React, { useEffect, useState } from 'react';\n\nexport const useCountdown = (timer, { onFinish }) => {\n const [remain, setRemain] = useState(-1);\n useInterval(() => setRemain(remain - 1), remain ? 1000 : null);\n useEffect(() => {\n if (timer >= 0) {\n setRemain(timer);\n }\n }, [timer]);\n useEffect(() => {\n onFinish && remain === 0 && onFinish();\n }, [onFinish, remain]);\n return remain;\n};\n\nexport default useCountdown;\n","/Users/zhongan/project/za-dplatform-h5/src/hooks/useEnum.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hooks/useFixedUI.js",[],"/Users/zhongan/project/za-dplatform-h5/src/hooks/useStore.js",[],"/Users/zhongan/project/za-dplatform-h5/src/layouts/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/pages/JSON.js",[],"/Users/zhongan/project/za-dplatform-h5/src/pages/abandonPay/confirm/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/pages/abandonPay/query/index.js",["1428","1429"],"import React, { useEffect, useState } from 'react';\nimport localStorage from 'store';\nimport { Modal, Toast } from 'zarm';\nimport logo from '@/assets/images/zhonganLogo.png';\nimport history from '@/history';\nimport { getQueryPayNextUrl, queryPolicyInfo } from '@/services/order';\nimport { getState } from '@/store';\nimport { getQueryParam } from '@/utils/tool';\nimport './index.less';\n\nconst QueryPay = (props) => {\n const [time, setTime] = useState(30);\n\n const getStatus = async (orderNo) => {\n const queryParam = getQueryParam() || {};\n const res = await queryPolicyInfo({\n channelCode: queryParam.channelCode,\n encryptOrderNo: orderNo,\n });\n const { message, success, result = {} } = res;\n if (!success) {\n Toast.show(message);\n return false;\n }\n const { issueStatus } = result;\n return issueStatus !== 'processing';\n };\n\n const onOk = async (orderNo, successUrl, failedUrl) => {\n const status = await getStatus(orderNo);\n\n if (status) {\n window.location.replace(successUrl);\n return;\n }\n const link = encodeURIComponent(failedUrl);\n history.replace(`/confirmpay?failedUrl=${link}`);\n };\n\n const onCancel = async (orderNo, successUrl, failedUrl) => {\n // 微信场景不付了直接关闭\n if (typeof window.WeixinJSBridge !== 'undefined') {\n window.WeixinJSBridge.call('closeWindow');\n }\n const status = await getStatus(orderNo);\n if (status) {\n window.location.replace(successUrl);\n } else {\n window.location.replace(failedUrl);\n }\n };\n\n const Title = () => {\n return 提示;\n };\n\n useEffect(() => {\n const color = localStorage.get('themeColor');\n if (color) {\n document.documentElement.style.setProperty('--theme-primary', color);\n }\n }, []);\n\n useEffect(() => {\n document.title = '支付查询中';\n const queryParam = getQueryParam() || {};\n const orderNo = queryParam.encryptOrderNo || getState('encryptOrderNo');\n const { pageCode = '' } = queryParam;\n if (!orderNo) {\n Toast.show('没有订单号可以查询');\n return;\n }\n\n let timer = 0;\n async function fetch() {\n const res = await getQueryPayNextUrl(queryParam);\n const { success, message, result } = res;\n\n if (!success) {\n Toast.show(message || '网络错误');\n return;\n }\n const { successUrl, failedUrl } = result;\n if (time !== 0) {\n timer = setInterval(async () => {\n const status = await getStatus(orderNo);\n\n // console.log('status==>', time, status);\n if (status) {\n clearInterval(timer);\n window.location.replace(successUrl);\n }\n setTime((n) => {\n if (n === 1) {\n clearInterval(timer);\n Modal.confirm({\n title: ,\n content: '请确认是否已完成支付',\n okText: '付好了',\n cancelText: '不付了',\n onCancel: () => {\n onCancel(orderNo, successUrl, failedUrl);\n },\n onOk: () => {\n onOk(orderNo, successUrl, failedUrl);\n },\n });\n }\n return n - 1;\n });\n }, 1000);\n }\n }\n\n fetch();\n\n return () => {\n // 组件销毁时,清除定时器\n clearInterval(timer);\n };\n }, []);\n\n return (\n \n
\n

\n
\n
众安支付中心
\n
\n
众安正在加急查询您的支付结果
\n
\n
请稍候.....
\n
\n
\n );\n};\n\nexport default QueryPay;\n","/Users/zhongan/project/za-dplatform-h5/src/pages/index/QueryOrderDetail.js",["1430"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-04-25 11:28:25\n * @LastEditTime: 2021-10-29 21:54:09\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, { useEffect } from 'react';\nimport { getOrderDetail } from '@/components/Button';\nimport { getQueryParam } from '@/utils/queryString.js';\n\n// 订单查询逻辑\nconst QueryOrderDetail = () => {\n const hashPage = window.location.hash;\n useEffect(() => {\n if (getQueryParam().encryptOrderNo) {\n getOrderDetail();\n }\n }, [hashPage]);\n return null;\n};\n\nexport default QueryOrderDetail;\n","/Users/zhongan/project/za-dplatform-h5/src/pages/index/Trial.js",["1431","1432","1433","1434"],"/* eslint-disable no-unused-vars */\n/*\n * @Author: wangshengqiang\n * @Date: 2021-04-25 11:28:08\n * @LastEditTime: 2021-10-22 17:52:01\n * @LastEditors: wangshengqiang\n * @Description: 试算逻辑\n */\nimport React, { useEffect } from 'react';\nimport { getQueryParam } from '@/utils/queryString';\nimport { findModuleFromPage, getFetchBaseData } from '@/utils/utils';\nimport ZaToast from '@/utils/ZaToast.js';\nimport request from '@/utils/request';\nimport { dispatch, getState } from '@/store';\nimport SingleAlert from '@/singleAlert';\n\n// 调用试算接口,返回试算结果\nexport const getCalculatedPremium = async () => {\n // 试算传入订单号, 更新订单信息\n const data = getFetchBaseData();\n const { orderNo, encryptOrderNo } = getQueryParam();\n data.orderNo = orderNo;\n data.encryptOrderNo = encryptOrderNo;\n // data.thirdChannelCode= \"QD202103257276\";\n // data.extraInfo = {\n // canalDefine: '',\n // originAccount: '127229',\n // originChannel: 'QD202103257276',\n // thirdChannelCode: 'QD202103257276',\n // };\n const opts = { method: 'POST', data };\n const res = (await request('/v1/insure/premiumCalculate', opts)) || {};\n const { code, message, result } = res;\n\n if (Number(code)) {\n const codeList = ['20000', '20019'];\n if (codeList.includes(code)) {\n const modal = SingleAlert({\n title: '温馨提示',\n content: message,\n onCancel: () => {\n modal.hide();\n },\n });\n return;\n }\n ZaToast.show(message);\n return;\n }\n // 把试算结果存到store中\n const premium = getState('premium');\n const { payType, initialPremium, nextPremium } = result;\n dispatch('premium', {\n ...premium,\n ...result,\n type: payType == '1' ? 'year' : 'month',\n value: payType == '1' ? initialPremium : [initialPremium, nextPremium],\n });\n};\n\nconst Trial = ({ form }) => {\n const formValuesStr = form.getFieldsValue(undefined, (fieldMeta) => {\n return fieldMeta.isPremiumFactor;\n });\n\n const fetchPremium = () => {\n getCalculatedPremium();\n };\n\n useEffect(() => {\n const names = form.getFieldsName((meta) => meta.isPremiumFactor);\n // console.log('names: ', names);\n if (!names || names.length < 1) {\n return;\n }\n setTimeout(() => {\n form.validateFields(names, { noUpdate: true }).then((val) => {\n console.log('val: 试算', val);\n fetchPremium();\n }).catch((e) => {\n console.log('val: 试算', 'error');\n });\n }, 500);\n }, [JSON.stringify(formValuesStr)]);\n return ;\n};\n\nexport default Trial;\n","/Users/zhongan/project/za-dplatform-h5/src/pages/index/index.js",["1435","1436","1437","1438","1439","1440"],"/* eslint-disable react/require-default-props */\n/* eslint-disable react/no-unused-state */\n/* eslint-disable react-hooks/rules-of-hooks */\n/* eslint-disable no-unused-expressions */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport PageView from '@C/PageView';\nimport { Loading, NoticeBar } from 'zarm';\nimport moment from 'moment';\nimport styled from 'styled-components';\nimport { dispatch, getState } from '@/store';\n// import { createForm, formShape } from 'rc-form';\nimport { createForm, formShape } from '@/rc-form/es';\nimport { FormContext } from '@/store/context';\nimport { isPreviewMode, getQueryParam } from '@/utils/tool';\nimport { getHashParam } from '@/utils/queryString';\nimport { queryGoodsTemplateConfig, queryGoodsDetail, getAllPreviewPageConfig } from '@/services';\nimport ZaToast from '@/utils/ZaToast.js';\nimport { getLocalClick } from '@/components/Button/hooks.js';\nimport Modal from '@/components/Modal/index.js';\nimport { POSTMESSAGE_PARAMS } from '@/constants';\nimport QueryOrderDetail from './QueryOrderDetail';\nimport Trial from './Trial';\nimport PreviewButton from './previewButton';\n\nclass IndexPage extends React.Component {\n state = {\n loading: false,\n pageJson: null,\n activeModuleId: 0,\n currentPageId: '',\n notice: { showNotice: false, desc: '' },\n pageIndex: 1,\n };\n\n static propTypes = {\n form: formShape,\n };\n\n componentDidMount() {\n // const { dispatch, history } = this.props;\n // this.off('message', this.handleMessage);\n this.on('message', this.handleMessage);\n this.postMessage({ type: 'previewLoaded' });\n this.fetchGoodsDetail();\n if (!isPreviewMode()) {\n this.fetchConfigJson();\n }\n }\n\n off = (evnetName, callback) => {\n window.self.removeEventListener(evnetName, callback, false);\n };\n\n on = (evnetName, callback) => {\n window.self.addEventListener(evnetName, callback, false);\n };\n\n handleMessage = (e) => {\n const { data } = e;\n console.log('h5收到iframe消息 e: ', e);\n console.log('h5收到iframe消息 data: ', data);\n if (!data) return;\n this[data.type] && this[data.type](data);\n };\n\n postMessage = (data) => {\n window.parent.postMessage(data, POSTMESSAGE_PARAMS);\n };\n\n // ifram 消息处理\n allPageConfig = (eventDate) => {\n const { data } = eventDate;\n dispatch({\n configJson: data,\n });\n };\n\n // ifram 消息处理\n activePage = (eventDate) => {\n const { data } = eventDate;\n this.setState({\n pageIndex: data,\n });\n };\n\n // ifram 消息处理\n pageConfig = (eventDate) => {\n const { data } = eventDate;\n // const { pageJson } = this.state;\n // if (pageJson && (data.pageId === pageJson.pageId)) return;\n this.setState({\n pageJson: data,\n // currentPageId: data.pageId,\n });\n dispatch({\n // PLAN_ID: data.data.currentPlan - 0,\n // currentPlan: data.data.currentPlan - 0,\n configJson: {\n pageList: [data],\n },\n });\n };\n\n // ifram 消息处理\n behavior = (data) => {\n if (!data) {\n return;\n }\n const { type, data: { showModalModule = [] } = {} } = data;\n const [modal] = showModalModule;\n\n if (data.data.currentPlan) {\n dispatch({\n PLAN_ID: data.data.currentPlan - 0,\n currentPlan: data.data.currentPlan - 0,\n });\n }\n\n if (type !== 'behavior') {\n return;\n }\n\n if (modal) {\n const opts = {\n modal,\n type: 'modal',\n };\n\n getLocalClick(opts)();\n } else {\n Modal.hide();\n }\n };\n\n // ifram 消息处理\n changeColor = (data) => {\n if (!data) {\n return;\n }\n const { data: _data } = data;\n if (_data.primaryColor) {\n localStorage.setItem('themeColor', _data.primaryColor);\n document.documentElement.style.setProperty('--theme-primary', _data.primaryColor);\n }\n };\n\n activeModuleId = (eventDate) => {\n const { data } = eventDate;\n this.setState({\n activeModuleId: data,\n });\n };\n\n // 获取json 配置数据\n fetchConfigJson = async () => {\n const { dispatch: _dispatch } = this.props;\n const { promotionId, insureConfig } = getQueryParam();\n this.setState({\n loading: true,\n });\n Loading.show();\n let res = null;\n if (insureConfig) {\n res = await getAllPreviewPageConfig(insureConfig);\n } else {\n const formData = new FormData();\n formData.append('promotionId', promotionId);\n res = await queryGoodsTemplateConfig(formData);\n }\n Loading.hide();\n if (res.success) {\n _dispatch({\n type: 'configJson',\n payload: {\n configJson: res.result,\n // configJson: configJsonMOCK.result,\n },\n });\n this.saleableCheck(res.serverNowTime);\n // 处理主题色\n const { themes = {} } = res.result;\n if (themes.primaryColor) {\n localStorage.setItem('themeColor', themes.primaryColor);\n document.documentElement.style.setProperty('--theme-primary', themes.primaryColor);\n }\n } else {\n ZaToast.show(res.message);\n }\n };\n\n fetchGoodsDetail = async () => {\n const { goodsId } = getQueryParam();\n if (!goodsId) return;\n const { result, success } = await queryGoodsDetail({ goodsId });\n if (success) {\n const payload = { goodsDetail: result };\n if (result.planList?.length === 1) {\n payload.PLAN_ID = result.planList[0].id;\n }\n dispatch(payload);\n }\n };\n\n appendNoticeBar = (desc, delay) => {\n if (delay && delay > 0) {\n setTimeout(() => {\n this.setState({ notice: { showNotice: true, desc } });\n }, delay);\n return;\n }\n this.setState({ notice: { showNotice: true, desc } });\n };\n\n // 计算本地时间与服务器时间的误差\n computeDeviation = (date) => {\n if (!date) {\n return 0;\n }\n const format = 'YYYY-MM-DD HH:mm:ss';\n const deviation = moment(date, format).diff(moment(), 'second');\n return deviation;\n };\n\n // 校验每日可销售时段\n saleableCheck = (date) => {\n const deviation = this.computeDeviation(date);\n const { goodsDailySalesEndTime, goodsDailySalesStartTime } = getState('configJson') || {};\n\n if (goodsDailySalesEndTime && goodsDailySalesStartTime) {\n const format = 'YYYY-MM-DD HH:mm:ss';\n const current = moment(moment().valueOf() + deviation * 1000);\n const start = moment(goodsDailySalesStartTime, format);\n const end = moment(moment(goodsDailySalesEndTime, format).valueOf() - 10 * 60 * 1000); // 结束时间前 10分钟开启提示\n const desc = `本投保流程每日可销售时间段为${goodsDailySalesStartTime}至${goodsDailySalesEndTime},当前时间不支持投保。`;\n if (current.diff(start, 'second') <= 0 || current.diff(end, 'second') >= 0) {\n // console.log(' 不在销售时间段内 ');\n this.appendNoticeBar(desc);\n return false;\n }\n\n // 一段时间后开启提示 结束时间前10分钟 - 当前时间\n const delay = end.diff(moment());\n this.appendNoticeBar(desc, delay);\n }\n return true;\n };\n\n render() {\n const { configJson, form } = this.props;\n const { pageList = [] } = configJson || {};\n const { pageJson, activeModuleId, notice, pageIndex } = this.state;\n if (!configJson && !isPreviewMode()) {\n return null;\n }\n const queryParam = getQueryParam();\n let num = getHashParam('page') || pageIndex;\n if (queryParam.pageCode) {\n const _pageIndex = pageList.findIndex((pageItem) => pageItem.pageId === queryParam.pageCode);\n num = _pageIndex + 1;\n }\n const _pageJson = pageList[num - 1] || pageJson;\n\n if (!_pageJson) return <>>;\n return (\n <>\n {notice.showNotice === true && {notice.desc}}\n \n { this.setState(val); }} />\n \n \n \n {/* 投保配置预览页面时使用 */}\n {queryParam.mode === 'simulate' && }\n >\n );\n }\n}\n\n// 通知栏\nconst NoticeBarStyled = styled(NoticeBar)`\n position: fixed;\n top: 0;\n z-index: 10;\n background: rgb(254, 244, 234);\n width: 100%;\n`;\n\nexport default connect((state) => {\n return {\n configJson: state.configJson,\n currentPage: state.currentPage,\n };\n})(createForm({\n onFieldsChange: (props, changedFields, allFields) => {\n // console.log('onFieldsChange props', props);\n // console.log('onFieldsChange changedFields', changedFields);\n // console.log('onFieldsChange allFields', allFields);\n },\n onValuesChange: (props, changeValue, allValue) => {\n // console.log('onValuesChange props: ', props);\n // console.log('onValuesChange changeValue: ', changeValue);\n // console.log('onValuesChange allValue: ', allValue);\n const { dispatch: _dispatch } = props;\n _dispatch({\n type: 'setFormValue',\n payload: {\n ...changeValue,\n },\n });\n },\n})(IndexPage));\n","/Users/zhongan/project/za-dplatform-h5/src/pages/index/previewButton/index.js",["1441","1442"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-09-28 11:15:27\n * @LastEditTime: 2021-09-28 13:45:37\n * @LastEditors: wangshengqiang\n * @Description:\n */\nimport React, { useState } from 'react';\nimport { Popup, Cell, Icon } from 'zarm';\nimport './index.less';\nimport lookSvg from '@/assets/images/look.svg';\nimport { goNext } from '@/utils/navigation';\nimport { getHashParam } from '@/utils/queryString';\n\nconst PreviewButton = (props) => {\n const { pageList = [] } = props;\n const currentIndex = getHashParam('page') || 1;\n console.log('currentIndex: ', currentIndex);\n const [vis, setVis] = useState(false);\n\n const changePage = (pageOrder) => {\n goNext(pageOrder);\n setVis(false);\n };\n\n return (\n \n {!vis && (\n
setVis(true)}>\n

\n
\n )}\n
setVis(false)}\n direction=\"right\"\n afterClose={() => {}}\n >\n \n {pageList\n && pageList.map((item, index) => {\n return (\n | {\n changePage(item.pageOrder);\n }}\n />\n );\n })}\n |
\n \n
\n );\n};\n\nexport default PreviewButton;\n","/Users/zhongan/project/za-dplatform-h5/src/services/JDservice.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/config.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/dict.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/goods.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/order.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/questionnaire.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/reservation.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/ruleCheck.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/supervision.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/underwriting.js",[],"/Users/zhongan/project/za-dplatform-h5/src/services/wx.js",[],"/Users/zhongan/project/za-dplatform-h5/src/singleAlert.js",["1443"],"/*\n * @Author: wangshengqiang\n * @Date: 2021-05-18 11:28:40\n * @LastEditTime: 2021-06-17 16:30:12\n * @LastEditors: wangshengqiang\n * @Description: 弹窗组件\n */\n// 单例Alert\nimport React from 'react';\nimport { Modal } from 'zarm';\n\n// 判断body里面是否有modal\nconst show = () => {\n if (document.getElementsByClassName('za-alert-container').length === 0) {\n return true;\n }\n return false;\n};\n\nconst SingleAlert = (option) => {\n if (option?.content) {\n option.content = (\n \n );\n }\n if (show()) {\n return Modal.alert(option);\n }\n};\n\nexport default SingleAlert;\n","/Users/zhongan/project/za-dplatform-h5/src/store/behavior.js",[],"/Users/zhongan/project/za-dplatform-h5/src/store/context.js",[],"/Users/zhongan/project/za-dplatform-h5/src/store/form.js",["1444","1445","1446"],"/*\n * @Author: wangshengqiang\n * @Date: 2020-12-18 18:48:34\n * @LastEditTime: 2021-04-25 20:25:00\n * @LastEditors: wangshengqiang\n * @Description: fdasf\n */\nimport { useEffect } from 'react';\nimport { getState, store, cloneState, formPrefix, subscribe, subscribeTree } from './index';\n\nexport function setFormValue(payload, value) {\n if (payload) {\n if (typeof payload === 'string') {\n payload = {\n [payload]: value,\n };\n }\n store.dispatch({\n type: 'setFormValue',\n payload,\n });\n }\n}\n\nexport function getFormValue(prop, defaultValue) {\n if (prop) {\n const value = getState(`${formPrefix}.${prop}`);\n return value === undefined ? defaultValue : value;\n }\n}\n\nexport function cloneFormValue(prop, defaultValue) {\n if (prop) {\n const value = cloneState(`${formPrefix}.${prop}`);\n return value === undefined ? defaultValue : value;\n }\n}\n\nexport function getPropPath(current, target) {\n if (target && /\\./.test(current)) {\n return current.replace(/\\.[^.]+$/, `.${target}`);\n }\n return target;\n}\n","/Users/zhongan/project/za-dplatform-h5/src/store/index.js",[],"/Users/zhongan/project/za-dplatform-h5/src/store/initvalues.js",[],"/Users/zhongan/project/za-dplatform-h5/src/store/session.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/ZaToast.js",["1447"],"import React, { ReactNode } from 'react';\nimport { Toast } from 'zarm';\n\n// Toast队列, 使用队列的方式弹出提示信息\n// 每次加入新的提示信息会在队列中对比相同的提示信息并合并 防止重复弹出\n// 注: 其他 Toast 会直接顶掉ZaToast的展示\n\n// 队列执行状态\nlet running = false;\nconst queue = [];\n\nconst toRunning = () => {\n // // console.log('消息队列queue', queue.map((item)=> item.content))\n if (running === false) {\n running = true;\n Toast.show(queue[0]);\n\n const timer = setInterval(() => {\n queue.shift();\n const message = queue[0];\n if (message) {\n Toast.show(queue.shift());\n } else {\n clearInterval(timer);\n running = false;\n }\n }, 2000);\n }\n};\n\nconst show = (props) => {\n if (typeof props === 'string' || props instanceof ReactNode) {\n props = { content: props };\n }\n // 检查内容是否已存在\n const had = queue.findIndex((item) => {\n return item.content === props.content;\n });\n if (had === -1) {\n queue.push(props);\n }\n\n // 启动队列\n toRunning();\n};\n\nconst ZaToast = {\n show,\n};\n\nexport default ZaToast;\n","/Users/zhongan/project/za-dplatform-h5/src/utils/consts.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/content.js",["1448","1449","1450","1451"],"import { find, get, flattenDeep } from 'lodash';\nimport moment from 'moment';\nimport { Loading, Toast } from 'zarm';\nimport { getState, dispatch } from '@/store';\nimport { getFormValue, setFormValue } from '@/store/form';\nimport { getOrderDetail } from '@/services/order';\nimport { checkGoodsInfo } from '@/services/JDservice';\nimport { isPreviewMode, isTemplateToolMode, isTemplateMode, getQueryParam, mergeObjectInArray } from '@/utils/tool';\nimport { FETCH_STORE } from '@/constants';\n\nconst CODE_MAP = {\n holder: 'policyHolder',\n insure: 'insured',\n};\n\n// 试算填写信息回显\nexport const useCalculateDetail = () => {\n const setCalculateDetail = (code) => {\n const codeField = CODE_MAP[code];\n let eleFields = getState(`formValues.calcObj.${code}`);\n const currentValues = getFormValue(codeField) || [];\n let readOnlyEleFields;\n if (Object.prototype.toString.call(eleFields) === '[object Object]') {\n if (Object.keys(eleFields || {}).length === 0) {\n eleFields = getFormValue('trailElement[1][0]') || {}; // 试算页面投保人信息\n }\n readOnlyEleFields = {};\n Object.keys(eleFields).forEach((key) => {\n readOnlyEleFields[`${key}`] = true;\n readOnlyEleFields[key] = eleFields[key];\n });\n\n // 合并试算信息与投保人信息 投保人信息优先 但如果字段没值则取用试算填写信息\n Object.keys(readOnlyEleFields).forEach((key) => {\n if (currentValues[key] || currentValues[key] === 0) {\n delete readOnlyEleFields[key];\n }\n });\n\n setFormValue({\n [codeField]: {\n ...currentValues,\n ...readOnlyEleFields,\n },\n });\n } else if (Object.prototype.toString.call(eleFields) === '[object Array]') {\n readOnlyEleFields = [];\n eleFields.forEach((item, index) => {\n const _arr = {\n ...currentValues[index],\n };\n Object.keys(item).forEach((key) => {\n _arr[`${key}`] = true;\n _arr[key] = item[key];\n });\n readOnlyEleFields.push(_arr);\n });\n setFormValue({\n [codeField]: mergeObjectInArray(currentValues, readOnlyEleFields),\n });\n }\n // console.log('readOnlyEleFields', readOnlyEleFields);\n };\n return {\n setCalculateDetail,\n };\n};\n\n// 责任的接口返回数据转为Store数据\nconst liabilityFormDateToStore = (productList) => {\n const storeCollect = getFormValue('insurancePlanTrialCollect') || { product: {}, liability: {} };\n const storeCollectValue = getFormValue('insurancePlanTrialCollectValue') || {\n product: {},\n liability: {},\n };\n // 初始需要把所有是否投保改为 N\n const isInsuredProductKeys = storeCollect.product ? Object.keys(storeCollect.product) : [];\n const isInsuredLiabilityKeys = storeCollect.liability ? Object.keys(storeCollect.liability) : [];\n isInsuredProductKeys.forEach((key) => {\n storeCollect.product[key] = 'N';\n });\n isInsuredLiabilityKeys.forEach((key) => {\n storeCollect.liability[key] = 'N';\n });\n\n // 数据格式\n // const result = {\n // insurancePlanTrialCollect: {\n // liability: { _id: 'Y' },\n // product: {},\n // },\n // insurancePlanTrialCollectValue: {\n // product: {}, //\n // insurancePeriod: '{\"unitType\":\"year\",\"value\":20}', // 保障期间\n // paymentPeriod: '{\"unitType\":\"year\",\"value\":20}', // 缴费期间\n // },\n // };\n productList.forEach((product) => {\n const { productList: _productList = [] } = product;\n // 取商品层级值\n _productList.forEach((_product) => {\n // 只有一个存保障期间和缴费期间的地方\n // 现在只存了主险的 如果附加险也有的话就会回显不出来\n if (_product.productType === 'main') {\n // 保障期间\n const insurancePeriod = {\n unitType: _product.insurancePeriodUnitType,\n value: _product.insurancePeriod,\n };\n // 缴费期间\n const paymentPeriod = {\n unitType: _product.paymentPeriodUnitType,\n value: _product.paymentPeriod,\n };\n storeCollectValue.insurancePeriod = JSON.stringify(insurancePeriod);\n storeCollectValue.paymentPeriod = JSON.stringify(paymentPeriod);\n }\n // 回显保额\n if (storeCollectValue.product) {\n storeCollectValue.product[`_${_product.productCode}`] = String(_product.sumInsured);\n } else {\n storeCollectValue.product = { [`_${_product.productCode}`]: String(_product.sumInsured) };\n }\n // 不能对比取值\n // Object.keys(storeCollectValue.product || {}).map((key) => {\n // const productCode = key.slice(1);\n // if (productCode === _product.productCode) {\n // storeCollectValue.product[key] = String(_product.sumInsured);\n // }\n // });\n\n // 回显产品是否投保\n storeCollect.product[`_${_product.productCode}`] = 'Y';\n\n // 取责任层级 是否投保的值\n const { liabilityList = [] } = _product;\n liabilityList.forEach((liability) => {\n storeCollect.liability[`_${liability.liabilityCode}`] = 'Y';\n });\n });\n });\n\n return {\n insurancePlanTrialCollect: { ...storeCollect },\n insurancePlanTrialCollectValue: { ...storeCollectValue },\n };\n};\n\n// 初始化订单数据处理\nexport const handleOrderDetail = (result) => {\n if (!result) return;\n const { holder, insuredList, orderNo } = result || {};\n\n dispatch('healthOrderDetail', result);\n\n const newInsuredList = [];\n const beneficiaryList = [];\n let packageList = {}; // 产品和责任信息\n if (insuredList) {\n insuredList.forEach((item) => {\n newInsuredList.push(item.person);\n // 以前取得person中的数据 不知道注掉有什么影响\n // const _beneficiaryList =\n // item.beneficiaryList && item.beneficiaryList.map((beneficiary) => beneficiary.person);\n\n // 产品和责任 数据格式转换\n // 多被保人的时候会产生数据覆盖 顾不上了 到时候再说吧\n packageList = liabilityFormDateToStore(item.packageList);\n\n // 2020-11-26 鲸小宝受益人回显\n const _beneficiaryList = item.beneficiaryList?.map((beneficiary) => {\n beneficiary.beneficiaryType = item.beneficiaryType;\n const newBeneficiary = { ...beneficiary, ...beneficiary.person };\n delete newBeneficiary.person;\n return newBeneficiary;\n }) || [];\n\n //\n // if (_beneficiaryList.length === 0) {\n // _beneficiaryList = [{ beneficiaryType: item.beneficiaryType }];\n // }\n beneficiaryList.push(_beneficiaryList || []);\n });\n }\n\n let agentInfo = result.agent || {};\n // 代理人信息\n if (result.agent && result.agent.person) {\n agentInfo = { ...result.agent, ...result.agent.person };\n }\n\n delete agentInfo.person;\n // 投保人,被保人,受益人\n setFormValue({\n ...packageList,\n agentInfoNotify: agentInfo,\n policyHolder: holder ? holder.person : {},\n insured: newInsuredList,\n beneficiary: beneficiaryList,\n });\n};\n\nconst handleSignData = (result) => {\n if (!result) return;\n const {\n extraInfo,\n holder = {},\n paymentFrequency,\n premium,\n insuranceStartDate,\n insuranceEndDate,\n orderNo,\n productList,\n } = result;\n let _trailElementData;\n if (extraInfo && extraInfo.trailElementData) {\n _trailElementData = extraInfo.trailElementData;\n // delete extraInfo.trailElementData;\n }\n const trailElement = getFormValue('trailElement') || [];\n\n // 鲸小宝试算页面被保人数据回显 trailElement与被保人信息合并\n const newTrailElement = [\n mergeObjectInArray(trailElement[0] || [], [holder?.person]),\n mergeObjectInArray(trailElement[1] || [], [holder?.person]),\n ];\n\n setFormValue({\n common: { ...extraInfo, paymentFrequency },\n trailElement: _trailElementData || newTrailElement, // 鲸小宝跳转过来之后 被保险人试算信息回显\n paymentFrequency,\n insuranceStartDate: moment(insuranceStartDate).valueOf(),\n insuranceEndDate: moment(insuranceEndDate).valueOf(),\n });\n dispatch({ totalTrialPrice: premium, orderNo });\n};\n\n// 初始化订单查询\n// 后面修改这个方法\nexport const useQueryOrderDetail = () => {\n if (isPreviewMode() || isTemplateToolMode() || isTemplateMode()) {\n return;\n }\n\n if (getState('disableQueryOrder')) {\n dispatch('disableQueryOrder', false);\n return;\n }\n let params;\n const { orderNo, encryptOrderNo } = getState(FETCH_STORE) || '';\n const urlParams = getQueryParam();\n if (!getState().urlParams) {\n // 如果前端本地没有urlParams。缓存一下\n dispatch('urlParams', urlParams);\n params = urlParams;\n } else {\n const localUrlParams = getState().urlParams;\n params = {\n orderNo,\n encryptOrderNo,\n ...urlParams,\n // ...localUrlParams,\n };\n }\n\n // 存放智能问卷信息\n const handleNoticeQuestion = (result) => {\n if (!result) return;\n const { holder = {}, insuredList = [] } = result || {};\n dispatch({\n 'healthNoticeInformation.holderNotice': holder.noticeQuestion,\n 'healthNoticeInformation.insuredNotice': insuredList[0]?.noticeQuestion,\n });\n };\n\n getOrderDetail(params)\n .then((res) => {\n const { result, success } = res;\n // console.log('经代订单数据==>', res);\n if (success) {\n // 把订单数据重组后 放入 formValues 中\n handleOrderDetail(result);\n // 订单相关信息重组后 放入 formValues 中\n handleSignData(result);\n // 更新投保人和被保人问卷\n handleNoticeQuestion(result);\n }\n })\n .finally(() => {\n Loading.hide();\n });\n Loading.show();\n};\n\n// 仅仅更新订单数据信息\nexport const updateOrderDetail = () => {\n if (isPreviewMode() || isTemplateToolMode() || isTemplateMode()) {\n return;\n }\n\n if (getState('disableQueryOrder')) {\n dispatch('disableQueryOrder', false);\n return;\n }\n let params;\n const { orderNo, encryptOrderNo } = getState(FETCH_STORE) || '';\n const urlParams = getQueryParam();\n if (!getState().urlParams) {\n // 如果前端本地没有urlParams。缓存一下\n dispatch('urlParams', urlParams);\n params = urlParams;\n } else {\n const localUrlParams = getState().urlParams;\n params = {\n orderNo,\n encryptOrderNo,\n ...urlParams,\n // ...localUrlParams,\n };\n }\n getOrderDetail(params)\n .then((res) => {\n const { result, success } = res;\n if (success && result) {\n dispatch('healthOrderDetail', result);\n }\n })\n .finally(() => {\n Loading.hide();\n });\n Loading.show();\n};\n\n// 多选瞄点tabsModule处理初始化展示模块\nexport const useHandleTabSelectedModuleList = (moduleList) => {\n const tabsModule = find(moduleList, (item) => item.component === 'tabsModule');\n if (tabsModule) {\n const { children } = tabsModule;\n const jdTabs = find(children, (item) => item.component === 'jdTabs');\n const dataSource = get(jdTabs, 'attrs.dataSource');\n const selectedModuleList = dataSource\n ? flattenDeep(dataSource.map((item) => item.modules))\n : [];\n const allTabSelectedModuleList = getState('allTabSelectedModuleList') || [];\n if (!allTabSelectedModuleList.length) {\n const _allTabSelectedModuleList = moduleList.filter((item) => selectedModuleList.includes(item.id));\n // 存取isDefault默认为false的模块\n dispatch('allTabSelectedModuleList', _allTabSelectedModuleList);\n }\n moduleList = moduleList.filter((item) => !selectedModuleList.includes(item.id));\n return moduleList;\n }\n return moduleList;\n};\n\nexport const useCheckGoodsInfo = (promotionId) => {\n if (isPreviewMode() || isTemplateToolMode() || isTemplateMode()) {\n return;\n }\n checkGoodsInfo({ promotionId: Number(promotionId) }).then((res) => {\n const { success, message } = res;\n if (!success) {\n Toast.show(message || '网络错误');\n }\n });\n};\n","/Users/zhongan/project/za-dplatform-h5/src/utils/navigation.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/planRelationMethods/rulesProduct.js",["1452","1453","1454"],"import moment from 'moment';\nimport lodash from 'lodash';\n\nconst insuredFactorFun = {\n // 根据规则对象返回结果\n insuredSize: (conditionFun, insuredAge, productAge, insuredLength, certifyValueLength) => {\n return conditionFun(Number(insuredLength), Number(certifyValueLength));\n },\n insuredAge: (conditionFun, insuredAge, productAge, insuredLength, certifyValueLength) => {\n return conditionFun(Number(insuredAge), Number(productAge));\n },\n};\n\nconst getAgeTodays = (time) => {\n const m1 = moment(moment().format('YYYY-MM-DD'));\n // 获取需要对比的时间\n const m2 = moment(moment(time).format('YYYY-MM-DD'));\n\n // 计算相差多少天 day可以是second minute\n const day = m1.diff(m2, 'day');\n\n return day;\n};\n\nconst unitList = {\n // 根据单位不同,返回相同单位的数字\n day: (age) => {\n return age;\n },\n year: (age, condition) => {\n let years = moment().subtract(Number(age), 'y');\n if (condition === 'lessThanEquals') {\n years = moment()\n .subtract(Number(age) + 1, 'y')\n .add(1, 'd');\n }\n\n if (condition === 'greaterThan') {\n years = moment()\n .subtract(Number(age) + 1, 'y')\n .add(1, 'd');\n }\n\n const newAge = years.format('YYYY-MM-DD');\n\n const days = getAgeTodays(newAge);\n // console.log('years==>', age, condition, newAge,)\n return days;\n },\n};\n\nconst conditionRuleFun = {\n // 根据判断条件进行值的对比\n greaterThan: (a, b) => {\n return a > b;\n },\n greaterThanEquals: (a, b) => {\n return a >= b;\n },\n equals: (a, b) => {\n return a === b;\n },\n lessThan: (a, b) => {\n return a < b;\n },\n lessThanEquals: (a, b) => {\n return a <= b;\n },\n};\n\nconst flagCondition = {\n // 判断所有条件满足情况\n and: (flags = []) => {\n let flag = true;\n flags\n && flags.forEach((item) => {\n flag = flag && item;\n });\n\n return flag;\n },\n or: (flags = []) => {\n let flag = true;\n flags\n && flags.forEach((item) => {\n flag = flag || item;\n });\n\n return flag;\n },\n};\n\nconst whetherInsuredFun = {\n // 判断是否开启投保本产品\n Y: () => {\n return true;\n },\n N: () => {\n return false;\n },\n};\n\nconst judgeResult = (props) => {\n // 根据单个规则返回比较的结果\n\n const { certifyName, certifyCode, certifyValue, valueUnit, birthday, insuredLength } = props;\n const productVarAge = valueUnit && unitList[valueUnit](certifyValue, certifyName);\n\n const insuredVarAge = getAgeTodays(birthday);\n\n const judgeConditionFun = certifyName && conditionRuleFun[certifyName];\n\n const result = insuredFactorFun[certifyCode](\n judgeConditionFun,\n insuredVarAge,\n productVarAge,\n insuredLength,\n certifyValue,\n );\n\n return result;\n};\n\nexport const rulesProduct = (packageList, insuredItem, insuredLength) => {\n // 根据规则判断被保人是否投保当前产品\n\n const { birthday } = insuredItem;\n\n const newPackage = [];\n\n packageList\n && packageList.forEach((packItem) => {\n const newPackItem = {\n ...packItem,\n };\n newPackItem.productList = [];\n packItem.productList.forEach((productItem) => {\n const { collocationRule = false } = productItem;\n\n if (!collocationRule) {\n newPackItem.productList.push(productItem);\n return;\n }\n\n let sumFLag = true;\n\n const { whetherInsured, conditionInfo = [], conditionRelation } = collocationRule;\n\n const flags = [];\n conditionInfo\n && conditionInfo.forEach((conditionItem) => {\n const {\n certifyCode,\n certifyName,\n certifyValue,\n valueUnit,\n relationType,\n } = conditionItem;\n\n const singleFlag = judgeResult({\n certifyName: relationType,\n certifyCode,\n certifyValue,\n valueUnit,\n birthday,\n insuredLength,\n });\n //\n flags.push(singleFlag);\n sumFLag = flagCondition[conditionRelation](flags);\n });\n\n //\n if (whetherInsuredFun[whetherInsured]()) {\n sumFLag && newPackItem.productList.push(productItem);\n } else {\n !sumFLag && newPackItem.productList.push(productItem);\n }\n });\n\n newPackage.push(newPackItem);\n });\n\n const filterPackage = [];\n newPackage.forEach((item) => {\n if (item.productList && item.productList.length > 0) {\n filterPackage.push(item);\n }\n });\n\n return lodash.cloneDeep(filterPackage);\n};\n","/Users/zhongan/project/za-dplatform-h5/src/utils/queryString.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/request.js",["1455","1456"],"import { Toast } from 'zarm';\nimport axios from 'axios';\nimport { toParam, getQueryParam } from './tool';\n\naxios.defaults.headers['Content-Type'] = 'application/json;charset=UTF-8';\naxios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest';\n\naxios.defaults.headers.userId = 'CE3B2F86ADCAAC3A4FF96A42C12B0EC7200DD6D3A9BFBB47EA82193704204479C15CBE0E668AE57FA4F98EDB0C9CC856,22865';\naxios.defaults.headers.flowType = '111';\n// axios.defaults.headers['x-za-tenant'] = 'health';\n// axios.defaults.headers['x-za-region'] = 'health';\n\naxios.defaults.withCredentials = true;\naxios.defaults.method = 'POST';\naxios.defaults.baseURL = '/';\n\nconst prefix = '/api';\n\naxios.interceptors.request.use((config) => {\n const { from, tenantFrom = 'health' } = getQueryParam();\n if (config.requestType == 'form') {\n config.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n config.data = toParam(config.data);\n }\n\n let qFrom = tenantFrom || from || '';\n\n if (from == 'ba') {\n qFrom = from;\n }\n\n config.headers['x-za-tenant'] = qFrom;\n config.headers['x-za-region'] = qFrom;\n return config;\n});\n\naxios.interceptors.response.use((res) => {\n const { data } = res;\n // if (data && data.code === -100) {\n // location.replace('/claim/login?backUrl=' + encodeURIComponent(window.location.href));\n // logger.send({ type: 'loginexpired' })\n // return Promise.reject({\n // success: false,\n // message: '未登录或者登陆失效,请重新登陆'\n // })\n // }\n return data;\n});\n\nfunction request(url, options, noPrefix) {\n if (!noPrefix) {\n options.url = prefix + url;\n } else {\n options.url = url;\n }\n return axios(options)\n .then((res) => {\n // eslint-disable-next-line\n if (res.success === true) {\n } else if (options.failMuted !== true) {\n // showFailMessage(res);\n }\n return res;\n })\n .catch((error) => {\n if (options.errorMuted !== true && error) {\n // showErrorMessage(error);\n }\n return Promise.reject(error);\n });\n}\n\nexport function showErrorMessage(err) {\n let msg = '未知异常,请稍后再试';\n const { msg: message } = err;\n if (/Network Error/i.test(message)) {\n msg = '网络异常,请检查网络设置';\n } else if (/timeout/i.test(message)) {\n msg = '请求超时,请稍后再试';\n } else if (/Request failed with status code/i.test(message)) {\n msg = '系统异常';\n } else if (message) {\n msg = message;\n }\n // eslint-disable-next-line no-use-before-define\n showFailMessage({ msg });\n}\n\nexport function showFailMessage(res) {\n Toast.show(res.msg || '系统异常');\n}\n\nexport default request;\n","/Users/zhongan/project/za-dplatform-h5/src/utils/runEnv.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/scroll.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/tool.js",["1457","1458","1459"],"import _ from 'lodash';\nimport moment from 'moment';\n\nlet _queryParams = null;\nlet _lastSearch = '';\nlet _hashParam = null;\nlet _lastHash = '';\n\n// 模板配置工具\nfunction isTemplateToolMode() {\n return window.__preview === true;\n}\n\nfunction hasValue(val) {\n return val || val === 0 || val === false;\n}\n\nfunction parseParam(paramStr, delimiter) {\n const obj = {};\n if (paramStr) {\n const arr = paramStr.split(delimiter || '&');\n arr.length\n && arr.forEach((item) => {\n const tempArr = item.split('=');\n obj[tempArr[0]] = decodeURIComponent(tempArr[1] || '');\n });\n }\n return obj;\n}\n\nfunction toParam(data, encode) {\n const ret = '';\n if (_.isPlainObject(data)) {\n return Object.keys(data)\n .map((item) => {\n return `${item}=${encode ? encodeURIComponent(data[item] || '') : data[item]}`;\n })\n .join('&');\n }\n return ret;\n}\n\n// 遍历树\nexport const traverseTree = (tree, action, nodeName = 'children') => {\n let stack = [];\n if (tree instanceof Array) {\n stack = tree;\n }\n\n while (stack.length) {\n const node = stack.shift();\n action(node);\n\n if (node.children) {\n stack = node[nodeName].concat(stack); // 调换concat顺序决定 深度优先 或 广度优先\n }\n }\n};\n\n/**\n * 接收类似configList结构的数据数组, 和一个name列表\n * 根据name列表逐层找到与最后一个name相等的组件\n * 如: 找保费试算模块下的保险计划模块 insurancePlanTrialCalculation > insurancePlanTrialCollect\n * findComponentByName(packageList, 'insurancePlanTrialCalculation', 'insurancePlanTrialCollect')\n * @param tree [{children: tree}, {moduleList: tree}]\n * @param nameList 任意个字符串类型的参数 作为name列表\n * @returns\n */\nconst findComponentByName = (tree, ...nameList) => {\n let stack = [];\n if (tree instanceof Array) {\n stack = tree;\n }\n const targetName = nameList.shift();\n\n let result = [];\n while (stack.length) {\n const node = stack.shift();\n let nextLayerStack = [];\n const nextNode = node.children || node.moduleList;\n\n if (node.component === targetName) {\n if (nameList.length === 0) {\n result.push(node);\n } else {\n result = result.concat(findComponentByName(nextNode, ...nameList));\n }\n // 如果当前层找到了目标 清空下一层列表 --不清空就是遍历所有节点\n nextLayerStack = [];\n } else if (nextNode) {\n nextLayerStack = nextLayerStack.concat(nextNode);\n }\n // 当前层循环完了 开始循环下一层\n if (!stack.length) {\n stack = stack.concat(nextLayerStack);\n }\n }\n return result;\n};\n\n// ios键盘失焦后滚动\nconst fixInputBlur = () => {\n const u = navigator.userAgent;\n const isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/);\n if (isIOS) {\n setTimeout(() => {\n const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0;\n window.scrollTo(0, Math.max(scrollHeight - 1, 0));\n }, 200);\n }\n};\n\n// 当前聚焦输入框滚动至可视区域\nconst fixInputFocus = () => {\n const u = navigator.userAgent;\n const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;\n if (isAndroid) {\n setTimeout(() => {\n document.activeElement.scrollIntoViewIfNeeded();\n }, 500);\n }\n};\n\n// 按下表合并两个对象数组 第二个覆盖第一个\nexport const mergeObjectInArray = (arr1, arr2) => {\n const length = arr1.length > arr2.length ? arr1.length : arr2.length;\n const result = [];\n for (let i = 0; i < length; i++) {\n result.push({\n ...arr1[i],\n ...arr2[i],\n });\n }\n return result;\n};\n\n// 在一个树形节点中 获的指定节点的路径\nfunction getValuePath(value, list, valueMember = 'value', childrenMember = 'children') {\n const path = [];\n if (list && list.length && hasValue(value)) {\n for (let i = 0, len = list.length; i < len; i++) {\n const item = list[i];\n path.push(item);\n if (item[valueMember] === value) {\n return path;\n }\n const childPath = getValuePath(value, item[childrenMember], valueMember, childrenMember);\n if (childPath.length) {\n return path.concat(childPath);\n }\n path.pop();\n }\n }\n return path;\n}\n\nfunction getStringValue(value) {\n if (value instanceof Array) {\n return value.join(',');\n }\n return hasValue(value) ? String(value) : '';\n}\n\nfunction getValue(value) {\n return hasValue(value) ? value : '';\n}\n// 把价格数字 转换成带有W的方式表示 eg 10000 ==》 1w\nfunction toWan(num) {\n if (num > 10000) {\n return `${num / 10000}万`;\n }\n if (num === null || num === undefined || Number.isNaN(num)) {\n return '';\n }\n return num;\n}\n\nfunction getQueryParam() {\n if (!_queryParams || _lastSearch !== window.location.search) {\n _lastSearch = window.location.search;\n _queryParams = parseParam(_lastSearch.substr(1));\n }\n return _queryParams;\n}\n\nfunction getHashParam(hash) {\n if (!_hashParam || _lastHash !== window.location.hash) {\n _lastHash = window.location.hash;\n _hashParam = parseParam(_lastHash.substr(1));\n }\n if (typeof hash === 'string') return _hashParam[hash];\n return _hashParam;\n}\n\n// 中台配置的时候中间iframe预览, 配置数据从postmesage拿\n// 或者模板配置工具使用\n// 有点选框, 无法交互\nfunction isPreviewMode() {\n return getQueryParam().mode === 'preview' || isTemplateToolMode();\n}\n\n// 手机扫二维码预览,配置数据从接口拿\nfunction isSimulateMode() {\n return getQueryParam().mode === 'simulate';\n}\n\n// 纯预览模板,配置数据从postmesage拿\n// 无 点选框\n// 配置流程 + 模板工具使用\nfunction isTemplateMode() {\n return getQueryParam().mode === 'template';\n}\n\nfunction isNormalMode() {\n return !getQueryParam().mode && !isTemplateToolMode();\n}\n\nfunction updateFormKey(children, index) {\n // insurant.name => insurant[0].name\n // insurant[0].name => insurant[0][0].name\n const reg = /\\.([a-z_]+)$/i;\n return children.map((item) => {\n return {\n ...item,\n formKey: item.formKey && item.formKey.replace(reg, `[${index}].$1`),\n };\n });\n}\n\nfunction rerangeFormKey(children, index) {\n // insurant.name => insurant[1].name\n // insurant[0].name => insurant[1].name\n const reg = /(\\[\\d+\\])?\\.([a-z_]+)$/i;\n children.forEach((item) => {\n if (item.formKey) {\n item.formKey = item.formKey.replace(reg, `[${index}].$2`);\n }\n });\n}\n\nfunction getScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\n\nfunction getFormValues(htmlForm, formKeys) {\n const value = {};\n const form = htmlForm || window.document.forms[0];\n if (formKeys) {\n formKeys.forEach((item) => {\n if (form[item]) {\n _.set(value, item, form[item].value);\n }\n });\n } else {\n const eles = form.elements;\n const len = eles.length;\n for (let i = 0; i < len; i++) {\n if (eles[i].name && eles[i].tagName === 'INPUT') {\n _.set(value, eles[i].name, eles[i].value);\n }\n }\n }\n return value;\n}\n\nfunction getFormKeys(children) {\n const arr = [];\n if (children && children.length) {\n children.forEach((item) => {\n if (item.formKey) {\n arr.push(item.formKey);\n }\n arr.concat(getFormKeys(item.children));\n });\n }\n return arr;\n}\n\nfunction parseDate(val) {\n if (!val) return '';\n if (typeof val === 'string') {\n val = val.replace(/-/g, '/');\n }\n const date = new Date(val);\n if (String(date) === 'Invalid Date') {\n return '';\n }\n return date;\n}\n\nfunction addDay(date, num) {\n date = parseDate(date);\n if (typeof num === 'string') {\n num = +num;\n }\n return new Date(date.setDate(date.getDate() + num));\n}\n\nfunction addMonth(date, num) {\n date = parseDate(date);\n if (typeof num === 'string') {\n num = +num;\n }\n return new Date(date.setMonth(date.getMonth() + num));\n}\n\nfunction addYear(date, num) {\n date = parseDate(date);\n if (typeof num === 'string') {\n num = +num;\n }\n return new Date(date.setFullYear(date.getFullYear() + num));\n}\n\nfunction formatDate(date, fmt) {\n date = parseDate(date);\n if (!date) {\n return '';\n }\n if (!fmt) {\n fmt = 'yyyy-MM-dd';\n }\n const o = {\n 'M+': date.getMonth() + 1, // 月份\n 'd+': date.getDate(), // 日\n 'h+': date.getHours(), // 小时\n 'm+': date.getMinutes(), // 分\n 's+': date.getSeconds(), // 秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度\n S: date.getMilliseconds(), // 毫秒\n };\n if (/(y+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (`${date.getFullYear()}`).substr(4 - RegExp.$1.length));\n }\n Object.keys(o).forEach((k) => {\n if (new RegExp(`(${k})`).test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n RegExp.$1.length === 1 ? o[k] : (`00${o[k]}`).substr((`${o[k]}`).length),\n );\n }\n });\n return moment(date).format(fmt);\n}\n\nfunction toAge(birthday) {\n const anchor = parseDate(birthday);\n if (anchor) {\n const now = new Date();\n let age = now.getFullYear() - anchor.getFullYear();\n if (now.getMonth() > anchor.getMonth()) {\n age += 1;\n } else if (now.getMonth() === anchor.getMonth()) {\n if (now.getDate() > anchor.getDate()) {\n age += 1;\n }\n }\n return age - 1;\n }\n return '';\n}\n\nfunction getBirthday(idCard) {\n let birthday = '';\n if (idCard.length === 15) {\n birthday = `19${idCard.substr(6, 6)}`;\n } else if (idCard.length === 18) {\n birthday = idCard.substr(6, 8);\n }\n birthday = birthday.replace(/(.{4})(.{2})/, '$1-$2-');\n return birthday;\n}\n\nfunction getSex(idCard) {\n let sex = '';\n if (parseInt(idCard.substr(16, 1), 10) % 2 === 1) {\n return 'male';\n }\n sex = 'female';\n return sex;\n}\nfunction toZhGender(gender) {\n let zhGender = '';\n if (gender.toLowerCase() === 'male') {\n zhGender = '男';\n } else if (gender.toLowerCase() === 'female') {\n zhGender = '女';\n }\n return zhGender;\n}\n\nconst isPC = () => {\n const userAgentInfo = navigator.userAgent;\n const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];\n let flag = true;\n for (let i = 0; i < Agents.length; i++) {\n if (userAgentInfo.indexOf(Agents[i]) != -1) {\n flag = false;\n break;\n }\n }\n return flag;\n};\n\nconst mapToOptions = (mapObj) => {\n const optins = [];\n Object.keys(mapObj).forEach((k) => {\n optins.push({\n code: k,\n value: k,\n desc: mapObj[k],\n name: mapObj[k],\n label: mapObj[k],\n });\n });\n return optins;\n};\n\nfunction isInTemplateTool() {\n return getQueryParam().template === 'true';\n}\n\nexport {\n // form\n getFormValues,\n getFormKeys,\n updateFormKey,\n rerangeFormKey,\n // param\n toParam,\n parseParam,\n getQueryParam,\n getHashParam,\n // mode\n isPreviewMode,\n isSimulateMode,\n isTemplateMode,\n isTemplateToolMode,\n isNormalMode,\n // date\n parseDate,\n formatDate,\n addDay,\n addMonth,\n addYear,\n // others\n getScrollTop,\n toWan,\n hasValue,\n getValue,\n getStringValue,\n getValuePath,\n // 信息提取\n toAge,\n getBirthday,\n getSex,\n fixInputBlur,\n fixInputFocus,\n // 性别男女\n toZhGender,\n isPC,\n isInTemplateTool,\n};\n","/Users/zhongan/project/za-dplatform-h5/src/utils/utils.js",["1460","1461","1462","1463"],"import lodash from 'lodash';\nimport { Loading } from 'zarm';\nimport { getState, dispatch, getFormValue } from '@/store';\nimport {\n getQueryParam,\n getHashParam,\n addDay,\n addMonth,\n addYear,\n mergeObjectInArray,\n getBirthday,\n getSex,\n} from '@/utils/tool';\nimport { fetchClick } from '@/components/Button';\nimport { rulesProduct } from '@/utils/planRelationMethods/rulesProduct.js';\nimport { PREMIUM, PLAN_ID, OPEN_RENEWAL } from '@/constants';\nimport handlePlan from '@/actions/handlePlan';\n\nconst hour = 1000 * 60 * 60;\nconst day = hour * 24;\nconst now = Date.now();\nconst today = new Date().setHours(0) - (now % hour);\nconst start = today + day * 1;\nconst end = addYear(start, 1) - 1;\n\n// 通过页面id获取页面数据\nexport const getPage = (pageId) => {\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n\n return pageList.find((item = {}) => {\n const a = String(item.pageId);\n const b = String(pageId);\n return a === b;\n });\n};\n// 通过弹窗模块id获取弹窗配置的数据\nexport const getModal = (modalId) => {\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n\n for (let v = 0; v < pageList.length; v += 1) {\n const page = pageList[v] || {};\n const { moduleList = [] } = page;\n\n for (let i = 0; i < moduleList.length; i += 1) {\n const curr = moduleList[i] || {};\n const { id, templateModuleId, children = [] } = curr;\n\n if (id === modalId || templateModuleId === modalId) {\n for (let a = 0; a < children.length; a += 1) {\n const child = children[a] || {};\n const { component } = child;\n\n if (component === 'modal') {\n return child;\n }\n }\n }\n }\n }\n};\n\n// 获取当前页码\nexport const getPageNum = () => {\n return getHashParam('page') ? +getHashParam('page') : 1;\n};\n\nconst findModule = (fn) => (curr = {}) => {\n const { children = [] } = curr;\n const useful = fn && fn(curr);\n\n if (useful) {\n return curr;\n }\n\n if (!children) {\n return;\n }\n\n return children.reduce((res, child = {}) => {\n return res || findModule(fn)(child);\n }, undefined);\n};\n\nconst hasProductList = (curr = {}) => {\n const planId = getState(PLAN_ID);\n\n const { attrs = {} } = curr;\n\n if (!attrs) {\n return false;\n }\n\n const { dataSource = {} } = attrs;\n const { planConfigAdditionProductList, planConfigMainProductList, serviceList, id } = dataSource;\n\n const useful = planConfigAdditionProductList !== undefined\n || planConfigMainProductList !== undefined\n || serviceList !== undefined;\n\n if (!useful) {\n return false;\n }\n\n if (id && id === planId) {\n return true;\n }\n return false;\n};\n\nconst hasFormKey = (formKey) => (curr = {}) => {\n const { attrs = {}, formKey: currFormKey = '' } = curr;\n\n if (!currFormKey) {\n return false;\n }\n\n if (!attrs) {\n return false;\n }\n\n return currFormKey.includes(formKey);\n};\n\nconst productListToPackageList = (productList = []) => {\n return productList.reduce((res = [], product = {}) => {\n const {\n productCode,\n productName,\n planConfigPackageDTO = {},\n planConfigLiabilityList = [],\n fixedSumInsuredValue,\n } = product;\n if (product.insurancePeriodEnumValueList?.length === 1) {\n product.insurancePeriod = product.insurancePeriodEnumValueList[0].value;\n product.insurancePeriodUnitType = product.insurancePeriodEnumValueList[0].unitType;\n }\n if (product.paymentPeriodEnumValueList?.length === 1) {\n product.paymentPeriod = product.paymentPeriodEnumValueList[0].value;\n product.paymentPeriodUnitType = product.paymentPeriodEnumValueList[0].unitType;\n }\n\n const { packageCode, packageName } = planConfigPackageDTO;\n\n // 责任\n const liabilityList = planConfigLiabilityList.map((liability = {}) => {\n // UNCOMPLETED\n const {\n fixedSumInsuredValue: _fixedSumInsuredValue = {},\n liabilityName,\n liabilityCode,\n } = liability;\n const { value } = _fixedSumInsuredValue;\n\n return {\n sumInsured: value,\n liabilityName,\n liabilityCode,\n };\n });\n\n const currPackage = res.find((item = {}) => {\n const { packageCode: itemPackageCode, packageName: itemPackageName } = item;\n\n return packageCode === itemPackageCode && packageName === itemPackageName;\n });\n const { value } = fixedSumInsuredValue || {};\n\n const _productList = [\n {\n ...product,\n productCode,\n productName,\n liabilityList,\n sumInsured: value,\n },\n ];\n\n const curr = {\n packageCode,\n packageName,\n _productList,\n };\n\n if (currPackage) {\n const { productList: currProductList = [] } = currPackage;\n\n const currProduct = currProductList.find((item = {}) => {\n const { productCode: itemProductCode, productName: itemProductName } = item;\n\n return productCode === itemProductCode && productName === itemProductName;\n });\n\n if (currProduct) {\n currProduct.liabilityList = (currProduct.liabilityList || []).concat(liabilityList);\n } else {\n currPackage.productList = (currPackage.productList || []).concat(_productList);\n }\n } else {\n res.push(curr);\n }\n return res;\n }, []);\n};\n// 根据条件在 在当前页面配置中 查询模块数据 fn(组件|模块数据) 返回条件的组件或者模块的配置信息\nexport const findModuleFromPage = (fn) => {\n const pageOrder = getPageNum();\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n\n const page = pageList.find((item = {}) => item.pageOrder === pageOrder) || {};\n const { moduleList = [] } = page;\n\n return findModule(fn)({ children: moduleList });\n};\n\n// 判断当前页面是否含有某个模块\nexport const findModuleFromCurrPage = (moduleName) => {\n const pageOrder = getPageNum();\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n\n const page = pageList.find((item = {}) => item.pageOrder === pageOrder) || {};\n const { moduleList = [] } = page;\n\n return moduleList.some((item) => {\n if (typeof moduleName === 'string') {\n return item.component === moduleName;\n }\n if (Array.isArray(moduleName)) {\n return moduleName.indexOf(item.component) !== -1;\n }\n return false;\n });\n};\n\n// 根据条件在 所有页面配置中 查询模块数据 fn(组件|模块数据) 返回条件的组件或者模块的配置信息\nexport const findModuleFromState = (fn) => {\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n\n return pageList.reduce((res, page = {}) => {\n const { moduleList = [] } = page;\n\n return res || findModule(fn)({ children: moduleList });\n }, undefined);\n};\n\n// 获取当前计划产品组合数据\nexport const getPackageList = () => {\n const curr = findModuleFromState(hasProductList) || {};\n const { attrs: { dataSource = {} } = {} } = curr;\n const { planConfigMainProductList = [], planConfigAdditionProductList = [] } = dataSource;\n planConfigMainProductList.forEach((item) => {\n item.ProductType = 'main';\n });\n planConfigAdditionProductList.forEach((item) => {\n item.ProductType = 'addition';\n });\n const productList = [...planConfigMainProductList, ...planConfigAdditionProductList];\n\n return productListToPackageList(productList) || [];\n};\n\nconst getDefaultPaymentFrequency = () => {\n const fnPaymentFrequency = hasFormKey('common.paymentFrequency');\n const fnHealthPremium = hasFormKey('healthPremium');\n const currPaymentFrequency = findModuleFromState(fnPaymentFrequency);\n const currHealthPremium = findModuleFromState(fnHealthPremium) || {};\n\n let paymentFrequency;\n\n if (currPaymentFrequency) {\n const { attrs = {} } = currPaymentFrequency;\n const { display: { defaultValue } = {} } = attrs;\n\n try {\n paymentFrequency = defaultValue && JSON.parse(defaultValue);\n } catch (e) {\n console.error(e);\n paymentFrequency = defaultValue;\n }\n }\n\n if (paymentFrequency) {\n return paymentFrequency;\n }\n const { attrs = {} } = currHealthPremium;\n return attrs ? attrs.defaultType : undefined;\n};\n\n// UNCOMPLETED\nconst getDefaultInsuranceStartDate = () => {\n const fn = hasFormKey('common.insuranceStartDate');\n const curr = findModuleFromState(fn) || {};\n\n const { attrs = {} } = curr;\n const { radioValue = {} } = attrs;\n const { value = '1' } = radioValue;\n\n if (String(value) === '1') {\n return start;\n }\n};\n\n// UNCOMPLETED\nconst getDefaultInsuranceEndDate = () => {\n const fn = hasFormKey('common.insuranceEndDate');\n const curr = findModuleFromState(fn) || {};\n const { attrs = {} } = curr;\n const { display: { defaultValue } = {} } = attrs;\n\n try {\n const value = (defaultValue && JSON.parse(defaultValue)) || [];\n\n const [num, unit] = value;\n\n if (unit === 'Y') {\n return addYear(start, num) - 1;\n }\n\n if (unit === 'M') {\n return addMonth(start, num) - 1;\n }\n\n if (unit === 'D') {\n return addDay(start, num) - 1;\n }\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getDefaultInsurancePeriod = () => {\n const fn = hasFormKey('insurancePeriod');\n const curr = findModuleFromState(fn) || {};\n\n const { attrs = {} } = curr;\n const { display: { defaultValue = '[]' } = {} } = attrs;\n // ;\n try {\n const value = JSON.parse(defaultValue);\n\n if (Array.isArray(value)) {\n return value.join('-');\n }\n return value;\n } catch (e) {\n console.error(e);\n }\n};\n\n// UNCOMPLETED\nconst getBasePerson = () => {\n return {\n certType: 'I',\n // allowInsure: true, // 多被保人通过这个字段判断问卷填写状态 不给默认\n };\n};\n\nexport const getNewDate = (_start, period) => {\n if (_start && period) {\n const [diff, type] = period.split('-');\n if (type === 'D') {\n return addDay(_start, diff) - 1;\n }\n if (type === 'M') {\n return addMonth(_start, diff) - 1;\n }\n if (type === 'Y') {\n return addYear(_start, diff) - 1;\n }\n }\n};\n// 收集数据作为接口请求数据 试算接口 和下一步接口 利益演示接口都会调用\nexport const getFetchBaseData = () => {\n const isContainTrail = findModuleFromCurrPage('policyHolderModule')\n || findModuleFromCurrPage('insurancePlanTrialCalculation');\n // 判断当前页面是否是智能健告前,不能把智能结果提交\n const isContainCalc = findModuleFromCurrPage('insurancePlanTrialCalculation');\n // 健告人员列表时也要校验投保规则\n\n const orderDetail = getState('orderDetail') || {};\n const values = getState('formValues') || {};\n const beneficiary = getFormValue('beneficiary') || []; // 受益人\n const urlParams = getState('urlParams') || {};\n const extraInfo = getState('extraInfo') || {};\n const premiumInfo = getState('premium');\n const planId = getState(PLAN_ID);\n const { encryptOrderNo, orderNo } = getState('FETCH_STORE') || {};\n const openRenewal = getState(OPEN_RENEWAL);\n\n const insuranceCategory = getState('goodsDetail.insuranceCategory');\n // 保障周期\n const insurancePeriod = getDefaultInsurancePeriod();\n // 保障起期\n const insuranceStartDate = getDefaultInsuranceStartDate() || start;\n // 保障止期\n let insuranceEndDate = getDefaultInsuranceEndDate() || getNewDate(insuranceStartDate, insurancePeriod) || '';\n // 缴费频率\n let paymentFrequency = getDefaultPaymentFrequency() || 'month';\n const basePerson = getBasePerson() || {};\n const {\n channelCode,\n goodsId,\n templateRelationId,\n promotionId = templateRelationId,\n thirdOrderNoType,\n thirdOrderNo,\n orderOrigin,\n urlExtraInfo = '{}', // 2021年11月22日 王勇: 要加在地址栏上并在下一步接口传入 extraInfo 中, 格式为{\"123\": \"asd\"}\n } = getQueryParam() || {};\n const { thirdChannelCode, insuredList: _insuredList = [], holder: _holder = {} } = orderDetail;\n const {\n insured: formInsured = [],\n holder: policyHolder = {},\n // calcObj,\n trailElement,\n common,\n } = values;\n // const holderObj = calcObj?.holder || [];\n const trailHolder = trailElement?.[0]?.[0];\n const trailInsure = trailElement?.[1] || [];\n\n // 如果试算页面有投保人信息 也可以在这里处理优先级\n let holder = policyHolder; // 这里默认取holder的信息,\n // 进入页面时回显detail数据回显保证这两处被保人数据一致, 但是因为页面中会有修改, 所以要根据页面处理使用时的优先级\n let newInsure = formInsured;\n\n // 试算页 trailElement 的数据优先\n // 判断页面中是否有被保人信息试算模块\n // 试算页面和信息填写页面的 投保人和被保人 字段不同,提交数据的时候要判断是那个页面中\n if (findModuleFromCurrPage('insuredElementModule')) {\n newInsure = mergeObjectInArray(formInsured, trailInsure) || [];\n } else {\n newInsure = mergeObjectInArray(trailInsure, formInsured) || [];\n }\n\n let packageList = handlePlan()?.planConfigPackageList;\n packageList = packageList || (_insuredList && _insuredList[0]?.packageList) || getPackageList();\n // 鲸小保添保险计划 重新赋值给packageList;\n insuranceEndDate = common?.insuranceEndDate || insuranceEndDate || null;\n paymentFrequency = common?.paymentFrequency;\n // newInsure = insure\n paymentFrequency = paymentFrequency || getDefaultPaymentFrequency() || 'year';\n\n // 给每个产品塞入利益演示表\n const productBenefit = getState('productBenefit') || {};\n Object.keys(productBenefit).forEach((key) => {\n packageList?.forEach((pack) => {\n pack.productList?.forEach((product) => {\n if (String(product.id) === key) {\n product.benefitShowId = productBenefit[key];\n }\n });\n });\n });\n\n // 获取问卷信息\n const noticeQuestion = getState('healthNoticeInformation') || {};\n const { holderNotice, insuredNotice = [] } = noticeQuestion;\n // 投保人的问卷填写状态\n const holderAllowInsure = isContainTrail ? null : _holder?.allowInsure;\n // 投保人信息\n holder = {\n allowInsure: holderAllowInsure,\n customerType: 'person',\n noticeQuestion: holderNotice,\n person: {\n ...basePerson,\n // ...holderObj,\n ...trailHolder,\n ...holder,\n allowInsure: holderAllowInsure,\n },\n };\n\n // 在第一页调用下一步接口的时候不传被保人列表\n // currentPage !== '1' ? 被保人信息 : undefined;\n // 2020年12月2日 不能不传, 健康险是在第一个页面进行试算的\n // 告知列表数据\n const { checkedList } = getState('noticeList') || {};\n\n const filteredInsured = _insuredList && _insuredList.length\n ? _insuredList.filter((item) => item.selected !== false).length\n : newInsure.filter((item) => item.selected !== false).length || 0;\n\n let insuredLength = checkedList && checkedList.length ? checkedList.length : filteredInsured;\n\n if (findModuleFromCurrPage('insuredModule') || findModuleFromCurrPage('insuredElementModule')) {\n insuredLength = newInsure.filter((item) => item.selected !== false).length || 0;\n }\n const insuredList = newInsure.map((item = {}, index) => {\n const pack = isContainCalc\n ? packageList\n : lodash.cloneDeep(rulesProduct(packageList, item, insuredLength));\n // 有保险计划模块时暂时前端不做投保规则校验\n const { holderRelation } = item;\n // 找不到就是undefined 不能给默认值\n const currentInsured = _insuredList?.find((ins) => ins.person?.certNo === item.certNo) || {};\n let allowInsure = isContainTrail ? null : currentInsured.allowInsure;\n\n let newItem = { ...basePerson, ...item, allowInsure };\n\n // 这里取到的投保人为空会覆盖被保人信息 导致试算页面利益演示接口报: 被保人生日性别不能为空\n if (holderRelation && holderRelation.toLocaleLowerCase() === 'self') {\n // 计划书转投保场景:如果是试算页面以被保人的信息为试算依据\n if (findModuleFromCurrPage('insuredElementModule')) {\n newItem = { ...holder.person, ...newItem };\n } else {\n newItem = { ...newItem, ...holder.person };\n }\n holder.person = newItem;\n }\n if (!newItem.birthday && newItem.certNo) {\n newItem.birthday = getBirthday(newItem.certNo);\n newItem.gender = getSex(newItem.certNo);\n }\n\n // 受益人类型 如果取不到值 就默认法定受益人\n const beneficiaryType = beneficiary[index]?.[0]?.beneficiaryType || 'legalBeneficiary';\n // 组装受益人信息\n let beneficiaryList = [];\n if (beneficiaryType !== 'legalBeneficiary') {\n beneficiaryList = beneficiary?.[index]?.map((bene) => {\n const {\n beneficiaryNature,\n benefitDistributeMode,\n benefitOrder,\n benefitRatio,\n company,\n customerType = 'person',\n insuredRelation,\n insurantRelation,\n } = bene; // 解构受益人DTO 需要的数据\n bene.insuredRelation = bene.insurantRelation; // key错的 改回来\n return {\n beneficiaryNature,\n benefitDistributeMode,\n benefitOrder,\n benefitRatio,\n company,\n customerType,\n insuredRelation,\n insurantRelation,\n person: bene,\n };\n });\n }\n\n let { selected } = currentInsured;\n // 如果有 说明是健告列表页, selected状态使用store存储的 否则使用insured自带的\n if (checkedList) {\n selected = checkedList.indexOf(newItem.certNo) !== -1;\n }\n\n const isFlagPage = findModuleFromCurrPage([\n 'healthInfoModule',\n 'healthNotificationListModule',\n 'insuredConfirmModule',\n 'policyHolderInfoModule',\n ]);\n if (!isFlagPage) {\n allowInsure = null;\n selected = true;\n }\n\n return {\n ...currentInsured,\n selected,\n allowInsure, // 告知填写状态\n noticeQuestion: insuredNotice?.[index] ? insuredNotice?.[index] : {},\n insuredType: 'person',\n person: newItem,\n holderRelation,\n packageList: pack,\n beneficiaryType,\n beneficiaryList,\n };\n });\n\n if (findModuleFromCurrPage('healthOrderConfirmModule')) {\n const premium = getState(PREMIUM);\n if (premium) {\n common.totalPremium = premium.type === 'month' ? premium.value[0] : premium.value;\n }\n }\n\n // 从通用信息中排除缴费频率字段\n const { paymentFrequency: payF, ...otherCommon } = common || {};\n // 保费数据\n const premium = premiumInfo?.initialPremium;\n const initialPremium = premiumInfo?.initialPremium;\n\n const _urlExtraInfo = JSON.parse(urlExtraInfo);\n return {\n premium,\n insuranceCategory,\n initialPremium,\n channelCode,\n goodsId,\n thirdOrderNoType,\n thirdOrderNo, // 第三方订单号\n thirdChannelCode,\n encryptOrderNo,\n orderOrigin,\n orderNo,\n planId,\n holder,\n insuredList,\n packageList,\n paymentFrequency,\n insuranceStartDate,\n insuranceEndDate,\n promotionId,\n extraInfo: {\n ...extraInfo,\n ...urlParams,\n ..._urlExtraInfo,\n ...otherCommon,\n openRenewal,\n insurancePeriod,\n },\n currentUrl: window.location.href,\n allowInsure: orderDetail.allowInsure !== undefined ? orderDetail.allowInsure : true, // 处理智能问卷不通过时,点击提交不能正常跳转\n noticeType: 'healthNotice',\n noticeObjectType: 'insured',\n dataSource: 'h5',\n pageExtraInfo: {\n common,\n },\n };\n};\n\n// 通过模块名查找页面\nexport const findPageByModule = (moduleName) => {\n const config = getState('configJson');\n return config.pageList?.find((page) => {\n return (\n page.moduleList?.find((module) => {\n return module.component === moduleName;\n }) !== undefined\n );\n });\n};\n\n// 获取前一级formKey\n// a.c.d === > a.c\n// a[0][4] ===> a[0]\nexport const getPreLeveFormKey = (formKey) => {\n const keys = formKey.split(/\\.|\\[/g);\n const nextkeys = keys.map((i) => {\n if (/\\]/g.test(i)) {\n return `[${i}`;\n }\n return i;\n });\n nextkeys.pop();\n const preKey = nextkeys.join('.').replace('.[', '[');\n return preKey;\n};\n\n// 获取当前模块的指定的formkey\nexport function getStatePath(currentFormKey, name) {\n const preKey = getPreLeveFormKey(currentFormKey);\n return `${preKey}.${name}`;\n}\n\n// 通过页面id获取页面配置数据\nexport const getPageConfigByPageId = (pageId) => {\n const configJson = getState('configJson') || {};\n const { pageList = [] } = configJson;\n return pageList.find((item = {}) => {\n const a = String(item.pageId);\n const b = String(pageId);\n return a === b;\n });\n};\n\n// 获取下一步请求参数\nexport const getFetchDataWithNotice = (buttonText) => {\n const data = getFetchBaseData();\n // data.premium = '';\n // 投保人告知处理\n const hasPolicyHolderInfoModule = findModuleFromCurrPage('policyHolderInfoModule');\n // 被保人告知处理\n const hasHealthInfoModule = findModuleFromCurrPage('healthInfoModule');\n // 如果不在下面这几个模块使用sinmpleButton 将不需要整合告知信息作为入参数\n const iscluedarr = hasPolicyHolderInfoModule || hasHealthInfoModule;\n if (!iscluedarr) {\n return data;\n }\n\n const noticeType = hasPolicyHolderInfoModule ? 'holder' : 'insured';\n const notice = getState('notice')?.[noticeType];\n\n const { certNo } = getHashParam() || {};\n let currentInsured = 0;\n if (certNo) {\n // 找出是第几个被保人\n const insured = getFormValue('insured');\n currentInsured = insured.findIndex((i) => i.certNo === certNo);\n data.extraInfo.currentInsuredFlag = certNo;\n }\n\n if (!notice) {\n return data;\n }\n\n const { noticeDetailList = [] } = notice;\n const nextNoticeDetailList = noticeDetailList.map((item = {}, index) => {\n // const noticeAnswer = buttonId;\n // const noticeAnswer = buttonText.includes('是') ? 'unknown' : 'no';\n // 暂时这个方法只有弹框的的继续流程会调用\n const noticeAnswer = 'unknown';\n return { ...item, noticeAnswer };\n });\n\n const noticeQuestion = {\n ...notice,\n noticeDetailList: nextNoticeDetailList,\n };\n\n // const { state } = JSON.parse(sessionStorage.getItem('STATE'));\n // const { currentInsured = 0 } = state?.otherParams || {};\n\n const { holderNotice, insuredNotice } = getState('healthNoticeInformation') || [];\n // 投保人告知处理\n if (hasPolicyHolderInfoModule) {\n noticeQuestion.smartQuestionContent = (holderNotice || {})?.smartQuestionContent;\n data.holder = {\n ...data.holder,\n noticeQuestion,\n };\n dispatch({ 'healthNoticeInformation.holderNotice': noticeQuestion });\n } else if (hasHealthInfoModule) {\n // 被保人告知处理\n data.insuredList = data.insuredList || [];\n data.insuredList = data.insuredList.map((item = {}, index) => {\n noticeQuestion.smartQuestionContent = (insuredNotice || [])[index]?.smartQuestionContent;\n dispatch({ [`healthNoticeInformation.insuredNotice[${currentInsured}]`]: noticeQuestion });\n // data?.insuredList?.length === 1说明是单被保人\n if (index === currentInsured || data?.insuredList?.length === 1) {\n return { ...item, noticeQuestion: { ...noticeQuestion } };\n }\n return { ...item };\n });\n }\n return data;\n};\n\n// 调用下一步请求\nexport const getNextStep = async (buttonCode, buttonText) => {\n Loading.show();\n const data = getFetchDataWithNotice(buttonText);\n if (buttonCode) {\n data.buttonCode = buttonCode;\n }\n Loading.hide();\n fetchClick(data, (resData = {}, next) => {\n return next;\n });\n};\n","/Users/zhongan/project/za-dplatform-h5/src/utils/validator/filters.js",[],"/Users/zhongan/project/za-dplatform-h5/src/utils/validator/index.js",["1464","1465"],"import _ from 'lodash';\nimport { hasValue } from '../tool';\nimport ruleFn, { T } from './rules';\n\nfunction validateRules(value, rules, messages, deps) {\n (Array.isArray(rules) ? rules : Object.keys(rules)).forEach((key) => {\n const rule = Array.isArray(rules) ? key : rules[key];\n const fn = ruleFn[rule];\n if (fn) {\n const result = fn(\n value,\n rules[rule],\n // 支持通过下划线配置所有规则错误消息\n messages[rule] || messages._,\n );\n if (!result[0]) {\n console.warn('检验错误:', result[1]);\n return result;\n }\n } else {\n console.error(`rule ${rule} is missing!`);\n }\n });\n return T;\n}\n\nfunction safeParse(str) {\n if (!str) return;\n try {\n return JSON.parse(str);\n } catch (error) {\n console.warn(`${str} is NOT a valid JSON`);\n }\n}\n\nexport { T };\n\nexport function validate(value, required, rules, messages, deps, filters) {\n // trim the whitespace by default;\n value = _.trim(value);\n messages = messages || {};\n // deps = deps || {};\n // filters = filters || {};\n\n if (hasValue(value)) {\n return rules ? validateRules(value, rules, messages, deps) : T;\n }\n if (required) {\n return [false, messages.required || '必填'];\n }\n return T;\n}\n\n// 检验所有表单\nexport function validateElements(elements = window.document.forms[0]?.elements || []) {\n for (let i = 0; i < elements.length; i++) {\n const tempEl = elements[i];\n // 带名字的input才是需要处理的\n if (tempEl.name && tempEl.tagName === 'INPUT') {\n const { rules, messages } = tempEl.dataset;\n const ret = validate(tempEl.value, tempEl.required, safeParse(rules), safeParse(messages));\n if (!ret[0]) {\n return [false, tempEl];\n }\n }\n }\n return T;\n}\n\n// 检验所有试算因子表单\nexport function validatePremiumElements(elements = window.document.forms[0]?.elements || []) {\n // if (!(elements?.length === 0)) return [false, '没有传入表单元素'];\n for (let i = 0; i < elements.length; i++) {\n const tempEl = elements[i];\n // 带名字的input才是需要处理的\n if (tempEl.name && tempEl.tagName === 'INPUT' && tempEl.dataset.ispremiumfactor === 'true') {\n const { rules, messages } = tempEl.dataset;\n const ret = validate(tempEl.value, tempEl.required, safeParse(rules), safeParse(messages));\n if (!ret[0]) {\n return [false, tempEl];\n }\n }\n }\n return T;\n}\n\n// 检验是所有的利益演算因子是否填写&&符合校验规则\nexport function validateElements2(elements = window.document.forms[0]?.elements || []) {\n for (let i = 0; i < elements.length; i++) {\n const tempEl = elements[i];\n // 带名字的input才是需要处理的\n if (tempEl.name && tempEl.tagName === 'INPUT') {\n const { rules, messages, isbenefitfactor } = tempEl.dataset;\n const ret = validate(\n tempEl.value,\n isbenefitfactor === 'true',\n safeParse(rules),\n safeParse(messages),\n );\n if (!ret[0]) {\n return [false, tempEl];\n }\n }\n }\n return T;\n}\n\n/*\nattrs: {\n isRequired: true,\n vRules: {\n phone: true,\n max: 12,\n range: [1, 65]\n },\n vMessages: {\n required: '请输入手机号码',\n phone: '手机号格式不正确',\n max: '允许的最大值是12',\n range: '年龄介于1和65之间'\n }\n} */\n\n// // 手机号\n// const xx = {\n// attrs: {\n// isRequired: true,\n// vRules: { phone: true },\n// vMessages: { phone: '手机号格式错误' }\n// }\n// }\n\n// // 邮箱\n// const xx = {\n// attrs: {\n// isRequired: true,\n// vRules: { email: true },\n// vMessages: { email: '邮箱格式错误' }\n// }\n// }\n\n// // 身份证\n// const xx = {\n// attrs: {\n// isRequired: true,\n// vRules: { idCard: true },\n// vMessages: { idCard: '证件号码格式错误' }\n// }\n// }\n\n// // 姓名\n// const xx = {\n// attrs: {\n// isRequired: true,\n// vRules: { name: true, maxLength: 40 },\n// vMessages: { name: '字数过少或有特殊符号' }\n// }\n// }\n","/Users/zhongan/project/za-dplatform-h5/src/utils/validator/rules.js",["1466","1467","1468","1469"],"export const T = [true];\n\nfunction ratio(value, ruleValue, message = '受益人比例格式不正确') {\n if (ruleValue === false) return T;\n // 默认百分号后缀 暂时没想好怎么加\n if (/^([0-9][0-9]?|100)$/.test(Number(value))) {\n return T;\n }\n return [false, message];\n}\n\nfunction mustTrue(value, ruleValue, message = '必须勾选') {\n if (ruleValue === false) return T;\n if (value === 'true') return T;\n return [false, message];\n}\n\nfunction zh(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (/^[\\u4e00-\\u9fa5]+$/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction date(value, ruleValue, message) {\n if (ruleValue === false) return T;\n value = value.replace(/-/g, '/');\n if (\n /^(\\d{4})[-/]?(\\d{1,2})[-/]?(\\d{1,2})$/.test(value)\n && new Date(value).toString() !== 'Invalid Date'\n ) {\n return T;\n }\n return [false, message];\n}\n\n// function name(value, ruleValue, message = '请输入2-30个中文字') {\n// if (ruleValue === false) return T;\n// const ret = zh(value, value, message);\n// if (ret[0]) {\n// return [value.length >= 2, message]\n// }\n// return ret;\n// }\n\nfunction name(value, ruleValue, message = '请输入2-30个中文字') {\n if (ruleValue === false) return T;\n if (!value) {\n return [false, '请输入姓名'];\n }\n if (/^[\\u4E00-\\u9FA5]/.test(value)) {\n // 匹配中文\n if (!/[^(\\u4E00-\\u9FA5|·)]/g.test(value)) {\n if (\n value.match(/[\\u4E00-\\u9FA5]/g).length >= 2\n && value.match(/[\\u4E00-\\u9FA5]/g).length <= 20\n ) {\n return T;\n }\n return [false, '中文名长度不小于2且不大于40'];\n }\n return [false, '中文姓名仅限:汉字、半角点号'];\n }\n return [false, '姓名必须全部为中文'];\n}\n\nfunction email(value, ruleValue, message = '邮箱格式错误') {\n if (ruleValue === false) return T;\n if (/^[a-z0-9_.-]+@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.[a-z0-9]{2,6}$/i.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction fn(value, ruleValue, messag) {}\n\nfunction int(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (/[0-9]+/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction min(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (+value >= +ruleValue) {\n return T;\n }\n return [false, message];\n}\n\nfunction max(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (+value <= +ruleValue) {\n return T;\n }\n return [false, message];\n}\n\nfunction maxLen(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (value.length <= +ruleValue) {\n return T;\n }\n return [false, message];\n}\n\nfunction minLen(value, ruleValue, message) {\n if (ruleValue === false) return T;\n if (value.length >= +ruleValue) {\n return T;\n }\n return [false, message];\n}\n\nfunction lenRange(value, ruleValue, message) {\n if (ruleValue === false) return T;\n const len = value.length;\n const [_min, _max] = ruleValue;\n if (len >= _min && len <= _max) {\n return T;\n }\n return [false, message];\n}\n\nfunction pattern(value, ruleValue, message) {\n if (ruleValue === false) return T;\n const reg = new RegExp(ruleValue);\n return [reg.test(value), message];\n}\n\nfunction phone(value, ruleValue, message = '手机号格式错误') {\n if (ruleValue === false) return T;\n if (/^1\\d{10}$/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction number(value, ruleValue, message = '输入正确的数字') {\n if (ruleValue === false) return T;\n if (/^[0-9]+([.][0-9]{1,2})?$/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction equalsTo(value, ruleValue, message = '', model) {\n if (ruleValue === false) return T;\n if (value === model[ruleValue]) {\n return T;\n }\n return [false, message];\n}\n\nfunction idCard(value, ruleValue, message = '请输入18位身份证号码') {\n if (ruleValue === false) return T;\n if (/(^\\d{15}$)|(^\\d{17}([0-9]|X)$)/.test(value)) {\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n // 下面分别分析出生日期和校验位\n const arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n const arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n value = value.replace(/^\\s+|\\s+$/g, ''); // 去掉两边空格\n if (value.length === 15) {\n const arrSplit = value.match(/^(\\d{6})(\\d{2})(\\d{2})(\\d{2})(\\d{3})$/);\n // 检查生日日期是否正确\n const dtmBirth = new Date(`19${arrSplit[2]}/${arrSplit[3]}/${arrSplit[4]}`);\n if (String(dtmBirth) !== 'Invalid Date') {\n // 将15位身份证转成18位\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n let nTemp = 0;\n let i;\n value = `${value.substr(0, 6)}19${value.substr(6, value.length - 6)}`;\n for (i = 0; i < 17; i++) {\n nTemp += value.substr(i, 1) * arrInt[i];\n }\n value += arrCh[nTemp % 11];\n }\n }\n\n if (value.length === 18) {\n const arrSplit = value.match(/^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$/);\n // 检查生日日期是否正确\n const dtmBirth = new Date(`${arrSplit[2]}/${arrSplit[3]}/${arrSplit[4]}`);\n if (String(dtmBirth) !== 'Invalid Date') {\n message = '证件号码格式错误';\n // 检验18位身份证的校验码是否正确。\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n let nTemp = 0;\n let i;\n for (i = 0; i < 17; i++) {\n nTemp += value.substr(i, 1) * arrInt[i];\n }\n const valnum = arrCh[nTemp % 11];\n if (valnum === value.substr(17, 1)) {\n return T;\n }\n }\n }\n }\n\n return [false, message];\n}\n\nfunction officialCard(value, ruleValue, message = '证件号码格式错误') {\n if (ruleValue === false) return T;\n if (/^\\d{8}$/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction passportCard(value, ruleValue, message = '证件号码格式错误') {\n if (ruleValue === false) return T;\n if (/^[a-zA-Z]\\d{8}$/.test(value)) {\n return T;\n }\n return [false, message];\n}\n\nfunction AML(value, ruleValue, message = '根据反洗钱要求,该字段必填') {\n if (ruleValue === false) return T;\n if (!value) {\n return T;\n }\n return [false, message];\n}\n\nexport default {\n // 需和xx字段值相等. e.g insured.idcard\n equalsTo,\n // 手机号码.\n phone,\n // 数值\n number,\n // 整形\n int,\n // 最小值\n min,\n // 最大值\n max,\n // 最大长度\n maxLen,\n // 最小长度\n minLen,\n // 长度范围\n lenRange,\n // 正则\n pattern,\n // js逻辑体\n fn,\n idCard,\n // 军官证\n officialCard,\n // 护照\n passportCard,\n name,\n email,\n date,\n zh,\n // 必须为true\n mustTrue,\n // 受益人比例\n ratio,\n\n AML, // 反洗钱\n};\n","/Users/zhongan/project/za-dplatform-h5/src/utils/wx.js",["1470","1471"],"/* eslint-disable import/prefer-default-export */\nimport wx from 'weixin-js-sdk';\nimport { Toast } from 'zarm';\nimport { delParam } from '@/utils/queryString';\n\nimport { getWechatConfigInfo, queryShareInfo } from '@/services/wx.js';\n\nexport const getwxConfig = (params) => {\n const { promotionId = '', tenantFrom = '' } = params;\n const pageUrl = (window.location.href).split('#')[0];\n // 经代暂不支持朋友圈服务调用\n if (tenantFrom === 'ba') {\n return false;\n }\n getWechatConfigInfo({\n promotionId,\n pageUrl,\n }).then((response) => {\n const { success: _success, result: _result } = response;\n if (!_success) {\n Toast.show('获取微信配置信息失败');\n return;\n }\n const { appId, timestamp, nonceStr, signature } = _result;\n wx.config({\n debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。\n appId, // 必填,企业号的唯一标识,此处填写企业号corpid\n timestamp, // 必填,生成签名的时间戳\n nonceStr, // 必填,生成签名的随机串\n signature, // 必填,签名,见附录1\n jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2\n });\n\n wx.error((res) => {\n Toast.show('微信签名config错误');\n });\n\n wx.ready(() => { // 需在用户可能点击分享按钮前就先调用\n queryShareInfo({\n promotionId,\n pageUrl,\n }).then((res) => {\n const { success, result } = res;\n if (!success) {\n // Toast.show('获取微信分享配置信息失败');\n return;\n }\n const url = delParam(window.location.search, 'orderNo');\n const lastUrl = delParam(url, 'pageCode');\n\n // console.log('lastUrl==>', lastUrl)\n const { shareTitle: title, shareDesc: desc, shareLink: link, shareImgUrl: imgUrl } = result;\n wx.updateAppMessageShareData({\n title, // 分享标题\n desc, // 分享描述\n link: window.location.origin + window.location.pathname + lastUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl, // 分享图标\n success() {\n // 设置成功\n },\n fail(_res) {\n Toast.show(_res);\n },\n });\n wx.updateTimelineShareData({\n title, // 分享标题\n link: window.location.origin + window.location.pathname + lastUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl, // 分享图标\n success() {\n // 设置成功\n },\n fail(_res) {\n Toast.show(_res);\n },\n });\n });\n });\n });\n};\n","/Users/zhongan/project/za-dplatform-h5/src/validator/index.js",["1472"],"/* eslint-disable import/prefer-default-export */\n/*\n * @Author: wangshengqiang\n * @Date: 2021-06-10 15:16:34\n * @LastEditTime: 2021-06-10 17:41:58\n * @LastEditors: wangshengqiang\n * @Description: 常用验证格式的方法\n */\n\n// 验证是否是正确身份证号码\nexport const isCard = (idNum) => {\n const arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子\n const arrValid = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; // 校验码\n if (/^\\d{17}\\d|x$/i.test(idNum)) {\n let sum = 0;\n // 对前17位数字与权值乘积求和\n for (let i = 0; i < idNum.length - 1; i++) {\n sum += parseInt(idNum.substr(i, 1), 10) * arrExp[i];\n }\n // 计算模(固定算法)\n const idx = sum % 11;\n // 检验第18为是否与校验码相等\n return arrValid[idx] == idNum.substr(17, 1).toUpperCase();\n }\n return false;\n};\n\n// 验证是否是正确身份证号码\nexport const idCard1 = (value) => {\n if (/(^\\d{15}$)|(^\\d{17}([0-9]|X)$)/.test(value)) {\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n // 下面分别分析出生日期和校验位\n const arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n const arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n value = value.replace(/^\\s+|\\s+$/g, ''); // 去掉两边空格\n if (value.length === 15) {\n const arrSplit = value.match(/^(\\d{6})(\\d{2})(\\d{2})(\\d{2})(\\d{3})$/);\n // 检查生日日期是否正确\n const dtmBirth = new Date(`19${arrSplit[2]}/${arrSplit[3]}/${arrSplit[4]}`);\n if (String(dtmBirth) !== 'Invalid Date') {\n // 将15位身份证转成18位\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n let nTemp = 0;\n let i;\n value = `${value.substr(0, 6)}19${value.substr(6, value.length - 6)}`;\n for (i = 0; i < 17; i++) {\n nTemp += value.substr(i, 1) * arrInt[i];\n }\n value += arrCh[nTemp % 11];\n }\n }\n\n if (value.length === 18) {\n const arrSplit = value.match(/^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$/);\n // 检查生日日期是否正确\n const dtmBirth = new Date(`${arrSplit[2]}/${arrSplit[3]}/${arrSplit[4]}`);\n if (String(dtmBirth) !== 'Invalid Date') {\n // 检验18位身份证的校验码是否正确。\n // 校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。\n let nTemp = 0;\n let i;\n for (i = 0; i < 17; i++) {\n nTemp += value.substr(i, 1) * arrInt[i];\n }\n const valnum = arrCh[nTemp % 11];\n if (valnum === value.substr(17, 1)) {\n return true;\n }\n }\n }\n }\n return false;\n};\n\n// 验证手机号\nexport const isPhone = (phone) => {\n const reg = /^1[3|6|4|5|7|8|9]\\d{9}$/;\n return reg.test(phone);\n};\n\n// 邮编验证6位数字\nexport const isPostcode = (val) => {\n return /^[0-9]{6}$/g.test(val);\n};\n\n// 检查邮箱是否正确\nexport const isEmail = (email) => {\n const reg = new RegExp(/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$/);\n return reg.test(email);\n};\n\n// 判断是否为中文\nexport const isCH = (text) => /^[\\u4e00-\\u9fa5]+$/.test(text);\n\n// 检查姓名是否正确\nexport const isName = (name) => isCH(name) && name.length > 1;\n\n// 检查是否为数据 ==》12 12.2 都是正确的\nexport const isNumber = (value) => /^[0-9]+([.][0-9]{1,2})?$/.test(value);\n","/Users/zhongan/project/za-dplatform-h5/src/validator/proValidator.js",[],{"ruleId":"1473","severity":1,"message":"1474","line":32,"column":11,"nodeType":"1475","messageId":"1476","endLine":32,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1477","line":32,"column":28,"nodeType":"1475","messageId":"1476","endLine":32,"endColumn":41},{"ruleId":"1473","severity":1,"message":"1478","line":33,"column":11,"nodeType":"1475","messageId":"1476","endLine":33,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1479","line":33,"column":30,"nodeType":"1475","messageId":"1476","endLine":33,"endColumn":45},{"ruleId":"1473","severity":1,"message":"1480","line":34,"column":9,"nodeType":"1475","messageId":"1476","endLine":34,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1481","line":36,"column":9,"nodeType":"1475","messageId":"1476","endLine":36,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1482","line":38,"column":9,"nodeType":"1475","messageId":"1476","endLine":38,"endColumn":20},{"ruleId":"1473","severity":1,"message":"1483","line":39,"column":9,"nodeType":"1475","messageId":"1476","endLine":39,"endColumn":22},{"ruleId":"1473","severity":1,"message":"1484","line":40,"column":9,"nodeType":"1475","messageId":"1476","endLine":40,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1485","line":66,"column":63,"nodeType":"1475","messageId":"1476","endLine":66,"endColumn":68},{"ruleId":"1473","severity":1,"message":"1485","line":88,"column":53,"nodeType":"1475","messageId":"1476","endLine":88,"endColumn":58},{"ruleId":"1473","severity":1,"message":"1485","line":163,"column":57,"nodeType":"1475","messageId":"1476","endLine":163,"endColumn":62},{"ruleId":"1473","severity":1,"message":"1485","line":206,"column":57,"nodeType":"1475","messageId":"1476","endLine":206,"endColumn":62},{"ruleId":"1473","severity":1,"message":"1485","line":268,"column":55,"nodeType":"1475","messageId":"1476","endLine":268,"endColumn":60},{"ruleId":"1473","severity":1,"message":"1486","line":9,"column":28,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1487","line":24,"column":10,"nodeType":"1475","messageId":"1476","endLine":24,"endColumn":23},{"ruleId":"1488","severity":1,"message":"1489","line":75,"column":42,"nodeType":"1490","messageId":"1491","endLine":75,"endColumn":44},{"ruleId":"1473","severity":1,"message":"1492","line":22,"column":5,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1493","line":23,"column":5,"nodeType":"1475","messageId":"1476","endLine":23,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1494","line":24,"column":5,"nodeType":"1475","messageId":"1476","endLine":24,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1495","line":34,"column":25,"nodeType":"1475","messageId":"1476","endLine":34,"endColumn":26},{"ruleId":"1496","severity":1,"message":"1497","line":91,"column":30,"nodeType":"1475","endLine":91,"endColumn":35},{"ruleId":"1473","severity":1,"message":"1498","line":6,"column":36,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":42},{"ruleId":"1496","severity":1,"message":"1497","line":33,"column":19,"nodeType":"1499","endLine":33,"endColumn":32},{"ruleId":"1496","severity":1,"message":"1497","line":41,"column":26,"nodeType":"1499","endLine":41,"endColumn":42},{"ruleId":"1496","severity":1,"message":"1497","line":83,"column":18,"nodeType":"1475","endLine":83,"endColumn":23},{"ruleId":"1473","severity":1,"message":"1500","line":9,"column":8,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1501","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1502","line":18,"column":48,"nodeType":"1475","messageId":"1476","endLine":18,"endColumn":53},{"ruleId":"1473","severity":1,"message":"1503","line":45,"column":45,"nodeType":"1475","messageId":"1476","endLine":45,"endColumn":49},{"ruleId":"1496","severity":1,"message":"1497","line":59,"column":17,"nodeType":"1475","endLine":59,"endColumn":22},{"ruleId":"1473","severity":1,"message":"1504","line":9,"column":10,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1500","line":10,"column":8,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1505","line":13,"column":20,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1502","line":23,"column":15,"nodeType":"1475","messageId":"1476","endLine":23,"endColumn":20},{"ruleId":"1473","severity":1,"message":"1506","line":24,"column":11,"nodeType":"1475","messageId":"1476","endLine":24,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1507","line":25,"column":10,"nodeType":"1475","messageId":"1476","endLine":25,"endColumn":31},{"ruleId":"1473","severity":1,"message":"1508","line":29,"column":7,"nodeType":"1475","messageId":"1476","endLine":29,"endColumn":10},{"ruleId":"1473","severity":1,"message":"1509","line":82,"column":14,"nodeType":"1475","messageId":"1476","endLine":82,"endColumn":17},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1511","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1512","line":11,"column":10,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":17},{"ruleId":"1473","severity":1,"message":"1513","line":11,"column":19,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1514","line":21,"column":11,"nodeType":"1475","messageId":"1476","endLine":21,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1515","line":22,"column":11,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1516","line":22,"column":18,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1517","line":22,"column":52,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":66},{"ruleId":"1473","severity":1,"message":"1510","line":1,"column":17,"nodeType":"1475","messageId":"1476","endLine":1,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1518","line":28,"column":11,"nodeType":"1475","messageId":"1476","endLine":28,"endColumn":16},{"ruleId":"1488","severity":1,"message":"1519","line":124,"column":30,"nodeType":"1490","messageId":"1491","endLine":124,"endColumn":32},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1518","line":13,"column":11,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":16},{"ruleId":"1496","severity":1,"message":"1497","line":25,"column":33,"nodeType":"1475","endLine":25,"endColumn":38},{"ruleId":"1496","severity":1,"message":"1497","line":32,"column":26,"nodeType":"1475","endLine":32,"endColumn":27},{"ruleId":"1496","severity":1,"message":"1497","line":34,"column":37,"nodeType":"1475","endLine":34,"endColumn":38},{"ruleId":"1473","severity":1,"message":"1500","line":3,"column":8,"nodeType":"1475","messageId":"1476","endLine":3,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1521","line":4,"column":35,"nodeType":"1475","messageId":"1476","endLine":4,"endColumn":42},{"ruleId":"1473","severity":1,"message":"1522","line":59,"column":9,"nodeType":"1475","messageId":"1476","endLine":59,"endColumn":27},{"ruleId":"1523","severity":1,"message":"1524","line":101,"column":5,"nodeType":"1525","messageId":"1491","endLine":101,"endColumn":16},{"ruleId":"1523","severity":1,"message":"1524","line":102,"column":5,"nodeType":"1525","messageId":"1491","endLine":102,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1526","line":239,"column":42,"nodeType":"1475","messageId":"1476","endLine":239,"endColumn":51},{"ruleId":"1473","severity":1,"message":"1527","line":242,"column":47,"nodeType":"1475","messageId":"1476","endLine":242,"endColumn":55},{"ruleId":"1473","severity":1,"message":"1528","line":244,"column":50,"nodeType":"1475","messageId":"1476","endLine":244,"endColumn":58},{"ruleId":"1473","severity":1,"message":"1529","line":246,"column":69,"nodeType":"1475","messageId":"1476","endLine":246,"endColumn":87},{"ruleId":"1473","severity":1,"message":"1530","line":247,"column":69,"nodeType":"1475","messageId":"1476","endLine":247,"endColumn":84},{"ruleId":"1473","severity":1,"message":"1531","line":248,"column":67,"nodeType":"1475","messageId":"1476","endLine":248,"endColumn":81},{"ruleId":"1473","severity":1,"message":"1532","line":249,"column":70,"nodeType":"1475","messageId":"1476","endLine":249,"endColumn":84},{"ruleId":"1473","severity":1,"message":"1533","line":266,"column":50,"nodeType":"1475","messageId":"1476","endLine":266,"endColumn":56},{"ruleId":"1473","severity":1,"message":"1534","line":267,"column":58,"nodeType":"1475","messageId":"1476","endLine":267,"endColumn":68},{"ruleId":"1473","severity":1,"message":"1535","line":268,"column":63,"nodeType":"1475","messageId":"1476","endLine":268,"endColumn":72},{"ruleId":"1473","severity":1,"message":"1520","line":1,"column":27,"nodeType":"1475","messageId":"1476","endLine":1,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1500","line":2,"column":8,"nodeType":"1475","messageId":"1476","endLine":2,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1518","line":12,"column":11,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1536","line":12,"column":23,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":30},{"ruleId":"1473","severity":1,"message":"1537","line":80,"column":20,"nodeType":"1475","messageId":"1476","endLine":80,"endColumn":31},{"ruleId":"1473","severity":1,"message":"1536","line":8,"column":18,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1538","line":14,"column":5,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1539","line":26,"column":10,"nodeType":"1475","messageId":"1476","endLine":26,"endColumn":23},{"ruleId":"1473","severity":1,"message":"1540","line":27,"column":10,"nodeType":"1475","messageId":"1476","endLine":27,"endColumn":30},{"ruleId":"1473","severity":1,"message":"1541","line":28,"column":10,"nodeType":"1475","messageId":"1476","endLine":28,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1542","severity":1,"message":"1543","line":24,"column":15,"nodeType":"1544","endLine":24,"endColumn":58},{"ruleId":"1496","severity":1,"message":"1497","line":49,"column":34,"nodeType":"1475","endLine":49,"endColumn":39},{"ruleId":"1496","severity":1,"message":"1497","line":52,"column":27,"nodeType":"1475","endLine":52,"endColumn":32},{"ruleId":"1473","severity":1,"message":"1502","line":13,"column":18,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":23},{"ruleId":"1496","severity":1,"message":"1497","line":23,"column":21,"nodeType":"1475","endLine":23,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1545","line":56,"column":30,"nodeType":"1475","messageId":"1476","endLine":56,"endColumn":34},{"ruleId":"1473","severity":1,"message":"1546","line":83,"column":17,"nodeType":"1475","messageId":"1476","endLine":83,"endColumn":22},{"ruleId":"1473","severity":1,"message":"1547","line":2,"column":28,"nodeType":"1475","messageId":"1476","endLine":2,"endColumn":47},{"ruleId":"1473","severity":1,"message":"1548","line":78,"column":46,"nodeType":"1475","messageId":"1476","endLine":78,"endColumn":49},{"ruleId":"1473","severity":1,"message":"1549","line":84,"column":5,"nodeType":"1475","messageId":"1476","endLine":84,"endColumn":10},{"ruleId":"1496","severity":1,"message":"1497","line":138,"column":73,"nodeType":"1475","endLine":138,"endColumn":78},{"ruleId":"1473","severity":1,"message":"1500","line":10,"column":8,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":9},{"ruleId":"1488","severity":1,"message":"1519","line":23,"column":55,"nodeType":"1490","messageId":"1491","endLine":23,"endColumn":57},{"ruleId":"1473","severity":1,"message":"1485","line":33,"column":33,"nodeType":"1475","messageId":"1476","endLine":33,"endColumn":38},{"ruleId":"1496","severity":1,"message":"1497","line":51,"column":21,"nodeType":"1475","endLine":51,"endColumn":26},{"ruleId":"1496","severity":1,"message":"1497","line":93,"column":26,"nodeType":"1475","endLine":93,"endColumn":27},{"ruleId":"1473","severity":1,"message":"1550","line":6,"column":18,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1485","line":47,"column":29,"nodeType":"1475","messageId":"1476","endLine":47,"endColumn":34},{"ruleId":"1523","severity":1,"message":"1524","line":72,"column":13,"nodeType":"1525","messageId":"1491","endLine":72,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1551","line":11,"column":17,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":27},{"ruleId":"1473","severity":1,"message":"1552","line":12,"column":10,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1548","line":20,"column":57,"nodeType":"1475","messageId":"1476","endLine":20,"endColumn":60},{"ruleId":"1473","severity":1,"message":"1553","line":32,"column":47,"nodeType":"1475","messageId":"1476","endLine":32,"endColumn":51},{"ruleId":"1473","severity":1,"message":"1554","line":36,"column":29,"nodeType":"1475","messageId":"1476","endLine":36,"endColumn":33},{"ruleId":"1473","severity":1,"message":"1545","line":65,"column":30,"nodeType":"1475","messageId":"1476","endLine":65,"endColumn":34},{"ruleId":"1473","severity":1,"message":"1546","line":90,"column":17,"nodeType":"1475","messageId":"1476","endLine":90,"endColumn":22},{"ruleId":"1473","severity":1,"message":"1555","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1556","line":15,"column":11,"nodeType":"1475","messageId":"1476","endLine":15,"endColumn":27},{"ruleId":"1473","severity":1,"message":"1557","line":129,"column":18,"nodeType":"1475","messageId":"1476","endLine":129,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1558","line":164,"column":15,"nodeType":"1475","messageId":"1476","endLine":164,"endColumn":21},{"ruleId":"1496","severity":1,"message":"1497","line":180,"column":44,"nodeType":"1475","endLine":180,"endColumn":49},{"ruleId":"1542","severity":1,"message":"1543","line":182,"column":36,"nodeType":"1544","endLine":182,"endColumn":86},{"ruleId":"1542","severity":1,"message":"1543","line":183,"column":35,"nodeType":"1544","endLine":183,"endColumn":84},{"ruleId":"1496","severity":1,"message":"1497","line":213,"column":44,"nodeType":"1475","endLine":213,"endColumn":49},{"ruleId":"1496","severity":1,"message":"1497","line":247,"column":44,"nodeType":"1475","endLine":247,"endColumn":49},{"ruleId":"1542","severity":1,"message":"1543","line":249,"column":36,"nodeType":"1544","endLine":249,"endColumn":86},{"ruleId":"1473","severity":1,"message":"1485","line":35,"column":46,"nodeType":"1475","messageId":"1476","endLine":35,"endColumn":51},{"ruleId":"1473","severity":1,"message":"1485","line":141,"column":43,"nodeType":"1475","messageId":"1476","endLine":141,"endColumn":48},{"ruleId":"1473","severity":1,"message":"1559","line":195,"column":13,"nodeType":"1475","messageId":"1476","endLine":195,"endColumn":27},{"ruleId":"1473","severity":1,"message":"1560","line":1,"column":8,"nodeType":"1475","messageId":"1476","endLine":1,"endColumn":13},{"ruleId":"1542","severity":1,"message":"1543","line":18,"column":34,"nodeType":"1544","endLine":18,"endColumn":76},{"ruleId":"1542","severity":1,"message":"1543","line":53,"column":41,"nodeType":"1544","endLine":53,"endColumn":90},{"ruleId":"1473","severity":1,"message":"1560","line":10,"column":8,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1548","line":14,"column":50,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":53},{"ruleId":"1473","severity":1,"message":"1561","line":22,"column":11,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1562","line":11,"column":41,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":46},{"ruleId":"1496","severity":1,"message":"1497","line":25,"column":26,"nodeType":"1475","endLine":25,"endColumn":31},{"ruleId":"1473","severity":1,"message":"1505","line":5,"column":10,"nodeType":"1475","messageId":"1476","endLine":5,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1563","line":9,"column":10,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1564","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":20},{"ruleId":"1473","severity":1,"message":"1565","line":12,"column":7,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":15},{"ruleId":"1542","severity":1,"message":"1543","line":78,"column":41,"nodeType":"1544","endLine":78,"endColumn":90},{"ruleId":"1473","severity":1,"message":"1566","line":3,"column":8,"nodeType":"1475","messageId":"1476","endLine":3,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1567","line":4,"column":8,"nodeType":"1475","messageId":"1476","endLine":4,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1505","line":6,"column":10,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1568","line":6,"column":20,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":28},{"ruleId":"1542","severity":1,"message":"1543","line":67,"column":41,"nodeType":"1544","endLine":67,"endColumn":86},{"ruleId":"1473","severity":1,"message":"1569","line":97,"column":11,"nodeType":"1475","messageId":"1476","endLine":97,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1570","line":169,"column":38,"nodeType":"1475","messageId":"1476","endLine":169,"endColumn":44},{"ruleId":"1473","severity":1,"message":"1571","line":234,"column":17,"nodeType":"1475","messageId":"1476","endLine":234,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1495","line":243,"column":25,"nodeType":"1475","messageId":"1476","endLine":243,"endColumn":26},{"ruleId":"1542","severity":1,"message":"1543","line":183,"column":36,"nodeType":"1544","endLine":183,"endColumn":76},{"ruleId":"1473","severity":1,"message":"1572","line":52,"column":30,"nodeType":"1475","messageId":"1476","endLine":52,"endColumn":38},{"ruleId":"1473","severity":1,"message":"1573","line":11,"column":11,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1574","line":11,"column":23,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":29},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1496","severity":1,"message":"1497","line":194,"column":41,"nodeType":"1475","endLine":194,"endColumn":46},{"ruleId":"1496","severity":1,"message":"1497","line":216,"column":24,"nodeType":"1475","endLine":216,"endColumn":29},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1568","line":10,"column":20,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1520","line":9,"column":17,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1575","line":14,"column":18,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":22},{"ruleId":"1473","severity":1,"message":"1536","line":14,"column":24,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":31},{"ruleId":"1488","severity":1,"message":"1519","line":21,"column":26,"nodeType":"1490","messageId":"1491","endLine":21,"endColumn":28},{"ruleId":"1488","severity":1,"message":"1519","line":23,"column":33,"nodeType":"1490","messageId":"1491","endLine":23,"endColumn":35},{"ruleId":"1473","severity":1,"message":"1576","line":33,"column":47,"nodeType":"1475","messageId":"1476","endLine":33,"endColumn":51},{"ruleId":"1523","severity":1,"message":"1524","line":72,"column":5,"nodeType":"1525","messageId":"1491","endLine":72,"endColumn":16},{"ruleId":"1523","severity":1,"message":"1524","line":77,"column":5,"nodeType":"1525","messageId":"1491","endLine":77,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1577","line":123,"column":5,"nodeType":"1475","messageId":"1476","endLine":123,"endColumn":12},{"ruleId":"1473","severity":1,"message":"1518","line":28,"column":11,"nodeType":"1475","messageId":"1476","endLine":28,"endColumn":16},{"ruleId":"1496","severity":1,"message":"1497","line":42,"column":70,"nodeType":"1475","endLine":42,"endColumn":75},{"ruleId":"1473","severity":1,"message":"1518","line":22,"column":5,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":10},{"ruleId":"1473","severity":1,"message":"1578","line":69,"column":30,"nodeType":"1475","messageId":"1476","endLine":69,"endColumn":34},{"ruleId":"1496","severity":1,"message":"1497","line":147,"column":39,"nodeType":"1475","endLine":147,"endColumn":44},{"ruleId":"1496","severity":1,"message":"1497","line":161,"column":43,"nodeType":"1475","endLine":161,"endColumn":48},{"ruleId":"1542","severity":1,"message":"1543","line":72,"column":41,"nodeType":"1544","endLine":72,"endColumn":90},{"ruleId":"1473","severity":1,"message":"1579","line":12,"column":8,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1580","line":13,"column":10,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1581","line":13,"column":17,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1582","line":25,"column":7,"nodeType":"1475","messageId":"1476","endLine":25,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1583","line":26,"column":7,"nodeType":"1475","messageId":"1476","endLine":26,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1548","line":40,"column":50,"nodeType":"1475","messageId":"1476","endLine":40,"endColumn":53},{"ruleId":"1473","severity":1,"message":"1584","line":123,"column":11,"nodeType":"1475","messageId":"1476","endLine":123,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1585","line":124,"column":11,"nodeType":"1475","messageId":"1476","endLine":124,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1586","line":125,"column":11,"nodeType":"1475","messageId":"1476","endLine":125,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1587","line":126,"column":11,"nodeType":"1475","messageId":"1476","endLine":126,"endColumn":22},{"ruleId":"1542","severity":1,"message":"1543","line":82,"column":12,"nodeType":"1544","endLine":82,"endColumn":54},{"ruleId":"1542","severity":1,"message":"1543","line":85,"column":55,"nodeType":"1544","endLine":85,"endColumn":96},{"ruleId":"1496","severity":1,"message":"1497","line":140,"column":22,"nodeType":"1475","endLine":140,"endColumn":27},{"ruleId":"1542","severity":1,"message":"1543","line":59,"column":12,"nodeType":"1544","endLine":59,"endColumn":54},{"ruleId":"1542","severity":1,"message":"1543","line":62,"column":55,"nodeType":"1544","endLine":62,"endColumn":96},{"ruleId":"1473","severity":1,"message":"1485","line":21,"column":38,"nodeType":"1475","messageId":"1476","endLine":21,"endColumn":43},{"ruleId":"1473","severity":1,"message":"1557","line":14,"column":18,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1560","line":8,"column":8,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":13},{"ruleId":"1542","severity":1,"message":"1543","line":25,"column":11,"nodeType":"1544","endLine":27,"endColumn":13},{"ruleId":"1496","severity":1,"message":"1497","line":55,"column":16,"nodeType":"1475","endLine":55,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1588","line":15,"column":9,"nodeType":"1475","messageId":"1476","endLine":15,"endColumn":15},{"ruleId":"1542","severity":1,"message":"1543","line":36,"column":14,"nodeType":"1544","endLine":36,"endColumn":63},{"ruleId":"1473","severity":1,"message":"1504","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1518","line":17,"column":11,"nodeType":"1475","messageId":"1476","endLine":17,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1589","line":9,"column":20,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":32},{"ruleId":"1473","severity":1,"message":"1518","line":14,"column":11,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1590","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":23},{"ruleId":"1473","severity":1,"message":"1591","line":14,"column":18,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":29},{"ruleId":"1496","severity":1,"message":"1497","line":52,"column":16,"nodeType":"1475","endLine":52,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1557","line":15,"column":18,"nodeType":"1475","messageId":"1476","endLine":15,"endColumn":26},{"ruleId":"1496","severity":1,"message":"1497","line":33,"column":50,"nodeType":"1475","endLine":33,"endColumn":55},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1500","line":10,"column":8,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1592","line":11,"column":8,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":10},{"ruleId":"1496","severity":1,"message":"1497","line":38,"column":57,"nodeType":"1475","endLine":38,"endColumn":62},{"ruleId":"1473","severity":1,"message":"1593","line":106,"column":11,"nodeType":"1475","messageId":"1476","endLine":106,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1594","line":106,"column":55,"nodeType":"1475","messageId":"1476","endLine":106,"endColumn":63},{"ruleId":"1473","severity":1,"message":"1502","line":152,"column":11,"nodeType":"1475","messageId":"1476","endLine":152,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1576","line":159,"column":8,"nodeType":"1475","messageId":"1476","endLine":159,"endColumn":12},{"ruleId":"1473","severity":1,"message":"1595","line":194,"column":22,"nodeType":"1475","messageId":"1476","endLine":194,"endColumn":35},{"ruleId":"1473","severity":1,"message":"1596","line":38,"column":10,"nodeType":"1475","messageId":"1476","endLine":38,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1536","line":73,"column":18,"nodeType":"1475","messageId":"1476","endLine":73,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1500","line":11,"column":8,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1597","line":29,"column":11,"nodeType":"1475","messageId":"1476","endLine":29,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1592","line":9,"column":8,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":10},{"ruleId":"1473","severity":1,"message":"1581","line":9,"column":10,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":17,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1510","line":8,"column":28,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":36},{"ruleId":"1473","severity":1,"message":"1500","line":9,"column":8,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1598","line":14,"column":5,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":11},{"ruleId":"1488","severity":1,"message":"1519","line":29,"column":26,"nodeType":"1490","messageId":"1491","endLine":29,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1599","line":3,"column":26,"nodeType":"1475","messageId":"1476","endLine":3,"endColumn":35},{"ruleId":"1473","severity":1,"message":"1521","line":3,"column":46,"nodeType":"1475","messageId":"1476","endLine":3,"endColumn":53},{"ruleId":"1473","severity":1,"message":"1600","line":18,"column":5,"nodeType":"1475","messageId":"1476","endLine":18,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1485","line":59,"column":67,"nodeType":"1475","messageId":"1476","endLine":59,"endColumn":72},{"ruleId":"1473","severity":1,"message":"1601","line":122,"column":11,"nodeType":"1475","messageId":"1476","endLine":122,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1505","line":5,"column":10,"nodeType":"1475","messageId":"1476","endLine":5,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1563","line":9,"column":10,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1564","line":10,"column":10,"nodeType":"1475","messageId":"1476","endLine":10,"endColumn":20},{"ruleId":"1473","severity":1,"message":"1565","line":12,"column":7,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":15},{"ruleId":"1542","severity":1,"message":"1543","line":78,"column":41,"nodeType":"1544","endLine":78,"endColumn":90},{"ruleId":"1473","severity":1,"message":"1566","line":3,"column":8,"nodeType":"1475","messageId":"1476","endLine":3,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1567","line":4,"column":8,"nodeType":"1475","messageId":"1476","endLine":4,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1505","line":6,"column":10,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1568","line":6,"column":20,"nodeType":"1475","messageId":"1476","endLine":6,"endColumn":28},{"ruleId":"1542","severity":1,"message":"1543","line":67,"column":41,"nodeType":"1544","endLine":67,"endColumn":86},{"ruleId":"1473","severity":1,"message":"1569","line":97,"column":11,"nodeType":"1475","messageId":"1476","endLine":97,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1570","line":169,"column":38,"nodeType":"1475","messageId":"1476","endLine":169,"endColumn":44},{"ruleId":"1473","severity":1,"message":"1571","line":234,"column":17,"nodeType":"1475","messageId":"1476","endLine":234,"endColumn":26},{"ruleId":"1473","severity":1,"message":"1495","line":243,"column":25,"nodeType":"1475","messageId":"1476","endLine":243,"endColumn":26},{"ruleId":"1542","severity":1,"message":"1543","line":183,"column":36,"nodeType":"1544","endLine":183,"endColumn":76},{"ruleId":"1473","severity":1,"message":"1572","line":52,"column":30,"nodeType":"1475","messageId":"1476","endLine":52,"endColumn":38},{"ruleId":"1473","severity":1,"message":"1573","line":11,"column":11,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1574","line":11,"column":23,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":29},{"ruleId":"1496","severity":1,"message":"1497","line":18,"column":23,"nodeType":"1475","endLine":18,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1579","line":8,"column":8,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1505","line":11,"column":10,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1602","line":12,"column":8,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1548","line":14,"column":60,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":63},{"ruleId":"1473","severity":1,"message":"1603","line":22,"column":7,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1604","line":14,"column":21,"nodeType":"1475","messageId":"1476","endLine":14,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1605","line":49,"column":10,"nodeType":"1475","messageId":"1476","endLine":49,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1579","line":12,"column":8,"nodeType":"1475","messageId":"1476","endLine":12,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1580","line":13,"column":10,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1581","line":13,"column":17,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1582","line":25,"column":7,"nodeType":"1475","messageId":"1476","endLine":25,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1583","line":26,"column":7,"nodeType":"1475","messageId":"1476","endLine":26,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1548","line":40,"column":50,"nodeType":"1475","messageId":"1476","endLine":40,"endColumn":53},{"ruleId":"1473","severity":1,"message":"1606","line":32,"column":13,"nodeType":"1475","messageId":"1476","endLine":32,"endColumn":19},{"ruleId":"1523","severity":1,"message":"1524","line":132,"column":5,"nodeType":"1525","messageId":"1491","endLine":132,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1598","line":13,"column":26,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":32},{"ruleId":"1473","severity":1,"message":"1607","line":13,"column":63,"nodeType":"1475","messageId":"1476","endLine":13,"endColumn":73},{"ruleId":"1473","severity":1,"message":"1608","line":22,"column":9,"nodeType":"1475","messageId":"1476","endLine":22,"endColumn":15},{"ruleId":"1473","severity":1,"message":"1609","line":74,"column":32,"nodeType":"1475","messageId":"1476","endLine":74,"endColumn":38},{"ruleId":"1473","severity":1,"message":"1610","line":49,"column":38,"nodeType":"1475","messageId":"1476","endLine":49,"endColumn":50},{"ruleId":"1473","severity":1,"message":"1611","line":50,"column":9,"nodeType":"1475","messageId":"1476","endLine":50,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1612","line":1,"column":10,"nodeType":"1475","messageId":"1476","endLine":1,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1560","line":2,"column":8,"nodeType":"1475","messageId":"1476","endLine":2,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1613","line":11,"column":19,"nodeType":"1475","messageId":"1476","endLine":11,"endColumn":24},{"ruleId":"1473","severity":1,"message":"1614","line":68,"column":13,"nodeType":"1475","messageId":"1476","endLine":68,"endColumn":21},{"ruleId":"1473","severity":1,"message":"1560","line":8,"column":8,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":13},{"ruleId":"1488","severity":1,"message":"1519","line":56,"column":19,"nodeType":"1490","messageId":"1491","endLine":56,"endColumn":21},{"ruleId":"1488","severity":1,"message":"1519","line":57,"column":20,"nodeType":"1490","messageId":"1491","endLine":57,"endColumn":22},{"ruleId":"1523","severity":1,"message":"1524","line":78,"column":9,"nodeType":"1525","messageId":"1491","endLine":78,"endColumn":20},{"ruleId":"1523","severity":1,"message":"1524","line":81,"column":9,"nodeType":"1525","messageId":"1491","endLine":81,"endColumn":20},{"ruleId":"1523","severity":1,"message":"1524","line":61,"column":5,"nodeType":"1525","messageId":"1491","endLine":61,"endColumn":16},{"ruleId":"1523","severity":1,"message":"1524","line":62,"column":5,"nodeType":"1525","messageId":"1491","endLine":62,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1613","line":295,"column":20,"nodeType":"1475","messageId":"1476","endLine":295,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1615","line":295,"column":27,"nodeType":"1475","messageId":"1476","endLine":295,"endColumn":40},{"ruleId":"1473","severity":1,"message":"1616","line":295,"column":42,"nodeType":"1475","messageId":"1476","endLine":295,"endColumn":51},{"ruleId":"1473","severity":1,"message":"1617","line":300,"column":40,"nodeType":"1475","messageId":"1476","endLine":300,"endColumn":48},{"ruleId":"1473","severity":1,"message":"1618","line":9,"column":23,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":27},{"ruleId":"1523","severity":1,"message":"1524","line":18,"column":3,"nodeType":"1525","messageId":"1491","endLine":18,"endColumn":14},{"ruleId":"1542","severity":1,"message":"1543","line":23,"column":12,"nodeType":"1544","endLine":25,"endColumn":9},{"ruleId":"1473","severity":1,"message":"1520","line":8,"column":10,"nodeType":"1475","messageId":"1476","endLine":8,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1619","line":9,"column":51,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":60},{"ruleId":"1473","severity":1,"message":"1620","line":9,"column":62,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":75},{"ruleId":"1473","severity":1,"message":"1560","line":1,"column":8,"nodeType":"1475","messageId":"1476","endLine":1,"endColumn":13},{"ruleId":"1473","severity":1,"message":"1621","line":152,"column":32,"nodeType":"1475","messageId":"1476","endLine":152,"endColumn":39},{"ruleId":"1473","severity":1,"message":"1622","line":213,"column":5,"nodeType":"1475","messageId":"1476","endLine":213,"endColumn":16},{"ruleId":"1473","severity":1,"message":"1623","line":257,"column":11,"nodeType":"1475","messageId":"1476","endLine":257,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1623","line":313,"column":11,"nodeType":"1475","messageId":"1476","endLine":313,"endColumn":25},{"ruleId":"1473","severity":1,"message":"1624","line":9,"column":54,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":67},{"ruleId":"1473","severity":1,"message":"1625","line":9,"column":69,"nodeType":"1475","messageId":"1476","endLine":9,"endColumn":87},{"ruleId":"1473","severity":1,"message":"1626","line":154,"column":15,"nodeType":"1475","messageId":"1476","endLine":154,"endColumn":26},{"ruleId":"1488","severity":1,"message":"1519","line":21,"column":26,"nodeType":"1490","messageId":"1491","endLine":21,"endColumn":28},{"ruleId":"1488","severity":1,"message":"1519","line":28,"column":12,"nodeType":"1490","messageId":"1491","endLine":28,"endColumn":14},{"ruleId":"1473","severity":1,"message":"1627","line":86,"column":32,"nodeType":"1475","messageId":"1476","endLine":86,"endColumn":51},{"ruleId":"1488","severity":1,"message":"1489","line":397,"column":42,"nodeType":"1490","messageId":"1491","endLine":397,"endColumn":44},{"ruleId":"1473","severity":1,"message":"1628","line":405,"column":7,"nodeType":"1475","messageId":"1476","endLine":405,"endColumn":19},{"ruleId":"1473","severity":1,"message":"1629","line":24,"column":7,"nodeType":"1475","messageId":"1476","endLine":24,"endColumn":10},{"ruleId":"1473","severity":1,"message":"1630","line":682,"column":40,"nodeType":"1475","messageId":"1476","endLine":682,"endColumn":50},{"ruleId":"1473","severity":1,"message":"1485","line":712,"column":65,"nodeType":"1475","messageId":"1476","endLine":712,"endColumn":70},{"ruleId":"1473","severity":1,"message":"1631","line":761,"column":21,"nodeType":"1475","messageId":"1476","endLine":761,"endColumn":28},{"ruleId":"1473","severity":1,"message":"1632","line":5,"column":48,"nodeType":"1475","messageId":"1476","endLine":5,"endColumn":52},{"ruleId":"1473","severity":1,"message":"1633","line":38,"column":66,"nodeType":"1475","messageId":"1476","endLine":38,"endColumn":73},{"ruleId":"1473","severity":1,"message":"1634","line":47,"column":33,"nodeType":"1475","messageId":"1476","endLine":47,"endColumn":40},{"ruleId":"1473","severity":1,"message":"1635","line":76,"column":13,"nodeType":"1475","messageId":"1476","endLine":76,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1636","line":76,"column":20,"nodeType":"1475","messageId":"1476","endLine":76,"endColumn":29},{"ruleId":"1473","severity":1,"message":"1637","line":76,"column":31,"nodeType":"1475","messageId":"1476","endLine":76,"endColumn":37},{"ruleId":"1473","severity":1,"message":"1638","line":34,"column":15,"nodeType":"1475","messageId":"1476","endLine":34,"endColumn":18},{"ruleId":"1473","severity":1,"message":"1639","line":52,"column":64,"nodeType":"1475","messageId":"1476","endLine":52,"endColumn":68},{"ruleId":"1488","severity":1,"message":"1519","line":23,"column":26,"nodeType":"1490","messageId":"1491","endLine":23,"endColumn":28},"no-unused-vars","'insurancePeriod' is assigned a value but never used.","Identifier","unusedVar","'paymentPeriod' is assigned a value but never used.","'insurancePeriodId' is assigned a value but never used.","'paymentPeriodId' is assigned a value but never used.","'sumProduct' is assigned a value but never used.","'sumLiability' is assigned a value but never used.","'unitProduct' is assigned a value but never used.","'unitLiability' is assigned a value but never used.","'productCalcType' is assigned a value but never used.","'index' is defined but never used.","'Suspense' is defined but never used.","'ImportLoading' is defined but never used.","eqeqeq","Expected '!==' and instead saw '!='.","BinaryExpression","unexpected","'maxTitleCount' is assigned a value but never used.","'isMultiple' is assigned a value but never used.","'maxCount' is assigned a value but never used.","'e' is defined but never used.","react/no-array-index-key","Do not use Array index in keys","'events' is defined but never used.","TemplateLiteral","'_' is defined but never used.","'isInTemplateTool' is defined but never used.","'label' is assigned a value but never used.","'vals' is defined but never used.","'Tabs' is defined but never used.","'dispatch' is defined but never used.","'componentName' is assigned a value but never used.","'isCanRequestBenfactor' is assigned a value but never used.","'key' is defined but never used.","'val' is defined but never used.","'useState' is defined but never used.","'Popper' is defined but never used.","'Popover' is defined but never used.","'Button' is defined but never used.","'insured' is assigned a value but never used.","'datas' is assigned a value but never used.","'titles' is assigned a value but never used.","'benefitFactors' is assigned a value but never used.","'attrs' is assigned a value but never used.","Expected '===' and instead saw '=='.","'useEffect' is defined but never used.","'ZaModal' is defined but never used.","'notificationModule' is assigned a value but never used.","no-console","Unexpected console statement.","MemberExpression","'packIndex' is defined but never used.","'proIndex' is defined but never used.","'liaIndex' is defined but never used.","'detailInsuredIndex' is defined but never used.","'detailPackIndex' is defined but never used.","'detailProIndex' is defined but never used.","'detailLiaIndex' is defined but never used.","'pIndex' is defined but never used.","'packPIndex' is defined but never used.","'proPIndex' is defined but never used.","'formKey' is assigned a value but never used.","'setRelation' is assigned a value but never used.","'isLiability' is assigned a value but never used.","'newDataSource' is assigned a value but never used.","'sumInsuredFormatType' is assigned a value but never used.","'sumInsuredValueStr' is assigned a value but never used.","react/no-danger","Dangerous property 'dangerouslySetInnerHTML' found","JSXAttribute","'name' is assigned a value but never used.","'qFrom' is assigned a value but never used.","'useImperativeHandle' is defined but never used.","'ref' is defined but never used.","'dummy' is assigned a value but never used.","'alt' is assigned a value but never used.","'useContext' is defined but never used.","'useLocation' is defined but never used.","'opts' is assigned a value but never used.","'args' is defined but never used.","'useMemo' is defined but never used.","'noticeObjectType' is assigned a value but never used.","'children' is assigned a value but never used.","'length' is assigned a value but never used.","'noticeQuestion' is assigned a value but never used.","'React' is defined but never used.","'id' is assigned a value but never used.","'label' is defined but never used.","'useNotice' is defined but never used.","'HAD_NOTICE' is defined but never used.","'renderBy' is assigned a value but never used.","'ReactDOM' is defined but never used.","'Render' is defined but never used.","'getState' is defined but never used.","'ulOb' is assigned a value but never used.","'reject' is defined but never used.","'className' is assigned a value but never used.","'fileType' is defined but never used.","'autoHidden' is assigned a value but never used.","'enable' is assigned a value but never used.","'form' is assigned a value but never used.","'rest' is assigned a value but never used.","'factors' is assigned a value but never used.","'info' is assigned a value but never used.","'classnames' is defined but never used.","'Input' is defined but never used.","'Cell' is defined but never used.","'PHONE_KEY' is assigned a value but never used.","'VALIDATE_CODE_KEY' is assigned a value but never used.","'bankCode' is assigned a value but never used.","'paymentMethod' is assigned a value but never used.","'bankAccountName' is assigned a value but never used.","'bankAccount' is assigned a value but never used.","'planId' is assigned a value but never used.","'getFormValue' is defined but never used.","'isPreviewMode' is defined but never used.","'originAttrs' is assigned a value but never used.","'cn' is defined but never used.","'codeKey' is assigned a value but never used.","'labelKey' is assigned a value but never used.","'setFinalValue' is assigned a value but never used.","'getValueByLevel' is defined but never used.","'dataSource' is assigned a value but never used.","'remark' is assigned a value but never used.","'NoticeBar' is defined but never used.","'buttonId' is assigned a value but never used.","'res' is assigned a value but never used.","'BaseModule' is defined but never used.","'getPrice' is assigned a value but never used.","'setData' is assigned a value but never used.","'text' is assigned a value but never used.","'config' is assigned a value but never used.","'titleClass' is assigned a value but never used.","'_title' is assigned a value but never used.","'params' is defined but never used.","'initialState' is defined but never used.","'sessionVal' is assigned a value but never used.","'useToggle' is defined but never used.","'props' is defined but never used.","'pageCode' is assigned a value but never used.","'changedFields' is defined but never used.","'allFields' is defined but never used.","'allValue' is defined but never used.","'Icon' is defined but never used.","'subscribe' is defined but never used.","'subscribeTree' is defined but never used.","'orderNo' is assigned a value but never used.","'productList' is assigned a value but never used.","'localUrlParams' is assigned a value but never used.","'insuredLength' is defined but never used.","'certifyValueLength' is defined but never used.","'certifyName' is assigned a value but never used.","'findComponentByName' is assigned a value but never used.","'mapToOptions' is assigned a value but never used.","'end' is assigned a value but never used.","'buttonText' is defined but never used.","'resData' is assigned a value but never used.","'deps' is defined but never used.","'filters' is defined but never used.","'message' is assigned a value but never used.","'value' is defined but never used.","'ruleValue' is defined but never used.","'messag' is defined but never used.","'res' is defined but never used.","'link' is assigned a value but never used."]