{"version":3,"sources":["webpack:///./src/module/CashCard/CashCard.vue?3c41","webpack:///./src/module/CashCard/components/Import.vue?a5ad","webpack:///./node_modules/core-js/library/modules/es6.array.is-array.js","webpack:///./src/module/CashCard/components/Design.vue?962f","webpack:///./src/module/CashCard/components/Log.vue?c880","webpack:///./src/module/components/dashboard/botton/ExportExcel.vue?4e02","webpack:///src/module/components/dashboard/botton/ExportExcel.vue","webpack:///./src/module/components/dashboard/botton/ExportExcel.vue?38b7","webpack:///./src/module/components/dashboard/botton/ExportExcel.vue","webpack:///./src/module/CashCard/components/Import.vue?a326","webpack:///./src/module/CashCard/components/List.vue?37e3","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/from.js","webpack:///./src/module/components/dashboard/botton/ExportExcel.vue?e124","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack:///./src/assets/images/upload@2x.png","webpack:///./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js","webpack:///./src/module/CashCard/components/CheckBox.vue?0653","webpack:///./src/module/CashCard/CashCard.vue?eb08","webpack:///./src/module/CashCard/CashCard.vue?af3a","webpack:///./src/module/CashCard/components/List.vue?4705","webpack:///./src/core/Cashcard/BzbsCashcard.js","webpack:///src/module/CashCard/components/List.vue","webpack:///./src/module/CashCard/components/List.vue?a9f4","webpack:///./src/module/CashCard/components/List.vue","webpack:///./src/module/CashCard/components/Import.vue?f54a","webpack:///src/module/CashCard/components/Import.vue","webpack:///./src/module/CashCard/components/Import.vue?3eec","webpack:///./src/module/CashCard/components/Import.vue","webpack:///./src/module/CashCard/components/Design.vue?45a3","webpack:///src/module/CashCard/components/Design.vue","webpack:///./src/module/CashCard/components/Design.vue?15b6","webpack:///./src/module/CashCard/components/Design.vue","webpack:///./src/module/CashCard/components/Log.vue?f483","webpack:///./src/module/CashCard/components/CheckBox.vue?b5bf","webpack:///src/module/CashCard/components/CheckBox.vue","webpack:///./src/module/CashCard/components/CheckBox.vue?8199","webpack:///./src/module/CashCard/components/CheckBox.vue","webpack:///src/module/CashCard/components/Log.vue","webpack:///./src/module/CashCard/components/Log.vue?6376","webpack:///./src/module/CashCard/components/Log.vue","webpack:///src/module/CashCard/CashCard.vue","webpack:///./src/module/CashCard/CashCard.vue?fcfd","webpack:///./src/module/CashCard/CashCard.vue","webpack:///./src/module/CashCard/components/Log.vue?b743","webpack:///./node_modules/core-js/library/fn/array/is-array.js"],"names":["$export","S","isArray","render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","on","$event","clickButton","_v","_s","text","staticRenderFns","name","props","type","default","methods","component","$find","KEY","forced","Array","P","F","find","callbackfn","arguments","length","undefined","_arrayWithoutHoles","arr","i","arr2","_iterableToArray","iter","Object","prototype","toString","call","_nonIterableSpread","TypeError","_toConsumableArray","module","exports","class","$store","state","isDashboard","lbl","active","tabHeader","changeTab","_e","alertModalSetting","isOpenModal","modalType","title","details","handleExport","searchForm","handleSearch","directives","rawName","value","initialValue","statusList","rules","expression","_l","status","key","columns","cardList","x","pageSize","defaultPageSize","defaultCurrent","total","totalCardList","hideOnSinglePage","onChange","onChangePage","scopedSlots","_u","fn","record","e","handleChange","CardId","firstTextUpper","editable","Type","target","UserId","cardIdList","formatNumber","cancel","save","editingKey","edit","KEY_COOKIE_USER","config","Vue","bzbsConfig","token","Cache","get","Token","appId","AppId","agency_id","$cookies","AgencyId","genCardDesignId","data","params","agencyId","cardNumber","cardId","userId","pin","contactNumber","designId","strUrl","bzbsModuleUrl","BzbsApi","connectBzbsGet","getCardDesignList","getCardDesignHistoryLog","id","getCardDesign","pk","uploadImg","file","temporary","bzbsUrl","connectBzbsPost","createCard","detail","cardName","cardType","coverUrl","updateCard","connectBzbsPatch","getCardList","skip","top","uploadCard","CardFile","editByRow","DesignId","Pin","Status","Name","ContactNumber","confirmUploadCard","removeUploadRecord","rk","connectBzbsDelete","ImportLog","ImportLogDetial","partionkey","getSummaryDashboard","getMemberChart","startDate","startdate","endDate","enddate","filter","getGenderChart","getAgeChart","getActiveMemberChart","getAverageDashboard","getPointChart","getRewardRedemtionRank","getBranchRank","redeemDate","mixins","components","AlertModal","ExportExcel","cardTypeList","dataIndex","align","width","customRender","fixed","skipCard","currentPage","cacheData","idDigitalList","idPhysicalList","computed","statusListOnEdit","created","init","setLocale","_","column","getStaticList","genDesignId","BzbsCashcard","then","map","resolve","catch","getCashCardList","Account","XLSX","wb","moment","dense","values","editSingleCard","res","number","alertModalAction","setTimeout","location","isUploadSuccess","isProgress","percentProgress","handleDrop","clickUpload","ref","import_card_serial_template","tagAnalytic","btnBackUpload","countSuccess","countFailed","exprotFailed","countTotal","backgroundColor","color","boxShadow","Success","onRemove","handleConfirmSubmit","confirmModalSetting","backto","onConfirm","onCancel","ConfirmModal","Drop","timeinterval","rowKey","getFileUpdate","dataFailed","editableData","action","clearInterval","errorDetail","fileInputElement","event","handleValidate","result","handleSubmitValidate","handleSubmit","desciption","error","confirmModalAction","countProgressTimer","calcelCallApi","verify","point","description","remark","wch","dataWS","checkValidate","isType","removeFileUpload","clearerror","isLog","historyData","openHistory","_m","cardDigital","card","imgDigital","style","CoverUrl","cardImage","defaultImg","displayID","Cash","model","callback","$$v","$set","fileDigitalList","beforeUpload","handleCancelDigital","isDigitalValidate","saveCard","addCard","cardPhysical","imgPhysical","filePhysicalList","handleCancelPhysical","isPhysicalValidate","Timestamp","getDateTime","getDateTimeLocal","LastUpdate","UpdatedBy","getChange","Action","from","to","isOpenHistory","cardDigitalName","cardDigitaDesignId","cardPhysicalName","cardPhysicalDesignId","cardListBackup","dataDigitalCardChange","getDigital","dataPhysicalCardChange","getPhysical","getCard","reader","img","canvas","ctx","CardName","Create","createFileFromPath","fileName","fetch","lastIndex","getHistory","backgroundImage","backgroundSize","getDate","year","unix","utc","add","format","changeList","alertWrongTypeImg","columnTable","dataActivityLog","totalSerial","dateShortFormatUTC","openDetail","currentLocale","visibleDetail","showFilterMain","toggle","keys","item","subFilter","changeSubFilter","label","selectFilter","resetFilter","getLogPointDetail","allFilter","index","removeFilter","columnsDetail","dataDetail","defaultPageSizeDetail","totalDetail","onChangePageDetail","scope","Error","getLogPointDetailExport","disabled","domProps","isCheck","valuee","check","normalCheck","CheckBox","dataActivityDetails","pageSizeSerial","currentSerial","filename","currentDetail","pageSizeDetail","dataDetailExport","showExportSuccess","showExportFail","currentSerialSkip","currentSerialSkipDetail","input","getLogPoint","onlyNumber","exportFile","resultData","card_status","card_type","card_design_id","card_number","pin_code","message","Header","List","Design","Log","Import","watch","currentParams","$route","handler","immediate","getCRMPlusProfile","BzbsProfile"],"mappings":"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sBAEA,CACAjI,kBACA8H,qBACAhH,iCACAiH,aACAC,UACAtG,aAAAuG,0BAEA,CACAjI,oBACA8H,mBACAhH,mCACAiH,aACAC,UACAtG,aAAAuG,sBAEA,CACAjI,aACA8H,iBACAhH,4BACAiH,aACAC,UACAtG,aAAAuG,sBAEA,CACAjI,sBACA8H,0BACAhH,qCACAiH,aACAC,UACAtG,aAAAuG,+BAEA,CACAjI,gBACA8H,mBACAhH,+BACAiH,aACAC,UACAtG,aAAAuG,sBAEA,CACAjI,iBACA8H,gBACAhH,2BACAiH,aACAC,UACAtG,aAAAuG,sBAEA,CACAjI,eACA8H,mBACAhH,8BACAY,aAAAuG,0BACAD,UACAD,eACAG,gBAGAC,WACAC,cACAjH,mBACAG,gBACA0F,UACAhG,YACAqH,aACA3F,cACA7C,mBACAG,SACAkF,UACAnF,aACAD,gBAEAwI,iBACAC,oBAGAC,UACAC,4BACA,sEAGAC,mBACA,4CACA,aAEAlL,SACAmL,gBACA,iBACA,qBACA,mBACA,wBAEAC,qBAAA,WACAC,sCACAC,yBAGAC,yBACA,iBACA,CAAA3L,WAAAmD,aACA,CAAAnD,cAAAmD,gBACA,CAAAnD,iBAAAmD,mBACA,CAAAnD,gBAAAmD,mBAEA,mBACA,CAAAnD,8BAAAmD,iBACA,CAAAnD,+BAAAmD,oBAGAyI,uBAAA,WAEA,OADA,uBACA,yBACAC,sBACAC,kBACA,oBACA,gBACA,uBACA,4BACAlC,oBAAA,gCACAmC,iBAAA,qBAEA,6BACAnC,oBAAA,iCACAmC,iBAAA,sBAGAC,aAEAC,mBACAD,YAIA9G,uBACA,oBACA,2CAAAlF,OAAAmD,YACA,4CAAAnD,OAAAmD,aAEA+I,2BAAA,gMAEA,OADA,uBACA,yBACAL,qBACAC,kBACA,oBACA,iBACA,kCACA,6BACA,sBACA,4DAGAE,aAEAC,mBACA,oBACAD,YAIA3H,yBACA,mBACA,yCACA,uDACA,0CAEAvB,wBAAA,WAEAqJ,4BACA,iBACA,0CAEA,YAEA,uBACA,uDACA,gCACAN,mCACAC,kBAEA,GADA,oBACA,gBACA,+CACA,mCACA,iCACA,sCACA,wCACA,iCACA,0CACA,oCACA,gCAEA,6BACAlD,6BACA7D,2BACA2D,+BACA9D,6BACAiE,2BACAC,oCACA7D,6BACA0D,cAIA,kBACA,iCACA,uBACAyD,iCACAA,cACAC,EACA,yBACAC,mCACA,cAGA,2CACA,8BACAhG,+BACA,CAAAiG,WAGA,uBACAH,iCACAA,cACAC,EACA,0BACAlL,KACA,IACAmL,mCACA,SAIA,oBAEAN,aAEAC,mBACA,oBACAD,YAIAhJ,yBAAA,WACA0B,mBACA,8CACA,OACAyH,4BACA,iBACA,0CAEA,YAEA,SACA,gDACA,8BACA,kBACA5F,uCACA,WACAA,SACAiG,0BACA,KACAA,gBACA,oCACA,2BACA,0CACA,WACA,gBACA,0BAIA3H,2BACA,IACA,4CACA,SACA,WAGAF,6BACA,oCACA,6CACA,IACAK,OACA,kBAGAyH,2BAAA,WAEA,OADA,uBACA,yBACAZ,eACAC,kBACA,oBACA,gBACA,sBACA,2DAGAE,aAEAC,mBACA,oBACAD,YAIAzG,iBACA,oCACA,6CACA,kBACA,IACAP,cACA,kBAGAK,iBAAA,WACA,gCACA,iCACA,6CACA,6CACA,MACA,yCACA,gBACAL,SACA,oBACA,kBACA,WACA,aACAzD,mBACA,cACA,mBACA,kCACA,uCACA,WACA,IAGA,mBACA,gCACAmL,UACAA,UACA,uCACA,SACA,OAMAtH,mBACA,oCACA,6CACA,mBACA,IACA7D,cACAyD,EACA,gEAEA,WACA,kBAGAG,yBACA,SACA,IACAwH,oDACA,SACAA,IAEA,UAEAC,mCACA,+BACA,iCACA,mCACA,qCACA,gBACAC,uBACAC,oBACA,KAEA,GACAD,uBACAC,oBACA,QC9oB4W,I,wBCQxWzM,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCnBX,EAAS,WAAa,IAAIpB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAGJ,EAAI8N,gBAA4nD9N,EAAIuD,KAA/mDnD,EAAG,MAAM,CAACG,YAAY,4BAA4B,CAAGP,EAAI+N,WAAs8B3N,EAAG,MAAM,CAACG,YAAY,6BAA6B,CAACH,EAAG,MAAM,CAACG,YAAY,QAAQ,CAACH,EAAG,MAAM,CAACJ,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,cAAc,KAAK/C,EAAG,SAAS,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIgO,iBAAiB,SAAS5N,EAAG,aAAa,CAACE,MAAM,CAAC,QAAUN,EAAIgO,gBAAgB,aAAY,EAAM,OAAS,aAAa,KAA3tC5N,EAAG,MAAM,CAACA,EAAG,OAAO,CAACG,YAAY,4BAA4BC,GAAG,CAAC,KAAOR,EAAIiO,aAAa,CAAC7N,EAAG,MAAM,CAACG,YAAY,iCAAiC,CAACH,EAAG,MAAM,CAACG,YAAY,mBAAmBD,MAAM,CAAC,IAAM,EAAQ,QAAuC,IAAM,eAAe,WAAY,KAASF,EAAG,MAAM,CAACG,YAAY,UAAU,CAACP,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,wBAAwB,OAAO/C,EAAG,MAAM,CAACG,YAAY,UAAU,CAACP,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,iCAAiC,OAAO/C,EAAG,WAAW,CAACG,YAAY,mBAAmBC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIkO,iBAAiB,CAAC9N,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,QAAiC,IAAM,SAAS,WAAY,KAASF,EAAG,OAAO,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,2BAA2B/C,EAAG,QAAQ,CAAC+N,IAAI,OAAO5N,YAAY,SAASD,MAAM,CAAC,KAAO,OAAO,OAAS,+FAA+FE,GAAG,CAAC,OAASR,EAAI0F,iBAAiB,MAAM,GAAyStF,EAAG,MAAM,CAACG,YAAY,qBAAqB,CAACH,EAAG,IAAI,CAACG,YAAY,gBAAgBD,MAAM,CAAC,KAAON,EAAIoO,4BAA4B,SAAW,IAAI5N,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIqO,YAAY,6BAA6B,CAACjO,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,cAAcN,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,uBAAuB,MAAM,OAAiBnD,EAAmB,gBAAEI,EAAG,MAAM,CAACG,YAAY,mCAAmC,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,MAAM,CAACI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIsO,mBAAmB,CAAClO,EAAG,MAAM,CAACG,YAAY,oBAAoBD,MAAM,CAAC,IAAM,EAAQ,QAA4C,IAAM,kBAAkBN,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,4CAA4C,SAAS/C,EAAG,MAAM,CAACG,YAAY,0BAA0B,CAAEP,EAAIuO,aAAe,EAAGnO,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,gDAAgD,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,MAAM,CAACG,YAAY,kBAAkBD,MAAM,CAAC,IAAM,EAAQ,QAA8C,IAAM,oBAAoBF,EAAG,SAAS,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,mCAAmC/C,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,gDAAgD,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,QAAQ,CAACP,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIuO,cAAc,OAAOnO,EAAG,MAAM,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,uBAAuB/C,EAAG,MAAM,CAACG,YAAY,gDAAgD,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,MAAM,CAACG,YAAY,kBAAkBD,MAAM,CAAC,IAAM,EAAQ,QAAiD,IAAM,oBAAoBF,EAAG,SAAS,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,uBAAuB/C,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,gDAAgD,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,QAAQ,CAACP,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIwO,aAAa,OAAOpO,EAAG,MAAM,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,iBAAiB/C,EAAG,MAAM,CAACG,YAAY,oHAAoH,CAACH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,SAAWN,EAAIwO,aAAe,GAAGhO,GAAG,CAAC,MAAQR,EAAIyO,eAAe,CAACrO,EAAG,MAAM,CAACG,YAAY,OAAOD,MAAM,CAAC,IAAM,EAAQ,QAA2C,IAAM,cAAcN,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,iBAAmB,KAAOnD,EAAIwO,YAAc,IAAMxO,EAAImD,IAAI,SAAW,KAAK,QAAQ,WAAW/C,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,UAAU,CAACH,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,MAAM,CAACG,YAAY,kBAAkBD,MAAM,CAAC,IAAM,EAAQ,QAAiD,IAAM,oBAAoBF,EAAG,SAAS,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,uBAAuB/C,EAAG,MAAM,CAACG,YAAY,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,UAAU,CAACH,EAAG,MAAM,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,QAAQ,CAACP,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIwO,aAAa,OAAOpO,EAAG,MAAM,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,2BAA2B/C,EAAG,MAAM,CAACG,YAAY,cAAc,CAACP,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,gBAAgB,KAAK/C,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQN,EAAI0O,WAAW,iBAAiB,KAAK,eAAe,CACpsJC,gBAAiB,OACjBC,MAAO,OACPC,UAAW,+BACP,GAAGzO,EAAG,MAAM,CAACG,YAAY,2BAA2B,CAACH,EAAG,UAAU,CAACE,MAAM,CAAC,QAAUN,EAAI0E,QAAQ,cAAc1E,EAAIqH,KAAK,OAAS,SAAS,WAAa,CAC1JxC,SAAU7E,EAAI8E,gBACdC,eAAgB,EAChBG,kBAAkB,IACjBG,YAAYrF,EAAIsF,GAAG,CAAC,CAACb,IAAI,SAASc,GAAG,SAAS1E,GAAM,MAAO,CAACb,EAAIW,GAAG,IAAIX,EAAIY,GAAGC,GAAc,IAAI,QAAQ,CAAC4D,IAAI,SAASc,GAAG,SAAS1E,GAAM,MAAO,CAAC,EAAOT,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,UAAU,CAACF,EAAG,OAAO,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,OAAOD,MAAM,CAAC,KAAO,kBAAkBN,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,8BAA8B,MAAM,KAAK/C,EAAG,QAAQ,CAACE,MAAM,CAAC,MAAQ,QAAQ,CAACF,EAAG,OAAO,CAACG,YAAY,uBAAuB,CAACH,EAAG,SAAS,CAACG,YAAY,OAAOD,MAAM,CAAC,KAAO,kBAAkBN,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,kBAAkB,MAAM,QAAQ,CAACsB,IAAI,SAASc,GAAG,SAAS1E,GAAM,MAAO,CAEhmBT,EAAG,OADK,uBAARS,GAAyC,qBAARA,EACvB,CAACb,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,sBAAsB,MAAiB,CAACnD,EAAIW,GAAG,IAAIX,EAAIY,GAAGC,GAAc,IAAI,UAAU,CAAC4D,IAAI,YAAYc,GAAG,SAAS1E,EAAM2E,GAAQ,MAAO,CAAGA,EAAOsJ,QAAmK9O,EAAIuD,KAA9JnD,EAAG,IAAI,CAACG,YAAY,gBAAgBC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAI+O,SAASvJ,MAAW,CAACxF,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,mCAA4C,MAAK,EAAM,eAAe,GAAG/C,EAAG,MAAMA,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,MAAM,CAACG,YAAY,gCAAgC,CAACH,EAAG,WAAW,CAACG,YAAY,uBAAuBC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIsO,mBAAmB,CAAClO,EAAG,OAAO,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,kBAAkB/C,EAAG,WAAW,CAACG,YAAY,uBAAuBD,MAAM,CAAC,KAAO,UAAU,SAAWN,EAAIuO,cAAgB,GAAG/N,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIgP,yBAAyB,CAAC5O,EAAG,OAAO,CAACJ,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImD,IAAI,qBAAqB,OAAOnD,EAAIuD,KAAKnD,EAAG,aAAa,CAACE,MAAM,CAAC,YAAcN,EAAIwD,kBAAkBC,YAAY,UAAYzD,EAAIwD,kBAAkBE,UAAU,MAAQ1D,EAAIwD,kBAAkBG,MAAM,QAAU3D,EAAIwD,kBAAkBI,WAAWxD,EAAG,eAAe,CAACE,MAAM,CAAC,YAAcN,EAAIiP,oBAAoBxL,YAAY,UAAYzD,EAAIiP,oBAAoBvL,UAAU,MAAQ1D,EAAIiP,oBAAoBtL,MAAM,QAAU3D,EAAIiP,oBAAoBrL,QAAQ,OAAS5D,EAAIiP,oBAAoBC,OAAO,UAAYlP,EAAIiP,oBAAoBE,UAAU,SAAWnP,EAAIiP,oBAAoBG,aAAa,IACp5C,EAAkB,G,wBCiRP,GACfrO,sBACAqK,gBACAC,YAAAC,kBAAA+D,oBAAAC,gBACAjI,gBACA,OACA3C,SACA,CACAf,eACA8H,oBACAhH,8BACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,oBACA8H,uBACAhH,mCACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,kBACA8H,qBACAhH,4BACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,kBACA8H,qBACAhH,iCACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,oBACA8H,uBACAhH,mCACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,iBACA8H,oBACAhH,2BACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,eACA8H,oBACAhH,aACAiH,aACArG,aAAAuG,wBAEA,CACAjI,eACA8H,mBACAhH,8BACAY,aAAAuG,0BACAD,UACAD,eACAG,gBAGAuC,4BACA3H,oCACA,sEACAsH,cACAC,kBACAuB,kBACAzB,mBACAS,eACAC,cACAE,aACAc,YACAC,mBACApI,QACAqI,cACA5K,mBACA6K,kBACAnM,mBACAG,SACAkF,UACAnF,aACAD,gBAEAwL,qBACAtL,SACAkF,UACAnF,aACAwL,UACAC,eACAC,cACA3L,kBAIA4I,mBACA,sBACA,4BACA,yBAEA,uBACA,uBACA,mBACA,iBAGA,kDACA,kBAEA,mBACAtL,gBACAuG,QAAAsI,oBAIAzO,SACAoL,qBAAA,WACAC,sCACAC,wBAGAD,4CACAC,yBAGA6B,yBACA,uBACA,uBACA,mBACA,wBACA,oBACA,mBACA,kBACA,aACA,uBACApB,4BACA,iBACA,qBACA,4BACA,YAEA,mBACAnM,gBACAuG,QAAAsI,oBAGAb,qBAAA,WAEA7B,4BACA,iBACA,4CACA7F,cACA,YAEA,mBACA,0BACAuF,8CACAC,kBACA,qBACA,GACA,sCACA,6BAEA,mBACA,kCACA,KACA,WACA,IAGA,mBACA,4BACA,KACA,SACA,MAGAG,mBAEA,oCACA6C,8BACA,mBACA,4BACAC,EACA,SACA,OAIApK,yBACA,wCACA,qCACA,wBAGAwI,uBACAhB,4BACA,iBACA,qBACA,kCACA,YAEA,kBACA,sBACA6C,WAEA9B,yBAEAf,4BACA,iBACA,qBACA,kCACA,YAEA8C,mBACA,8CACA,2CACA,wBAGAC,0BAAA,WACA,mBACA,0BACArD,iCACAC,kBACA,oBACA,aACA,aAGA,GAFA,eACA,oBACA,sBACA,cACA,aACA,oCACAgD,8BACA,mBACA,4BACAC,EACA,SACA,QAGA,gCACA,uBACA,cACA,sBACAD,8BACA,4CAEA,CACA,eACA,gBACAK,UACA,8BACAL,8BACA,mBACA,4BACAC,EACA,SACA,OAIA9C,mBAEA,oBACA,oCACA6C,8BACA,mBACA,4BACAC,EACA,SACA,OAIAK,mCAAA,WACA,uCACA,mCACA,mCACA,0BACA,cACA,kDACA,mBACA,YAIA,mBAGAvC,YACA,kBACA,qBACA,eACA,CACA7M,sBACAuG,QAAAsI,gBAAAJ,WAEA3C,iBACA,uBAEAG,kBACA,gBACAjM,gBACAuG,QAAAsI,mBAEA,0BAIA,MAGAZ,+BAAA,WACA,mBACA,wBACA,2CACA,kDACA,UACA,uCACA,GACA,WACA,qCACA,oBAEA,WACA,wCAIA,wBACA,gCACA,yCACA,UACA,uCACA,GACA,WACA,qCACA,oBAEA,WACA,yCAKAoB,wBAAA,WACA,uBACAlD,4BACA,iBACA,qBACA,2BACA,YAEAN,iCACAC,kBAEA,GADA,oBACA,gBACA,mBACA,0CACA,mBACA,kCACA,+BACA,WACA,EACAwD,GACA,QAGA,mBACA,gCACA5C,eACAA,eACA,uDACA,SACA,MAIAT,mBACA,oBACA,mBACA,gCACAsD,8BACAA,8BACA,uDACA,SACA,OAIAC,4BACA5M,EACAC,EACAF,EACAwL,EACAzL,EACA0L,EACAC,GAEA,iCACA,mCACA,qCACA,uCACA,kCACA,qCACA,qCAEAoB,8BAAA,WACA,0CAKA,GAJA,wBACA,qBACAX,+BAEA,sBACAA,kCACA,CACA,mCACA,qBACA,wBACA,qBACAA,kCAGA,MAEAY,yBACA,wBACA,4BAEAhC,wBAEA,uBACAvB,4BACA,iBACA,qBACA,2BACA,YAGA,iDACA,kBACA,KACA,UACA,gBACA,WAEA,6BACAwD,0BACAC,6CACAC,mDACAC,+BAIA,6BAAAvD,WACA,IAAAwD,QAAA,CAAAA,QAAA,CAAAA,QAAA,CAAAA,SACAC,aACA,2BACA5D,iCACAA,cACAC,EACA,8BACAC,mCACA,SAGA,wBAEA2D,0BACA,kBACA,SACA,EAEA,qEADAxI,OAEA,qCAUA,OATA,OACA,sBACA,mCACA,GACA,SACA,GAEAyI,MAEA,GAEAC,4BACA,4BAEAC,sBAEA,aADA,iBACA,eACA,sBAGAxD,0BACAhK,EACAC,EACAF,EACAD,EACA4M,EACAe,GACA,WACA,+BACA,iCACA,mCACA,qCACA,oCACA,gBACA,EACAxD,uBACA,mCACA,oBACA,oBACA,gBACA,qBACA,iBACA,gBACA,eA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C,oBACAC,kBACA,oBACAE,uBAEAC,mBACA,oBACA,mBACA,gCACAsD,8BACAA,8BACA,qCACA,SACA,UAKA/H,sBAAA,WAEA,OADA,uBACA,yBACAqE,eACAC,kBACA,oBACAE,aAEAC,mBACA,oBACA,IACA,mBACA,gCACAsD,8BACAA,8BACA,qCACA,SACA,GAEA,SACA,mBACA,gCACA,qCACA,SACA,WAMAgC,yBACA,MACA9J,sBACAA,uBACAA,qBACA,KAQA,SAPA,uBACA,mCACA,sBACA,SACA,IAMA9C,2BAAA,WACAwH,4BACA,iBACA,sDACAjM,WACA,YAEA,2BACA,MACA,qBAEAmT,qBACA,gBACAC,sBACAA,oBACA,uCACA,qBAEAC,YACAA,aAEAC,oCAEAD,sBACA,2BACArT,cAGA,eACA,sBACA,kDACA,iBACA,uBACA,qDAEA,UAIAmT,qBAGA1B,oBAAA,WACAxF,4BACA,iBACA,uCACAjM,WACA,YAEA,qCACA,OACAuT,cACA/K,iBACAmI,cACA6C,WAEA,eACA,uBACA,eACA,0BAIAlC,+BACArF,4BACA,iBACA,oDAEA,YAEA,6EACA,eACA,gCACA,2CACA,2CACA,gDAEA,oBAGA4F,gCACA5F,4BACA,iBACA,qDAEA,YAEA,kCACA,4CAEA,eACA,iBACA,4CACA,4CACA,iDAEA,qBAGAwH,8BAAA,sKAAAC,qDAAA,kBACAC,SACA/H,kBACA,SACA,8CAEA,mBAEAA,kBAEA,sBAAA5L,cACA,aACA,iGAZAyT,GAcAjC,oBAAA,gKAwBA,GAvBAvF,4BACA,iBACA,wCACAjM,WACA,YAEA,uBACA4T,OACA3E,KACA1H,OACA,cACAqM,4BACA3E,sBACA1H,2BACA,gBACAqM,6BACA3E,uBACA1H,4BAEAnB,KACAA,sBACAA,sBACAA,aACAA,6BAEA6I,UAAA,oBACA1H,GAAA,gBACA,oCACAnB,iBACA,mBACA,yCAEA,yCACAwF,kBAEA,iCACAxF,iBACA,sBAGA2F,uBAAA,gCAGA,EACA,oCACA3F,iBACA,mBAGA,mBACA,uGAnDAoL,GAsDA7J,uBAAA,WACA,gCACAgE,gBACAC,kBACA,oBACA,gBACAK,4BACA,iBACA,oCACA7F,4BACA,WAEA,mBACA,kCACA,wCACA,WACA,KAGA6F,4BACA,iBACA,oCACA7F,yBACA,WAEA,mBACA,gCACAoG,eACAA,eACA,qCACA,SACA,IAGAV,aAEAC,mBACA,oBACAE,4BACA,iBACA,oCACA7F,yBACA,WAEA,mBACA,gCACAiJ,8BACAA,8BACA,qCACA,SACA,UAKArH,uBAAA,WACA,gCACA2D,gBACAC,kBACA,oBACA,gBACAK,4BACA,iBACA,oCACA7F,4BACA,WAEA,mBACA,kCACA,wCACA,WACA,KAGA6F,4BACA,iBACA,oCACA7F,yBACA,WAEA,mBACA,gCACAoG,eACAA,eACA,qCACA,SACA,IAGAV,aAEAC,mBACA,oBACAE,4BACA,iBACA,oCACA7F,yBACA,WAEA,IACA,mBACA,gCACAiJ,8BACAA,8BACA,qCACA,SACA,GAEA,SACA,mBACA,gCACA,qCACA,SACA,WAMAwE,uBAAA,WAEA,OADA,uBACA,yBACAlI,6BACAC,kBACA,iBACA,mFACA,0BACA,cACA,cACA,WAGAE,aAEAC,mBACA,oBACA,mBACA,gCACAsD,8BACAA,8BACA,qCACA,SACA,UAKAgB,uBACApE,4BACA,iBACA,4CAEA,YAEA,sBACAA,4BACA,iBACA,sCAEA,YAGA2E,sBACA,SACA,CAAAkD,qCAAAC,wBACA,IAEAjD,sBACA,IACA,mCACA,SACA,WAGAkD,oBACA,6BACA,kBACA5H,cACA,0CACA,mCAMA,MAJA,+BACA6H,mBAGA,KAEAhC,6BACA,6BACA,kBACA7F,cACA,0CACA,mCACA,oCAMA,MAJA,+BACA6H,mBAGA,YAEAjC,wBACA,6BACA,kBACA5F,cACA,UACA8H,QACAC,MACAC,eACAC,kBACA,kDACA,mDAMA,MAJA,+BACAJ,mBAGA,YAEA7B,sBACA,SAsBA,OArBA,2BACAkC,QACA9Q,WACA8O,mBACAC,gBAGA,2BACA+B,QACA9Q,UACA8O,mBACAC,gBAGA,2BACA+B,QACA9Q,WACA8O,mBACAC,gBAGA,GAEAgC,oCAAA,WACA,+BAC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AG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,6BAA6B,OAAO/C,EAAG,OAAO,CAACJ,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAImD,IAAI,kBAAkB,OAAO/C,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,WAAW,SAAWN,EAAIqX,UAAUC,SAAS,CAAC,QAAUtX,EAAIuX,QAAQ,MAAQvX,EAAIwX,UAAUpX,EAAG,OAAO,CAACG,YAAY,kBAC/gB,EAAkB,GCuBP,GACf6K,gBACApK,OACAsV,OACArV,YACAC,YAEAsW,QACAvW,YACAC,YAEAuW,OACAxW,YACAC,YAEAD,MACAA,YACAC,kBAEAwW,aACAzW,cAEAoW,UACApW,aACAC,aAGAiL,UACAoL,mBACA,2BAEA,gDACA,8CACA,6CAGA,oBC5DgX,ICQ5W,I,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,wlBCiLf,QACA,CACA5T,eACA8H,oBACAhH,8BACAkH,cACAD,eACArG,aAAAuG,wBAEA,CACAjI,kBACA8H,qBACAhH,2BACAiH,cAEA,CACA/H,oBACA8H,wBACAhH,6BACAkH,cACAD,eACArG,aACAuG,sBAGA,CACAjI,iBACAc,eACAkH,cACAD,aACAD,wBAEA,CACA9H,gBACAc,gCACAiH,aACAD,0BAEA,CACA9H,aACAc,6BACAkH,cACAD,aACAD,uBAEA,CACA9H,SACAgI,cACAD,eACArG,aACAuG,yBAKA,IACA,CACAjI,sBACA8H,oBACAhH,+BACAiH,eACArG,aACAuG,wBAGA,CACAjI,oBACA8H,uBACAhH,2CACAiH,aACArG,aAAAuG,wBAEA,CACAjI,kBACA8H,qBACAhH,yCACAiH,aACArG,aAAAuG,wBAEA,CACAjI,kBACA8H,qBACAhH,yCACAiH,aACArG,aAAAuG,wBAEA,CACAjI,oBACA8H,uBACAhH,2CACAiH,aACAC,UACAtG,aAAAuG,wBAEA,CACAjI,iBACA8H,oBACAhH,wCACAiH,aACArG,aAAAuG,yBAGe,IACf7K,mBACAqK,gBACAC,YAAAsM,aACAtQ,gBACA,OACAoO,eACAoB,iBACAnB,mBACAkC,uBACAC,kBACAC,gBACA1N,cACA2N,YACApC,iBACAI,iBACAiC,gBACAhB,iBACAiB,kBACAnB,cACAoB,oBACAC,qBACAC,kBACAtT,mBACAiS,yBACAsB,oBACAC,0BACAxC,sCACAM,mBACAJ,kBACArL,QACAnG,QACAN,WACAqU,2BACAjC,iCACArV,kBAGAyV,eAGArK,mBACA,mBACA,kBAEAlL,SACAoL,qBAAA,WACAC,0CACAC,wBAEAD,4CACAC,yBAGA+L,uBAAA,WAEA,OADA,uBACA,yBACA5L,mDACAC,kBAEA,oBACA,2BACA,gCACAE,aAEAC,mBACA,oBAEAD,YAIA3H,yBAEA,qBACA,kDACA,oBAEAyQ,uBAAA,WACA,4CACA,4BACA,yBACA3I,4BACA,iBACA,4CACA,iBACA,YAEA,yBACA,2BACA,mBACAA,4BACA,iBACA,sCACA,cACA,eAIAuJ,6BAAA,WACA,uBACA,uBACA,WACA,6CACA,4CACA,8DACA,yBACA,gDADA,IAEA,IACA,SAMA,OALA,aACApN,KACA,gCAGA,yBACAuD,kBACA,aACAvD,4BACA,2BAEAwD,kBACA,uBACA,oBACA,oBACA,2BACA,uBACA,4CACA,SACA,mDACA,4BAEA,kCACA,+BACA,YACA,wBAEA,YACA,0BAIA,2BACA,+BACA,YACA,wBAEA,YACA,yBAIAE,aAEAC,mBACA,oBAEAD,YAIAkK,+BACA,qBAEA,qCACA,qCAEA,8DACA,2BAGAwB,uBACA,mBACA,iBAEA,SACAhY,oBAGA2W,oCAAA,WAGA,OAFA,uBACA,yBACA,yBACAxK,oCACAC,kBACA,iCACA,gBACAE,aAEAC,mBACA,oBAEAD,YAIA2L,uBAAA,IAOA,EAPA,OACAxL,4BACA,iBACA,wCACAjM,UACA,YAGA,aACA0X,4CAAA,oBACA,YACAA,4CAAA,qBAGA,mCACA,gDACA,8CACA,8CACA,gDACA,6CACA,4CACA,kBACA,6BACAC,iDACAC,6CACAC,6CACAC,iDACAC,2CACAC,2CACApI,6BAIA,6BAAAvD,WACA,GACA,CAAAwD,QACA,CAAAA,QACA,CAAAA,QACA,CAAAA,QACA,CAAAA,QACA,CAAAA,QACA,CAAAA,SAEAC,aACA,2BACA5D,iCACAA,cACAC,EACA,4BACAC,mCACA,SAGA,wBAEA4I,mBACA,kBAEAI,4BACA,kBAEAE,yBAEA,+CACAJ,eACA,2DAEA,uCAEA,qCAGAK,uBACA,4BACA,0BAEAI,yBAAA,WACAtU,8CACA,iCAEA,4BC9jB2W,MCSvW,I,oBAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCgFA,IACfvB,mBACAqK,gBACAC,YACA6N,cACA5N,kBACA6N,OACAC,SACAC,OACAC,UAEAjS,gBACA,OACAhE,iBACA4L,qBACAtL,SACAkF,UACAnF,aACAwL,UACAC,eACAC,cACA3L,gBAEAD,mBACAG,SACAkF,UACAnF,aACAD,kBAIA8V,OACAC,4BACA,QACA,mBAGAC,QACAC,oBACA,sBACA,IACA,mBAGAC,eAGAtN,mBACA,uBACAa,4BACA,iBACA,YACA,iBACA,WAEA,sBACA,kDACA,uBACA,0BAEA/L,SACAyY,6BAAA,WAEA,OADA,uBACA,yBACAC,2BACAhN,kBACA,oBACAE,aAEAC,mBACA,oBAEAD,YAIAzJ,sBACA,iBACA4J,4BACA,iBACA,2BACA9J,gBACA,WAEA8J,4BACA,iBACA,4BACA9J,gBACA,YAEA,sBACArC,gBACAuG,QAAAsI,aAGAW,4BACA5M,EACAC,EACAF,EACAwL,EACAzL,EACA0L,EACAC,GAEA,iCACA,mCACA,qCACA,uCACA,kCACA,qCACA,uCClNiW,MCS7V,I,oBAAY,eACd,GACArP,EACAe,GACA,EACA,KACA,WACA,OAIa,gB,2CCpBf,W,qBCAA,EAAQ,QACR+B,EAAOC,QAAU,EAAQ,QAAuBtB,MAAM1B,S","file":"js/chunk-0ab6ff50.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashCard.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=0&lang=scss&\"","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Design.vue?vue&type=style&index=0&id=7e549e8d&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=style&index=1&id=39178ccf&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"export_excel_button\"}},[_c('a-button',{staticClass:\"export-excel-button\",on:{\"click\":function($event){return _vm.clickButton()}}},[_c('img',{staticClass:\"icon\",attrs:{\"src\":require('@/assets/images/office_logo.svg'),\"alt\":\"excel\"}}),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.text))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"export_excel_button\">\r\n <a-button class=\"export-excel-button\" @click=\"clickButton()\">\r\n <img\r\n class=\"icon\"\r\n :src=\"require('@/assets/images/office_logo.svg')\"\r\n alt=\"excel\"\r\n />\r\n <span class=\"text\">{{ text }}</span>\r\n </a-button>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ExportExcel',\r\n props: {\r\n text: {\r\n type: String,\r\n default: 'Export Excel',\r\n },\r\n },\r\n methods: {\r\n clickButton() {\r\n this.$emit('clickButton')\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.export-excel-button {\r\n justify-content: center;\r\n align-items: center;\r\n padding: 8px 16px;\r\n border-radius: 6px;\r\n border: solid 1px #389e0d !important;\r\n background-color: #ffffff !important;\r\n color: #389e0d !important;\r\n\r\n .icon {\r\n height: 20px;\r\n margin-right: 8px;\r\n }\r\n .text {\r\n font-size: 16px;\r\n line-height: 0;\r\n }\r\n}\r\n.export-excel-button:hover {\r\n background-color: #e5e5e5 !important;\r\n border-color: #e5e5e5 !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportExcel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportExcel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExportExcel.vue?vue&type=template&id=301ab1e2&scoped=true&\"\nimport script from \"./ExportExcel.vue?vue&type=script&lang=js&\"\nexport * from \"./ExportExcel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExportExcel.vue?vue&type=style&index=0&id=301ab1e2&lang=scss&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 \"301ab1e2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=style&index=1&id=b3f548e0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./List.vue?vue&type=style&index=0&id=f1bbdfd6&lang=scss&scoped=true&\"","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","import _Array$isArray from \"../../core-js/array/is-array\";\nexport default function _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","import _Array$from from \"../../core-js/array/from\";\nimport _isIterable from \"../../core-js/is-iterable\";\nexport default function _iterableToArray(iter) {\n if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return _Array$from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","module.exports = require(\"core-js/library/fn/array/from\");","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportExcel.vue?vue&type=style&index=0&id=301ab1e2&lang=scss&scoped=true&\"","module.exports = require(\"core-js/library/fn/array/is-array\");","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAPUExURUdwTP///////////////xPgMRoAAAAEdFJOUwB/7zATAZZ4AAAAaElEQVQ4y9XPywmAQAyE4REb8JAOtACxg5X0X5P7EHTN5Bhw5/rzQQL8fdPiBEkOUOVEVJMDOBE9N0YyWA9GMthnQgoACCkAsKSeBNjD5AnJgDt0RN7he1gL5PPhQnsyMkRPu8WE8XcBEREyNRUUee4AAAAASUVORK5CYII=\"","module.exports = require(\"core-js/library/fn/is-iterable\");","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=08d92896&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashCard.vue?vue&type=style&index=1&id=61a9d3be&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('Header'),_c('div',{staticClass:\"mx-auto mt-1 content-outer-container adjust-point\",class:{ 'content-dashboard': _vm.$store.state.isDashboard }},[_c('div',{staticClass:\"mx-auto\"},[_c('div',{staticClass:\"wrapper-ifrem custom-wrapper-ifrem\"},[_c('div',{staticClass:\"row paj-custom-row\"},[_c('div',{staticClass:\"\\n col-xl-12 col-lg-12 col-md-12\\n pb-4\\n wrapper-dashboard\\n custom-wrapper-dashboard\\n \"},[_c('div',{staticClass:\"\\n card-custom card-stretch\\n gutter-b\\n panel panel-default\\n title-wrapper\\n \"},[_c('div',{staticClass:\"text-title-point-adjustment\"},[_vm._v(\" \"+_vm._s(_vm.lbl['import-tab-label'])+\" \")])])]),_c('div',{staticClass:\"col-xl-12 col-lg-12 col-md-12 wrapper-point-adjustment\"},[_c('div',{staticClass:\"page-title\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/credit_card.svg\"),\"alt\":\"credit_card icon\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_page_title'])+\" \")]),_c('div',{staticClass:\"d-flex wrapper-select-header\"},[_c('div',{staticClass:\"select-header\",class:{ active: _vm.tabHeader === 'List' },on:{\"click\":function($event){return _vm.changeTab('List')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_card_list_title'])+\" \")]),_c('div',{staticClass:\"select-header select-hd-right\",class:{ active: _vm.tabHeader === 'Design' },on:{\"click\":function($event){return _vm.changeTab('Design')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_card_design_title'])+\" \")]),_c('div',{staticClass:\"select-header select-hd-right\",class:{ active: _vm.tabHeader === 'Import' },on:{\"click\":function($event){return _vm.changeTab('Import')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_card_import_serial_title'])+\" \")]),_c('div',{staticClass:\"select-header select-hd-right\",class:{ active: _vm.tabHeader === 'Log' },on:{\"click\":function($event){return _vm.changeTab('Log')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_import_log_title'])+\" \")])]),_c('div',{staticClass:\"wrapper-content\"},[(_vm.tabHeader === 'List')?_c('List'):_vm._e(),(_vm.tabHeader === 'Design')?_c('Design'):_vm._e(),(_vm.tabHeader === 'Import')?_c('Import'):_vm._e(),(_vm.tabHeader === 'Log')?_c('Log'):_vm._e()],1)])])])])]),_c('AlertModal',{attrs:{\"isOpenModal\":_vm.alertModalSetting.isOpenModal,\"modalType\":_vm.alertModalSetting.modalType,\"title\":_vm.alertModalSetting.title,\"details\":_vm.alertModalSetting.details}})],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:\"cash-card-list-wrapper\"},[_c('div',{staticClass:\"serch-wrapper\"},[_c('ExportExcel',{staticClass:\"export-wrapper\",attrs:{\"text\":_vm.lbl['export_all_data_btn_text']},on:{\"clickButton\":_vm.handleExport}}),_c('a-form',{attrs:{\"form\":_vm.searchForm},on:{\"submit\":_vm.handleSearch}},[_c('a-row',{attrs:{\"gutter\":24}},[_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_status']}},[_c('a-select',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:([\n 'status',\n {\n initialValue: _vm.statusList[0].value,\n rules: [{}],\n } ]),expression:\"[\\n 'status',\\n {\\n initialValue: statusList[0].value,\\n rules: [{}],\\n },\\n ]\"}]},_vm._l((_vm.statusList),function(status){return _c('a-select-option',{key:status.value,attrs:{\"value\":status.value}},[_vm._v(\" \"+_vm._s(status.name)+\" \")])}),1)],1)],1),_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_card_number']}},[_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:(['cardNumber']),expression:\"['cardNumber']\"}],attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']}})],1)],1),_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_name']}},[_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:(['name']),expression:\"['name']\"}],attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']}})],1)],1),_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_mobile_number']}},[_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:(['contactNumber']),expression:\"['contactNumber']\"}],attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']}})],1)],1),_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_user_id']}},[_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:(['UserId']),expression:\"['UserId']\"}],attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']}})],1)],1),_c('a-col',{attrs:{\"span\":4}},[_c('a-form-item',{attrs:{\"label\":_vm.lbl['cash_card_list_search_pin']}},[_c('a-input',{directives:[{name:\"decorator\",rawName:\"v-decorator\",value:(['pin']),expression:\"['pin']\"}],attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']}})],1)],1),_c('a-col',{staticClass:\"search-action\",attrs:{\"span\":24}},[_c('a-button',{staticClass:\"search-btn\",attrs:{\"type\":\"primary\",\"html-type\":\"submit\"}},[_c('a-icon',{attrs:{\"type\":\"search\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['import-search-button'])+\" \")],1)],1)],1)],1)],1),_c('div',{staticClass:\"list-wrapper\"},[_c('a-table',{attrs:{\"row-key\":\"CardId\",\"columns\":_vm.columns,\"data-source\":_vm.cardList,\"scroll\":{ x: 1024 },\"pagination\":{\n pageSize: _vm.defaultPageSize,\n defaultCurrent: 1,\n total: _vm.totalCardList,\n hideOnSinglePage: false,\n onChange: _vm.onChangePage,\n }},scopedSlots:_vm._u([{key:\"status\",fn:function(text, record){return [(record.editable)?_c('a-select',{staticClass:\"w-100\",attrs:{\"value\":text},on:{\"change\":function (e) { return _vm.handleChange(e, record.CardId, 'Status'); }}},_vm._l((_vm.statusListOnEdit),function(status){return _c('a-select-option',{key:status.value,attrs:{\"value\":status.value}},[_vm._v(\" \"+_vm._s(status.name)+\" \")])}),1):[(text === 'active')?_c('a-tag',{staticClass:\"tag\",attrs:{\"color\":\"green\"}},[_c('div',{staticClass:\"dot-green\"}),_c('span',[_vm._v(\" \"+_vm._s(_vm.firstTextUpper(text))+\" \")])]):(text === 'available')?_c('a-tag',{staticClass:\"tag\",attrs:{\"color\":\"blue\"}},[_c('div',{staticClass:\"dot-blue\"}),_c('span',[_vm._v(\" \"+_vm._s(_vm.firstTextUpper(text))+\" \")])]):_c('a-tag',{staticClass:\"tag\"},[_c('div',{staticClass:\"dot\"}),_c('span',[_vm._v(\" \"+_vm._s(_vm.firstTextUpper(text))+\" \")])])]]}},{key:\"name\",fn:function(text, record){return [(record.editable && record.Type !== 'digital')?_c('a-input',{attrs:{\"value\":text},on:{\"change\":function (e) { return _vm.handleChange(e.target.value, record.CardId, 'Name'); }}}):[_vm._v(\" \"+_vm._s(text)+\" \")]]}},{key:\"contactNumber\",fn:function(text, record){return [(record.editable && record.Type !== 'digital')?_c('a-input',{attrs:{\"value\":text},on:{\"change\":function (e) { return _vm.handleChange(e.target.value, record.CardId, 'ContactNumber'); }}}):[_vm._v(\" \"+_vm._s(text)+\" \")]]}},{key:\"type\",fn:function(text, record){return [(record.editable && !record.UserId)?_c('a-select',{staticClass:\"w-100\",attrs:{\"value\":text},on:{\"change\":function (e) { return _vm.handleChange(e, record.CardId, 'Type'); }}},_vm._l((_vm.cardTypeList),function(status){return _c('a-select-option',{key:status.value,staticClass:\"w-100\",attrs:{\"value\":status.value}},[_vm._v(\" \"+_vm._s(status.name)+\" \")])}),1):[_vm._v(\" \"+_vm._s(text)+\" \")]]}},{key:\"designId\",fn:function(text, record){return [(record.editable)?_c('a-select',{staticClass:\"w-100\",attrs:{\"value\":text},on:{\"change\":function (e) { return _vm.handleChange(e, record.CardId, 'DesignId'); }}},[(_vm.cardIdList(record.Type).length)?_vm._l((_vm.cardIdList(record.Type)),function(status){return _c('a-select-option',{key:status.value,staticClass:\"w-100\",attrs:{\"value\":status.value}},[_vm._v(\" \"+_vm._s(status.name)+\" \")])}):[_c('a-select-option',{attrs:{\"value\":\"\",\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_not_found_card_id'])+\" \")])]],2):[_vm._v(\" \"+_vm._s(text)+\" \")]]}},{key:\"number\",fn:function(text){return [_c('strong',[_vm._v(_vm._s(_vm.formatNumber(text)))])]}},{key:\"operation\",fn:function(text, record){return [_c('div',{staticClass:\"editable-row-operations\"},[(record.editable)?_c('div',{staticClass:\"btn-action-wraper\"},[_c('a-button',{attrs:{\"type\":\"primary\",\"ghost\":\"\"},on:{\"click\":function () { return _vm.cancel(record.CardId); }}},[_vm._v(\" \"+_vm._s(_vm.lbl['usr-level-cancel'])+\" \")]),_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function () { return _vm.save(record.CardId); }}},[_vm._v(\" \"+_vm._s(_vm.lbl['user-level-button-save'])+\" \")])],1):_c('span',[_c('a',{attrs:{\"disabled\":_vm.editingKey !== ''},on:{\"click\":function () { return _vm.edit(record.CardId); }}},[_vm._v(_vm._s(_vm.lbl['manage-usr-edit']))])])])]}}])})],1),_c('AlertModal',{attrs:{\"isOpenModal\":_vm.alertModalSetting.isOpenModal,\"modalType\":_vm.alertModalSetting.modalType,\"title\":_vm.alertModalSetting.title,\"details\":_vm.alertModalSetting.details}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport BzbsApi from '@/core/Http/BzbsApi.js'\r\nimport Cache from '@/helper/Cache.js'\r\n// import moment from 'moment'\r\n\r\nexport default {\r\n KEY_COOKIE_USER: 'CRMUser',\r\n config: function () {\r\n return Vue.bzbsConfig\r\n },\r\n token: function () {\r\n return Cache.get(this.KEY_COOKIE_USER).Token\r\n },\r\n appId: function () {\r\n return Cache.get(this.KEY_COOKIE_USER).AppId\r\n },\r\n agency_id: function () {\r\n return Vue.$cookies.get(this.KEY_COOKIE_USER).AgencyId\r\n ? Vue.$cookies.get(this.KEY_COOKIE_USER).AgencyId\r\n : this.config().agency_id\r\n },\r\n genCardDesignId(data) {\r\n const params = {\r\n agencyId: this.agency_id(),\r\n }\r\n if (data) {\r\n if (data.cardNumber) params.cardId = data.cardNumber\r\n if (data.name) params.name = data.name\r\n if (data.status) params.status = data.status\r\n if (data.userId) params.userId = data.userId\r\n if (data.pin) params.pin = data.pin\r\n if (data.contactNumber) params.contactNumber = data.contactNumber\r\n if (data.designId) params.designId = data.designId\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmpluscarddesign/generate_design_id'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getCardDesignList() {\r\n const params = {\r\n agencyId: this.agency_id(),\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscarddesign/designs'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getCardDesignHistoryLog(id) {\r\n const params = {\r\n agencyId: this.agency_id(),\r\n designId: id,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscarddesign/histories'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getCardDesign(pk) {\r\n const params = {\r\n agencyId: this.agency_id(),\r\n pk: pk,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscarddesign/design'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n uploadImg(file, temporary = false) {\r\n var params = {\r\n data: file,\r\n temporary: temporary,\r\n }\r\n var strUrl = this.config().bzbsUrl + '/upload'\r\n return BzbsApi.connectBzbsPost(strUrl, this.token(), params)\r\n },\r\n createCard(detail) {\r\n var params = {\r\n agencyId: this.agency_id(),\r\n designId: detail.designId,\r\n cardName: detail.cardName,\r\n cardType: detail.cardType,\r\n coverUrl: detail.coverUrl || null,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscarddesign/create'\r\n return BzbsApi.connectBzbsPost(strUrl, this.token(), params)\r\n },\r\n updateCard(detail) {\r\n var params = {\r\n agencyId: this.agency_id(),\r\n designId: detail.designId,\r\n cardName: detail.cardName,\r\n cardType: detail.cardType,\r\n coverUrl: detail.coverUrl,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscarddesign/update'\r\n return BzbsApi.connectBzbsPatch(strUrl, this.token(), params)\r\n },\r\n getCardList(data, skip = 0, top = 10) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n skip: skip,\r\n top: top,\r\n }\r\n if (data) {\r\n if (data.cardNumber) params.cardId = data.cardNumber\r\n if (data.name) params.name = data.name\r\n if (data.status) params.status = data.status\r\n if (data.userId) params.userId = data.userId\r\n if (data.pin) params.pin = data.pin\r\n if (data.contactNumber) params.contactNumber = data.contactNumber\r\n if (data.designId) params.designId = data.designId\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/list'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n uploadCard(file) {\r\n var params = {\r\n CardFile: file,\r\n agencyId: this.agency_id(),\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/upload'\r\n return BzbsApi.connectBzbsPost(strUrl, this.token(), params)\r\n },\r\n editByRow(data) {\r\n var params = {\r\n cardId: data.CardId,\r\n agencyId: this.agency_id(),\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl +\r\n '/crmpluscard/single?agencyId=' +\r\n this.agency_id() +\r\n '&cardId=' +\r\n data.CardId +\r\n '&designId=' +\r\n data.DesignId +\r\n '&cardType=' +\r\n data.Type +\r\n '&pin=' +\r\n data.Pin +\r\n '&status=' +\r\n data.Status +\r\n '&name=' +\r\n data.Name +\r\n '&contactnumber=' +\r\n data.ContactNumber +\r\n '&remark'\r\n\r\n return BzbsApi.connectBzbsPatch(strUrl, this.token(), params)\r\n },\r\n confirmUploadCard(key) {\r\n var params = {\r\n key: key,\r\n agencyId: this.agency_id(),\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/confirm'\r\n return BzbsApi.connectBzbsPost(strUrl, this.token(), params)\r\n },\r\n removeUploadRecord: function (rk, pk) {\r\n var params = {\r\n agencyId: this.agency_id(),\r\n rk: rk,\r\n pk: pk,\r\n }\r\n\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/remove'\r\n return BzbsApi.connectBzbsDelete(strUrl, this.token(), params)\r\n },\r\n ImportLog: function (top = 20, skip = 0) {\r\n var params = {\r\n agencyId: this.agency_id(),\r\n top: top,\r\n skip: skip,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/log'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n ImportLogDetial: function (partionkey, top = 0, skip = 0) {\r\n var params = {\r\n agencyId: this.agency_id(),\r\n top: top,\r\n skip: skip,\r\n partionkey: partionkey,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmpluscard/detail_log'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getSummaryDashboard() {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/summary_dashboard'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getMemberChart(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/dashboard_member'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getGenderChart(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/dashboard_gender'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getAgeChart(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmplusdatasci/dashboard_age'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getActiveMemberChart(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/trend_active_user'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getAverageDashboard(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/average_dashboard_data'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getPointChart(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n filter: data.filter,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmplusdatasci/dashboard_point'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getRewardRedemtionRank(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n }\r\n var strUrl =\r\n this.config().bzbsModuleUrl + '/crmplusdatasci/rewardredemptionrank'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n getBranchRank(data) {\r\n const params = {\r\n appId: Cache.get('CRMUser').AppId,\r\n agencyId: this.agency_id(),\r\n redeemDate: data.startdate,\r\n startDate: data.startdate,\r\n endDate: data.enddate,\r\n }\r\n var strUrl = this.config().bzbsModuleUrl + '/crmplusdatasci/branchrank'\r\n return BzbsApi.connectBzbsGet(strUrl, this.token(), params)\r\n },\r\n}\r\n","<template>\r\n <div class=\"cash-card-list-wrapper\">\r\n <div class=\"serch-wrapper\">\r\n <ExportExcel\r\n :text=\"lbl['export_all_data_btn_text']\"\r\n @clickButton=\"handleExport\"\r\n class=\"export-wrapper\"\r\n />\r\n <a-form :form=\"searchForm\" @submit=\"handleSearch\">\r\n <a-row :gutter=\"24\">\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_status']\">\r\n <a-select\r\n v-decorator=\"[\r\n 'status',\r\n {\r\n initialValue: statusList[0].value,\r\n rules: [{}],\r\n },\r\n ]\"\r\n >\r\n <a-select-option\r\n v-for=\"status in statusList\"\r\n :key=\"status.value\"\r\n :value=\"status.value\"\r\n >\r\n {{ status.name }}\r\n </a-select-option>\r\n </a-select>\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_card_number']\">\r\n <a-input\r\n v-decorator=\"['cardNumber']\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_name']\">\r\n <a-input\r\n v-decorator=\"['name']\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_mobile_number']\">\r\n <a-input\r\n v-decorator=\"['contactNumber']\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_user_id']\">\r\n <a-input\r\n v-decorator=\"['UserId']\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"4\">\r\n <a-form-item :label=\"lbl['cash_card_list_search_pin']\">\r\n <a-input\r\n v-decorator=\"['pin']\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </a-form-item>\r\n </a-col>\r\n <a-col :span=\"24\" class=\"search-action\">\r\n <a-button type=\"primary\" html-type=\"submit\" class=\"search-btn\">\r\n <a-icon type=\"search\" />\r\n {{ lbl['import-search-button'] }}\r\n </a-button>\r\n </a-col>\r\n </a-row>\r\n </a-form>\r\n </div>\r\n <div class=\"list-wrapper\">\r\n <a-table\r\n row-key=\"CardId\"\r\n :columns=\"columns\"\r\n :data-source=\"cardList\"\r\n :scroll=\"{ x: 1024 }\"\r\n :pagination=\"{\r\n pageSize: defaultPageSize,\r\n defaultCurrent: 1,\r\n total: totalCardList,\r\n hideOnSinglePage: false,\r\n onChange: onChangePage,\r\n }\"\r\n >\r\n <template slot=\"status\" slot-scope=\"text, record\">\r\n <a-select\r\n v-if=\"record.editable\"\r\n :value=\"text\"\r\n class=\"w-100\"\r\n @change=\"e => handleChange(e, record.CardId, 'Status')\"\r\n >\r\n <a-select-option\r\n v-for=\"status in statusListOnEdit\"\r\n :key=\"status.value\"\r\n :value=\"status.value\"\r\n >\r\n {{ status.name }}\r\n </a-select-option>\r\n </a-select>\r\n <template v-else>\r\n <a-tag v-if=\"text === 'active'\" color=\"green\" class=\"tag\">\r\n <div class=\"dot-green\"></div>\r\n <span>\r\n {{ firstTextUpper(text) }}\r\n </span>\r\n </a-tag>\r\n <a-tag v-else-if=\"text === 'available'\" color=\"blue\" class=\"tag\">\r\n <div class=\"dot-blue\"></div>\r\n <span>\r\n {{ firstTextUpper(text) }}\r\n </span>\r\n </a-tag>\r\n <a-tag v-else class=\"tag\">\r\n <div class=\"dot\"></div>\r\n <span>\r\n {{ firstTextUpper(text) }}\r\n </span>\r\n </a-tag>\r\n </template>\r\n </template>\r\n <template slot=\"name\" slot-scope=\"text, record\">\r\n <a-input\r\n v-if=\"record.editable && record.Type !== 'digital'\"\r\n :value=\"text\"\r\n @change=\"e => handleChange(e.target.value, record.CardId, 'Name')\"\r\n />\r\n <template v-else>\r\n {{ text }}\r\n </template>\r\n </template>\r\n <template slot=\"contactNumber\" slot-scope=\"text, record\">\r\n <a-input\r\n v-if=\"record.editable && record.Type !== 'digital'\"\r\n :value=\"text\"\r\n @change=\"\r\n e => handleChange(e.target.value, record.CardId, 'ContactNumber')\r\n \"\r\n />\r\n <template v-else>\r\n {{ text }}\r\n </template>\r\n </template>\r\n <template slot=\"type\" slot-scope=\"text, record\">\r\n <a-select\r\n v-if=\"record.editable && !record.UserId\"\r\n :value=\"text\"\r\n class=\"w-100\"\r\n @change=\"e => handleChange(e, record.CardId, 'Type')\"\r\n >\r\n <a-select-option\r\n v-for=\"status in cardTypeList\"\r\n :key=\"status.value\"\r\n :value=\"status.value\"\r\n class=\"w-100\"\r\n >\r\n {{ status.name }}\r\n </a-select-option>\r\n </a-select>\r\n <template v-else>\r\n {{ text }}\r\n </template>\r\n </template>\r\n <template slot=\"designId\" slot-scope=\"text, record\">\r\n <a-select\r\n v-if=\"record.editable\"\r\n :value=\"text\"\r\n class=\"w-100\"\r\n @change=\"e => handleChange(e, record.CardId, 'DesignId')\"\r\n >\r\n <template v-if=\"cardIdList(record.Type).length\">\r\n <a-select-option\r\n v-for=\"status in cardIdList(record.Type)\"\r\n :key=\"status.value\"\r\n :value=\"status.value\"\r\n class=\"w-100\"\r\n >\r\n {{ status.name }}\r\n </a-select-option>\r\n </template>\r\n <template v-else>\r\n <a-select-option value=\"\" disabled>\r\n {{ lbl['cash_card_not_found_card_id'] }}\r\n </a-select-option>\r\n </template>\r\n </a-select>\r\n <template v-else>\r\n {{ text }}\r\n </template>\r\n </template>\r\n <template slot=\"number\" slot-scope=\"text\">\r\n <strong>{{ formatNumber(text) }}</strong>\r\n </template>\r\n <template slot=\"operation\" slot-scope=\"text, record\">\r\n <div class=\"editable-row-operations\">\r\n <div v-if=\"record.editable\" class=\"btn-action-wraper\">\r\n <a-button\r\n type=\"primary\"\r\n ghost\r\n @click=\"() => cancel(record.CardId)\"\r\n >\r\n {{ lbl['usr-level-cancel'] }}\r\n </a-button>\r\n <a-button type=\"primary\" @click=\"() => save(record.CardId)\">\r\n {{ lbl['user-level-button-save'] }}\r\n </a-button>\r\n </div>\r\n <span v-else>\r\n <a\r\n :disabled=\"editingKey !== ''\"\r\n @click=\"() => edit(record.CardId)\"\r\n >{{ lbl['manage-usr-edit'] }}</a\r\n >\r\n </span>\r\n </div>\r\n </template>\r\n </a-table>\r\n </div>\r\n <AlertModal\r\n :isOpenModal=\"alertModalSetting.isOpenModal\"\r\n :modalType=\"alertModalSetting.modalType\"\r\n :title=\"alertModalSetting.title\"\r\n :details=\"alertModalSetting.details\"\r\n />\r\n </div>\r\n</template>\r\n<script>\r\nimport Account from '@/helper/AccountHelper.js'\r\nimport _ from 'lodash'\r\nimport Mixin from '@/mixin/Mixin'\r\nimport moment from 'moment'\r\nimport BzbsCashcard from '@/core/Cashcard/BzbsCashcard.js'\r\nimport ExportExcel from '@/module/components/dashboard/botton/ExportExcel'\r\nimport XLSX from 'xlsx'\r\nimport AlertModal from '@/components/Modal/Component/alertmodal2'\r\nexport default {\r\n name: 'CashCardList',\r\n mixins: [Mixin],\r\n components: {\r\n AlertModal,\r\n ExportExcel,\r\n },\r\n data() {\r\n return {\r\n statusList: [{ name: 'All', value: 'All' }],\r\n cardTypeList: [],\r\n columns: [\r\n {\r\n title: 'Status',\r\n dataIndex: 'Status',\r\n key: 'cash_card_colunm_status',\r\n align: 'left',\r\n width: 120,\r\n scopedSlots: { customRender: 'status' },\r\n },\r\n {\r\n title: 'Type',\r\n dataIndex: 'Type',\r\n key: 'cash_card_colunm_type',\r\n align: 'left',\r\n width: 150,\r\n scopedSlots: { customRender: 'type' },\r\n },\r\n {\r\n title: 'Design ID',\r\n dataIndex: 'DesignId',\r\n key: 'cash_card_colunm_design_id',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'designId' },\r\n },\r\n {\r\n title: 'Card Number',\r\n dataIndex: 'CardId',\r\n key: 'cash_card_colunm_card_number',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'text' },\r\n },\r\n {\r\n title: 'Name',\r\n dataIndex: 'Name',\r\n key: 'cash_card_colunm_name',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'name' },\r\n },\r\n {\r\n title: 'Mobile Number',\r\n dataIndex: 'ContactNumber',\r\n key: 'cash_card_colunm_mobile_number',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'contactNumber' },\r\n },\r\n {\r\n title: 'User ID',\r\n dataIndex: 'UserId',\r\n key: 'cash_card_colunm_user_id',\r\n align: 'left',\r\n width: 350,\r\n scopedSlots: { customRender: 'text' },\r\n },\r\n {\r\n title: 'PIN Code',\r\n dataIndex: 'Pin',\r\n key: 'cash_card_colunm_pin',\r\n align: 'left',\r\n width: 100,\r\n scopedSlots: { customRender: 'text' },\r\n },\r\n {\r\n title: 'Action',\r\n dataIndex: 'Action',\r\n key: 'cash_card_colunm_action',\r\n scopedSlots: { customRender: 'operation' },\r\n width: 180,\r\n align: 'center',\r\n fixed: 'right',\r\n },\r\n ],\r\n skipCard: 0,\r\n currentPage: 1,\r\n defaultPageSize: 10,\r\n totalCardList: 0,\r\n filter: {},\r\n cardList: [],\r\n cacheData: [],\r\n editingKey: '',\r\n alertModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n isOpenModal: false,\r\n },\r\n idDigitalList: [],\r\n idPhysicalList: [],\r\n }\r\n },\r\n computed: {\r\n statusListOnEdit() {\r\n return this.statusList.filter(status => status.value !== 'All')\r\n },\r\n },\r\n created() {\r\n this.searchForm = this.$form.createForm(this)\r\n this.init()\r\n },\r\n methods: {\r\n init() {\r\n this.setLocale()\r\n this.getStaticList()\r\n this.genDesignId()\r\n this.getCashCardList()\r\n },\r\n setLocale() {\r\n _.forEach(this.columns, column => {\r\n column.title = this.lbl[column.key]\r\n })\r\n },\r\n getStaticList() {\r\n this.statusList = [\r\n { name: 'All', value: 'All' },\r\n { name: 'Active', value: 'Active' },\r\n { name: 'Available', value: 'Available' },\r\n { name: 'Inactive', value: 'Inactive' },\r\n ]\r\n this.cardTypeList = [\r\n { name: this.lbl['digital_text'], value: 'digital' },\r\n { name: this.lbl['physical_text'], value: 'physical' },\r\n ]\r\n },\r\n genDesignId() {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.getCardDesignList()\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n if (res.data.data.length > 0) {\r\n this.idDigitalList = res.data.data\r\n .filter(item => item.CardType === 'digital')\r\n .map(item => item.DesignId)\r\n\r\n this.idPhysicalList = res.data.data\r\n .filter(item => item.CardType === 'physical')\r\n .map(item => item.DesignId)\r\n }\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n resolve(error)\r\n })\r\n })\r\n },\r\n cardIdList(type) {\r\n return type === 'digital'\r\n ? this.idDigitalList.map(item => ({ name: item, value: item }))\r\n : this.idPhysicalList.map(item => ({ name: item, value: item }))\r\n },\r\n getCashCardList(data = null, skip = 0, top = 10) {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.getCardList(data, skip, top)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n this.totalCardList = res.data.data.Count\r\n this.cardList = res.data.data.Cards\r\n if (this.cardList.length > 0) {\r\n this.cacheData = this.cardList.map(item => ({ ...item }))\r\n }\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n onChangePage(page) {\r\n this.currentPage = page\r\n this.skipCard = (page - 1) * this.defaultPageSize\r\n const params = Object.keys(this.filter).length ? this.filter : null\r\n this.getCashCardList(params, this.skipCard, 10)\r\n },\r\n handleExport() {\r\n console.log('handleExport')\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_list',\r\n `click_export_cash_card`,\r\n 'on click',\r\n )\r\n this.handleLoading(true)\r\n const params = Object.keys(this.filter).length ? this.filter : null\r\n return new Promise(resolve => {\r\n BzbsCashcard.getCardList(params, 0, this.totalCardList)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n var data = res.data.data.Cards.map(item => {\r\n var Status = this.lbl['cash_card_colunm_Status']\r\n var Type = this.lbl['cash_card_colunm_type']\r\n var DesignId = this.lbl['cash_card_colunm_design_id']\r\n var CardId = this.lbl['cash_card_colunm_card_number']\r\n var Name = this.lbl['cash_card_colunm_name']\r\n var ContactNumber = this.lbl['cash_card_colunm_mobile_number']\r\n var UserId = this.lbl['cash_card_colunm_user_id']\r\n var Pin = this.lbl['cash_card_colunm_pin']\r\n\r\n return {\r\n [Status]: item.Status,\r\n [Type]: item.Type,\r\n [DesignId]: item.DesignId,\r\n [CardId]: item.CardId,\r\n [Name]: item.Name,\r\n [ContactNumber]: item.ContactNumber,\r\n [UserId]: item.UserId,\r\n [Pin]: item.Pin,\r\n }\r\n })\r\n\r\n if (data.length <= 10000) {\r\n const dataWS = XLSX.utils.json_to_sheet(data)\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, dataWS)\r\n XLSX.writeFile(\r\n wb,\r\n 'CRMPlus_CashCard_List_' +\r\n moment(new Date()).format('YYYY-MM-DD') +\r\n '.xlsx',\r\n )\r\n } else {\r\n for (var i = 0; i < Math.ceil(data.length / 10000); i++) {\r\n var data_WS = XLSX.utils.json_to_sheet(\r\n data.slice((i + 1 - 1) * 10000, (i + 1) * 10000),\r\n { dense: true },\r\n )\r\n\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, data_WS)\r\n XLSX.writeFile(\r\n wb,\r\n 'CRMPlus_CashCard_List_' +\r\n (i + 1) +\r\n '_' +\r\n moment(new Date()).format('YYYY-MM-DD') +\r\n '.xlsx',\r\n )\r\n }\r\n }\r\n this.handleLoading(false)\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n handleSearch(e) {\r\n e.preventDefault()\r\n this.searchForm.validateFields((err, values) => {\r\n if (!err) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_list',\r\n `click_search_cash_card`,\r\n 'on click',\r\n )\r\n var params = {}\r\n if (values.cardNumber) params.cardNumber = values.cardNumber || null\r\n if (values.name) params.name = values.name || null\r\n if (values.contactNumber)\r\n params.contactNumber = values.contactNumber || null\r\n if (values.status)\r\n params.status =\r\n values.status && values.status == 'All'\r\n ? null\r\n : values.status || null\r\n if (values.UserId) params.userId = values.UserId || null\r\n if (values.pin) params.pin = values.pin || null\r\n if (values.designId) params.designId = values.designId || null\r\n this.filter = params\r\n this.currentPage = 1\r\n this.getCashCardList(params)\r\n }\r\n })\r\n },\r\n firstTextUpper(text) {\r\n try {\r\n return text.charAt(0).toUpperCase() + text.slice(1)\r\n } catch {\r\n return text\r\n }\r\n },\r\n handleChange(value, CardId, column) {\r\n const newData = [...this.cardList]\r\n const target = newData.find(item => CardId === item.CardId)\r\n if (target) {\r\n target[column] = value\r\n this.cardList = newData\r\n }\r\n },\r\n editSingleCard(value) {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.editByRow(value)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n if (this.cardList.length > 0) {\r\n this.cacheData = this.cardList.map(item => ({ ...item }))\r\n }\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n edit(CardId) {\r\n const newData = [...this.cardList]\r\n const target = newData.find(item => CardId === item.CardId)\r\n this.editingKey = CardId\r\n if (target) {\r\n target.editable = true\r\n this.cardList = newData\r\n }\r\n },\r\n save(CardId) {\r\n const newData = [...this.cardList]\r\n const newCacheData = [...this.cacheData]\r\n var target = newData.find(item => CardId === item.CardId)\r\n const targetCache = newCacheData.find(item => CardId === item.CardId)\r\n if (target && targetCache) {\r\n this.editSingleCard(target).then(res => {\r\n this.editingKey = ''\r\n target = res.data\r\n this.handleLoading(false)\r\n if (res.success) {\r\n delete target.editable\r\n this.cardList = newData\r\n Object.assign(targetCache, target)\r\n this.cacheData = newCacheData\r\n this.alertModalAction(\r\n this.lbl['alert-box-success-header'],\r\n this.lbl['cash_card_colunm_save_success'],\r\n 'success',\r\n true,\r\n )\r\n } else {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n res.message\r\n ? res.message\r\n : this.lbl['cash_card_colunm_save_success'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n })\r\n }\r\n },\r\n cancel(CardId) {\r\n const newData = [...this.cardList]\r\n const target = newData.find(item => CardId === item.CardId)\r\n this.editingKey = ''\r\n if (target) {\r\n Object.assign(\r\n target,\r\n this.cacheData.find(item => CardId === item.CardId),\r\n )\r\n delete target.editable\r\n this.cardList = newData\r\n }\r\n },\r\n formatNumber(value) {\r\n var number = ''\r\n try {\r\n number = value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n } catch {\r\n number = value\r\n }\r\n return number\r\n },\r\n alertModalAction(title, details, modalType, isOpenModal) {\r\n this.alertModalSetting.title = title\r\n this.alertModalSetting.details = details\r\n this.alertModalSetting.modalType = modalType\r\n this.alertModalSetting.isOpenModal = isOpenModal\r\n if (modalType == 'success' && isOpenModal) {\r\n setTimeout(() => {\r\n location.reload()\r\n }, 3000)\r\n } else {\r\n if (isOpenModal)\r\n setTimeout(() => {\r\n location.reload()\r\n }, 3000)\r\n }\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.cash-card-list-wrapper {\r\n padding: 30px;\r\n .serch-wrapper {\r\n margin-bottom: 24px;\r\n .export-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-bottom: 16px;\r\n }\r\n\r\n .search-action {\r\n display: flex;\r\n gap: 16px;\r\n justify-content: flex-end;\r\n .export-wrapper {\r\n }\r\n .search-btn {\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n }\r\n .list-wrapper {\r\n .editable-row-operations {\r\n text-align: center;\r\n a {\r\n color: #2196f3;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n .btn-action-wraper {\r\n display: flex;\r\n justify-content: center;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n }\r\n }\r\n .tag {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: fit-content;\r\n padding: 4px 16px;\r\n gap: 4px;\r\n border-radius: 20px;\r\n .dot,\r\n .dot-green,\r\n .dot-blue {\r\n width: 6px;\r\n height: 6px;\r\n border-radius: 100px;\r\n background-color: #c9c9c9;\r\n }\r\n .dot-green {\r\n background-color: #52c41a;\r\n }\r\n .dot-blue {\r\n background-color: #1890ff;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./List.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./List.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./List.vue?vue&type=template&id=f1bbdfd6&scoped=true&\"\nimport script from \"./List.vue?vue&type=script&lang=js&\"\nexport * from \"./List.vue?vue&type=script&lang=js&\"\nimport style0 from \"./List.vue?vue&type=style&index=0&id=f1bbdfd6&lang=scss&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 \"f1bbdfd6\",\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',[(!_vm.isUploadSuccess)?_c('div',{staticClass:\"cash-card-import-wrapper\"},[(!_vm.isProgress)?_c('div',[_c('drop',{staticClass:\"wrapper-upload-excel-file\",on:{\"drop\":_vm.handleDrop}},[_c('div',{staticClass:\"wrapper-sub-upload-excel-file\"},[_c('img',{staticClass:\"img-cloud-upload\",attrs:{\"src\":require('@/assets/images/cloud_upload@2x.png'),\"alt\":\"cloud_upload\",\"draggable\":false}}),_c('div',{staticClass:\"text-1\"},[_vm._v(\" \"+_vm._s(_vm.lbl['drag-drop-file-here'])+\" \")]),_c('div',{staticClass:\"text-2\"},[_vm._v(\" \"+_vm._s(_vm.lbl['file-format-excel-new-design'])+\" \")]),_c('a-button',{staticClass:\"btn-Upload-excel\",on:{\"click\":function($event){return _vm.clickUpload()}}},[_c('img',{attrs:{\"src\":require('@/assets/images/upload@2x.png'),\"alt\":\"upload\",\"draggable\":false}}),_c('span',[_vm._v(_vm._s(_vm.lbl['upload-excel-file']))])]),_c('input',{ref:\"file\",staticClass:\"d-none\",attrs:{\"type\":\"file\",\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"},on:{\"change\":_vm.handleChange}})],1)])],1):_c('div',{staticClass:\"wrapper-upload-excel-file\"},[_c('div',{staticClass:\"w-50\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.lbl['uploading'])+\" \"),_c('strong',[_vm._v(_vm._s(_vm.percentProgress)+\"%\")])]),_c('a-progress',{attrs:{\"percent\":_vm.percentProgress,\"show-info\":false,\"status\":\"active\"}})],1)]),_c('div',{staticClass:\"text-download-tem\"},[_c('a',{staticClass:\"txt-dwnl-temp\",attrs:{\"href\":_vm.import_card_serial_template,\"download\":\"\"},on:{\"click\":function($event){return _vm.tagAnalytic('download_file_template')}}},[_c('a-icon',{attrs:{\"type\":\"download\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['burn-download-temp'])+\" \")],1)])]):_vm._e(),(_vm.isUploadSuccess)?_c('div',{staticClass:\"cash-card-import-result-wrapper\"},[_c('div',{staticClass:\"title-wrapper\"},[_c('div',{staticClass:\"title-header\"},[_c('div',{on:{\"click\":function($event){return _vm.btnBackUpload()}}},[_c('img',{staticClass:\"button-arrow-back\",attrs:{\"src\":require(\"@/assets/images/userlevel/arrow_back.svg\"),\"alt\":\"arrow_back\"}})]),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_card_import_serial_title'])+\" \")])]),_c('div',{staticClass:\"box-validate-file mt-4\"},[(_vm.countSuccess > 0)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\"},[_c('div',{staticClass:\"show-validate\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{staticClass:\"mr-2 img-import\",attrs:{\"src\":require('@/assets/images/importfile/done-circle.svg'),\"alt\":\"warning-circle\"}}),_c('strong',[_vm._v(_vm._s(_vm.lbl['import-log-import-success']))])]),_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('strong',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.countSuccess)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.lbl['items']))])])])])])]),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\"},[_c('div',{staticClass:\"show-validate\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{staticClass:\"mr-2 img-import\",attrs:{\"src\":require('@/assets/images/importfile/warning-circle.svg'),\"alt\":\"warning-circle\"}}),_c('strong',[_vm._v(_vm._s(_vm.lbl['import-failed']))])]),_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('strong',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.countFailed)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.lbl['items']))])])]),_c('div',{staticClass:\"\\n col-xl-8 col-lg-8 col-md-12 col-sm-12 col-12\\n text-right\\n \"},[_c('a-button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.countFailed <= 0},on:{\"click\":_vm.exprotFailed}},[_c('img',{staticClass:\"mr-2\",attrs:{\"src\":require('@/assets/images/importfile/download.svg'),\"alt\":\"download\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['download-file'] + ' (' + _vm.countFailed + ' ' + _vm.lbl['items'] + ')')+\" \")])],1)])])])]):_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"show-validate\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{staticClass:\"mr-2 img-import\",attrs:{\"src\":require('@/assets/images/importfile/warning-circle.svg'),\"alt\":\"warning-circle\"}}),_c('strong',[_vm._v(_vm._s(_vm.lbl['import-failed']))])]),_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('strong',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.countFailed)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.lbl['items']))])])])])])])])]),_c('div',{staticClass:\"title mt-2\"},[_vm._v(\" \"+_vm._s(_vm.lbl['import-list'])+\" \"),_c('a-badge',{attrs:{\"count\":_vm.countTotal,\"overflow-count\":9999,\"number-style\":{\n backgroundColor: '#fff',\n color: '#999',\n boxShadow: '0 0 0 1px #d9d9d9 inset',\n }}})],1),_c('div',{staticClass:\"box-validate-table mt-2\"},[_c('a-table',{attrs:{\"columns\":_vm.columns,\"data-source\":_vm.data,\"rowKey\":\"RowKey\",\"pagination\":{\n pageSize: _vm.defaultPageSize,\n defaultCurrent: 1,\n hideOnSinglePage: false,\n }},scopedSlots:_vm._u([{key:\"isdata\",fn:function(text){return [_vm._v(\" \"+_vm._s(text ? text : '')+\" \")]}},{key:\"status\",fn:function(text){return [(text)?_c('a-tag',{attrs:{\"color\":\"green\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"check-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['import-log-import-success'])+\" \")],1)]):_c('a-tag',{attrs:{\"color\":\"red\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"close-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['import-failed'])+\" \")],1)])]}},{key:\"remark\",fn:function(text){return [(\n text == 'UserId is not found' || text == 'User is not found'\n )?_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['user-is-not-found'])+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(text ? text : '')+\" \")])]}},{key:\"operation\",fn:function(text, record){return [(!record.Success)?_c('a',{staticClass:\"action-column\",on:{\"click\":function($event){return _vm.onRemove(record)}}},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_remove_action']))]):_vm._e()]}}],null,false,2638056918)})],1),_c('hr'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 d-flex justify-center\"},[_c('a-button',{staticClass:\"btn-submit px-5 mr-1\",on:{\"click\":function($event){return _vm.btnBackUpload()}}},[_c('span',[_vm._v(_vm._s(_vm.lbl['btn_back']))])]),_c('a-button',{staticClass:\"btn-submit px-5 ml-1\",attrs:{\"type\":\"primary\",\"disabled\":_vm.countSuccess <= 0},on:{\"click\":function($event){return _vm.handleConfirmSubmit()}}},[_c('span',[_vm._v(_vm._s(_vm.lbl['btn-submit']))])])],1)])]):_vm._e(),_c('AlertModal',{attrs:{\"isOpenModal\":_vm.alertModalSetting.isOpenModal,\"modalType\":_vm.alertModalSetting.modalType,\"title\":_vm.alertModalSetting.title,\"details\":_vm.alertModalSetting.details}}),_c('ConfirmModal',{attrs:{\"isOpenModal\":_vm.confirmModalSetting.isOpenModal,\"modalType\":_vm.confirmModalSetting.modalType,\"title\":_vm.confirmModalSetting.title,\"details\":_vm.confirmModalSetting.details,\"backto\":_vm.confirmModalSetting.backto,\"onConfirm\":_vm.confirmModalSetting.onConfirm,\"onCancel\":_vm.confirmModalSetting.onCancel}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div v-if=\"!isUploadSuccess\" class=\"cash-card-import-wrapper\">\r\n <div v-if=\"!isProgress\">\r\n <drop class=\"wrapper-upload-excel-file\" @drop=\"handleDrop\">\r\n <div class=\"wrapper-sub-upload-excel-file\">\r\n <img\r\n :src=\"require('@/assets/images/cloud_upload@2x.png')\"\r\n alt=\"cloud_upload\"\r\n class=\"img-cloud-upload\"\r\n :draggable=\"false\"\r\n />\r\n <div class=\"text-1\">\r\n {{ lbl['drag-drop-file-here'] }}\r\n </div>\r\n <div class=\"text-2\">\r\n {{ lbl['file-format-excel-new-design'] }}\r\n </div>\r\n\r\n <a-button class=\"btn-Upload-excel\" @click=\"clickUpload()\">\r\n <img\r\n :src=\"require('@/assets/images/upload@2x.png')\"\r\n alt=\"upload\"\r\n :draggable=\"false\"\r\n />\r\n <span>{{ lbl['upload-excel-file'] }}</span>\r\n </a-button>\r\n <input\r\n ref=\"file\"\r\n type=\"file\"\r\n class=\"d-none\"\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\r\n @change=\"handleChange\"\r\n />\r\n </div>\r\n </drop>\r\n </div>\r\n <div v-else class=\"wrapper-upload-excel-file\">\r\n <div class=\"w-50\">\r\n <div>\r\n {{ lbl['uploading'] }}\r\n <strong>{{ percentProgress }}%</strong>\r\n </div>\r\n <a-progress\r\n :percent=\"percentProgress\"\r\n :show-info=\"false\"\r\n status=\"active\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"text-download-tem\">\r\n <a\r\n class=\"txt-dwnl-temp\"\r\n @click=\"tagAnalytic('download_file_template')\"\r\n :href=\"import_card_serial_template\"\r\n download\r\n >\r\n <a-icon type=\"download\" />\r\n {{ lbl['burn-download-temp'] }}\r\n </a>\r\n </div>\r\n </div>\r\n <div v-if=\"isUploadSuccess\" class=\"cash-card-import-result-wrapper\">\r\n <div class=\"title-wrapper\">\r\n <div class=\"title-header\">\r\n <div @click=\"btnBackUpload()\">\r\n <img\r\n class=\"button-arrow-back\"\r\n src=\"@/assets/images/userlevel/arrow_back.svg\"\r\n alt=\"arrow_back\"\r\n />\r\n </div>\r\n {{ lbl['cash_card_menu_card_import_serial_title'] }}\r\n </div>\r\n </div>\r\n <div class=\"box-validate-file mt-4\">\r\n <div v-if=\"countSuccess > 0\" class=\"row\">\r\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\">\r\n <div class=\"show-validate\">\r\n <div class=\"d-flex align-center\">\r\n <img\r\n class=\"mr-2 img-import\"\r\n :src=\"require('@/assets/images/importfile/done-circle.svg')\"\r\n alt=\"warning-circle\"\r\n />\r\n <strong>{{ lbl['import-log-import-success'] }}</strong>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\">\r\n <div class=\"d-flex align-center\">\r\n <strong class=\"mr-2\">{{ countSuccess }} </strong>\r\n <div>{{ lbl['items'] }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-12\">\r\n <div class=\"show-validate\">\r\n <div class=\"d-flex align-center\">\r\n <img\r\n class=\"mr-2 img-import\"\r\n :src=\"\r\n require('@/assets/images/importfile/warning-circle.svg')\r\n \"\r\n alt=\"warning-circle\"\r\n />\r\n <strong>{{ lbl['import-failed'] }}</strong>\r\n </div>\r\n <div class=\"row mt-2\">\r\n <div class=\"col-xl-4 col-lg-4 col-md-12 col-sm-12 col-12\">\r\n <div class=\"d-flex align-center\">\r\n <strong class=\"mr-2\">{{ countFailed }} </strong>\r\n <div>{{ lbl['items'] }}</div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"\r\n col-xl-8 col-lg-8 col-md-12 col-sm-12 col-12\r\n text-right\r\n \"\r\n >\r\n <a-button\r\n type=\"primary\"\r\n :disabled=\"countFailed <= 0\"\r\n @click=\"exprotFailed\"\r\n >\r\n <img\r\n :src=\"require('@/assets/images/importfile/download.svg')\"\r\n alt=\"download\"\r\n class=\"mr-2\"\r\n />\r\n {{\r\n lbl['download-file'] +\r\n ' (' +\r\n countFailed +\r\n ' ' +\r\n lbl['items'] +\r\n ')'\r\n }}\r\n </a-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div v-else class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"show-validate\">\r\n <div class=\"d-flex align-center\">\r\n <img\r\n class=\"mr-2 img-import\"\r\n :src=\"\r\n require('@/assets/images/importfile/warning-circle.svg')\r\n \"\r\n alt=\"warning-circle\"\r\n />\r\n <strong>{{ lbl['import-failed'] }}</strong>\r\n </div>\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex align-center\">\r\n <strong class=\"mr-2\">{{ countFailed }} </strong>\r\n <div>{{ lbl['items'] }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"title mt-2\">\r\n {{ lbl['import-list'] }}\r\n <a-badge\r\n :count=\"countTotal\"\r\n :overflow-count=\"9999\"\r\n :number-style=\"{\r\n backgroundColor: '#fff',\r\n color: '#999',\r\n boxShadow: '0 0 0 1px #d9d9d9 inset',\r\n }\"\r\n />\r\n </div>\r\n\r\n <div class=\"box-validate-table mt-2\">\r\n <a-table\r\n :columns=\"columns\"\r\n :data-source=\"data\"\r\n rowKey=\"RowKey\"\r\n :pagination=\"{\r\n pageSize: defaultPageSize,\r\n defaultCurrent: 1,\r\n hideOnSinglePage: false,\r\n }\"\r\n >\r\n <template slot=\"isdata\" slot-scope=\"text\">\r\n {{ text ? text : '' }}\r\n </template>\r\n <template slot=\"status\" slot-scope=\"text\">\r\n <a-tag v-if=\"text\" color=\"green\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"check-circle\" class=\"mr-1\" />\r\n {{ lbl['import-log-import-success'] }}\r\n </span>\r\n </a-tag>\r\n <a-tag v-else color=\"red\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"close-circle\" class=\"mr-1\" />\r\n {{ lbl['import-failed'] }}\r\n </span>\r\n </a-tag>\r\n </template>\r\n <template slot=\"remark\" slot-scope=\"text\">\r\n <span\r\n v-if=\"\r\n text == 'UserId is not found' || text == 'User is not found'\r\n \"\r\n >\r\n {{ lbl['user-is-not-found'] }}\r\n </span>\r\n <span v-else>\r\n {{ text ? text : '' }}\r\n </span>\r\n </template>\r\n <template slot=\"operation\" slot-scope=\"text, record\">\r\n <a\r\n v-if=\"!record.Success\"\r\n class=\"action-column\"\r\n @click=\"onRemove(record)\"\r\n >\r\n {{ lbl['cash_card_remove_action'] }}</a\r\n >\r\n </template>\r\n </a-table>\r\n </div>\r\n\r\n <hr />\r\n <div class=\"row\">\r\n <div class=\"col-12 d-flex justify-center\">\r\n <a-button class=\"btn-submit px-5 mr-1\" @click=\"btnBackUpload()\">\r\n <span>{{ lbl['btn_back'] }}</span>\r\n </a-button>\r\n <a-button\r\n type=\"primary\"\r\n class=\"btn-submit px-5 ml-1\"\r\n :disabled=\"countSuccess <= 0\"\r\n @click=\"handleConfirmSubmit()\"\r\n >\r\n <span>{{ lbl['btn-submit'] }}</span>\r\n </a-button>\r\n </div>\r\n </div>\r\n </div>\r\n <AlertModal\r\n :isOpenModal=\"alertModalSetting.isOpenModal\"\r\n :modalType=\"alertModalSetting.modalType\"\r\n :title=\"alertModalSetting.title\"\r\n :details=\"alertModalSetting.details\"\r\n />\r\n <ConfirmModal\r\n :isOpenModal=\"confirmModalSetting.isOpenModal\"\r\n :modalType=\"confirmModalSetting.modalType\"\r\n :title=\"confirmModalSetting.title\"\r\n :details=\"confirmModalSetting.details\"\r\n :backto=\"confirmModalSetting.backto\"\r\n :onConfirm=\"confirmModalSetting.onConfirm\"\r\n :onCancel=\"confirmModalSetting.onCancel\"\r\n />\r\n </div>\r\n</template>\r\n<script>\r\nimport Account from '@/helper/AccountHelper.js'\r\nimport { Drop } from 'vue-drag-drop'\r\nimport Vue from 'vue'\r\nimport Mixin from '@/mixin/Mixin'\r\nimport AlertModal from '@/components/Modal/Component/alertmodal2'\r\nimport ConfirmModal from '@/components/Modal/Component/confirmmodal2'\r\nimport BzbsCashcard from '@/core/Cashcard/BzbsCashcard.js'\r\nimport XLSX from 'xlsx'\r\nimport _ from 'lodash'\r\nimport moment from 'moment'\r\n\r\nexport default {\r\n name: 'CashCardImport',\r\n mixins: [Mixin],\r\n components: { AlertModal, ConfirmModal, Drop },\r\n data() {\r\n return {\r\n columns: [\r\n {\r\n title: 'Status',\r\n dataIndex: 'Success',\r\n key: 'cash_card_colunm_status',\r\n align: 'left',\r\n width: 120,\r\n scopedSlots: { customRender: 'status' },\r\n },\r\n {\r\n title: 'Card Status',\r\n dataIndex: 'CardStatus',\r\n key: 'cash_card_colunm_card_status',\r\n align: 'left',\r\n width: 120,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Card Type',\r\n dataIndex: 'CardType',\r\n key: 'cash_card_colunm_type',\r\n align: 'left',\r\n width: 120,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Design Id',\r\n dataIndex: 'DesignId',\r\n key: 'cash_card_colunm_design_id',\r\n align: 'left',\r\n width: 150,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Card Number',\r\n dataIndex: 'CardNumber',\r\n key: 'cash_card_colunm_card_number',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'PIN Code',\r\n dataIndex: 'PinCode',\r\n key: 'cash_card_colunm_pin',\r\n align: 'left',\r\n width: 100,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Remark',\r\n dataIndex: 'Message',\r\n key: 'remark',\r\n align: 'left',\r\n scopedSlots: { customRender: 'remark' },\r\n },\r\n {\r\n title: 'Action',\r\n dataIndex: 'Action',\r\n key: 'cash_card_colunm_action',\r\n scopedSlots: { customRender: 'operation' },\r\n width: 100,\r\n align: 'center',\r\n fixed: 'right',\r\n },\r\n ],\r\n import_card_serial_template:\r\n Vue.bzbsConfig.bzbsBlobUrl +\r\n '/config/crmplus/ImportUserTemplate/import_card_serial_template.xlsx',\r\n isProgress: false,\r\n percentProgress: 0,\r\n timeinterval: null,\r\n isUploadSuccess: false,\r\n countSuccess: 0,\r\n countFailed: 0,\r\n countTotal: 0,\r\n rowKey: null,\r\n getFileUpdate: null,\r\n data: [],\r\n dataFailed: [],\r\n defaultPageSize: 10,\r\n editableData: null,\r\n alertModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n isOpenModal: false,\r\n },\r\n confirmModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n backto: '',\r\n onConfirm: null,\r\n onCancel: null,\r\n isOpenModal: false,\r\n },\r\n }\r\n },\r\n created() {\r\n this.handleFooter(true)\r\n if (this.$route.params.rowKey) {\r\n this.isUploadSuccess = true\r\n }\r\n this.percentProgress = 0\r\n this.timeinterval = null\r\n this.isProgress = false\r\n this.setLocale()\r\n\r\n if (\r\n this.$router.currentRoute.name == 'CashCardImport' &&\r\n !this.data.length\r\n ) {\r\n this.$router.push({\r\n name: 'CashCard',\r\n params: { action: 'Import' },\r\n })\r\n }\r\n },\r\n methods: {\r\n setLocale() {\r\n _.forEach(this.columns, column => {\r\n column.title = this.lbl[column.key]\r\n })\r\n\r\n _.forEach(this.columnsNumber, column => {\r\n column.title = this.lbl[column.key]\r\n })\r\n },\r\n btnBackUpload() {\r\n this.percentProgress = 0\r\n this.timeinterval = null\r\n this.isProgress = false\r\n this.isUploadSuccess = false\r\n this.countSuccess = 0\r\n this.countFailed = 0\r\n this.countTotal = 0\r\n this.data = []\r\n this.editableData = null\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n 'click_back_to_import_file',\r\n 'on click',\r\n )\r\n this.$router.push({\r\n name: 'CashCard',\r\n params: { action: 'Import' },\r\n })\r\n },\r\n onRemove(data) {\r\n console.log(data)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n `click_remove_${data.CardNumber}`,\r\n 'on click',\r\n )\r\n this.isProgress = true\r\n this.countProgressTimer()\r\n BzbsCashcard.removeUploadRecord(data.RowKey, data.PartitionKey)\r\n .then(res => {\r\n var result = res.data.success\r\n if (result) {\r\n this.data = _.filter(this.data, item => {\r\n return item.RowKey != data.RowKey\r\n })\r\n this.alertModalAction(\r\n this.lbl['alert-box-success-header'],\r\n null,\r\n 'success',\r\n true,\r\n )\r\n } else\r\n this.alertModalAction(\r\n this.lbl['alert-upload-error'],\r\n null,\r\n 'error',\r\n true,\r\n )\r\n })\r\n .catch(error => {\r\n console.log('error : ', error.response)\r\n let errorDetail = this.lbl['err-miss-adjust-data']\r\n clearInterval(this.timeinterval)\r\n this.alertModalAction(\r\n this.lbl['alert-upload-error'],\r\n errorDetail,\r\n 'error',\r\n true,\r\n )\r\n })\r\n },\r\n handleChange(event) {\r\n if (this.checkValidate(event.target.files[0])) {\r\n this.getFileUpdate = event.target.files[0]\r\n this.handleValidate()\r\n }\r\n },\r\n clickUpload() {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n 'click_import_card_serial_upload',\r\n 'on click',\r\n )\r\n this.clearerror()\r\n let fileInputElement = this.$refs.file\r\n fileInputElement.click()\r\n },\r\n handleDrop(data, event) {\r\n console.log('data :: ', data)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n 'click_import_card_serial_upload',\r\n 'on click',\r\n )\r\n event.preventDefault()\r\n if (this.checkValidate(event.dataTransfer.files[0])) {\r\n this.getFileUpdate = event.dataTransfer.files[0]\r\n this.handleValidate()\r\n }\r\n },\r\n handleValidate() {\r\n this.isProgress = true\r\n this.countProgressTimer()\r\n BzbsCashcard.uploadCard(this.getFileUpdate)\r\n .then(res => {\r\n this.handleLoading(false)\r\n var result = res.data\r\n if (result.success) {\r\n this.clearerror()\r\n this.disabledsubmit = false\r\n if (result.data.TotalCount == 0) {\r\n this.dispfile = false\r\n this.errData = true\r\n let errorDetail = this.lbl['err-miss-adjust-data']\r\n clearInterval(this.timeinterval)\r\n this.alertModalAction(\r\n this.lbl['alert-upload-error'],\r\n errorDetail,\r\n 'error',\r\n true,\r\n )\r\n } else {\r\n this.excelFileName = result.data.FileName\r\n this.rowKey = result.data.RowKey\r\n this.dispfile = true\r\n this.percentProgress = 100\r\n clearInterval(this.timeinterval)\r\n this.handleSubmitValidate(this.rowKey, result.data)\r\n }\r\n } else {\r\n this.clearerror()\r\n let errorDetail = result.message\r\n ? result.message\r\n : this.lbl['err-miss-adjust-data']\r\n clearInterval(this.timeinterval)\r\n this.alertModalAction(\r\n this.lbl['alert-upload-error'],\r\n errorDetail,\r\n 'error',\r\n true,\r\n )\r\n }\r\n })\r\n .catch(error => {\r\n console.log('error : ', error.response)\r\n this.handleLoading(false)\r\n let errorDetail = this.lbl['err-miss-adjust-data']\r\n clearInterval(this.timeinterval)\r\n this.alertModalAction(\r\n this.lbl['alert-upload-error'],\r\n errorDetail,\r\n 'error',\r\n true,\r\n )\r\n })\r\n },\r\n handleSubmitValidate(rowKey, data) {\r\n this.countSuccess = data.SuccessCount || null\r\n this.countFailed = data.FailCount || null\r\n this.countTotal = data.TotalCount || null\r\n this.data = data.Details || null\r\n if (data.FailCount > 0) {\r\n this.dataFailed = _.filter(data.Details, item => {\r\n if (item.Message != null) {\r\n return item\r\n }\r\n })\r\n } else {\r\n this.dataFailed = []\r\n }\r\n\r\n setTimeout(\r\n () => (\r\n (this.isUploadSuccess = true),\r\n this.$router.push(\r\n {\r\n name: 'CashCardImport',\r\n params: { action: 'Import', rowKey: rowKey },\r\n }\r\n .then(() => {\r\n this.handleLoading(false)\r\n })\r\n .catch(() => {\r\n this.$router.push({\r\n name: 'CashCard',\r\n params: { action: 'Import' },\r\n })\r\n this.handleLoading(false)\r\n }),\r\n )\r\n ),\r\n 2000,\r\n )\r\n },\r\n handleConfirmSubmit() {\r\n if (this.countFailed > 0) {\r\n this.confirmModalAction(\r\n this.lbl['confirm-message-import-include'],\r\n this.lbl['you-download-failed-list-import-again'],\r\n 'warning',\r\n this.lbl['confirm-box-cancel-button'],\r\n true,\r\n () => {\r\n this.confirmModalSetting.isOpenModal = false\r\n this.handleSubmit()\r\n },\r\n () => {\r\n this.confirmModalSetting.isOpenModal = false\r\n },\r\n )\r\n } else {\r\n this.confirmModalAction(\r\n this.lbl['adjust-confirm-text'],\r\n this.lbl['point-adjust-after-click-yes'],\r\n 'warning',\r\n this.lbl['confirm-box-cancel-button'],\r\n true,\r\n () => {\r\n this.confirmModalSetting.isOpenModal = false\r\n this.handleSubmit()\r\n },\r\n () => {\r\n this.confirmModalSetting.isOpenModal = false\r\n },\r\n )\r\n }\r\n },\r\n handleSubmit() {\r\n this.handleLoading(true)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n 'click_submit_import_card',\r\n 'on click',\r\n )\r\n BzbsCashcard.confirmUploadCard(this.rowKey)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n this.successupload = true\r\n let desciption = this.countSuccess + ' ' + this.lbl['members']\r\n this.alertModalAction(\r\n this.lbl['alert-box-success-header'],\r\n this.lbl['importusersuccesstext'],\r\n 'success',\r\n true,\r\n desciption,\r\n true,\r\n )\r\n } else {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n res.data.message\r\n ? res.data.message\r\n : this.lbl['Error occurred while processing your request.'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['Error occurred while processing your request.'],\r\n 'error',\r\n true,\r\n )\r\n })\r\n },\r\n confirmModalAction(\r\n title,\r\n details,\r\n modalType,\r\n backto,\r\n isOpenModal,\r\n onConfirm,\r\n onCancel,\r\n ) {\r\n this.confirmModalSetting.title = title\r\n this.confirmModalSetting.details = details\r\n this.confirmModalSetting.modalType = modalType\r\n this.confirmModalSetting.isOpenModal = isOpenModal\r\n this.confirmModalSetting.backto = backto\r\n this.confirmModalSetting.onConfirm = onConfirm\r\n this.confirmModalSetting.onCancel = onCancel\r\n },\r\n countProgressTimer() {\r\n this.timeinterval = setInterval(() => {\r\n if (this.percentProgress >= 99) {\r\n this.percentProgress = 99\r\n clearInterval(this.timeinterval)\r\n }\r\n if (this.percentProgress >= 89) {\r\n clearInterval(this.timeinterval)\r\n } else {\r\n let math = Math.floor(Math.random() * 20)\r\n this.percentProgress += math\r\n if (this.percentProgress >= 99) {\r\n this.percentProgress = 99\r\n clearInterval(this.timeinterval)\r\n }\r\n }\r\n }, 1000)\r\n },\r\n calcelCallApi() {\r\n this.getFileUpdate = null\r\n this.$refs.file.value = null\r\n },\r\n exprotFailed() {\r\n console.log('exprotFailed')\r\n this.handleLoading(true)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'import_card_serial',\r\n 'click_export_card_Failed',\r\n 'on click',\r\n )\r\n\r\n let data = _.map(this.dataFailed, item => {\r\n let verify = 'mobile number'\r\n let verify_value = ''\r\n var point = 'Point'\r\n var description = 'Description'\r\n var remark = 'remark'\r\n\r\n return {\r\n [verify]: verify_value ? verify_value : '',\r\n [point]: item.StrPoint ? item.StrPoint : '',\r\n [description]: item.Description ? item.Description : '',\r\n [remark]: item.Message ? item.Message : '',\r\n }\r\n })\r\n\r\n var dataWS = XLSX.utils.json_to_sheet(data, { dense: true })\r\n var wscols = [{ wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }]\r\n dataWS['!cols'] = wscols\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, dataWS)\r\n XLSX.writeFile(\r\n wb,\r\n 'CRMPlus_import_card_serial_' +\r\n moment(new Date()).format('YYYY-MM-DD') +\r\n '.xlsx',\r\n )\r\n\r\n this.handleLoading(false)\r\n },\r\n checkValidate(file) {\r\n this.clearerror()\r\n var isType = true\r\n const isSheet =\r\n file.type ==\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n const isExcel = file.type == 'application/vnd.ms-excel'\r\n if (!isSheet && !isExcel) {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n '',\r\n 'error',\r\n true,\r\n )\r\n isType = false\r\n }\r\n return isType\r\n },\r\n removeFileUpload() {\r\n this.$refs.file.value = null\r\n },\r\n clearerror() {\r\n this.dispfile = false\r\n for (let key in this.alertInfo) {\r\n this.alertInfo[key] = false\r\n }\r\n },\r\n alertModalAction(\r\n title,\r\n details,\r\n modalType,\r\n isOpenModal,\r\n desciption,\r\n isLog,\r\n ) {\r\n this.alertModalSetting.title = title\r\n this.alertModalSetting.details = details\r\n this.alertModalSetting.modalType = modalType\r\n this.alertModalSetting.isOpenModal = isOpenModal\r\n this.alertModalSetting.desciption = desciption\r\n if (modalType == 'success' && isOpenModal) {\r\n if (isLog) {\r\n setTimeout(() => {\r\n this.alertModalSetting.isOpenModal = false\r\n this.percentProgress = 0\r\n this.timeinterval = null\r\n this.isProgress = false\r\n this.isUploadSuccess = false\r\n this.countSuccess = 0\r\n this.countFailed = 0\r\n this.countTotal = 0\r\n this.data = []\r\n this.editableData = null\r\n\r\n this.$router.push({\r\n name: 'CashCard',\r\n params: { action: 'Log' },\r\n })\r\n }, 3000)\r\n } else {\r\n setTimeout(() => {\r\n this.alertModalSetting.isOpenModal = false\r\n }, 3000)\r\n }\r\n } else {\r\n if (isOpenModal)\r\n setTimeout(() => {\r\n this.percentProgress = 0\r\n this.timeinterval = null\r\n this.isProgress = false\r\n this.isUploadSuccess = false\r\n this.countSuccess = 0\r\n this.countFailed = 0\r\n this.countTotal = 0\r\n this.data = []\r\n this.editableData = null\r\n this.alertModalSetting.isOpenModal = false\r\n }, 3000)\r\n }\r\n },\r\n tagAnalytic(type) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_import',\r\n 'click_' + type,\r\n 'on click',\r\n )\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\">\r\n@import '@/module/ImportBatchPoint/AdjustPoint.scss';\r\n</style>\r\n<style lang=\"scss\" scoped>\r\n.cash-card-import-wrapper {\r\n padding: 30px;\r\n\r\n .wrapper-upload-excel-file {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 60px 0;\r\n background-color: #fafafa;\r\n border: 2px dashed #e0e0e0;\r\n border-radius: 8px;\r\n height: 320px;\r\n\r\n .wrapper-sub-upload-excel-file {\r\n text-align: -webkit-center;\r\n .text-1 {\r\n margin: 6px 0;\r\n font-size: 14px;\r\n line-height: 1.57;\r\n letter-spacing: 0.15px;\r\n color: #616161;\r\n }\r\n .text-2 {\r\n margin-bottom: 24px;\r\n font-size: 14px;\r\n line-height: 1.57;\r\n letter-spacing: 0.15px;\r\n color: #616161;\r\n }\r\n .btn-Upload-excel {\r\n width: 222px;\r\n height: 56px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 16px 24px;\r\n border-radius: 4px;\r\n border: solid 1px #ff9800;\r\n background-color: #ff9800;\r\n color: #fff;\r\n cursor: pointer;\r\n }\r\n .btn-Upload-excel {\r\n width: auto;\r\n max-width: 190px;\r\n }\r\n .btn-Upload-excel img {\r\n width: 24px;\r\n height: 24px;\r\n }\r\n .btn-Upload-excel span {\r\n font-size: 16px;\r\n line-height: 1.25;\r\n letter-spacing: 1px;\r\n color: #fff;\r\n margin-left: 8px;\r\n }\r\n .btn-Upload-excel:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.5;\r\n }\r\n .img-cloud-upload {\r\n width: 60px;\r\n height: 60px;\r\n }\r\n }\r\n }\r\n .text-download-tem {\r\n padding: 24px 4px 8px;\r\n .txt-dwnl-temp {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n color: #f9a601;\r\n font-size: 16px;\r\n font-weight: 700;\r\n line-height: 24px;\r\n text-align: left;\r\n }\r\n }\r\n}\r\n.cash-card-import-result-wrapper {\r\n padding: 30px;\r\n .title-wrapper {\r\n .title-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 24px;\r\n font-weight: 400;\r\n line-height: 28.13px;\r\n text-align: left;\r\n color: #212121;\r\n }\r\n }\r\n}\r\n.action-column {\r\n color: #ff5252;\r\n font-size: 16px;\r\n font-weight: 700;\r\n text-decoration: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Import.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Import.vue?vue&type=template&id=b3f548e0&scoped=true&\"\nimport script from \"./Import.vue?vue&type=script&lang=js&\"\nexport * from \"./Import.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Import.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./Import.vue?vue&type=style&index=1&id=b3f548e0&lang=scss&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 \"b3f548e0\",\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:\"cash-card-design-wrapper\"},[(_vm.isOpenHistory)?_c('div',{staticClass:\"history-log-backdrop-background\"}):_vm._e(),_c('div',{staticClass:\"page-title\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_menu_card_design_title'])+\" \")]),_c('a-button',{staticClass:\"history-log-btn\",attrs:{\"large\":\"\",\"disabled\":!_vm.historyData || !_vm.historyData.length},on:{\"click\":_vm.openHistory}},[_vm._v(\" \"+_vm._s(_vm.lbl['history_log_text'])+\" \")])],1),_c('div',{staticClass:\"card-wrapper\"},[_c('div',{staticClass:\"digital-card-wrapper\"},[_vm._m(0),_c('div',{staticClass:\"design-card-wrapper\"},[_c('div',{staticClass:\"title\"},[_c('img',{staticClass:\"icon\",attrs:{\"src\":require(\"@/assets/images/digital_card.svg\"),\"alt\":\"digital card icon\"}}),_c('div',{staticClass:\"text\"},[_c('strong',[_vm._v(_vm._s(_vm.lbl['cash_card_design_digital_card_title']))]),_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_maximum_digital_card_title'])+\" \")])])]),(_vm.cardDigital.length)?_c('div',_vm._l((_vm.cardDigital),function(card,i){return _c('div',{key:(\"card_digital_\" + i),staticClass:\"detail\"},[_c('div',{staticClass:\"img-display-wrapper\",class:{ 'custom-img': _vm.imgDigital }},[_c('div',{staticClass:\"image-wrapper\",style:(_vm.cardDigital[i].CoverUrl\n ? _vm.cardImage(_vm.cardDigital[i].CoverUrl)\n : _vm.cardImage(_vm.defaultImg))},[_c('div',{staticClass:\"card-info\"},[_c('div',{staticClass:\"number-detail\"},[_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.displayID('xxxxxxxxxxxxx'))+\" \")]),_c('a-icon',{attrs:{\"type\":\"info-circle\"}})],1)]),_c('div',{staticClass:\"type\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_digital_card_title'])+\" \")])]),_c('div',{staticClass:\"coin-detail\"},[_c('strong',[_vm._v(\" \"+_vm._s(_vm.cardDigital[i].Cash || '1,000')+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(' ' + _vm.lbl['curency_text'])+\" \")])])])]),_c('div',{staticClass:\"input-wrapper\"},[_c('div',{staticClass:\"input\"},[_c('div',{staticClass:\"card-name\"},[_c('div',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_input_card_name'] + ':')+\" \")]),_c('a-input',{attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']},model:{value:(_vm.cardDigital[i].CardName),callback:function ($$v) {_vm.$set(_vm.cardDigital[i], \"CardName\", $$v)},expression:\"cardDigital[i].CardName\"}})],1),_c('div',{staticClass:\"design-id\"},[_c('div',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_input_design_id'] + ':')+\" \")]),_c('a-input',{attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder'],\"disabled\":\"\"},model:{value:(_vm.cardDigital[i].DesignId),callback:function ($$v) {_vm.$set(_vm.cardDigital[i], \"DesignId\", $$v)},expression:\"cardDigital[i].DesignId\"}})],1)]),_c('div',{staticClass:\"upload\"},[_c('a-upload',{attrs:{\"name\":\"digitalImage\",\"accept\":\"image/*\",\"file-list\":_vm.fileDigitalList,\"show-upload-list\":false,\"before-upload\":_vm.beforeUpload},on:{\"change\":function($event){return _vm.handleChange($event, 'digital')}}},[_c('a-button',[_c('a-icon',{attrs:{\"type\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_upload_card_image'])+\" \")],1)],1),_c('span',{staticClass:\"recommended-text\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_card_image_recommended'])+\" \")])],1)]),(_vm.dataDigitalCardChange)?_c('div',{staticClass:\"action-wrapper\"},[_c('a-button',{on:{\"click\":_vm.handleCancelDigital}},[_vm._v(\" \"+_vm._s(_vm.lbl['confirm-box-cancel-button'])+\" \")]),_c('a-button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.isDigitalValidate},on:{\"click\":function($event){return _vm.saveCard('digital')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['fgf-save'])+\" \")])],1):_vm._e()])}),0):_vm._e(),(!_vm.cardDigital.length)?_c('div',{staticClass:\"add-btn\",on:{\"click\":function($event){return _vm.addCard('Digital')}}},[_c('a-icon',{attrs:{\"type\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_add_design_card_btn'])+\" \")],1):_vm._e()])]),_c('div',{staticClass:\"line\"}),_c('div',{staticClass:\"physical-card-wrapper\"},[_vm._m(1),_c('div',{staticClass:\"design-card-wrapper\"},[_c('div',{staticClass:\"title\"},[_c('img',{staticClass:\"icon\",attrs:{\"src\":require(\"@/assets/images/physical_card.svg\"),\"alt\":\"digital card icon\"}}),_c('div',{staticClass:\"text\"},[_c('strong',[_vm._v(_vm._s(_vm.lbl['cash_card_design_physical_card_title']))]),_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_maximum_physical_card_title'])+\" \")])])]),(_vm.cardPhysical.length)?_c('div',_vm._l((_vm.cardPhysical),function(card,i){return _c('div',{key:(\"card_physical_\" + i),staticClass:\"detail\"},[_c('div',{staticClass:\"img-display-wrapper\",class:{ 'custom-img': _vm.imgPhysical }},[_c('div',{staticClass:\"image-wrapper\",style:(_vm.cardPhysical[i].CoverUrl\n ? _vm.cardImage(_vm.cardPhysical[i].CoverUrl)\n : _vm.cardImage(_vm.defaultImg))},[_c('div',{staticClass:\"card-info\"},[_c('div',{staticClass:\"number-detail\"},[_c('div',{staticClass:\"detail\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.displayID('xxxxxxxxxxxxx'))+\" \")]),_c('a-icon',{attrs:{\"type\":\"info-circle\"}})],1)]),_c('div',{staticClass:\"type\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_physical_card_title'])+\" \")])]),_c('div',{staticClass:\"coin-detail\"},[_c('strong',[_vm._v(\" \"+_vm._s(_vm.cardPhysical[i].Cash || '1,000')+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(' ' + _vm.lbl['curency_text'])+\" \")])])])]),_c('div',{staticClass:\"input-wrapper\"},[_c('div',{staticClass:\"input\"},[_c('div',{staticClass:\"card-name\"},[_c('div',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_input_card_name'] + ':')+\" \")]),_c('a-input',{attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder']},model:{value:(_vm.cardPhysical[i].CardName),callback:function ($$v) {_vm.$set(_vm.cardPhysical[i], \"CardName\", $$v)},expression:\"cardPhysical[i].CardName\"}})],1),_c('div',{staticClass:\"design-id\"},[_c('div',{staticClass:\"label\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_input_design_id'] + ':')+\" \")]),_c('a-input',{attrs:{\"placeholder\":_vm.lbl['cash_card_list_search_placeholder'],\"disabled\":\"\"},model:{value:(_vm.cardPhysical[i].DesignId),callback:function ($$v) {_vm.$set(_vm.cardPhysical[i], \"DesignId\", $$v)},expression:\"cardPhysical[i].DesignId\"}})],1)]),_c('div',{staticClass:\"upload\"},[_c('a-upload',{attrs:{\"name\":\"digitalImage\",\"accept\":\"image/*\",\"file-list\":_vm.filePhysicalList,\"show-upload-list\":false,\"before-upload\":_vm.beforeUpload},on:{\"change\":function($event){return _vm.handleChange($event, 'physical')}}},[_c('a-button',[_c('a-icon',{attrs:{\"type\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_upload_card_image'])+\" \")],1)],1),_c('span',{staticClass:\"recommended-text\"},[_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_design_card_image_recommended'])+\" \")])],1)]),(_vm.dataPhysicalCardChange)?_c('div',{staticClass:\"action-wrapper\"},[_c('a-button',{on:{\"click\":_vm.handleCancelPhysical}},[_vm._v(\" \"+_vm._s(_vm.lbl['confirm-box-cancel-button'])+\" \")]),_c('a-button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.isPhysicalValidate},on:{\"click\":function($event){return _vm.saveCard('physical')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['fgf-save'])+\" \")])],1):_vm._e()])}),0):_vm._e(),(!_vm.cardPhysical.length)?_c('div',{staticClass:\"add-btn\",on:{\"click\":function($event){return _vm.addCard('Physical')}}},[_c('a-icon',{attrs:{\"type\":\"plus\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['cash_card_add_design_card_btn'])+\" \")],1):_vm._e()])])]),(_vm.isOpenHistory)?_c('div',{staticClass:\"history-log-backdrop\"},[_c('div',{staticClass:\"history-log-wrapper\"},[_c('div',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.lbl['history_log_text'])+\" \")]),_c('div',{staticClass:\"history\"},[_c('div',{staticClass:\"collapse-wrapper\"},[_c('a-collapse',{attrs:{\"expand-icon-position\":\"right\"}},_vm._l((_vm.historyData),function(data){return _c('a-collapse-panel',{key:data.Timestamp,attrs:{\"header\":_vm.getDateTime(data.Timestamp)}},[_c('div',{staticClass:\"changed-wrapper\"},[_c('div',{staticClass:\"changed\"},[_c('div',{staticClass:\"chenger\"},[_c('span',{staticClass:\"date-time\"},[_vm._v(\" \"+_vm._s(_vm.getDateTimeLocal(data.LastUpdate))+\" \")]),_c('span',{staticClass:\"change-by\"},[_vm._v(_vm._s(_vm.lbl['by_text'] + ' ' + data.UpdatedBy))])]),(_vm.getChange(data).length)?_c('div',{staticClass:\"change-detail\"},[_c('strong',{staticClass:\"action-name\"},[_vm._v(_vm._s(data.Action))]),_vm._l((_vm.getChange(data)),function(e,i){return _c('div',{key:i,staticClass:\"action-detail\"},[(e.from)?_c('div',{staticClass:\"from\"},[(e.key == 'img')?_c('div',{staticClass:\"img\"},[_c('img',{attrs:{\"src\":e.from,\"alt\":\"change img to\"}})]):_vm._e(),(e.key == 'name')?_c('div',[_c('span',[_vm._v(_vm._s(e.from))])]):_vm._e(),(e.key == 'type')?_c('div',[_c('span',[_vm._v(_vm._s(e.from))])]):_vm._e()]):_vm._e(),(e.from)?_c('img',{attrs:{\"src\":require('@/assets/images/arrow-forward.svg'),\"alt\":\"arrow forward\",\"width\":\"24\",\"height\":\"24\"}}):_vm._e(),(e.to)?_c('div',{staticClass:\"to\"},[(e.key == 'img')?_c('div',[_c('img',{attrs:{\"src\":e.to,\"alt\":\"change img to\"}})]):_vm._e(),(e.key == 'name')?_c('div',[_c('span',[_vm._v(_vm._s(e.to))])]):_vm._e(),(e.key == 'type')?_c('div',[_c('span',[_vm._v(_vm._s(e.to))])]):_vm._e()]):_vm._e()])})],2):_vm._e()])])])}),1)],1)]),_c('div',{staticClass:\"action\"},[_c('a-button',{staticClass:\"close-history-log-btn\",attrs:{\"large\":\"\"},on:{\"click\":function($event){_vm.isOpenHistory = !_vm.isOpenHistory}}},[_vm._v(\" \"+_vm._s(_vm.lbl['alert-box-success-close-button'])+\" \")])],1)])]):_vm._e(),_c('AlertModal',{attrs:{\"isOpenModal\":_vm.alertModalSetting.isOpenModal,\"modalType\":_vm.alertModalSetting.modalType,\"title\":_vm.alertModalSetting.title,\"details\":_vm.alertModalSetting.details}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"drag-wrapper\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/dots-six-vertical.svg\"),\"alt\":\"move\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"drag-wrapper\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/dots-six-vertical.svg\"),\"alt\":\"move\"}})])}]\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"cash-card-design-wrapper\">\r\n <div v-if=\"isOpenHistory\" class=\"history-log-backdrop-background\"></div>\r\n <div class=\"page-title\">\r\n <span>\r\n {{ lbl['cash_card_menu_card_design_title'] }}\r\n </span>\r\n <a-button\r\n large\r\n class=\"history-log-btn\"\r\n :disabled=\"!historyData || !historyData.length\"\r\n @click=\"openHistory\"\r\n >\r\n {{ lbl['history_log_text'] }}\r\n </a-button>\r\n </div>\r\n <div class=\"card-wrapper\">\r\n <div class=\"digital-card-wrapper\">\r\n <div class=\"drag-wrapper\">\r\n <img src=\"@/assets/images/dots-six-vertical.svg\" alt=\"move\" />\r\n </div>\r\n <div class=\"design-card-wrapper\">\r\n <div class=\"title\">\r\n <img\r\n src=\"@/assets/images/digital_card.svg\"\r\n alt=\"digital card icon\"\r\n class=\"icon\"\r\n />\r\n <div class=\"text\">\r\n <strong>{{ lbl['cash_card_design_digital_card_title'] }}</strong>\r\n <span>\r\n {{ lbl['cash_card_design_maximum_digital_card_title'] }}\r\n </span>\r\n </div>\r\n </div>\r\n <div v-if=\"cardDigital.length\">\r\n <div\r\n v-for=\"(card, i) in cardDigital\"\r\n :key=\"`card_digital_${i}`\"\r\n class=\"detail\"\r\n >\r\n <div\r\n class=\"img-display-wrapper\"\r\n :class=\"{ 'custom-img': imgDigital }\"\r\n >\r\n <div\r\n class=\"image-wrapper\"\r\n :style=\"\r\n cardDigital[i].CoverUrl\r\n ? cardImage(cardDigital[i].CoverUrl)\r\n : cardImage(defaultImg)\r\n \"\r\n >\r\n <div class=\"card-info\">\r\n <div class=\"number-detail\">\r\n <div class=\"detail\">\r\n <span>\r\n {{ displayID('xxxxxxxxxxxxx') }}\r\n </span>\r\n <a-icon type=\"info-circle\" />\r\n </div>\r\n </div>\r\n <div class=\"type\">\r\n {{ lbl['cash_card_design_digital_card_title'] }}\r\n </div>\r\n </div>\r\n <div class=\"coin-detail\">\r\n <strong>\r\n {{ cardDigital[i].Cash || '1,000' }}\r\n </strong>\r\n <span>\r\n {{ ' ' + lbl['curency_text'] }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-wrapper\">\r\n <div class=\"input\">\r\n <div class=\"card-name\">\r\n <div class=\"label\">\r\n {{ lbl['cash_card_design_input_card_name'] + ':' }}\r\n </div>\r\n <a-input\r\n v-model=\"cardDigital[i].CardName\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </div>\r\n <div class=\"design-id\">\r\n <div class=\"label\">\r\n {{ lbl['cash_card_design_input_design_id'] + ':' }}\r\n </div>\r\n <a-input\r\n v-model=\"cardDigital[i].DesignId\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n disabled\r\n />\r\n </div>\r\n </div>\r\n <div class=\"upload\">\r\n <a-upload\r\n name=\"digitalImage\"\r\n accept=\"image/*\"\r\n :file-list=\"fileDigitalList\"\r\n :show-upload-list=\"false\"\r\n :before-upload=\"beforeUpload\"\r\n @change=\"handleChange($event, 'digital')\"\r\n >\r\n <a-button>\r\n <a-icon type=\"plus\" />\r\n {{ lbl['cash_card_design_upload_card_image'] }}\r\n </a-button>\r\n </a-upload>\r\n <span class=\"recommended-text\">\r\n {{ lbl['cash_card_design_card_image_recommended'] }}\r\n </span>\r\n </div>\r\n </div>\r\n <div v-if=\"dataDigitalCardChange\" class=\"action-wrapper\">\r\n <a-button @click=\"handleCancelDigital\">\r\n {{ lbl['confirm-box-cancel-button'] }}\r\n </a-button>\r\n\r\n <a-button\r\n type=\"primary\"\r\n :disabled=\"isDigitalValidate\"\r\n @click=\"saveCard('digital')\"\r\n >\r\n {{ lbl['fgf-save'] }}\r\n </a-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n v-if=\"!cardDigital.length\"\r\n class=\"add-btn\"\r\n @click=\"addCard('Digital')\"\r\n >\r\n <a-icon type=\"plus\" />\r\n {{ lbl['cash_card_add_design_card_btn'] }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"physical-card-wrapper\">\r\n <div class=\"drag-wrapper\">\r\n <img src=\"@/assets/images/dots-six-vertical.svg\" alt=\"move\" />\r\n </div>\r\n <div class=\"design-card-wrapper\">\r\n <div class=\"title\">\r\n <img\r\n src=\"@/assets/images/physical_card.svg\"\r\n alt=\"digital card icon\"\r\n class=\"icon\"\r\n />\r\n <div class=\"text\">\r\n <strong>{{ lbl['cash_card_design_physical_card_title'] }}</strong>\r\n <span>\r\n {{ lbl['cash_card_design_maximum_physical_card_title'] }}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div v-if=\"cardPhysical.length\">\r\n <div\r\n v-for=\"(card, i) in cardPhysical\"\r\n :key=\"`card_physical_${i}`\"\r\n class=\"detail\"\r\n >\r\n <div\r\n class=\"img-display-wrapper\"\r\n :class=\"{ 'custom-img': imgPhysical }\"\r\n >\r\n <div\r\n class=\"image-wrapper\"\r\n :style=\"\r\n cardPhysical[i].CoverUrl\r\n ? cardImage(cardPhysical[i].CoverUrl)\r\n : cardImage(defaultImg)\r\n \"\r\n >\r\n <div class=\"card-info\">\r\n <div class=\"number-detail\">\r\n <div class=\"detail\">\r\n <span>\r\n {{ displayID('xxxxxxxxxxxxx') }}\r\n </span>\r\n <a-icon type=\"info-circle\" />\r\n </div>\r\n </div>\r\n <div class=\"type\">\r\n {{ lbl['cash_card_design_physical_card_title'] }}\r\n </div>\r\n </div>\r\n <div class=\"coin-detail\">\r\n <strong>\r\n {{ cardPhysical[i].Cash || '1,000' }}\r\n </strong>\r\n <span>\r\n {{ ' ' + lbl['curency_text'] }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-wrapper\">\r\n <div class=\"input\">\r\n <div class=\"card-name\">\r\n <div class=\"label\">\r\n {{ lbl['cash_card_design_input_card_name'] + ':' }}\r\n </div>\r\n <a-input\r\n v-model=\"cardPhysical[i].CardName\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n />\r\n </div>\r\n <div class=\"design-id\">\r\n <div class=\"label\">\r\n {{ lbl['cash_card_design_input_design_id'] + ':' }}\r\n </div>\r\n <a-input\r\n v-model=\"cardPhysical[i].DesignId\"\r\n :placeholder=\"lbl['cash_card_list_search_placeholder']\"\r\n disabled\r\n />\r\n </div>\r\n </div>\r\n <div class=\"upload\">\r\n <a-upload\r\n name=\"digitalImage\"\r\n accept=\"image/*\"\r\n :file-list=\"filePhysicalList\"\r\n :show-upload-list=\"false\"\r\n :before-upload=\"beforeUpload\"\r\n @change=\"handleChange($event, 'physical')\"\r\n >\r\n <a-button>\r\n <a-icon type=\"plus\" />\r\n {{ lbl['cash_card_design_upload_card_image'] }}\r\n </a-button>\r\n </a-upload>\r\n <span class=\"recommended-text\">\r\n {{ lbl['cash_card_design_card_image_recommended'] }}\r\n </span>\r\n </div>\r\n </div>\r\n <div v-if=\"dataPhysicalCardChange\" class=\"action-wrapper\">\r\n <a-button @click=\"handleCancelPhysical\">\r\n {{ lbl['confirm-box-cancel-button'] }}\r\n </a-button>\r\n\r\n <a-button\r\n type=\"primary\"\r\n :disabled=\"isPhysicalValidate\"\r\n @click=\"saveCard('physical')\"\r\n >\r\n {{ lbl['fgf-save'] }}\r\n </a-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n v-if=\"!cardPhysical.length\"\r\n class=\"add-btn\"\r\n @click=\"addCard('Physical')\"\r\n >\r\n <a-icon type=\"plus\" />\r\n {{ lbl['cash_card_add_design_card_btn'] }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div v-if=\"isOpenHistory\" class=\"history-log-backdrop\">\r\n <div class=\"history-log-wrapper\">\r\n <div class=\"title\">\r\n {{ lbl['history_log_text'] }}\r\n </div>\r\n <div class=\"history\">\r\n <div class=\"collapse-wrapper\">\r\n <a-collapse expand-icon-position=\"right\">\r\n <a-collapse-panel\r\n v-for=\"data in historyData\"\r\n :key=\"data.Timestamp\"\r\n :header=\"getDateTime(data.Timestamp)\"\r\n >\r\n <div class=\"changed-wrapper\">\r\n <div class=\"changed\">\r\n <div class=\"chenger\">\r\n <span class=\"date-time\">\r\n {{ getDateTimeLocal(data.LastUpdate) }}\r\n </span>\r\n <span class=\"change-by\">{{\r\n lbl['by_text'] + ' ' + data.UpdatedBy\r\n }}</span>\r\n </div>\r\n <div v-if=\"getChange(data).length\" class=\"change-detail\">\r\n <strong class=\"action-name\">{{ data.Action }}</strong>\r\n <div\r\n v-for=\"(e, i) in getChange(data)\"\r\n :key=\"i\"\r\n class=\"action-detail\"\r\n >\r\n <div v-if=\"e.from\" class=\"from\">\r\n <div v-if=\"e.key == 'img'\" class=\"img\">\r\n <img :src=\"e.from\" alt=\"change img to\" />\r\n </div>\r\n <div v-if=\"e.key == 'name'\">\r\n <span>{{ e.from }}</span>\r\n </div>\r\n <div v-if=\"e.key == 'type'\">\r\n <span>{{ e.from }}</span>\r\n </div>\r\n </div>\r\n <img\r\n v-if=\"e.from\"\r\n :src=\"require('@/assets/images/arrow-forward.svg')\"\r\n alt=\"arrow forward\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n <div v-if=\"e.to\" class=\"to\">\r\n <div v-if=\"e.key == 'img'\">\r\n <img :src=\"e.to\" alt=\"change img to\" />\r\n </div>\r\n <div v-if=\"e.key == 'name'\">\r\n <span>{{ e.to }}</span>\r\n </div>\r\n <div v-if=\"e.key == 'type'\">\r\n <span>{{ e.to }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a-collapse-panel>\r\n </a-collapse>\r\n </div>\r\n </div>\r\n <div class=\"action\">\r\n <a-button\r\n large\r\n class=\"close-history-log-btn\"\r\n @click=\"isOpenHistory = !isOpenHistory\"\r\n >\r\n {{ lbl['alert-box-success-close-button'] }}\r\n </a-button>\r\n </div>\r\n </div>\r\n </div>\r\n <AlertModal\r\n :isOpenModal=\"alertModalSetting.isOpenModal\"\r\n :modalType=\"alertModalSetting.modalType\"\r\n :title=\"alertModalSetting.title\"\r\n :details=\"alertModalSetting.details\"\r\n />\r\n </div>\r\n</template>\r\n<script>\r\nimport Vue from 'vue'\r\nimport Mixin from '@/mixin/Mixin'\r\nimport AlertModal from '@/components/Modal/Component/alertmodal2'\r\nimport BzbsCashcard from '@/core/Cashcard/BzbsCashcard.js'\r\nimport _ from 'lodash'\r\nimport moment from 'moment'\r\nimport Locale from '@/helper/locale.js'\r\nimport Account from '@/helper/AccountHelper.js'\r\n\r\nexport default {\r\n name: 'CashCardDesign',\r\n mixins: [Mixin],\r\n components: {\r\n AlertModal,\r\n },\r\n data() {\r\n return {\r\n cardDigitalName: null,\r\n cardDigitaDesignId: null,\r\n imgDigital: null,\r\n cardPhysicalName: null,\r\n cardPhysicalDesignId: null,\r\n imgPhysical: null,\r\n filePhysicalList: [],\r\n fileDigitalList: [],\r\n cardList: [],\r\n cardListBackup: [],\r\n cardDigital: [],\r\n cardPhysical: [],\r\n isOpenHistory: false,\r\n historyData: [],\r\n alertModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n isOpenModal: false,\r\n },\r\n defaultImg:\r\n Vue.bzbsConfig.bzbsBlobUrl +\r\n '/config/crmplus/value-design/default_bg.jpg',\r\n }\r\n },\r\n computed: {\r\n isDigitalValidate() {\r\n return !this.cardDigital.every(i => i.CardName !== null)\r\n },\r\n isPhysicalValidate() {\r\n return !this.cardPhysical.every(i => i.CardName !== null)\r\n },\r\n dataDigitalCardChange() {\r\n if (this.cardDigital.length) {\r\n const getDigital = this.cardListBackup.filter(\r\n i => i.CardType == 'digital',\r\n )\r\n if (\r\n getDigital.length &&\r\n getDigital[0].CardName == this.cardDigital[0].CardName &&\r\n getDigital[0].DesignId == this.cardDigital[0].DesignId &&\r\n getDigital[0].CoverUrl == this.cardDigital[0].CoverUrl\r\n ) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n },\r\n dataPhysicalCardChange() {\r\n if (this.cardPhysical.length) {\r\n const getPhysical = this.cardListBackup.filter(\r\n i => i.CardType == 'physical',\r\n )\r\n if (\r\n getPhysical.length &&\r\n getPhysical[0].CardName == this.cardPhysical[0].CardName &&\r\n getPhysical[0].DesignId == this.cardPhysical[0].DesignId &&\r\n getPhysical[0].CoverUrl == this.cardPhysical[0].CoverUrl\r\n ) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n } else {\r\n return true\r\n }\r\n },\r\n },\r\n created() {\r\n this.handleLoading(true)\r\n\r\n this.init()\r\n },\r\n methods: {\r\n init() {\r\n this.getCard().then(() => {\r\n this.historyData = []\r\n this.cardList.forEach(i => {\r\n this.getHistory(i.DesignId)\r\n this.handleLoading(false)\r\n })\r\n })\r\n },\r\n getCard() {\r\n return new Promise(resolve => {\r\n BzbsCashcard.getCardDesignList()\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n this.cardList = res.data.data\r\n this.cardListBackup = res.data.data\r\n if (this.cardList.length > 0) {\r\n this.cardList.forEach(i => {\r\n if (i.CoverUrl) i.CoverUrl = this.stampTime(i.CoverUrl)\r\n })\r\n this.cardDigital = this.cardList.filter(\r\n i => i.CardType == 'digital',\r\n )\r\n this.cardPhysical = this.cardList.filter(\r\n i => i.CardType == 'physical',\r\n )\r\n }\r\n this.cardListBackup = _.cloneDeep([...this.cardList])\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n resolve(error)\r\n })\r\n })\r\n },\r\n genDesignId() {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.genCardDesignId()\r\n .then(res => {\r\n this.handleLoading(false)\r\n resolve(res.data.requestId)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n })\r\n })\r\n },\r\n uploadImg(img) {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.uploadImg(img)\r\n .then(res => {\r\n this.handleLoading(false)\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n try {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n } catch {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n })\r\n })\r\n },\r\n beforeUpload(file) {\r\n const isJpgOrPng =\r\n file.type === 'image/jpg' ||\r\n file.type === 'image/jpeg' ||\r\n file.type === 'image/png'\r\n if (!isJpgOrPng) {\r\n this.alertWrongTypeImg(\r\n this.lbl['alert-box-error-header'],\r\n this.lbl['tooltip_1'],\r\n 'error',\r\n true,\r\n )\r\n } else {\r\n return true\r\n }\r\n },\r\n handleChange(e, type) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_upload_cover_image_${type}_card`,\r\n 'on click',\r\n )\r\n var file = e.file.originFileObj\r\n if (file) {\r\n const reader = new FileReader()\r\n\r\n reader.onload = event => {\r\n const img = new Image()\r\n img.src = event.target.result\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas')\r\n const ctx = canvas.getContext('2d')\r\n\r\n canvas.width = 686\r\n canvas.height = 458\r\n\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height)\r\n\r\n canvas.toBlob(blob => {\r\n const resizedFile = new File([blob], file.name, {\r\n type: file.type,\r\n })\r\n\r\n if (type === 'digital') {\r\n this.fileDigitalList = [resizedFile]\r\n this.cardDigital[0].CoverUrl = URL.createObjectURL(resizedFile)\r\n } else if (type === 'physical') {\r\n this.filePhysicalList = [resizedFile]\r\n this.cardPhysical[0].CoverUrl = URL.createObjectURL(resizedFile)\r\n }\r\n }, file.type)\r\n }\r\n }\r\n\r\n reader.readAsDataURL(file)\r\n }\r\n },\r\n addCard(type) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_add_${type}_card`,\r\n 'on click',\r\n )\r\n this.genDesignId().then(id => {\r\n let data = {\r\n CardName: null,\r\n DesignId: id || null,\r\n CoverUrl: null,\r\n Create: true,\r\n }\r\n if (type === 'Physical') {\r\n this.cardPhysical.push(data)\r\n } else if (type === 'Digital') {\r\n this.cardDigital.push(data)\r\n }\r\n })\r\n },\r\n handleCancelDigital() {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_cancel_save_digital_card`,\r\n 'on click',\r\n )\r\n var getDigital = this.cardListBackup.filter(i => i.CardType == 'digital')\r\n if (getDigital.length > 0) {\r\n const lastIndex = this.cardDigital.length - 1\r\n this.cardDigital[0].CardName = getDigital[lastIndex].CardName\r\n this.cardDigital[0].DesignId = getDigital[lastIndex].DesignId\r\n this.cardDigital[0].CoverUrl = getDigital[lastIndex].CoverUrl\r\n } else {\r\n this.cardDigital = getDigital\r\n }\r\n },\r\n handleCancelPhysical() {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_cancel_save_physical_card`,\r\n 'on click',\r\n )\r\n var getPhysical = this.cardListBackup.filter(\r\n i => i.CardType == 'physical',\r\n )\r\n if (getPhysical.length > 0) {\r\n const lastIndex = getPhysical.length - 1\r\n this.cardPhysical[0].CardName = getPhysical[lastIndex].CardName\r\n this.cardPhysical[0].DesignId = getPhysical[lastIndex].DesignId\r\n this.cardPhysical[0].CoverUrl = getPhysical[lastIndex].CoverUrl\r\n } else {\r\n this.cardPhysical = getPhysical\r\n }\r\n },\r\n async createFileFromPath(imagePath, fileName = 'default_image.jpg') {\r\n return fetch(imagePath)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error('Failed to fetch the image.')\r\n }\r\n return response.blob() // à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ Blob\r\n })\r\n .then(blob => {\r\n // à¹à¸›à¸¥à¸‡ Blob เป็น File\r\n const file = new File([blob], fileName, { type: blob.type })\r\n return file\r\n })\r\n },\r\n async saveCard(type) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_save_${type}_card`,\r\n 'on click',\r\n )\r\n this.handleLoading(true)\r\n var lastIndex = null\r\n var result = {}\r\n var file = null\r\n if (type == 'digital') {\r\n lastIndex = this.cardDigital.length - 1\r\n result = this.cardDigital[lastIndex]\r\n file = this.fileDigitalList[0]\r\n } else if (type == 'physical') {\r\n lastIndex = this.cardPhysical.length - 1\r\n result = this.cardPhysical[lastIndex]\r\n file = this.filePhysicalList[0]\r\n }\r\n const data = {}\r\n data.designId = result.DesignId\r\n data.cardName = result.CardName\r\n data.cardType = type\r\n data.coverUrl = result.CoverUrl || null\r\n\r\n if (result.Create) {\r\n if (file) {\r\n this.uploadImg(file).then(res => {\r\n data.coverUrl = res.Uri\r\n this.createCard(data)\r\n })\r\n } else {\r\n await this.createFileFromPath(this.defaultImg)\r\n .then(file => {\r\n console.log('File object:', file)\r\n this.uploadImg(file).then(res => {\r\n data.coverUrl = res.Uri\r\n this.createCard(data)\r\n })\r\n })\r\n .catch(err => console.error('Error:', err))\r\n }\r\n } else {\r\n if (file) {\r\n this.uploadImg(file).then(res => {\r\n data.coverUrl = res.Uri\r\n this.updateCard(data)\r\n })\r\n } else {\r\n this.updateCard(data)\r\n }\r\n }\r\n },\r\n createCard(data) {\r\n return new Promise(resolve => {\r\n BzbsCashcard.createCard(data)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `create_${data.cardType}_card_success`,\r\n 'on view',\r\n )\r\n this.alertModalAction(\r\n this.lbl['alert-box-success-header'],\r\n this.lbl['cash_card_design_success_title'],\r\n 'success',\r\n true,\r\n )\r\n } else {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `create_${data.cardType}_card_fail`,\r\n 'on view',\r\n )\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n res.data.message\r\n ? res.data.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `create_${data.cardType}_card_fail`,\r\n 'on view',\r\n )\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n })\r\n })\r\n },\r\n updateCard(data) {\r\n return new Promise(resolve => {\r\n BzbsCashcard.updateCard(data)\r\n .then(res => {\r\n this.handleLoading(false)\r\n if (res.data.success) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `update_${data.cardType}_card_success`,\r\n 'on view',\r\n )\r\n this.alertModalAction(\r\n this.lbl['alert-box-success-header'],\r\n this.lbl['cash_card_design_success_title'],\r\n 'success',\r\n true,\r\n )\r\n } else {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `update_${data.cardType}_card_fail`,\r\n 'on view',\r\n )\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n res.data.message\r\n ? res.data.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `update_${data.cardType}_card_fail`,\r\n 'on view',\r\n )\r\n try {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n } catch {\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n }\r\n })\r\n })\r\n },\r\n getHistory(id) {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.getCardDesignHistoryLog(id)\r\n .then(res => {\r\n if (res.data.success) {\r\n this.historyData = [...this.historyData, ...res.data.data]\r\n this.historyData = _.orderBy(\r\n this.historyData,\r\n ['Timestamp'],\r\n ['desc'],\r\n )\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n this.alertModalAction(\r\n this.lbl['alert-box-error-header'],\r\n error.response.data.error.message\r\n ? error.response.data.error.message\r\n : this.lbl['cash_card_design_fail_title'],\r\n 'error',\r\n true,\r\n )\r\n })\r\n })\r\n },\r\n openHistory() {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `click_view_history_log`,\r\n 'on click',\r\n )\r\n this.isOpenHistory = true\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_design',\r\n `view_history_log`,\r\n 'on view',\r\n )\r\n },\r\n cardImage(img) {\r\n return img\r\n ? { backgroundImage: `url(${img})`, backgroundSize: 'cover' }\r\n : {}\r\n },\r\n displayID(id) {\r\n try {\r\n return id.slice(0, 6) + '-' + id.slice(6)\r\n } catch {\r\n return id\r\n }\r\n },\r\n getDate(timestamp) {\r\n let locale = Locale.getLocaleCode()\r\n if (locale != 'th') locale = 'en'\r\n moment.locale(locale)\r\n var strDate = moment.unix(timestamp).utc().format('DD MMM ')\r\n var year = moment.unix(timestamp).utc().format('YYYY')\r\n\r\n if (Locale.getLocaleCode() == 'th') {\r\n year = parseInt(year) + 543\r\n }\r\n\r\n return strDate + year\r\n },\r\n getDateTimeLocal(timestamp) {\r\n let locale = Locale.getLocaleCode()\r\n if (locale != 'th') locale = 'en'\r\n moment.locale(locale)\r\n var strDate = moment.unix(timestamp).utc().format('DD MMM ')\r\n var year = moment.unix(timestamp).utc().format('YYYY')\r\n var time = moment.unix(timestamp).utc().format('HH:mm')\r\n\r\n if (Locale.getLocaleCode() == 'th') {\r\n year = parseInt(year) + 543\r\n }\r\n\r\n return strDate + year + ', ' + time\r\n },\r\n getDateTime(timestamp) {\r\n let locale = Locale.getLocaleCode()\r\n if (locale != 'th') locale = 'en'\r\n moment.locale(locale)\r\n var strDate = moment\r\n .unix(timestamp)\r\n .utc()\r\n .add(7, 'hours')\r\n .format('DD MMM ')\r\n var year = moment.unix(timestamp).utc().add(7, 'hours').format('YYYY')\r\n var time = moment.unix(timestamp).utc().add(7, 'hours').format('HH:mm')\r\n\r\n if (Locale.getLocaleCode() == 'th') {\r\n year = parseInt(year) + 543\r\n }\r\n\r\n return strDate + year + ', ' + time\r\n },\r\n getChange(data) {\r\n var changeList = []\r\n if (data.OldCardName && data.CardName) {\r\n changeList.push({\r\n key: 'name',\r\n from: data.OldCardName,\r\n to: data.CardName,\r\n })\r\n }\r\n if (data.OldCoverUrl && data.CoverUrl) {\r\n changeList.push({\r\n key: 'img',\r\n from: data.OldCoverUrl,\r\n to: data.CoverUrl,\r\n })\r\n }\r\n if (data.OldCardType && data.CardType) {\r\n changeList.push({\r\n key: 'type',\r\n from: data.OldCardType,\r\n to: data.CardType,\r\n })\r\n }\r\n return changeList\r\n },\r\n alertWrongTypeImg(title, details, modalType, isOpenModal) {\r\n this.alertModalSetting.title = title\r\n this.alertModalSetting.details = details\r\n this.alertModalSetting.modalType = modalType\r\n this.alertModalSetting.isOpenModal = isOpenModal\r\n if (modalType == 'success' && isOpenModal) {\r\n setTimeout(() => {\r\n location.reload()\r\n }, 3000)\r\n } else {\r\n if (isOpenModal)\r\n setTimeout(() => {\r\n this.alertModalSetting.isOpenModal = false\r\n }, 3000)\r\n }\r\n },\r\n alertModalAction(title, details, modalType, isOpenModal) {\r\n this.alertModalSetting.title = title\r\n this.alertModalSetting.details = details\r\n this.alertModalSetting.modalType = modalType\r\n this.alertModalSetting.isOpenModal = isOpenModal\r\n if (modalType == 'success' && isOpenModal) {\r\n setTimeout(() => {\r\n location.reload()\r\n }, 3000)\r\n } else {\r\n if (isOpenModal)\r\n setTimeout(() => {\r\n location.reload()\r\n }, 3000)\r\n }\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.cash-card-design-wrapper {\r\n padding: 15px 30px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 16px;\r\n .page-title {\r\n color: #4a4a4a;\r\n font-size: 20px;\r\n line-height: 150%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n .history-log-btn {\r\n border: 1px solid #c9c9c9;\r\n background: #ffffff;\r\n color: #636363;\r\n font-weight: 500;\r\n line-height: 21px;\r\n text-align: center;\r\n }\r\n }\r\n .card-wrapper {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 16px;\r\n\r\n .line {\r\n height: 1px;\r\n background-color: rgba(0, 0, 0, 0.03);\r\n width: 100%;\r\n }\r\n\r\n .digital-card-wrapper,\r\n .physical-card-wrapper {\r\n width: 100%;\r\n display: flex;\r\n padding: 8px;\r\n align-items: center;\r\n gap: 16px;\r\n border-radius: 12px;\r\n border: 1px solid #f5f5f5;\r\n background: #ffffff;\r\n\r\n .drag-wrapper {\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n }\r\n .design-card-wrapper {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n .title {\r\n display: flex;\r\n gap: 9px;\r\n align-items: center;\r\n .icon {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n .text {\r\n strong {\r\n color: #4a4a4a;\r\n font-size: 16px;\r\n line-height: 150%;\r\n }\r\n span {\r\n color: #969696;\r\n font-size: 12px;\r\n line-height: 150%;\r\n }\r\n }\r\n }\r\n .detail {\r\n width: 100%;\r\n border-radius: 12px;\r\n background: #fafafa;\r\n display: grid;\r\n grid-template-columns: 343px 50% 17%;\r\n gap: 16px;\r\n padding: 16px;\r\n .img-display-wrapper {\r\n position: relative;\r\n height: 230px;\r\n border-radius: 12px;\r\n background: #f0f0f0;\r\n padding: 24px 60px;\r\n text-align: center;\r\n align-content: center;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0;\r\n }\r\n .image-wrapper {\r\n border-radius: 12px;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n background-position: center;\r\n background-size: cover;\r\n\r\n .empty-img-card {\r\n width: 100%;\r\n height: 100%;\r\n align-self: center;\r\n object-fit: cover;\r\n border-radius: 12px;\r\n }\r\n .card-info {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n .number-detail {\r\n display: flex;\r\n align-self: flex-end;\r\n padding: 0px 12px;\r\n margin-top: 12px;\r\n .detail {\r\n display: flex;\r\n padding: 2px 6px;\r\n align-items: center;\r\n gap: 4px;\r\n border-radius: 20px;\r\n background: #00000080;\r\n color: #ffffff;\r\n text-align: center;\r\n font-size: 10px;\r\n font-weight: 400;\r\n line-height: 14px; /* 140% */\r\n letter-spacing: 0.4px;\r\n }\r\n }\r\n .type {\r\n display: flex;\r\n align-self: flex-end;\r\n display: flex;\r\n padding: 2px 6px;\r\n align-items: center;\r\n gap: 4px;\r\n border-radius: 20px;\r\n background: #00000080;\r\n color: #ffffff;\r\n text-align: center;\r\n font-size: 10px;\r\n font-weight: 400;\r\n line-height: 14px;\r\n letter-spacing: 0.4px;\r\n margin: 0 12px;\r\n }\r\n }\r\n .coin-detail {\r\n width: 100%;\r\n\r\n background: linear-gradient(\r\n 0deg,\r\n #fff 0%,\r\n rgba(255, 255, 255, 0.9) 21.25%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n border-radius: 0px 0px 12px 12px;\r\n flex-wrap: wrap;\r\n color: #303030;\r\n align-items: center;\r\n display: flex;\r\n gap: 8px;\r\n padding: 12px;\r\n img {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n strong {\r\n font-size: 30px;\r\n font-weight: 700;\r\n line-height: 1;\r\n letter-spacing: 0.25px;\r\n text-align: left;\r\n color: #303030;\r\n }\r\n span {\r\n font-size: 12px;\r\n font-weight: 400;\r\n line-height: 14px;\r\n letter-spacing: 0.4000000059604645px;\r\n place-self: self-end;\r\n }\r\n }\r\n }\r\n .coin-detail {\r\n width: 100%;\r\n background-color: #ffffff;\r\n border-radius: 0px 0px 12px 12px;\r\n flex-wrap: wrap;\r\n color: #303030;\r\n align-items: center;\r\n display: flex;\r\n gap: 8px;\r\n padding: 12px;\r\n img {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n strong {\r\n font-size: 44px;\r\n font-weight: 700;\r\n line-height: 1;\r\n letter-spacing: 0.25px;\r\n text-align: left;\r\n color: #303030;\r\n }\r\n span {\r\n font-size: 12px;\r\n font-weight: 400;\r\n line-height: 14px;\r\n letter-spacing: 0.4000000059604645px;\r\n place-self: self-end;\r\n }\r\n }\r\n\r\n @media screen and (max-width: 630px) {\r\n grid-template-columns: 1fr;\r\n }\r\n }\r\n .custom-img {\r\n padding: 0;\r\n }\r\n .input-wrapper {\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 32px;\r\n\r\n .input {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 16px;\r\n .card-name {\r\n flex: 2;\r\n }\r\n .design-id {\r\n flex: 1;\r\n }\r\n .card-name,\r\n .design-id {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n }\r\n\r\n @media screen and (max-width: 600px) {\r\n flex-direction: column;\r\n }\r\n }\r\n .upload {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n button {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n .recommended-text {\r\n color: 0, 0, 0, 0.45;\r\n }\r\n }\r\n }\r\n .action-wrapper {\r\n flex: 2;\r\n display: flex;\r\n gap: 8px;\r\n align-items: flex-end;\r\n justify-content: flex-end;\r\n }\r\n }\r\n .add-btn {\r\n cursor: pointer;\r\n width: fit-content;\r\n display: flex;\r\n padding: 6px 16px;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 8px;\r\n border-radius: 8px;\r\n border: 1px dashed #fbca67;\r\n background: #fff7e6;\r\n color: #f9a601;\r\n font-size: 14px;\r\n font-weight: 700;\r\n line-height: 150%; /* 21px */\r\n }\r\n }\r\n }\r\n .history-log-backdrop-background {\r\n background-color: #181c32;\r\n opacity: 0.5;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 9998;\r\n }\r\n .history-log-backdrop {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n\r\n width: 100%;\r\n height: 100%;\r\n z-index: 9999;\r\n\r\n .history-log-wrapper {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n width: 36%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n background-color: #ffffff;\r\n z-index: 99999;\r\n border-radius: 12px 0 0 12px;\r\n transition: 2s;\r\n .title {\r\n padding: 16px;\r\n font-size: 20px;\r\n font-weight: 500;\r\n line-height: 24px;\r\n text-align: left;\r\n box-shadow: 0px -1px 0px 0px #f0f0f0 inset;\r\n }\r\n .history {\r\n flex-grow: 1;\r\n padding: 24px 16px;\r\n overflow-y: auto;\r\n .collapse-wrapper {\r\n .changed-wrapper {\r\n .changed {\r\n display: flex;\r\n gap: 24px;\r\n border-bottom: 1px solid #e1e1e1;\r\n margin-bottom: 16px;\r\n padding-bottom: 16px;\r\n .chenger {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n .date-time {\r\n color: #000000d9;\r\n line-height: 22px;\r\n text-align: left;\r\n }\r\n .change-by {\r\n color: #00000073;\r\n font-size: 12px;\r\n line-height: 20px;\r\n text-align: left;\r\n }\r\n }\r\n .change-detail {\r\n flex: 3;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n .action-name {\r\n color: #000000d9;\r\n font-weight: 700;\r\n line-height: 22px;\r\n text-align: left;\r\n }\r\n .action-detail {\r\n display: flex;\r\n gap: 16px;\r\n flex-wrap: wrap;\r\n border-bottom: 1px solid #c9c9c9;\r\n padding: 16px 0;\r\n .from,\r\n .to {\r\n flex-grow: 1;\r\n .img {\r\n width: fit-content;\r\n }\r\n img {\r\n max-width: 220px;\r\n }\r\n }\r\n }\r\n .action-detail:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n .changed:last-child {\r\n border-bottom: none;\r\n padding-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n .action {\r\n padding: 16px;\r\n box-shadow: 0px -1px 0px 0px #f5f5f5;\r\n\r\n .close-history-log-btn {\r\n width: 100%;\r\n border: 1px solid #c9c9c9;\r\n background: #ffffff;\r\n color: #636363;\r\n font-weight: 500;\r\n line-height: 21px;\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Design.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Design.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Design.vue?vue&type=template&id=7e549e8d&scoped=true&\"\nimport script from \"./Design.vue?vue&type=script&lang=js&\"\nexport * from \"./Design.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Design.vue?vue&type=style&index=0&id=7e549e8d&lang=scss&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 \"7e549e8d\",\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',[_c('div',{staticClass:\"cash-card-log-wrapper\"},[_c('div',{staticClass:\"wrap-table\"},[_c('a-table',{attrs:{\"row-key\":\"RowKey\",\"columns\":_vm.columnTable,\"data-source\":_vm.dataActivityLog,\"pagination\":{\n pageSize: _vm.defaultPageSize,\n defaultCurrent: 1,\n total: _vm.totalSerial,\n hideOnSinglePage: false,\n onChange: _vm.onChangePage,\n }},scopedSlots:_vm._u([{key:\"date\",fn:function(text){return [_vm._v(\" \"+_vm._s(_vm.dateShortFormatUTC(text))+\" \")]}},{key:\"status\",fn:function(text){return [(text)?_c('a-tag',{attrs:{\"color\":\"green\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"check-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['success'])+\" \")],1)]):_c('a-tag',{attrs:{\"color\":\"red\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"close-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['fail'])+\" \")],1)])]}},{key:\"action\",fn:function(text, record){return [_c('a',{staticClass:\"view-action\",on:{\"click\":function($event){return _vm.openDetail(record)}}},[_vm._v(\" \"+_vm._s(_vm.lbl['view_title'])+\" \")])]}}])})],1)]),_c('a-modal',{staticClass:\"modal-Detail\",class:[_vm.currentLocale],attrs:{\"id\":\"modal-detail-log\",\"width\":\"80%\",\"title\":_vm.lbl['import_log_detail_title'],\"footer\":null,\"centered\":\"\"},model:{value:(_vm.visibleDetail),callback:function ($$v) {_vm.visibleDetail=$$v},expression:\"visibleDetail\"}},[_c('div',{staticClass:\"filterContainer nopad mb-2\"},[_c('div',{class:['filterMain', _vm.showFilterMain ? 'active' : '']},[_c('div',{staticClass:\"filter\",on:{\"click\":function($event){return _vm.toggle('showFilterMain')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['user-permissions-filter'])+\" \"),_c('img',{attrs:{\"src\":require('@/assets/images/filter_list.png'),\"alt\":\"filter_list\"}})]),_c('div',{staticClass:\"spaceHover\"}),_c('div',{staticClass:\"filterDropdown\"},[_c('div',{staticClass:\"filterLeft\"},_vm._l((Object.keys(_vm.filter)),function(item){return _c('div',{key:item,class:['filterList', item === _vm.subFilter ? 'active' : ''],on:{\"click\":function($event){return _vm.changeSubFilter(item)}}},[_vm._v(\" \"+_vm._s(_vm.lbl[_vm.filter[item].label])+\" \"),_c('img',{attrs:{\"src\":require('@/assets/images/navigate_next.png'),\"alt\":\"navigate_next\"}})])}),0),_c('div',{staticClass:\"filterRight\"},_vm._l((_vm.filter[_vm.subFilter].input),function(item){return _c('div',{key:item},[_c('div',{staticClass:\"filterList\",on:{\"click\":function($event){return _vm.selectFilter(item)}}},[_c('CheckBox',{attrs:{\"label\":item,\"valuee\":item,\"check\":_vm.filter[_vm.subFilter].value,\"type\":\"filter\"}})],1)])}),0),_c('div',{staticClass:\"btnFilter\"},[_c('div',{on:{\"click\":function($event){return _vm.resetFilter()}}},[_vm._v(\" \"+_vm._s(_vm.lbl['user-permissions-reset'])+\" \")]),_c('button',{on:{\"click\":function($event){return _vm.getLogPointDetail()}}},[_vm._v(\" \"+_vm._s(_vm.lbl['user-permissions-ok'])+\" \")])])])]),_vm._l((Object.keys(_vm.allFilter)),function(item,index){return _c('div',{key:'filter' + index,staticClass:\"filterItem\"},[_vm._v(\" \"+_vm._s(_vm.allFilter[item])+\" \"),_c('img',{attrs:{\"src\":require('@/assets/images/close.png'),\"alt\":\"close\"},on:{\"click\":function($event){return _vm.removeFilter(item)}}})])})],2),_c('a-table',{attrs:{\"row-key\":\"RowKey\",\"columns\":_vm.columnsDetail,\"data-source\":_vm.dataDetail,\"pagination\":{\n pageSize: _vm.defaultPageSizeDetail,\n defaultCurrent: 1,\n total: _vm.totalDetail,\n hideOnSinglePage: false,\n onChange: _vm.onChangePageDetail,\n }},scopedSlots:_vm._u([{key:\"status\",fn:function(text){return [(text)?_c('a-tag',{attrs:{\"color\":\"green\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"check-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['import-log-import-success'])+\" \")],1)]):_c('a-tag',{attrs:{\"color\":\"red\"}},[_c('span',{staticClass:\"d-flex align-center\"},[_c('a-icon',{staticClass:\"mr-1\",attrs:{\"type\":\"close-circle\"}}),_vm._v(\" \"+_vm._s(_vm.lbl['import-failed'])+\" \")],1)])]}},{key:\"remark\",fn:function(text, scope){return [(scope.Success)?_c('div',[_c('span',[_vm._v(\" \"+_vm._s(text ? text : '')+\" \")])]):_c('div',[(scope.Error)?_c('div',[_c('span',[_vm._v(\" \"+_vm._s(scope.Error)+\" \")])]):_c('div',[(\n text == 'UserId is not found' || text == 'User is not found'\n )?_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['user-is-not-found'])+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(text ? text : '')+\" \")])])])]}}])}),_c('div',{staticClass:\"export-file-container\"},[(_vm.showExportSuccess)?_c('a-button',{staticClass:\"btn-success\",on:{\"click\":function($event){return _vm.getLogPointDetailExport('success')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['download-success-user'])+\" \")]):_vm._e(),(_vm.showExportFail)?_c('a-button',{staticClass:\"btn-fail\",on:{\"click\":function($event){return _vm.getLogPointDetailExport('fail')}}},[_vm._v(\" \"+_vm._s(_vm.lbl['download-fail-user'])+\" \")]):_vm._e()],1)],1)],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('label',{staticClass:\"container\"},[(_vm.label == 'success')?_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['import-log-import-success'])+\" \")]):(_vm.label == 'update')?_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['import-log-import-update'])+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.lbl['import-failed'])+\" \")]),_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.isCheck,\"value\":_vm.valuee}}),_c('span',{staticClass:\"checkmark\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <label class=\"container\">\r\n <span v-if=\"label == 'success'\">\r\n {{ lbl['import-log-import-success'] }}\r\n </span>\r\n <span v-else-if=\"label == 'update'\">\r\n {{ lbl['import-log-import-update'] }}\r\n </span>\r\n <span v-else>\r\n {{ lbl['import-failed'] }}\r\n </span>\r\n <input\r\n type=\"checkbox\"\r\n :checked=\"isCheck\"\r\n :value=\"valuee\"\r\n :disabled=\"disabled\"\r\n />\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n</template>\r\n \r\n<script>\r\nimport Mixin from '@/mixin/Mixin'\r\n\r\nexport default {\r\n mixins: [Mixin],\r\n props: {\r\n label: {\r\n type: String,\r\n default: '',\r\n },\r\n valuee: {\r\n type: String,\r\n default: '',\r\n },\r\n check: {\r\n type: String,\r\n default: '',\r\n },\r\n type: {\r\n type: String,\r\n default: 'normal',\r\n },\r\n normalCheck: {\r\n type: Boolean,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n isCheck() {\r\n if (this.type === 'filter') {\r\n return (\r\n (this.check === 'success' && this.label === 'success') ||\r\n (this.check === 'failed' && this.label === 'failed') ||\r\n (this.check === 'update' && this.label === 'update')\r\n )\r\n } else {\r\n return this.normalCheck\r\n }\r\n },\r\n },\r\n}\r\n</script>\r\n \r\n<style lang=\"scss\" scoped>\r\n.container {\r\n display: block;\r\n position: relative;\r\n margin-top: 6px;\r\n padding-left: 32px;\r\n cursor: pointer;\r\n font-size: 16px;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n pointer-events: none;\r\n}\r\n\r\n.container input {\r\n position: absolute;\r\n opacity: 0;\r\n cursor: pointer;\r\n height: 0;\r\n width: 0;\r\n}\r\n\r\n.checkmark {\r\n position: absolute;\r\n top: 2px;\r\n left: 0;\r\n height: 20px;\r\n width: 20px;\r\n background-color: #eee;\r\n}\r\n\r\n.container:hover input ~ .checkmark {\r\n background-color: #ccc;\r\n}\r\n\r\n.container input:checked ~ .checkmark {\r\n background-color: #ff9800;\r\n}\r\n\r\n.checkmark:after {\r\n content: '';\r\n position: absolute;\r\n display: none;\r\n}\r\n\r\n.container input:checked ~ .checkmark:after {\r\n display: block;\r\n}\r\n\r\n.container .checkmark:after {\r\n left: 8px;\r\n top: 5px;\r\n width: 5px;\r\n height: 8px;\r\n border: solid white;\r\n border-width: 0 2px 2px 0;\r\n -webkit-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n}\r\n</style>\r\n\r\n \r\n ","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=08d92896&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=08d92896&lang=scss&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 \"08d92896\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <div class=\"cash-card-log-wrapper\">\r\n <div class=\"wrap-table\">\r\n <a-table\r\n row-key=\"RowKey\"\r\n :columns=\"columnTable\"\r\n :data-source=\"dataActivityLog\"\r\n :pagination=\"{\r\n pageSize: defaultPageSize,\r\n defaultCurrent: 1,\r\n total: totalSerial,\r\n hideOnSinglePage: false,\r\n onChange: onChangePage,\r\n }\"\r\n >\r\n <template slot=\"date\" slot-scope=\"text\">\r\n {{ dateShortFormatUTC(text) }}\r\n </template>\r\n <template slot=\"status\" slot-scope=\"text\">\r\n <a-tag v-if=\"text\" color=\"green\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"check-circle\" class=\"mr-1\" />\r\n {{ lbl['success'] }}\r\n </span>\r\n </a-tag>\r\n <a-tag v-else color=\"red\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"close-circle\" class=\"mr-1\" />\r\n {{ lbl['fail'] }}\r\n </span>\r\n </a-tag>\r\n </template>\r\n <template slot=\"action\" slot-scope=\"text, record\">\r\n <a @click=\"openDetail(record)\" class=\"view-action\">\r\n {{ lbl['view_title'] }}\r\n </a>\r\n </template>\r\n </a-table>\r\n </div>\r\n </div>\r\n\r\n <!-- Modal Detail -->\r\n <a-modal\r\n v-model=\"visibleDetail\"\r\n id=\"modal-detail-log\"\r\n width=\"80%\"\r\n :title=\"lbl['import_log_detail_title']\"\r\n :footer=\"null\"\r\n centered\r\n class=\"modal-Detail\"\r\n :class=\"[currentLocale]\"\r\n >\r\n <div class=\"filterContainer nopad mb-2\">\r\n <div :class=\"['filterMain', showFilterMain ? 'active' : '']\">\r\n <div class=\"filter\" @click=\"toggle('showFilterMain')\">\r\n {{ lbl['user-permissions-filter'] }}\r\n <img\r\n :src=\"require('@/assets/images/filter_list.png')\"\r\n alt=\"filter_list\"\r\n />\r\n </div>\r\n <div class=\"spaceHover\"></div>\r\n <div class=\"filterDropdown\">\r\n <div class=\"filterLeft\">\r\n <div\r\n :class=\"['filterList', item === subFilter ? 'active' : '']\"\r\n v-for=\"item in Object.keys(filter)\"\r\n @click=\"changeSubFilter(item)\"\r\n :key=\"item\"\r\n >\r\n {{ lbl[filter[item].label] }}\r\n <img\r\n :src=\"require('@/assets/images/navigate_next.png')\"\r\n alt=\"navigate_next\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"filterRight\">\r\n <div v-for=\"item in filter[subFilter].input\" :key=\"item\">\r\n <div class=\"filterList\" @click=\"selectFilter(item)\">\r\n <CheckBox\r\n :label=\"item\"\r\n :valuee=\"item\"\r\n :check=\"filter[subFilter].value\"\r\n type=\"filter\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btnFilter\">\r\n <div @click=\"resetFilter()\">\r\n {{ lbl['user-permissions-reset'] }}\r\n </div>\r\n <button @click=\"getLogPointDetail()\">\r\n {{ lbl['user-permissions-ok'] }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"filterItem\"\r\n v-for=\"(item, index) in Object.keys(allFilter)\"\r\n :key=\"'filter' + index\"\r\n >\r\n {{ allFilter[item] }}\r\n <img\r\n @click=\"removeFilter(item)\"\r\n :src=\"require('@/assets/images/close.png')\"\r\n alt=\"close\"\r\n />\r\n </div>\r\n </div>\r\n <a-table\r\n row-key=\"RowKey\"\r\n :columns=\"columnsDetail\"\r\n :data-source=\"dataDetail\"\r\n :pagination=\"{\r\n pageSize: defaultPageSizeDetail,\r\n defaultCurrent: 1,\r\n total: totalDetail,\r\n hideOnSinglePage: false,\r\n onChange: onChangePageDetail,\r\n }\"\r\n >\r\n <template slot=\"status\" slot-scope=\"text\">\r\n <a-tag v-if=\"text\" color=\"green\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"check-circle\" class=\"mr-1\" />\r\n {{ lbl['import-log-import-success'] }}\r\n </span>\r\n </a-tag>\r\n <a-tag v-else color=\"red\">\r\n <span class=\"d-flex align-center\">\r\n <a-icon type=\"close-circle\" class=\"mr-1\" />\r\n {{ lbl['import-failed'] }}\r\n </span>\r\n </a-tag>\r\n </template>\r\n <template slot=\"remark\" slot-scope=\"text, scope\">\r\n <div v-if=\"scope.Success\">\r\n <span>\r\n {{ text ? text : '' }}\r\n </span>\r\n </div>\r\n <div v-else>\r\n <div v-if=\"scope.Error\">\r\n <span>\r\n {{ scope.Error }}\r\n </span>\r\n </div>\r\n <div v-else>\r\n <span\r\n v-if=\"\r\n text == 'UserId is not found' || text == 'User is not found'\r\n \"\r\n >\r\n {{ lbl['user-is-not-found'] }}\r\n </span>\r\n <span v-else>\r\n {{ text ? text : '' }}\r\n </span>\r\n </div>\r\n </div>\r\n </template>\r\n </a-table>\r\n <div class=\"export-file-container\">\r\n <a-button\r\n v-if=\"showExportSuccess\"\r\n class=\"btn-success\"\r\n @click=\"getLogPointDetailExport('success')\"\r\n >\r\n {{ lbl['download-success-user'] }}\r\n </a-button>\r\n <a-button\r\n v-if=\"showExportFail\"\r\n class=\"btn-fail\"\r\n @click=\"getLogPointDetailExport('fail')\"\r\n >\r\n {{ lbl['download-fail-user'] }}\r\n </a-button>\r\n </div>\r\n </a-modal>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Mixin from '@/mixin/Mixin'\r\nimport BzbsCashcard from '@/core/Cashcard/BzbsCashcard.js'\r\nimport XLSX from 'xlsx'\r\nimport _ from 'lodash'\r\nimport Locale from '@/helper/locale.js'\r\nimport moment from 'moment'\r\nimport Account from '@/helper/AccountHelper.js'\r\nimport CheckBox from '@/module/CashCard/components/CheckBox.vue'\r\n\r\nconst columnTable = [\r\n {\r\n title: 'Status',\r\n dataIndex: 'Success',\r\n key: 'cash_card_colunm_status',\r\n width: '100px',\r\n align: 'center',\r\n scopedSlots: { customRender: 'status' },\r\n },\r\n {\r\n title: 'File Name',\r\n dataIndex: 'FileName',\r\n key: 'import-log-file-name',\r\n align: 'left',\r\n },\r\n {\r\n title: 'Import date',\r\n dataIndex: 'SuccessDate',\r\n key: 'import-log-import-date',\r\n width: '150px',\r\n align: 'center',\r\n scopedSlots: {\r\n customRender: 'date',\r\n },\r\n },\r\n {\r\n title: 'Imported',\r\n key: 'imported',\r\n width: '130px',\r\n align: 'left',\r\n dataIndex: 'TotalCount',\r\n },\r\n {\r\n title: 'Success',\r\n key: 'import-log-import-success',\r\n align: 'left',\r\n dataIndex: 'SuccessCount',\r\n },\r\n {\r\n title: 'Fail',\r\n key: 'import-log-import-fail',\r\n width: '130px',\r\n align: 'left',\r\n dataIndex: 'FailCount',\r\n },\r\n {\r\n title: '',\r\n width: '130px',\r\n align: 'center',\r\n scopedSlots: {\r\n customRender: 'action',\r\n },\r\n },\r\n]\r\n\r\nconst columnsDetail = [\r\n {\r\n title: 'Import status',\r\n dataIndex: 'Success',\r\n key: 'import-log-status-header',\r\n align: 'center',\r\n scopedSlots: {\r\n customRender: 'status',\r\n },\r\n },\r\n {\r\n title: 'Card Status',\r\n dataIndex: 'CardStatus',\r\n key: 'import_log_detail_column_card_status',\r\n align: 'left',\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Card Type',\r\n dataIndex: 'CardType',\r\n key: 'import_log_detail_column_card_type',\r\n align: 'left',\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Design Id',\r\n dataIndex: 'DesignId',\r\n key: 'import_log_detail_column_design_id',\r\n align: 'left',\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'Card Number',\r\n dataIndex: 'CardNumber',\r\n key: 'import_log_detail_column_card_number',\r\n align: 'left',\r\n width: 180,\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n {\r\n title: 'PIN Code',\r\n dataIndex: 'PinCode',\r\n key: 'import_log_detail_column_pin_code',\r\n align: 'left',\r\n scopedSlots: { customRender: 'isdata' },\r\n },\r\n]\r\nexport default {\r\n name: 'CashCardLog',\r\n mixins: [Mixin],\r\n components: { CheckBox },\r\n data: function () {\r\n return {\r\n columnTable,\r\n columnsDetail,\r\n dataActivityLog: [],\r\n dataActivityDetails: [],\r\n pageSizeSerial: 30,\r\n currentSerial: 1,\r\n partionkey: '',\r\n filename: '',\r\n totalSerial: null,\r\n visibleDetail: false,\r\n currentDetail: 1,\r\n totalDetail: null,\r\n pageSizeDetail: 30,\r\n dataDetail: [],\r\n dataDetailExport: [],\r\n showExportSuccess: false,\r\n showExportFail: false,\r\n defaultPageSize: 20,\r\n defaultPageSizeDetail: 20,\r\n currentSerialSkip: 0,\r\n currentSerialSkipDetail: 0,\r\n currentLocale: Locale.getLocaleShort(),\r\n subFilter: 'status',\r\n showFilterMain: false,\r\n filter: {\r\n status: {\r\n value: null,\r\n input: ['success', 'failed'],\r\n label: 'import-log-status-header',\r\n type: 'checkbox',\r\n },\r\n },\r\n allFilter: {},\r\n }\r\n },\r\n created() {\r\n this.getLogPoint()\r\n this.setLocale()\r\n },\r\n methods: {\r\n setLocale() {\r\n _.forEach(this.columnTable, column => {\r\n column.title = this.lbl[column.key]\r\n })\r\n _.forEach(this.columnsDetail, column => {\r\n column.title = this.lbl[column.key]\r\n })\r\n },\r\n getLogPoint() {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsCashcard.ImportLog(this.defaultPageSize, this.currentSerialSkip)\r\n .then(res => {\r\n console.log('getLogPoint res :: ', res)\r\n this.handleLoading(false)\r\n this.totalSerial = res.data.Count\r\n this.dataActivityLog = res.data.Result\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n console.log('apiGetAppCategoryList error', error)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n onChangePage(page) {\r\n console.log('page :: ', page)\r\n this.currentSerial = page\r\n this.currentSerialSkip = (page - 1) * this.defaultPageSize\r\n this.getLogPoint()\r\n },\r\n openDetail(record) {\r\n this.partionkey = record.PartitionKey + '|' + record.RowKey\r\n this.filter.status.value = ''\r\n this.filename = record.filename\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_log',\r\n `click_view_detail_${this.partionkey}`,\r\n 'on click',\r\n )\r\n this.getLogPointDetail()\r\n this.$nextTick(() => {\r\n this.visibleDetail = true\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_log',\r\n `view_detail_${this.partionkey}`,\r\n 'on view',\r\n )\r\n })\r\n },\r\n getLogPointDetail() {\r\n this.handleLoading(true)\r\n this.showFilterMain = false\r\n let active = null\r\n if (this.filter.status.value === 'success') active = true\r\n if (this.filter.status.value === 'failed') active = false\r\n this.allFilter = Object.keys(this.filter).reduce((acc, cur) => {\r\n if (!this.filter[cur].value) return acc\r\n return (acc = { ...acc, [cur]: this.filter[cur].value })\r\n }, {})\r\n let top = false\r\n if (active == true || active == false) {\r\n top = true\r\n this.currentSerialSkipDetail = 0\r\n }\r\n\r\n return new Promise(resolve => {\r\n BzbsCashcard.ImportLogDetial(\r\n this.partionkey,\r\n top ? 0 : this.defaultPageSizeDetail,\r\n this.currentSerialSkipDetail,\r\n )\r\n .then(res => {\r\n this.showExportSuccess = false\r\n this.showExportFail = false\r\n this.handleLoading(false)\r\n this.totalDetail = res.data.Count\r\n if (res.data.Result.length)\r\n this.partionKey = res.data.Result[0].PartitionKey\r\n if (active != null) {\r\n this.dataDetail = _.filter(res.data.Result, item => {\r\n if (item.Success == active) return item\r\n })\r\n this.totalDetail = this.dataDetail.length\r\n this.dataDetail.find(ele => {\r\n if (ele.Success) {\r\n this.showExportSuccess = true\r\n }\r\n if (!ele.Success) {\r\n this.showExportFail = true\r\n }\r\n })\r\n } else {\r\n this.dataDetail = res.data.Result\r\n this.dataDetail.find(ele => {\r\n if (!ele.Message) {\r\n this.showExportSuccess = true\r\n }\r\n if (ele.Message) {\r\n this.showExportFail = true\r\n }\r\n })\r\n }\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n console.log('apiGetAppCategoryList error', error)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n onChangePageDetail(page) {\r\n this.currentDetail = page\r\n if (\r\n this.filter.status.value != 'success' ||\r\n this.filter.status.value != 'failed'\r\n ) {\r\n this.currentSerialSkipDetail = (page - 1) * this.defaultPageSizeDetail\r\n this.getLogPointDetail()\r\n }\r\n },\r\n onlyNumber($event) {\r\n const regex = /^[0-9]\\d*$/\r\n var match = $event.key.match(regex)\r\n\r\n if (match == null) {\r\n $event.preventDefault()\r\n }\r\n },\r\n getLogPointDetailExport(type) {\r\n this.handleLoading(true)\r\n this.dataDetailExport = []\r\n return new Promise(resolve => {\r\n BzbsCashcard.ImportLogDetial(this.partionKey, 0, 0)\r\n .then(res => {\r\n this.dataDetailExport = res.data.Result\r\n this.exportFile(type)\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n console.log('apiGetAppCategoryList error', error)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n exportFile(type) {\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card_log',\r\n `export_detail_${type}_log`,\r\n 'on click',\r\n )\r\n var resultData\r\n if (type == 'success') {\r\n resultData = this.dataDetailExport.filter(item => item.Success)\r\n } else if (type == 'fail') {\r\n resultData = this.dataDetailExport.filter(item => !item.Success)\r\n }\r\n\r\n let data = _.map(resultData, item => {\r\n var card_status = this.lbl['import_log_detail_column_card_status']\r\n var card_type = this.lbl['import_log_detail_column_card_type']\r\n var card_design_id = this.lbl['import_log_detail_column_design_id']\r\n var card_number = this.lbl['import_log_detail_column_card_number']\r\n var pin_code = this.lbl['import_log_detail_column_pin_code']\r\n var message = this.lbl['import_log_detail_column_message']\r\n var remark = this.lbl['remark']\r\n return {\r\n [card_status]: item.CardStatus ? item.CardStatus : '',\r\n [card_type]: item.CardType ? item.CardType : '',\r\n [card_design_id]: item.DesignId ? item.DesignId : '',\r\n [card_number]: item.CardNumber ? item.CardNumber : '',\r\n [pin_code]: item.PinCode ? item.PinCode : '',\r\n [message]: item.Message ? item.Message : '',\r\n [remark]: item.Remark ? item.Remark : '',\r\n }\r\n })\r\n\r\n var dataWS = XLSX.utils.json_to_sheet(data, { dense: true })\r\n var wscols = [\r\n { wch: 15 },\r\n { wch: 15 },\r\n { wch: 15 },\r\n { wch: 15 },\r\n { wch: 15 },\r\n { wch: 15 },\r\n { wch: 15 },\r\n ]\r\n dataWS['!cols'] = wscols\r\n const wb = XLSX.utils.book_new()\r\n XLSX.utils.book_append_sheet(wb, dataWS)\r\n XLSX.writeFile(\r\n wb,\r\n 'CRMPlus_import_cash_card_' +\r\n moment(new Date()).format('YYYY-MM-DD') +\r\n '.xlsx',\r\n )\r\n\r\n this.handleLoading(false)\r\n },\r\n toggle(data) {\r\n this[data] = !this[data]\r\n },\r\n changeSubFilter(type) {\r\n this.subFilter = type\r\n },\r\n selectFilter(item) {\r\n if (\r\n (this.filter[this.subFilter].value === 'success' &&\r\n item === 'success') ||\r\n (this.filter[this.subFilter].value === 'failed' && item === 'failed')\r\n ) {\r\n this.filter[this.subFilter].value = null\r\n } else {\r\n this.filter[this.subFilter].value = item\r\n }\r\n },\r\n resetFilter() {\r\n this.filter.status.value = ''\r\n this.getLogPointDetail()\r\n },\r\n removeFilter(type) {\r\n Object.keys(this.filter).forEach(item => {\r\n if (type === item) this.filter[item].value = ''\r\n })\r\n this.getLogPointDetail()\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '@/module/ImportBatchPoint/AdjustPoint.scss';\r\n</style>\r\n\r\n<style lang=\"scss\" scoped>\r\n.cash-card-log-wrapper {\r\n padding: 24px;\r\n\r\n .view-action {\r\n cursor: pointer;\r\n font-size: 16px;\r\n font-weight: 700;\r\n line-height: 24px;\r\n text-align: center;\r\n color: #f9a601;\r\n }\r\n}\r\n#modal-detail-log {\r\n .export-file-container {\r\n display: flex;\r\n gap: 16px;\r\n justify-content: flex-end;\r\n margin-top: 24px;\r\n .btn-fail,\r\n .btn-success {\r\n padding: 0px 15px;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n font-weight: 500;\r\n cursor: pointer;\r\n margin-bottom: 10px;\r\n height: 40px;\r\n align-items: center;\r\n\r\n img {\r\n height: 24px;\r\n width: 24px;\r\n }\r\n }\r\n\r\n .btn-success {\r\n border: solid 1px #4caf50;\r\n background-color: #ffffff;\r\n color: #4caf50;\r\n &:hover {\r\n border: solid 1px #4caf50;\r\n background-color: #e7ffe8;\r\n }\r\n }\r\n .btn-fail {\r\n border: solid 1px #ff4d4f;\r\n background-color: #ffffff;\r\n color: #ff4d4f;\r\n &:hover {\r\n border: solid 1px #ff4d4f;\r\n background-color: #ffeeee;\r\n }\r\n }\r\n }\r\n .filterContainer {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 16px;\r\n .btn-permission {\r\n width: 157px;\r\n height: 32px;\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 6px;\r\n border: solid 1px #f9a601;\r\n background-color: #fff;\r\n color: #f9a601;\r\n font-size: 16px;\r\n }\r\n }\r\n .filter,\r\n .filterItem {\r\n height: 40px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 8px 16px;\r\n border-radius: 4px;\r\n border: solid 1px #e0e0e0;\r\n cursor: pointer;\r\n color: #616161;\r\n font-size: 16px;\r\n font-weight: 500;\r\n img {\r\n margin-left: 8px;\r\n }\r\n }\r\n .filterMain {\r\n position: relative;\r\n &.active {\r\n .filterDropdown {\r\n display: flex;\r\n }\r\n }\r\n }\r\n .filterDropdown {\r\n z-index: 3;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 5px;\r\n top: 52px;\r\n position: absolute;\r\n background-color: #fff;\r\n display: none;\r\n padding: 0 0 64px 0;\r\n font-size: 16px;\r\n color: #212529;\r\n .filterLeft {\r\n width: 250px;\r\n border-right: 1px solid #e0e0e0;\r\n @media only screen and (max-width: 460px) {\r\n width: auto;\r\n }\r\n }\r\n .filterRight {\r\n width: 250px;\r\n @media only screen and (max-width: 460px) {\r\n width: auto;\r\n }\r\n &:hover {\r\n display: block;\r\n }\r\n .filterList {\r\n justify-content: flex-start;\r\n input {\r\n cursor: pointer;\r\n }\r\n &.input {\r\n input {\r\n border: 1px solid #e0e0e0;\r\n border-radius: 5px;\r\n padding: 5px;\r\n cursor: auto;\r\n &:focus {\r\n outline: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .filterList {\r\n height: 42px;\r\n width: 100%;\r\n padding: 0 24px;\r\n border-bottom: 1px solid #e0e0e0;\r\n font-weight: 500;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n cursor: pointer;\r\n &.active {\r\n background-color: #fff3e0;\r\n }\r\n &:hover {\r\n background-color: #fff3e0;\r\n }\r\n text-align: left;\r\n }\r\n }\r\n .btnFilter {\r\n width: 100%;\r\n position: absolute;\r\n bottom: 14px;\r\n display: flex;\r\n justify-content: space-around;\r\n align-items: center;\r\n font-size: 16px;\r\n font-weight: 500;\r\n color: blue;\r\n div {\r\n cursor: pointer;\r\n }\r\n button {\r\n align-items: center;\r\n padding: 6px 18px;\r\n border-radius: 4px;\r\n background-color: #ff9800;\r\n color: #fff;\r\n border: none;\r\n }\r\n }\r\n .roleContainer {\r\n display: flex;\r\n justify-content: space-between;\r\n flex-wrap: wrap;\r\n gap: 24px;\r\n margin: 24px 0 0 0;\r\n .roleItem {\r\n width: 410px;\r\n @media only screen and (max-width: 550px) {\r\n width: 100%;\r\n }\r\n flex-grow: 1;\r\n .roleHeader {\r\n // min-height: 120px;\r\n border: 1px solid #e0e0e0;\r\n border-bottom: none;\r\n border-radius: 5px 5px 0 0;\r\n padding: 16px;\r\n .headerTab {\r\n display: flex;\r\n justify-content: space-between;\r\n button {\r\n width: 56px;\r\n height: 35px;\r\n border: 1px solid #e0e0e0;\r\n background-color: #fff;\r\n border-radius: 5px;\r\n }\r\n }\r\n .textTitle {\r\n font-size: 20px;\r\n }\r\n .chip {\r\n margin: 0 0 0 8px;\r\n }\r\n .roleSubHeader {\r\n margin-top: 16px;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n padding-right: 62px;\r\n position: relative;\r\n margin-bottom: 0;\r\n min-height: 44px;\r\n &.showmore {\r\n -webkit-line-clamp: unset;\r\n }\r\n span {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n color: #2196f3;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n .roleBody {\r\n height: 449px;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 0 0 5px 5px;\r\n background-color: #fafafa;\r\n .sortByContainer {\r\n height: 56px;\r\n padding: 16px;\r\n color: #bdbdbd;\r\n font-weight: 500;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n border-bottom: 1px solid #e0e0e0;\r\n .sortFilter {\r\n &:hover {\r\n .sortDropdown {\r\n display: block;\r\n color: black;\r\n }\r\n }\r\n cursor: pointer;\r\n position: relative;\r\n .sortDropdown {\r\n display: none;\r\n border-radius: 5px;\r\n border: 1px solid #e0e0e0;\r\n width: 124px;\r\n position: absolute;\r\n right: 0;\r\n background-color: white;\r\n div:first-child {\r\n border-bottom: 1px solid #e0e0e0;\r\n }\r\n div {\r\n text-align: center;\r\n padding: 6px;\r\n cursor: pointer;\r\n &:hover {\r\n background-color: #fff3e0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .userListContainer {\r\n overflow-y: scroll;\r\n height: calc(100% - 56px);\r\n /* width */\r\n &::-webkit-scrollbar {\r\n width: 5px;\r\n height: 5px;\r\n }\r\n\r\n /* Track */\r\n &::-webkit-scrollbar-track {\r\n background: #f1f1f1;\r\n }\r\n\r\n /* Handle */\r\n &::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 10px;\r\n }\r\n\r\n /* Handle on hover */\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n }\r\n\r\n .userList {\r\n display: flex;\r\n // justify-content: space-between;\r\n align-items: center;\r\n background-color: white;\r\n gap: 22px;\r\n padding: 16px;\r\n border-bottom: 1px solid #e0e0e0;\r\n @media only screen and (max-width: 460px) {\r\n padding: 16px 4px;\r\n flex-wrap: wrap;\r\n gap: 22px;\r\n justify-content: center;\r\n }\r\n .userStatus {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 64px;\r\n height: 32px;\r\n font-weight: 500;\r\n border-radius: 24px;\r\n &.active {\r\n color: #4caf50;\r\n background-color: #4caf5033;\r\n }\r\n &.inactive {\r\n color: #ff5252;\r\n background-color: #ff525233;\r\n }\r\n }\r\n .detail {\r\n text-align: left;\r\n margin-right: auto;\r\n margin-left: auto;\r\n @media only screen and (max-width: 460px) {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n .userEmail {\r\n color: #bdbdbd;\r\n white-space: nowrap;\r\n width: 145px;\r\n margin: 0 auto;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n .userName {\r\n font-size: 16px;\r\n font-weight: 600;\r\n margin: 5px auto 0 auto;\r\n color: #616161;\r\n white-space: nowrap;\r\n width: 145px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n }\r\n .action {\r\n margin-left: auto;\r\n display: flex;\r\n gap: 8px;\r\n @media only screen and (max-width: 460px) {\r\n margin-left: 0;\r\n }\r\n > * {\r\n width: 56px;\r\n height: 35px;\r\n color: #2196f3;\r\n font-size: 16px;\r\n font-weight: 500;\r\n text-decoration: underline;\r\n border-radius: 5px;\r\n border: 1px solid #e0e0e0;\r\n background-color: white;\r\n }\r\n .copy {\r\n border-color: #1e88e51a;\r\n }\r\n .edit {\r\n border-color: #bdbdbd;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Log.vue?vue&type=template&id=39178ccf&scoped=true&\"\nimport script from \"./Log.vue?vue&type=script&lang=js&\"\nexport * from \"./Log.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Log.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./Log.vue?vue&type=style&index=1&id=39178ccf&lang=scss&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 \"39178ccf\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"container-fluid\">\r\n <Header></Header>\r\n <div\r\n class=\"mx-auto mt-1 content-outer-container adjust-point\"\r\n :class=\"{ 'content-dashboard': $store.state.isDashboard }\"\r\n >\r\n <div class=\"mx-auto\">\r\n <div class=\"wrapper-ifrem custom-wrapper-ifrem\">\r\n <div class=\"row paj-custom-row\">\r\n <div\r\n class=\"\r\n col-xl-12 col-lg-12 col-md-12\r\n pb-4\r\n wrapper-dashboard\r\n custom-wrapper-dashboard\r\n \"\r\n >\r\n <div\r\n class=\"\r\n card-custom card-stretch\r\n gutter-b\r\n panel panel-default\r\n title-wrapper\r\n \"\r\n >\r\n <div class=\"text-title-point-adjustment\">\r\n {{ lbl['import-tab-label'] }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-xl-12 col-lg-12 col-md-12 wrapper-point-adjustment\">\r\n <div class=\"page-title\">\r\n <img\r\n src=\"@/assets/images/credit_card.svg\"\r\n alt=\"credit_card icon\"\r\n />\r\n {{ lbl['cash_card_page_title'] }}\r\n </div>\r\n <div class=\"d-flex wrapper-select-header\">\r\n <div\r\n class=\"select-header\"\r\n :class=\"{ active: tabHeader === 'List' }\"\r\n @click=\"changeTab('List')\"\r\n >\r\n {{ lbl['cash_card_menu_card_list_title'] }}\r\n </div>\r\n <div\r\n class=\"select-header select-hd-right\"\r\n :class=\"{ active: tabHeader === 'Design' }\"\r\n @click=\"changeTab('Design')\"\r\n >\r\n {{ lbl['cash_card_menu_card_design_title'] }}\r\n </div>\r\n <div\r\n class=\"select-header select-hd-right\"\r\n :class=\"{ active: tabHeader === 'Import' }\"\r\n @click=\"changeTab('Import')\"\r\n >\r\n {{ lbl['cash_card_menu_card_import_serial_title'] }}\r\n </div>\r\n <div\r\n class=\"select-header select-hd-right\"\r\n :class=\"{ active: tabHeader === 'Log' }\"\r\n @click=\"changeTab('Log')\"\r\n >\r\n {{ lbl['cash_card_menu_import_log_title'] }}\r\n </div>\r\n </div>\r\n <div class=\"wrapper-content\">\r\n <List v-if=\"tabHeader === 'List'\" />\r\n <Design v-if=\"tabHeader === 'Design'\" />\r\n <Import v-if=\"tabHeader === 'Import'\" />\r\n <Log v-if=\"tabHeader === 'Log'\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <AlertModal\r\n :isOpenModal=\"alertModalSetting.isOpenModal\"\r\n :modalType=\"alertModalSetting.modalType\"\r\n :title=\"alertModalSetting.title\"\r\n :details=\"alertModalSetting.details\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Account from '@/helper/AccountHelper.js'\r\nimport Mixin from '@/mixin/Mixin'\r\nimport AlertModal from '@/components/Modal/Component/alertmodal2'\r\nimport BzbsProfile from '@/core/Account/service/BzbsProfile'\r\nimport Header from '@/components/Layout/Header'\r\nimport List from '@/module/CashCard/components/List'\r\nimport Import from '@/module/CashCard/components/Import'\r\nimport Design from '@/module/CashCard/components/Design'\r\nimport Log from '@/module/CashCard/components/Log'\r\n\r\nexport default {\r\n name: 'AdjustPoint',\r\n mixins: [Mixin],\r\n components: {\r\n Header,\r\n AlertModal,\r\n List,\r\n Design,\r\n Log,\r\n Import,\r\n },\r\n data: function () {\r\n return {\r\n tabHeader: 'List',\r\n confirmModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n backto: '',\r\n onConfirm: null,\r\n onCancel: null,\r\n isOpenModal: false,\r\n },\r\n alertModalSetting: {\r\n title: '',\r\n detail: '',\r\n modalType: '',\r\n isOpenModal: false,\r\n },\r\n }\r\n },\r\n watch: {\r\n currentParams(newVal, oldVal) {\r\n if (newVal !== oldVal) {\r\n this.tabHeader = newVal\r\n }\r\n },\r\n $route: {\r\n handler(newUrl) {\r\n const params = newUrl.params.action\r\n if (params) {\r\n this.tabHeader = params\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n created() {\r\n this.handleLoading(false)\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card',\r\n 'view_cash_card',\r\n 'on view',\r\n )\r\n this.handleFooter(true)\r\n if (this.$router.currentRoute.name == 'CashCardImport')\r\n this.handleLoading(false)\r\n this.getCRMPlusProfile()\r\n },\r\n methods: {\r\n getCRMPlusProfile() {\r\n this.handleLoading(true)\r\n return new Promise(resolve => {\r\n BzbsProfile.getCRMPlusProfile()\r\n .then(res => {\r\n this.handleLoading(false)\r\n resolve(res.data)\r\n })\r\n .catch(error => {\r\n this.handleLoading(false)\r\n console.log('apiGetAppCategoryList error', error)\r\n resolve(error)\r\n })\r\n })\r\n },\r\n changeTab(active) {\r\n this.tabHeader = active\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card',\r\n `view_${active}_cash_card`,\r\n 'on view',\r\n )\r\n Account.bzbsAnalyticTracking(\r\n 'cash_card_page',\r\n 'cash_card',\r\n `click_${active}_cash_card`,\r\n 'on click',\r\n )\r\n this.$router.replace({\r\n name: 'CashCard',\r\n params: { action: active },\r\n })\r\n },\r\n confirmModalAction(\r\n title,\r\n details,\r\n modalType,\r\n backto,\r\n isOpenModal,\r\n onConfirm,\r\n onCancel,\r\n ) {\r\n this.confirmModalSetting.title = title\r\n this.confirmModalSetting.details = details\r\n this.confirmModalSetting.modalType = modalType\r\n this.confirmModalSetting.isOpenModal = isOpenModal\r\n this.confirmModalSetting.backto = backto\r\n this.confirmModalSetting.onConfirm = onConfirm\r\n this.confirmModalSetting.onCancel = onCancel\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '../ImportBatchPoint/AdjustPoint.scss';\r\n</style>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../ImportBatchPoint/AdjustPointScoped.scss';\r\n\r\n.disable-btn {\r\n opacity: 0.5;\r\n}\r\n.title-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n}\r\n.wrapper-select-header {\r\n border-bottom: 2px solid #f5f5f5 !important;\r\n border-top: 0.5px solid #f5f5f5 !important;\r\n}\r\n.select-header {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n line-height: 1.25;\r\n font-size: 16px;\r\n padding: 11px 0;\r\n color: #ff9800 !important;\r\n cursor: pointer;\r\n height: 100%;\r\n &.active {\r\n color: #ff9800;\r\n font-weight: bold !important;\r\n border-bottom: 4px solid #ff9800;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CashCard.vue?vue&type=template&id=61a9d3be&scoped=true&\"\nimport script from \"./CashCard.vue?vue&type=script&lang=js&\"\nexport * from \"./CashCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CashCard.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./CashCard.vue?vue&type=style&index=1&id=61a9d3be&lang=scss&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 \"61a9d3be\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=style&index=0&lang=scss&\"","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n"],"sourceRoot":""}