1 |
- {"version":3,"sources":["webpack:///./src/views/applyfor/components/CFlowPath.vue?4168","webpack:///./src/views/applyfor/components/CSelectImitate.vue?c9f7","webpack:///src/views/applyfor/components/CSelectImitate.vue","webpack:///./src/views/applyfor/components/CSelectImitate.vue?d661","webpack:///./src/views/applyfor/components/CSelectImitate.vue","webpack:///./src/views/applyfor/components/CSwitch.vue?a783","webpack:///./src/views/applyfor/index.vue?6c66","webpack:///./src/views/applyfor/components/IndexType1.vue?2655","webpack:///./src/views/applyfor/components/CFlowPath.vue?666a","webpack:///src/views/applyfor/components/CFlowPath.vue","webpack:///./src/views/applyfor/components/CFlowPath.vue?6b33","webpack:///./src/views/applyfor/components/CFlowPath.vue","webpack:///./src/views/applyfor/components/CDate.vue?d76d","webpack:///src/views/applyfor/components/CDate.vue","webpack:///./src/views/applyfor/components/CDate.vue?38d6","webpack:///./src/views/applyfor/components/CDate.vue","webpack:///./src/views/applyfor/components/CSwitch.vue?f042","webpack:///src/views/applyfor/components/CSwitch.vue","webpack:///./src/views/applyfor/components/CSwitch.vue?c008","webpack:///./src/views/applyfor/components/CSwitch.vue","webpack:///./src/views/applyfor/js/IndexComponentsMixins.js","webpack:///./src/api/approveflow.js","webpack:///./src/views/applyfor/indexMixins.js","webpack:///./src/views/applyfor/components/CProductStore.vue?6251","webpack:///src/views/applyfor/components/CProductStore.vue","webpack:///./src/views/applyfor/components/CProductStore.vue?ef43","webpack:///./src/views/applyfor/components/CProductStore.vue","webpack:///src/views/applyfor/components/IndexType1.vue","webpack:///./src/views/applyfor/components/IndexType1.vue?f7e4","webpack:///./src/views/applyfor/components/IndexType1.vue","webpack:///./src/views/applyfor/components/IndexType2.vue?2c37","webpack:///src/views/applyfor/components/IndexType2.vue","webpack:///./src/views/applyfor/components/IndexType2.vue?218d","webpack:///./src/views/applyfor/components/IndexType2.vue","webpack:///./src/views/applyfor/components/IndexType3.vue?1328","webpack:///src/views/applyfor/components/IndexType3.vue","webpack:///./src/views/applyfor/components/IndexType3.vue?fe85","webpack:///./src/views/applyfor/components/IndexType3.vue","webpack:///./src/views/applyfor/components/IndexType4.vue?5aa0","webpack:///src/views/applyfor/components/IndexType4.vue","webpack:///./src/views/applyfor/components/IndexType4.vue?83fc","webpack:///./src/views/applyfor/components/IndexType4.vue","webpack:///./src/views/applyfor/components/IndexType5.vue?1cb0","webpack:///./src/views/applyfor/components/Peers.vue?329c","webpack:///src/views/applyfor/components/Peers.vue","webpack:///./src/views/applyfor/components/Peers.vue?049d","webpack:///./src/views/applyfor/components/Peers.vue","webpack:///src/views/applyfor/components/IndexType5.vue","webpack:///./src/views/applyfor/components/IndexType5.vue?fb0d","webpack:///./src/views/applyfor/components/IndexType5.vue","webpack:///./src/views/applyfor/components/IndexType6.vue?b1d3","webpack:///src/views/applyfor/components/IndexType6.vue","webpack:///./src/views/applyfor/components/IndexType6.vue?66af","webpack:///./src/views/applyfor/components/IndexType6.vue","webpack:///./src/views/applyfor/components/IndexType7.vue?c3d6","webpack:///src/views/applyfor/components/IndexType7.vue","webpack:///./src/views/applyfor/components/IndexType7.vue?7957","webpack:///./src/views/applyfor/components/IndexType7.vue","webpack:///./src/views/applyfor/components/IndexType8.vue?8574","webpack:///src/views/applyfor/components/IndexType8.vue","webpack:///./src/views/applyfor/components/IndexType8.vue?3203","webpack:///./src/views/applyfor/components/IndexType8.vue","webpack:///./src/views/applyfor/components/IndexType9.vue?205e","webpack:///src/views/applyfor/components/IndexType9.vue","webpack:///./src/views/applyfor/components/IndexType9.vue?5bc2","webpack:///./src/views/applyfor/components/IndexType9.vue","webpack:///./src/views/applyfor/components/IndexType10.vue?4b19","webpack:///src/views/applyfor/components/IndexType10.vue","webpack:///./src/views/applyfor/components/IndexType10.vue?e804","webpack:///./src/views/applyfor/components/IndexType10.vue","webpack:///./src/views/applyfor/components/IndexType11.vue?7d07","webpack:///src/views/applyfor/components/IndexType11.vue","webpack:///./src/views/applyfor/components/IndexType11.vue?543c","webpack:///./src/views/applyfor/components/IndexType11.vue","webpack:///src/views/applyfor/index.vue","webpack:///./src/views/applyfor/index.vue?8d74","webpack:///./src/views/applyfor/index.vue","webpack:///./src/views/applyfor/components/Peers.vue?c114","webpack:///./src/views/applyfor/components/CProductStore.vue?ae41","webpack:///./src/views/apply-state/index.vue?cdd2","webpack:///src/views/apply-state/index.vue","webpack:///./src/views/apply-state/index.vue?9ab0","webpack:///./src/views/apply-state/index.vue","webpack:///./src/views/applyfor/components/CDate.vue?0971","webpack:///./src/views/apply-state/index.vue?8e49","webpack:///./src/utils/vueBus.js","webpack:///./src/views/applyfor/peersOutForm.vue?e3e9","webpack:///./src/views/applyfor/index.vue?83d4","webpack:///./src/views/applyfor/components/CSelectImitate.vue?d946","webpack:///./src/views/applyfor/peersOutForm.vue?a58a","webpack:///src/views/applyfor/peersOutForm.vue","webpack:///./src/views/applyfor/peersOutForm.vue?5888","webpack:///./src/views/applyfor/peersOutForm.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","$attrs","title","required","staticClass","on","$event","$emit","_v","_s","value","placeholder","hideRemove","_e","staticRenderFns","name","components","Layout","props","type","String","default","Boolean","component","renderComponent","ref","tag","flag","editId","editData","handleSubmitData","model","callback","$$v","reason","expression","applyTypeList","apply_goods","total_amount","start_time","document","images","applyPayTypeList","pay_type","approvePeople","copyPeople","isCopy","approveTxt","approveSelList","_l","personal","idx","key","avatar","_f","length","copySelList","isAllowCopy","sendTxt","showMoreCopy","copySelListCompu","handleOpenContactsCopy","style","height","handleRemoveSignal","computed","list","arrs","slice","approve","Array","copy","Number","data","methods","result","dingtalkComplexPicker","multiple","maxUsers","limitTips","pickedUsers","map","user","userid","responseUserOnly","startWithDepartmentId","deptId","showLabelPick","users","forEach","push","emplId","person","splice","__render_a__","isArray","__render_c__","watch","handler","deep","show","selectVal","handleRemoveVal","class","swt","dateShow","rangeShow","handleConfirmBtn","directives","rawName","calenderDefaultVal","onConfirmDateVal","hasAm","rangeTimeList","defaultAmPickerIdx","handlePickerChange","timeVal","rendeMinHours","handleDateTimePickerChange","dateVal","formatTime","rangeTime","minHour","Date","date","reset","event","val","picker","hours","minus","getValues","$refs","vanPickerRef","confirm","$nextTick","selval","formatBaseDateTime","error","console","log","bool","vals","time","split","isM","includes","immediate","activeValue","inactiveValue","CSelect","CInput","CFiles","CFlowPath","CDate","CSwitch","CSelectImitate","getApproveFlowPath","formData","request","method","url","mixins","indexComponentsMixins","Object","validator","undefined","created","platform","navigationSetting","activated","handleSetRightTitle","settingNavigationTitle","pageTitle","handleNavRightBack","$router","query","module","settingNavigationRight","control","text","pageRightTitle","options","params","ALLOW_MODULES","flow_item","res","code","approve_user","copy_user","is_copy","e","__validtor__","mapTxt","requiredKey","requiredKeyLength","hasEmpty","hasKey","i","getStringTye","isNaN","customToast","hEmpty","hKey","toastContext","$toast","__jump2apply_state__","$store","commit","replace","handleFormatEditData","disabled","handleAddGoods","productStoreActionsheetVisibility","handleGoPStore","showMore","item","goods_name","handleUpdateRow","handleRemoveRow","goodsStock","price","stock","goods_stock","showEmptyTxt","actions","handleSelectSheet","handleDownloadHelp","slot","excelSuffix","handleInputFileChange","t","typeof","needShowPrice","showList","renderInfoList","join","color","vueBus","$on","handleUpdateList","handleAddOrUpdateData","mounted","handleUpdateValues","JSON","parse","hasGoodsId","goods_id","findIndex","goods","__id__","customCount","GoodsPrice","isHasGoods","some","id","hasGoodsStock","standard","_idx","$forceUpdate","_template_","goods_category_first","goods_category_id","goods_no","goods_brand","action","handleDownloadTemplate","importTemlate","click","getImportTemplate","downloadFileUseATarget","files","target","file","handleImportFile","fileHref","upload","postImportFile","error_data","apply_goods_data","handleTipsImport","errs","$dialog","message","msg","confirmButtonText","confirmButtonColor","cancelButtonText","catch","article","flagtxt","$route","edit","stringify","filters","sumPrice","sum","reduce","accumulator","cur","$listeners","beforeDestroy","$off","indexMixin","CProductStore","degreeList","state","enum","way","getCommonFlowPathData","IS_EDIT","approve_id","mif","module_info","images_text","img","getStaticLinkInfo","document_text","doc","productStoreRef","imageRef","documentRef","__format_data__","bol","validate","__post__","templateObj","image","documents","postCreateInfo","go","currentItem","offerList","word_size","desc","number","remark","offerTypeList","fileRef","selOrd_text","handleClickSelOrdRow","handleCloseSelOrd","stock_goods","selOrd_arrs","apply_id","handleApprovalFormList","now","cproductstoreRef","__flag_x__","__flag_id__","apply","order_no","sel","selOldIds","order","tempStockGoods","good","__about_selarrs__","targetArrs","targetIds","stockGoodsIds","filter","xmIds","Set","xmId","oldArrs","use_goods","apply_user_name","isApprove","handleEditApplyofUser","handleRemoveApplyUser","peer_user","end_time","getEvectionTypeList","awayArr","is_who","handleAddPeerData","peerList","InsideOutMap","xtype","handleShowMore","isShowMore","handleActionSheetSelected","actionSheetVisibility","peersListCom","require","bus","__listenChangePeersEvent__","renderValue","__handle_out_peers","temps","__handle_in_press__","row","isUpdate","_Dialog","then","fIdx","hasEmpIdIdx","filterDepText","selectDeptName","Peers","mapState","mapGetters","formType","evectionTypeList","apply_user_id","init","token","userinfo","peerUser","apply_user","user_id","errorMessage","oldv","askForleaveTypeList","start_am","end_am","asktype","handleGetAskLeaveTykpe","amOrPm","__sum_days__","start","end","day","am","eday","eam","snow","enow","differV","getTime","dayLen","checkTimeAndGetFlow","label","timeList","timeItem","cFlowPathRef","sd","ed","sdt","edt","cdateEndTimeRef","reach_address","end_address","getMaintainText","maintainTypeList","imageM8Ref","getContractTypeList","contractTypeList","apply_order_no","scope","legal_opinion","founder","serial_number","degree","department","handleChooseDepartments","handleRemoveDepartment","department_sign","department_id","department_sign_id","keyword","dingtalkDepartmentsPicker","maxDepartments","pickedDepartments","departments","beforeRouteEnter","to","from","next","store","beforeRouteLeave","path","IndexType1","IndexType2","IndexType3","IndexType4","IndexType5","IndexType6","IndexType7","IndexType8","IndexType9","IndexType10","IndexType11","TYPE","isEdit","__detail__","func","approveInfoApi","approveApi","paramsId","rendeRef","handleTabBeforeChangeEvnet","tabVal","tab","handleClickSearchBox","searchVal","hasFilter","popupVisibility","finished","finishedText","onLoadData","listLoading","rendeTitleCom","apply_date","__rows_item__","approve_one","status","handleGoInfo","handleClosePopup","timeStart","handleClickTimeStart","timeEnd","handleClickTimeEnd","handleSubmitFilter","minDate","maxDate","nameText","ApproveItem","ChooseTime","welcomeTxt","getters","MODULE_ENUM","tabs","pagination","page","page_num","showEmpty","tableData","handleNavigationRight","tit","setMonth","getMonth","nowMax","THAT","group","getRecordList","formatApproveItemRow","concat","__record_list__","chooseTimeRef","openChooseTime","dayjs","format","handleTouchThatType","typeVal","flagState","handleSwitchFilterBox","startTime","endTime","Vue","handleConfirmSub"],"mappings":"kIAAA,W,oCCAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQN,EAAIO,OAAOC,MAAM,SAAWR,EAAIO,OAAOE,WAAW,CAACL,EAAG,MAAM,CAACM,YAAY,sDAAsD,CAACN,EAAG,MAAM,CAACM,YAAY,OAAOC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIa,MAAM,YAAY,CAAEb,EAAS,MAAEI,EAAG,MAAM,CAACM,YAAY,SAAS,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAIgB,UAAUZ,EAAG,MAAM,CAACM,YAAY,WAAW,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAIiB,kBAAmBjB,EAAIkB,WAA8UlB,EAAImB,KAAvTf,EAAG,MAAM,CAACM,YAAY,SAAS,CAAEV,EAAS,MAAEI,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,KAAO,SAASK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIa,MAAM,aAAab,EAAImB,KAAKf,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,KAAO,SAASK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIa,MAAM,cAAc,QAC9yBO,EAAkB,G,YCmBP,GACfC,KAAA,iBAEAC,WAAA,CACAC,eAGAC,MAAA,CACAR,MAAA,CACAS,KAAAC,OACAC,QAAA,IAEAV,YAAA,CACAQ,KAAAC,OACAC,QAAA,OAEAT,WAAA,CACAO,KAAAG,QACAD,SAAA,KCtCqX,I,wBCQjXE,EAAY,eACd,EACA9B,EACAqB,GACA,EACA,KACA,WACA,MAIa,OAAAS,E,2CCnBf,W,yCCAA,IAAI9B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAGJ,EAAI8B,gBAAgB,CAACC,IAAI,WAAWC,IAAI,YAAY1B,MAAM,CAAC,KAAON,EAAIiC,KAAK,OAASjC,EAAIkC,OAAO,YAAYlC,EAAImC,YAAY/B,EAAG,MAAM,CAACM,YAAY,UAAU,CAACN,EAAG,MAAM,CAACM,YAAY,MAAMC,GAAG,CAAC,MAAQX,EAAIoC,mBAAmB,CAACpC,EAAIc,GAAGd,EAAIe,GAAgB,YAAbf,EAAIiC,KAAqB,OAAS,YAAY,IACrab,EAAkB,GCDlB,EAAS,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,aAAa,WAAW,UAAY,KAAK+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAI0C,cAAc,eAAiB,OAAO,cAAgB,MAAML,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,UAAuB,KAAZzC,EAAIyB,KAAa,CAACrB,EAAG,kBAAkB,CAAC2B,IAAI,kBAAkBzB,MAAM,CAAC,KAAO,KAAK+B,MAAM,CAACrB,MAAOhB,EAAe,YAAEsC,SAAS,SAAUC,GAAMvC,EAAI2C,YAAYJ,GAAKE,WAAW,kBAAkBzC,EAAImB,KAAKf,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,aAAa,UAAU+B,MAAM,CAACrB,MAAOhB,EAAgB,aAAEsC,SAAS,SAAUC,GAAMvC,EAAI4C,aAAaL,GAAKE,WAAW,kBAAkBrC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,YAAY+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,gBAAgBrC,EAAG,UAAU,CAAC2B,IAAI,cAAcM,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,WAAWzB,MAAM,CAAC,MAAQ,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAYrC,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIgD,iBAAiB,eAAiB,OAAO,cAAgB,MAAMX,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAIiD,SAASV,GAAKE,WAAW,cAAcrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IAC3qD,EAAkB,G,sECDlB,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,OAAO,CAACF,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,eAAe,CAACV,EAAIc,GAAG,WAAWV,EAAG,MAAM,CAACM,YAAY,cAAc,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAGf,EAAIqD,YAAY,SAASjD,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAAEV,EAAIsD,eAAqB,OAAElD,EAAG,MAAM,CAACM,YAAY,wCAAwCV,EAAIuD,GAAIvD,EAAkB,gBAAE,SAASwD,EAASC,GAAK,OAAOrD,EAAG,MAAM,CAACsD,IAAID,EAAI/C,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAAE8C,EAAe,OAAE,CAACpD,EAAG,MAAM,CAACM,YAAY,eAAeJ,MAAM,CAAC,IAAMkD,EAASG,WAAW,CAACvD,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAI4D,GAAG,aAAP5D,CAAqBwD,EAASnC,YAAY,GAAGjB,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACV,EAAIc,GAAGd,EAAIe,GAAGyC,EAASnC,WAAYoC,IAAQzD,EAAIsD,eAAeO,OAAS,EAAGzD,EAAG,WAAW,CAACM,YAAY,QAAQJ,MAAM,CAAC,KAAO,GAAG,KAAO,QAAQ,MAAQ,wBAAwBN,EAAImB,MAAM,MAAK,GAAGnB,EAAImB,OAAOf,EAAG,MAAM,CAACM,YAAY,gBAAiBV,EAAI8D,YAAYD,QAA6B,KAAnB7D,EAAI+D,YAAoB3D,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,eAAe,CAACV,EAAIc,GAAG,WAAWV,EAAG,MAAM,CAACM,YAAY,cAAc,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAGf,EAAIgE,SAAS,SAAS5D,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,wCAAwC,CAAEV,EAAI8D,YAAYD,QAAU,EAAGzD,EAAG,MAAM,CAACM,YAAY,gBAAgBC,GAAG,CAAC,MAAQ,SAASC,GAAQZ,EAAIiE,cAAe,KAAQ,CAAC7D,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACN,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,YAAY,KAAO,OAAO,KAAKF,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACV,EAAIc,GAAG,YAAYV,EAAG,WAAW,CAACM,YAAY,QAAQJ,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,MAAQ,yBAAyB,GAAGN,EAAImB,KAAKnB,EAAIuD,GAAIvD,EAAoB,kBAAE,SAASwD,EAASC,GAAK,OAAOrD,EAAG,MAAM,CAACsD,IAAKD,EAAM,IAAOD,EAAe,OAAG9C,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAAE8C,EAAe,OAAE,CAACpD,EAAG,MAAM,CAACM,YAAY,eAAeJ,MAAM,CAAC,IAAMkD,EAASG,WAAW,CAACvD,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAI4D,GAAG,aAAP5D,CAAqBwD,EAASnC,YAAY,GAAGjB,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACV,EAAIc,GAAGd,EAAIe,GAAGyC,EAASnC,WAAYoC,IAAQzD,EAAIkE,iBAAiBL,OAAS,GAAyH,KAAnB7D,EAAI+D,YAAvG3D,EAAG,WAAW,CAACM,YAAY,QAAQJ,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,MAAQ,wBAAmJN,EAAImB,MAAM,OAAM,GAAuB,KAAnBnB,EAAI+D,YAAoB3D,EAAG,MAAM,CAACM,YAAY,YAAYC,GAAG,CAAC,MAAQX,EAAImE,yBAAyB,CAAC/D,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,KAAO,WAAW,GAAGN,EAAImB,SAASnB,EAAImB,OAAOf,EAAG,YAAY,CAACgE,MAAM,CAAGC,OAAQ,OAAS/D,MAAM,CAAC,SAAW,SAAS,UAAY,GAAG,sBAAsB,aAAa+B,MAAM,CAACrB,MAAOhB,EAAgB,aAAEsC,SAAS,SAAUC,GAAMvC,EAAIiE,aAAa1B,GAAKE,WAAW,iBAAiB,CAACrC,EAAG,MAAM,CAACM,YAAY,0CAA0C,CAACN,EAAG,MAAM,CAACM,YAAY,UAAU,CAACV,EAAIc,GAAG,KAAKd,EAAIe,GAAGf,EAAI8D,YAAYD,QAAQ,OAAOzD,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,wCAAwCV,EAAIuD,GAAIvD,EAAe,aAAE,SAASwD,EAASC,GAAK,OAAOrD,EAAG,MAAM,CAACsD,IAAKD,EAAM,IAAOD,EAAe,OAAG9C,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,WAAWC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIsE,mBAAmBd,EAAUC,MAAQ,CAACrD,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,QAAQ,KAAO,GAAG,MAAQ,WAAW,GAAGF,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAAE8C,EAAe,OAAE,CAACpD,EAAG,MAAM,CAACM,YAAY,eAAeJ,MAAM,CAAC,IAAMkD,EAASG,WAAW,CAACvD,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAI4D,GAAG,aAAP5D,CAAqBwD,EAASnC,YAAY,GAAGjB,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACV,EAAIc,GAAGd,EAAIe,GAAGyC,EAASnC,WAAYoC,IAAQzD,EAAI8D,YAAYD,OAAS,EAAGzD,EAAG,WAAW,CAACM,YAAY,QAAQJ,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,MAAQ,wBAAwBN,EAAImB,MAAM,MAAK,UAAU,IAC/sI,EAAkB,G,wBC8RP,GACfE,KAAA,YACAC,WAAA,CACAC,eAEAgD,SAAA,CACAlB,aACA,IAAAmB,EAAA,KAAAlB,eACA,OAAAkB,EAAAX,OAAAW,EAAAX,OAAA,iBAEAG,UACA,IAAAQ,EAAA,KAAAV,YACA,OAAAU,EAAAX,OAAA,KAAAW,EAAAX,UAAA,SAEAK,mBACA,IAAAO,EAAA,SAAAX,aACA,OAAAW,EAAAZ,OAAA,EAAAY,EAAAC,OAAA,GACAD,IAGAjD,MAAA,CACAmD,QAAA,CACAlD,KAAAmD,OAEAC,KAAA,CACApD,KAAAmD,OAEAb,YAAA,CAEAtC,KAAA,CAAAC,OAAAoD,QACAnD,QAAA,IAGAoD,OACA,OACAd,cAAA,EACAX,eAAA,GACAQ,YAAA,KAGAkB,QAAA,CASA,+BACA,WAAAjB,YAAA,OAEA,MAAAkB,QAAAC,eAAA,CACA1E,MAAA,QACA2E,UAAA,EACAC,SAAA,KACAC,UAAA,YACAC,YAAA,KAAAxB,YAAAyB,IAAAC,KAAAC,QACAC,kBAAA,EACAC,sBAAA,EACAC,QAAA,EACAC,eAAA,KAGA,MAAAC,GAAAb,EAEAa,EAAAjC,SACAiC,EAAAC,QAAAP,IACA,KAAA1B,YAAAkC,KAAA,IACAR,EACAC,OAAAD,EAAAS,WAGA,KAAApF,MAAA,uBAAAiD,gBAGAQ,mBAAA4B,EAAAzC,GACA,KAAAK,YAAAqC,OAAA1C,EAAA,GACA,KAAA5C,MAAA,uBAAAiD,eAIAsC,aAAA3B,GACAG,MAAAyB,QAAA5B,OAAA,KAAAE,SACA,KAAArB,eAAA,IAAAmB,IAEA6B,aAAA7B,GACAG,MAAAyB,QAAA5B,OAAA,KAAAI,MACA,KAAAf,YAAA,IAAAW,KAGA8B,MAAA,CACA5B,QAAA,CACA6B,QAAA/B,GACA,KAAA2B,aAAA3B,IAEAgC,MAAA,GAEA5B,KAAA,CACA2B,QAAA/B,GACA,KAAA6B,aAAA7B,IAEAgC,MAAA,KCrYgX,I,wBCQ5W5E,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCnBX,EAAS,WAAa,IAAI7B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQN,EAAIO,OAAOC,MAAM,SAAWR,EAAIO,OAAOE,WAAW,CAACL,EAAG,MAAM,CAACM,YAAY,oDAAoD,CAACN,EAAG,MAAM,CAACM,YAAY,OAAOC,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAI0G,MAAQ1G,EAAI0G,QAAU,CAAE1G,EAAa,UAAEI,EAAG,MAAM,CAACM,YAAY,SAAS,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAI2G,cAAcvG,EAAG,MAAM,CAACM,YAAY,WAAW,CAACV,EAAIc,GAAG,WAAWV,EAAG,MAAM,CAACM,YAAY,SAAS,CAAEV,EAAa,UAAEI,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,KAAO,SAASK,GAAG,CAAC,MAAQX,EAAI4G,mBAAmB5G,EAAImB,KAAKf,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,KAAO,SAASK,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAI0G,MAAQ1G,EAAI0G,UAAY,KAAKtG,EAAG,YAAY,CAACE,MAAM,CAAC,SAAW,UAAU+B,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAI0G,KAAKnE,GAAKE,WAAW,SAAS,CAACrC,EAAG,MAAM,CAACM,YAAY,8CAA8C,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACyG,MAAM,CAAE,OAAsB,IAAZ7G,EAAI8G,KAAYnG,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAI8G,IAAM,KAAO,CAAC9G,EAAIc,GAAGd,EAAIe,GAAGf,EAAI+G,aAAc/G,EAAS,MAAEI,EAAG,OAAO,CAACyG,MAAM,CAAE,OAAsB,IAAZ7G,EAAI8G,KAAYnG,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAI8G,IAAM,KAAO,CAAC9G,EAAIc,GAAGd,EAAIe,GAAGf,EAAIgH,cAAc5G,EAAG,OAAO,CAACyG,MAAM,CAAE,OAAsB,IAAZ7G,EAAI8G,KAAYnG,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAI8G,IAAM,KAAO,CAAC9G,EAAIc,GAAG,UAAUV,EAAG,MAAM,CAACM,YAAY,QAAQC,GAAG,CAAC,MAAQX,EAAIiH,mBAAmB,CAAC7G,EAAG,MAAM,CAACM,YAAY,OAAO,CAACV,EAAIc,GAAG,YAAYV,EAAG,eAAe,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAmB,IAAZhB,EAAI8G,IAAWrE,WAAW,cAAc2B,MAAM,CAAGC,OAAQ,SAAW/D,MAAM,CAAC,UAAW,EAAM,gBAAe,EAAM,cAAa,EAAM,iBAAgB,EAAM,aAAa,KAAK,MAAQ,UAAU,eAAeN,EAAIoH,oBAAoBzG,GAAG,CAAC,QAAUX,EAAIqH,oBAAoBjH,EAAG,aAAa,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAmB,IAAZhB,EAAI8G,KAAa9G,EAAIsH,MAAO7E,WAAW,uBAAuBV,IAAI,eAAeqC,MAAM,CAAGC,OAAQ,SAAW/D,MAAM,CAAC,gBAAe,EAAM,QAAUN,EAAIuH,cAAc,gBAAgBvH,EAAIwH,oBAAoB7G,GAAG,CAAC,OAASX,EAAIyH,sBAAsBrH,EAAG,sBAAsB,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAmB,IAAZhB,EAAI8G,MAAc9G,EAAIsH,MAAO7E,WAAW,wBAAwBV,IAAI,mBAAmBqC,MAAM,CAAGC,OAAQ,SAAW/D,MAAM,CAAC,MAAQN,EAAI0H,QAAQ,KAAO,OAAO,gBAAe,EAAM,WAAW1H,EAAI2H,cAAc,WAAW,GAAG,qBAAqB,KAAKhH,GAAG,CAAC,OAASX,EAAI4H,+BAA+B,IAAI,IACl8E,EAAkB,G,YCgHP,GACfvG,KAAA,QACAC,WAAA,CACAC,eAEAgD,SAAA,CACAwC,WACA,YAAAc,QAAAC,eAAA,KAAAD,SAAA,MAGAb,YACA,kBAAAe,UAAA,WAGAJ,gBACA,IAAAK,EAAA,EAEA,MADA,YAAAD,YAAAC,EAAA,IACAA,GAEAR,qBACA,kBAAAO,UAAA,EACA,IAGAvG,MAAA,CACAR,MAAA,CACAS,KAAAC,OACAC,QAAA,IAEA2F,MAAA,CACA7F,KAAAG,QACAD,SAAA,IAGAoD,OACA,OACA2B,MAAA,EACAI,IAAA,EAEAH,UAAA,GACAY,cAAA,YAEAH,mBAAA,IAAAa,KAGAF,UAAA,KACAF,QAAA,GACAH,QAAA,UAGA1C,QAAA,CAEAqC,iBAAAa,GACA,KAAAL,QAAAK,GAGAC,QACA,KAAAxB,UAAA,GACA,KAAAkB,QAAA,GACA,KAAAH,QAAA,QACA,KAAAK,UAAA,MAGAnB,kBACA,KAAAuB,SAIAV,mBAAAW,EAAAC,GACA,KAAAN,UAAAM,GAIAT,2BAAAU,GACA,MAAAC,EAAAC,GAAAF,EAAAG,YACA,KAAAf,QAAA,GAAAa,KAAAC,KAIAvB,mBACA,IACA,KAAAP,MAAA,EACA,KAAAmB,UAAA,KAAAA,QAAA,KAAAT,oBAEA,KAAAE,OAAA,KAAAoB,MAAAC,aAAAC,UAEA,KAAAC,UAAA,KACA,IAAAC,EAAA,KAAAxB,MAAA,GAAAyB,eAAA,KAAAlB,YAAA,KAAAE,YAAA,GAAAgB,eAAA,KAAAlB,YAAA,KAAAH,UACA,KAAAf,UAAAmC,EACA,KAAAjI,MAAA,QAAAiI,KAEA,MAAAE,GACAC,QAAAC,IAAA,0DAAAF,MAIAzC,MAAA,CACAG,KAAAyC,GACAA,IACA,KAAArC,IAAA,IAGA9F,MAAA,CACAwF,QAAA4C,GACA,GAAAA,EAAA,CACA,MAAAlB,EAAAmB,GAAAD,EAAAE,MAAA,KACA,IAAAC,EAAAF,EAAAG,SAAA,KACA,GAAAD,EAAA,CACA,IAAAhB,GAAAc,EAAAC,MAAA,KACA,KAAAvB,UAAAQ,EAAA,aACA,KAAAb,QAAA2B,OAEA,KAAAtB,UAAAsB,EAEA,KAAA1C,UAAAyC,EACA,KAAAhC,mBAAA,IAAAa,KAAAC,GACA,KAAAL,QAAAK,IAGAuB,WAAA,KCxO4W,ICQxW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIzJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,4CAA4C,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACM,YAAY,SAAS,CAACV,EAAIc,GAAGd,EAAIe,GAAGf,EAAIO,OAAOC,UAAWR,EAAIO,OAAe,SAAEH,EAAG,OAAO,CAACM,YAAY,WAAW,CAACV,EAAIc,GAAG,OAAOd,EAAImB,OAAOf,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQN,EAAIO,OAAOS,MAAM,eAAe,UAAU,eAAehB,EAAIO,OAAOmJ,YAAY,iBAAiB1J,EAAIO,OAAOoJ,eAAehJ,GAAG,CAAC,OAAS,SAAUK,GAAS,OAAQhB,EAAIa,MAAM,QAASG,QAAe,QAC9oB,EAAkB,GCgDP,GACfK,KAAA,WClD8W,ICQ1W,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,oBCRA,GACXC,WAAY,CACRsI,eACAC,cACAC,cACAC,YACAC,QACAC,UACAC,wB,YCbD,SAASC,EAAoBC,GAChC,OAAOC,eAAQ,CACXC,OAAQ,OACRC,IAAK,uBACLxF,KAAMqF,ICDC,OACXI,OAAQ,CACJC,GAEJjJ,MAAO,CACHW,SAAU,CACNV,KAAMiJ,OACN/I,QAASA,IAAO,MAEpBO,OAAQ,CACJT,KAAMqD,OACNnD,QAAS,GAEbM,KAAM,CACFR,KAAMC,OACNiJ,UAAW1I,GAAS,CAAC,GAAI,OAAQ,WAAWuH,SAASvH,KAG7D8C,OACI,MAAO,CACH7B,cAAe,GACfC,WAAY,GACZC,YAAQwH,IAIhBC,UACqB,kBAAbC,QACA7K,KAAK8K,qBAIbC,YACqB,kBAAbF,QACA7K,KAAKgL,uBAIbjG,QAAS,CAEL+F,oBACIG,eAAuB,CACnB1K,MAAOP,KAAKkL,aAGpBC,qBACInL,KAAKoL,QAAQrF,KAAK,CACd3E,KAAM,aACNiK,MAAO,CACH7J,KAAMxB,KAAKsL,WAIvBN,sBACIO,eAAuB,CACnB9E,MAAM,EACN+E,SAAS,EACTC,KAAMzL,KAAK0L,eACXrJ,SAAUrC,KAAKmL,sBAMvB,4BAA6BQ,EAAU,GAAItJ,GACvC,IACI,IAAIiJ,EAAStL,KAAKsL,OAClB,MAAMM,EAAS,CACXN,UAIEO,EAAgB,CAAC,EAAG,EAAG,GAEzBA,EAActC,SAAS+B,IAAWK,EAAQG,YAAWF,EAAO,aAAeD,EAAQG,WAEvF,MAAMC,QAAY7B,EAAmB0B,GAErC,GAAiB,IAAbG,EAAIC,KAAY,CAEhB,MAAM,aACFC,EAAe,GAAE,UACjBC,EAAY,GAAE,QACdC,EAAU,KACVJ,EAAIjH,KACR9E,KAAKmD,OAASgJ,EACdnM,KAAKiD,cAAgBgJ,EACrBjM,KAAKkD,WAAagJ,EAGlB7J,GAAYA,KAElB,MAAO+J,GACLpD,QAAQC,IAAImD,KAUpBC,cAAc,OAAEC,EAAM,YAAEC,EAAW,KAAEzH,GAASzC,GAO1C,IAAImK,EAAoBD,EAAY3I,OAChC6I,GAAW,EACXC,EAAS,GAEb,IAAI,IAAIC,EAAI,EAAGA,EAAIH,EAAmBG,IAAK,CACvC,IAAIlJ,EAAM8I,EAAYI,GAClBvE,EAAMtD,EAAKrB,GACXjC,EAAOoL,eAAaxE,GAExB,GAAa,WAAT5G,GAAsBqL,MAAMzE,GAC3B,IAAa,UAAT5G,GAAoB4G,EAAIxE,OAAQ,SACpC,GAAa,WAATpC,GAAqB4G,EAAK,SAE/BsE,EAASjJ,EACTgJ,GAAW,EACX,OAMR,IAAIK,EAAc,GAClB,GAAIzK,EAAU,CACV,MAAO0K,EAAQC,EAAMC,GAAgB5K,EAASyC,EAAM2H,EAAUC,GAC9DD,EAAWM,EACXL,EAASM,EACTF,EAAcG,EAGlB,OAAIH,GACA9M,KAAKkN,OAAOJ,IACL,GACAL,GACPzM,KAAKkN,OAAOZ,EAAOI,GAAU,OACtB,QAFJ,GASXS,uBACInN,KAAKoN,OAAOC,OAAO,CACf7L,KAAM,mBACNT,MAAO,aAEXf,KAAKoL,QAAQkC,QAAQ,CACjBlM,KAAM,aACNiK,MAAO,CACH7J,KAAMxB,KAAKsL,YAK3BhF,MAAO,CACHpE,SAAU,CACNqE,QAAS4C,GACDA,GAAMnJ,KAAKuN,qBAAqBpE,IAExC3C,MAAM,EACNgD,WAAW,K,YCnLnB,EAAS,WAAa,IAAIzJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACN,EAAG,MAAM,CAACM,YAAY,oDAAoD,CAACN,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,OAAO,CAACJ,EAAIc,GAAGd,EAAIe,GAAGf,EAAIQ,UAAUJ,EAAG,OAAO,CAACM,YAAY,YAAY,CAACV,EAAIc,GAAG,SAAWd,EAAIyN,SAA0azN,EAAImB,KAApaf,EAAG,MAAM,CAACM,YAAY,4CAA4C,CAAE,CAAC,IAAK,KAAK8I,SAASxJ,EAAIyB,MAAO,CAACrB,EAAG,OAAO,CAACO,GAAG,CAAC,MAAQX,EAAI0N,iBAAiB,CAAC1N,EAAIc,GAAG,WAAWV,EAAG,OAAO,CAACM,YAAY,aAAaV,EAAImB,KAAKf,EAAG,OAAO,CAACO,GAAG,CAAC,MAAQ,SAASC,GAAQZ,EAAI2N,mCAAoC,KAAQ,CAAC3N,EAAIc,GAAG,UAAUV,EAAG,OAAO,CAACM,YAAY,YAAYN,EAAG,OAAO,CAACO,GAAG,CAAC,MAAQX,EAAI4N,iBAAiB,CAAC5N,EAAIc,GAAG,YAAY,KAAed,EAAY,SAAE,CAACI,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAOhB,EAAIwE,KAAKX,OAAS,EAAGpB,WAAW,oBAAoB/B,YAAY,mDAAmD,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACV,EAAIc,GAAG,UAAUV,EAAG,MAAM,CAACM,YAAY,QAAQC,GAAG,CAAC,MAAQ,SAASC,GAAQZ,EAAI6N,UAAY7N,EAAI6N,YAAY,CAAG7N,EAAI6N,SAAuE,CAAC7N,EAAIc,GAAG,OAAOV,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,eAAzG,CAACN,EAAIc,GAAG,OAAOV,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,kBAA6E,KAAKF,EAAG,MAAM,CAACM,YAAY,sBAAsBV,EAAIuD,GAAIvD,EAAkB,gBAAE,SAAS8N,EAAKrK,GAAK,OAAOrD,EAAG,MAAM,CAACsD,IAAID,EAAI/C,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,0CAA0C,CAACN,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAG+M,EAAKC,YAAY,OAAS/N,EAAIyN,SAAoYzN,EAAImB,KAA9Xf,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACN,EAAG,OAAO,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAoB,GAAb8M,EAAK7L,KAAWQ,WAAW,mBAAmB/B,YAAY,SAASC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIgO,gBAAgBF,EAAMrK,MAAQ,CAACzD,EAAIc,GAAG,QAAQV,EAAG,OAAO,CAACM,YAAY,SAASC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIiO,gBAAgBH,EAAMrK,MAAQ,CAACzD,EAAIc,GAAG,YAAqBd,EAAIuD,GAAIuK,EAAgB,aAAE,SAASI,EAAWzK,GAAK,MAAO,CAACrD,EAAG,MAAM,CAACsD,IAAID,EAAI/C,YAAY,2CAA2C,CAACN,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACV,EAAIc,GAAGd,EAAIe,GAAGmN,EAAW7M,SAASjB,EAAG,MAAM,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAOhB,EAAiB,cAAEyC,WAAW,kBAAkB/B,YAAY,SAAS,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAGmN,EAAWC,YAAY/N,EAAG,MAAM,CAACM,YAAY,SAAS,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAGmN,EAAWE,gBAAehO,EAAG,MAAM,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAOhB,EAAiB,cAAEyC,WAAW,kBAAkB/B,YAAY,cAAc,CAACN,EAAG,OAAO,CAACJ,EAAIc,GAAG,OAAOd,EAAIc,GAAGd,EAAIe,GAAGf,EAAI4D,GAAG,WAAP5D,CAAmB8N,EAAKO,cAAc,QAAQ,MAAK,MAAM,CAACjO,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACV,EAAIc,GAAG,IAAId,EAAIe,GAAGf,EAAIsO,cAAc,QAAQlO,EAAG,mBAAmB,CAACE,MAAM,CAAC,QAAUN,EAAIuO,QAAQ,cAAc,KAAK,wBAAwB,IAAI5N,GAAG,CAAC,OAASX,EAAIwO,mBAAmBnM,MAAM,CAACrB,MAAOhB,EAAqC,kCAAEsC,SAAS,SAAUC,GAAMvC,EAAI2N,kCAAkCpL,GAAKE,WAAW,sCAAsC,CAACrC,EAAG,MAAM,CAACM,YAAY,yBAAyBJ,MAAM,CAAC,KAAO,eAAeK,GAAG,CAAC,MAAQX,EAAIyO,oBAAoBC,KAAK,eAAe,CAACtO,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,QAA2B,IAAM,QAAQF,EAAG,MAAM,CAACM,YAAY,SAAS,CAACV,EAAIc,GAAG,oBAAoBV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACV,EAAIc,GAAG,mBAAmBV,EAAG,QAAQ,CAAC2B,IAAI,gBAAgBzB,MAAM,CAAC,OAASN,EAAI2O,YAAY,KAAO,OAAO,KAAO,OAAO,GAAK,QAAQhO,GAAG,CAAC,OAASX,EAAI4O,0BAA0B,IACjjH,EAAkB,G,gDCyQP,GACfvN,KAAA,gBACAG,MAAA,CACAR,MAAA,CACAS,KAAAmD,MACAjD,YAAA,IAEAF,KAAA,CACAkJ,UAAAkE,GAAA,cAAArF,SAAAqF,GACApO,UAAA,GAEAgN,SAAA,CACAqB,OAAAlN,QACAD,SAAA,IAGA4C,SAAA,CACA+J,eACA,kBAAA9N,OAIAuO,gBACA,YAAAvF,SAAA,KAAA/H,OAEAuN,WACA,OAAApN,QAAA,KAAA4C,KAAAX,SAEArD,QACA,IAAAiB,EAAA,KAAAA,KACAjB,EAAA,GACA,OAAAiB,GACA,QACAjB,EAAA,OACA,MACA,QACAA,EAAA,OACA,MACA,QACAA,EAAA,OACA,MAEA,OAAAA,GAEAyO,iBACA,YAAApB,SAAA,KAAArJ,KACA,KAAAA,KAAAE,MAAA,OAGAK,UAAA,CACA8I,UAAA,EACAc,mBAAAO,KAAA,KACAvB,mCAAA,EACAY,QAAA,CACA,CAAAlN,KAAA,OAAA8N,MAAA,wBACA,CAAA9N,KAAA,OAAA8N,MAAA,yBAEA3K,KAAA,KAGAqG,UAEAuE,OAAAC,IAAA,yBAAAC,kBAGAF,OAAAC,IAAA,mBAAAE,wBAGAC,UACA,KAAAC,sBAGAzK,QAAA,CAEAyK,qBACA,MAAAhL,EAAA,KAAAzD,MACA4D,MAAAyB,QAAA5B,KAAA,KAAAD,KAAA,IAAAC,GAAAc,IAAAuI,IACA,IAAAO,EAAAP,EAAAO,YAEA,MADA,kBAAAA,MAAAqB,KAAAC,MAAAtB,IACA,IACAP,EACAO,mBAOAkB,sBAAAxK,GACA,IAAAA,EAAA,OACA,WAAA9C,GAAA8C,EAEA6K,EAAAhO,QAAAmD,EAAA8K,UAEA,IAAApM,EAAA,KAAAe,KAAAsL,UAAAC,GAAAH,EAAAG,EAAAF,WAAA9K,EAAA8K,SAAAE,EAAAC,SAAAjL,EAAAiL,QAEA/G,QAAAC,IAAA,wBAAAjH,EAAA8C,EAAA,KAAAP,KAAAf,GACAA,GAAA,EAEA,KAAAe,KAAA2B,OAAA1C,EAAA,MAAAsB,IAEA,KAAAP,KAAAwB,KAAA,IAAAjB,KAaAuK,iBAAAvK,GACA,kBAAAkL,EAAA,WAAA/B,EAAA,KAAAJ,EAAA,WAAAoC,GAAAnL,EACAkE,QAAAC,IAAA,mBAAA+G,EAAA/B,EAAAJ,EAAAoC,GACA,MAAAC,EAAA,KAAA3L,KAAA4L,KAAAL,KAAAF,WAAA/B,EAAAuC,IACA,GAAAF,EAAA,CACA,IAAA1M,EAAA,KAAAe,KAAAsL,UAAAC,KAAAF,WAAA/B,EAAAuC,IACA,kBAAAhC,GAAA,KAAA7J,KAAAf,GAEA,IAAA6M,EAAAjC,EAAA+B,KAAAG,KAAAF,KAAAnC,EAAAmC,IACA,GAAAC,EAAA,CACA,IAAAE,EAAAnC,EAAAyB,UAAAS,KAAAF,KAAAnC,EAAAmC,IACAG,GAAA,IACAnC,EAAAmC,GAAA,IACAnC,EAAAmC,GACArC,MAAA+B,EACA9B,MAAA6B,SAIA5B,EAAArI,KAAA,CACAqK,GAAAnC,EAAAmC,GACAhP,KAAA6M,EAAA7M,KACA8M,MAAA+B,EACA9B,MAAA6B,IAGA,KAAAQ,mBACA,CACA,MAAAC,EAAA,CACAzO,KAAA,EACA4N,SAAA/B,EAAAuC,GACAM,qBAAA7C,EAAA6C,qBACAC,kBAAA9C,EAAA8C,kBACAC,SAAA/C,EAAA+C,SACA9C,WAAAD,EAAAC,WACA+C,YAAAhD,EAAAgD,YACAzC,YAAA,CACA,CACAgC,GAAAnC,EAAAmC,GACAhP,KAAA6M,EAAA7M,KACA8M,MAAA+B,EACA9B,MAAA6B,KAIA,KAAAzL,KAAA,SAAAA,KAAAkM,KAIAlC,kBAAAuC,EAAAtN,GACA,OAAAA,GACA,OACA,KAAAuN,yBACA,MACA,OACA,KAAAtI,MAAAuI,cAAAC,QACA,QAMA,+BACA,IACA,MAAA9G,EAAA,CACAmB,OAAA,KAAA9J,MAEAwD,QAAAkM,eAAA/G,GACA,OAAAnF,EAAAgH,KAAA,CACA,UAAA1B,GAAAtF,EAAAF,KACAwF,EACA6G,eAAA7G,GACA,KAAA4C,OAAA,aAEA,MAAAnE,GACAC,QAAAC,IAAA,gEAAAF,KAKA,4BAAAZ,GACA,IAAAiJ,EAAAjJ,EAAAkJ,OAAAD,MACA,GAAAA,EAAAxN,OAAA,CACA,IAAA0N,EAAAF,EAAA,GACAjJ,EAAAkJ,OAAAtQ,MAAA,KACAiI,QAAAC,IAAA,qDAAAqI,SACA,KAAAC,iBAAAD,QAEA,KAAA7I,MAAAuI,cAAAjQ,MAAA,IAKA,uBAAAuQ,GACA,IAEA,MAAAE,QAAAC,eAAAH,GAEAtM,QAAA0M,eAAA,CACApG,OAAA,KAAA9J,KACA8P,KAAAE,EAAAlH,MAGA,OAAAtF,EAAAgH,KAAA,CACA,iBAAA2F,EAAA,oBAAAC,EAAA,IAAA5M,EAAAF,KACA6M,EAAA/N,OAEA,KAAAiO,iBAAAF,EAAAC,GACAA,EAAAhO,SACA,KAAAW,KAAA,IACA,KAAAA,QACAqN,KAIA,MAAA7I,GACAC,QAAAC,IAAA,+DAAAF,KAOAyF,qBAEA,KAAAtB,OAAA,iBAIA2E,iBAAAC,EAAAtN,GACA,KAAAuN,QAAApJ,QAAA,CACAqJ,QAAAF,EAAAxM,IAAA,CAAAuI,EAAArK,IAAA,GAAAA,EAAA,KAAAqK,EAAAoE,OAAAhD,KAAA,QACAiD,kBAAA,OACAC,mBAAA,uBACAC,iBAAA,aACAC,MAAA,KACA,KAAA9N,KAAA,IACA,KAAAA,QACAC,MAMAwJ,gBAAAH,EAAArK,GACA,IAAA8O,EAAAzE,EAAAC,WACA,KAAAiE,QAAApJ,QAAA,CACApI,MAAA,UAAAA,MACAyR,QAAA,WAAAM,QACAJ,kBAAA,IACAC,mBAAA,UACAC,iBAAA,MACAC,MAAA,KACA,KAAA9N,KAAA2B,OAAA1C,EAAA,MAKAuK,gBAAAF,GACA,KAAAT,OAAAC,OAAA,CACA7L,KAAA,gBACAT,MAAA,UAGA,KAAA6H,UAAA,KACA,KAAAwC,QAAArF,KAAA,CACA3E,KAAA,QACAiK,MAAA,CACArJ,KAAA,IACAR,KAAA,KAAAA,KACA+Q,QAAA,KAAAC,OAAAnH,MAAArJ,KACAyQ,KAAAhD,KAAAiD,UAAA7E,SAOAF,iBACA,KAAAvC,QAAArF,KAAA,CACA3E,KAAA,eACAiK,MAAA,CACAC,OAAA,KAAA9J,SAMAiM,iBAEA,KAAAL,OAAAC,OAAA,CACA7L,KAAA,gBACAT,MAAA,UAGA,KAAA6H,UAAA,KACA,KAAAwC,QAAArF,KAAA,CACA3E,KAAA,QACAiK,MAAA,CACA7J,KAAA,KAAAA,YAOAmR,QAAA,CAEAC,SAAApO,GACA,IAAAqO,EAAA,EACA,OAAArO,EAAAsO,OAAA,CAAAC,EAAAC,IAAAD,EAAAlO,OAAAmO,EAAA9E,OAAArJ,OAAAmO,EAAA7E,OAAA0E,KAGAvM,MAAA,CACA/B,KAAA,CACAgC,QAAA/B,GACAG,MAAAyB,QAAA5B,MAAAZ,QACA,KAAAqP,WAAA,eAAArS,MAAA,QAAA4D,MAMA0O,gBACA/D,OAAAgE,KAAA,qBACAhE,OAAAgE,KAAA,iBC7lBoX,ICQhX,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCqBA,GACf/R,KAAA,aACAmJ,OAAA,CACA6I,GAEA/R,WAAA,CACAgS,iBAEAvO,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA4H,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WACA7Q,cAAA,KAAA2K,OAAAmG,MAAAC,KAAA/Q,cACAM,iBAAA,KAAAqK,OAAAmG,MAAAC,KAAAzQ,iBAGA0Q,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAf,KAAA,GACAqB,SAAA,GACAC,OAAA,GACAH,aAAA,GACAK,SAAA,GACAJ,WAAA,GACAF,YAAA,GACAuJ,aAAA,GACAC,UAAA,KAKAtB,UACA,KAAA8I,yBAGA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA7N,OAAAuC,EAAAvC,OACA,KAAAf,KAAAsD,EAAAtD,KAEA,MAAAqS,EAAA/O,EAAAgP,YAEA,KAAAnR,aAAA,GAAAkC,OAAAgP,EAAAlR,cACA,KAAAK,SAAA6Q,EAAA7Q,SAEA6Q,EAAAjR,aACA,KAAAA,WAAAiR,EAAAjR,YAGA,KAAAF,YAAAoC,EAAApC,YAAA4C,IAAAwK,IAAA,CACA9N,KAAA,KACA8N,EACA1B,YAAAqB,KAAAC,MAAAI,EAAA1B,gBAGAzJ,MAAAyB,QAAAtB,EAAAgP,YAAAC,cAAAjP,EAAAgP,YAAAC,YAAAnQ,SACA,KAAAd,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKArP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAMA,KAAAvL,UAAA,KACA,KAAAH,MAAA2L,gBAAA5E,qBACA,KAAA/G,MAAA4L,SAAA7E,qBACA,KAAA/G,MAAA6L,YAAA9E,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAGAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAf,KAAA,KAAAA,KACAmB,aAAA,KAAAA,aACAK,SAAA,KAAAA,SACAJ,WAAA,KAAAA,WACAF,YAAA,KAAAA,YACAuJ,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGAnM,EAAA,KAAAA,OACA6B,MAAAyB,QAAAtD,MAAAc,SACA+Q,EAAA7R,SAAAwC,IAAAsP,KAAAtK,KAAA2E,KAAA,MAGA,IAAA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAGAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,cACA,YACA,mBACA,mBACA,iBAEAC,EAAA,CACA,SACA,OAEA,eACA,YAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,QACA,CAAAA,EAAA2H,EAAAC,KAEA,GAAA5H,EAAAtD,MAAAmD,MAAAyB,QAAAtB,EAAApC,cAAAoC,EAAApC,YAAAkB,SACA6I,GAAA,EACAC,EAAA,eAEA,CAAAD,EAAAC,MAIA,eAAA5H,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,MAKA9F,MAAA,CACA5D,YAAA,CACA6D,QAAA6B,GAGA,GAAAzD,MAAAyB,QAAAgC,MAAAxE,QAAA,QAAApC,KAAA,CACA,IAAAqR,EAAA,EACA,UAAAhF,KAAAzF,EAAA,CACA,IAAA4M,EAAA,EACAnC,GAAAhF,EAAAO,YAAA0E,OAAA,CAAAC,EAAAC,IAAAD,EAAAlO,OAAAmO,EAAA9E,OAAArJ,OAAAmO,EAAA7E,OAAA6G,GAEA,KAAArS,aAAA,GAAAkQ,IAGArM,MAAA,KCpOiX,ICO7W,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIzG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIkV,UAAU,eAAiB,OAAO,cAAgB,MAAM7S,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAa,UAAEsC,SAAS,SAAUC,GAAMvC,EAAImV,UAAU5S,GAAKE,WAAW,eAAerC,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIuT,WAAW,eAAiB,OAAO,cAAgB,MAAMlR,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIoV,KAAK7S,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,aAAa,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIqV,OAAO9S,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,aAAa,YAAY+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAAC2B,IAAI,UAAUM,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACj5C,GAAkB,GC+BP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEAtO,UAAA,CACAoG,UAAA,OACAQ,eAAA,OACA4H,WAAA,GACA2B,UAAA,GAGAxB,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAf,KAAA,GACA2T,KAAA,GACAE,OAAA,GACAH,UAAA,GACAE,OAAA,GACAvS,SAAA,GAEAoJ,aAAA,GACAC,UAAA,KAGAtB,UAEA,KAAA0I,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WACA,KAAA2B,UAAA,KAAA7H,OAAAmG,MAAAC,KAAA8B,cAEA,KAAA5B,yBAEA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OACA,MAAAuI,EAAA/O,EAAAgP,YAEAnP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKA,KAAA5R,OAAAsR,EAAAtR,OACA,KAAAf,KAAAqS,EAAArS,KACA,KAAA2T,KAAAtB,EAAAsB,KACA,KAAAE,OAAAxB,EAAAwB,OACA,KAAAH,UAAArB,EAAAqB,UACA,KAAAE,OAAAvB,EAAAuB,OAGA,KAAAxM,UAAA,KACA,KAAAH,MAAA8M,QAAA/F,wBAOArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAGAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAf,KAAA,KAAAA,KACA2T,KAAA,KAAAA,KACAE,OAAA,KAAAA,OACAH,UAAA,KAAAA,UACAE,OAAA,KAAAA,OACAnJ,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGA4F,EAAA,KAAAhS,SAOA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAGAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,YACA,iBACA,YACA,eAEAC,EAAA,CACA,OACA,YACA,OACA,UAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,OCpKiX,MCO7W,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,QAAQ,MAAQN,EAAIyV,YAAY,cAA2B,YAAbzV,EAAIiC,MAAoBtB,GAAG,CAAC,MAAQX,EAAI0V,qBAAqB,MAAQ1V,EAAI2V,qBAAqBvV,EAAG,kBAAkB,CAAC2B,IAAI,mBAAmBzB,MAAM,CAAC,KAAO,IAAI,SAAwB,YAAbN,EAAIiC,MAAoBI,MAAM,CAACrB,MAAOhB,EAAe,YAAEsC,SAAS,SAAUC,GAAMvC,EAAI4V,YAAYrT,GAAKE,WAAW,iBAAiBrC,EAAG,UAAU,CAAC2B,IAAI,cAAcM,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,WAAWzB,MAAM,CAAC,MAAQ,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,SAAS,aAAa,YAAY+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IAC/kC,GAAkB,GC8BP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA/R,WAAA,CACAgS,iBAEA/O,SAAA,CACAkR,cACA,YAAAI,YAAAhS,OAAA,MACA,IAEAiS,WACA,IAAArR,EAAA,KAAAoR,YACA,OAAApR,EAAAZ,OACAY,EAAAc,IAAAuI,KAAAuC,IAAAnB,KAAA,KADA,IAIAnK,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA4H,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WAGAG,IAAA,SACArD,GAAA,GACA9E,OAAA,EACAzI,SAAA,GACAC,OAAA,GACAuS,OAAA,GAGAM,YAAA,GAEA1J,aAAA,GACAC,UAAA,GAEA0J,YAAA,KAIAhL,UACA,KAAA8I,wBACAvE,OAAAC,IAAA,8BAAA0G,yBAGA/Q,QAAA,CAEA+Q,uBAAAtR,EAAAxC,EAAA,GAGAwC,IAAAc,IAAA,CAAAuI,EAAArK,KAAA,IACAqK,EACA7L,OACA+N,OAAA,GAAA/H,KAAA+N,SAAAvS,OAGA,KAAAoS,YAAA,IAAApR,GAEA,KAAAoE,UAAA,KACApE,EAAAsB,QAAA+H,IACAA,EAAAnL,YAAAoD,QAAAgK,IACA,KAAArH,MAAAuN,iBAAA1G,sBAAA,IACAQ,EACAmG,WAAA,eACAC,YAAArI,EAAAkC,gBAQAxC,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OAEA3G,MAAAyB,QAAAtB,EAAAgP,YAAAC,cAAAjP,EAAAgP,YAAAC,YAAAnQ,SACA,KAAAd,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKArP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAMA,KAAAkB,OAAAvQ,EAAAgP,YAAAuB,OAEA,IAAAvF,EAAAhL,EAAA6Q,YAAArQ,IAAAwK,IAAA,CACA9N,KAAA,KACA8N,EACA1B,YAAAqB,KAAAC,MAAAI,EAAA1B,iBACA,GAEA,KAAAuH,YAAA7F,EAGAhL,EAAAqR,QAOA,KAAAP,YAAA,CACAxF,GAAAtL,EAAAqR,MAAAC,WAKA,KAAAxN,UAAA,KACA,KAAAH,MAAA4L,SAAA7E,qBACA,KAAA/G,MAAA6L,YAAA9E,qBACA,KAAA/G,MAAAuN,iBAAAxG,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACAuK,SAAA,KAAAA,SACAR,OAAA,KAAAA,OACAM,YAAA,KAAAA,YAEA1J,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGAnM,EAAA,KAAAA,OACA6B,MAAAyB,QAAAtD,MAAAc,SACA+Q,EAAA7R,SAAAwC,IAAAsP,KAAAtK,KAAA2E,KAAA,MAGA,IAAA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,oBAEAC,EAAA,CACA,eAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,KAIAqJ,uBAEA,oBAAAzT,KAAA,OACA,IAAAqJ,EAAA,GACA,KAAAwK,WACAxK,EAAAgL,IAAA,KAAAR,UAEA,KAAAzK,QAAArF,KAAA,CACA3E,KAAA,gBACAiK,WAGAqK,oBACA,IAEA,IAAAC,EAAA,SAAAA,aACAW,EAAA,KAAAV,YAAAtQ,IAAAiR,KAAAxG,QAAAwG,EAAAnG,IACAoG,EAAA,GAEAb,EAAA7P,QAAA2Q,IACAH,EAAA/M,SAAAkN,EAAAP,cAAAM,EAAAzQ,KAAA0Q,KAGA,KAAAd,YAAA,IAAAa,GACA,KAAAhG,eACA,KAAA5H,UAAA,KACA,KAAAgN,YAAA,GACA,KAAAnN,MAAAuN,iBAAAxG,uBAEA,MAAAzG,GACAC,QAAAC,IAAA,2DAAAF,KAKA2N,kBAAAlS,GACA,IAAAmS,EAAA,SAAAf,aACAgB,EAAAD,EAAArR,IAAAuI,KAAAkC,QAAAlC,EAAAuC,IAEAyG,EAAArS,EAAAsS,OAAAjJ,GAAA,iBAAAA,EAAAoI,YAAA3Q,IAAAuI,KAAAqI,aACAa,EAAA,QAAAC,IAAAH,IAEAE,EAAAnT,OACAmT,EAAAjR,QAAAmR,IACA,IAAAL,EAAArN,SAAA0N,GAAA,CACA,IAAAzT,EAAAoT,EAAA/G,UAAAO,MAAA6G,GACAzT,GAAA,GACAmT,EAAAzQ,OAAA1C,EAAA,MAKAmT,EAAA,GAGA,KAAAf,YAAA,IAAAe,GAEA,KAAAnG,iBAIA0C,gBACA/D,OAAAgE,KAAA,8BAAA2C,yBAEAxP,MAAA,CACAqP,YAAA,CACApP,QAAA/B,EAAA0S,GAEA1S,EAAAZ,QAAA,KAAAgS,YAAAhS,OACA,KAAA8S,kBAAAQ,GACA,KAAAtB,YAAA,IAEApP,MAAA,KC3SiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,kBAAkB,CAAC2B,IAAI,mBAAmBzB,MAAM,CAAC,KAAO,KAAK+B,MAAM,CAACrB,MAAOhB,EAAa,UAAEsC,SAAS,SAAUC,GAAMvC,EAAIoX,UAAU7U,GAAKE,WAAW,eAAerC,EAAG,UAAU,CAAC2B,IAAI,UAAUzB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,SAAS,aAAa,YAAY+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACx3B,GAAkB,GC0BP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA/R,WAAA,CACAgS,iBAEAvO,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA4H,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WAGAG,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAM,SAAA,GACAwS,OAAA,GAEA8B,UAAA,GAEAlL,aAAA,GACAC,UAAA,KAKAtB,UACA,KAAA8I,yBAGA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OAEA,MAAAuI,EAAA/O,EAAAgP,YACAnP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKA,KAAA5R,OAAAsR,EAAAtR,OACA,KAAA8S,OAAAxB,EAAAwB,OAEA,KAAA8B,UAAArS,EAAAqS,UAAA7R,IAAAwK,IAAA,CACA9N,KAAA,KACA8N,EACA1B,YAAAqB,KAAAC,MAAAI,EAAA1B,iBACA,GAEA,KAAAxF,UAAA,KACA,KAAAH,MAAA8M,QAAA/F,qBACA,KAAA/G,MAAAuN,iBAAAxG,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACA8S,OAAA,KAAAA,OACA8B,UAAA,KAAAA,UACAlL,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MASA,OALA,KAAApM,SAAAe,SACA+Q,EAAA9R,SAAA,KAAAA,SAAAyC,IAAA6O,KAAA7J,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,kBAEAC,EAAA,CACA,aAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,OCpJiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,MAAM,MAAQN,EAAIqX,gBAAgB,cAAcrX,EAAIsX,WAAW3W,GAAG,CAAC,MAAQ,SAASC,GAAqB,YAAbZ,EAAIiC,MAAqBjC,EAAIuX,yBAAgC,MAAQvX,EAAIwX,yBAAyBpX,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,QAAQ,CAACiC,MAAM,CAACrB,MAAOhB,EAAa,UAAEsC,SAAS,SAAUC,GAAMvC,EAAIyX,UAAUlV,GAAKE,WAAW,eAAgBzC,EAAa,UAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,MAAQN,EAAI6C,WAAW,cAAc7C,EAAIsX,aAAalX,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,gBAAiBzC,EAAa,UAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,MAAQN,EAAI0X,SAAS,cAAc1X,EAAIsX,aAAalX,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI0X,SAASnV,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,cAAcM,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,WAAWzB,MAAM,CAAC,MAAQ,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAazC,EAAa,UAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,KAAK,UAAW,EAAK,MAAQN,EAAI2X,oBAAoB3X,EAAIyB,MAAM,cAAczB,EAAIsX,aAAalX,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,KAAK,UAAW,EAAK,KAAON,EAAI4X,QAAQ,eAAiB,OAAO,cAAgB,MAAMvV,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,UAAuB,GAAZzC,EAAIyB,KAAWrB,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,UAAU,UAAW,EAAK,YAAc,EAAE,cAAgB,GAAG+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI6X,OAAOtV,GAAKE,WAAW,YAAYzC,EAAImB,KAAKf,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,SAAWsB,QAAQ5B,EAAI6X,QAAQ,aAAa,WAAW,YAAc,WAAWxV,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IAC70E,GAAkB,GCDlB,GAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,MAAM,CAACM,YAAY,4CAA4C,CAACN,EAAG,OAAO,CAACM,YAAY,cAAc,CAACV,EAAIc,GAAG,UAAUV,EAAG,OAAO,CAACM,YAAY,aAAaC,GAAG,CAAC,MAAQX,EAAI8X,oBAAoB,CAAC9X,EAAIc,GAAG,YAAcd,EAAI+X,SAASlU,OAA2E,CAACzD,EAAG,MAAM,CAACM,YAAY,mBAAmBV,EAAIuD,GAAIvD,EAAgB,cAAE,SAAS8N,EAAKrK,GAAK,OAAOrD,EAAG,MAAM,CAACsD,IAAID,EAAI/C,YAAY,cAAc,CAACN,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,OAAO,CAACJ,EAAIc,GAAGd,EAAIe,GAAGf,EAAIgY,aAAalK,EAAKmK,WAAW7X,EAAG,OAAO,CAACJ,EAAIc,GAAGd,EAAIe,GAAGf,EAAI4D,GAAG,gBAAP5D,CAAwB8N,SAAY1N,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,OAAO,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAsB,QAAf8M,EAAKmK,MAAiBxV,WAAW,yBAAyB/B,YAAY,SAASC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIgO,gBAAgBF,EAAMrK,MAAQ,CAACzD,EAAIc,GAAG,QAAQV,EAAG,OAAO,CAACM,YAAY,SAASC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIiO,gBAAgBH,EAAMrK,MAAQ,CAACzD,EAAIc,GAAG,YAAYV,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACV,EAAIc,GAAGd,EAAIe,GAAG+M,EAAKzM,gBAAe,GAAIrB,EAAI+X,SAASlU,OAAS,EAAGzD,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,OAAO,CAACO,GAAG,CAAC,MAAQX,EAAIkY,iBAAiB,CAAClY,EAAIc,GAAGd,EAAIe,GAAGf,EAAImY,WAAa,KAAO,SAAUnY,EAAc,WAAEI,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,GAAG,KAAO,YAAYK,GAAG,CAAC,MAAQX,EAAIkY,kBAAkB9X,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,GAAG,KAAO,cAAcK,GAAG,CAAC,MAAQX,EAAIkY,mBAAmB,GAAGlY,EAAImB,MAA9wC,CAACf,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACV,EAAIc,GAAG,iBAAkuCV,EAAG,mBAAmB,CAACE,MAAM,CAAC,QAAUN,EAAIuO,QAAQ,cAAc,KAAK,wBAAwB,IAAI5N,GAAG,CAAC,OAASX,EAAIoY,2BAA2B/V,MAAM,CAACrB,MAAOhB,EAAyB,sBAAEsC,SAAS,SAAUC,GAAMvC,EAAIqY,sBAAsB9V,GAAKE,WAAW,4BAA4B,IACn6D,GAAkB,G,yBCkJtB,MAAAuV,GAAA,CACA,cACA,YAGe,QACf3W,KAAA,QACAkD,SAAA,CACA+T,eACA,YAAAH,WAAA,SAAAJ,UACA,SAAAA,SAAArT,MAAA,QAGAlD,MAAA,CACAR,MAAA,CACAS,KAAAmD,MACA2T,SAAA,IAGA1N,UACA2N,OAAAnJ,IAAA,wBAAAoJ,6BAEA1T,OACA,OACAiT,gBACAG,YAAA,EACAE,uBAAA,EACA9J,QAAA,EAAAlN,KAAA,OAAAI,KAAA,OAAAJ,KAAA,OAAAI,KAAA,QACAsW,SAAA,KAYAvI,UACA,KAAAkJ,eAEA1T,QAAA,CAGAyT,2BAAA1T,GACA,KAAA4T,mBAAA5T,IAIA2T,cACA9T,MAAAyB,QAAA,KAAArF,QAAA,KAAAA,MAAA6C,SACA,KAAAkU,SAAA,SAAA/W,OAAAuE,IAAAC,IACA,IAAAoT,EAAA,IACApT,EACAyS,MAAAzS,EAAAqS,OAAA,gBAGA,OADArS,IAAAqS,OAAA,2BAAArS,EAAA4P,KACAwD,MAIA,gCAAA9K,GACA,WAAArM,GAAAqM,EACA,UAAArM,EACA,IACA,MAAAsD,QAAAG,eAAA,CACA1E,MAAA,UACA2E,UAAA,EACAC,SAAA,EACAC,UAAA,WAGAC,YAAA,KAAAyS,SAAAhB,OAAAvR,GAAA,WAAAA,EAAAyS,OAAA1S,IAAAC,KAAAS,QAEAP,kBAAA,EACAC,sBAAA,EACAC,QAAA,IAEA,KAAAiT,oBAAA9T,GACA,MAAAsH,GACApD,QAAAC,IAAA,MAAAmD,OAEA,QAAA5K,GACA,KAAA4J,QAAArF,KAAA,CACA3E,KAAA,kBAMA6W,iBACA,KAAAC,YAAA,KAAAA,YAIAnK,gBAAA8K,EAAArV,GACA,YAAAwU,GAAAa,EACA7P,QAAAC,IAAA,kBAAA4P,EAAArV,GACA,QAAAwU,GACA,KAAA5M,QAAArF,KAAA,CACA3E,KAAA,eACAiK,MAAA,CACA7H,IAAAqV,EAAArV,IACApC,KAAAyX,EAAAzX,KACAiU,OAAAwD,EAAAxD,OACAyD,SAAA,QAOA9K,gBAAA6K,EAAArV,GACAuV,QAAApQ,QAAA,CACApI,MAAA,OACAyR,QAAA,YAAA6G,EAAAzX,UACA4X,KAAA,KACA,KAAAlB,SAAA5R,OAAA1C,EAAA,MAKAqU,oBACA,KAAAO,uBAAA,GAIAM,mBAAA5T,GACA,QAAAA,EAAAgU,SAAA,CACA,IAAAG,EAAA,KAAAnB,SAAAjI,UAAAhC,KAAArK,MAAAsB,EAAAtB,KACA,KAAAsU,SAAA5R,OAAA+S,EAAA,MACA,KAAAnB,SAAAmB,MACAnU,SAGA,KAAAgT,SAAA/R,KAAA,CACAvC,IAAA,GAAAwE,KAAA+N,MACAiC,MAAA,SACAlT,KAMA8T,oBAAA9T,GACAkE,QAAAC,IAAA,kBAAAnE,GACA,YAAAe,GAAAf,EACAe,EAAAC,QAAA+H,IAEA,IAAAqL,EAAA,KAAApB,SAAAjI,UAAAtK,KAAAS,QAAA6H,EAAA7H,QACAkT,GAAA,EACA,KAAApB,SAAAoB,GAAA,IACA,KAAApB,SAAAoB,MACArL,GAGA,KAAAiK,SAAA/R,KAAA,CACAvC,IAAAwE,KAAA+N,MACAiC,MAAA,YACAnK,MAIA,KAAAjN,MAAA,aAAAkX,YAGA5E,gBACAqF,OAAApF,KAAA,kCAAAqF,6BAEA7F,QAAA,CAEAwG,cAAAtL,GACA,YAAAmK,GAAAnK,EACA,iBAAAmK,GAAAnK,EAAAuL,eACA,IAAAvL,EAAAuL,kBACA,QAAApB,GAAAnK,EAAAwH,OACA,IAAAxH,EAAAwH,UAEA,KAGA/O,MAAA,CACAwR,SAAA,CACAvR,QAAA4C,GACAA,EAAAvF,QACA,KAAAhD,MAAA,QAAAuI,OC9U4W,MCQxW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCmCA,IACf/H,KAAA,aAGAmJ,OAAA,CACA6I,GAGA/R,WAAA,CACAgY,UAEA/U,SAAA,CACA+S,YACA,uBAAArV,SAEAsX,gBAAA,QACA,QACA,gBAEAC,gBAAA,QACA,yBAGAzU,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA8N,SAAA,EACA7B,QAAA,KAAAvK,OAAAmG,MAAAC,KAAAiG,iBAGAlN,YAAA,CACA,SACA,aACA,WACA,QAKAkH,IAAA,SACAnI,OAAA,EACA8E,QAAAzF,EACApI,OAAA,GACAK,WAAA,GACA6U,SAAA,GACAjW,UAAAmJ,EAEA9H,SAAA,GACAC,OAAA,GACAuS,OAAA,GACAuC,OAAA,EAIAJ,UAAA,GACAvL,aAAA,GACAC,UAAA,GAGAwN,cAAA,GACAtC,gBAAA,KAIA,gBACA,KAAAuC,OAGA,KAAAC,QACA,KAAAF,cAAA,KAAAG,SAAArU,OACA,KAAA4R,gBAAA,KAAAyC,SAAAzY,OAGA2D,QAAA,CACA4U,OACA,KAAAjG,yBAIAnG,qBAAAzI,GACA,kBACAgP,EAAA,SACAgG,GACAhV,GACA,SACA2S,EAAA,OACAG,EAAA,OACArV,EAAA,OACA8S,EAAA,WACAzS,EAAA,KACApB,GACAsS,EAEAH,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GAEA,KAAAoH,UAAAsC,EACA,KAAAvX,SACA,KAAAK,aACA,KAAA6U,WACA,KAAAjW,OACA,KAAA6T,SACA,KAAAuC,SAEA9S,EAAAiV,aACA,KAAAL,cAAA5U,EAAAiV,WAAAvU,OACA,KAAA4R,gBAAAtS,EAAAiV,WAAA3Y,MAGAuD,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiR,EAAAjR,SAAAwG,MAAA,KAAA/D,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKAxP,MAAAyB,QAAAtB,EAAAgP,YAAAC,cAAAjP,EAAAgP,YAAAC,YAAAnQ,SACA,KAAAd,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKA,KAAApL,UAAA,KACA,KAAAH,MAAA4L,SAAA7E,qBACA,KAAA/G,MAAA6L,YAAA9E,wBAQArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,4BACA,KAAAyL,SAAAvK,KAEA,eAAArF,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,KAGAqI,SAAA3P,GACA,IAAAwH,EAAA,CACA,cACA,kBACA,gBACA,YACA,eAEAC,EAAA,CACA,OACA,aACA,WACA,UAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,QACA,CAAAA,EAAA2H,EAAAC,KAEA,GAAA5H,EAAAtD,MAAA,UAAA+H,SAAA9H,OAAAqD,EAAA8S,WACAnL,GAAA,EACAC,EAAA,UAEA,CAAAD,EAAAC,MAGA6H,kBACA,IAAA3I,EAAA,GACA,IACAA,EAAA,CACA6H,IAAA,KAAAA,IACAnI,OAAA,EACA/I,OAAA,KAAAA,OACAK,WAAA,KAAAA,WACA6U,SAAA,KAAAA,SACAjW,KAAA,KAAAA,KACAqB,SAAA,GACAC,OAAA,GACAuS,OAAA,KAAAA,OACAuC,OAAA,KAAAA,OACAJ,UAAA,GACAvL,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACAyK,cAAA,KAAAA,eAGA,IAAA5W,EAAA,KAAAA,OACA6B,MAAAyB,QAAAtD,MAAAc,SACAgI,EAAA9I,SAAAwC,IAAAsP,KAAAtK,KAAA2E,KAAA,MAIA,IAAA4F,EAAA,KAAAhS,SACA8B,MAAAyB,QAAAyO,MAAAjR,SACAgI,EAAA/I,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGAtK,MAAAyB,QAAA,KAAAoR,YAAA,KAAAA,UAAA5T,SACAgI,EAAA4L,UAAA,KAAAA,UAAAlS,IAAAuI,IAAA,CACA+J,OAAA,WAAA/J,EAAAmK,MAAA,IACA5W,KAAAyM,EAAAzM,KACA+T,KAAA,WAAAtH,EAAAmK,MAAAnK,EAAAuL,eAAAvL,EAAAwH,OACA2E,QAAAnM,EAAA7H,QAAA6H,EAAAmM,SAAA,OAIA,KAAA5J,KAAAxE,EAAAwE,GAAA,KAAAA,IAEA,MAAArH,GACAC,QAAAC,IAAA,2DAAAF,GAEA,OAAA6C,GAIA,8BACA,IACA,MAAA5G,QAAAC,eAAA,CACA1E,MAAA,WACA2E,UAAA,EACAC,SAAA,EACAC,UAAA,WACAK,kBAAA,EACAC,sBAAA,EACAC,QAAA,EACAC,eAAA,IAEA,IAAAC,EAAAb,EAAAa,MACA,GAAAA,EAAAjC,OAAA,CACA,SAAAxC,EAAA,OAAA4E,GAAAH,EAAA,GACA,KAAA6T,cAAA1T,EACA,KAAAoR,gBAAAhW,OACA,KAAA8L,OAAA,eACA,MAAAnE,GACA,WAAAA,EAAAkR,cACA,KAAA/M,OAAAnE,EAAAiJ,WAIAuF,wBACA,KAAAmC,cAAA,GACA,KAAAtC,gBAAA,KAGA9Q,MAAA,CACA9E,KAAA,CACA+E,QAAA6B,EAAA8R,GACA9R,OAAA8R,GACA,KAAAxG,sBAAA,CACA5H,UAAA1D,KAIAoB,WAAA,KC1UiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,MAAM,MAAQN,EAAIqX,gBAAgB,cAA2B,YAAbrX,EAAIiC,MAAoBtB,GAAG,CAAC,MAAQ,SAASC,GAAqB,YAAbZ,EAAIiC,MAAqBjC,EAAIuX,yBAAgC,MAAQvX,EAAIwX,yBAAyBpX,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIoa,oBAAoB,eAAiB,OAAO,cAAgB,MAAM/X,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,UAAwB,YAAbzC,EAAIiC,KAAoB7B,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,MAAQN,EAAI6C,WAAW,cAA2B,YAAb7C,EAAIiC,QAAsB7B,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,UAAS,GAAM+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,gBAA8B,YAAbzC,EAAIiC,KAAoB7B,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,MAAQN,EAAI0X,SAAS,cAA2B,YAAb1X,EAAIiC,QAAsB7B,EAAG,SAAS,CAAC2B,IAAI,kBAAkBzB,MAAM,CAAC,MAAQ,SAAS,UAAW,EAAK,UAAS,GAAM+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI0X,SAASnV,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,UAAU,YAAc,WAAW,UAAW,EAAK,aAAa,UAAU+B,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIqJ,KAAK9G,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,KAAK,UAAW,EAAK,aAAa,WAAW,UAAY,KAAK+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAAC2B,IAAI,cAAczB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,WAAWzB,MAAM,CAAC,MAAQ,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,SAAS,aAAa,WAAW,YAAc,4BAA4B+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAAC2B,IAAI,eAAezB,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACzuE,GAAkB,GC6CP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA9O,SAAA,IACAgV,gBAAA,QACA,QACA,gBAEAA,gBAAA,QACA,oCACA,uBAGAxU,OACA,OACAoG,UAAA,OACAQ,eAAA,OAGA+H,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAf,KAAA,GACAqB,SAAA,GACAC,OAAA,GACAuS,OAAA,GACAzS,WAAA,GACA6U,SAAA,GACA2C,SAAA,GACAC,OAAA,GACAjR,KAAA,GACA6C,aAAA,GACAC,UAAA,GAGAwN,cAAA,GACAtC,gBAAA,GAGAtL,UAAA,KAIAlB,UAEA,IAAApJ,EAAA,KAAAgR,OAAAnH,MAAAiP,QACA7H,EAAA,UAAAD,OAAAnH,MAAAoH,KACAA,GAAAjR,EAIA,KAAAA,OAHA,KAAA4J,QAAAkC,QAAA,CACAlM,KAAA,gBAKA,KAAAwY,QACA,KAAAF,cAAA,KAAAG,SAAArU,OACA,KAAA4R,gBAAA,KAAAyC,SAAAzY,MAGA,KAAAuY,QAGA5U,QAAA,CACA4U,OACA,KAAAjG,yBAGA6G,uBAAA/Y,GACAwH,QAAAC,IAAA,wDAAAzH,IAIA+L,qBAAAzI,GACA,kBAAAgP,GAAAhP,EACAkE,QAAAC,IAAA,yDAAAnE,GAEA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GAEA,KAAA7N,OAAAuR,EAAAvR,OACA,KAAAf,KAAAsS,EAAAtS,KACA,KAAA6T,OAAAvB,EAAAuB,OACA,KAAAzS,WAAA,GAAAkR,EAAAlR,cAAAkR,EAAAsG,WACA,KAAA3C,SAAA,GAAA3D,EAAA2D,YAAA3D,EAAAuG,SACA,KAAAD,SAAAtG,EAAAsG,SACA,KAAAC,OAAAvG,EAAAuG,OACA,KAAAjR,KAAA0K,EAAA1K,KAEAtE,EAAAiV,aACA,KAAAL,cAAA5U,EAAAiV,WAAAvU,OACA,KAAA4R,gBAAAtS,EAAAiV,WAAA3Y,MAGAuD,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiR,EAAAjR,SAAAwG,MAAA,KAAA/D,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKAxP,MAAAyB,QAAAtB,EAAAgP,YAAAC,cAAAjP,EAAAgP,YAAAC,YAAAnQ,SACA,KAAAd,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKA,KAAApL,UAAA,KACA,KAAAH,MAAA4L,SAAA7E,qBACA,KAAA/G,MAAA6L,YAAA9E,wBAOArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAGAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAf,KAAA,KAAAA,KACA6T,OAAA,KAAAA,OACAjM,KAAA,KAAAA,KACA6C,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACAyK,cAAA,KAAAA,eAEA,QAAA9W,WAAA,CACA,MAAAqF,EAAAuS,GAAA,KAAA5X,WAAAyG,MAAA,KACAsL,EAAA/R,WAAAqF,EACA0M,EAAAyF,SAAAI,EAEA,QAAA/C,SAAA,CACA,MAAAxP,EAAAuS,GAAA,KAAA/C,SAAApO,MAAA,KACAsL,EAAA8C,SAAAxP,EACA0M,EAAA0F,OAAAG,EAGA,IAAA1X,EAAA,KAAAA,OACA6B,MAAAyB,QAAAtD,MAAAc,SACA+Q,EAAA7R,SAAAwC,IAAAsP,KAAAtK,KAAA2E,KAAA,MAGA,IAAA4F,EAAA,KAAAhS,SAOA,OANA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IAEAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,YACA,kBACA,gBACA,aAEAC,EAAA,CACA,OACA,aACA,WACA,UAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,KAIAqO,aAAAC,EAAAC,GACA,MAAAC,EAAAC,GAAAH,EAAArR,MAAA,MACAyR,EAAAC,GAAAJ,EAAAtR,MAAA,KACA,IAAA2R,EAAA,IAAAhT,KAAA4S,GACAK,EAAA,IAAAjT,KAAA8S,GACAI,EAAAD,EAAAE,UAAAH,EAAAG,UACA,KAAAD,GAAA,GAUA,SAVA,CACA,IAAAE,EAAAF,EAAA,MACA,UAAAL,GAAA,OAAAE,GAAA,OAAAF,GAAA,OAAAE,EACA,UAAAK,GAAA,IACA,UAAAP,GAAA,OAAAE,EACA,SAAAK,EACA,UAAAP,GAAA,OAAAE,EACA,UAAAK,GAAA,KAQAC,sBACA,IAAAzY,EAAA,KAAAA,WACA6U,EAAA,KAAAA,SAEA,IAAA7U,IAAA6U,EAAA,OAEA,IAAA6D,EAAA,GACA,KAAAlS,KAAA,GACAxG,IAAA6U,GACA6D,EAAA,KACA,KAAAlS,KAAA,OACAxG,EAAAyG,MAAA,UAAAoO,EAAApO,MAAA,SACAiS,EAAA,KACA,KAAAlS,KAAA,MAEAkS,EAAA,OACA,KAAAlS,KAAA,KAAAqR,aAAA7X,EAAA6U,IAEA,IAAApG,EAAA,KAAAkK,SAAAzE,OAAA0E,KAAApa,OAAAka,GACAlL,OAAAzF,EACA0G,EAAAzN,SACAwM,EAAAiB,EAAA,GAAAjB,GACA,KAAAtE,UAAAsE,EACA,KAAAsD,sBAAA,CACA5H,UAAAsE,GACA,KACA,KAAA3H,MAAAgT,aAAAtV,eACA,KAAAsC,MAAAgT,aAAApV,mBAMA,8BACA,IACA,MAAArB,QAAAC,eAAA,CACA1E,MAAA,WACA2E,UAAA,EACAC,SAAA,EACAC,UAAA,WACAK,kBAAA,EACAC,sBAAA,EACAC,QAAA,EACAC,eAAA,IAEA,IAAAC,EAAAb,EAAAa,MACA,GAAAA,EAAAjC,OAAA,CACA,SAAAxC,EAAA,OAAA4E,GAAAH,EAAA,GACA,KAAA6T,cAAA1T,EACA,KAAAoR,gBAAAhW,OACA,KAAA8L,OAAA,eACA,MAAAnE,GACA,WAAAA,EAAAkR,cACA,KAAA/M,OAAAnE,EAAAiJ,WAIAuF,wBACA,KAAAmC,cAAA,GACA,KAAAtC,gBAAA,KAIA9Q,MAAA,CAaA1D,aACA,KAAAyY,uBAEA5D,SAAArP,GAEA,QAAAxF,YAAAwF,EAAA,CACA,IAAAsT,EAAA,KAAA9Y,WAAAyG,MAAA,QACAsS,EAAAvT,EAAAiB,MAAA,QAEAuS,EAAA,IAAA5T,KAAA0T,GAAAP,UACAU,EAAA,IAAA7T,KAAA2T,GAAAR,UACAU,EAAAD,IACA,KAAA1O,OAAA,aACA,KAAAuK,SAAA,GACA,KAAAhP,MAAAqT,gBAAA5T,SAGA,KAAAmT,yBC7WiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAItb,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,MAAM,MAAQN,EAAIqX,gBAAgB,cAA2B,YAAbrX,EAAIiC,MAAoBtB,GAAG,CAAC,MAAQX,EAAIuX,sBAAsB,MAAQvX,EAAIwX,yBAAyBpX,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAG,UAAUV,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,iBAAiB,GAAGrC,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAiB,cAAEsC,SAAS,SAAUC,GAAMvC,EAAIgc,cAAczZ,GAAKE,WAAW,mBAAmBrC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI0X,SAASnV,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAe,YAAEsC,SAAS,SAAUC,GAAMvC,EAAIic,YAAY1Z,GAAKE,WAAW,kBAAkB,GAAGrC,EAAG,UAAU,CAAC2B,IAAI,cAAczB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAAC2B,IAAI,WAAWzB,MAAM,CAAC,MAAQ,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACxnD,GAAkB,GCyCP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA9O,SAAA,IACAgV,gBAAA,QACA,QACA,cAGAxU,OACA,OACAoG,UAAA,OACAQ,eAAA,OAGA+H,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAK,WAAA,GACA6U,SAAA,GACA5U,SAAA,GACAC,OAAA,GACAiZ,cAAA,GACAC,YAAA,GACA/P,aAAA,GACAC,UAAA,GAEAwN,cAAA,GACAtC,gBAAA,KAKAxM,UACA,KAAA8I,wBAGA,KAAAkG,QACA,KAAAF,cAAA,KAAAG,SAAArU,OACA,KAAA4R,gBAAA,KAAAyC,SAAAzY,OAIA2D,QAAA,CAEAwI,qBAAAzI,GACA,kBAAAgP,GAAAhP,EAEAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GAEA,KAAA7N,OAAAuR,EAAAvR,OACA,KAAAK,WAAAkR,EAAAlR,WACA,KAAA6U,SAAA3D,EAAA2D,SAIA,KAAAsE,cAAAjI,EAAAiI,cACA,KAAAC,YAAAlI,EAAAkI,YAEAlX,EAAAiV,aACA,KAAAL,cAAA5U,EAAAiV,WAAAvU,OACA,KAAA4R,gBAAAtS,EAAAiV,WAAA3Y,MAGAuD,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiR,EAAAjR,SAAAwG,MAAA,KAAA/D,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKAxP,MAAAyB,QAAAtB,EAAAgP,YAAAC,cAAAjP,EAAAgP,YAAAC,YAAAnQ,SACA,KAAAd,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKA,KAAApL,UAAA,KACA,KAAAH,MAAA4L,SAAA7E,qBACA,KAAA/G,MAAA6L,YAAA9E,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAwZ,cAAA,KAAAA,cACAC,YAAA,KAAAA,YACA/P,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACAyK,cAAA,KAAAA,cACA9W,WAAA,KAAAA,WACA6U,SAAA,KAAAA,UAeA3U,EAAA,KAAAA,OACA6B,MAAAyB,QAAAtD,MAAAc,SACA+Q,EAAA7R,SAAAwC,IAAAsP,KAAAtK,KAAA2E,KAAA,MAGA,IAAA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAEA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IAEAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,kBACA,gBACA,eAEAC,EAAA,CACA,SACA,aACA,iBAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAGA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,KAKA,8BACA,IACA,MAAApH,QAAAC,eAAA,CACA1E,MAAA,WACA2E,UAAA,EACAC,SAAA,EACAC,UAAA,WACAK,kBAAA,EACAC,sBAAA,EACAC,QAAA,EACAC,eAAA,IAEA,IAAAC,EAAAb,EAAAa,MACA,GAAAA,EAAAjC,OAAA,CACA,SAAAxC,EAAA,OAAA4E,GAAAH,EAAA,GACA,KAAA6T,cAAA1T,EACA,KAAAoR,gBAAAhW,OACA,KAAA8L,OAAA,eACA,MAAAnE,GACA,WAAAA,EAAAkR,cACA,KAAA/M,OAAAnE,EAAAiJ,WAKAuF,wBACA,KAAAmC,cAAA,GACA,KAAAtC,gBAAA,MCvPiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrX,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAG,UAAwB,YAAbd,EAAIiC,KAAoB7B,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,OAAO,MAAQN,EAAIkc,gBAAgBlc,EAAIyB,MAAM,cAA2B,YAAbzB,EAAIiC,QAAsB7B,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAImc,iBAAiB,eAAiB,OAAO,cAAgB,MAAM9Z,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,aAAa,GAAGrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,aAAa,WAAW,UAAY,KAAK+B,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIoV,KAAK7S,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAAC2B,IAAI,aAAazB,MAAM,CAAC,MAAQ,SAAS,YAAc,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI+C,OAAOR,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACvtC,GAAkB,GCqCP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA9O,SAAA,IACAiV,gBAAA,QACA,qBAGAzU,OACA,OACAoG,UAAA,OACAQ,eAAA,OAEAwQ,iBAAA,KAAA9O,OAAAmG,MAAAC,KAAA0I,iBAGAzI,IAAA,SACArD,GAAA,GACA9E,OAAA,EACA/I,OAAA,GACAf,KAAA,GACA2T,KAAA,GACArS,OAAA,GACAmJ,aAAA,GACAC,UAAA,KAKAtB,UACA,KAAA8I,yBAGA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA7N,OAAAuC,EAAAvC,OACA,KAAA4S,KAAArQ,EAAAqQ,KACA,KAAA3T,KAAAsD,EAAAtD,KACAsD,EAAAgP,YAAAhR,SACA,KAAAA,OAAAgC,EAAAgP,YAAAC,YAAAzO,IAAA0O,IACA,WAAA5S,EAAA,IAAA6S,eAAAD,GACA,OACA5S,OACAkJ,IAAA0J,MAKA,KAAApL,UAAA,KACA,KAAAH,MAAA0T,WAAA3M,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAf,KAAA,KAAAA,KACA2T,KAAA,KAAAA,KAEAlJ,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAQA,OALAtK,MAAAyB,QAAA,KAAAtD,SAAA,KAAAA,OAAAc,SACA+Q,EAAA7R,OAAA,KAAAA,OAAAwC,IAAAuI,KAAAvD,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,YACA,cACA,aAEAC,EAAA,CACA,OACA,SACA,QAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,MAIA9F,MAAA,CACA9E,KAAA,CACA+E,QAAA6B,EAAA8R,GACA9R,OAAA8R,GACA,KAAAxG,sBAAA,CACA5H,UAAA1D,KAIAoB,WAAA,KCvKiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAAEV,EAAI8V,UAAwB,WAAZ9V,EAAI0T,IAAkB,CAACtT,EAAG,mBAAmB,CAACE,MAAM,CAAC,UAAW,EAAK,MAAQ,OAAO,MAAQN,EAAIqc,oBAAoBrc,EAAIyB,MAAM,eAAc,MAAS,CAACrB,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIsc,iBAAiB,eAAiB,OAAO,cAAgB,MAAMja,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIyB,KAAKc,GAAKE,WAAW,WAAYzC,EAAY,SAAEI,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,cAAc,MAAQN,EAAIuc,eAAe,eAAc,KAAQvc,EAAImB,KAAKf,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIuT,WAAW,eAAiB,OAAO,cAAgB,MAAMlR,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIoV,KAAK7S,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,aAAa,UAAU+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIqV,OAAO9S,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,YAAc,kBAAkB+B,MAAM,CAACrB,MAAOhB,EAAS,MAAEsC,SAAS,SAAUC,GAAMvC,EAAIwc,MAAMja,GAAKE,WAAW,WAAWrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,YAAc,6BAA6B+B,MAAM,CAACrB,MAAOhB,EAAiB,cAAEsC,SAAS,SAAUC,GAAMvC,EAAIyc,cAAcla,GAAKE,WAAW,mBAAmBrC,EAAG,UAAU,CAAC2B,IAAI,UAAUzB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IAC/uD,GAAkB,GCgDP,IACfS,KAAA,aACAmJ,OAAA,CACA6I,GAEA9O,SAAA,IACAiV,gBAAA,QACA,yBAGAzU,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA2Q,iBAAA,KAAAjP,OAAAmG,MAAAC,KAAA6I,iBACA/I,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WAEAG,IAAA,SACArD,GAAA,GACA9E,OAAA,EAEA9J,KAAA,GACA2T,KAAA,GACAtS,SAAA,GACAwS,OAAA,GACAD,OAAA,GACAmH,MAAA,GACAC,cAAA,GACAvQ,aAAA,GACAC,UAAA,GAEA2J,SAAA,EACAyG,eAAA,KAIA1R,UACA,KAAA8I,wBAEA,KAAAlB,OAAAnH,MAAA+K,WACA,KAAAP,SAAA,QAAArD,OAAAnH,MAAAwK,SACA,KAAAyG,eAAA,QAAA9J,OAAAnH,MAAA+K,SACA,KAAA5U,KAAA,MAIAuD,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OACA,MAAAuI,EAAA/O,EAAAgP,YAEAnP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKA,KAAA5R,OAAAsR,EAAAtR,OACA,KAAAf,KAAAqS,EAAArS,KACA,KAAA2T,KAAAtB,EAAAsB,KACA,KAAAE,OAAAxB,EAAAwB,OACA,KAAAD,OAAA,GAAAvB,EAAAuB,OACA,KAAAmH,MAAA1I,EAAA0I,MACA,KAAAC,cAAA3I,EAAA2I,cAEA1X,EAAAqR,QACA,KAAAN,SAAA/Q,EAAAqR,MAAA/F,GACA,KAAAkM,eAAAxX,EAAAqR,MAAAC,UAGA,KAAAxN,UAAA,KACA,KAAAH,MAAA8M,QAAA/F,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACAf,KAAA,KAAAA,KACA2T,KAAA,KAAAA,KACAE,OAAA,KAAAA,OACAD,OAAA,KAAAA,OACAmH,MAAA,KAAAA,MACAC,cAAA,KAAAA,cACA3G,SAAA,KAAAA,SACA5J,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,YAEA,YACA,sBAEAC,EAAA,CACA,OAEA,OACA,iBAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,OCpMiX,MCO7W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO+B,MAAM,CAACrB,MAAOhB,EAAW,QAAEsC,SAAS,SAAUC,GAAMvC,EAAI0c,QAAQna,GAAKE,WAAW,aAAarC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,SAAS,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIoV,KAAK7S,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAiB,cAAEsC,SAAS,SAAUC,GAAMvC,EAAI2c,cAAcpa,GAAKE,WAAW,mBAAmBrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,gBAAgBrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,aAAa,YAAY+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIuT,WAAW,eAAiB,OAAO,cAAgB,MAAMlR,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAI4c,OAAOra,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAAC2B,IAAI,UAAUzB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IACh/C,GAAkB,GC+BP,IACfS,KAAA,cACAmJ,OAAA,CACA6I,GAEAtO,OACA,OACAoG,UAAA,OACAQ,eAAA,OACA4H,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WAGAG,IAAA,SACArD,GAAA,GACA9E,OAAA,GACA/I,OAAA,GACA4S,KAAA,GACAtS,SAAA,GACAwS,OAAA,GACAoH,QAAA,GACAC,cAAA,GACA9Z,WAAA,GACA+Z,OAAA,GAEA1Q,aAAA,GACAC,UAAA,KAKAtB,UACA,KAAA8I,yBAGA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,0DAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OACA,MAAAuI,EAAA/O,EAAAgP,YAEAnP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKA,KAAA5R,OAAAsR,EAAAtR,OACA,KAAA4S,KAAAtB,EAAAsB,KACA,KAAAE,OAAAxB,EAAAwB,OACA,KAAAoH,QAAA5I,EAAA4I,QACA,KAAAC,cAAA7I,EAAA6I,cACA,KAAA9Z,WAAAiR,EAAAjR,WACA,KAAA+Z,OAAA9I,EAAA8I,OAEA,KAAA/T,UAAA,KACA,KAAAH,MAAA8M,QAAA/F,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OACA/I,OAAA,KAAAA,OACA4S,KAAA,KAAAA,KACAE,OAAA,KAAAA,OACAoH,QAAA,KAAAA,QACAC,cAAA,KAAAA,cACA9Z,WAAA,KAAAA,WACA+Z,OAAA,KAAAA,OAEA1Q,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,cACA,qBACA,kBACA,eAEAC,EAAA,CACA,OACA,gBACA,aACA,UAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAGA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,OClKkX,MCO9W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,MAAQN,EAAI6c,YAAYlc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAI8c,wBAAwB,eAAe,MAAQ,SAASlc,GAAQ,OAAOZ,EAAI+c,uBAAuB,kBAAkB3c,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIwC,OAAOD,GAAKE,WAAW,YAAYrC,EAAG,mBAAmB,CAACE,MAAM,CAAC,MAAQ,KAAK,UAAW,EAAK,MAAQN,EAAIgd,iBAAiBrc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAI8c,wBAAwB,oBAAoB,MAAQ,SAASlc,GAAQ,OAAOZ,EAAI+c,uBAAuB,uBAAuB3c,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,aAAa,YAAY+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,YAAYrC,EAAG,UAAU,CAAC2B,IAAI,UAAUzB,MAAM,CAAC,MAAQ,SAAS+B,MAAM,CAACrB,MAAOhB,EAAY,SAAEsC,SAAS,SAAUC,GAAMvC,EAAI8C,SAASP,GAAKE,WAAW,cAAcrC,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQ,OAAO,UAAW,EAAK,KAAON,EAAIuT,WAAW,eAAiB,OAAO,cAAgB,MAAMlR,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIoV,KAAK7S,GAAKE,WAAW,UAAUrC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQ,QAAQ,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAc,WAAEsC,SAAS,SAAUC,GAAMvC,EAAI6C,WAAWN,GAAKE,WAAW,gBAAgBrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,MAAM,UAAW,GAAM+B,MAAM,CAACrB,MAAOhB,EAAiB,cAAEsC,SAAS,SAAUC,GAAMvC,EAAI2c,cAAcpa,GAAKE,WAAW,mBAAmBrC,EAAG,cAAc,CAACE,MAAM,CAAC,QAAUN,EAAIkD,cAAc,KAAOlD,EAAImD,WAAW,YAAcnD,EAAIoD,QAAQzC,GAAG,CAAC,cAAc,SAASC,GAAQZ,EAAImD,WAAWvC,OAAY,IAC7tD,GAAkB,GCoCP,IACfS,KAAA,cACAmJ,OAAA,CACA6I,GAEAtO,OACA,OACAoG,UAAA,OACAQ,eAAA,OAEA4H,WAAA,KAAAlG,OAAAmG,MAAAC,KAAAF,WAGAG,IAAA,SACArD,GAAA,GACA9E,OAAA,GACA/I,OAAA,GACA4S,KAAA,GACAtS,SAAA,GACAwS,OAAA,GACAqH,cAAA,GACA9Z,WAAA,GACAga,WAAA,GACAI,cAAA,GACAD,gBAAA,GACAE,mBAAA,GAEAhR,aAAA,GACAC,UAAA,KAKAtB,UACA,KAAA8I,yBAGA3O,QAAA,CAEAwI,qBAAAzI,GACAkE,QAAAC,IAAA,yDAAAnE,GACA,MAAA6O,EAAA,iBAAA3R,KACA,KAAAyR,IAAAE,EAAA,gBACA,KAAAvD,GAAAuD,EAAA7O,EAAA8O,WAAA9O,EAAAsL,GACA,KAAA9E,OAAAxG,EAAAwG,OACA,MAAAuI,EAAA/O,EAAAgP,YACAnP,MAAAyB,QAAAtB,EAAAgP,YAAAI,gBAAApP,EAAAgP,YAAAI,cAAAtQ,SACA,KAAAf,SAAAiC,EAAAgP,YAAAI,cAAA5O,IAAA6O,IACA,WAAA/S,EAAA,IAAA6S,eAAAE,GACA,OACA/S,OACAkJ,IAAA6J,MAKA,KAAA5R,OAAAsR,EAAAtR,OACA,KAAA4S,KAAAtB,EAAAsB,KACA,KAAAE,OAAAxB,EAAAwB,OACA,KAAAqH,cAAA7I,EAAA6I,cACA,KAAA9Z,WAAAiR,EAAAjR,WACA,KAAAga,WAAA/I,EAAA+I,WACA,KAAAG,gBAAAlJ,EAAAkJ,gBAEA,KAAAnU,UAAA,KACA,KAAAH,MAAA8M,QAAA/F,wBAMArN,mBACA,IAAAgI,EAAA,KAAAoK,kBACAvL,QAAAC,IAAA,iBAAAkB,GACA,IAAAqK,EAAA,KAAAC,SAAAtK,GACAqK,IACAxL,QAAAC,IAAA,2BAAAkB,GACA,KAAAuK,SAAAvK,KAEAoK,kBACA,IAAAI,EAAA,CACAlB,IAAA,KAAAA,IACAnI,OAAA,KAAAA,OAEA/I,OAAA,KAAAA,OACA4S,KAAA,KAAAA,KACAE,OAAA,KAAAA,OACAqH,cAAA,KAAAA,cACA9Z,WAAA,KAAAA,WACAga,WAAA,KAAAA,WACAG,gBAAA,KAAAA,gBAEA9Q,aAAA,KAAAhJ,cAAAqC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,KACA/C,UAAA,KAAAhJ,WAAAoC,IAAAC,KAAAC,QAAAD,EAAAS,QAAAiJ,KAAA,MAGA4F,EAAA,KAAAhS,SAMA,OALA8B,MAAAyB,QAAAyO,MAAAjR,SACA+Q,EAAA9R,SAAAgS,EAAAvP,IAAAzC,KAAAyH,KAAA2E,KAAA,MAGA,KAAAmB,KAAAuE,EAAAvE,GAAA,KAAAA,IACAuE,GAEAF,SAAA3P,GACA,IAAAwH,EAAA,CACA,kBACA,cACA,qBACA,YACA,mBACA,qBAEAC,EAAA,CACA,aACA,SACA,kBACA,OACA,aACA,iBAEA,YAAAF,aAAA,CACAC,SACAC,cACAzH,UAIA,eAAAA,GACA,IACA,MAAAiH,QAAA+I,eAAAhQ,GACA,IAAAiH,EAAAC,OACA,KAAAkB,OAAAnB,EAAAkG,KACA,iBAAAjQ,KACA,KAAAoJ,QAAA2J,IAAA,GACA,KAAA5H,wBAEA,MAAAf,GACApD,QAAAC,IAAA,gBAAAmD,KAKA,8BAAA8Q,GACA,IACA,MAAAlY,QAAAmY,eAAA,CACA5c,MAAA,QACA2E,UAAA,EACAkY,eAAA,EACAhY,UAAA,WACAiY,kBAAA,MAAAH,EAAA,UAEAlU,QAAAC,IAAA,iEAAAjE,GAEA,IAAAsY,EAAAtY,EAAAsY,YACA,GAAAA,EAAA1Z,QAAA,GACA,SAAAxC,EAAA,GAAAgP,GAAAkN,EAAA,GACA,KAAAJ,EAAA,OAAA9M,EACA,QAAA8M,GAAA9b,OACA,KAAA8L,OAAA,eACA,MAAAnE,GACA,WAAAA,EAAAkR,cACA,KAAA/M,OAAAnE,EAAAiJ,WAIA8K,uBAAAI,GACA,KAAAA,EAAA,UACA,QAAAA,GAAA,MC7MkX,MCO9W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,kCCsEA,IAEfK,iBAAAC,EAAAC,EAAAC,GACAC,QAAAtQ,OAAA,CACA7L,KAAA,gBACAT,MAAA,aAEA2c,KAEAE,iBAAAJ,EAAAC,EAAAC,GAaAF,EAAAK,KAAAtU,SAAA,aACAoU,QAAAtQ,OAAA,CACA7L,KAAA,gBACAT,MAAA,aAGA2c,KAEAtc,KAAA,WACAC,WAAA,CACAyc,aACAC,cACAC,cACAC,cACAC,cACAC,cACAC,cACAC,cACAC,cACAC,eACAC,gBAGAla,SAAA,CAEAzC,kBACA,MAAA4c,EAAA,KAAAjF,SACA,kBAAAiF,IAIA7T,UACA,KAAA4H,OAAAnH,MAAA7J,OAAA,KAAAgY,SAAA3U,OAAA,KAAA2N,OAAAnH,MAAA7J,OAGA,QAAAgR,OAAAnH,MAAAoH,OACA,KAAAxQ,OAAA4C,OAAA,KAAA2N,OAAAnH,MAAA+E,IACA,KAAAsO,QAAA,EACA,KAAA1c,KAAA,KAAAwQ,OAAAnH,MAAArJ,MAGA,KAAA2X,QAGA7U,OACA,OACA0U,UAAA,EACAxX,KAAA,GACA0c,QAAA,EACAzc,QAAA,EACAC,SAAA,OAIA6C,QAAA,CACA4U,OACA,KAAA+E,QAAA,KAAAC,cAGA,mBACA,IACA,MAAAC,EAAA,cAAA5c,KAAA6c,OAAAC,QACA,IAAAC,EAAA,cAAA/c,KAAA,kBACA,MAAA4J,EAAA,CACA,CAAAmT,GAAA,KAAA9c,QAEA+C,QAAA4Z,EAAAhT,GACA,IAAA5G,EAAAgH,OACA,KAAA9J,SAAA8C,EAAAF,MAEA,MAAAiE,GACAC,QAAAC,IAAA,mBAAAF,KAIA5G,mBACA,IAAAE,EAAA,KAAAoG,MAAAuW,SAAA7c,iBACAE,UC3L6V,MCQzV,I,UAAY,eACd,GACAvC,EACAqB,GACA,EACA,KACA,KACA,OAIa,gB,6CCnBf,W,oCCAA,W,oECAA,IAAIrB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACN,EAAG,WAAW,CAACE,MAAM,CAAC,gBAAgBN,EAAIkf,4BAA4B7c,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAImf,OAAO5c,GAAKE,WAAW,WAAWzC,EAAIuD,GAAIvD,EAAQ,MAAE,SAASof,EAAI3b,GAAK,OAAOrD,EAAG,UAAU,CAACsD,IAAID,EAAInD,MAAM,CAAC,MAAQ8e,EAAI5e,MAAM,KAAO4e,EAAI/d,KAAK,MAAQ,aAAY,GAAGjB,EAAG,MAAM,CAACM,YAAY,sDAAsD,CAACN,EAAG,YAAY,CAACE,MAAM,CAAC,UAAY,GAAG,YAAc,KAAK,YAAY,SAAS,UAAW,EAAK,UAAW,GAAMK,GAAG,CAAC,MAAQX,EAAIqf,sBAAsBhd,MAAM,CAACrB,MAAOhB,EAAa,UAAEsC,SAAS,SAAUC,GAAMvC,EAAIsf,UAAU/c,GAAKE,WAAW,eAAerC,EAAG,MAAM,CAACyG,MAAM,CACnwB,uCACA7G,EAAIuf,UAAY,iBAAmB,IACrC5e,GAAG,CAAC,MAAQ,WAAc,OAAOX,EAAIwf,iBAAkB,KAAU,CAACpf,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,WAAW,KAAO,QAAQF,EAAG,OAAO,CAACJ,EAAIc,GAAG,SAAS,IAAI,GAAGV,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,WAAW,CAACE,MAAM,CAAC,SAAWN,EAAIyf,SAAS,gBAAgBzf,EAAI0f,cAAc/e,GAAG,CAAC,KAAOX,EAAI2f,YAAYtd,MAAM,CAACrB,MAAOhB,EAAe,YAAEsC,SAAS,SAAUC,GAAMvC,EAAI4f,YAAYrd,GAAKE,WAAW,gBAAgBzC,EAAIuD,GAAIvD,EAAa,WAAE,SAAS8N,EAAKrK,GAAK,OAAOrD,EAAG,eAAe,CAACsD,IAAID,EAAInD,MAAM,CAAC,eAAe,KAAK,MAAQN,EAAI6f,cAAc,KAAO/R,EAAKgS,WAAW,KAAOhS,EAAKiS,cAAc,OAASjS,EAAKkS,YAAclS,EAAKkS,YAAYxa,KAAKnE,KAAO,GAAG,KAAO,OAAO,aAAayD,OAAOgJ,EAAKmS,SAAStf,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOZ,EAAIkgB,aAAapS,UAAY,GAAG1N,EAAG,WAAW,CAAC8G,WAAW,CAAC,CAAC7F,KAAK,OAAO8F,QAAQ,SAASnG,MAAOhB,EAAa,UAAEyC,WAAW,cAAcnC,MAAM,CAAC,IAAM,WAAW,GAAGF,EAAG,YAAY,CAACM,YAAY,UAAU0D,MAAM,CAAGC,OAAQ,OAAS/D,MAAM,CAAC,SAAW,SAAS,UAAY,GAAG,sBAAsB,YAAYK,GAAG,CAAC,mBAAmBX,EAAImgB,kBAAkB9d,MAAM,CAACrB,MAAOhB,EAAmB,gBAAEsC,SAAS,SAAUC,GAAMvC,EAAIwf,gBAAgBjd,GAAKE,WAAW,oBAAoB,CAACrC,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACV,EAAIc,GAAG,UAAUV,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,OAAO,CAACJ,EAAIc,GAAG,YAAYV,EAAG,MAAM,CAACM,YAAY,qDAAqD,CAACN,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQN,EAAIogB,UAAU,UAAW,EAAK,UAAY,GAAG,YAAc,OAAO,QAAS,GAAMzf,GAAG,CAAC,MAAQX,EAAIqgB,wBAAwBjgB,EAAG,OAAO,CAACM,YAAY,eAAeN,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQN,EAAIsgB,QAAQ,UAAW,EAAK,UAAY,GAAG,YAAc,OAAO,QAAS,GAAM3f,GAAG,CAAC,MAAQX,EAAIugB,uBAAuB,OAAOngB,EAAG,MAAM,CAACM,YAAY,YAAYC,GAAG,CAAC,MAAQX,EAAIwgB,qBAAqB,CAACpgB,EAAG,OAAO,CAACJ,EAAIc,GAAG,YAAYV,EAAG,aAAa,CAAC2B,IAAI,gBAAgBzB,MAAM,CAAC,WAAWN,EAAIygB,QAAQ,WAAWzgB,EAAI0gB,SAASre,MAAM,CAACrB,MAAOhB,EAAW,QAAEsC,SAAS,SAAUC,GAAMvC,EAAI0H,QAAQnF,GAAKE,WAAW,cAAc,IAC/iErB,EAAkB,G,qHC4EP,GACfuf,SAAA,SACAtf,KAAA,aACAC,WAAA,CACAsf,mBACAC,mBAEAtc,SAAA,CAEAgb,YACA,YAAAa,WAAA,KAAAE,SAEAT,gBACA,IAAAhR,EAAA,KAAA4K,SACAqH,EAAAlD,OAAAmD,QAAA1f,KAAA,MAIA,OAHAwN,GAAA,GAAAA,GAAA,KACAiS,EAAA,GAAAA,IAAAE,OAAAnS,MAEAiS,IAGA/b,OACA,OACA2C,QAAA,GACA+R,cAAA7O,EACA4U,iBAAA,EACAL,OAAA,IACA8B,KAAA,CACA,CACAzgB,MAAA,MACAa,KAAA,KAEA,CACAb,MAAA,MACAa,KAAA,KAEA,CACAb,MAAA,MACAa,KAAA,KAEA,CACAb,MAAA,MACAa,KAAA,MAGAie,UAAA,GAiBAc,UAAA,GACAE,QAAA,GAEAY,WAAA,CACAC,KAAA,EACAC,SAAA,IAEAC,WAAA,EACAzB,aAAA,EACAH,UAAA,EACAC,aAAA,SACA4B,UAAA,GACAb,QAAA,GACAC,QAAA,KAGA7V,UACA,KAAAE,oBACA,KAAAwW,wBACA,KAAA9O,OAAAnH,QACA,KAAAmO,SAAA,KAAAhH,OAAAnH,MAAA7J,MAEA,KAAAmY,QAEA5U,QAAA,CAEA+F,oBACA,IAAA8D,EAAA,KAAA4K,SACA+H,EAAA,OACA3S,GAAA,GAAAA,GAAA,KAAA2S,EAAAR,OAAAnS,IACA3D,eAAA,CACA1K,MAAA,KAAAghB,KAGAD,wBACA/V,eAAA,CACA9E,MAAA,KAGAkT,OAEA,IAAA5D,EAAA,IAAA/N,KACA+N,EAAAyL,SAAAzL,EAAA0L,WAAA,GACA,KAAAjB,QAAAzK,EACA,IAAA2L,EAAA,IAAA1Z,KACA,KAAAyY,QAAAiB,GAEA,wBACA,IACA,IAAAC,EAAA,KACA,MAAA/V,EAAA,CACAgW,MAAA,OACAtW,OAAA,KAAAkO,SACAwG,OAAAnb,OAAA,KAAAqa,WACA,KAAA+B,YAEA,KAAAd,WAAA,KAAAE,UACAzU,EAAAhJ,WAAA,KAAAud,UACAvU,EAAA6L,SAAA,KAAA4I,SAEA,MAAAtU,QAAA8V,eAAAjW,GACA,OAAAG,EAAAC,KAAA,CACA,KAAA2T,aAAA,EACA,IAAApb,EAAAwH,EAAAjH,MAAA,GACAP,IAAAe,IAAAuI,IAAA,IACAA,EACAiS,cAAAgC,eAAAjU,EAAA8T,EAAAnI,aAGAjV,EAAAX,OAAA,KAAAqd,WAAAE,SAAA,KAAA3B,UAAA,EAGA,KAAAyB,WAAAC,OAEA,KAAAG,UAAA,KAAAA,UAAAU,OAAAxd,GACA,KAAAib,WAAA,KAAA6B,UAAAzd,SACA,KAAA6b,aAAA,GACA,KAAA2B,WAAA,IAGA,MAAAhV,GACApD,QAAAC,IAAA,cAAAmD,KAIAsT,aACA,KAAAsC,mBAGA/C,2BAAA7W,GASA,OARA,KAAA8W,OAAA9W,EACA,KAAAgZ,WAAA,EACA,KAAAC,UAAA,GACA,KAAA1B,aAAA,EACA,KAAAH,UAAA,EACA,KAAAC,aAAA,SACA,KAAAwB,WAAAC,KAAA,EACA,KAAAxB,cACA,GAGAU,uBACA,MAAAuB,EAAA,KACAA,EAAAla,QAAA,GAAAka,EAAAxB,UACA,KAAA1X,MAAAwZ,cAAAC,eAAAja,IACA0Z,EAAAxB,UAAAgC,IAAAla,GAAAma,OAAA,uBAIA9B,qBACA,MAAAqB,EAAA,KACAA,EAAAla,QAAA,GAAAka,EAAAtB,QACA,KAAA5X,MAAAwZ,cAAAC,eAAAja,IACA0Z,EAAAtB,QAAA8B,IAAAla,GAAAma,OAAA,uBAKAC,oBAAA7gB,GACA,WAAAJ,GAAAI,EACA,KAAA8gB,QAAAlhB,GAIAge,uBACA,KAAAhU,QAAArF,KAAA,CACA3E,KAAA,SACAiK,MAAA,CACAmO,SAAA,KAAAA,SACAxX,KAAA,OACAugB,UAAA,KAAArD,WAOAsD,0BAIAjC,qBAEA,IAAAkC,EAAA,IAAAza,KAAA,KAAAmY,WAAAhF,UACAuH,EAAA,IAAA1a,KAAA,KAAAqY,SAAAlF,UAEAuH,GAAAD,EACA,KAAAvV,OAAA,kBAKA,KAAAqS,iBAAA,EACA,KAAA6B,WAAA,EACA,KAAAC,UAAA,GACA,KAAA1B,aAAA,EACA,KAAAH,UAAA,EACA,KAAAC,aAAA,SACA,KAAAwB,WAAAC,KAAA,EACA,KAAAxB,eAKAO,aAAAnb,GACAkE,QAAAC,IAAA,UAAAnE,GACA,KAAAsG,QAAArF,KAAA,CACA3E,KAAA,gBACAiK,MAAA,CACA+E,GAAAtL,EAAAsL,GACA5O,KAAA,WAIA0e,mBACA,KAAAC,UAAA,GACA,KAAAE,QAAA,MC9T6V,I,wBCQzVze,EAAY,eACd,EACA9B,EACAqB,GACA,EACA,KACA,WACA,MAIa,aAAAS,E,2CCnBf,W,6GCAA,W,gFCAA,gBAIA,MAAMuN,EAAS,IAAIwT,aACJxT,U,kCCLf,W,yDCAA,W,kCCAA,W,yCCAA,IAAIrP,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACM,YAAY,0CAA0C,CAACN,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ+B,MAAM,CAACrB,MAAOhB,EAAQ,KAAEsC,SAAS,SAAUC,GAAMvC,EAAIqB,KAAKkB,GAAKE,WAAW,UAAUrC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,KAAK,aAAa,WAAW,UAAY,IAAI+B,MAAM,CAACrB,MAAOhB,EAAU,OAAEsC,SAAS,SAAUC,GAAMvC,EAAIsV,OAAO/S,GAAKE,WAAW,aAAa,GAAGrC,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,WAAWC,GAAG,CAAC,MAAQX,EAAI6iB,mBAAmB,CAAC7iB,EAAIc,GAAG,aACplBM,EAAkB,G,oCCoCP,GACfE,WAAA,CACAuI,eAEA9E,OACA,OACA1D,KAAA,GACAiU,OAAA,KAGAzK,UACA,KAAAE,oBACA,IAAAO,EAAA,KAAAmH,OAAAnH,MAEAA,IACA,KAAAjK,KAAAiK,EAAAjK,MAAA,GACA,KAAAiU,OAAAhK,EAAAgK,QAAA,KAGAtQ,QAAA,CAEA+F,oBACAS,eAAA,CACA9E,MAAA,KAGAmc,mBACA,SAAAxhB,KAAA,YAAA8L,OAAA,YAEA,SAAAmI,OAAA,YAAAnI,OAAA,SAEA,IAAAtB,EAAA,CACAxK,KAAA,KAAAA,KACAiU,OAAA,KAAAA,QAGAhK,EAAA,KAAAmH,OAAAnH,MACAA,GAAA,KAAAA,EAAAyN,WACAlN,EAAA,IACA,KAAA4G,OAAAnH,SACAO,IAIAuD,OAAAvO,MAAA,mBAAAgL,GAEA,KAAAR,QAAA2J,IAAA,MCnFoW,I,wBCQhWnT,EAAY,eACd,EACA9B,EACAqB,GACA,EACA,KACA,WACA,MAIa,aAAAS,E","file":"js/index.bd1b48f2.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CFlowPath.vue?vue&type=style&index=0&id=29a36c33&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":_vm.$attrs.title,\"required\":_vm.$attrs.required}},[_c('div',{staticClass:\"custom-select-container flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\",on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.value)?_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.value))]):_c('div',{staticClass:\"default\"},[_vm._v(_vm._s(_vm.placeholder))])]),(_vm.hideRemove ? false : true)?_c('div',{staticClass:\"right\"},[(_vm.value)?_c('van-icon',{attrs:{\"size\":20,\"color\":\"#A2A3A4\",\"name\":\"clear\"},on:{\"click\":function($event){return _vm.$emit('clear')}}}):_vm._e(),_c('van-icon',{attrs:{\"color\":\"#A2A3A4\",\"size\":20,\"name\":\"arrow\"},on:{\"click\":function($event){return _vm.$emit('click')}}})],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <layout :title=\"$attrs.title\" :required=\"$attrs.required\">\n <div class=\"custom-select-container flex flex-row flex-row-aic\">\n <div class=\"left\" @click=\"$emit('click')\">\n <div v-if=\"value\" class=\"value\">{{ value }}</div>\n <div v-else class=\"default\">{{ placeholder }}</div>\n </div>\n <div class=\"right\" v-if=\"hideRemove ? false : true\">\n <van-icon v-if=\"value\" :size=\"20\" color=\"#A2A3A4\" name=\"clear\" @click=\"$emit('clear')\" />\n <van-icon color=\"#A2A3A4\" :size=\"20\" name=\"arrow\" @click=\"$emit('click')\" />\n </div>\n </div>\n </layout>\n</template>\n\n<script>\n/**\n * @description 当前组件只为展示UI和数据。\n */\nimport Layout from './Layout.vue';\nexport default {\n name: 'CSelectImitate',\n\n components: {\n Layout\n },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n placeholder: {\n type: String,\n default: '请选择'\n },\n hideRemove: {\n type: Boolean,\n default: false\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.custom-select {\n &-container {\n justify-content: space-between;\n\n .left {\n flex: 1;\n\n .value {\n font-size: 14px;\n font-weight: 400;\n color: #1A1A1F;\n line-height: 20px;\n }\n\n .default {\n font-size: 14px;\n font-weight: 400;\n color: #727273;\n line-height: 20px;\n }\n }\n\n .right {\n .van-icon {\n margin-left: 2px;\n }\n }\n }\n}\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CSelectImitate.vue?vue&type=template&id=779f15c0&scoped=true\"\nimport script from \"./CSelectImitate.vue?vue&type=script&lang=js\"\nexport * from \"./CSelectImitate.vue?vue&type=script&lang=js\"\nimport style0 from \"./CSelectImitate.vue?vue&type=style&index=0&id=779f15c0&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"779f15c0\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSwitch.vue?vue&type=style&index=0&id=8ef9abca&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"apply-for-container\"},[_c(_vm.renderComponent,{ref:\"rendeRef\",tag:\"component\",attrs:{\"flag\":_vm.flag,\"editId\":_vm.editId,\"edit-data\":_vm.editData}}),_c('div',{staticClass:\"btnbox\"},[_c('div',{staticClass:\"btn\",on:{\"click\":_vm.handleSubmitData}},[_vm._v(_vm._s(_vm.flag === 'approve' ? '更新内容' : '提交'))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"申请事由\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":800},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-select',{attrs:{\"title\":\"采购类型\",\"required\":true,\"list\":_vm.applyTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.type == '1')?[_c('c-product-store',{ref:\"productStoreRef\",attrs:{\"type\":\"1\"},model:{value:(_vm.apply_goods),callback:function ($$v) {_vm.apply_goods=$$v},expression:\"apply_goods\"}})]:_vm._e(),_c('c-input',{attrs:{\"title\":\"总金额(元)\",\"required\":true,\"input-type\":\"number\"},model:{value:(_vm.total_amount),callback:function ($$v) {_vm.total_amount=$$v},expression:\"total_amount\"}}),_c('c-date',{attrs:{\"title\":\"预计申购完成日期\"},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-select',{attrs:{\"title\":\"支付方式\",\"required\":true,\"list\":_vm.applyPayTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.pay_type),callback:function ($$v) {_vm.pay_type=$$v},expression:\"pay_type\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":\"流程\"}},[_c('div',{staticClass:\"custom-flow-path-container\"},[_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"left__title\"},[_vm._v(\" 审批人 \")]),_c('div',{staticClass:\"left__desc\"},[_vm._v(\" \"+_vm._s(_vm.approveTxt)+\" \")])]),_c('div',{staticClass:\"right flex flex-row\"},[(_vm.approveSelList.length)?_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},_vm._l((_vm.approveSelList),function(personal,idx){return _c('div',{key:idx,staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.approveSelList.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"arrow\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)}),0):_vm._e()]),_c('div',{staticClass:\"rows-line\"})]),(_vm.copySelList.length || _vm.isAllowCopy == '1')?_c('div',{staticClass:\"rows\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"left__title\"},[_vm._v(\" 抄送人 \")]),_c('div',{staticClass:\"left__desc\"},[_vm._v(\" \"+_vm._s(_vm.sendTxt)+\" \")])]),_c('div',{staticClass:\"right flex flex-row\"},[_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},[(_vm.copySelList.length >= 3)?_c('div',{staticClass:\"flex flex-row\",on:{\"click\":function($event){_vm.showMoreCopy = true}}},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[_c('span',{staticClass:\"avatar__name\"},[_c('van-icon',{attrs:{\"name\":\"friends-o\",\"size\":24}})],1)]),_c('div',{staticClass:\"personal__name\"},[_vm._v(\"查看全部\")])]),_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}})],1):_vm._e(),_vm._l((_vm.copySelListCompu),function(personal,idx){return _c('div',{key:(idx + \"-\" + (personal.userid)),staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.copySelListCompu.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):(_vm.isAllowCopy == '1')?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)})],2),(_vm.isAllowCopy == '1')?_c('div',{staticClass:\"empty-box\",on:{\"click\":_vm.handleOpenContactsCopy}},[_c('van-icon',{attrs:{\"size\":20,\"color\":\"#979797\",\"name\":\"plus\"}})],1):_vm._e()])]):_vm._e()]),_c('van-popup',{style:({ height: '60%' }),attrs:{\"position\":\"bottom\",\"closeable\":\"\",\"close-icon-position\":\"top-right\"},model:{value:(_vm.showMoreCopy),callback:function ($$v) {_vm.showMoreCopy=$$v},expression:\"showMoreCopy\"}},[_c('div',{staticClass:\"show-more-copy-container flex flex-col\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"抄送\"+_vm._s(_vm.copySelList.length)+\"人\")]),_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"procesbox flex flex-row flex-row-aic\"},_vm._l((_vm.copySelList),function(personal,idx){return _c('div',{key:(idx + \"-\" + (personal.userid)),staticClass:\"flex flex-row\"},[_c('div',{staticClass:\"personal flex flex-col\"},[_c('div',{staticClass:\"closebox\",on:{\"click\":function($event){return _vm.handleRemoveSignal(personal, idx)}}},[_c('van-icon',{attrs:{\"name\":\"cross\",\"size\":14,\"color\":\"#fff\"}})],1),_c('div',{staticClass:\"avatar avatar--name\"},[(personal.avatar)?[_c('img',{staticClass:\"avatar-heade\",attrs:{\"src\":personal.avatar}})]:[_c('span',{staticClass:\"avatar__name\"},[_vm._v(_vm._s(_vm._f(\"changeName\")(personal.name)))])]],2),_c('div',{staticClass:\"personal__name\"},[_vm._v(_vm._s(personal.name))])]),(idx !== _vm.copySelList.length - 1)?_c('van-icon',{staticClass:\"arrow\",attrs:{\"size\":14,\"name\":\"plus\",\"color\":\"rgb(151, 151, 151)\"}}):_vm._e()],1)}),0)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <layout title=\"流程\">\n <div class=\"custom-flow-path-container\">\n <!-- 审批人 -->\n <div class=\"rows\">\n <div class=\"left\">\n <div class=\"left__title\">\n 审批人\n </div>\n <div class=\"left__desc\">\n {{ approveTxt }}\n </div>\n </div>\n <div class=\"right flex flex-row\">\n <div v-if=\"approveSelList.length\" class=\"procesbox flex flex-row flex-row-aic\">\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in approveSelList\" :key=\"idx\">\n <div class=\"personal flex flex-col\">\n <div class=\"avatar avatar--name\">\n <template v-if=\"personal.avatar\">\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\n </template>\n <template v-else>\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\n </template>\n </div>\n <div class=\"personal__name\">{{ personal.name }}</div>\n </div>\n\n <van-icon class=\"arrow\" v-if=\"idx !== approveSelList.length - 1\" :size=\"14\" name=\"arrow\"\n color=\"rgb(151, 151, 151)\" />\n </div>\n </div>\n <!-- <div v-if=\"approveSelList.length < 3\" class=\"empty-box\" @click=\"handleOpenContacts\">\n <van-icon :size=\"20\" color=\"#979797\" name=\"plus\" />\n </div> -->\n </div>\n <div class=\"rows-line\"></div>\n </div>\n\n <!-- 抄送人 -->\n <div class=\"rows\" v-if=\"copySelList.length || isAllowCopy == '1'\">\n <div class=\"left\">\n <div class=\"left__title\">\n 抄送人\n </div>\n <div class=\"left__desc\">\n {{ sendTxt }}\n </div>\n </div>\n <div class=\"right flex flex-row\">\n <div class=\"procesbox flex flex-row flex-row-aic\">\n <div class=\"flex flex-row\" v-if=\"copySelList.length >= 3\" @click=\"showMoreCopy = true\">\n <div class=\"personal flex flex-col\">\n <div class=\"avatar avatar--name\">\n <span class=\"avatar__name\">\n <van-icon name=\"friends-o\" :size=\"24\" />\n </span>\n </div>\n <div class=\"personal__name\">查看全部</div>\n </div>\n <van-icon class=\"arrow\" :size=\"14\" name=\"plus\" color=\"rgb(151, 151, 151)\" />\n </div>\n\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in copySelListCompu\"\n :key=\"`${idx}-${personal.userid}`\">\n <div class=\"personal flex flex-col\">\n <div class=\"avatar avatar--name\">\n <template v-if=\"personal.avatar\">\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\n </template>\n <template v-else>\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\n </template>\n </div>\n <div class=\"personal__name\">{{ personal.name }}</div>\n </div>\n <van-icon v-if=\"idx !== copySelListCompu.length - 1\" class=\"arrow\" :size=\"14\" name=\"plus\"\n color=\"rgb(151, 151, 151)\" />\n <van-icon v-else-if=\"isAllowCopy == '1'\" class=\"arrow\" :size=\"14\" name=\"plus\"\n color=\"rgb(151, 151, 151)\" />\n </div>\n </div>\n <div class=\"empty-box\" v-if=\"isAllowCopy == '1'\" @click=\"handleOpenContactsCopy\">\n <van-icon :size=\"20\" color=\"#979797\" name=\"plus\" />\n </div>\n </div>\n </div>\n </div>\n\n <!-- NOTE: 当抄送人过多时 展示优化 -->\n <van-popup v-model=\"showMoreCopy\" position=\"bottom\" :style=\"{ height: '60%' }\" closeable\n close-icon-position=\"top-right\">\n <div class=\"show-more-copy-container flex flex-col\">\n <div class=\"header\">抄送{{ copySelList.length }}人</div>\n <div class=\"main\">\n <div class=\"procesbox flex flex-row flex-row-aic\">\n <div class=\"flex flex-row\" v-for=\"(personal, idx) in copySelList\"\n :key=\"`${idx}-${personal.userid}`\">\n <div class=\"personal flex flex-col\">\n <div class=\"closebox\" @click=\"handleRemoveSignal(personal, idx)\"><van-icon name=\"cross\"\n :size=\"14\" color=\"#fff\" /></div>\n <div class=\"avatar avatar--name\">\n <template v-if=\"personal.avatar\">\n <img class=\"avatar-heade\" :src=\"personal.avatar\" />\n </template>\n <template v-else>\n <span class=\"avatar__name\">{{ personal.name | changeName }}</span>\n </template>\n </div>\n <div class=\"personal__name\">{{ personal.name }}</div>\n </div>\n <van-icon class=\"arrow\" v-if=\"idx !== copySelList.length - 1\" :size=\"14\" name=\"plus\"\n color=\"rgb(151, 151, 151)\" />\n </div>\n </div>\n\n </div>\n </div>\n </van-popup>\n </layout>\n</template>\n\n<style lang=\"less\" scoped>\n@import url(\"@/styles/variables.less\");\n\n.custom-flow-path {\n &-container {\n padding: 10px 12px;\n background-color: @white;\n\n .rows {\n position: relative;\n display: flex;\n flex-direction: row;\n // align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n\n .rows-line {\n position: absolute;\n left: -10px;\n top: 17px;\n width: 1px;\n height: 100%;\n background-color: #D8D8D8;\n }\n\n .left {\n &__title {\n position: relative;\n font-size: @font-size-common;\n font-weight: 400;\n color: #191A1E;\n line-height: 18px;\n\n &::after {\n position: absolute;\n content: \"\";\n left: -12px;\n top: 50%;\n width: 8px;\n height: 8px;\n border-radius: 8px;\n background: #D8D8D8;\n transform: translateY(-50%);\n\n }\n }\n\n &__desc {\n font-size: @font-size-third;\n font-weight: 400;\n color: #9A9A9A;\n line-height: 18px;\n }\n }\n\n .empty-box {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: 31px;\n height: 31px;\n background: #FFFFFF;\n border-radius: 5px;\n border: 1px solid #EEEEEF;\n }\n\n &:last-child {\n .rows-line {\n width: 0;\n }\n }\n }\n }\n}\n\n.procesbox {\n flex-wrap: wrap;\n\n .avatar {\n position: relative;\n width: 31px;\n height: 31px;\n background: #3290C4;\n border-radius: 4px;\n font-size: @font-size-third;\n\n &--name {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n\n &-heade {\n width: 100%;\n height: 100%;\n vertical-align: middle;\n border-radius: 4px;\n }\n\n &__name {\n font-size: @font-size-third;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #FFFFFF;\n line-height: 9px;\n white-space: nowrap;\n }\n }\n\n .personal {\n position: relative;\n align-items: center;\n\n &__name {\n font-size: @font-size-third;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #9A9A9A;\n text-align: center;\n line-height: 20px;\n }\n\n .closebox {\n position: absolute;\n right: 0;\n top: 0;\n z-index: 9;\n font-size: 0;\n transform: translate(30%, -30%);\n background-color: #b7b5b5;\n border-radius: 1000px;\n padding: 1px;\n }\n }\n\n .arrow {\n height: 31px;\n line-height: 31px;\n padding: 0 5px;\n }\n}\n\n.show-more-copy-container {\n .header {\n font-size: 12px;\n line-height: 50px;\n padding: 0 20px;\n color: #828282;\n }\n\n .main {\n height: 0;\n flex: 1;\n padding: 6px 10px;\n }\n}\n</style>\n\n<script>\nimport Layout from './Layout.vue';\n\nimport { dingtalkComplexPicker } from '@/utils/dingtalk'\n\nexport default {\n name: 'CFlowPath',\n components: {\n Layout\n },\n computed: {\n approveTxt() {\n let list = this.approveSelList\n return list.length ? `${list.length}人依次审批` : '暂无审批人'\n },\n sendTxt() {\n let list = this.copySelList\n return list.length ? `抄送${list.length}人` : '暂无抄送人'\n },\n copySelListCompu() {\n let arrs = [...this.copySelList]\n if (arrs.length > 2) return arrs.slice(-2)\n else return arrs\n },\n },\n props: {\n approve: {\n type: Array\n },\n copy: {\n type: Array\n },\n isAllowCopy: { // 是否允许抄送人存在变更 (0:否, 1:是)\n // validator: val => (['0', '1'].includes(val)),\n type: [String, Number],\n default: 1\n }\n },\n data() {\n return {\n showMoreCopy: false,\n approveSelList: [],\n copySelList: []\n }\n },\n methods: {\n // 打开钉钉联系人控件。完成选审批操作\n // Useless\n // async handleOpenContacts() {\n // const result = await dingtalkComplexPicker({})\n // console.log(result);\n // },\n\n // 抄送人\n async handleOpenContactsCopy() {\n if (this.isAllowCopy != 1) return\n\n const result = await dingtalkComplexPicker({\n title: '添加抄送人',\n multiple: false,\n maxUsers: 9999,\n limitTips: '抄送人已达最大人数',\n pickedUsers: this.copySelList.map(user => (user.userid)),\n responseUserOnly: true,\n startWithDepartmentId: 0,\n deptId: -1,\n showLabelPick: false\n })\n\n const { users } = result\n\n if (users.length) {\n users.forEach(user => {\n this.copySelList.push({\n ...user,\n userid: user.emplId\n })\n })\n this.$emit('update:copy', [...this.copySelList])\n }\n },\n handleRemoveSignal(person, idx) {\n this.copySelList.splice(idx, 1)\n this.$emit('update:copy', [...this.copySelList])\n },\n\n\n __render_a__(arrs) {\n if (!Array.isArray(arrs)) arrs = this.approve\n this.approveSelList = [...arrs]\n },\n __render_c__(arrs) {\n if (!Array.isArray(arrs)) arrs = this.copy\n this.copySelList = [...arrs]\n },\n },\n watch: {\n approve: {\n handler(arrs) {\n this.__render_a__(arrs)\n },\n deep: true,\n },\n copy: {\n handler(arrs) {\n this.__render_c__(arrs)\n },\n deep: true\n }\n }\n\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CFlowPath.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CFlowPath.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CFlowPath.vue?vue&type=template&id=29a36c33&scoped=true\"\nimport script from \"./CFlowPath.vue?vue&type=script&lang=js\"\nexport * from \"./CFlowPath.vue?vue&type=script&lang=js\"\nimport style0 from \"./CFlowPath.vue?vue&type=style&index=0&id=29a36c33&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29a36c33\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('layout',{attrs:{\"title\":_vm.$attrs.title,\"required\":_vm.$attrs.required}},[_c('div',{staticClass:\"custom-date-container flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\",on:{\"click\":function () { return _vm.show = !_vm.show; }}},[(_vm.selectVal)?_c('div',{staticClass:\"value\"},[_vm._v(_vm._s(_vm.selectVal))]):_c('div',{staticClass:\"default\"},[_vm._v(\"请选择\")])]),_c('div',{staticClass:\"right\"},[(_vm.selectVal)?_c('van-icon',{attrs:{\"size\":20,\"color\":\"#A2A3A4\",\"name\":\"clear\"},on:{\"click\":_vm.handleRemoveVal}}):_vm._e(),_c('van-icon',{attrs:{\"color\":\"#A2A3A4\",\"size\":20,\"name\":\"arrow\"},on:{\"click\":function () { return _vm.show = !_vm.show; }}})],1)]),_c('van-popup',{attrs:{\"position\":\"bottom\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"switch-data-box flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_c('span',{class:{ 'active': _vm.swt === 0 },on:{\"click\":function () { return _vm.swt = 0; }}},[_vm._v(_vm._s(_vm.dateShow))]),(_vm.hasAm)?_c('span',{class:{ 'active': _vm.swt === 1 },on:{\"click\":function () { return _vm.swt = 1; }}},[_vm._v(_vm._s(_vm.rangeShow))]):_c('span',{class:{ 'active': _vm.swt === 2 },on:{\"click\":function () { return _vm.swt = 2; }}},[_vm._v(\"时间\")])]),_c('div',{staticClass:\"right\",on:{\"click\":_vm.handleConfirmBtn}},[_c('div',{staticClass:\"btn\"},[_vm._v(\"确认\")])])]),_c('van-calendar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 0),expression:\"swt === 0\"}],style:({ height: '340px' }),attrs:{\"poppable\":false,\"show-confirm\":false,\"show-title\":false,\"show-subtitle\":false,\"row-height\":\"50\",\"color\":\"#3290c4\",\"default-date\":_vm.calenderDefaultVal},on:{\"confirm\":_vm.onConfirmDateVal}}),_c('van-picker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 1 && _vm.hasAm),expression:\"swt === 1 && hasAm\"}],ref:\"vanPickerRef\",style:({ height: '340px' }),attrs:{\"show-toolbar\":false,\"columns\":_vm.rangeTimeList,\"default-index\":_vm.defaultAmPickerIdx},on:{\"change\":_vm.handlePickerChange}}),_c('van-datetime-picker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.swt === 2 && !_vm.hasAm),expression:\"swt === 2 && !hasAm\"}],ref:\"vanDatePickerRef\",style:({ height: '340px' }),attrs:{\"value\":_vm.timeVal,\"type\":\"time\",\"show-toolbar\":false,\"min-hour\":_vm.rendeMinHours,\"max-hour\":23,\"visible-item-count\":\"7\"},on:{\"change\":_vm.handleDateTimePickerChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <layout :title=\"$attrs.title\" :required=\"$attrs.required\">\n <div class=\"custom-date-container flex flex-row flex-row-aic\">\n <div class=\"left\" @click=\"() => show = !show\">\n <div v-if=\"selectVal\" class=\"value\">{{ selectVal }}</div>\n <div v-else class=\"default\">请选择</div>\n </div>\n <div class=\"right\">\n <van-icon v-if=\"selectVal\" :size=\"20\" color=\"#A2A3A4\" name=\"clear\" @click=\"handleRemoveVal\" />\n <van-icon color=\"#A2A3A4\" :size=\"20\" name=\"arrow\" @click=\"() => show = !show\" />\n </div>\n </div>\n\n <!-- NOTE: 调用日期和时间组件 -->\n <van-popup v-model=\"show\" position=\"bottom\">\n <!-- choose time -->\n <div class=\"switch-data-box flex flex-row flex-row-aic\">\n <div class=\"left\">\n <span @click=\"() => swt = 0\" :class=\"{ 'active': swt === 0 }\">{{ dateShow }}</span>\n <span v-if=\"hasAm\" @click=\"() => swt = 1\" :class=\"{ 'active': swt === 1 }\">{{ rangeShow }}</span>\n <span v-else @click=\"() => swt = 2\" :class=\"{ 'active': swt === 2 }\">时间</span>\n </div>\n <div class=\"right\" @click=\"handleConfirmBtn\">\n <div class=\"btn\">确认</div>\n </div>\n </div>\n\n <van-calendar v-show=\"swt === 0\" :poppable=\"false\" :show-confirm=\"false\" :show-title=\"false\"\n :show-subtitle=\"false\" :style=\"{ height: '340px' }\" row-height=\"50\" color=\"#3290c4\"\n :default-date=\"calenderDefaultVal\" @confirm=\"onConfirmDateVal\" />\n\n <van-picker ref=\"vanPickerRef\" v-show=\"swt === 1 && hasAm\" :show-toolbar=\"false\" :columns=\"rangeTimeList\"\n @change=\"handlePickerChange\" :style=\"{ height: '340px' }\" :default-index=\"defaultAmPickerIdx\" />\n\n <van-datetime-picker ref=\"vanDatePickerRef\" v-show=\"swt === 2 && !hasAm\" :value=\"timeVal\" type=\"time\"\n :show-toolbar=\"false\" :min-hour=\"rendeMinHours\" :max-hour=\"23\" :style=\"{ height: '340px' }\"\n visible-item-count=\"7\" @change=\"handleDateTimePickerChange\" />\n </van-popup>\n </layout>\n</template>\n\n\n<style lang=\"less\" scoped>\n.custom-date {\n &-container {\n justify-content: space-between;\n\n .left {\n flex: 1;\n\n .value {\n font-size: 14px;\n font-weight: 400;\n color: #1A1A1F;\n line-height: 20px;\n }\n\n .default {\n font-size: 14px;\n font-weight: 400;\n color: #727273;\n line-height: 20px;\n }\n }\n\n .right {\n .van-icon {\n margin-left: 2px;\n }\n }\n }\n}\n\n.switch-data-box {\n justify-content: space-between;\n padding: 0 12px;\n\n span {\n display: inline-block;\n font-size: 14px;\n font-weight: 400;\n color: #707073;\n padding: 10px 8px;\n margin-right: 6px;\n\n &.active {\n border-bottom: 2px solid #707073;\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .right {\n font-size: 16px;\n font-weight: 500;\n color: #3290C4;\n line-height: 22px;\n }\n}\n\n.swtbox2 {\n padding: 20px 0;\n box-sizing: border-box;\n}\n</style>\n\n<script>\nimport Layout from './Layout.vue';\n\nimport { formatTime, formatBaseDateTime } from '@/utils/formatTime'\n\nexport default {\n name: \"CDate\",\n components: {\n Layout\n },\n computed: {\n dateShow() {\n return this.dateVal ? formatTime(this.dateVal) : '日期'\n },\n\n rangeShow() {\n return this.rangeTime === '上午' ? '上午' : '下午'\n },\n\n rendeMinHours() {\n let minHour = 0\n if (this.rangeTime === '下午') minHour = 12\n return minHour\n },\n defaultAmPickerIdx() {\n if (this.rangeTime === '上午') return 0\n return 1\n },\n },\n props: {\n value: {\n type: String,\n default: ''\n },\n hasAm: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n show: false,\n swt: 0,\n\n selectVal: '',\n rangeTimeList: ['上午', '下午'],\n\n calenderDefaultVal: new Date,\n\n // dateTime vals\n rangeTime: '上午',\n dateVal: '',\n timeVal: '00:00',\n }\n },\n methods: {\n // 确定日期内容\n onConfirmDateVal(date) {\n this.dateVal = date\n },\n\n reset() {\n this.selectVal = ''\n this.dateVal = ''\n this.timeVal = '00:00'\n this.rangeTime = '上午'\n },\n\n handleRemoveVal() {\n this.reset()\n },\n\n // 选择上午还是下午\n handlePickerChange(event, val) {\n this.rangeTime = val\n },\n\n // time picker change\n handleDateTimePickerChange(picker) {\n const [hours, minus] = picker.getValues()\n this.timeVal = `${hours}:${minus}`\n },\n\n // 确认提交的按钮\n handleConfirmBtn() {\n try {\n this.show = false\n if (!this.dateVal) this.dateVal = this.calenderDefaultVal\n\n if (this.hasAm) this.$refs.vanPickerRef.confirm()\n\n this.$nextTick(() => {\n let selval = this.hasAm ? `${formatBaseDateTime(this.dateVal)} ${this.rangeTime}` : `${formatBaseDateTime(this.dateVal)} ${this.timeVal}`\n this.selectVal = selval\n this.$emit('input', selval)\n })\n } catch (error) {\n console.log('%c handleConfirmBtn >>>', 'background: blue; color: #fff', error);\n }\n }\n },\n watch: {\n show(bool) {\n if (!bool) {\n this.swt = 0\n }\n },\n value: {\n handler(vals) {\n if (vals) {\n const [date, time] = vals.split(' ')\n let isM = time.includes(':') // 判断是否包含:\n if (isM) {\n let [hours] = time.split(':')\n this.rangeTime = hours > 12 ? '下午' : '上午'\n this.timeVal = time\n } else {\n this.rangeTime = time\n }\n this.selectVal = vals\n this.calenderDefaultVal = new Date(date)\n this.dateVal = date\n }\n },\n immediate: true\n }\n }\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CDate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CDate.vue?vue&type=template&id=74862614&scoped=true\"\nimport script from \"./CDate.vue?vue&type=script&lang=js\"\nexport * from \"./CDate.vue?vue&type=script&lang=js\"\nimport style0 from \"./CDate.vue?vue&type=style&index=0&id=74862614&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74862614\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layout-container\"},[_c('div',{staticClass:\"layout__title flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$attrs.title))]),(_vm.$attrs.required)?_c('span',{staticClass:\"require\"},[_vm._v(\"*\")]):_vm._e()]),_c('div',{staticClass:\"right\"},[_c('van-switch',{attrs:{\"size\":20,\"value\":_vm.$attrs.value,\"active-color\":\"#3290c4\",\"active-value\":_vm.$attrs.activeValue,\"inactive-value\":_vm.$attrs.inactiveValue},on:{\"change\":function (value) { return (_vm.$emit('input', value)); }}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"layout-container\">\n <div class=\"layout__title flex flex-row flex-row-aic\">\n <div class=\"left\">\n <span class=\"title\">{{ $attrs.title }}</span>\n <span v-if=\"$attrs.required\" class=\"require\">*</span>\n </div>\n <div class=\"right\">\n <van-switch\n :size=\"20\"\n :value=\"$attrs.value\"\n active-color=\"#3290c4\"\n :active-value=\"$attrs.activeValue\"\n :inactive-value=\"$attrs.inactiveValue\"\n @change=\"value => ($emit('input', value))\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"less\" scoped>\n.layout {\n &-container {\n padding: 9px 12px;\n background: #fff;\n .title,\n .require {\n font-size: 14px;\n font-weight: 400;\n }\n .title {\n color: #191A1E;\n line-height: 20px;\n margin-bottom: 5px;\n }\n .require {\n color: #F45642;\n line-height: 20px;\n margin-left: 2px;\n }\n }\n &__title {\n justify-content: space-between;\n }\n}\n</style>\n\n<script>\nexport default {\n name: 'CSwitch'\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSwitch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CSwitch.vue?vue&type=template&id=8ef9abca&scoped=true\"\nimport script from \"./CSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./CSwitch.vue?vue&type=script&lang=js\"\nimport style0 from \"./CSwitch.vue?vue&type=style&index=0&id=8ef9abca&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ef9abca\",\n null\n \n)\n\nexport default component.exports","/**\n * @description 混入组件\n */\nimport CSelect from '../components/CSelect.vue';\nimport CInput from '../components/CInput.vue';\nimport CFiles from '../components/CFiles.vue';\nimport CFlowPath from '../components/CFlowPath.vue';\nimport CDate from '../components/CDate.vue';\nimport CSwitch from '../components/CSwitch.vue'\nimport CSelectImitate from '../components/CSelectImitate.vue'\n\nexport default {\n components: {\n CSelect,\n CInput,\n CFiles,\n CFlowPath,\n CDate,\n CSwitch,\n CSelectImitate\n }\n}","/**\n * @description 审批流程模块\n */\nimport request from '@/utils/request'\n\n// 获取审批流程\nexport function getApproveFlowPath (formData) {\n return request({\n method: 'POST',\n url: \"approveflow/get_data\",\n data: formData\n })\n}","\n\nimport { getStringTye } from '@/utils/util'\nimport indexComponentsMixins from './js/IndexComponentsMixins'\nimport { getApproveFlowPath } from '@/api/approveflow'\n\nimport { platform, settingNavigationRight, settingNavigationTitle } from '@/utils/dingtalk';\n\n\nexport default {\n mixins: [\n indexComponentsMixins\n ],\n props: {\n editData: {\n type: Object,\n default: () => (null)\n },\n editId: {\n type: Number,\n default: 0\n },\n flag: {\n type: String,\n validator: flag => (['', 'info', 'approve'].includes(flag)),\n }\n },\n data () {\n return {\n approvePeople: [], // 审核人员\n copyPeople: [], // 抄送人\n isCopy: undefined // 是否可修改抄送人\n }\n },\n\n created () {\n if (platform !== 'notInDingTalk') {\n this.navigationSetting()\n }\n },\n\n activated() {\n if (platform !== 'notInDingTalk') {\n this.handleSetRightTitle()\n }\n },\n\n methods: {\n // NOTE: 设置标题等\n navigationSetting() {\n settingNavigationTitle({\n title: this.pageTitle\n })\n },\n handleNavRightBack() {\n this.$router.push({\n name: 'ApplyState',\n query: {\n type: this.module,\n }\n })\n },\n handleSetRightTitle () {\n settingNavigationRight({\n show: true,\n control: true,\n text: this.pageRightTitle,\n callback: this.handleNavRightBack\n })\n },\n /**\n * @description 获取的默认审核流程数据\n * */\n async getCommonFlowPathData (options = {}, callback) {\n try {\n let module = this.module\n const params = {\n module\n }\n\n // NOTE: moduel = [5, 6, 8]时,需要填写 `flow_item`字段。 取值 `options.flow_item`; 获取审批流程\n const ALLOW_MODULES = [5, 6, 8]\n\n if (ALLOW_MODULES.includes(module) && options.flow_item) params['flow_item'] = options.flow_item\n \n const res = await getApproveFlowPath(params)\n\n if (res.code === 1) {\n /* { userid: string, avatar: string, name: string }[] */\n const { \n approve_user = [],\n copy_user = [],\n is_copy = \"0\"\n } = res.data\n this.isCopy = is_copy\n this.approvePeople = approve_user\n this.copyPeople = copy_user\n\n\n callback && callback()\n }\n } catch (e) {\n console.log(e);\n }\n },\n\n /**\n * @description 基础校验是否为空, callback 可以自定义继续判断\n * @param {Object} param0 { mapTxt, requiredKey, data}\n * @param {Function} callback (data, hasEmpty, hasKey) => ([hasEmpty, hasKey, [toast,]])\n * @returns Boolean\n */\n __validtor__ ({ mapTxt, requiredKey, data }, callback) {\n // let requiredKey = [\n // 'somekey'\n // ]\n // let mapTxt = {\n // 'somekey': 'something'\n // }\n let requiredKeyLength = requiredKey.length\n let hasEmpty = false\n let hasKey = ''\n\n for(let i = 0; i < requiredKeyLength; i++) {\n let key = requiredKey[i]\n let val = data[key]\n let type = getStringTye(val)\n \n if (type === 'Number' && !isNaN(val)) continue\n else if (type === 'Array' && val.length) continue\n else if (type === 'String' && val) continue\n else {\n hasKey = key\n hasEmpty = true\n break\n }\n }\n\n // NOTE: 回调是为了判断当某值需要满足上游字段必填才出现的判断\n // 参考文件`IndexType5`的 `validate`函数\n let customToast = ''\n if (callback) {\n const [hEmpty, hKey, toastContext] = callback(data, hasEmpty, hasKey)\n hasEmpty = hEmpty\n hasKey = hKey\n customToast = toastContext\n }\n\n if (customToast) {\n this.$toast(customToast)\n return true\n } else if (hasEmpty) {\n this.$toast(mapTxt[hasKey] + '为空')\n return true\n }\n },\n\n /**\n * @description 跳转我的申请列表页面\n */\n __jump2apply_state__ () {\n this.$store.commit({\n type: 'app/ROUTE_REMOVE',\n value: 'Applyfor'\n })\n this.$router.replace({\n name: 'ApplyState',\n query: {\n type: this.module\n }\n })\n }\n },\n watch: {\n editData: {\n handler (vals) {\n if (vals) this.handleFormatEditData(vals)\n },\n deep: true,\n immediate: true\n }\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"product-store-container\"},[_c('div',{staticClass:\"product-store__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left-title\"},[_c('span',[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),(!_vm.disabled)?_c('div',{staticClass:\"right-content flex flex-row flex-row-aic\"},[(['1', '3'].includes(_vm.type))?[_c('span',{on:{\"click\":_vm.handleAddGoods}},[_vm._v(\"添加新商品\")]),_c('span',{staticClass:\"divider\"})]:_vm._e(),_c('span',{on:{\"click\":function($event){_vm.productStoreActionsheetVisibility = true}}},[_vm._v(\"批量导入\")]),_c('span',{staticClass:\"divider\"}),_c('span',{on:{\"click\":_vm.handleGoPStore}},[_vm._v(\"商品库选择\")])],2):_vm._e()]),(_vm.showList)?[_c('div',{staticClass:\"product-list-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length > 2),expression:\"list.length > 2\"}],staticClass:\"product-list__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"left\"},[_vm._v(\"商品列表\")]),_c('div',{staticClass:\"right\",on:{\"click\":function($event){_vm.showMore = !_vm.showMore}}},[(!_vm.showMore)?[_vm._v(\" 展开\"),_c('van-icon',{attrs:{\"name\":\"arrow-down\"}})]:[_vm._v(\" 收起\"),_c('van-icon',{attrs:{\"name\":\"arrow-up\"}})]],2)]),_c('div',{staticClass:\"product-list__rows\"},_vm._l((_vm.renderInfoList),function(item,idx){return _c('div',{key:idx,staticClass:\"prow\"},[_c('div',{staticClass:\"prow-header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"prow-header__left\"},[_vm._v(\" \"+_vm._s(item.goods_name)+\" \")]),(!_vm.disabled)?_c('div',{staticClass:\"prow-header__right\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.flag != 2),expression:\"item.flag != 2\"}],staticClass:\"update\",on:{\"click\":function($event){return _vm.handleUpdateRow(item, idx)}}},[_vm._v(\"更改\")]),_c('span',{staticClass:\"remove\",on:{\"click\":function($event){return _vm.handleRemoveRow(item, idx)}}},[_vm._v(\"删除\")])]):_vm._e()]),_vm._l((item.goods_stock),function(goodsStock,idx){return [_c('div',{key:idx,staticClass:\"prow-middle flex flex-row flex--row-aic\"},[_c('div',{staticClass:\"flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"tags\"},[_vm._v(_vm._s(goodsStock.name))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.needShowPrice),expression:\"needShowPrice\"}],staticClass:\"price\"},[_vm._v(\"¥\"+_vm._s(goodsStock.price))])]),_c('div',{staticClass:\"count\"},[_vm._v(\"x\"+_vm._s(goodsStock.stock))])])]}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.needShowPrice),expression:\"needShowPrice\"}],staticClass:\"prow-total\"},[_c('span',[_vm._v(\"¥\")]),_vm._v(_vm._s(_vm._f(\"sumPrice\")(item.goods_stock))+\" \")])],2)}),0)])]:[_c('div',{staticClass:\"product-store__empty\"},[_vm._v(\" \"+_vm._s(_vm.showEmptyTxt)+\" \")])],_c('van-action-sheet',{attrs:{\"actions\":_vm.actions,\"cancel-text\":\"取消\",\"close-on-click-action\":\"\"},on:{\"select\":_vm.handleSelectSheet},model:{value:(_vm.productStoreActionsheetVisibility),callback:function ($$v) {_vm.productStoreActionsheetVisibility=$$v},expression:\"productStoreActionsheetVisibility\"}},[_c('div',{staticClass:\"action-sheet-container\",attrs:{\"slot\":\"description\"},on:{\"click\":_vm.handleDownloadHelp},slot:\"description\"},[_c('div',{staticClass:\"icon\"},[_c('img',{attrs:{\"src\":require('@/assets/icon-excel.png'),\"alt\":\"\"}})]),_c('div',{staticClass:\"title\"},[_vm._v(\"批量导入方法说明.Excel\")]),_c('div',{staticClass:\"sub-title\"},[_vm._v(\"264.45 KB\")])])]),_c('input',{ref:\"importTemlate\",attrs:{\"accept\":_vm.excelSuffix,\"type\":\"file\",\"name\":\"file\",\"id\":\"file\"},on:{\"change\":_vm.handleInputFileChange}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"product-store-container\">\n <div class=\"product-store__header flex flex-row flex-row-aic\">\n <div class=\"left-title\">\n <span>{{ title }}</span>\n <span class=\"required\">*</span>\n </div>\n <div class=\"right-content flex flex-row flex-row-aic\" v-if=\"!disabled\">\n <template v-if=\"['1', '3'].includes(type)\">\n <span @click=\"handleAddGoods\">添加新商品</span>\n <span class=\"divider\"></span>\n </template>\n <span @click=\"productStoreActionsheetVisibility = true\">批量导入</span>\n <span class=\"divider\"></span>\n <span @click=\"handleGoPStore\">商品库选择</span>\n </div>\n </div>\n\n <template v-if=\"showList\">\n <div class=\"product-list-container\">\n <div class=\"product-list__header flex flex-row flex-row-aic\" v-show=\"list.length > 2\">\n <div class=\"left\">商品列表</div>\n <div class=\"right\" @click=\"showMore = !showMore\">\n <template v-if=\"!showMore\">\n 展开<van-icon name=\"arrow-down\" />\n </template>\n <template v-else>\n 收起<van-icon name=\"arrow-up\" />\n </template>\n </div>\n </div>\n <div class=\"product-list__rows\">\n <div class=\"prow\" v-for=\"(item, idx) in renderInfoList\" :key=\"idx\">\n <div class=\"prow-header flex flex-row flex-row-aic\">\n <div class=\"prow-header__left\">\n {{ item.goods_name }}\n </div>\n <div class=\"prow-header__right\" v-if=\"!disabled\">\n <!-- NOTE: flag == 2 不可以修改 -->\n <span class=\"update\" v-show=\"item.flag != 2\" @click=\"handleUpdateRow(item, idx)\">更改</span>\n <span class=\"remove\" @click=\"handleRemoveRow(item, idx)\">删除</span>\n </div>\n </div>\n <template v-for=\"(goodsStock, idx) in item.goods_stock\">\n <div class=\"prow-middle flex flex-row flex--row-aic\" :key=\"idx\">\n <div class=\"flex flex-row flex-row-aic\">\n <div class=\"tags\">{{ goodsStock.name }}</div>\n <div v-show=\"needShowPrice\" class=\"price\">¥{{ goodsStock.price }}</div>\n </div>\n <div class=\"count\">x{{ goodsStock.stock }}</div>\n </div>\n </template>\n <div class=\"prow-total\" v-show=\"needShowPrice\">\n <span>¥</span>{{ item.goods_stock | sumPrice }}\n </div>\n </div>\n\n </div>\n </div>\n </template>\n <template v-else>\n <div class=\"product-store__empty\">\n {{ showEmptyTxt }}\n </div>\n </template>\n\n <!-- NOTE: 弹窗提示批量导入 -->\n <van-action-sheet v-model=\"productStoreActionsheetVisibility\" :actions=\"actions\" cancel-text=\"取消\"\n close-on-click-action @select=\"handleSelectSheet\">\n <div class=\"action-sheet-container\" slot=\"description\" @click=\"handleDownloadHelp\">\n <div class=\"icon\">\n <img :src=\"require('@/assets/icon-excel.png')\" alt=\"\">\n </div>\n <div class=\"title\">批量导入方法说明.Excel</div>\n <div class=\"sub-title\">264.45 KB</div>\n </div>\n </van-action-sheet>\n\n <!-- NOTE: 上传的触发点 -->\n <input ref=\"importTemlate\" :accept=\"excelSuffix\" type=\"file\" name=\"file\" id=\"file\" @change=\"handleInputFileChange\" />\n </div>\n</template>\n\n<style lang=\"less\" scoped>\n@import url('@/styles/variables.less');\n\n.product-store {\n &-container {\n margin-top: 10px;\n\n #file {\n font-size: 0;\n width: 0;\n height: 0;\n visibility: hidden;\n line-height: 0;\n padding-block: 0;\n padding-inline: 0;\n position: absolute;\n }\n }\n\n &__header {\n padding: 4px 12px 8px;\n justify-content: space-between;\n\n .left-title {\n font-size: @font-size-common;\n color: #727273;\n\n .required {\n color: red;\n }\n }\n\n .right-content {\n font-size: @font-size-third;\n\n span {\n color: @link-color;\n }\n\n .divider {\n display: inline-block;\n width: 1px;\n height: 10px;\n margin: 0 8px;\n background-color: rgba(151, 151, 151, 0.5);\n }\n }\n }\n\n &__empty {\n font-size: @font-size-secondery;\n font-weight: 400;\n color: #191A1E;\n line-height: 20px;\n padding: 15px 12px;\n background-color: @white;\n }\n}\n\n.action-sheet-container {\n .icon {\n img {\n width: 48px;\n height: 48px;\n }\n }\n\n .title {\n font-size: 12px;\n font-weight: 400;\n color: #191A1E;\n line-height: 18px;\n }\n\n .sub-title {\n font-size: 12px;\n font-weight: 400;\n color: #9A9A9A;\n line-height: 18px;\n }\n}\n\n.product-list {\n &-container {\n background-color: @white;\n padding: 8px 12px;\n }\n\n &__header {\n padding: 12px 0;\n justify-content: space-between;\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\n\n .left {\n font-size: 14px;\n font-weight: 400;\n color: #191A1E;\n }\n\n .right {\n font-size: 14px;\n font-weight: 400;\n color: #3290C4;\n }\n }\n\n &__rows {\n transition: height .8s;\n\n .prow {\n padding: 12px 0 10px;\n border-bottom: 1px solid rgba(151, 151, 151, 0.3);\n\n &:last-child {\n border-bottom: initial;\n }\n\n &-header {\n padding-bottom: 6px;\n justify-content: space-between;\n\n &__left {\n font-size: @font-size-secondery;\n font-weight: 400;\n color: #191A1E;\n }\n\n &__right {\n font-size: 14px;\n\n .update {\n color: #3290C4;\n }\n\n .remove {\n margin-left: 16px;\n color: #F45642;\n }\n }\n }\n\n &-middle {\n padding: 5px 0;\n justify-content: space-between;\n font-size: @font-size-common;\n font-weight: 400;\n color: #727273;\n\n >div:first-child {\n .price {\n font-size: 14px;\n margin-left: 10px;\n vertical-align: text-bottom;\n }\n }\n }\n\n &-total {\n span {\n font-size: 12px;\n vertical-align: baseline;\n }\n\n padding-top: 6px;\n font-size: 16px;\n font-weight: 400;\n color: #F45642;\n line-height: 24px;\n }\n }\n }\n}\n</style>\n\n<script>\n\nimport { postImportFile, getImportTemplate } from '@/api/common';\nimport { excelSuffix } from '@/utils/constant'\nimport { downloadFileUseATarget } from '@/utils/util';\nimport upload from '@/utils/upload';\nimport vueBus from '@/utils/vueBus';\n\n\nexport default {\n name: 'CProductStore',\n props: {\n value: {\n type: Array,\n default: () => ([])\n },\n type: {\n validator: t => (['1', '3', '4'].includes(t)),\n required: true\n },\n disabled: {\n typeof: Boolean,\n default: false\n }\n },\n computed: {\n showEmptyTxt() {\n return `还未添加${this.title}`\n },\n\n // NOTE: 只有采购商品时才展示价格等相关内容\n needShowPrice() {\n return ['1'].includes(this.type)\n },\n showList() {\n return Boolean(this.list.length)\n },\n title() {\n let type = this.type\n let title = ''\n switch (type) {\n case '1':\n title = '采购明细'\n break\n case '3':\n title = '入库明细'\n break\n case '4':\n title = '领用明细'\n break\n }\n return title\n },\n renderInfoList() {\n if (this.showMore) return this.list\n return this.list.slice(0, 2)\n },\n },\n data: () => ({\n showMore: false,\n excelSuffix: excelSuffix.join(','),\n productStoreActionsheetVisibility: false,\n actions: [\n { name: '下载模板', color: 'rgba(0, 122, 255, 1)' },\n { name: '导入模板', color: 'rgba(0, 122, 255, 1)' },\n ],\n list: []\n }),\n\n created() {\n // 商品库选择\n vueBus.$on('updateProductList', this.handleUpdateList)\n\n // 添加/更新商品\n vueBus.$on('changeGoods', this.handleAddOrUpdateData)\n },\n\n mounted() {\n this.handleUpdateValues()\n },\n\n methods: {\n\n handleUpdateValues() {\n const arrs = this.value\n if (Array.isArray(arrs)) this.list = [...arrs].map(item => {\n let goods_stock = item.goods_stock\n if (typeof goods_stock === 'string') goods_stock = JSON.parse(goods_stock)\n return {\n ...item,\n goods_stock\n }\n })\n },\n\n // NOTE: 处理新增和修改商品\n // 更新 flag = 3。 新增 flag = 1\n handleAddOrUpdateData(data) {\n if (!data) return\n const { flag } = data\n // NOTE: 可能存在新商品无Id情况; 要兼容\n const hasGoodsId = Boolean(data.goods_id)\n\n let idx = this.list.findIndex(goods => hasGoodsId ? goods.goods_id === data.goods_id : goods.__id__ === data.__id__)\n\n console.log('handleAddOrUpdateData', flag, data, this.list, idx);\n if (idx >= 0) { // 说明是存在列表的产品\n // if (!hasGoodsId) data.flag = '1'\n this.list.splice(idx, 1, { ...data })\n } else { // add\n this.list.push({ ...data })\n }\n\n // if (flag == '3') { // update\n // if (!hasGoodsId) data.flag = '1'\n // let idx = this.list.findIndex(goods => hasGoodsId ? goods.goods_id === data.goods_id : goods.__id__ === data.__id__)\n // if (idx >= 0) this.list.splice(idx, 1, { ...data })\n // } else { // add\n // \n // }\n },\n\n // NOTE: 商品库选择数据\n handleUpdateList(data) {\n const { customCount, goodsStock, item, GoodsPrice } = data\n console.log('handleUpdateList', customCount, goodsStock, item, GoodsPrice);\n const isHasGoods = this.list.some(goods => goods.goods_id === item.id)\n if (isHasGoods) {\n let idx = this.list.findIndex(goods => goods.goods_id === item.id)\n const { goods_stock } = this.list[idx]\n // 判断是否以添加规格\n let hasGoodsStock = goods_stock.some(standard => standard.id === goodsStock.id)\n if (hasGoodsStock) {\n let _idx = goods_stock.findIndex(standard => standard.id === goodsStock.id)\n if (_idx >= 0) {\n goods_stock[_idx] = {\n ...goods_stock[_idx],\n price: GoodsPrice,\n stock: customCount\n }\n }\n } else {\n goods_stock.push({\n id: goodsStock.id,\n name: goodsStock.name,\n price: GoodsPrice,\n stock: customCount\n })\n }\n this.$forceUpdate()\n } else {\n const _template_ = {\n flag: 3,\n goods_id: item.id,\n goods_category_first: item.goods_category_first,\n goods_category_id: item.goods_category_id,\n goods_no: item.goods_no,\n goods_name: item.goods_name,\n goods_brand: item.goods_brand,\n goods_stock: [\n {\n id: goodsStock.id,\n name: goodsStock.name,\n price: GoodsPrice,\n stock: customCount\n }\n ]\n }\n this.list = [...this.list, _template_]\n }\n },\n\n handleSelectSheet(action, idx) {\n switch (idx) {\n case 0:\n this.handleDownloadTemplate()\n break\n case 1:\n this.$refs.importTemlate.click()\n break\n }\n },\n /**\n * @description 下载文件模板\n */\n async handleDownloadTemplate() {\n try {\n const formData = {\n module: this.type\n }\n const result = await getImportTemplate(formData)\n if (result.code === 1) {\n const { url } = result.data\n if (url) { // url 存在下载\n downloadFileUseATarget(url)\n } else this.$toast('请联系网络管理员')\n }\n } catch (error) {\n console.log('%c handleDownloadTemplate >>>', 'background: blue; color: #fff', error);\n }\n },\n\n // listener input:file change\n async handleInputFileChange(event) {\n let files = event.target.files\n if (files.length) {\n let file = files[0]\n event.target.value = null\n console.log('%c change file >>>', 'background: blue; color: #fff', file);\n await this.handleImportFile(file)\n } else {\n this.$refs.importTemlate.value = ''\n }\n },\n\n // import file\n async handleImportFile(file) {\n try {\n // update file\n const fileHref = await upload(file)\n // post import file\n const result = await postImportFile({\n module: this.type,\n file: fileHref.url\n })\n\n if (result.code === 1) {\n const { error_data = [], apply_goods_data = [] } = result.data\n if (error_data.length) {\n // error_list => { msg: String }[]\n this.handleTipsImport(error_data, apply_goods_data)\n } else if (apply_goods_data.length) {\n this.list = [\n ...this.list,\n ...apply_goods_data\n ]\n }\n }\n } catch (error) {\n console.log('%c handleImportFileError >>>', 'background: blue; color: #fff', error);\n }\n\n },\n\n // XXX: 下载批量导入说明\n // Useless. 功能忽略\n handleDownloadHelp() {\n // util/downloadFileUseATarget\n this.$toast('点击下载模板进行编辑上传')\n },\n\n // NOTE: 提醒某某商品库存不足。让用户选择是否申领/采购\n handleTipsImport(errs, arrs) {\n this.$dialog.confirm({\n message: errs.map((item, idx) => `${idx + 1}、${item.msg}`).join('\\t\\n'),\n confirmButtonText: '取消申领',\n confirmButtonColor: 'rgba(0, 122, 255, 1)',\n cancelButtonText: '按已有的库存申领'\n }).catch(() => {\n this.list = [\n ...this.list,\n ...arrs\n ]\n })\n },\n\n // NOTE: 删除单项\n handleRemoveRow(item, idx) {\n let article = item.goods_name\n this.$dialog.confirm({\n title: `删除${this.title}`,\n message: `请确认是否删除“${article}”的信息`,\n confirmButtonText: '否',\n confirmButtonColor: '#576B95',\n cancelButtonText: '是'\n }).catch(() => {\n this.list.splice(idx, 1)\n })\n },\n\n // NOTE: 编辑Row\n handleUpdateRow(item) {\n this.$store.commit({\n type: \"app/ROUTE_ADD\",\n value: \"Goods\"\n })\n\n this.$nextTick(() => {\n this.$router.push({\n name: 'Goods',\n query: {\n flag: '3',\n type: this.type,\n flagtxt: this.$route.query.flag,\n edit: JSON.stringify(item)\n }\n })\n })\n },\n\n // 前往商品库列表\n handleGoPStore() {\n this.$router.push({\n name: 'ProductStore',\n query: {\n module: this.type\n }\n })\n },\n\n // NOTE: 添加新商品\n handleAddGoods() {\n // 添加路由缓存\n this.$store.commit({\n type: \"app/ROUTE_ADD\",\n value: \"Goods\"\n })\n\n this.$nextTick(() => {\n this.$router.push({\n name: 'Goods',\n query: {\n type: this.type\n }\n })\n })\n }\n },\n\n filters: {\n // NOTE: 累加器\n sumPrice(arrs) {\n let sum = 0\n return arrs.reduce((accumulator, cur) => (accumulator + (Number(cur.price) * Number(cur.stock))), sum)\n },\n },\n watch: {\n list: {\n handler(arrs) {\n if (Array.isArray(arrs) && arrs.length) {\n this.$listeners['input'] && this.$emit('input', arrs)\n }\n }\n\n }\n },\n beforeDestroy() {\n vueBus.$off('updateProductList')\n vueBus.$off('changeGoods')\n },\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CProductStore.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CProductStore.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CProductStore.vue?vue&type=template&id=7d067ce3&scoped=true\"\nimport script from \"./CProductStore.vue?vue&type=script&lang=js\"\nexport * from \"./CProductStore.vue?vue&type=script&lang=js\"\nimport style0 from \"./CProductStore.vue?vue&type=style&index=0&id=7d067ce3&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d067ce3\",\n null\n \n)\n\nexport default component.exports","<template>\n <div class=\"type6-container\">\n <c-input title=\"申请事由\" :required=\"true\" input-type=\"textarea\" :maxlength=\"800\" v-model=\"reason\" />\n\n <c-select title=\"采购类型\" :required=\"true\" v-model=\"type\" :list=\"applyTypeList\" pickerValueKey=\"name\"\n pickerValueId=\"id\" />\n\n <!-- NOTE: 只有货物采购才有 采购明细 -->\n <template v-if=\"type == '1'\">\n <c-product-store ref=\"productStoreRef\" v-model=\"apply_goods\" type=\"1\" />\n </template>\n\n <!-- :disabled=\"type == '1'\" -->\n <c-input title=\"总金额(元)\" :required=\"true\" input-type=\"number\" v-model=\"total_amount\" />\n\n <c-date title=\"预计申购完成日期\" v-model=\"start_time\" />\n\n <c-files ref=\"documentRef\" v-model=\"document\" />\n\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\n\n <c-select title=\"支付方式\" :required=\"true\" :list=\"applyPayTypeList\" v-model=\"pay_type\" pickerValueKey=\"name\"\n pickerValueId=\"id\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<script>\n\n/**\n * @description 申购申请\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\nimport CProductStore from './CProductStore.vue'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType1',\n mixins: [\n indexMixin\n ],\n components: {\n CProductStore\n },\n data() {\n return {\n pageTitle: '申购申请',\n pageRightTitle: '我的申购',\n degreeList: this.$store.state.enum.degreeList,\n applyTypeList: this.$store.state.enum.applyTypeList,\n applyPayTypeList: this.$store.state.enum.applyPayTypeList,\n\n // ===> formData start\n way: 'create',\n id: '',\n module: 1,\n reason: '', // 申购事由\n type: '', // 采购类型\n document: [], // 附件\n images: [],\n total_amount: '', // 总金额\n pay_type: '', // 支付方式\n start_time: '', // 预计申购完成日期(日期)\n apply_goods: [],\n approve_user: [],\n copy_user: []\n // ===> formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type1 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.reason = data.reason\n this.type = data.type\n\n const mif = data.module_info\n\n this.total_amount = `${Number(mif.total_amount)}`\n this.pay_type = mif.pay_type\n\n if (mif.start_time) {\n this.start_time = mif.start_time\n }\n\n this.apply_goods = data.apply_goods.map(goods => ({\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\n ...goods,\n goods_stock: JSON.parse(goods.goods_stock)\n }))\n\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n // NOTE: 主动触发子组件渲染\n this.$nextTick(() => {\n this.$refs.productStoreRef.handleUpdateValues()\n this.$refs.imageRef.handleUpdateValues()\n this.$refs.documentRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n type: this.type,\n total_amount: this.total_amount,\n pay_type: this.pay_type,\n start_time: this.start_time,\n apply_goods: this.apply_goods,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let images = this.images\n if (Array.isArray(images) && images.length) {\n templateObj.images = images.map(image => image.url).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n\n validate(data) {\n let mapTxt = {\n 'reason': '申购事由',\n 'type': '采购类型',\n 'apply_goods': '申购明细',\n 'total_amount': '总金额',\n 'pay_type': '支付方式'\n }\n let requiredKey = [\n 'reason',\n 'type',\n // 'apply_goods',\n 'total_amount',\n 'pay_type'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n }, (data, hasEmpty, hasKey) => {\n // 判断当type == 1 市内出差时。 判断是否出境\n if (data.type == 1 && !(Array.isArray(data.apply_goods) && data.apply_goods.length)) {\n hasEmpty = true\n hasKey = 'apply_goods'\n }\n return [hasEmpty, hasKey]\n })\n },\n\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n },\n\n watch: {\n apply_goods: {\n handler(val) {\n // 非编辑时可以变更\n // !this.$route.query.edit\n if (Array.isArray(val) && val.length && this.type == 1) {\n let sum = 0\n for (const item of val) {\n let currentItem = 0\n sum += item.goods_stock.reduce((accumulator, cur) => (accumulator + (Number(cur.price) * Number(cur.stock))), currentItem)\n }\n this.total_amount = `${sum}`\n }\n },\n deep: true\n }\n }\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType1.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType1.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType1.vue?vue&type=template&id=6ea54992\"\nimport script from \"./IndexType1.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType1.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-select',{attrs:{\"title\":\"呈批类型\",\"required\":true,\"list\":_vm.offerList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),_c('c-input',{attrs:{\"title\":\"发文字号\",\"required\":true},model:{value:(_vm.word_size),callback:function ($$v) {_vm.word_size=$$v},expression:\"word_size\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"印制份数\",\"input-type\":\"number\"},model:{value:(_vm.number),callback:function ($$v) {_vm.number=$$v},expression:\"number\"}}),_c('c-input',{attrs:{\"title\":\"申请标题\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-input',{attrs:{\"title\":\"申请内容\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-files',{ref:\"fileRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <c-select title=\"呈批类型\" :required=\"true\" v-model=\"type\" :list=\"offerList\" pickerValueKey=\"name\" pickerValueId=\"id\" />\n\n <c-input title=\"发文字号\" :required=\"true\" v-model=\"word_size\" />\n\n <c-select title=\"缓急程度\" :required=\"true\" v-model=\"desc\" :list=\"degreeList\" pickerValueKey=\"name\"\n pickerValueId=\"id\" />\n\n <c-input title=\"印制份数\" input-type=\"number\" v-model=\"number\" />\n\n <c-input title=\"申请标题\" :required=\"true\" v-model=\"reason\" />\n\n <c-input title=\"申请内容\" input-type=\"textarea\" v-model=\"remark\" />\n\n <c-files ref=\"fileRef\" v-model=\"document\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<script>\n\n/**\n * @description 呈批申请\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType2',\n mixins: [\n indexMixin\n ],\n data: () => ({\n pageTitle: '呈批申请',\n pageRightTitle: '我的呈批',\n degreeList: [],\n offerList: [],\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 2,\n reason: '', // 申请标题\n type: '', // 呈批类型\n desc: '', // 缓急程度\n remark: '', // 申请内容\n word_size: '', // 发文字号\n number: '', // 印制份数\n document: [], // 附件\n\n approve_user: [],\n copy_user: []\n // formData end\n }),\n created() {\n // SetList\n this.degreeList = this.$store.state.enum.degreeList\n this.offerList = this.$store.state.enum.offerTypeList\n\n this.getCommonFlowPathData()\n },\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n const mif = data.module_info\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n this.reason = mif.reason\n this.type = mif.type\n this.desc = mif.desc\n this.remark = mif.remark\n this.word_size = mif.word_size\n this.number = mif.number\n\n // NOTE: 主动触发子组件渲染\n this.$nextTick(() => {\n this.$refs.fileRef.handleUpdateValues()\n })\n },\n\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n type: this.type,\n desc: this.desc,\n remark: this.remark,\n word_size: this.word_size,\n number: this.number,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let documents = this.document\n\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n\n validate(data) {\n let mapTxt = {\n 'type': '呈批类型',\n 'word_size': '发文字号',\n 'desc': '缓急程度',\n 'reason': '申请标题'\n }\n let requiredKey = [\n 'type',\n 'word_size',\n 'desc',\n 'reason'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it2, __post__', e);\n }\n },\n },\n}\n\n</script>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType2.vue?vue&type=template&id=73eacaf2\"\nimport script from \"./IndexType2.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType2.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"采购审批单\",\"value\":_vm.selOrd_text,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":_vm.handleClickSelOrdRow,\"clear\":_vm.handleCloseSelOrd}}),_c('c-product-store',{ref:\"cproductstoreRef\",attrs:{\"type\":\"3\",\"disabled\":_vm.flag === 'approve'},model:{value:(_vm.stock_goods),callback:function ($$v) {_vm.stock_goods=$$v},expression:\"stock_goods\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-input',{attrs:{\"title\":\"其他补充说明\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <c-select-imitate title=\"采购审批单\" :value=\"selOrd_text\" @click=\"handleClickSelOrdRow\" @clear=\"handleCloseSelOrd\"\n :hide-remove=\"flag === 'approve'\" />\n\n <c-product-store ref=\"cproductstoreRef\" type=\"3\" v-model=\"stock_goods\" :disabled=\"flag === 'approve'\" />\n\n <c-files ref=\"documentRef\" v-model=\"document\" />\n\n <c-files ref=\"imageRef\" v-model=\"images\" ctype=\"images\" />\n\n <c-input title=\"其他补充说明\" input-type=\"textarea\" v-model=\"remark\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<script>\n/**\n * @description 入库申请 页面\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport CProductStore from './CProductStore.vue'\n\nimport vueBus from '@/utils/vueBus'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType3',\n mixins: [\n indexMixin\n ],\n components: {\n CProductStore\n },\n computed: {\n selOrd_text() {\n if (this.selOrd_arrs.length) return '已设置'\n return ''\n },\n apply_id() {\n let arrs = this.selOrd_arrs\n if (!arrs.length) return 0\n return arrs.map(item => (item.id)).join(',')\n },\n },\n data() {\n return {\n pageTitle: '入库申请',\n pageRightTitle: '我的入库',\n degreeList: this.$store.state.enum.degreeList,\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 3,\n document: [], // 附件\n images: [],\n remark: '', // 其他补充说明\n\n // selOrd: '', // 关联审批单\n stock_goods: [], // 入库明细\n\n approve_user: [],\n copy_user: [],\n // formData end\n selOrd_arrs: [],\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n vueBus.$on('listenApprovalFormList', this.handleApprovalFormList)\n },\n\n methods: {\n // 监听 `vueBus.$on` `listenApprovalFormList`\n handleApprovalFormList(arrs, flag = 1) {\n // NOTE: 新增商品时 需要定义一个 `__id__` 字段\n\n arrs = arrs.map((item, idx) => ({\n ...item,\n flag,\n __id__: `${Date.now()}-${idx}`\n }))\n\n this.selOrd_arrs = [...arrs]\n\n this.$nextTick(() => {\n arrs.forEach(item => {\n item.apply_goods.forEach(goods => {\n this.$refs.cproductstoreRef.handleAddOrUpdateData({\n ...goods,\n __flag_x__: 'approve-form',\n __flag_id__: item.__id__\n })\n })\n })\n })\n },\n\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type3 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n\n this.remark = data.module_info.remark\n\n let goods = data.stock_goods.map(goods => ({\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\n ...goods,\n goods_stock: JSON.parse(goods.goods_stock)\n })) || []\n\n this.stock_goods = goods\n\n // if (data.apply_id !== 0 && data.apply_id) {\n if (data.apply) {\n // let ids = data.apply_id.split(',')\n // if (ids.length) {\n // this.selOrd_arrs = ids.map(id => ({\n // id\n // }))\n // }\n this.selOrd_arrs = {\n id: data.apply.order_no\n }\n }\n\n // NOTE: 主动触发子组件渲染\n this.$nextTick(() => {\n this.$refs.imageRef.handleUpdateValues()\n this.$refs.documentRef.handleUpdateValues()\n this.$refs.cproductstoreRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n apply_id: this.apply_id,\n remark: this.remark,\n stock_goods: this.stock_goods,\n\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let images = this.images\n if (Array.isArray(images) && images.length) {\n templateObj.images = images.map(image => image.url).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'stock_goods': '入库明细'\n }\n let requiredKey = [\n 'stock_goods'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n\n handleClickSelOrdRow() {\n // NOTE: 审批人不可修改\n if (this.flag === 'approve') return\n let query = {}\n if (this.apply_id) {\n query.sel = this.apply_id\n }\n this.$router.push({\n name: 'CApprovalForm',\n query\n })\n },\n handleCloseSelOrd() {\n try {\n\n let stock_goods = [...this.stock_goods]\n let selOldIds = this.selOrd_arrs.map(order => (order.__id__ || order.id))\n let tempStockGoods = []\n\n stock_goods.forEach(good => {\n if (!selOldIds.includes(good.__flag_id__)) tempStockGoods.push(good)\n })\n\n this.stock_goods = [...tempStockGoods]\n this.$forceUpdate()\n this.$nextTick(() => {\n this.selOrd_arrs = []\n this.$refs.cproductstoreRef.handleUpdateValues()\n })\n } catch (error) {\n console.log('%c handleCloseSelOrd >>>', 'background: blue; color: #fff', error);\n }\n },\n\n // NOTE: 根据arrs 更新 采购单\n __about_selarrs__(arrs) {\n let targetArrs = [...this.selOrd_arrs]\n let targetIds = targetArrs.map(item => (item.__id__ || item.id))\n\n let stockGoodsIds = arrs.filter(item => (item.__flag_x__ === 'approve-form')).map(item => (item.__flag_id__))\n let xmIds = [...new Set(stockGoodsIds)]\n\n if (xmIds.length) {\n xmIds.forEach(xmId => {\n if (!targetIds.includes(xmId)) { // NOTE: 说明当前采购单没用了\n let idx = targetIds.findIndex(id => id == xmId)\n if (idx >= 0) {\n targetArrs.splice(idx, 1)\n }\n }\n })\n } else {\n targetArrs = []\n }\n\n this.selOrd_arrs = [...targetArrs]\n\n this.$forceUpdate()\n }\n },\n\n beforeDestroy() {\n vueBus.$off('listenApprovalFormList', this.handleApprovalFormList)\n },\n watch: {\n stock_goods: {\n handler(arrs, oldArrs) {\n // NOTE: 监听入库明细.操作采购单参数\n if (arrs.length && this.selOrd_arrs.length) {\n this.__about_selarrs__(oldArrs)\n } else this.selOrd_arrs = []\n },\n deep: true\n }\n }\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType3.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType3.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType3.vue?vue&type=template&id=49043fb8\"\nimport script from \"./IndexType3.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType3.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"物品用途\"},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-product-store',{ref:\"cproductstoreRef\",attrs:{\"type\":\"4\"},model:{value:(_vm.use_goods),callback:function ($$v) {_vm.use_goods=$$v},expression:\"use_goods\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-input',{attrs:{\"title\":\"其他补充说明\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <c-input title=\"物品用途\" v-model=\"reason\" />\n\n <c-product-store ref=\"cproductstoreRef\" type=\"4\" v-model=\"use_goods\" />\n\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-input title=\"其他补充说明\" input-type=\"textarea\" v-model=\"remark\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 领用申请页面\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\nimport CProductStore from './CProductStore.vue'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType4',\n mixins: [\n indexMixin\n ],\n components: {\n CProductStore\n },\n data() {\n return {\n pageTitle: '领用申请',\n pageRightTitle: '我的领用',\n degreeList: this.$store.state.enum.degreeList,\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 4,\n reason: '', // 物品用途\n document: [], // 附件\n remark: '', // 补充说明\n\n use_goods: [], // 明细\n\n approve_user: [],\n copy_user: []\n // formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n\n const mif = data.module_info\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n this.reason = mif.reason\n this.remark = mif.remark\n\n this.use_goods = data.use_goods.map(goods => ({\n flag: 3, // NOTE: 默认接口返回数据是商品库来的\n ...goods,\n goods_stock: JSON.parse(goods.goods_stock)\n })) || []\n\n this.$nextTick(() => {\n this.$refs.fileRef.handleUpdateValues()\n this.$refs.cproductstoreRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n remark: this.remark,\n use_goods: this.use_goods,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n // document\n if (this.document.length) {\n templateObj.document = this.document.map(doc => doc.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'use_goods': '领用明细'\n }\n let requiredKey = [\n 'use_goods'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n },\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType4.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType4.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType4.vue?vue&type=template&id=4bb2952e&scoped=true\"\nimport script from \"./IndexType4.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType4.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bb2952e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type5-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.isApprove},on:{\"click\":function($event){_vm.flag !== 'approve' ? _vm.handleEditApplyofUser() : null},\"clear\":_vm.handleRemoveApplyUser}}),_c('c-input',{attrs:{\"title\":\"填写事由\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('peers',{model:{value:(_vm.peer_user),callback:function ($$v) {_vm.peer_user=$$v},expression:\"peer_user\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"出差开始时间\",\"required\":true,\"value\":_vm.start_time,\"hide-remove\":_vm.isApprove}}):_c('c-date',{attrs:{\"title\":\"出差开始时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"出差结束时间\",\"required\":true,\"value\":_vm.end_time,\"hide-remove\":_vm.isApprove}}):_c('c-date',{attrs:{\"title\":\"出差结束时间\",\"required\":true},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-files',{ref:\"documentRef\",model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),(_vm.isApprove)?_c('c-select-imitate',{attrs:{\"title\":\"类型\",\"required\":true,\"value\":_vm.getEvectionTypeList(_vm.type),\"hide-remove\":_vm.isApprove}}):_c('c-select',{attrs:{\"title\":\"类型\",\"required\":true,\"list\":_vm.awayArr,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.type == 1)?_c('c-switch',{attrs:{\"title\":\"是否跨关内关外\",\"required\":true,\"activeValue\":1,\"inactiveValue\":0},model:{value:(_vm.is_who),callback:function ($$v) {_vm.is_who=$$v},expression:\"is_who\"}}):_vm._e(),_c('c-input',{attrs:{\"title\":'预算金额',\"required\":Boolean(_vm.is_who),\"input-type\":\"textarea\",\"placeholder\":\"请输入预算金额\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"peers-info-container\"},[_c('div',{staticClass:\"peers__header flex flex-row flex-row-aic\"},[_c('span',{staticClass:\"left-title\"},[_vm._v(\"同行人员\")]),_c('span',{staticClass:\"right-addd\",on:{\"click\":_vm.handleAddPeerData}},[_vm._v(\"添加人员\")])]),(!_vm.peerList.length)?[_c('div',{staticClass:\"peers__emptybox\"},[_vm._v(\" 还未添加同行人员 \")])]:[_c('div',{staticClass:\"peers__mainlist\"},_vm._l((_vm.peersListCom),function(item,idx){return _c('div',{key:idx,staticClass:\"peers__row\"},[_c('div',{staticClass:\"peers__row__header flex flex-row flex-row-aic\"},[_c('div',{staticClass:\"peers__row__header__left\"},[_c('span',[_vm._v(_vm._s(_vm.InsideOutMap[item.xtype]))]),_c('span',[_vm._v(_vm._s(_vm._f(\"filterDepText\")(item)))])]),_c('div',{staticClass:\"operate\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.xtype === 'out'),expression:\"item.xtype === 'out'\"}],staticClass:\"update\",on:{\"click\":function($event){return _vm.handleUpdateRow(item, idx)}}},[_vm._v(\"更新\")]),_c('span',{staticClass:\"remove\",on:{\"click\":function($event){return _vm.handleRemoveRow(item, idx)}}},[_vm._v(\"删除\")])])]),_c('div',{staticClass:\"peers__row__foot\"},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(item.name))])])])}),0),(_vm.peerList.length > 2)?_c('div',{staticClass:\"peers__more\"},[_c('span',{on:{\"click\":_vm.handleShowMore}},[_vm._v(_vm._s(_vm.isShowMore ? '收起' : '展开'))]),(_vm.isShowMore)?_c('van-icon',{attrs:{\"size\":14,\"name\":\"arrow-up\"},on:{\"click\":_vm.handleShowMore}}):_c('van-icon',{attrs:{\"size\":14,\"name\":\"arrow-down\"},on:{\"click\":_vm.handleShowMore}})],1):_vm._e()],_c('van-action-sheet',{attrs:{\"actions\":_vm.actions,\"cancel-text\":\"取消\",\"close-on-click-action\":\"\"},on:{\"select\":_vm.handleActionSheetSelected},model:{value:(_vm.actionSheetVisibility),callback:function ($$v) {_vm.actionSheetVisibility=$$v},expression:\"actionSheetVisibility\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"peers-info-container\">\n <div class=\"peers__header flex flex-row flex-row-aic\">\n <span class=\"left-title\">同行人员</span>\n <span class=\"right-addd\" @click=\"handleAddPeerData\">添加人员</span>\n </div>\n <template v-if=\"!peerList.length\">\n <div class=\"peers__emptybox\">\n 还未添加同行人员\n </div>\n </template>\n <template v-else>\n <!-- 同行人员渲染列表 -->\n <div class=\"peers__mainlist\">\n <div class=\"peers__row\" v-for=\"(item, idx) in peersListCom\" :key=\"idx\">\n <div class=\"peers__row__header flex flex-row flex-row-aic\">\n <div class=\"peers__row__header__left\">\n <span>{{ InsideOutMap[item.xtype] }}</span>\n <span>{{ item | filterDepText }}</span>\n </div>\n <div class=\"operate\">\n <!-- 只有外部人员可以修改。 -->\n <span v-show=\"item.xtype === 'out'\" @click=\"handleUpdateRow(item, idx)\" class=\"update\">更新</span>\n <span @click=\"handleRemoveRow(item, idx)\" class=\"remove\">删除</span>\n </div>\n </div>\n <div class=\"peers__row__foot\">\n <span class=\"name\">{{ item.name }}</span>\n </div>\n </div>\n </div>\n <div class=\"peers__more\" v-if=\"peerList.length > 2\">\n <span @click=\"handleShowMore\">{{ isShowMore ? '收起' : '展开' }}</span>\n <van-icon @click=\"handleShowMore\" v-if=\"isShowMore\" :size=\"14\" name=\"arrow-up\" />\n <van-icon @click=\"handleShowMore\" v-else :size=\"14\" name=\"arrow-down\" />\n </div>\n </template>\n\n <van-action-sheet v-model=\"actionSheetVisibility\" :actions=\"actions\" @select=\"handleActionSheetSelected\"\n cancel-text=\"取消\" close-on-click-action />\n </div>\n</template>\n\n<style lang=\"less\" scoped>\n@import url('@/styles/variables.less');\n\n.peers {\n &__header {\n justify-content: space-between;\n padding: 4px 12px;\n box-sizing: border-box;\n\n .left-title {\n font-size: @font-size-third;\n font-weight: 400;\n color: #727273;\n line-height: 24px;\n }\n\n .right-addd {\n font-size: 12px;\n font-weight: 400;\n color: @link-color;\n line-height: 24px;\n }\n }\n\n &__emptybox {\n padding: 15px 12px;\n background-color: #fff;\n font-size: 14px;\n font-weight: 400;\n color: #191A1E;\n line-height: 20px;\n }\n\n &__mainlist {\n padding: 8px 0;\n background-color: @white;\n border-bottom: 1px solid rgba(151, 151, 151, 0.4);\n }\n\n &__row {\n padding: 8px 12px 0;\n\n &__header {\n justify-content: space-between;\n\n &__left {\n font-size: 14px;\n font-weight: 400;\n color: #191A1E;\n line-height: 20px;\n }\n\n .operate {\n font-size: 14px;\n font-weight: 400;\n color: #3290C4;\n line-height: 20px;\n\n .remove {\n color: #F45642;\n padding-left: 10px;\n }\n }\n }\n\n &__foot {\n border-bottom: 1px solid rgba(151, 151, 151, 0.4);\n\n .name {\n font-size: 16px;\n font-weight: 400;\n color: #191A1E;\n line-height: 30px;\n }\n }\n\n &:last-child {\n .peers__row__foot {\n border-bottom: initial;\n }\n }\n }\n\n &__more {\n padding: 12px 0;\n text-align: center;\n background-color: @white;\n font-size: 14px;\n font-weight: 400;\n color: @link-color;\n line-height: 16px;\n }\n}\n</style>\n\n<script>\n/**\n * @description 同行人员 组件\n */\n\nimport bus from '@/utils/vueBus'\nimport { dingtalkComplexPicker } from '@/utils/dingtalk'\nimport { Dialog } from 'vant'\n\nconst InsideOutMap = {\n 'inside': '内部人员',\n 'out': '外部人员'\n}\n\nexport default {\n name: 'Peers',\n computed: {\n peersListCom() {\n if (this.isShowMore) return [...this.peerList]\n return [...this.peerList.slice(0, 2)]\n }\n },\n props: {\n value: {\n type: Array,\n require: true\n }\n },\n created() {\n bus.$on('addOutPeersEvent', this.__listenChangePeersEvent__)\n },\n data() {\n return {\n InsideOutMap,\n isShowMore: true,\n actionSheetVisibility: false,\n actions: [{ name: '内部人员', type: 'in' }, { name: '外部人员', type: 'out' }],\n peerList: [], // 同行人员数据\n // example\n // { name, orgUserName, nick, avatar, empId, corpId, selectDeptId, selectDeptName }\n // {\n // xtype: [inside, out], // 内部人员/外部人员\n // name: '刘北方',\n // \n // selectDeptName: '教师' // 内部部门\n // remark: '其他学校教授' // 外部备注\n // }\n }\n },\n mounted() {\n this.renderValue()\n },\n methods: {\n // NOTE: 监听修改(新增)同行人员的 event\n // 调用外部人员[增加/修改]人员增加\n __listenChangePeersEvent__(data) {\n this.__handle_out_peers(data)\n },\n\n // 可以外部调用次方法用于更新value字段\n renderValue() {\n if (Array.isArray(this.value) && this.value.length) {\n this.peerList = [...this.value].map(user => {\n let temps = {\n ...user,\n xtype: user.is_who ? 'out' : 'inside',\n }\n user[user.is_who ? 'remark' : 'selectDeptName'] = user.desc\n return temps\n })\n }\n },\n async handleActionSheetSelected(item) {\n const { type } = item\n if (type === 'in') { // 内部人员\n try {\n const data = await dingtalkComplexPicker({\n title: '请选择内部人员',\n multiple: false,\n maxUsers: 1,\n limitTips: '单次只可选择1人',\n\n // 以选中的用户\n pickedUsers: this.peerList.filter(user => (user.xtype === 'inside')).map(user => (user.emplId)),\n\n responseUserOnly: false,\n startWithDepartmentId: 0,\n deptId: -1,\n })\n this.__handle_in_press__(data)\n } catch (e) {\n console.log('err', e);\n }\n } else if (type === 'out') {\n this.$router.push({\n name: 'PeersOutForm'\n })\n }\n },\n\n // NOTE: 展开/收齐更多\n handleShowMore() {\n this.isShowMore = !this.isShowMore\n },\n\n // 更新当前人员信息\n handleUpdateRow(row, idx) {\n const { xtype } = row\n console.log('handleUpdateRow', row, idx);\n if (xtype === 'out') {\n this.$router.push({\n name: 'PeersOutForm',\n query: {\n idx: row.idx,\n name: row.name,\n remark: row.remark,\n isUpdate: '1'\n }\n })\n }\n },\n\n // 删除当前人员\n handleRemoveRow(row, idx) {\n Dialog.confirm({\n title: '温馨提示',\n message: `是否删除同行人员“${row.name}”`,\n }).then(() => {\n this.peerList.splice(idx, 1)\n })\n },\n\n // NOTE: 选择添加内部/外部人员\n handleAddPeerData() {\n this.actionSheetVisibility = true\n },\n\n // 新增/更新外部人员\n __handle_out_peers(data) {\n if (data.isUpdate == '1') { // Update\n let fIdx = this.peerList.findIndex(item => item.idx === data.idx)\n this.peerList.splice(fIdx, 1, {\n ...this.peerList[fIdx],\n ...data\n })\n } else {\n this.peerList.push({\n idx: `${Date.now()}`,\n xtype: 'out',\n ...data\n })\n }\n },\n\n // 更新内部人员\n __handle_in_press__(data) {\n console.log('handle_in_press', data);\n const { users } = data\n users.forEach(item => {\n // 判断empId是否存在。 存在意味着更新\n let hasEmpIdIdx = this.peerList.findIndex(user => (user.emplId == item.emplId))\n if (hasEmpIdIdx >= 0) { // Update\n this.peerList[hasEmpIdIdx] = {\n ...this.peerList[hasEmpIdIdx],\n ...item\n }\n } else {\n this.peerList.push({\n idx: Date.now(),\n xtype: 'inside',\n ...item,\n })\n }\n })\n this.$emit('input', this.peerList)\n }\n },\n beforeDestroy() {\n bus.$off('__listenChangePeersEvent__', this.__listenChangePeersEvent__)\n },\n filters: {\n // 根据 `item` 内容展示部门或外部人员\n filterDepText(item) {\n const { xtype } = item\n if (xtype === 'inside' && item.selectDeptName) {\n return `(${item.selectDeptName})`\n } else if (xtype === 'out' && item.remark) {\n return `(${item.remark})`\n }\n return ''\n }\n },\n watch: {\n peerList: {\n handler(vals) {\n if (vals.length) {\n this.$emit('input', vals)\n }\n }\n }\n }\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Peers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Peers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Peers.vue?vue&type=template&id=3493da67&scoped=true\"\nimport script from \"./Peers.vue?vue&type=script&lang=js\"\nexport * from \"./Peers.vue?vue&type=script&lang=js\"\nimport style0 from \"./Peers.vue?vue&type=style&index=0&id=3493da67&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3493da67\",\n null\n \n)\n\nexport default component.exports","<template>\n <div class=\"type5-container\">\n <c-select-imitate title=\"申请人\" :value=\"apply_user_name\" @click=\"flag !== 'approve' ? handleEditApplyofUser() : null\"\n :hide-remove=\"isApprove\" @clear=\"handleRemoveApplyUser\" />\n\n <c-input title=\"填写事由\" :required=\"true\" v-model=\"reason\" />\n\n <peers v-model=\"peer_user\" />\n\n\n <c-select-imitate v-if=\"isApprove\" title=\"出差开始时间\" :required=\"true\" :value=\"start_time\" :hide-remove=\"isApprove\" />\n <c-date v-else title=\"出差开始时间\" :required=\"true\" v-model=\"start_time\" />\n\n <c-select-imitate v-if=\"isApprove\" title=\"出差结束时间\" :required=\"true\" :value=\"end_time\" :hide-remove=\"isApprove\" />\n <c-date v-else title=\"出差结束时间\" :required=\"true\" v-model=\"end_time\" />\n\n <c-files ref=\"documentRef\" v-model=\"document\" />\n\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\n\n <c-select-imitate v-if=\"isApprove\" title=\"类型\" :required=\"true\" :value=\"getEvectionTypeList(type)\"\n :hide-remove=\"isApprove\" />\n <c-select v-else title=\"类型\" :required=\"true\" :list=\"awayArr\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"type\" />\n\n <c-switch v-if=\"type == 1\" title=\"是否跨关内关外\" :required=\"true\" v-model=\"is_who\" :activeValue=\"1\" :inactiveValue=\"0\" />\n\n <!--\n NOTE: 与产品沟通。 备注去掉,只留预算\n <c-input :title=\"is_who ? '预算金额' : '备注'\" :required=\"Boolean(is_who)\" v-model=\"remark\" input-type=\"textarea\"\n :placeholder=\"is_who ? '请输入预算金额' : '请输入往返主要方式、预算金额'\" /> -->\n\n <c-input :title=\"'预算金额'\" :required=\"Boolean(is_who)\" v-model=\"remark\" input-type=\"textarea\" placeholder=\"请输入预算金额\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 出差申请页面\n */\nimport { postCreateInfo } from '@/api/approveinfo'\nimport Peers from './Peers.vue';\nimport indexMixin from '../indexMixins'\n\nimport { dingtalkComplexPicker } from '@/utils/dingtalk';\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nimport { mapState, mapGetters } from 'vuex'\n\nexport default {\n name: 'IndexType5',\n\n\n mixins: [\n indexMixin\n ],\n\n components: {\n Peers\n },\n computed: {\n isApprove() {\n return this.flag === 'approve'\n },\n ...mapState(\"user\", [\n \"token\",\n \"userinfo\"\n ]),\n ...mapGetters(\"enum\", [\n \"getEvectionTypeList\"\n ])\n },\n data() {\n return {\n pageTitle: '出差申请',\n pageRightTitle: '我的出差',\n formType: 5,\n awayArr: this.$store.state.enum.evectionTypeList, // 出差类型\n\n // 必填字段\n requiredKey: [\n 'reason',\n 'start_time',\n 'end_time',\n 'type'\n // 是否出境需要在 type === 1 时才必传\n ],\n\n // formData =========\n way: 'create', // create/update/edit\n module: 5,\n id: undefined, // id存在,表示编辑\n reason: '', // 申请理由\n start_time: '', // 开始时间\n end_time: '', // 结束时间\n type: undefined, // 市内,市外\n\n document: [], // 附件\n images: [], // 图片\n remark: '', // 备注\n is_who: 0, // 是否出境\n\n // 同行人员信息\n // { is_who, user_id, name, desc }\n peer_user: [],\n approve_user: '',\n copy_user: '',\n\n // 申请人\n apply_user_id: '',\n apply_user_name: ''\n // ===========================\n }\n },\n async created() {\n this.init()\n\n // NOTE: 申请人 => 默认是账号本人\n if (this.token) {\n this.apply_user_id = this.userinfo.userid\n this.apply_user_name = this.userinfo.name\n }\n },\n methods: {\n init() {\n this.getCommonFlowPathData()\n },\n\n // NOTE: 格式化编辑数据\n handleFormatEditData(data) {\n const {\n module_info,\n peerUser\n } = data\n const {\n end_time,\n is_who,\n reason,\n remark,\n start_time,\n type,\n } = module_info /* eslint-disable-line */\n\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n // this.id = id\n this.peer_user = peerUser\n this.reason = reason\n this.start_time = start_time\n this.end_time = end_time\n this.type = type\n this.remark = remark\n this.is_who = is_who\n\n if (data.apply_user) {\n this.apply_user_id = data.apply_user.userid\n this.apply_user_name = data.apply_user.name\n }\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = module_info.document.split(',').map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n this.$nextTick(() => {\n this.$refs.imageRef.handleUpdateValues()\n this.$refs.documentRef.handleUpdateValues()\n })\n },\n\n\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData');\n this.__post__(formData)\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n validate(data) {\n let mapTxt = {\n 'reason': '申请事由',\n 'start_time': '开始时间',\n 'end_time': '结束时间',\n 'type': '出差类型',\n 'is_who': '跨关内外'\n }\n let requiredKey = [\n 'type',\n 'start_time',\n 'end_time',\n 'reason',\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n }, (data, hasEmpty, hasKey) => {\n // 判断当type == 1 市内出差时。 判断是否出境\n if (data.type == 1 && !['0', '1'].includes(String(data.is_who))) {\n hasEmpty = true\n hasKey = 'is_who'\n }\n return [hasEmpty, hasKey]\n })\n },\n __format_data__() {\n let params = {}\n try {\n params = {\n way: this.way,\n module: 5,\n reason: this.reason, // 申请理由\n start_time: this.start_time, // 开始时间\n end_time: this.end_time, // 结束时间\n type: this.type,\n document: '', // 附件\n images: '', // 图片\n remark: this.remark, // 备注\n is_who: this.is_who,\n peer_user: [], // 同行人员信息\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(','),\n apply_user_id: this.apply_user_id\n }\n\n let images = this.images\n if (Array.isArray(images) && images.length) {\n params.images = images.map(image => image.url).join(',')\n\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n params.document = documents.map(document => document.url).join(',')\n }\n\n if (Array.isArray(this.peer_user) && this.peer_user.length) {\n params.peer_user = this.peer_user.map(item => ({\n is_who: item.xtype === 'inside' ? 0 : 1,\n name: item.name,\n desc: item.xtype === 'inside' ? item.selectDeptName : item.remark,\n user_id: item.emplId || item.user_id || ''\n }))\n }\n\n if (this.id) params.id = this.id\n\n } catch (error) {\n console.log('%c IndexType5 format >>>', 'background: blue; color: #fff', error);\n }\n return params\n },\n\n // NOTE: 跳转申请人列表页面 进行选择\n async handleEditApplyofUser() {\n try {\n const result = await dingtalkComplexPicker({\n title: '请选择出差申请人',\n multiple: false,\n maxUsers: 1,\n limitTips: '单次只可选择1人',\n responseUserOnly: true,\n startWithDepartmentId: 0,\n deptId: -1,\n showLabelPick: false\n })\n let users = result.users\n if (users.length) {\n let { name, emplId } = users[0]\n this.apply_user_id = emplId\n this.apply_user_name = name\n } else this.$toast('选择失败, 请重新选择')\n } catch (error) {\n if (error.errorMessage !== 'Cancel') {\n this.$toast(error.message)\n }\n }\n },\n handleRemoveApplyUser() {\n this.apply_user_id = ''\n this.apply_user_name = ''\n }\n },\n watch: {\n type: {\n handler(val, oldv) {\n if (val && val !== oldv) {\n this.getCommonFlowPathData({\n flow_item: val\n })\n }\n },\n immediate: true\n }\n }\n\n}\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType5.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType5.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType5.vue?vue&type=template&id=1de377f4&scoped=true\"\nimport script from \"./IndexType5.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType5.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1de377f4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":function($event){_vm.flag !== 'approve' ? _vm.handleEditApplyofUser() : null},\"clear\":_vm.handleRemoveApplyUser}}),_c('c-select',{attrs:{\"title\":\"请假类型\",\"required\":true,\"list\":_vm.askForleaveTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"请假开始时间\",\"required\":true,\"value\":_vm.start_time,\"hide-remove\":_vm.flag === 'approve'}}):_c('c-date',{attrs:{\"title\":\"请假开始时间\",\"required\":true,\"has-am\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"请假结束时间\",\"required\":true,\"value\":_vm.end_time,\"hide-remove\":_vm.flag === 'approve'}}):_c('c-date',{ref:\"cdateEndTimeRef\",attrs:{\"title\":\"请假结束时间\",\"required\":true,\"has-am\":true},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-input',{attrs:{\"title\":\"请假时长(天)\",\"placeholder\":\"自动填充请假时长\",\"disabled\":true,\"input-type\":\"number\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}}),_c('c-input',{attrs:{\"title\":\"原因\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":300},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-files',{ref:\"documentRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-input',{attrs:{\"title\":\"是否离“深”\",\"input-type\":\"textarea\",\"placeholder\":\"需写清目的地(到街道)、是否涉疫、出行方式及班次\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{ref:\"cFlowPathRef\",attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n\n <c-select-imitate title=\"申请人\" :value=\"apply_user_name\" @click=\"flag !== 'approve' ? handleEditApplyofUser() : null\"\n :hide-remove=\"flag === 'approve'\" @clear=\"handleRemoveApplyUser\" />\n\n <c-select title=\"请假类型\" :required=\"true\" :list=\"askForleaveTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"type\" />\n\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"请假开始时间\" :required=\"true\" :value=\"start_time\"\n :hide-remove=\"flag === 'approve'\" />\n <c-date v-else title=\"请假开始时间\" :required=\"true\" :has-am=\"true\" v-model=\"start_time\" />\n\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"请假结束时间\" :required=\"true\" :value=\"end_time\"\n :hide-remove=\"flag === 'approve'\" />\n <c-date v-else ref=\"cdateEndTimeRef\" title=\"请假结束时间\" :required=\"true\" :has-am=\"true\" v-model=\"end_time\" />\n\n <c-input title=\"请假时长(天)\" placeholder=\"自动填充请假时长\" :disabled=\"true\" input-type=\"number\" v-model=\"time\" />\n\n <c-input title=\"原因\" :required=\"true\" input-type=\"textarea\" :maxlength=\"300\" v-model=\"reason\" />\n\n <c-files ref=\"documentRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\n\n <c-input title=\"是否离“深”\" input-type=\"textarea\" placeholder=\"需写清目的地(到街道)、是否涉疫、出行方式及班次\" v-model=\"remark\" />\n\n <c-flow-path ref=\"cFlowPathRef\" :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 请假申请页面\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\nimport { mapState } from 'vuex'\n\nimport { dingtalkComplexPicker } from \"@/utils/dingtalk\"\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType6',\n mixins: [\n indexMixin\n ],\n computed: {\n ...mapState(\"user\", [\n \"token\",\n \"userinfo\"\n ]),\n ...mapState(\"enum\", {\n \"askForleaveTypeList\": \"leaveTypeList\", // 请假类型\n \"timeList\": \"timeList\"\n })\n },\n data() {\n return {\n pageTitle: '请假申请',\n pageRightTitle: '我的请假',\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 6,\n reason: '', // 请假原因\n type: '', // 请假类型\n document: [],\n images: [],\n remark: '', // 是否离深\n start_time: '',\n end_time: '',\n start_am: '', // 开始时间段(上午/下午)\n end_am: '', // 结束时间段(上午/下午)\n time: '', // 请假时长\n approve_user: [],\n copy_user: [],\n\n // 申请人\n apply_user_id: '',\n apply_user_name: '',\n // formData end\n\n flow_item: '',\n }\n },\n\n created() {\n // NOTE: 判断是否有请假类型。 无请假类型router.replace到请假类型上\n let type = this.$route.query.asktype\n let edit = this.$route.query.edit == '1'\n if (!edit && !type) {\n this.$router.replace({\n name: 'AskForLeave'\n })\n } else this.type = type\n\n // NOTE: 申请人 => 默认是账号本人\n if (this.token) {\n this.apply_user_id = this.userinfo.userid\n this.apply_user_name = this.userinfo.name\n }\n\n this.init()\n },\n\n methods: {\n init() {\n this.getCommonFlowPathData()\n },\n\n handleGetAskLeaveTykpe(type) {\n console.log('%c get type value >>>', 'background: blue; color: #fff', type);\n },\n\n // 获取编辑数据\n handleFormatEditData(data) {\n const { module_info } = data\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\n\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n\n this.reason = module_info.reason // 请假原因\n this.type = module_info.type // 请假类型\n this.remark = module_info.remark // 是否离深\n this.start_time = `${module_info.start_time} ${module_info.start_am}`\n this.end_time = `${module_info.end_time} ${module_info.end_am}`\n this.start_am = module_info.start_am // 开始时间段(上午/下午)\n this.end_am = module_info.end_am // 结束时间段(上午/下午)\n this.time = module_info.time // 请假时长\n\n if (data.apply_user) {\n this.apply_user_id = data.apply_user.userid\n this.apply_user_name = data.apply_user.name\n }\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = module_info.document.split(',').map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n this.$nextTick(() => {\n this.$refs.imageRef.handleUpdateValues()\n this.$refs.documentRef.handleUpdateValues()\n })\n },\n\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n type: this.type,\n remark: this.remark,\n time: this.time,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(','),\n apply_user_id: this.apply_user_id\n }\n if (this.start_time) {\n const [date, amOrPm] = this.start_time.split(' ')\n templateObj.start_time = date\n templateObj.start_am = amOrPm\n }\n if (this.end_time) {\n const [date, amOrPm] = this.end_time.split(' ')\n templateObj.end_time = date\n templateObj.end_am = amOrPm\n }\n\n let images = this.images\n if (Array.isArray(images) && images.length) {\n templateObj.images = images.map(image => image.url).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'type': '请假类型',\n 'start_time': '开始时间',\n 'end_time': '结束时间',\n 'reason': '原因',\n }\n let requiredKey = [\n 'type',\n 'start_time',\n 'end_time',\n 'reason',\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n\n __sum_days__(start, end) {\n const [day, am] = start.split(' ')\n const [eday, eam] = end.split(' ')\n let snow = new Date(day)\n let enow = new Date(eday)\n let differV = enow.getTime() - snow.getTime()\n if (differV >= 0) {\n let dayLen = differV / (60 * 1000 * 60 * 24)\n if ((am === '上午' && eam === '上午') || (am === '下午' && eam === '下午')) {\n return `${dayLen += 0.5}`\n } else if (am === '下午' && eam === '上午') {\n return `${dayLen}`\n } else if (am === '上午' && eam === '下午') {\n return `${dayLen += 1}`\n }\n } else {\n return ''\n }\n },\n\n // NOTE: 检查时间并且查询流程数据\n checkTimeAndGetFlow() {\n let start_time = this.start_time\n let end_time = this.end_time\n\n if (!(start_time && end_time)) return\n\n let label = ''\n this.time = ''\n if (start_time === end_time) {\n label = '半天'\n this.time = '0.5'\n } else if (start_time.split(' ')[0] === end_time.split(' ')[0]) {\n label = '一天'\n this.time = '1'\n } else {\n label = '一天以上'\n this.time = this.__sum_days__(start_time, end_time)\n }\n let target = this.timeList.filter(timeItem => timeItem.name === label)\n let id = undefined\n if (target.length) {\n id = target[0].id\n this.flow_item = id\n this.getCommonFlowPathData({\n flow_item: id\n }, () => {\n this.$refs.cFlowPathRef.__render_a__()\n this.$refs.cFlowPathRef.__render_c__()\n })\n }\n },\n\n // NOTE: 跳转申请人列表页面 进行选择\n async handleEditApplyofUser() {\n try {\n const result = await dingtalkComplexPicker({\n title: '请选择请假申请人',\n multiple: false,\n maxUsers: 1,\n limitTips: '单次只可选择1人',\n responseUserOnly: true,\n startWithDepartmentId: 0,\n deptId: -1,\n showLabelPick: false\n })\n let users = result.users\n if (users.length) {\n let { name, emplId } = users[0]\n this.apply_user_id = emplId\n this.apply_user_name = name\n } else this.$toast('选择失败, 请重新选择')\n } catch (error) {\n if (error.errorMessage !== 'Cancel') {\n this.$toast(error.message)\n }\n }\n },\n handleRemoveApplyUser() {\n this.apply_user_id = ''\n this.apply_user_name = ''\n }\n },\n\n watch: {\n // Useless\n // type(val, valo) {\n // if (val && val !== valo) {\n // this.getCommonFlowPathData({\n // flow_item: val\n // }, () => {\n // this.$refs.cFlowPathRef.__render_a__()\n // this.$refs.cFlowPathRef.__render_c__()\n // })\n // }\n // },\n\n start_time() {\n this.checkTimeAndGetFlow()\n },\n end_time(val) {\n // NOTE: 请假日期不可小于开始时间\n if (this.start_time && val) {\n let sd = this.start_time.split(' ')[0]\n let ed = val.split(' ')[0]\n\n let sdt = new Date(sd).getTime()\n let edt = new Date(ed).getTime()\n if (edt < sdt) {\n this.$toast('请假结束时间错误!')\n this.end_time = ''\n this.$refs.cdateEndTimeRef.reset()\n }\n }\n this.checkTimeAndGetFlow()\n }\n }\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType6.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType6.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType6.vue?vue&type=template&id=2d4e0911&scoped=true\"\nimport script from \"./IndexType6.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType6.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d4e0911\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"申请人\",\"value\":_vm.apply_user_name,\"hide-remove\":_vm.flag === 'approve'},on:{\"click\":_vm.handleEditApplyofUser,\"clear\":_vm.handleRemoveApplyUser}}),_c('div',{staticClass:\"group-box\"},[_c('div',{staticClass:\"group__title\"},[_vm._v(\"用车信息\")]),_c('c-input',{attrs:{\"title\":\"出发地点\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-date',{attrs:{\"title\":\"出发时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}})],1),_c('div',{staticClass:\"group-box m-t-10\"},[_c('c-input',{attrs:{\"title\":\"到达地点\",\"required\":true},model:{value:(_vm.reach_address),callback:function ($$v) {_vm.reach_address=$$v},expression:\"reach_address\"}}),_c('c-date',{attrs:{\"title\":\"返回时间\"},model:{value:(_vm.end_time),callback:function ($$v) {_vm.end_time=$$v},expression:\"end_time\"}}),_c('c-input',{attrs:{\"title\":\"返回地点\"},model:{value:(_vm.end_address),callback:function ($$v) {_vm.end_address=$$v},expression:\"end_address\"}})],1),_c('c-files',{ref:\"documentRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-files',{ref:\"imageRef\",attrs:{\"ctype\":\"images\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n\n <c-select-imitate title=\"申请人\" :value=\"apply_user_name\" @click=\"handleEditApplyofUser\"\n :hide-remove=\"flag === 'approve'\" @clear=\"handleRemoveApplyUser\" />\n\n <div class=\"group-box\">\n <div class=\"group__title\">用车信息</div>\n <c-input title=\"出发地点\" :required=\"true\" v-model=\"reason\" />\n <c-date title=\"出发时间\" :required=\"true\" v-model=\"start_time\" />\n </div>\n\n <div class=\"group-box m-t-10\">\n <c-input title=\"到达地点\" :required=\"true\" v-model=\"reach_address\" />\n <c-date title=\"返回时间\" v-model=\"end_time\" />\n <c-input title=\"返回地点\" v-model=\"end_address\" />\n </div>\n\n <c-files ref=\"documentRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-files ref=\"imageRef\" ctype=\"images\" v-model=\"images\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 用车申请页面\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { mapState } from 'vuex'\n\nimport { dingtalkComplexPicker } from \"@/utils/dingtalk\"\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType7',\n mixins: [\n indexMixin\n ],\n computed: {\n ...mapState(\"user\", [\n 'token',\n 'userinfo'\n ])\n },\n data() {\n return {\n pageTitle: '用车申请',\n pageRightTitle: '我的用车',\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 7,\n reason: '', // 出发地点\n start_time: '', // 出发时间\n end_time: '', // 返回时间\n document: [],\n images: [],\n reach_address: '', // 到达地点\n end_address: '', // 返回地点\n approve_user: [],\n copy_user: [],\n // 申请人\n apply_user_id: '',\n apply_user_name: '',\n // formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n\n // NOTE: 申请人 => 默认是账号本人\n if (this.token) {\n this.apply_user_id = this.userinfo.userid\n this.apply_user_name = this.userinfo.name\n }\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n const { module_info } = data\n\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n\n this.reason = module_info.reason // 出发地点\n this.start_time = module_info.start_time // 出发时间\n this.end_time = module_info.end_time // 返回时间\n // this.start_time = `${module_info.start_time} ${module_info.start_am}`\n // this.end_time = `${module_info.end_time} ${module_info.end_am}`\n\n this.reach_address = module_info.reach_address // 到达地点\n this.end_address = module_info.end_address // 返回地点\n\n if (data.apply_user) {\n this.apply_user_id = data.apply_user.userid\n this.apply_user_name = data.apply_user.name\n }\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = module_info.document.split(',').map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n if (Array.isArray(data.module_info.images_text) && data.module_info.images_text.length) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n this.$nextTick(() => {\n this.$refs.imageRef.handleUpdateValues()\n this.$refs.documentRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n reach_address: this.reach_address,\n end_address: this.end_address,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(','),\n apply_user_id: this.apply_user_id,\n start_time: this.start_time,\n end_time: this.end_time\n }\n\n // Useless.\n // if (this.start_time) {\n // const [date, amOrPm] = this.start_time.split(' ')\n // templateObj.start_time = date\n // templateObj.start_am = amOrPm\n // }\n // if (this.end_time) {\n // const [date, amOrPm] = this.end_time.split(' ')\n // templateObj.end_time = date\n // templateObj.end_am = amOrPm\n // }\n\n let images = this.images\n if (Array.isArray(images) && images.length) {\n templateObj.images = images.map(image => image.url).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n if (this.id) templateObj.id = this.id\n\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'start_time': '出发时间',\n 'end_time': '返回时间',\n 'reason': '出发地点',\n }\n let requiredKey = [\n 'reason',\n 'start_time',\n 'reach_address',\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n\n // NOTE: 跳转申请人列表页面 进行选择\n async handleEditApplyofUser() {\n try {\n const result = await dingtalkComplexPicker({\n title: '请选择用车申请人',\n multiple: false,\n maxUsers: 1,\n limitTips: '单次只可选择1人',\n responseUserOnly: true,\n startWithDepartmentId: 0,\n deptId: -1,\n showLabelPick: false\n })\n let users = result.users\n if (users.length) {\n let { name, emplId } = users[0]\n this.apply_user_id = emplId\n this.apply_user_name = name\n } else this.$toast('选择失败, 请重新选择')\n } catch (error) {\n if (error.errorMessage !== 'Cancel') {\n this.$toast(error.message)\n }\n }\n },\n\n handleRemoveApplyUser() {\n this.apply_user_id = ''\n this.apply_user_name = ''\n }\n },\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType7.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType7.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType7.vue?vue&type=template&id=59f5dfae&scoped=true\"\nimport script from \"./IndexType7.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType7.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59f5dfae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('div',{staticClass:\"group-box\"},[_c('div',{staticClass:\"group__title\"},[_vm._v(\"报修信息\")]),(_vm.flag === 'approve')?_c('c-select-imitate',{attrs:{\"title\":\"维修分类\",\"value\":_vm.getMaintainText(_vm.type),\"hide-remove\":_vm.flag === 'approve'}}):_c('c-select',{attrs:{\"title\":\"维修分类\",\"required\":true,\"list\":_vm.maintainTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}}),_c('c-input',{attrs:{\"title\":\"维修地点\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}})],1),_c('c-input',{attrs:{\"title\":\"具体内容\",\"required\":true,\"input-type\":\"textarea\",\"maxlength\":800},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-files',{ref:\"imageM8Ref\",attrs:{\"ctype\":\"images\",\"placeholder\":\"最多九张\"},model:{value:(_vm.images),callback:function ($$v) {_vm.images=$$v},expression:\"images\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <div class=\"group-box\">\n <div class=\"group__title\">报修信息</div>\n\n <!-- NOTE: 审批人维修分类不能修改 -->\n <c-select-imitate v-if=\"flag === 'approve'\" title=\"维修分类\" :value=\"getMaintainText(type)\"\n :hide-remove=\"flag === 'approve'\" />\n <c-select v-else title=\"维修分类\" :required=\"true\" :list=\"maintainTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"type\" />\n\n <c-input title=\"维修地点\" :required=\"true\" v-model=\"reason\" />\n </div>\n\n <c-input title=\"具体内容\" :required=\"true\" input-type=\"textarea\" :maxlength=\"800\" v-model=\"desc\" />\n\n <c-files ref=\"imageM8Ref\" ctype=\"images\" v-model=\"images\" placeholder=\"最多九张\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 维修申请\n */\n\nimport indexMixin from '../indexMixins'\n\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nimport { mapGetters } from 'vuex'\n\nexport default {\n name: 'IndexType8',\n mixins: [\n indexMixin\n ],\n computed: {\n ...mapGetters('enum', [\n 'getMaintainText'\n ])\n },\n data() {\n return {\n pageTitle: '维修申请',\n pageRightTitle: '我的维修',\n\n maintainTypeList: this.$store.state.enum.maintainTypeList,\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 8,\n reason: '', // 维修地点\n type: '', // 维修类型\n desc: '', // 维修具体内容\n images: [],\n approve_user: [],\n copy_user: []\n // formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type8 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.reason = data.reason\n this.desc = data.desc\n this.type = data.type\n if (data.module_info.images) {\n this.images = data.module_info.images_text.map(img => {\n const { name = '' } = getStaticLinkInfo(img)\n return {\n name,\n url: img\n }\n })\n }\n\n this.$nextTick(() => {\n this.$refs.imageM8Ref.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n type: this.type,\n desc: this.desc,\n\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n if (Array.isArray(this.images) && this.images.length) {\n templateObj.images = this.images.map(item => item.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'type': '维修分类',\n 'reason': '维修地点',\n 'desc': '具体内容'\n }\n let requiredKey = [\n 'type',\n 'reason',\n 'desc'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n },\n watch: {\n type: {\n handler(val, oldv) {\n if (val && val !== oldv) {\n this.getCommonFlowPathData({\n flow_item: val\n })\n }\n },\n immediate: true\n }\n }\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType8.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType8.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType8.vue?vue&type=template&id=fcb80678&scoped=true\"\nimport script from \"./IndexType8.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType8.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fcb80678\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[(_vm.apply_id || _vm.way !== 'create')?[_c('c-select-imitate',{attrs:{\"required\":true,\"title\":\"合同类型\",\"value\":_vm.getContractTypeList(_vm.type),\"hide-remove\":true}})]:[_c('c-select',{attrs:{\"title\":\"合同类型\",\"required\":true,\"list\":_vm.contractTypeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.type),callback:function ($$v) {_vm.type=$$v},expression:\"type\"}})],(_vm.apply_id)?_c('c-select-imitate',{attrs:{\"title\":\"关联申购申请-采购订单\",\"value\":_vm.apply_order_no,\"hide-remove\":true}}):_vm._e(),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"印制份数\",\"input-type\":\"number\"},model:{value:(_vm.number),callback:function ($$v) {_vm.number=$$v},expression:\"number\"}}),_c('c-input',{attrs:{\"title\":\"发放范围\",\"placeholder\":\"请输入发放范围,比如合同双方\"},model:{value:(_vm.scope),callback:function ($$v) {_vm.scope=$$v},expression:\"scope\"}}),_c('c-input',{attrs:{\"title\":\"法务意见\",\"placeholder\":\"本合同已经法律顾问审核同意,详见附件《法律意见书》\"},model:{value:(_vm.legal_opinion),callback:function ($$v) {_vm.legal_opinion=$$v},expression:\"legal_opinion\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-input',{attrs:{\"title\":\"备注说明\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n\n <template v-if=\"apply_id || way !== 'create'\">\n <c-select-imitate :required=\"true\" title=\"合同类型\" :value=\"getContractTypeList(type)\" :hide-remove=\"true\" />\n </template>\n <template v-else>\n <c-select title=\"合同类型\" :required=\"true\" :list=\"contractTypeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"type\" />\n </template>\n\n <c-select-imitate v-if=\"apply_id\" title=\"关联申购申请-采购订单\" :value=\"apply_order_no\" :hide-remove=\"true\" />\n\n <!--\n useless.\n <c-input title=\"合同编号\" :required=\"true\" v-model=\"reason\" /> -->\n\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"desc\" />\n\n <c-input title=\"印制份数\" input-type=\"number\" v-model=\"number\" />\n\n <c-input title=\"发放范围\" placeholder=\"请输入发放范围,比如合同双方\" v-model=\"scope\" />\n\n <c-input title=\"法务意见\" placeholder=\"本合同已经法律顾问审核同意,详见附件《法律意见书》\" v-model=\"legal_opinion\" />\n\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-input title=\"备注说明\" v-model=\"remark\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 合同呈批\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nimport { mapGetters } from 'vuex'\n\nexport default {\n name: 'IndexType9',\n mixins: [\n indexMixin\n ],\n computed: {\n ...mapGetters('enum', [\n 'getContractTypeList'\n ])\n },\n data() {\n return {\n pageTitle: '合同呈批',\n pageRightTitle: '我的呈批',\n contractTypeList: this.$store.state.enum.contractTypeList,\n degreeList: this.$store.state.enum.degreeList,\n // formData start\n way: 'create',\n id: '',\n module: 9,\n // reason: '', // 合同编号\n type: '', // 合同类型\n desc: '', // 缓急程度\n document: [], // 附件\n remark: '', // 备注说明\n number: '', // 印制份数\n scope: '', // 发放范围\n legal_opinion: '', // 法务意见\n approve_user: [],\n copy_user: [],\n // formData end\n apply_id: 0,\n apply_order_no: '',\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n // 关联采购订单\n if (this.$route.query.order_no) {\n this.apply_id = `${this.$route.query.apply_id}`\n this.apply_order_no = `${this.$route.query.order_no}`\n this.type = `${1}`\n }\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type9 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n const mif = data.module_info\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n this.reason = mif.reason\n this.type = mif.type\n this.desc = mif.desc\n this.remark = mif.remark\n this.number = `${mif.number}`\n this.scope = mif.scope\n this.legal_opinion = mif.legal_opinion\n\n if (data.apply) {\n this.apply_id = data.apply.id\n this.apply_order_no = data.apply.order_no\n }\n\n this.$nextTick(() => {\n this.$refs.fileRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n type: this.type,\n desc: this.desc,\n remark: this.remark,\n number: this.number,\n scope: this.scope,\n legal_opinion: this.legal_opinion,\n apply_id: this.apply_id,\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'type': '合同类型',\n // 'reason': '合同编号',\n 'desc': '缓急程度',\n 'legal_opinion': '法务意见'\n }\n let requiredKey = [\n 'type',\n // 'reason',\n 'desc',\n 'legal_opinion'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n },\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType9.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType9.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType9.vue?vue&type=template&id=4430d763&scoped=true\"\nimport script from \"./IndexType9.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType9.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4430d763\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-input',{attrs:{\"title\":\"创建人\"},model:{value:(_vm.founder),callback:function ($$v) {_vm.founder=$$v},expression:\"founder\"}}),_c('c-input',{attrs:{\"title\":\"来文单位名称\",\"required\":true},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-input',{attrs:{\"title\":\"收文序号\",\"required\":true},model:{value:(_vm.serial_number),callback:function ($$v) {_vm.serial_number=$$v},expression:\"serial_number\"}}),_c('c-input',{attrs:{\"title\":\"文件名称\"},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-date',{attrs:{\"title\":\"收文日期\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-input',{attrs:{\"title\":\"内容摘要\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.degree),callback:function ($$v) {_vm.degree=$$v},expression:\"degree\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <c-input title=\"创建人\" v-model=\"founder\" />\n\n <c-input title=\"来文单位名称\" :required=\"true\" v-model=\"desc\" />\n <c-input title=\"收文序号\" :required=\"true\" v-model=\"serial_number\" />\n <c-input title=\"文件名称\" v-model=\"reason\" />\n <c-date title=\"收文日期\" :required=\"true\" v-model=\"start_time\" />\n <c-input title=\"内容摘要\" input-type=\"textarea\" v-model=\"remark\" />\n\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"degree\" />\n\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n\n </div>\n</template>\n\n<style lang=\"less\" scoped></style>\n\n<script>\n/**\n * @description 收文批阅页面\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType10',\n mixins: [\n indexMixin\n ],\n data() {\n return {\n pageTitle: '收文批阅',\n pageRightTitle: '我的批阅',\n degreeList: this.$store.state.enum.degreeList,\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 10,\n reason: '', // 文件名称\n desc: '', // 来文单位名称\n document: [], // 附件\n remark: '', // 内容摘要\n founder: '', // 创建人\n serial_number: '', // 收文序号\n start_time: '', // 收文日期\n degree: '', // 缓急程度\n\n approve_user: [],\n copy_user: []\n // formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type10 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n const mif = data.module_info\n\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n this.reason = mif.reason\n this.desc = mif.desc\n this.remark = mif.remark\n this.founder = mif.founder\n this.serial_number = mif.serial_number\n this.start_time = mif.start_time\n this.degree = mif.degree\n\n this.$nextTick(() => {\n this.$refs.fileRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n reason: this.reason,\n desc: this.desc,\n remark: this.remark,\n founder: this.founder,\n serial_number: this.serial_number,\n start_time: this.start_time,\n degree: this.degree,\n\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'desc': '来文单位名称',\n 'serial_number': '收文序号',\n 'start_time': '收文日期',\n 'degree': '缓急程度'\n }\n let requiredKey = [\n 'desc',\n 'serial_number',\n 'start_time',\n 'degree',\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n },\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType10.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType10.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType10.vue?vue&type=template&id=8d263a72&scoped=true\"\nimport script from \"./IndexType10.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType10.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d263a72\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"type6-container\"},[_c('c-select-imitate',{attrs:{\"title\":\"拟稿部门\",\"required\":true,\"value\":_vm.department},on:{\"click\":function($event){return _vm.handleChooseDepartments('department')},\"clear\":function($event){return _vm.handleRemoveDepartment('department')}}}),_c('c-input',{attrs:{\"title\":\"文件名称\",\"required\":true},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}}),_c('c-select-imitate',{attrs:{\"title\":\"落款\",\"required\":true,\"value\":_vm.department_sign},on:{\"click\":function($event){return _vm.handleChooseDepartments('department_sign')},\"clear\":function($event){return _vm.handleRemoveDepartment('department_sign')}}}),_c('c-input',{attrs:{\"title\":\"上会情况\",\"input-type\":\"textarea\"},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}}),_c('c-files',{ref:\"fileRef\",attrs:{\"ctype\":\"files\"},model:{value:(_vm.document),callback:function ($$v) {_vm.document=$$v},expression:\"document\"}}),_c('c-select',{attrs:{\"title\":\"缓急程度\",\"required\":true,\"list\":_vm.degreeList,\"pickerValueKey\":\"name\",\"pickerValueId\":\"id\"},model:{value:(_vm.desc),callback:function ($$v) {_vm.desc=$$v},expression:\"desc\"}}),_c('c-date',{attrs:{\"title\":\"拟发文时间\",\"required\":true},model:{value:(_vm.start_time),callback:function ($$v) {_vm.start_time=$$v},expression:\"start_time\"}}),_c('c-input',{attrs:{\"title\":\"文件号\",\"required\":true},model:{value:(_vm.serial_number),callback:function ($$v) {_vm.serial_number=$$v},expression:\"serial_number\"}}),_c('c-flow-path',{attrs:{\"approve\":_vm.approvePeople,\"copy\":_vm.copyPeople,\"isAllowCopy\":_vm.isCopy},on:{\"update:copy\":function($event){_vm.copyPeople=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"type6-container\">\n <c-select-imitate title=\"拟稿部门\" :required=\"true\" :value=\"department\" @click=\"handleChooseDepartments('department')\"\n @clear=\"handleRemoveDepartment('department')\" />\n\n <c-input title=\"文件名称\" :required=\"true\" v-model=\"reason\" />\n\n <c-select-imitate title=\"落款\" :required=\"true\" :value=\"department_sign\"\n @click=\"handleChooseDepartments('department_sign')\" @clear=\"handleRemoveDepartment('department_sign')\" />\n\n <c-input title=\"上会情况\" input-type=\"textarea\" v-model=\"remark\" />\n\n <c-files ref=\"fileRef\" ctype=\"files\" v-model=\"document\" />\n\n <c-select title=\"缓急程度\" :required=\"true\" :list=\"degreeList\" pickerValueKey=\"name\" pickerValueId=\"id\"\n v-model=\"desc\" />\n\n <c-date title=\"拟发文时间\" :required=\"true\" v-model=\"start_time\" />\n\n <c-input title=\"文件号\" :required=\"true\" v-model=\"serial_number\" />\n\n <c-flow-path :approve=\"approvePeople\" :copy.sync=\"copyPeople\" :isAllowCopy=\"isCopy\" />\n </div>\n</template>\n\n<script>\n/**\n * @description 学校文件\n */\n\nimport indexMixin from '../indexMixins'\nimport { postCreateInfo } from '@/api/approveinfo'\n\nimport { dingtalkDepartmentsPicker } from '@/utils/dingtalk'\n\nimport { getStaticLinkInfo } from '@/utils/util'\n\nexport default {\n name: 'IndexType11',\n mixins: [\n indexMixin\n ],\n data() {\n return {\n pageTitle: '学校文件',\n pageRightTitle: '我的文件',\n\n degreeList: this.$store.state.enum.degreeList,\n\n // formData start\n way: 'create', // create/update/edit\n id: '',\n module: 11,\n reason: '', // 文件名称\n desc: '', // 缓急程度\n document: [], // 附件\n remark: '', // 上会情况\n serial_number: '', // 文件号\n start_time: '', // 拟发文时间(日期)\n department: '', // 部门\n department_id: '', // 部门id\n department_sign: '', // 落款\n department_sign_id: '', // 落款部门\n\n approve_user: [],\n copy_user: []\n // formData end\n }\n },\n\n created() {\n this.getCommonFlowPathData()\n },\n\n methods: {\n // 获取编辑数据\n handleFormatEditData(data) {\n console.log('%c edit data type6 >>>', 'background: blue; color: #fff', data);\n const IS_EDIT = this.flag === 'approve'\n this.way = IS_EDIT ? 'edit' : 'update'\n this.id = IS_EDIT ? data.approve_id : data.id\n this.module = data.module\n const mif = data.module_info\n if (Array.isArray(data.module_info.document_text) && data.module_info.document_text.length) {\n this.document = data.module_info.document_text.map(doc => {\n const { name = '' } = getStaticLinkInfo(doc)\n return {\n name,\n url: doc\n }\n })\n }\n\n this.reason = mif.reason\n this.desc = mif.desc\n this.remark = mif.remark\n this.serial_number = mif.serial_number\n this.start_time = mif.start_time\n this.department = mif.department\n this.department_sign = mif.department_sign\n\n this.$nextTick(() => {\n this.$refs.fileRef.handleUpdateValues()\n })\n },\n /**\n * @description 提交数据默认函数\n */\n handleSubmitData() {\n let formData = this.__format_data__()\n console.log('format data>>>', formData);\n let bol = this.validate(formData)\n if (bol) return\n console.log('execute handleSubmitData', formData);\n this.__post__(formData)\n },\n __format_data__() {\n let templateObj = {\n way: this.way,\n module: this.module,\n\n reason: this.reason,\n desc: this.desc,\n remark: this.remark,\n serial_number: this.serial_number,\n start_time: this.start_time,\n department: this.department,\n department_sign: this.department_sign,\n\n approve_user: this.approvePeople.map(user => (user.userid || user.emplId)).join(','),\n copy_user: this.copyPeople.map(user => (user.userid || user.emplId)).join(',')\n }\n\n let documents = this.document\n if (Array.isArray(documents) && documents.length) {\n templateObj.document = documents.map(document => document.url).join(',')\n }\n\n if (this.id) templateObj.id = this.id\n return templateObj\n },\n validate(data) {\n let mapTxt = {\n 'department': '拟稿部门',\n 'reason': '文件名称',\n 'department_sign': '落款',\n 'desc': '缓急程度',\n 'start_time': '拟发文时间',\n 'serial_number': '文件号'\n }\n let requiredKey = [\n 'department',\n 'reason',\n 'department_sign',\n 'desc',\n 'start_time',\n 'serial_number'\n ]\n return this.__validtor__({\n mapTxt,\n requiredKey,\n data\n })\n },\n\n async __post__(data) {\n try {\n const res = await postCreateInfo(data)\n if (res.code === 1) {\n this.$toast(res.msg)\n if (this.flag === 'approve') {\n this.$router.go(-1)\n } else this.__jump2apply_state__()\n }\n } catch (e) {\n console.log('it5, __post__', e);\n }\n },\n\n // NOTE: 选择拟稿部门/落款\n async handleChooseDepartments(keyword) {\n try {\n const result = await dingtalkDepartmentsPicker({\n title: '请选择部门',\n multiple: false,\n maxDepartments: 1,\n limitTips: '只能选择一个部门',\n pickedDepartments: [this[`${keyword}_id`]],\n })\n console.log('%c handleChooseDepartments >>>', 'background: blue; color: #fff', result);\n\n let departments = result.departments\n if (departments.length >= 2) {\n let { name, id } = departments[1]\n this[`${keyword}_id`] = id\n this[`${keyword}`] = name\n } else this.$toast('选择失败, 请重新选择')\n } catch (error) {\n if (error.errorMessage !== 'Cancel') {\n this.$toast(error.message)\n }\n }\n },\n handleRemoveDepartment(keyword) {\n this[`${keyword}_id`] = ''\n this[`${keyword}`] = ''\n }\n },\n}\n\n</script>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType11.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexType11.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndexType11.vue?vue&type=template&id=20bae486\"\nimport script from \"./IndexType11.vue?vue&type=script&lang=js\"\nexport * from \"./IndexType11.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!-- 申请主页 -->\n<template>\n <div class=\"apply-for-container\">\n <component ref=\"rendeRef\" :flag=\"flag\" :editId=\"editId\" :edit-data=\"editData\" :is=\"renderComponent\" />\n\n <!-- btnbox -->\n <div class=\"btnbox\">\n <div class=\"btn\" @click=\"handleSubmitData\">{{ flag === 'approve' ? '更新内容' : '提交' }}</div>\n </div>\n </div>\n</template>\n\n<style lang=\"less\">\n@import url(\"@/styles/variables.less\");\n\n.apply-for {\n &-container {\n .layout-container {\n margin-top: 10px !important;\n }\n\n .custom-files-container {\n margin-top: 10px;\n }\n\n .group-box {\n .group__title {\n font-size: @font-size-third;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #727273;\n line-height: 28px;\n padding: 0 12px;\n }\n\n .layout-container {\n margin-top: 0 !important;\n }\n\n >div:not(.group__title, :last-child) {\n border-bottom: 1px solid rgba(199, 199, 199, 0.2) !important;\n }\n }\n\n .btnbox {\n margin-top: 10px;\n padding: 10px 14px 40px;\n box-sizing: border-box;\n background-color: #FFFFFF;\n\n .btn {\n height: 41px;\n background: #3290C4;\n border-radius: 11px;\n font-size: 16px;\n font-weight: 400;\n color: #FFFFFF;\n line-height: 41px;\n }\n }\n }\n}\n</style>\n\n<script>\n// components\n// import bizCont from '@/components/jsapi/biz.contact.complexPicker' // useless\n\n// components\nimport IndexType1 from './components/IndexType1.vue';\nimport IndexType2 from './components/IndexType2.vue';\nimport IndexType3 from './components/IndexType3.vue';\nimport IndexType4 from './components/IndexType4.vue';\nimport IndexType5 from './components/IndexType5.vue';\nimport IndexType6 from './components/IndexType6.vue';\nimport IndexType7 from './components/IndexType7.vue';\nimport IndexType8 from './components/IndexType8.vue';\nimport IndexType9 from './components/IndexType9.vue';\nimport IndexType10 from './components/IndexType10.vue';\nimport IndexType11 from './components/IndexType11.vue';\n\n// Api\nimport * as approveInfoApi from '@/api/approveinfo'\n\nimport * as approveApi from '@/api/approve'\n\nimport store from '@/store';\n\nexport default {\n // NOTE: 只有退出applyfor/xxx页面时才清除缓存\n beforeRouteEnter(to, from, next) {\n store.commit({\n type: \"app/ROUTE_ADD\",\n value: 'Applyfor'\n })\n next()\n },\n beforeRouteLeave(to, from, next) {\n // old modifyed\n // if (!to.path.includes('applyfor')) {\n // store.commit({\n // type: 'app/ROUTE_REMOVE',\n // value: 'Applyfor'\n // })\n // } else {\n // store.commit({\n // type: \"app/ROUTE_ADD\",\n // value: 'Applyfor'\n // })\n // }\n if (to.path.includes('applyfor')) {\n store.commit({\n type: \"app/ROUTE_ADD\",\n value: 'Applyfor'\n })\n }\n next()\n },\n name: 'Applyfor',\n components: {\n IndexType1,\n IndexType2,\n IndexType3,\n IndexType4,\n IndexType5,\n IndexType6,\n IndexType7,\n IndexType8,\n IndexType9,\n IndexType10,\n IndexType11,\n },\n\n computed: {\n // 获取需要渲染的组件\n renderComponent() {\n const TYPE = this.formType\n return `IndexType${TYPE}`\n },\n },\n\n created() {\n if (this.$route.query.type) this.formType = Number(this.$route.query.type)\n\n // check is edit\n if (this.$route.query.edit == 1) {\n this.editId = Number(this.$route.query.id)\n this.isEdit = true\n this.flag = this.$route.query.flag\n }\n\n this.init()\n },\n\n data() {\n return {\n formType: -1, // 代表某申请类型\n flag: '', // [info, approve] // 页面状态 info: 申请 approve: 审核\n isEdit: false, // 是否编辑\n editId: -1, // 编辑Id\n editData: null, // 编辑时存放数据\n }\n },\n\n methods: {\n init() {\n if (this.isEdit) this.__detail__()\n },\n\n async __detail__() {\n try {\n const func = this.flag === 'info' ? approveInfoApi.getInfo : approveApi.getInfo\n let paramsId = this.flag === 'info' ? 'id' : 'approve_id'\n const params = {\n [paramsId]: this.editId\n }\n const result = await func(params)\n if (result.code === 1) {\n this.editData = result.data\n }\n } catch (error) {\n console.log('aplyof error >>>', error)\n }\n },\n\n handleSubmitData() {\n let callback = this.$refs.rendeRef.handleSubmitData\n callback && callback()\n }\n }\n}\n</script>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=193e9350\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=193e9350&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Peers.vue?vue&type=style&index=0&id=3493da67&prod&lang=less&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CProductStore.vue?vue&type=style&index=0&id=7d067ce3&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"approve-container flex flex-col\"},[_c('van-tabs',{attrs:{\"before-change\":_vm.handleTabBeforeChangeEvnet},model:{value:(_vm.tabVal),callback:function ($$v) {_vm.tabVal=$$v},expression:\"tabVal\"}},_vm._l((_vm.tabs),function(tab,idx){return _c('van-tab',{key:idx,attrs:{\"title\":tab.title,\"name\":tab.name,\"color\":\"#000\"}})}),1),_c('div',{staticClass:\"filter-container p-h-12 flex flex-row flex-row-aic\"},[_c('van-field',{attrs:{\"clearable\":\"\",\"placeholder\":\"搜索\",\"left-icon\":\"search\",\"disabled\":true,\"readonly\":true},on:{\"click\":_vm.handleClickSearchBox},model:{value:(_vm.searchVal),callback:function ($$v) {_vm.searchVal=$$v},expression:\"searchVal\"}}),_c('div',{class:[\n 'filterbox flex flex-row flex-0shrink',\n _vm.hasFilter ? 'filterbox--sel' : ''\n ],on:{\"click\":function () { return _vm.popupVisibility = true; }}},[_c('van-icon',{attrs:{\"name\":\"filter-o\",\"size\":\"20\"}}),_c('span',[_vm._v(\"筛选\")])],1)],1),_c('div',{staticClass:\"approve-main\"},[_c('van-list',{attrs:{\"finished\":_vm.finished,\"finished-text\":_vm.finishedText},on:{\"load\":_vm.onLoadData},model:{value:(_vm.listLoading),callback:function ($$v) {_vm.listLoading=$$v},expression:\"listLoading\"}},_vm._l((_vm.tableData),function(item,idx){return _c('approve-item',{key:idx,attrs:{\"approve-type\":\"xx\",\"title\":_vm.rendeTitleCom,\"time\":item.apply_date,\"rows\":item.__rows_item__,\"person\":item.approve_one ? item.approve_one.user.name : '',\"flag\":\"info\",\"flag-state\":Number(item.status)},on:{\"click\":function($event){return _vm.handleGoInfo(item)}}})}),1),_c('my-empty',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showEmpty),expression:\"showEmpty\"}],attrs:{\"tip\":\"暂无数据\"}})],1),_c('van-popup',{staticClass:\"popupxx\",style:({ height: '60%' }),attrs:{\"position\":\"bottom\",\"closeable\":\"\",\"close-icon-position\":\"top-left\"},on:{\"click-close-icon\":_vm.handleClosePopup},model:{value:(_vm.popupVisibility),callback:function ($$v) {_vm.popupVisibility=$$v},expression:\"popupVisibility\"}},[_c('div',[_c('div',{staticClass:\"popup__title\"},[_vm._v(\"全部筛选\")]),_c('div',{staticClass:\"popup__rangetime\"},[_c('div',{staticClass:\"popup__typebox__header\"},[_c('span',[_vm._v(\"申请时间\")])]),_c('div',{staticClass:\"popup__rangetime__main flex flex-row flex-row-aic\"},[_c('van-field',{attrs:{\"value\":_vm.timeStart,\"disabled\":true,\"clearable\":\"\",\"placeholder\":\"开始时间\",\"center\":true},on:{\"click\":_vm.handleClickTimeStart}}),_c('span',{staticClass:\"horization\"}),_c('van-field',{attrs:{\"value\":_vm.timeEnd,\"disabled\":true,\"clearable\":\"\",\"placeholder\":\"结束时间\",\"center\":true},on:{\"click\":_vm.handleClickTimeEnd}})],1)])]),_c('div',{staticClass:\"btn-popup\",on:{\"click\":_vm.handleSubmitFilter}},[_c('span',[_vm._v(\"搜索\")])])]),_c('ChooseTime',{ref:\"chooseTimeRef\",attrs:{\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate},model:{value:(_vm.timeVal),callback:function ($$v) {_vm.timeVal=$$v},expression:\"timeVal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"approve-container flex flex-col\">\n <van-tabs v-model=\"tabVal\" :before-change=\"handleTabBeforeChangeEvnet\">\n <van-tab v-for=\"(tab, idx) in tabs\" :key=\"idx\" :title=\"tab.title\" :name=\"tab.name\" color=\"#000\" />\n </van-tabs>\n <div class=\"filter-container p-h-12 flex flex-row flex-row-aic\">\n <van-field v-model=\"searchVal\" clearable placeholder=\"搜索\" left-icon=\"search\" :disabled=\"true\" :readonly=\"true\"\n @click=\"handleClickSearchBox\" />\n <div :class=\"[\n 'filterbox flex flex-row flex-0shrink',\n hasFilter ? 'filterbox--sel' : ''\n ]\" @click=\"() => popupVisibility = true\">\n <van-icon name=\"filter-o\" size=\"20\" />\n <span>筛选</span>\n </div>\n </div>\n <div class=\"approve-main\">\n <van-list v-model=\"listLoading\" :finished=\"finished\" :finished-text=\"finishedText\" @load=\"onLoadData\">\n <approve-item v-for=\"(item, idx) in tableData\" :key=\"idx\" approve-type=\"xx\" :title=\"rendeTitleCom\"\n :time=\"item.apply_date\" :rows=\"item.__rows_item__\"\n :person=\"item.approve_one ? item.approve_one.user.name : ''\" flag=\"info\"\n :flag-state=\"Number(item.status)\" @click=\"handleGoInfo(item)\" />\n </van-list>\n <my-empty v-show=\"showEmpty\" tip=\"暂无数据\" />\n </div>\n\n <!-- 弹窗 全部筛选 -->\n <van-popup class=\"popupxx\" v-model=\"popupVisibility\" position=\"bottom\" :style=\"{ height: '60%' }\" closeable\n close-icon-position=\"top-left\" @click-close-icon=\"handleClosePopup\">\n <div>\n <div class=\"popup__title\">全部筛选</div>\n <!-- <div class=\"popup__typebox\">\n <div class=\"popup__typebox__header\">\n <span>全部类型</span>\n </div>\n <div class=\"popup__typebox__list flex\">\n <span v-for=\"(type, idx) in types\" :key=\"idx\" class=\"item\"\n @click=\"handleTouchThatType(event, type)\">\n {{ type.name }}\n </span>\n </div>\n </div> -->\n <div class=\"popup__rangetime\">\n <div class=\"popup__typebox__header\">\n <span>申请时间</span>\n </div>\n <div class=\"popup__rangetime__main flex flex-row flex-row-aic\">\n <van-field :value=\"timeStart\" :disabled=\"true\" clearable placeholder=\"开始时间\" :center=\"true\"\n @click=\"handleClickTimeStart\" />\n <span class=\"horization\"></span>\n <van-field :value=\"timeEnd\" :disabled=\"true\" clearable placeholder=\"结束时间\" :center=\"true\"\n @click=\"handleClickTimeEnd\" />\n </div>\n </div>\n </div>\n\n <div class=\"btn-popup\" @click=\"handleSubmitFilter\">\n <span>搜索</span>\n </div>\n </van-popup>\n\n <ChooseTime ref=\"chooseTimeRef\" v-model=\"timeVal\" :min-date=\"minDate\" :max-date=\"maxDate\" />\n </div>\n</template>\n\n<script>\nimport ChooseTime from '@/components/ChooseTime'\nimport { getRecordList } from '@/api/approveinfo'\nimport ApproveItem from '../approve/components/ApproveItem.vue'\nimport store from '@/store'\n\nimport dayjs from 'dayjs'\n\nimport { formatApproveItemRow } from '@/utils/approve-item'\n\nimport { settingNavigationTitle, settingNavigationRight } from '@/utils/dingtalk'\n\n\nimport { MODULE_ENUM } from '@/utils/constant'\n\nexport default {\n nameText: '我的申请状态',\n name: 'ApplyState',\n components: {\n ApproveItem,\n ChooseTime\n },\n computed: {\n // 判断是否为筛选\n hasFilter() {\n return (this.timeStart && this.timeEnd)\n },\n rendeTitleCom() {\n let t = this.formType\n let welcomeTxt = `${store.getters.name}提交的`\n if (t >= 1 && t <= 11) {\n welcomeTxt = `${welcomeTxt}${MODULE_ENUM[t]}`\n }\n return welcomeTxt\n }\n },\n data() {\n return {\n timeVal: '',\n formType: undefined,\n popupVisibility: false,\n tabVal: '2',\n tabs: [\n {\n title: '审批中',\n name: '2'\n },\n {\n title: '已通过',\n name: '3'\n },\n {\n title: '已驳回',\n name: '4'\n },\n {\n title: '已撤销',\n name: '5'\n }\n ],\n searchVal: '',\n // types: [\n // { name: '领用申请', id: '' },\n // { name: '申请批呈', id: '' },\n // { name: '学校文件', id: '' },\n // { name: '批阅申请', id: '' },\n // { name: '合同批呈', id: '' },\n // { name: '维修申请', id: '' },\n // { name: '用车申请', id: '' },\n // { name: '请假申请', id: '' },\n // { name: '出差申请', id: '' },\n // { name: '领用申请', id: '' },\n // { name: '入库申请', id: '' },\n // { name: '申购申请', id: '' },\n // ],\n // typeVal: '',\n\n timeStart: '', // 开始时间\n timeEnd: '',\n\n pagination: {\n page: 1,\n page_num: 10,\n },\n showEmpty: false,\n listLoading: false,\n finished: false,\n finishedText: '暂无更多数据',\n tableData: [],\n minDate: '',\n maxDate: ''\n }\n },\n created() {\n this.navigationSetting()\n this.handleNavigationRight()\n if (this.$route.query) {\n this.formType = this.$route.query.type\n }\n this.init()\n },\n methods: {\n // NOTE: 设置标题等\n navigationSetting() {\n let t = this.formType\n let tit = '申请列表'\n if (t >= 1 && t <= 11) tit = MODULE_ENUM[t]\n settingNavigationTitle({\n title: `我的${tit}`\n })\n },\n handleNavigationRight() {\n settingNavigationRight({\n show: false,\n })\n },\n init() {\n // NOTE: 设置时间返回是前6个月 - 现在\n let now = new Date()\n now.setMonth(now.getMonth() - 7)\n this.minDate = now\n let nowMax = new Date()\n this.maxDate = nowMax\n },\n async __record_list__() {\n try {\n let THAT = this\n const params = {\n group: 'list',\n module: this.formType,\n status: Number(this.tabVal),\n ...this.pagination\n }\n if (this.timeStart && this.timeEnd) {\n params.start_time = this.timeStart\n params.end_time = this.timeEnd\n }\n const res = await getRecordList(params)\n if (res.code === 1) {\n this.listLoading = false\n let list = res.data || []\n list = list.map(item => ({\n ...item,\n __rows_item__: formatApproveItemRow(item, THAT.formType)\n }))\n\n if (list.length < this.pagination.page_num) this.finished = true\n\n else {\n this.pagination.page++\n }\n this.tableData = this.tableData.concat(list)\n if (this.finished && !this.tableData.length) {\n this.finishedText = ''\n this.showEmpty = true\n }\n }\n } catch (e) {\n console.log('record list', e);\n }\n },\n\n onLoadData() {\n this.__record_list__()\n },\n\n handleTabBeforeChangeEvnet(val) {\n this.tabVal = val\n this.showEmpty = false\n this.tableData = []\n this.listLoading = true\n this.finished = false\n this.finishedText = '暂无更多数据'\n this.pagination.page = 1\n this.onLoadData()\n return true\n },\n\n handleClickTimeStart() {\n const THAT = this\n THAT.timeVal = `${THAT.timeStart}`\n this.$refs.chooseTimeRef.openChooseTime(date => {\n THAT.timeStart = dayjs(date).format('YYYY-MM-DD HH:mm')\n })\n },\n\n handleClickTimeEnd() {\n const THAT = this\n THAT.timeVal = `${THAT.timeEnd}`\n this.$refs.chooseTimeRef.openChooseTime(date => {\n THAT.timeEnd = dayjs(date).format('YYYY-MM-DD HH:mm')\n })\n },\n\n // NOTE: choosed type\n handleTouchThatType(type) {\n const { name } = type\n this.typeVal = name\n },\n\n // NOTE: 点击跳转搜索页\n handleClickSearchBox() {\n this.$router.push({\n name: 'Search',\n query: {\n formType: this.formType,\n flag: 'info',\n flagState: this.tabVal\n\n }\n })\n },\n\n // NOTE: 点击筛选弹出选择内容\n handleSwitchFilterBox() {\n },\n\n // NOTE: 提交过滤搜索条件\n handleSubmitFilter() {\n // 判断时间是不是开始比结束前。\n let startTime = new Date(this.timeStart).getTime()\n let endTime = new Date(this.timeEnd).getTime()\n\n if (endTime <= startTime) {\n this.$toast('结束时间不可以比开始时间小')\n return\n }\n\n // 搜索添加时间\n this.popupVisibility = false // close popup window.\n this.showEmpty = false\n this.tableData = []\n this.listLoading = true\n this.finished = false\n this.finishedText = '暂无更多数据'\n this.pagination.page = 1\n this.onLoadData()\n },\n\n // NOTE: 前往审核详情页面。 \n // BUT. 我收到的不应该存在 control address.\n handleGoInfo(data) {\n console.log('goInfo>', data);\n this.$router.push({\n name: 'ExamineDetail',\n query: {\n id: data.id,\n type: 'info'\n }\n })\n },\n handleClosePopup() {\n this.timeStart = ''\n this.timeEnd = ''\n },\n }\n}\n</script>\n \n<style lang=\"less\" scoped>\n@import url(\"@/styles/variables.less\");\n\n.approve {\n &-container {\n height: 100%;\n\n .van-tabs {\n padding-bottom: 4px;\n border-bottom: 1px solid rgba(216, 216, 216, 1);\n background-color: white;\n }\n\n .van-tabs__line {\n background-color: #000;\n }\n\n .van-popup.van-popup--bottom {\n padding: 14px 12px;\n box-sizing: border-box;\n }\n }\n\n &-main {\n flex: 1;\n padding: 6px;\n\n .approve-item-container {\n margin-bottom: 6px;\n\n &:last-child {\n margin-bottom: initial;\n }\n }\n }\n}\n\n.filter-container {\n padding-top: 7px;\n padding-bottom: 7px;\n background-color: @white;\n\n .van-cell.van-field {\n background-color: rgba(238, 238, 239, 1);\n border-radius: 6px;\n padding-top: 6px;\n padding-bottom: 6px;\n position: relative;\n\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n }\n\n .filterbox {\n padding-left: 10px;\n\n span {\n font-size: @font-size-third;\n font-weight: 500;\n color: #727273;\n line-height: 22px;\n }\n\n &--sel {\n .van-icon.van-icon-filter-o {\n color: #3290C4;\n }\n\n span {\n color: #3290C4;\n }\n }\n }\n}\n\n.filter-container .van-cell.van-field,\n.popup__rangetime__main .van-cell.van-field {\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n}\n\n.popup {\n &__title {\n text-align: center;\n font-size: @font-size-common;\n font-weight: 600;\n color: #0A1629;\n line-height: 22px;\n padding-bottom: 30px;\n }\n\n &__typebox {\n &__header {\n font-size: @font-size-secondery;\n font-weight: 600;\n color: #0A1629;\n line-height: 20px;\n margin-bottom: 12px;\n }\n\n &__list {\n flex-wrap: wrap;\n justify-content: space-between;\n padding-bottom: 14px;\n\n span {\n display: inline-block;\n width: 111px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n background: #F6F6F6;\n border-radius: 8px;\n font-size: @font-size-third;\n font-weight: 400;\n color: #191A1E;\n margin-bottom: 8px;\n }\n }\n }\n\n &__rangetime {\n &__main {\n justify-content: space-between;\n }\n\n .van-cell.van-field {\n width: 40%;\n background: #F6F6F6;\n border-radius: 8px;\n text-align: center;\n\n .van-field__control {\n text-align: center;\n }\n }\n\n span.horization {\n display: inline-block;\n width: 30px;\n height: 1px;\n background-color: #000;\n }\n }\n}\n\n.popupxx {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n .btn-popup {\n background: #3290C4;\n border-radius: 11px;\n font-size: @font-size-common;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #FFFFFF;\n line-height: 24px;\n text-align: center;\n padding: 10px 0;\n }\n}\n</style>\n \n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3123ab97&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3123ab97&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3123ab97\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CDate.vue?vue&type=style&index=0&id=74862614&prod&lang=less&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3123ab97&prod&lang=less&scoped=true\"","/**\n * @description vue bus\n */\nimport Vue from 'vue'\nconst vueBus = new Vue()\nexport default vueBus","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./peersOutForm.vue?vue&type=style&index=0&id=1cb06513&prod&lang=less&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=193e9350&prod&lang=less\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CSelectImitate.vue?vue&type=style&index=0&id=779f15c0&prod&lang=less&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"peers-out-form-container flex flex-col\"},[_c('div',{staticClass:\"content\"},[_c('c-input',{attrs:{\"title\":\"同行姓名\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('c-input',{attrs:{\"title\":\"备注\",\"input-type\":\"textarea\",\"maxlength\":20},model:{value:(_vm.remark),callback:function ($$v) {_vm.remark=$$v},expression:\"remark\"}})],1),_c('div',{staticClass:\"btn-container\"},[_c('div',{staticClass:\"btn-span\",on:{\"click\":_vm.handleConfirmSub}},[_vm._v(\"确认\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"peers-out-form-container flex flex-col\">\n <div class=\"content\">\n <c-input title=\"同行姓名\" v-model=\"name\" />\n\n <c-input title=\"备注\" v-model=\"remark\" input-type=\"textarea\" :maxlength=\"20\" />\n\n </div>\n <div class=\"btn-container\">\n <div class=\"btn-span\" @click=\"handleConfirmSub\">确认</div>\n </div>\n </div>\n</template>\n\n<style lang=\"less\" scoped>\n.peers-out-form-container {\n height: 100%;\n justify-content: space-between;\n align-items: space-between;\n\n .content {\n .layout-container {\n margin-top: 10px;\n }\n }\n}\n</style>\n\n<script>\n/**\n * @description 出差申请-同行人员-添加外部人员\n */\nimport CInput from './components/CInput.vue';\nimport vueBus from '@/utils/vueBus';\n\nimport { settingNavigationRight } from '@/utils/dingtalk'\n\nexport default {\n components: {\n CInput\n },\n data() {\n return {\n name: '',\n remark: ''\n }\n },\n created() {\n this.navigationSetting()\n let query = this.$route.query\n\n if (query) {\n this.name = query.name || ''\n this.remark = query.remark || ''\n }\n },\n methods: {\n // NOTE: 设置Right标题隐藏\n navigationSetting() {\n settingNavigationRight({\n show: false\n })\n },\n handleConfirmSub() {\n if (!this.name) return this.$toast('请填写同行人姓名')\n\n if (!this.remark) return this.$toast('请填写备注')\n\n let params = {\n name: this.name,\n remark: this.remark\n }\n\n let query = this.$route.query\n if (query && query.isUpdate == '1') {\n params = {\n ...this.$route.query,\n ...params\n }\n }\n\n vueBus.$emit('addOutPeersEvent', params)\n\n this.$router.go(-1)\n },\n }\n}\n</script>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./peersOutForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./peersOutForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./peersOutForm.vue?vue&type=template&id=1cb06513&scoped=true\"\nimport script from \"./peersOutForm.vue?vue&type=script&lang=js\"\nexport * from \"./peersOutForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./peersOutForm.vue?vue&type=style&index=0&id=1cb06513&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1cb06513\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
|