{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/i18n/locales/vi.js","webpack:///./src/i18n/locales/zh.js","webpack:///./src/i18n/index.js","webpack:///./src/App.vue","webpack:///./src/components/AppDrawer.vue","webpack:///./src/api/menu.js","webpack:///src/components/AppDrawer.vue","webpack:///./src/components/AppDrawer.vue?da4d","webpack:///./src/components/AppDrawer.vue?2fa8","webpack:///./src/components/AppToolbar.vue","webpack:///./src/util/index.js","webpack:///./src/components/general/LanguageSelector.vue","webpack:///src/components/general/LanguageSelector.vue","webpack:///./src/components/general/LanguageSelector.vue?b985","webpack:///./src/components/general/LanguageSelector.vue?94ec","webpack:///src/components/AppToolbar.vue","webpack:///./src/components/AppToolbar.vue?bfe8","webpack:///./src/components/AppToolbar.vue?c4af","webpack:///./src/components/AppFab.vue","webpack:///src/components/AppFab.vue","webpack:///./src/components/AppFab.vue?aef5","webpack:///./src/components/AppFab.vue?e96d","webpack:///./src/components/PageHeader.vue","webpack:///./src/router/paths.js","webpack:///src/components/PageHeader.vue","webpack:///./src/components/PageHeader.vue?fc75","webpack:///./src/components/PageHeader.vue?2cfc","webpack:///./src/event.js","webpack:///src/App.vue","webpack:///./src/App.vue?a155","webpack:///./src/App.vue?f08e","webpack:///./src/router/index.js","webpack:///./src/store/modules/customer.js","webpack:///./src/api/user.js","webpack:///./src/store/modules/authentication.js","webpack:///./src/store/modules/tracking.js","webpack:///./src/store/modules/bigPackage.js","webpack:///./src/store/modules/bigPackageVN.js","webpack:///./src/store/modules/configuration.js","webpack:///./src/store/modules/staff.js","webpack:///./src/api/payOrder.js","webpack:///./src/store/modules/payOrder.js","webpack:///./src/api/paymentHistory.js","webpack:///./src/store/modules/paymentHistory.js","webpack:///./src/store/modules/rechargeHistory.js","webpack:///./src/store/modules/report.js","webpack:///./src/store/modules/commons.js","webpack:///./src/store/modules/crud.js","webpack:///./src/store/modules/order.js","webpack:///./src/store/modules/product.js","webpack:///./src/store/modules/bill.js","webpack:///./src/store/modules/dashboard.js","webpack:///./src/store/modules/storage.js","webpack:///./src/store/modules/productType.js","webpack:///./src/store/modules/feeWeight.js","webpack:///./src/store/modules/feeVolume.js","webpack:///./src/store/modules/costWeight.js","webpack:///./src/store/modules/orderProduct.js","webpack:///./src/store/modules/billProduct.js","webpack:///./src/store/modules/quote.js","webpack:///./src/store/modules/quote_packages.js","webpack:///./src/store/modules/auditLog.js","webpack:///./src/store/modules/customerDebt.js","webpack:///./src/store/index.js","webpack:///./src/components/icons/gem.vue","webpack:///./src/components/icons/gem.vue?02cd","webpack:///./src/components/icons/empty-gem.vue","webpack:///./src/components/icons/empty-gem.vue?d7f3","webpack:///./src/plugins/vuetify.js","webpack:///./src/components/general/CurrencyInput.vue","webpack:///src/components/general/CurrencyInput.vue","webpack:///./src/components/general/CurrencyInput.vue?aaa0","webpack:///./src/components/general/CurrencyInput.vue?9c50","webpack:///./src/components/dashboard/WidgetTemp.vue","webpack:///src/components/dashboard/WidgetTemp.vue","webpack:///./src/components/dashboard/WidgetTemp.vue?15a9","webpack:///./src/components/dashboard/WidgetTemp.vue?e4cf","webpack:///./src/main.js","webpack:///./src/components/general/LanguageSelector.vue?0bc7","webpack:///./src/components/AppDrawer.vue?1c3b","webpack:///./src/store/modules/storeManager.js","webpack:///./src/commons/utils.js","webpack:////Volumes/NVME/projects/nguonhangchina/admin/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/commons/formater.js","webpack:///./src/App.vue?069f","webpack:///./src/commons/hpod.js","webpack:///./src/commons/currency.js","webpack:///./src/configs/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","comparison","contain","does_not_contain","s_equal","s_does_not_equal","equal","does_not_equal","greater_than","greater_than_or_equal","less_than","less_than_or_equal","in","not_in","d_equal","d_does_not_equal","d_greater_than","d_greater_than_or_equal","d_less_than","d_less_than_or_equal","receive_type","cho_xep_xe","xep_xe","cho_thong_quan_tq","kiem_hoa","cho_thong_quan_vn","nhap_kho_vn","bill_status","chua_xuat","da_xuat","da_thanh_toan","price_type","tu_dong","theo_can","theo_khoi","product_status","nhap_kho_tq","xuat_thieu","xuat_du","order_status","cancel","quote_pending","deposit_pending","deposited","purchased","shop_shipped","cn_warehouse","vn_shipping","vn_warehouse","exported","complaint","completed","order_deposit_status","payment_pending","package_status","not_shipped","shipping","delivered","big_package","headers","package_code","big_export_id","status","store_exp_id","product_name","number_of_pack","total_small_pack","weight","volume","amount","phone_number","address","store_phone_number","ex_date","im_date","state","payment_status","created_by","note","action","profit_stats","staff","completed_orders","completed_links","total_order_amount","total_real_amount","total_diff","total_completed_order_amount","total_completed_real_amount","total_completed_diff","reward","dialog","product_detail_title","basic_info","fee_info","other_fees","product_specs","pricing_info","package_details","cost_tax_info","select_export_type","edit_quote_info","form","_form","email","phone","date","time","quantity","description","select_customer","select_storage","partner_name","select_quote","no_name","no_quote","select_customer_first","notice_save_product","hs_code","total_amount","created_date","product_name_cn","product_type","suffix_bill","transaction_deposit","pedicab_deposit","load_deposit","other_fee","exchange_rate","_defineProperty","customer","id","username","first_name","last_name","level","purchase_name","cs_name","sale_name","price_id","total_transaction","wallet","modified_date","modified_by","order","_headers","order_id","product_image","min_deposit","buyer","cs","sale","payment_history","active","active_true","active_false","customer_level","discount_fee_buy","discount_fee_weight","debt_report","deposit","order_amount","wallet_theory","debt_arrived","debt_not_arrived","debt_in","debt_out","total_debt","navigation","dashboard","orders","packages","customers","reports","settings","logout","wallet_history","trade_type","balance","content","order_title","deposit_title","list_bigpackages","routes","profile","order_detail","orders_late_delivery","orders_late_china_warehouse","orders_late_vn_warehouse","orders_late_customer","orders_late_purchase","customer_detail","transaction_history","deposit_detail","admin_deposit","withdrawal","payment_goods","payment_detail","tracking_code","consignment","consignment_detail","consignment_late_china","consignment_late_vn","consignment_late_customer","complaints","complaint_detail","china_warehouse","vn_warehouse_import","vn_warehouse_detail","shipment","warehouse_export","order_control","cash_flow_yuan","cash_flow_yuan_detail","cash_flow_vnd","cash_flow_vnd_detail","shop_refund","refund_detail","quotes","quote_detail","shipping_fee_original","weight_fee","weight_fee_detail","volume_fee","volume_fee_detail","checking_fee","checking_fee_detail","insurance_fee","insurance_fee_detail","buying_fee","buying_fee_detail","guarantee_fee","guarantee_fee_detail","reinforcement_fee","reinforcement_fee_detail","address_book","address_book_detail","china_stores","china_store_detail","configurations","configuration_detail","user_management","user_detail","notification_management","notification_detail","customer_level_detail","media","daily_report","monthly_report","customer_report","purchase_report","warehouse_report","partner","general_config","vip_customer","china_warehouse_config","vn_warehouse_config","shipping_price_list","hashtag","notification","profit_report","order_profit_stats","buying_fee_stats","shipping_fee_stats","currency_stats","finance","deposit_stats","revenue_report","truck_report","customer_debt_report","debt_report_detail","staff_commission_stats","shipment_report","china_warehouse_export","payment_service","china_warehouse_finance","china_warehouse_finance_detail","order_hashtag","delivery_request","delivery_request_detail","inventory_pending","lost_items","receiving_warehouse","accountant","price_table","payservice_report","business_report","product_inventory","truck","import_tq","waiting_for_truck","on_the_way","processing_tq","check","processing_vn","import_vn","no_owner","product_inventory_in_tq","product_inventory_in_vn","truck_detail","bill_detail","product_detail","audit_log","cost_weight","actions","save","delete","edit","add","search","filter","export","import","refresh","submit","confirm","close","view","update","print","print_label","edit_quote","export_file","add_package","add_fee","inactive","pending","cancelled","processing","messages","success","warning","info","confirm_delete","save_success","delete_success","update_success","no_data","notifications","export_selected_items","export_all_items","send_custom","validation","product_brand_required","errors","product_no_quote","cannot_load_quote_info","cannot_update_quote","save_failed","upload_failed","quote_updated","title","order_code","customer_name","order_date","shipping_fee","unit_price","create_order","order_details","tracking_number","sender","receiver","dimensions","shipping_cost","create_package","customer_code","full_name","email_address","registration_date","create_customer","language","vietnamese","chinese","select_language","accountant_cumulation","accountant_date","first_cumulation","income_amount","tuikuan","outcome_purchase","outcome_other","cumulation","total","table_headers","_table_headers","total_fee_weight","import_tax_amount","vat_tax_amount","total_cost_weight","total_profit","receive_date","deliver_date","store_id","order_codes","bill_codes","is_split_tax","is_ready","total_deposit","debt","sale_staff","role","quote_id","product_info","customs_content","customs_price_note","customs_unit","product_number","customs_price_vnd","import_tax","vat_tax","service_fee","is_quoted","product_name_vn","bill_code","bill_id","total_cost_yuan","cost_yuan","shipping_fee_yuan","cn_warehouse_date","package_date","vn_warehouse_date","export_date","remaining_pack","storage_name","storage_cn","storage_vn","available","product_type_name","fee_from_kg","fee_to_kg","fee_from_m3","fee_to_m3","price_kg","price_m3","shipping_fee_label","payment_date","recharge_amount","trade_content","truck_code","license_plate","license_plate_vn","truck_date","tranfer_date","release_date","warehouse_date","order_count","load_truck","export_warehouse","big_package_code","warehouse_code","package_count","import_pack","import_kg","import_m3","bill_count","pack_count","discount","subtotal","cost","profit","width","height","original_weight_fee","import_tax_fee","vat_tax_fee","service_fee_amount","attributes","price_yuan","total_yuan","s_pack","kg","m3","number_of_code","total_truck","total_pack","total_weight","total_volume","support_staff","wooden_pack","check_goods","guarantee","deposit_date","bought_date","shop_deliver_date","store_cn_im_date","store_cn_ex_date","store_vn_im_date","completed_date","weight_price","volume_price","weight_cost","volume_cost","product_amount","import_tax_rate","vat_tax_rate","service_fee_rate","self_fee","self_fee_note","image","choose_file","no_file_chosen","weight_sub","number_of_pack_sub","is_linked","Vue","use","VueI18n","vi","zh","detectLocale","savedLocale","localStorage","getItem","browserLang","navigator","userLanguage","startsWith","locale","i18n","fallbackLocale","_c","staticClass","class","domProps","attrs","_vm","model","rightDrawer","snackbar","scopedSlots","callback","$set","expression","delDialog","_s","on","delConfirmed","$route","fullpath","dialogMessage","configuration","MessageContent","staticRenderFns","render","mini","sidebarExpanded","computeLogo","item","slot","titleKey","$t","items","subItem","group","children","genChildTarget","grand","_v","disabled","icon","roleId","component","_ref","components","VuePerfectScrollbar","props","expanded","Boolean","default","menus","menu","scrollSettings","maxScrollbarLength","wheelPropagation","computed","$store","commons","set","val","commit","computeGroupActive","userRole","role_type","_","find","configs","ROLES","authentication","user","roleid","sideToolbarColor","$vuetify","options","extra","sideNav","methods","concat","checkAuth","$router","replace","path","created","timer","setInterval","destroyed","clearInterval","index","click","randomElement","arr","arguments","Math","floor","random","kebab","str","toLowerCase","toggleFullScreen","doc","docEl","documentElement","requestFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","cancelFullScreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","flag","languages","currentLanguage","$i18n","changeLanguage","languageCode","setItem","$nextTick","location","reload","LanguageSelector","_this","getApp","$emit","toolbarColor","mainNav","userName","handleDrawerToggle","handleFullScreen","Util","directives","rawName","fab","onScroll","top","pageYOffset","offsetTop","toTop","hash","goTo","fn","breadcrumbs","meta","importButton","importAction","public","redirect","saveButton","breadcrumb","requiresAuth","refreshButton","createButton","exportButton","createButtonText","createButtonIcon","saveButtonText","importButtonText","importButtonIcon","routeName","params","manualTitle","buildBreadcrumb","Pid","paths","exportAction","saveData","createData","$root","refreshData","changeOption","mounted","$on","this","show","color","text","clear","msg","viewName","$refs","validate","delId","delMessage","AppDrawer","AppToolbar","AppFab","PageHeader","isConfirm","_objectSpread","mapState","selected","showCustomerMessage","$cookies","dispatch","AppEvents","forEach","Router","router","base","linkActiveClass","DEFAULT_TITLE","beforeEach","to","from","next","NProgress","start","matched","some","record","nextUrl","fullPath","JSON","parse","nextTick","afterEach","done","FileSaver","require","endpoint","loading","master","ID","RoleID","Status","is_active","is_admin","getters","getCustomerList","param","request_list","is_master","http","token","getCustomerDetail","_ref2","request_detail","removeCustomerDetail","_ref3","remove_detail","res","sendErrorNotice","sendSuccessNotice","refreshResource","setCustomerDetail","_ref4","_ref5","resetPwd","CreatedDate","Createdby","update_detail","reason","create_detail","exportList","_ref6","export_list","blob","Blob","saveAs","Date","getTime","mutations","setCustomerList","setMasterList","setLoading","_ref7","namespaced","login","cb","$http","password","req","config","API","post","getAllUsers","resData","loginInfo","user_api","setToken","status_code","stringify","track_items","listOfDay","TransactionCode","FeeShip","getList","getListTracking","setList","setListTracking","notTransit","PackageCode","Weight","Volume","Amount","FeeType","Packages","getListNotTransit","getDetail","setDetail","ModifiedBy","CreatedBy","removeDetail","setBigPackageList","setListNotTransit","_ref8","viewTitle","Username","Email","_ref4$notify","notify","getPayOrderList","getPayOrderDetail","customerId","request_header","updatePayOrder","package_ids","otherFee","uid","header","cloneDeep","join","selectedItem","shop","root","setPayOrderList","setPayOrderDetail","debounce","getPaymentHistoryList","getPaymentHistoryDetail","packageByRef","paymentID","getPackageByRef","setPaymentHistoryList","setPaymentHistoryDetail","setPackageByRef","UID","Method","RECHARGE_STATUS","Pending","TradeContent","setRechargeHistoryList","revenues","truckReport","chart","plates","summary","getRevenueReport","getTruckReport","setRevenueReport","setTruckReport","payload","date_range","period_date","compare_date","allowCompare","start_time","end_time","compare_start_time","compare_end_time","rangeSelect","rangeSelectCompare","all_users","stores","orderWidgets","product","chat","paymentHistory","paymentArea","complain","changeHistory","transaction","filters","_filters","filterConditions","_filterConditions","getAllStores","getAllCustomer","setDateRange","date_range_val","setPeriodDates","setCompareDate","compare_date_val","setRangeSelect","rangeSelectVal","setRangeSelectCompare","rangeSelectCompareVal","setOrderWidgets","_ref9","_ref10","widgets","setAllUsers","setListStores","setListCustomers","_ref11","setSidebarExpanded","_ref12","setFilters","_ref13","setFilterConditions","_ref14","setDates","moment","startOf","utcOffset","unix","endOf","_default","_createClass","_classCallCheck","selectedObject","_this2","_this3","_ref4$ignore_compare","ignore_compare","updateObject","selectedObj","prop","indexOf","isEmpty","removeBatch","ids","loadingData","crud","Crud","getDetailList","exportDetail","export_detail","setDetailList","availableList","orderList","quoteList","billList","import_data","formData","upload_file","getAvailableList","getOrderList","getBillList","getQuoteList","_this4","exportTieuNgach","_this5","exportChinhNgach","_this6","exportChinhNgachVi","_this7","setAvailableList","ret","setOrderList","setQuoteList","setBillList","three_month_report","sale_monthly_report","sale_warning_report","debt_summary","truck_status_chart","order_status_chart","get_3month_report","get_sale_monthly_report","get_sale_warning_report","getDebtSummary","getTruckStatusChart","getOrderStatusChart","set_3month_report","set_sale_monthly_report","set_sale_warning_report","setDebtSummary","setTruckStatusChart","setOrderStatusChart","StorageID","ProductType","CostWeight","CostVolume","TruckID","ProductInfo","HsCode","ImageUrl","CustomsPriceCNY","CustomsAmountCNY","CustomsPriceVND","CustomsAmountVND","ExchangeRate","WeightPrice","VolumePrice","NumberOfPack","TotalAmount","PaidAmount","ImportTax","VatTax","ServiceFee","TotalFeeAmount","EstimateTransitPrice","EstimateTransitAmount","IsQuoted","ProductCapacity","ProductMaterial","PackType","ProductSize","ProductNumber","getProductSuggestions","productInfo","Authorization","response","catch","getQuotesByCustomer","totals","setSelected","Vuex","Store","tracking","storeManager","bigPackage","bigPackageVN","feeWeight","feeVolume","costWeight","payOrder","report","rechargeHistory","bill","storage","productType","orderProduct","quote","billProduct","quote_packages","auditLog","customerDebt","strict","plugins","createPersistedState","_self","Vuetify","icons","iconfont","values","gem","emptyGem","showClass","Number","isInputActive","keyup","displayValue","label","String","decimal","readonly","rules","Array","autoEmit","tempValue","lastValue","toString","parseValue","toFixed","modifiedValue","newValue","parseFloat","isNaN","press_enter","valueToEmit","on_blur","ref","widgetTitle","zoomChart","hideWidget","_t","widgetName","widgetId","firebaseConfig","authDomain","projectId","storageBucket","firebase","initializeApp","analytics","setupDualScrollbar","el","wrapper","querySelector","dataset","dualScrollSetup","table","offsetWidth","existingTopScroll","previousElementSibling","classList","contains","remove","topScroll","className","style","overflowX","overflowY","topScrollInner","insertBefore","_scrollHandler","removeEventListener","isTopScrolling","isWrapperScrolling","scrollLeft","addEventListener","VueCookies","VueResource","VueMuuriGrid","HighchartsVue","currency","display_date","vip_level","vip_level_color","capitalize","display_value","display_color","display_text_color","currencyInput","widgetTemp","directive","inserted","componentUpdated","mixin","$el","querySelectorAll","tables","updated","productionTip","store","vuetify","h","App","$mount","getListOfDay","getDetailByCode","column","condition","updateMultiple","updateStoreManager","unshift","setStoreManagerList","removeItemFromListOfDay","setStoreManagerListOfDay","notice","routePath","pId","vm","link","child","map","webpackContext","webpackContextResolve","keys","strFormat","utc","format","objRet","VIP_LEVEL","obj","a","toUpperCase","enums","key_field","value_field","textColor","request_payload","query","q_params","pagination","qObject","quickFilter","page","rowsPerPage","itemsPerPage","sortBy","descending","sortDesc","Buffer","encodeURIComponent","fields","includes","func","responseType","put","errorCb","print_quote_label","print_content","ProductName","Manufacturer","ManufacturerAddress","LabelCode","LabelDate","getElementById","contentWindow","open","write","frames","print_quote","products","CustomerName","pkg","UnitPrice","OtherFeeAmount","printWindow","print_export_receipt","totalPacks","totalWeight","totalVolume","totalAmount","totalFeeWeight","totalDiscount","totalLineAmount","totalTax","totalOtherFees","html_packages","taxAmount","ImportTaxAmount","VatTaxAmount","ServiceFeeAmount","otherFees","TransactionDeposit","PedicabDeposit","LoadDeposit","FeeCare","TotalFeeWeight","DiscountAmount","LineAmount","ProductNameCN","Note","ReceiveName","ReceivePhone","ReceiveAddress","Code","digitsRE","decimals","isFinite","stringified","abs","_int","_float","sign","process","SHORT_DATE_FORMAT","DATE_FORMAT","SQL_DATE_FORMAT","IMAGE_PROXY","SYSTEM_CONFIG","domain","firebase_prefix","firebase_storage","quick_store_import","notification_time","auto_pack_code","accountant_order_fee_column","PAGINATION","mustSort","ITEMS_PER_PAGE","COLOR_CHART","blue","blue_light","red","red_light","COMPARE_PERIOD","PACKAGE_STATUS_ENUM","DANG_VAN_CHUYEN","DA_NHAP_KHO_TQ","DA_DONG_BAO","DA_NHAP_KHO_VN","DA_GIAO_HANG","PACKAGE_STATUS","COMMENT_TYPE","LOCATION_STORE","shortname","CUSTOMER_STATUS","Actived","Blocked","CUSTOMER_STATUS_LIST","Approved","Cancel","Transferred","Cash","RECHARGE_STATUS_LIST","WITHDRAW_STATUS","WITHDRAW_STATUS_LIST","PAYMENT_TYPE","Deposit","Complete","PAYMENT_TYPE_LIST","PAYMENT_STATUS_LIST","COMPLAIN_STATUS","Processing","Done","COMPLAIN_STATUS_LIST","RECHARGE_TYPE","Techcombank","Vietcombank","BIDV","COD","RECHARGE_METHODS","DATA_TYPE","Enum","LIST_COMPARISON","display","dataType","ROLE_TYPE","Admin","Sale","Customer","Accountant","CustomerSupport","StoreVN","StoreManager","TRADE_TYPE","FEE_TYPE","ByWeight","ByVolume","FEE_TYPES","BIGPACKAGE_STATUS_TYPE","Chua_thanh_toan","Da_thanh_toan","BIGPACKAGE_STATUS","BIGPACKAGE_STATUS_ENUM","da_dong_bao","da_gui","da_nhan","BIGPACKAGE_STATUS_LIST","PRODUCT_TYPE","Kuaidi","Shipment","PRODUCT_TYPE_LIST","RECEIVE_TYPE","RECEIVE_TYPE_LIST","PRODUCT_STATUS","PRODUCT_STATUS_LIST","BILL_STATUS","BILL_STATUS_LIST","PRICE_TYPE_LIST","FEE_CNY_LIST","TRUCK_CALLER"],"mappings":"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","file":"js/app.dcd2410e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"routes\":\"routes\"}[chunkId]||chunkId) + \".\" + {\"chunk-078f326d\":\"8739c969\",\"chunk-21f48a4a\":\"b88d95e0\",\"chunk-ccba4ed0\":\"87ace02e\",\"chunk-fbee35d6\":\"c764815e\",\"chunk-01864c80\":\"dfea4032\",\"chunk-5dba0468\":\"4d9438a8\",\"chunk-23557b18\":\"9b01298b\",\"chunk-36e8db4f\":\"0a0aa21f\",\"chunk-10397729\":\"93b7df4b\",\"chunk-11836819\":\"ee91eff5\",\"chunk-2b191042\":\"374fa56a\",\"chunk-1112bd20\":\"33082bca\",\"chunk-50e94a64\":\"0c19cdfe\",\"chunk-993dc6ec\":\"f172615a\",\"chunk-0cee9138\":\"7172909e\",\"chunk-59ec703f\":\"b69bcc22\",\"chunk-dff427cc\":\"02c3b9d3\",\"chunk-2193822b\":\"e462c743\",\"chunk-2d0d6ed8\":\"fe2bb3c5\",\"chunk-2d0e4c13\":\"3cd3e4d0\",\"chunk-2d2138aa\":\"25079f9b\",\"chunk-2d22d96c\":\"27229bec\",\"chunk-360a39cc\":\"9245786f\",\"chunk-5c13f6b0\":\"a4790ba3\",\"chunk-5e892ea2\":\"0ec8bd8f\",\"chunk-67299b2f\":\"12776366\",\"chunk-797f50b5\":\"5cfea0fe\",\"chunk-84ad6578\":\"35303799\",\"chunk-afacc2b8\":\"8a38932b\",\"chunk-31939e5c\":\"39a35746\",\"chunk-a253a976\":\"a0b4ca03\",\"routes\":\"4ddb8cce\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-21f48a4a\":1,\"chunk-ccba4ed0\":1,\"chunk-fbee35d6\":1,\"chunk-01864c80\":1,\"chunk-5dba0468\":1,\"chunk-23557b18\":1,\"chunk-36e8db4f\":1,\"chunk-10397729\":1,\"chunk-11836819\":1,\"chunk-2b191042\":1,\"chunk-1112bd20\":1,\"chunk-50e94a64\":1,\"chunk-993dc6ec\":1,\"chunk-0cee9138\":1,\"chunk-59ec703f\":1,\"chunk-dff427cc\":1,\"chunk-2193822b\":1,\"chunk-360a39cc\":1,\"chunk-5c13f6b0\":1,\"chunk-5e892ea2\":1,\"chunk-67299b2f\":1,\"chunk-797f50b5\":1,\"chunk-84ad6578\":1,\"chunk-afacc2b8\":1,\"chunk-31939e5c\":1,\"chunk-a253a976\":1,\"routes\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"routes\":\"routes\"}[chunkId]||chunkId) + \".\" + {\"chunk-078f326d\":\"31d6cfe0\",\"chunk-21f48a4a\":\"946a6b03\",\"chunk-ccba4ed0\":\"f0222215\",\"chunk-fbee35d6\":\"bf81da81\",\"chunk-01864c80\":\"bb456ed9\",\"chunk-5dba0468\":\"c69293ae\",\"chunk-23557b18\":\"31658ba4\",\"chunk-36e8db4f\":\"7aac32e2\",\"chunk-10397729\":\"62b71fde\",\"chunk-11836819\":\"4cc86a57\",\"chunk-2b191042\":\"297d45b6\",\"chunk-1112bd20\":\"604f18e5\",\"chunk-50e94a64\":\"100221c7\",\"chunk-993dc6ec\":\"528d2f38\",\"chunk-0cee9138\":\"7511913c\",\"chunk-59ec703f\":\"297d45b6\",\"chunk-dff427cc\":\"83a85de3\",\"chunk-2193822b\":\"1f2fc63e\",\"chunk-2d0d6ed8\":\"31d6cfe0\",\"chunk-2d0e4c13\":\"31d6cfe0\",\"chunk-2d2138aa\":\"31d6cfe0\",\"chunk-2d22d96c\":\"31d6cfe0\",\"chunk-360a39cc\":\"1404cbc0\",\"chunk-5c13f6b0\":\"ae7f12ee\",\"chunk-5e892ea2\":\"1404cbc0\",\"chunk-67299b2f\":\"efd23ec8\",\"chunk-797f50b5\":\"72423e28\",\"chunk-84ad6578\":\"ecf8f88c\",\"chunk-afacc2b8\":\"4eb0deb2\",\"chunk-31939e5c\":\"ecf8f88c\",\"chunk-a253a976\":\"40c473a7\",\"routes\":\"48b63daa\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { status } from \"nprogress\";\nimport { faYenSign } from \"../../../node_modules/@fortawesome/free-solid-svg-icons/index\";\n\nexport default {\n  comparison: {\n    contain: 'Có chứa',\n    does_not_contain: 'Không chứa',\n    s_equal: 'Bằng',\n    s_does_not_equal: 'Khác',\n    equal: 'Bằng',\n    does_not_equal: 'Khác',\n    greater_than: 'Lớn hơn',\n    greater_than_or_equal: 'Lớn hơn hoặc bằng',\n    less_than: 'Nhỏ hơn',\n    less_than_or_equal: 'Nhỏ hơn hoặc bằng',\n    in: 'Bằng',\n    not_in: 'Khác',\n    d_equal: 'Bằng',\n    d_does_not_equal: 'Khác',\n    d_greater_than: 'Lớn hơn',\n    d_greater_than_or_equal: 'Lớn hơn hoặc bằng',\n    d_less_than: 'Nhỏ hơn',\n    d_less_than_or_equal: 'Nhỏ hơn hoặc bằng',\n  },\n  receive_type: {\n    cho_xep_xe: 'Chờ xếp xe',\n    xep_xe: 'Xếp xe',\n    cho_thong_quan_tq: 'Chờ thông quan TQ',\n    kiem_hoa: 'Kiểm hóa',\n    cho_thong_quan_vn: 'Chờ thông quan VN',\n    nhap_kho_vn: 'Nhập kho VN',\n  },\n  bill_status: {\n    chua_xuat: 'Chưa xuất',\n    da_xuat: 'Đã xuất',\n    da_thanh_toan: 'Đã thanh toán',\n  },\n  price_type: {\n    tu_dong: 'Tự động',\n    theo_can: 'Theo cân',\n    theo_khoi: 'Theo khối',\n  },\n  product_status: {\n    nhap_kho_tq: 'Nhập kho TQ',\n    cho_xep_xe: 'Chờ xếp xe',\n    xep_xe: 'Xếp xe TQ',\n    cho_thong_quan_tq: 'Chờ thông quan TQ',\n    kiem_hoa: 'Kiểm hóa',\n    cho_thong_quan_vn: 'Chờ thông quan VN',\n    nhap_kho_vn: 'Nhập kho VN',\n    xuat_thieu: 'Xuất thiếu',\n    xuat_du: 'Xuất đủ',\n  },\n  order_status: {\n    all: 'Tất cả',\n    cancel: 'Hủy đơn hàng',\n    quote_pending: 'Chờ khai báo',\n    deposit_pending: 'Chờ đặt cọc',\n    deposited: 'Đã đặt cọc',\n    purchased: 'Đã mua hàng',\n    shop_shipped: 'Shop phát hàng',\n    cn_warehouse: 'Đã nhập kho TQ',\n    vn_shipping: 'Vận chuyển về VN',\n    vn_warehouse: 'Đã nhập kho VN',\n    exported: 'Đã xuất kho',\n    complaint: 'Khiếu nại',\n    completed: 'Hoàn thành'\n  },\n  order_deposit_status: {\n    cancel: 'Hủy đơn hàng',\n    shop_shipped: 'Shop phát hàng',\n    cn_warehouse: 'Đã nhập kho TQ',\n    vn_shipping: 'Vận chuyển về VN',\n    vn_warehouse: 'Đã nhập kho VN',\n    payment_pending: 'Chờ thanh toán',\n    exported: 'Đã xuất kho',\n    completed: 'Hoàn thành'\n  },\n  package_status: {\n    not_shipped: 'Chưa phát hàng',\n    shipping: 'Đang vận chuyển',\n    cn_warehouse: 'Đã về kho TQ',\n    vn_shipping: 'Đang chuyển về VN',\n    vn_warehouse: 'Đã về kho VN',\n    delivered: 'Đã giao hàng'\n  },\n  big_package: {\n    headers: {\n      package_code: 'Mã lô',\n      big_export_id: 'Mã PX',\n      status: 'Trạng thái',\n      store_exp_id: 'Kho nhận',\n      product_name: 'Tên hàng',\n      number_of_pack: 'Tổng mã',\n      total_small_pack: 'Tổng kiện',\n      weight: 'Tổng cân',\n      volume: 'Tổng khối',\n      amount: 'Cước phí',\n      phone_number: 'Điện thoại',\n      address: 'Địa chỉ',\n      store_phone_number: 'BS.Xe',\n      ex_date: 'Xuất kho TQ',\n      im_date: 'Nhập kho VN',\n      state: 'Tình trạng',\n      payment_status: 'Thanh toán',\n      created_by: 'Người tạo',\n      note: 'Ghi chú',\n      action: 'Thao tác'\n    }\n  },\n  profit_stats: {\n    headers: {\n      staff: 'Nhân viên',\n      completed_orders: 'Số đơn hoàn thành',\n      completed_links: 'Số link hoàn thành',\n      total_order_amount: 'Tổng tiền đơn hàng',\n      total_real_amount: 'Tổng tiền mua thật',\n      total_diff: 'Tổng chênh lệch',\n      total_completed_order_amount: 'Tổng tiền đơn HT',\n      total_completed_real_amount: 'Tổng tiền mua thật HT',\n      total_completed_diff: 'Tổng chênh lệch HT',\n      reward: 'Thưởng'\n    }\n  },\n  dialog: {\n    product_detail_title: 'Chi tiết mã vận đơn',\n    basic_info: 'Thông tin cơ bản',\n    fee_info: 'Thông tin chi kho',\n    other_fees: 'Các chi phí khác',\n    product_specs: 'Thông số sản phẩm',\n    pricing_info: 'Thông tin giá cước',\n    package_details: 'Chi tiết kiện hàng',\n    cost_tax_info: 'Thông tin chi phí & thuế',\n    select_export_type: 'Chọn loại file xuất',\n    edit_quote_info: 'Chỉnh sửa thông tin khai báo',\n  },\n  form: {\n    name: 'Tên',\n    email: 'Email',\n    phone: 'Số điện thoại',\n    address: 'Địa chỉ',\n    status: 'Trạng thái',\n    date: 'Ngày',\n    time: 'Thời gian',\n    amount: 'Số tiền',\n    quantity: 'Số lượng',\n    weight: 'Cân nặng',\n    note: 'Ghi chú',\n    description: 'Mô tả',\n    select_customer: 'Chọn khách hàng',\n    select_storage: 'Kho nhận',\n    partner_name: 'Tên đối tác',\n    select_quote: 'Chọn khai báo',\n    no_name: 'Không có tên',\n    no_quote: 'Không có khai báo nào',\n    select_customer_first: 'Vui lòng chọn khách hàng trước',\n    notice_save_product: 'Vui lòng lưu sản phẩm trước khi thêm kiện hàng!',\n    hs_code: 'Mã HS',\n    total_amount: 'Tổng tiền',\n    created_date: 'Ngày tạo',\n    product_name_cn: 'Tên sản phẩm',\n    product_type: 'Loại hàng',\n    suffix_bill: 'Mã vận đơn',\n    transaction_deposit: 'Ship nội địa (¥)',\n    pedicab_deposit: 'Chi xe kéo (¥)',\n    load_deposit: 'Chi xe nâng (¥)',\n    other_fee: 'Phí khác (¥)',\n    exchange_rate: 'Tỷ giá',\n    weight: 'Tổng cân',\n    volume: 'Tổng khối',\n    number_of_pack: 'Tổng kiện',\n    note: 'Ghi chú',\n    price_type: 'Cách tính phí',\n    weight_price: 'Giá cân',\n    volume_price: 'Giá khối',\n    weight_cost: 'Giá cân gốc',\n    volume_cost: 'Giá khối gốc',\n    product_amount: 'Tiền hàng (đ)',\n    import_tax_rate: 'Thuế nhập khẩu (%)',\n    vat_tax_rate: 'Thuế VAT (%)',\n    service_fee_rate: 'Phí dịch vụ (%)',\n    import_tax_amount: 'Thuế nhập khẩu (đ)',\n    vat_tax_amount: 'Thuế VAT (đ)',\n    service_fee_amount: 'Phí dịch vụ (đ)',\n    self_fee: 'Phí phát sinh (đ)',\n    self_fee_note: 'Ghi chú phát sinh',\n    subtotal: 'Thành tiền',\n    total_profit: 'Lợi nhuận (đ)',\n    is_linked: '(Đã liên kết đơn)',\n    image: 'Hình ảnh',\n    length: 'Dài',\n    width: 'Rộng',\n    height: 'Cao',\n    export_tieu_ngach: 'Xuất file tiểu ngạch',\n    export_chinh_ngach: 'Xuất file chính ngạch TQ',\n    export_chinh_ngach_vi: 'Xuất file chính ngạch VN',\n    product_brand: 'Nhãn hiệu',\n    product_capacity: 'Công suất / Dung tích',\n    product_material: 'Chất liệu hàng',\n    pack_type: 'Quy cách đóng gói',\n    product_size: 'Kích thước sản phẩm',\n    total_product: 'Tổng sản phẩm',\n    yes: 'Có',\n    no: 'Không',\n    no_images: 'Chưa có hình ảnh',\n    fee_name: 'Tên chi phí',\n    total: 'Tổng',\n  },\n  customer: {\n    headers: {\n      id: 'ID',\n      username: 'Khách hàng',\n      first_name: 'Họ',\n      last_name: 'Tên',\n      email: 'Email',\n      phone: 'Điện thoại',\n      address: 'Địa chỉ',\n      level: 'Cấp độ',\n      status: 'Trạng thái',\n      purchase_name: 'Mua hàng',\n      cs_name: 'CSKH',\n      sale_name: 'Sale',\n      price_id: 'Bảng giá',\n      note: 'Ghi chú',\n      total_transaction: 'Tích lũy',\n      wallet: 'Số dư ví',\n      created_date: 'Ngày tạo',\n      modified_date: 'Ngày sửa',\n      modified_by: 'Người sửa',\n      action: 'Thao tác'\n    }\n  },\n  // Order headers\n  order: {\n    headers: {\n      order_id: 'Mã đơn',\n      product_image: 'Ảnh SP',\n      total_amount: 'Tổng tiền',\n      min_deposit: 'Cần cọc',\n      customer: 'Khách hàng',\n      buyer: 'Mua hàng',\n      cs: 'CSKH',\n      sale: 'Sale',\n      note: 'Lưu ý',\n      status: 'Trạng thái',\n      action: 'Thao tác',\n      select_customer: 'Chọn khách hàng',\n      select_storage: 'Chọn kho nhận',\n      partner_name: 'Tên đối tác',\n      select_quote: 'Chọn khai báo',\n      no_name: 'Không có tên',\n      no_quote: 'Không có khai báo nào',\n      select_customer_first: 'Vui lòng chọn khách hàng trước',\n      hs_code: 'Mã HS',\n      total_amount: 'Tổng tiền',\n      created_date: 'Ngày tạo',\n      product_name_cn: 'Tên sản phẩm',\n      product_type: 'Loại hàng',\n      suffix_bill: 'Mã vận đơn',\n      transaction_deposit: 'Ship nội địa (¥)',\n      pedicab_deposit: 'Chi xe kéo (¥)',\n      load_deposit: 'Chi xe nâng (¥)',\n      other_fee: 'Phí khác (¥)',\n      exchange_rate: 'Tỷ giá',\n      volume: 'Tổng khối',\n      number_of_pack: 'Tổng kiện',\n      price_type: 'Cách tính phí',\n      weight_price: 'Giá cân',\n      volume_price: 'Giá khối',\n      weight_cost: 'Giá cân gốc',\n      volume_cost: 'Giá khối gốc',\n      product_amount: 'Tiền hàng (đ)',\n      import_tax_rate: 'Thuế nhập khẩu (%)',\n      vat_tax_rate: 'Thuế VAT (%)',\n      service_fee_rate: 'Phí dịch vụ (%)',\n      import_tax_amount: 'Thuế nhập khẩu (đ)',\n      vat_tax_amount: 'Thuế VAT (đ)',\n      service_fee_amount: 'Phí dịch vụ (đ)',\n      self_fee: 'Phí phát sinh (đ)',\n      self_fee_note: 'Ghi chú phát sinh',\n      total_profit: 'Lợi nhuận (đ)',\n      image: 'Hình ảnh',\n      choose_file: 'Chọn file',\n      no_file_chosen: 'Chưa chọn file nào',\n      add: 'Thêm',\n      length: 'Dài',\n      width: 'Rộng',\n      height: 'Cao',\n      weight_sub: 'Cân nặng',\n      number_of_pack_sub: 'Số kiện',\n      no_data: 'Không có dữ liệu',\n      support_staff: 'Nhân viên hỗ trợ',\n      wooden_pack: 'Đóng gỗ',\n      check_goods: 'Kiểm hàng',\n      guarantee: 'Bảo hiểm',\n      created_date: 'Ngày lên đơn',\n      deposit_date: 'Ngày cọc đơn',\n      bought_date: 'Ngày mua hàng',\n      shop_deliver_date: 'Ngày phát hàng',\n      store_cn_im_date: 'Nhập kho TQ',\n      store_cn_ex_date: 'Xuất kho TQ',\n      store_vn_im_date: 'Nhập kho VN',\n      payment_date: 'Ngày thanh toán',\n      completed_date: 'Ngày hoàn thành'\n    }\n  },\n  // PaymentHistory headers\n  payment_history: {\n    headers: {\n      id: 'ID',\n      order_id: 'Mã đơn hàng',\n      amount: 'Số tiền',\n      customer: 'Khách hàng',\n      type: 'Loại giao dịch',\n      created_date: 'Ngày tạo',\n      created_by: 'Người tạo'\n    }\n  },\n  // ProductType headers\n  product_type: {\n    headers: {\n      id: 'ID',\n      name: 'Tên loại hàng',\n      active: 'Sử dụng',\n      active_true: 'Sử dụng',\n      active_false: 'Không sử dụng',\n      modified_date: 'Ngày sửa',\n      modified_by: 'Người sửa',\n      action: 'Thao tác'\n    }\n  },\n  // CustomerLevel headers\n  customer_level: {\n    headers: {\n      name: 'Tên cấp độ',\n      discount_fee_buy: 'CK phí mua hàng',\n      discount_fee_weight: 'CK phí cân nặng',\n      min_deposit: 'Đặt cọc tối thiểu',\n      action: 'Thao tác'\n    }\n  },\n  // DebtReport headers\n  debt_report: {\n    headers: {\n      customer: 'Khách hàng',\n      deposit: 'Tiền nạp',\n      order_amount: 'Tiền hàng',\n      wallet: 'Dư ví',\n      wallet_theory: 'Dư ví lý thuyết',\n      debt_arrived: 'Công nợ đơn đã về',\n      debt_not_arrived: 'Công nợ đơn chưa về',\n      note: 'Ghi chú'\n    },\n    debt_in: \"Công nợ phải thu\",\n    debt_out: \"Công nợ phải trả\",\n    total_debt: \"Tổng công nợ\",\n  },\n  // Header và Navigation\n  navigation: {\n    dashboard: 'Trang chủ',\n    orders: 'Đơn hàng',\n    packages: 'Kiện hàng',\n    customers: 'Khách hàng',\n    reports: 'Báo cáo',\n    settings: 'Cài đặt',\n    logout: 'Đăng xuất'\n  },\n\n  wallet_history: {\n    headers: {\n      id: 'ID',\n      customer: 'Khách hàng',\n      trade_type: 'Loại giao dịch',\n      amount: 'Số tiền',\n      balance: 'Số dư',\n      content: 'Nội dung',\n      note: 'Ghi chú',\n      created_date: 'Ngày tạo',\n      created_by: 'Người tạo'\n    }\n  },\n\n  dashboard: {\n    order_title: 'Đơn mua hộ',\n    deposit_title: 'Đơn ký gửi',\n    list_bigpackages: 'Danh sách lô hàng',\n  },\n\n  // Route titles\n  routes: {\n    profile: 'Tài khoản',\n    dashboard: 'Bảng điều khiển',\n    orders: 'Đơn hàng',\n    order_detail: 'Đơn hàng',\n    orders_late_delivery: 'Chậm phát hàng',\n    orders_late_china_warehouse: 'Chậm nhập kho TQ',\n    orders_late_vn_warehouse: 'Chậm nhập kho VN',\n    orders_late_customer: 'Chậm trả khách',\n    orders_late_purchase: 'Chậm mua hàng',\n    customers: 'Khách hàng',\n    customer_detail: 'Khách hàng',\n    transaction_history: 'Lịch sử giao dịch',\n    deposit: 'Nạp tiền',\n    deposit_detail: 'Nạp tiền',\n    admin_deposit: 'Nạp tiền',\n    payment_history: 'Lịch sử thanh toán',\n    withdrawal: 'Rút tiền',\n    payment_goods: 'Thanh toán tiền hàng',\n    payment_detail: 'Thanh toán tiền hàng',\n    tracking_code: 'Mã hàng',\n    consignment: 'Ký gửi',\n    consignment_detail: 'Ký gửi',\n    consignment_late_china: 'Chậm nhập kho TQ',\n    consignment_late_vn: 'Chậm nhập kho VN',\n    consignment_late_customer: 'Chậm trả khách',\n    complaints: 'Khiếu nại',\n    complaint_detail: 'Khiếu nại',\n    china_warehouse: 'Xuất nhập kho TQ',\n    vn_warehouse_import: 'Nhập kho VN',\n    vn_warehouse_detail: 'Nhập kho VN',\n    shipment: 'Lô hàng',\n    warehouse_export: 'Xuất kho',\n    order_control: 'Kiểm soát đơn hàng',\n    cash_flow_yuan: 'Luồng thu chi (¥)',\n    cash_flow_yuan_detail: 'Chi tiết thu/chi (¥)',\n    cash_flow_vnd: 'Luồng thu chi (₫)',\n    cash_flow_vnd_detail: 'Chi tiết thu/chi (₫)',\n    shop_refund: 'Shop hoàn tiền KN',\n    refund_detail: 'Chi tiết hoàn tiền',\n    quotes: 'Khai báo',\n    quote_detail: 'Chi tiết khai báo',\n    shipping_fee_original: 'Phí vận chuyển gốc',\n    weight_fee: 'Phí cân nặng',\n    weight_fee_detail: 'Phí cân nặng',\n    volume_fee: 'Phí khối',\n    volume_fee_detail: 'Phí khối',\n    checking_fee: 'Phí kiểm đếm',\n    checking_fee_detail: 'Phí kiểm đếm',\n    insurance_fee: 'Phí bảo hiểm',\n    insurance_fee_detail: 'Phí bảo hiểm',\n    buying_fee: 'Phí mua hộ',\n    buying_fee_detail: 'Phí mua hộ',\n    guarantee_fee: 'Phí bảo lãnh',\n    guarantee_fee_detail: 'Phí bảo lãnh',\n    reinforcement_fee: 'Phí gia cố',\n    reinforcement_fee_detail: 'Phí gia cố',\n    address_book: 'Sổ địa chỉ',\n    address_book_detail: 'Sổ địa chỉ',\n    china_stores: 'Shop Trung Quốc',\n    china_store_detail: 'Shop Trung Quốc',\n    configurations: 'Cấu hình',\n    configuration_detail: 'Cấu hình',\n    user_management: 'Quản lý người dùng',\n    user_detail: 'Quản lý người dùng',\n    notification_management: 'Quản lý thông báo',\n    notification_detail: 'Quản lý thông báo',\n    customer_level: 'Cấp độ khách hàng',\n    customer_level_detail: 'Cấp độ khách hàng',\n    media: 'Media',\n    daily_report: 'Báo cáo ngày',\n    monthly_report: 'Báo cáo tháng',\n    customer_report: 'Báo cáo khách hàng',\n    debt_report: 'Báo cáo công nợ',\n    purchase_report: 'Báo cáo mua hàng',\n    warehouse_report: 'Báo cáo kho',\n    product_type: 'Loại hàng',\n    partner: 'Đối tác',\n    general_config: 'Cấu hình chung',\n    staff: 'Nhân viên',\n    vip_customer: 'Khách hàng thân thiết',\n    china_warehouse_config: 'Kho TQ',\n    vn_warehouse_config: 'Kho VN',\n    shipping_price_list: 'Bảng giá vận chuyển',\n    hashtag: 'Hashtag',\n    notification: 'Thông báo',\n    profit_report: 'Báo cáo lợi nhuận',\n    order_profit_stats: 'Thống kê lợi nhuận đặt hàng',\n    buying_fee_stats: 'Thống kê phí mua hàng',\n    shipping_fee_stats: 'Thống kê phí vận chuyển',\n    currency_stats: 'Thống kê tiền tệ',\n    finance: 'Tài chính',\n    deposit_stats: 'Thống kê nạp tiền',\n    revenue_report: 'Doanh thu',\n    truck_report: 'Báo cáo xe hàng',\n    customer_debt_report: 'Công nợ khách hàng',\n    debt_report_detail: 'Báo cáo công nợ khách hàng',\n    staff_commission_stats: 'Thống kê hoa hồng nhân viên',\n    shipment_report: 'Báo cáo lô hàng',\n    china_warehouse_export: 'Xuất kho TQ',\n    payment_service: 'Thanh toán hộ',\n    china_warehouse_finance: 'Thu chi kho TQ',\n    china_warehouse_finance_detail: 'Chi tiết thu chi',\n    order_hashtag: 'Hashtag đơn hàng',\n    delivery_request: 'Yêu cầu giao hàng',\n    delivery_request_detail: 'Chi tiết yêu cầu giao hàng',\n    inventory_pending: 'Tồn kho chưa giao',\n    lost_items: 'Hàng thất lạc',\n    receiving_warehouse: 'Kho nhận',\n    reports: 'Báo cáo',\n    settings: 'Cài đặt',\n    accountant: 'Kế toán',\n    price_table: 'Bảng giá',\n    payservice_report: 'Báo cáo thanh toán hộ',\n    business_report: 'Báo cáo kết quả hoạt động kinh doanh',\n    product_inventory: 'Hàng tồn',\n    truck: 'Xếp xe',\n    all: 'Tất cả',\n    import_tq: 'Nhập kho TQ',\n    waiting_for_truck: 'Chờ xếp xe',\n    on_the_way: 'Đã xếp xe',\n    processing_tq: 'Chờ thông quan TQ',\n    check: 'Kiểm hóa',\n    processing_vn: 'Chờ thông quan VN',\n    import_vn: 'Nhập kho VN',\n    exported: 'Đã xuất kho',\n    no_owner: 'Hàng không tên',\n    product_inventory_in_tq: 'Tồn kho TQ',\n    product_inventory_in_vn: 'Tồn kho VN',\n    truck_detail: 'Chi tiết xếp xe',\n    bill_detail: 'Chi tiết xuất kho',\n    product_detail: 'Chi tiết mã hàng',\n    audit_log: 'Nhật ký thao tác',\n    cost_weight: 'Giá gốc',\n  },\n\n  // Common actions\n  actions: {\n    save: 'Lưu',\n    cancel: 'Hủy',\n    delete: 'Xóa',\n    edit: 'Sửa',\n    add: 'Thêm',\n    search: 'Tìm kiếm',\n    filter: 'Lọc',\n    export: 'Xuất',\n    import: 'Nhập',\n    refresh: 'Làm mới',\n    submit: 'Gửi',\n    confirm: 'Xác nhận',\n    close: 'Đóng',\n    view: 'Xem',\n    update: 'Cập nhật',\n    create: 'Tạo',\n    print: 'In',\n    print_label: 'In nhãn',\n    edit_quote: 'Chỉnh sửa khai báo',\n    export_file: 'Xuất file',\n    add_package: 'Thêm kiện hàng',\n    add_fee: 'Thêm chi phí',\n  },\n\n  // Status\n  status: {\n    active: 'Hoạt động',\n    inactive: 'Không hoạt động',\n    pending: 'Chờ xử lý',\n    completed: 'Hoàn thành',\n    cancelled: 'Đã hủy',\n    processing: 'Đang xử lý'\n  },\n\n  // Messages\n  messages: {\n    success: 'Thành công',\n    error: 'Có lỗi xảy ra',\n    warning: 'Cảnh báo',\n    info: 'Thông tin',\n    confirm_delete: 'Bạn có chắc chắn muốn xóa?',\n    save_success: 'Lưu thành công',\n    delete_success: 'Xóa thành công',\n    update_success: 'Cập nhật thành công',\n    no_data: 'Không có dữ liệu'\n  },\n\n  // Notification messages\n  notifications: {\n    save_success: 'Lưu thành công',\n    delete_success: 'Xóa thành công',\n    update_success: 'Cập nhật thành công'\n  },\n\n  // Export messages\n  export: {\n    export_selected_items: 'Xuất {count} sản phẩm đã chọn',\n    export_all_items: 'Xuất tất cả sản phẩm theo bộ lọc hiện tại',\n    send_custom: 'Gửi khai báo hải quan'\n  },\n\n  // Validation messages\n  validation: {\n    product_brand_required: 'Nhãn hiệu là bắt buộc'\n  },\n\n  // Error messages\n  errors: {\n    product_no_quote: 'Sản phẩm này chưa có khai báo',\n    cannot_load_quote_info: 'Lỗi khi tải thông tin khai báo',\n    cannot_update_quote: 'Lỗi khi cập nhật thông tin khai báo',\n    save_failed: 'Lưu thất bại',\n    upload_failed: 'Tải lên thất bại'\n  },\n\n  // Success messages\n  success: {\n    quote_updated: 'Đã cập nhật thông tin khai báo thành công!'\n  },\n\n  // Order management\n  orders: {\n    title: 'Quản lý đơn hàng',\n    order_code: 'Mã đơn hàng',\n    customer_name: 'Tên khách hàng',\n    order_date: 'Ngày đặt hàng',\n    total_amount: 'Tổng tiền',\n    shipping_fee: 'Phí vận chuyển',\n    product_name: 'Tên sản phẩm',\n    unit_price: 'Đơn giá',\n    create_order: 'Tạo đơn hàng',\n    order_details: 'Chi tiết đơn hàng'\n  },\n\n  // Package management \n  packages: {\n    title: 'Quản lý kiện hàng',\n    package_code: 'Mã kiện hàng',\n    tracking_number: 'Mã vận đơn',\n    sender: 'Người gửi',\n    receiver: 'Người nhận',\n    weight: 'Cân nặng',\n    dimensions: 'Kích thước',\n    shipping_cost: 'Phí vận chuyển',\n    create_package: 'Tạo kiện hàng'\n  },\n\n  // Customer management\n  customers: {\n    title: 'Quản lý khách hàng',\n    customer_code: 'Mã khách hàng',\n    full_name: 'Họ và tên',\n    phone_number: 'Số điện thoại',\n    email_address: 'Địa chỉ email',\n    address: 'Địa chỉ',\n    registration_date: 'Ngày đăng ký',\n    customer_level: 'Cấp độ khách hàng',\n    create_customer: 'Tạo khách hàng'\n  },\n\n  // Language\n  language: {\n    vietnamese: 'Tiếng Việt',\n    chinese: 'Tiếng Trung',\n    select_language: 'Chọn ngôn ngữ'\n  },\n  accountant_cumulation: {\n    headers: {\n      accountant_date: 'Ngày',\n      first_cumulation: 'Tồn đầu kỳ',\n      income_amount: 'Thu',\n      tuikuan: 'Tuikuan',\n      outcome_purchase: 'Chi mua hàng',\n      outcome_other: 'Chi khác',\n      cumulation: 'Tồn cuối kỳ',\n      note: 'Ghi chú',\n      action: 'Thao tác',\n      total: 'Tổng'\n    }\n  },\n\n  // Common table headers - Tiêu đề bảng chung\n  table_headers: {\n    wallet: 'Đã thanh toán',\n    suffix_bill: 'Mã vận đơn',\n    deposit: 'Tổng chi(¥)',\n    total_fee_weight: 'Tổng phí cân nặng',\n    import_tax_amount: 'Thuế nhập khẩu',\n    vat_tax_amount: 'Thuế VAT',\n    total_cost_weight: 'Tổng chi phí cân nặng',\n    total_profit: 'Tổng lợi nhuận',\n    receive_date: 'Ngày nhận',\n    deliver_date: 'Ngày giao',\n    store_id: 'Kho nhận',\n    id: 'ID',\n    username: 'User Name',\n    partner_name: 'Tên đối tác',\n    order_codes: 'Mã đơn hàng',\n    bill_codes: 'Mã bill',\n    email: 'Email',\n    full_name: 'Họ tên',\n    first_name: 'Họ',\n    last_name: 'Tên',\n    phone: 'Điện thoại',\n    address: 'Địa chỉ',\n    status: 'Trạng thái',\n    action: 'Thao tác',\n    created_date: 'Ngày tạo',\n    modified_date: 'Ngày sửa',\n    modified_by: 'Người sửa',\n    created_by: 'Người tạo',\n    note: 'Ghi chú',\n    is_split_tax: 'Tách thuế',\n    is_ready: 'Sẵn sàng',\n\n    // Customer headers\n    customer_code: 'Mã khách hàng',\n    customer_name: 'Tên khách hàng',\n    customer: 'Khách hàng',\n    total_deposit: 'Tổng nạp',\n    order_amount: 'Tiền hàng',\n    debt: 'Công nợ',\n    sale_staff: 'Nhân viên sale',\n    level: 'Cấp độ',\n    role: 'Quyền hạn',\n\n    // Quote headers\n    quote_id: 'Mã khai báo',\n    product_image: 'Hình ảnh hàng',\n    product_info: 'Tên loại hàng',\n    customs_content: 'Yêu cầu khai báo',\n    customs_price_note: 'Thuế & giá khai báo',\n    customs_unit: 'Đơn vị khai báo',\n    hs_code: 'Mã HS',\n    product_number: 'Số lượng sản phẩm',\n    customs_price_vnd: 'Giá cần khai báo',\n    import_tax: 'Thuế nhập khẩu (%)',\n    vat_tax: 'VAT (%)',\n    service_fee: 'Phí dịch vụ (%)',\n    number_of_pack: 'Số kiện',\n    weight: 'Cân nặng',\n    volume: 'Thể tích',\n    is_quoted: 'Trạng thái',\n\n    // Product/Tracking headers\n    tracking_code: 'Mã hàng',\n    product_name: 'Tên hàng',\n    product_name_cn: 'Tên hàng TQ',\n    product_name_vn: 'Tên hàng VN',\n    package_code: 'Mã bao',\n    bill_code: 'Bill',\n    bill_id: 'Mã bill',\n    total_cost_yuan: 'Tổng chi (¥)',\n    cost_yuan: 'Chi tệ',\n    shipping_fee_yuan: 'P.Ship (¥)',\n    shipping_fee: 'Phí ship',\n    shipping_cost: 'Phí vận chuyển',\n    cn_warehouse_date: 'Nhập kho TQ',\n    package_date: 'Đóng bao',\n    vn_warehouse_date: 'Nhập kho VN',\n    export_date: 'Xuất kho VN',\n    remaining_pack: 'Kiện tồn',\n\n    // Storage/Warehouse headers\n    storage_name: 'Tên kho',\n    storage_cn: 'Kho TQ',\n    storage_vn: 'Kho nhận',\n    available: 'Khả dụng',\n\n    // Product Type headers\n    product_type_name: 'Tên loại hàng',\n    product_type: 'Loại hàng',\n\n    // Fee headers\n    fee_from_kg: 'Từ (kg)',\n    fee_to_kg: 'Đến (kg)',\n    fee_from_m3: 'Từ (m3)',\n    fee_to_m3: 'Đến (m3)',\n    unit_price: 'Đơn giá',\n    price_kg: 'Giá kg',\n    price_m3: 'Giá M3',\n\n    // Payment headers\n    amount: 'Số tiền',\n    total_amount: 'Tổng tiền',\n    shipping_fee_label: 'Tiền cước',\n    other_fee: 'Phí khác',\n    payment_date: 'Ngày thanh toán',\n    content: 'Nội dung',\n\n    // Recharge headers\n    recharge_amount: 'Số tiền',\n    trade_content: 'Nội dung giao dịch',\n\n    // Truck headers\n    truck_code: 'Mã hiệu',\n    license_plate: 'Biển số xe',\n    license_plate_vn: 'Biển số xe VN',\n    truck_date: 'Ngày xếp xe',\n    tranfer_date: 'Ngày bốc',\n    release_date: 'Ngày trả xe',\n    warehouse_date: 'Ngày nhập kho',\n    order_count: 'Số mã ĐH',\n    load_truck: 'Xếp xe',\n    export_warehouse: 'Xuất kho',\n\n    // BigPackage headers\n    big_package_code: 'Bao hàng',\n    warehouse_code: 'Mã vào kho',\n    package_count: 'Số gói',\n    import_pack: 'Kiện nhập',\n    import_kg: 'Kg nhập',\n    import_m3: 'M3 nhập',\n\n    // Report headers\n    date: 'Ngày',\n    bill_count: 'Số bill',\n    pack_count: 'Số kiện',\n    discount: 'Chiết khấu',\n    subtotal: 'Thành tiền',\n    cost: 'Chi phí',\n    profit: 'Lợi nhuận',\n\n    // Dimension headers\n    length: 'Dài',\n    width: 'Rộng',\n    height: 'Cao',\n\n    // Additional headers\n    exchange_rate: 'Tỷ giá',\n    original_weight_fee: 'Tiền cân gốc',\n    import_tax_fee: 'Thuế nhập khẩu',\n    vat_tax_fee: 'Thuế VAT',\n    service_fee_amount: 'Phí dịch vụ',\n    attributes: 'Thuộc tính',\n    quantity: 'Số lượng',\n    price_yuan: 'Giá (¥)',\n    total_yuan: 'Thành tiền (¥)',\n    s_pack: 'S.Kiện',\n    kg: 'KG',\n    m3: 'M3',\n    number_of_code: 'Tổng bill',\n    total_truck: 'Số xe',\n    total_pack: 'Tổng kiện',\n    total_weight: 'Tổng cân',\n    total_volume: 'Tổng khối',\n    total_deposit: 'Chi tệ',\n    total_revenue: 'Tổng doanh thu',\n    fee_ship_vnd: 'Phí ship',\n    discount_amount: 'Chiết khấu',\n    amount_vnd: 'Tổng tiền',\n    line_amount: 'Thành tiền',\n    paid_amount: 'Đã thanh toán',\n    remaining_amount: 'Còn nợ',\n    actions: 'Thao tác',\n    is_hidden: 'Khả dụng',\n    storage: 'Kho nhận'\n  }\n}","export default {\n  comparison: {\n    contain: '包含',\n    does_not_contain: '不包含',\n    s_equal: '等于',\n    s_does_not_equal: '不等于',\n    equal: '等于',\n    does_not_equal: '不等于',\n    greater_than: '大于',\n    greater_than_or_equal: '大于等于',\n    less_than: '小于',\n    less_than_or_equal: '小于等于',\n    in: '等于',\n    not_in: '不等于',\n    d_equal: '等于',\n    d_does_not_equal: '不等于',\n    d_greater_than: '大于',\n    d_greater_than_or_equal: '大于等于',\n    d_less_than: '小于',\n    d_less_than_or_equal: '小于等于',\n  },\n  receive_type: {\n    cho_xep_xe: '等待装车',\n    xep_xe: '装车',\n    cho_thong_quan_tq: '等待中国清关',\n    kiem_hoa: '查验',\n    cho_thong_quan_vn: '等待越南清关',\n    nhap_kho_vn: '入越南仓',\n  },\n  bill_status: {\n    chua_xuat: '未出库',\n    da_xuat: '已出库',\n    da_thanh_toan: '已付款',\n  },\n  price_type: {\n    tu_dong: '自动',\n    theo_can: '按重量',\n    theo_khoi: '按体积',\n  },\n  product_status: {\n    nhap_kho_tq: '入中国仓',\n    cho_xep_xe: '等待装车',\n    xep_xe: '中国装车',\n    cho_thong_quan_tq: '等待中国清关',\n    kiem_hoa: '查验',\n    cho_thong_quan_vn: '等待越南清关',\n    nhap_kho_vn: '入越南仓',\n    xuat_thieu: '部分出库',\n    xuat_du: '全部出库',\n  },\n  order_status: {\n    all: '所有状态',\n    cancel: '取消订单',\n    quote_pending: '等待报价',\n    deposit_pending: '等待预付',\n    deposited: '已预付',\n    purchased: '已采购',\n    shop_shipped: '商店发货',\n    cn_warehouse: '已入中国仓',\n    vn_shipping: '运输到越南',\n    vn_warehouse: '已入越南仓',\n    exported: '已出库',\n    complaint: '投诉',\n    completed: '已完成'\n  },\n  order_deposit_status: {\n    cancel: '取消订单',\n    shop_shipped: '商店发货',\n    cn_warehouse: '已入中国仓',\n    vn_shipping: '运输到越南',\n    vn_warehouse: '已入越南仓',\n    payment_pending: '等待付款',\n    exported: '已出库',\n    completed: '已完成'\n  },\n  package_status: {\n    not_shipped: '未发货',\n    shipping: '运输中',\n    cn_warehouse: '已到中国仓',\n    vn_shipping: '运输到越南',\n    vn_warehouse: '已到越南仓',\n    delivered: '已送达'\n  },\n  big_package: {\n    headers: {\n      package_code: '批號',\n      big_export_id: '出貨單號',\n      status: '地位',\n      store_exp_id: '收貨倉庫',\n      product_name: '產品名稱',\n      number_of_pack: '代碼總數',\n      total_small_pack: '總包數',\n      weight: '總重量',\n      volume: '總容積',\n      amount: '郵資',\n      phone_number: '電話號碼',\n      address: '地址',\n      store_phone_number: '車牌',\n      ex_date: '交貨日期',\n      im_date: '收到貨物日期',\n      state: '地位',\n      payment_status: '支付',\n      created_by: '創作者',\n      note: '筆記',\n      action: '手術'\n    }\n  },\n  profit_stats: {\n    headers: {\n      staff: '员工',\n      completed_orders: '已完成订单数',\n      completed_links: '已完成链接数',\n      total_order_amount: '订单总金额',\n      total_real_amount: '实际购买总金额',\n      total_diff: '总差额',\n      total_completed_order_amount: '已完成订单总金额',\n      total_completed_real_amount: '已完成实际购买总金额',\n      total_completed_diff: '已完成总差额',\n      reward: '奖励'\n    }\n  },\n  // Order headers\n  order: {\n    headers: {\n      order_id: '订单编号',\n      product_image: '产品图片',\n      total_amount: '总金额',\n      min_deposit: '需预付',\n      customer: '客户',\n      buyer: '采购',\n      cs: '客服',\n      sale: '销售',\n      note: '备注',\n      status: '状态',\n      action: '操作',\n      support_staff: '支持人员',\n      wooden_pack: '木箱',\n      check_goods: '验货',\n      guarantee: '保险',\n      created_date: '下单日期',\n      deposit_date: '预付日期',\n      bought_date: '采购日期',\n      shop_deliver_date: '发货日期',\n      store_cn_im_date: '入中国仓',\n      store_cn_ex_date: '出中国仓',\n      store_vn_im_date: '入越南仓',\n      payment_date: '付款日期',\n      completed_date: '完成日期'\n    }\n  },\n  customer: {\n    headers: {\n      id: 'ID',\n      username: '客户',\n      first_name: '姓',\n      last_name: '名',\n      email: '邮箱',\n      phone: '电话',\n      address: '地址',\n      level: '等级',\n      status: '状态',\n      purchase_name: '采购',\n      cs_name: '客服',\n      sale_name: '销售',\n      price_id: '价格表',\n      note: '备注',\n      total_transaction: '累计交易',\n      wallet: '钱包余额',\n      created_date: '创建日期',\n      modified_date: '修改日期',\n      modified_by: '修改人',\n      action: '操作'\n    }\n  },\n  // PaymentHistory headers\n  payment_history: {\n    headers: {\n      id: 'ID',\n      order_id: '订单编号',\n      waiting_for_truck: '等待装车',\n      on_the_way: '已装车',\n      processing_tq: '等待中国清关',\n      check: '查验',\n      processing_vn: '等待越南清关',\n      import_vn: '入越南仓',\n      exported: '已出库',\n      no_owner: '无主货物',\n      product_inventory_in_tq: '中国库存',\n      product_inventory_in_vn: '越南库存',\n      truck_detail: '卡车详情',\n      bill_detail: '出库详情',\n      amount: '金额',\n      customer: '客户',\n      type: '交易类型',\n      created_date: '创建日期',\n      created_by: '创建人'\n    }\n  },\n  // ProductType headers\n  product_type: {\n    headers: {\n      id: 'ID',\n      name: '商品类型名称',\n      active: '启用',\n      active_true: '启用',\n      active_false: '未启用',\n      modified_date: '修改日期',\n      modified_by: '修改人',\n      action: '操作'\n    }\n  },\n  // CustomerLevel headers\n  customer_level: {\n    headers: {\n      name: '等级名称',\n      discount_fee_buy: '代购费折扣',\n      discount_fee_weight: '重量费折扣',\n      min_deposit: '最低预付',\n      action: '操作'\n    }\n  },\n  // DebtReport headers\n  debt_report: {\n    headers: {\n      customer: '客户',\n      deposit: '充值',\n      order_amount: '货款',\n      wallet: '钱包余额',\n      wallet_theory: '理论余额',\n      debt_arrived: '已到货欠款',\n      debt_not_arrived: '未到货欠款',\n      note: '备注'\n    },\n    debt_in: \"应收账款\",\n    debt_out: \"应付账款\",\n    total_debt: \"总账款\",\n  },\n  wallet_history: {\n    headers: {\n      id: 'ID',\n      customer: '客户',\n      trade_type: '交易类型',\n      amount: '金额',\n      balance: '余额',\n      content: '内容',\n      note: '备注',\n      created_date: '创建日期',\n      created_by: '创建人'\n    }\n  },\n  dashboard: {\n    order_title: '订单',\n    deposit_title: '托运订单',\n    list_bigpackages: '大包裹列表',\n  },\n  // Header và Navigation\n  navigation: {\n    dashboard: '首页',\n    orders: '订单',\n    packages: '包裹',\n    customers: '客户',\n    reports: '报告',\n    settings: '设置',\n    logout: '退出'\n  },\n  // Route titles\n  routes: {\n    profile: '账户',\n    dashboard: '仪表板',\n    orders: '订单',\n    order_detail: '订单',\n    orders_late_delivery: '配送延迟',\n    orders_late_china_warehouse: '中国仓库延迟',\n    orders_late_vn_warehouse: '越南仓库延迟',\n    orders_late_customer: '客户延迟',\n    orders_late_purchase: '采购延迟',\n    customers: '客户',\n    customer_detail: '客户',\n    transaction_history: '交易历史',\n    deposit: '托运订单',\n    deposit_detail: '托运订单',\n    admin_deposit: '托运订单',\n    payment_history: '支付历史',\n    withdrawal: '提现',\n    payment_goods: '货款支付',\n    payment_detail: '货款支付',\n    tracking_code: '运单号',\n    consignment: '寄售',\n    consignment_detail: '寄售',\n    consignment_late_china: '中国仓库延迟',\n    consignment_late_vn: '越南仓库延迟',\n    consignment_late_customer: '客户延迟',\n    complaints: '投诉',\n    complaint_detail: '投诉',\n    china_warehouse: '中国仓库进出',\n    vn_warehouse_import: '越南仓库入库',\n    vn_warehouse_detail: '越南仓库入库',\n    shipment: '运输',\n    warehouse_export: '出库',\n    order_control: '订单控制',\n    cash_flow_yuan: '现金流（¥）',\n    cash_flow_yuan_detail: '收支明细（¥）',\n    cash_flow_vnd: '现金流（₫）',\n    cash_flow_vnd_detail: '收支明细（₫）',\n    shop_refund: '商店退款',\n    refund_detail: '退款详情',\n    quotes: '报价',\n    quote_detail: '报价详情',\n    shipping_fee_original: '原始运费',\n    weight_fee: '重量费',\n    weight_fee_detail: '重量费',\n    volume_fee: '体积费',\n    volume_fee_detail: '体积费',\n    checking_fee: '检查费',\n    checking_fee_detail: '检查费',\n    insurance_fee: '保险费',\n    insurance_fee_detail: '保险费',\n    buying_fee: '代购费',\n    buying_fee_detail: '代购费',\n    guarantee_fee: '担保费',\n    guarantee_fee_detail: '担保费',\n    reinforcement_fee: '加固费',\n    reinforcement_fee_detail: '加固费',\n    address_book: '地址簿',\n    address_book_detail: '地址簿',\n    china_stores: '中国商店',\n    china_store_detail: '中国商店',\n    configurations: '配置',\n    configuration_detail: '配置',\n    user_management: '用户管理',\n    user_detail: '用户管理',\n    notification_management: '通知管理',\n    notification_detail: '通知管理',\n    customer_level: '客户等级',\n    customer_level_detail: '客户等级',\n    media: '媒体',\n    daily_report: '日报',\n    monthly_report: '月报',\n    customer_report: '客户报告',\n    debt_report: '债务报告',\n    purchase_report: '采购报告',\n    warehouse_report: '仓库报告',\n    product_type: '商品类型',\n    partner: '合作伙伴',\n    general_config: '通用配置',\n    staff: '员工',\n    vip_customer: 'VIP客户',\n    china_warehouse_config: '中国仓库',\n    vn_warehouse_config: '越南仓库',\n    shipping_price_list: '运费价格表',\n    hashtag: '标签',\n    notification: '通知',\n    profit_report: '利润报告',\n    order_profit_stats: '订单利润统计',\n    buying_fee_stats: '代购费统计',\n    shipping_fee_stats: '运费统计',\n    currency_stats: '货币统计',\n    finance: '财务',\n    deposit_stats: '充值统计',\n    revenue_report: '收入报告',\n    debt_report_detail: '客户债务报告',\n    staff_commission_stats: '员工佣金统计',\n    shipment_report: '货运报告',\n    china_warehouse_export: '中国仓库出库',\n    payment_service: '代付服务',\n    china_warehouse_finance: '中国仓库财务',\n    china_warehouse_finance_detail: '收支明细',\n    order_hashtag: '订单标签',\n    delivery_request: '配送请求',\n    delivery_request_detail: '配送请求详情',\n    inventory_pending: '待配送库存',\n    lost_items: '丢失物品',\n    receiving_warehouse: '收货仓库',\n    reports: '报告',\n    settings: '设置',\n    accountant: '会计',\n    price_table: '运费价格表',\n    payservice_report: '代付服务报告',\n    business_report: '经营业绩报告',\n    product_inventory: '产品库存',\n    truck: '卡车',\n    all: '全部',\n    import_tq: '入中国仓',\n    waiting_for_truck: '等待装车',\n    on_the_way: '已装车',\n    processing_tq: '等待中国清关',\n    check: '查验',\n    processing_vn: '等待越南清关',\n    import_vn: '入越南仓',\n    exported: '已出库',\n    no_owner: '无主货物',\n    product_inventory_in_tq: '中国库存',\n    product_inventory_in_vn: '越南库存',\n    truck_detail: '卡车详情',\n    bill_detail: '出库详情',\n    product_detail: '产品详情',\n    audit_log: '操作日志',\n    cost_weight: '价格成本',\n  },\n  // Common actions\n  actions: {\n    save: '保存',\n    cancel: '取消',\n    delete: '删除',\n    edit: '编辑',\n    add: '添加',\n    search: '搜索',\n    filter: '筛选',\n    export: '导出',\n    import: '导入',\n    refresh: '刷新',\n    submit: '提交',\n    confirm: '确认',\n    close: '关闭',\n    view: '查看',\n    update: '更新',\n    create: '创建',\n    print: '打印',\n    print_label: '打印标签',\n    edit_quote: '编辑报价',\n    export_file: '导出文件',\n    add_package: '添加包裹',\n    add_fee: '添加费用'\n  },\n  dialog: {\n    product_detail_title: '运单号详情',\n    basic_info: '基本信息',\n    fee_info: '费用信息',\n    other_fees: '其他费用',\n    product_specs: '产品规格',\n    pricing_info: '价格信息',\n    package_details: '包裹详情',\n    cost_tax_info: '费用和税收信息',\n    select_export_type: '选择导出文件类型',\n    edit_quote_info: '编辑报价信息',\n  },\n  // Form labels\n  form: {\n    name: '姓名',\n    email: '邮箱',\n    phone: '电话号码',\n    address: '地址',\n    status: '状态',\n    date: '日期',\n    time: '时间',\n    amount: '金额',\n    quantity: '数量',\n    weight: '重量',\n    note: '备注',\n    description: '描述',\n    select_customer: '选择客户',\n    select_storage: '选择仓库',\n    partner_name: '合作伙伴名称',\n    select_quote: '选择报价',\n    no_name: '无名称',\n    no_quote: '没有报价',\n    select_customer_first: '请先选择客户',\n    notice_save_product: '添加包裹前请先保存产品！',\n    hs_code: 'HS编码',\n    total_amount: '总金额',\n    created_date: '创建日期',\n    product_name_cn: '产品名称',\n    product_type: '货物类型',\n    suffix_bill: '运单号',\n    transaction_deposit: '国内运费 (¥)',\n    pedicab_deposit: '三轮车费 (¥)',\n    load_deposit: '叉车费 (¥)',\n    other_fee: '其他费用 (¥)',\n    exchange_rate: '汇率',\n    volume: '总体积',\n    number_of_pack: '总件数',\n    price_type: '计费方式',\n    weight_price: '重量价格',\n    volume_price: '体积价格',\n    weight_cost: '原始重量费',\n    volume_cost: '原始体积费',\n    product_amount: '货款 (đ)',\n    import_tax_rate: '进口税率 (%)',\n    vat_tax_rate: '增值税率 (%)',\n    service_fee_rate: '服务费率 (%)',\n    import_tax_amount: '进口税 (đ)',\n    vat_tax_amount: '增值税 (đ)',\n    service_fee_amount: '服务费 (đ)',\n    self_fee: '额外费用 (đ)',\n    self_fee_note: '额外备注',\n    total_profit: '利润 (đ)',\n    subtotal: '小计',\n    image: '图片',\n    choose_file: '选择文件',\n    no_file_chosen: '未选择文件',\n    add: '添加',\n    length: '长',\n    width: '宽',\n    height: '高',\n    weight_sub: '重量',\n    number_of_pack_sub: '件数',\n    no_data: '暂无数据',\n    is_linked: '(已关联订单)',\n    image: '图片',\n    length: '长',\n    width: '宽',\n    height: '高',\n    export_tieu_ngach: '导出文件-小额贸易',\n    export_chinh_ngach: '导出文件-大额贸易',\n    export_chinh_ngach_vi: '导出文件-大额贸易VN',\n    product_brand: '品牌',\n    product_capacity: '功率/容量',\n    product_material: '商品材质',\n    pack_type: '包装规格',\n    product_size: '产品尺寸',\n    total_product: '总产品数',\n    yes: '是',\n    no: '否',\n    no_images: '暂无图片',\n    fee_name: '费用名称',\n    total: '总计',\n  },\n  // Status\n  status: {\n    active: '活跃',\n    inactive: '非活跃',\n    pending: '待处理',\n    completed: '已完成',\n    cancelled: '已取消',\n    processing: '处理中'\n  },\n  // Messages\n  messages: {\n    success: '成功',\n    error: '发生错误',\n    warning: '警告',\n    info: '信息',\n    confirm_delete: '您确定要删除吗？',\n    save_success: '保存成功',\n    delete_success: '删除成功',\n    update_success: '更新成功',\n    no_data: '无数据'\n  },\n\n  // Notification messages\n  notifications: {\n    save_success: '保存成功',\n    delete_success: '删除成功',\n    update_success: '更新成功'\n  },\n\n  // Export messages\n  export: {\n    export_selected_items: '导出 {count} 个已选产品',\n    export_all_items: '根据当前筛选条件导出所有产品',\n    send_custom: '发送海关申报'\n  },\n\n  // Validation messages\n  validation: {\n    product_brand_required: '品牌是必填项'\n  },\n\n  // Error messages\n  errors: {\n    product_no_quote: '该产品尚无报价',\n    cannot_load_quote_info: '加载报价信息时出错',\n    cannot_update_quote: '更新报价信息时出错',\n    save_failed: '保存失败',\n    upload_failed: '上传失败'\n  },\n\n  // Success messages\n  success: {\n    quote_updated: '报价信息更新成功！'\n  },\n  // Order management\n  orders: {\n    title: '订单管理',\n    order_code: '订单编号',\n    customer_name: '客户姓名',\n    order_date: '订单日期',\n    total_amount: '总金额',\n    shipping_fee: '运费',\n    product_name: '产品名称',\n    unit_price: '单价',\n    create_order: '创建订单',\n    order_details: '订单详情'\n  },\n  // Package management \n  packages: {\n    title: '包裹管理',\n    package_code: '包裹编号',\n    tracking_number: '跟踪号码',\n    sender: '发件人',\n    receiver: '收件人',\n    weight: '重量',\n    dimensions: '尺寸',\n    shipping_cost: '运费',\n    create_package: '创建包裹'\n  },\n  // Customer management\n  customers: {\n    title: '客户管理',\n    customer_code: '客户编号',\n    full_name: '全名',\n    phone_number: '电话号码',\n    email_address: '邮箱地址',\n    address: '地址',\n    registration_date: '注册日期',\n    customer_level: '客户等级',\n    create_customer: '创建客户'\n  },\n  // Language\n  language: {\n    vietnamese: '越南语',\n    chinese: '中文',\n    select_language: '选择语言'\n  },\n\n  // Common table headers - 表格标题\n  table_headers: {\n    wallet: '已付款',\n    suffix_bill: '运单号',\n    deposit: '总支出(¥)',\n    total_fee_weight: '总重量费用',\n    import_tax_amount: '进口税',\n    vat_tax_amount: '增值税',\n    total_cost_weight: '总重量成本',\n    total_profit: '总利润',\n    receive_date: '收货日期',\n    deliver_date: '交付日期',\n    store_id: '收货仓库',\n    id: 'ID',\n    username: '用户名',\n    partner_name: '合作伙伴名称',\n    order_codes: '订单编号',\n    bill_codes: '账单编号',\n    email: '邮箱',\n    full_name: '姓名',\n    first_name: '姓',\n    last_name: '名',\n    phone: '电话',\n    address: '地址',\n    status: '状态',\n    action: '操作',\n    created_date: '创建日期',\n    modified_date: '修改日期',\n    modified_by: '修改人',\n    created_by: '创建人',\n    note: '备注',\n    is_split_tax: '是否拆分税费',\n    is_ready: '是否准备好',\n    // Customer headers\n    customer_code: '客户编号',\n    customer_name: '客户姓名',\n    customer: '客户',\n    total_deposit: '总充值',\n    order_amount: '货款',\n    debt: '欠款',\n    sale_staff: '销售人员',\n    level: '等级',\n    role: '权限',\n\n    // Quote headers\n    quote_id: '报价编号',\n    product_image: '产品图片',\n    product_info: '商品类型名称',\n    customs_content: '报关要求',\n    customs_price_note: '税费和报关价格',\n    customs_unit: '报关单位',\n    hs_code: 'HS编码',\n    product_number: '产品数量',\n    customs_price_vnd: '需报关价格',\n    import_tax: '进口税 (%)',\n    vat_tax: '增值税 (%)',\n    service_fee: '服务费 (%)',\n    number_of_pack: '件数',\n    weight: '重量',\n    volume: '体积',\n    is_quoted: '状态',\n\n    // Product/Tracking headers\n    tracking_code: '运单号',\n    product_name: '商品名称',\n    product_name_cn: '中文商品名',\n    product_name_vn: '越南商品名',\n    package_code: '包裹编号',\n    bill_code: '账单',\n    bill_id: '账单编号',\n    total_cost_yuan: '总费用 (¥)',\n    cost_yuan: '费用 (¥)',\n    shipping_fee_yuan: '运费 (¥)',\n    shipping_fee: '运费',\n    shipping_cost: '运输费用',\n    cn_warehouse_date: '入中国仓',\n    package_date: '打包日期',\n    vn_warehouse_date: '入越南仓',\n    export_date: '出越南仓',\n    remaining_pack: '剩余包裹',\n\n    // Storage/Warehouse headers\n    storage_name: '仓库名称',\n    storage_cn: '中国仓库',\n    storage_vn: '收货仓库',\n    available: '可用',\n\n    // Product Type headers\n    product_type_name: '商品类型名称',\n    product_type: '商品类型',\n\n    // Fee headers\n    fee_from_kg: '起 (kg)',\n    fee_to_kg: '至 (kg)',\n    fee_from_m3: '起 (m3)',\n    fee_to_m3: '至 (m3)',\n    unit_price: '单价',\n    price_kg: '公斤价',\n    price_m3: '立方价',\n\n    // Payment headers\n    amount: '金额',\n    total_amount: '总金额',\n    shipping_fee_label: '运费',\n    other_fee: '其他费用',\n    payment_date: '付款日期',\n    content: '内容',\n\n    // Recharge headers\n    recharge_amount: '金额',\n    trade_content: '交易内容',\n\n    // Truck headers\n    truck_code: '车辆编号',\n    license_plate: '车牌号',\n    license_plate_vn: '车牌号 (VN)',\n    truck_date: '装车日期',\n    tranfer_date: '装货日期',\n    release_date: '还车日期',\n    warehouse_date: '入库日期',\n    order_count: '订单数',\n    load_truck: '装车',\n    export_warehouse: '出库',\n\n    // BigPackage headers\n    big_package_code: '包裹',\n    warehouse_code: '入库编号',\n    package_count: '包裹数',\n    import_pack: '入库件数',\n    import_kg: '入库重量',\n    import_m3: '入库体积',\n\n    // Report headers\n    date: '日期',\n    bill_count: '账单数',\n    pack_count: '件数',\n    discount: '折扣',\n    subtotal: '小计',\n    cost: '成本',\n    profit: '利润',\n\n    // Dimension headers\n    length: '长',\n    width: '宽',\n    height: '高',\n\n    // Additional headers\n    exchange_rate: '汇率',\n    original_weight_fee: '原始重量费',\n    import_tax_fee: '进口税',\n    vat_tax_fee: '增值税',\n    service_fee_amount: '服务费',\n    attributes: '属性',\n    quantity: '数量',\n    price_yuan: '价格 (¥)',\n    total_yuan: '总计 (¥)',\n    s_pack: '件数',\n    kg: 'KG',\n    m3: 'M3',\n    number_of_code: '总单号',\n    total_truck: '车辆数',\n    total_pack: '总件数',\n    total_weight: '总重量',\n    total_volume: '总体积',\n    total_deposit: '总押金',\n    total_revenue: '总营收',\n    fee_ship_vnd: '运费',\n    discount_amount: '折扣',\n    amount_vnd: '总金额',\n    line_amount: '成交金额',\n    paid_amount: '已付款',\n    remaining_amount: '未付款',\n    actions: '操作',\n    is_hidden: '是否隐藏',\n  }\n}","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport vi from './locales/vi'\nimport zh from './locales/zh'\n\nVue.use(VueI18n)\n\nconst messages = {\n  vi,\n  zh\n}\n\n// Tự động phát hiện ngôn ngữ trình duyệt, ưu tiên localStorage, sau đó đến navigator.language\nfunction detectLocale() {\n  const savedLocale = localStorage.getItem('locale');\n  if (savedLocale) return savedLocale;\n  const browserLang = navigator.language || navigator.userLanguage;\n  if (browserLang.startsWith('vi')) return 'vi';\n  if (browserLang.startsWith('zh')) return 'zh';\n  return 'vi';\n}\n\nconst locale = detectLocale();\n\nconst i18n = new VueI18n({\n  locale,\n  fallbackLocale: 'vi', // Fallback về tiếng Việt nếu không tìm thấy bản dịch\n  messages\n})\n\nexport default i18n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"appRoot\"}},[(!_vm.$route.meta.public)?[_c('v-app',{staticClass:\"app\",attrs:{\"id\":\"inspire\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"}},[_c('app-drawer',{staticClass:\"app--drawer\"}),_c('app-toolbar',{staticClass:\"app--toolbar\",class:{ 'toolbar-expanded': _vm.sidebarExpanded}}),_c('v-main',[(_vm.$route.meta.breadcrumb)?_c('page-header'):_vm._e(),_c('div',{staticClass:\"page-wrapper\"},[_c('router-view')],1),_c('v-footer',{staticClass:\"pa-3 pt-10 app--footer\",attrs:{\"height\":\"auto\"}},[_c('span',{staticClass:\"caption\"},[_vm._v(\"thpglobal.vn design © \"+_vm._s(new Date().getFullYear()))]),_c('v-spacer')],1)],1),_c('app-fab'),_c('v-navigation-drawer',{staticClass:\"setting-drawer\",attrs:{\"temporary\":\"\",\"right\":\"\",\"hide-overlay\":\"\",\"fixed\":\"\"},model:{value:(_vm.rightDrawer),callback:function ($$v) {_vm.rightDrawer=$$v},expression:\"rightDrawer\"}}),_c('v-snackbar',{attrs:{\"transition\":\"slide-x-transition\",\"timeout\":_vm.snackbar.timeout ? _vm.snackbar.timeout : 5000,\"color\":_vm.snackbar.color,\"top\":\"\",\"centered\":\"\",\"multi-line\":\"\",\"rounded\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"color\":\"white\",\"icon\":\"\"},on:{\"click\":function($event){_vm.snackbar.show = false}}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-close-circle-outline\")])],1)]}}],null,false,3722363883),model:{value:(_vm.snackbar.show),callback:function ($$v) {_vm.$set(_vm.snackbar, \"show\", $$v)},expression:\"snackbar.show\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.snackbar.text)+\"\\n          \")]),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"320\"},model:{value:(_vm.delDialog),callback:function ($$v) {_vm.delDialog=$$v},expression:\"delDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"subheading\"},[_vm._v(_vm._s(_vm.$t('actions.confirm')))]),_c('v-card-text',[_vm._v(_vm._s(_vm.delMessage || _vm.$t('messages.confirm_delete')))]),_c('v-card-actions',[_c('div',{staticClass:\"flex-grow-1\"}),_c('v-btn',{on:{\"click\":_vm.delConfirmed}},[_vm._v(_vm._s(_vm.$t('actions.confirm')))]),_c('v-btn',{attrs:{\"color\":\"red darken-1 white--text\"},on:{\"click\":function($event){_vm.delDialog = false}}},[_vm._v(_vm._s(_vm.$t('actions.cancel')))])],1)],1)],1)],1)],1)]:[_c('transition',[_c('keep-alive',[_c('router-view',{key:_vm.$route.fullpath})],1)],1)],(_vm.isConfirm)?_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialogMessage),callback:function ($$v) {_vm.dialogMessage=$$v},expression:\"dialogMessage\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"grey lighten-2\"},[_vm._v(\"\\n        Thông báo\\n      \")]),_c('v-card-text',{staticClass:\"pt-6\",domProps:{\"innerHTML\":_vm._s(_vm.configuration.MessageContent)}}),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogMessage = false}}},[_vm._v(\"\\n          Đóng\\n        \")])],1)],1)],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-navigation-drawer',{attrs:{\"id\":\"appDrawer\",\"mini-variant\":_vm.mini,\"fixed\":\"\",\"dark\":_vm.$vuetify.dark,\"app\":\"\",\"width\":\"220\"},on:{\"update:miniVariant\":function($event){_vm.mini=$event},\"update:mini-variant\":function($event){_vm.mini=$event}},model:{value:(_vm.sidebarExpanded),callback:function ($$v) {_vm.sidebarExpanded=$$v},expression:\"sidebarExpanded\"}},[_c('v-app-bar',{staticClass:\"hpo_color\",attrs:{\"color\":\"white\"}},[_c('img',{attrs:{\"src\":_vm.computeLogo,\"height\":\"54px\",\"alt\":\"\"}})]),_c('vue-perfect-scrollbar',{staticClass:\"drawer-menu--scroll\",attrs:{\"settings\":_vm.scrollSettings}},[_c('v-list',{attrs:{\"dense\":\"\",\"expand\":\"\"}},[_vm._l((_vm.menus),function(item,i){return [(item.roleId & _vm.userRole && (item.hideRole == null || item.hideRole.indexOf(_vm.userRoleType) === -1))?[(item.items && !item.hideSub)?_c('v-list-group',{key:`group-${item.name}`,attrs:{\"group\":item.group,\"prepend-icon\":item.icon,\"no-action\":\"no-action\"}},[_c('v-list-item',{attrs:{\"slot\":\"activator\",\"ripple\":\"ripple\"},slot:\"activator\"},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.titleKey ? _vm.$t('routes.' + item.titleKey) : item.title))])],1)],1),_vm._l((item.items),function(subItem,i){return [(subItem.items)?_c('v-list-group',{key:subItem.name,attrs:{\"group\":subItem.group,\"sub-group\":\"sub-group\"}},[_c('v-list-item',{attrs:{\"slot\":\"activator\",\"ripple\":\"ripple\"},slot:\"activator\"},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(subItem.titleKey ? _vm.$t('routes.' + subItem.titleKey) : subItem.title))])],1)],1),_vm._l((subItem.children),function(grand,i){return _c('v-list-item',{key:i,attrs:{\"to\":_vm.genChildTarget(item, grand),\"href\":grand.href,\"ripple\":\"ripple\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(grand.titleKey ? _vm.$t('routes.' + grand.titleKey) : grand.title))])],1)],1)})],2):(_vm.userRole & item.roleId)?_c('v-list-item',{key:i,attrs:{\"to\":_vm.genChildTarget(item, subItem),\"href\":subItem.href,\"disabled\":subItem.disabled,\"target\":subItem.target,\"ripple\":\"ripple\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_c('span',[_vm._v(_vm._s(subItem.titleKey ? _vm.$t('routes.' + subItem.titleKey) : subItem.title))])])],1),(subItem.action)?_c('v-list-item-action',[_c('v-icon',{class:[subItem.actionClass || 'success--text']},[_vm._v(_vm._s(subItem.action))])],1):_vm._e()],1):_vm._e()]})],2):(item.header)?_c('v-subheader',{key:`header-${i}`},[_vm._v(_vm._s(item.header))]):(item.divider)?_c('v-divider',{key:`divider-${i}`}):_c('v-list-item',{key:item.name,attrs:{\"to\":!item.href ? { name: item.name } : null,\"href\":item.href,\"ripple\":\"ripple\",\"disabled\":item.disabled,\"target\":item.target,\"rel\":\"noopener\"}},[(item.icon)?_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',[(item.badge && _vm.getOrderNumber(item.name))?_c('v-badge',{attrs:{\"color\":\"orange\",\"content\":_vm.getOrderNumber(item.name)}},[_vm._v(\"\\n                  \"+_vm._s(item.titleKey ? _vm.$t('routes.' + item.titleKey) : item.title)+\"\\n                \")]):_c('span',[_vm._v(_vm._s(item.titleKey ? _vm.$t('routes.' + item.titleKey) : item.title))])],1)],1),(item.subAction)?_c('v-list-item-action',[_c('v-icon',{staticClass:\"success--text\"},[_vm._v(_vm._s(item.subAction))])],1):_vm._e()],1)]:_vm._e()]})],2),_c('div',{staticClass:\"extend-menu\"})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default [\n  {\n    titleKey: 'dashboard',\n    title: 'Tổng quan',\n    group: 'apps',\n    icon: 'dashboard',\n    name: 'Dashboard',\n    roleId: 1\n  },\n  {\n    titleKey: 'quotes',\n    title: 'Khai báo',\n    group: 'apps',\n    icon: 'request_quote',\n    name: 'QuoteList',\n    roleId: 64,\n    children: [\n      { name: 'QuoteDetail', title: 'Chi tiết khai báo', component: 'QuoteDetail' }\n    ]\n  },\n  {\n    titleKey: 'deposit',\n    title: 'Nạp tiền',\n    group: 'apps',\n    icon: 'account_balance_wallet',\n    name: 'RechargeHistory',\n    roleId: 512\n  },\n  {\n    titleKey: 'customers',\n    name: 'CustomerList', \n    title: 'Khách hàng', \n    icon: 'account_box',\n    name: 'CustomerList', \n    roleId: 2,\n    children: [\n      { name: 'CustomerDetail', titleKey: 'customer_detail', title: 'Chi tiết khách hàng', component: 'CustomerDetail' }\n    ]\n  },\n  // {\n  //   title: 'Tracking',\n  //   group: 'apps',\n  //   icon: 'gps_fixed',\n  //   name: 'Tracking',\n  //   roleId: 2048\n  // },\n  {\n    titleKey: 'tracking_code',\n    title: 'Mã bill',\n    group: 'ma-bill',\n    icon: 'inventory',\n    name: 'ProductList',\n    roleId: 32,\n    items: [\n      { titleKey: 'all', title: 'Tất cả', name: 'ProductList', component: 'ProductList' },\n      { titleKey: 'import_tq', title: 'Nhập kho TQ', name: 'ProductList_TQ', component: 'ProductList_TQ' },\n      { titleKey: 'waiting_for_truck', title: 'Chờ xếp xe', name: 'ProductList_Wait', component: 'ProductList_Wait' },\n      { titleKey: 'on_the_way', title: 'Đã xếp xe', name: 'ProductList_OnWay', component: 'ProductList_OnWay' },\n      // { titleKey: 'processing_tq', title: 'Chờ thông quan TQ', name: 'ProductList_Processing_TQ', component: 'ProductList_Processing_TQ' },\n      { titleKey: 'check', title: 'Kiểm hóa', name: 'ProductList_Check', component: 'ProductList_Check' },\n      { titleKey: 'processing_vn', title: 'Chờ thông quan VN', name: 'ProductList_Processing_VN', component: 'ProductList_Processing_VN' },\n      { titleKey: 'import_vn', title: 'Nhập kho VN', name: 'ProductList_VN', component: 'ProductList_VN' },\n      { titleKey: 'exported', title: 'Đã xuất kho', name: 'ProductList_Ex', component: 'ProductList_Ex' },\n      { titleKey: 'no_owner', title: 'Hàng không tên', name: 'ProductNoneOwnerList', component: 'ProductNoneOwnerList' },\n    ]\n  },\n  {\n    titleKey: 'product_inventory',\n    title: 'Hàng tồn',\n    group: 'hang-ton',\n    icon: 'inventory',\n    name: 'ProductListInventory',\n    roleId: 64,\n    items: [\n      { titleKey: 'product_inventory_in_tq', title: 'Tồn kho TQ', name: 'ProductList_In_TQ', component: 'ProductList_In_TQ' },\n      { titleKey: 'product_inventory_in_vn', title: 'Tồn kho VN', name: 'ProductList_In_VN', component: 'ProductList_In_VN' },\n    ]\n  },\n  {\n    titleKey: 'truck',\n    title: 'Xếp xe',\n    group: 'apps',\n    icon: 'local_shipping',\n    name: 'TruckList',\n    roleId: 64,\n    children: [\n      { name: 'TruckDetail', titleKey: 'truck_detail', title: 'Chi tiết xếp xe', component: 'TruckDetail' }\n    ]\n  },\n  {\n    titleKey: 'warehouse_export',\n    title: 'Xuất kho',\n    group: 'apps',\n    icon: 'receipt',\n    name: 'BillList',\n    roleId: 4096,\n    children: [\n      { name: 'BillDetail', titleKey: 'bill_detail', title: 'Chi tiết xuất kho', component: 'BillDetail' }\n    ]\n  },\n  // {\n  //   title: 'Thanh toán',\n  //   group: 'apps',\n  //   icon: 'attach_money',\n  //   name: 'PayOrderList',\n  //   roleId: 8\n  // },\n  // {\n  //   title: 'Nhập kho TQ',\n  //   group: 'apps',\n  //   icon: 'assignment',\n  //   name: 'StoreManager',\n  //   roleId: 128\n  // },\n  // {\n  //   title: 'Đóng bao TQ',\n  //   group: 'apps',\n  //   icon: 'archive',\n  //   name: 'BigPackage',\n  //   roleId: 64\n  // },\n  {\n    titleKey: 'reports',\n    title: 'Báo cáo',\n    group: 'bao-cao',\n    icon: 'speed',\n    name: 'Report',\n    roleId: 2,\n    items: [\n      {\n        titleKey: 'revenue_report',\n        title: 'Doanh thu',\n        name: 'bao-cao-doanh-thu',\n        component: 'bao-cao-doanh-thu',\n        roleId: 1024\n      },\n      {\n        titleKey: 'truck_report',\n        title: 'Xe hàng',\n        name: 'bao-cao-xe-hang',\n        component: 'bao-cao-xe-hang',\n        roleId: 1024\n      },\n      {\n        titleKey: 'customer_debt_report',\n        title: 'Công nợ khách hàng',\n        name: 'bao-cao-cong-no-khach-hang',\n        component: 'bao-cao-cong-no-khach-hang',\n        roleId: 1024\n      }\n    ]\n  },\n  {\n    titleKey: 'settings',\n    title: 'Cài đặt',\n    group: 'cai-dat',\n    icon: 'settings',\n    name: 'Setting',\n    roleId: 256,\n    items: [\n      {\n        titleKey: 'vn_warehouse_config',\n        title: 'Kho nhận',\n        name: 'StorageList',\n        component: 'StorageList'\n      },\n      {\n        titleKey: 'product_type',\n        title: 'Loại hàng',\n        name: 'ProductTypeList',\n        component: 'ProductTypeList'\n      },\n      {\n        titleKey: 'weight_fee',\n        title: 'Phí cân',\n        name: 'FeeWeightList',\n        component: 'FeeWeightList'\n      },\n      {\n        titleKey: 'volume_fee',\n        title: 'Phí khối',\n        name: 'FeeVolumeList',\n        component: 'FeeVolumeList'\n      },\n      {\n        titleKey: 'cost_weight',\n        title: 'Giá gốc',\n        name: 'CostWeightList',\n        component: 'CostWeightList'\n      },\n      {\n        titleKey: 'staff',\n        title: 'Nhân viên',\n        name: 'StaffList',\n        component: 'StaffList', \n        children: [\n          { name: 'StaffDetail', title: 'Chi tiết nhân viên', component: 'StaffDetail' }\n        ]\n      },\n      {\n        titleKey: 'general_config',\n        name: 'Configuration', \n        title: 'Cấu hình chung', \n        component: 'Configuration'\n      },\n      {\n        titleKey: 'audit_log',\n        title: 'Nhật ký thao tác',\n        name: 'AuditLogList',\n        component: 'AuditLogList'\n      }\n    ]\n  },\n  // {\n  //   title: 'Lịch sử thanh toán',\n  //   group: 'apps',\n  //   icon: 'attach_money',\n  //   name: 'PayHistoryList',\n  //   roleId: 16\n  // }\n];\n","<template>\n  <v-navigation-drawer\n    id=\"appDrawer\"\n    :mini-variant.sync=\"mini\"\n    fixed\n    :dark=\"$vuetify.dark\"\n    app\n    v-model=\"sidebarExpanded\"\n    width=\"220\"\n    >\n    <v-app-bar color=\"white\" class=\"hpo_color\">\n      <img v-bind:src=\"computeLogo\" height=\"54px\" alt=\"\">\n    </v-app-bar>\n    <vue-perfect-scrollbar class=\"drawer-menu--scroll\" :settings=\"scrollSettings\">\n      <v-list dense expand>\n        <template v-for=\"(item, i) in menus\">\n          <template v-if=\"item.roleId & userRole && (item.hideRole == null || item.hideRole.indexOf(userRoleType) === -1)\">\n            <!--group with subitems-->\n            <v-list-group v-if=\"item.items && !item.hideSub\" :key=\"`group-${item.name}`\" :group=\"item.group\" :prepend-icon=\"item.icon\" no-action=\"no-action\">\n                <v-list-item slot=\"activator\" ripple=\"ripple\">\n                  <v-list-item-content>\n                    <v-list-item-title>{{ item.titleKey ? $t('routes.' + item.titleKey) : item.title }}</v-list-item-title>\n                  </v-list-item-content>\n                </v-list-item>\n                <template v-for=\"(subItem, i) in item.items\">\n                  <!--sub group-->\n                  <v-list-group v-if=\"subItem.items\" :key=\"subItem.name\" :group=\"subItem.group\" sub-group=\"sub-group\">\n                    <v-list-item slot=\"activator\" ripple=\"ripple\">\n                      <v-list-item-content>\n                        <v-list-item-title>{{ subItem.titleKey ? $t('routes.' + subItem.titleKey) : subItem.title }}</v-list-item-title>\n                      </v-list-item-content>\n                    </v-list-item>\n                    <v-list-item v-for=\"(grand, i) in subItem.children\" :key=\"i\" :to=\"genChildTarget(item, grand)\" :href=\"grand.href\" ripple=\"ripple\">\n                      <v-list-item-content>\n                        <v-list-item-title>{{ grand.titleKey ? $t('routes.' + grand.titleKey) : grand.title }}</v-list-item-title>\n                      </v-list-item-content>\n                    </v-list-item>\n                  </v-list-group>\n                  <!--child item-->\n                  <v-list-item v-else-if=\"userRole & item.roleId\" :key=\"i\" :to=\"genChildTarget(item, subItem)\" :href=\"subItem.href\" :disabled=\"subItem.disabled\" :target=\"subItem.target\" ripple=\"ripple\">\n                    <v-list-item-content>\n                      <v-list-item-title><span>{{ subItem.titleKey ? $t('routes.' + subItem.titleKey) : subItem.title }}</span></v-list-item-title>\n                    </v-list-item-content>\n                    <v-list-item-action v-if=\"subItem.action\">\n                      <v-icon :class=\"[subItem.actionClass || 'success--text']\">{{ subItem.action }}</v-icon>\n                    </v-list-item-action>\n                  </v-list-item>\n                </template>\n            </v-list-group>\n            <v-subheader v-else-if=\"item.header\" :key=\"`header-${i}`\">{{ item.header }}</v-subheader>\n            <v-divider v-else-if=\"item.divider\" :key=\"`divider-${i}`\"></v-divider>\n            <!--top-level link-->\n            <v-list-item v-else :to=\"!item.href ? { name: item.name } : null\" :href=\"item.href\" ripple=\"ripple\" :disabled=\"item.disabled\" :target=\"item.target\" rel=\"noopener\" :key=\"item.name\">\n              <v-list-item-action v-if=\"item.icon\">\n                <v-icon>{{ item.icon }}</v-icon>\n              </v-list-item-action>\n              <v-list-item-content>\n                <v-list-item-title>\n                  <v-badge color=\"orange\" :content=\"getOrderNumber(item.name)\" v-if=\"item.badge && getOrderNumber(item.name)\">\n                    {{ item.titleKey ? $t('routes.' + item.titleKey) : item.title }}\n                  </v-badge>\n                  <span v-else>{{ item.titleKey ? $t('routes.' + item.titleKey) : item.title }}</span>\n                  </v-list-item-title>\n              </v-list-item-content>\n              <v-list-item-action v-if=\"item.subAction\">\n                <v-icon class=\"success--text\">{{ item.subAction }}</v-icon>\n              </v-list-item-action>\n            </v-list-item>\n        </template>\n      </template>\n      </v-list>\n      <div class=\"extend-menu\"></div>\n    </vue-perfect-scrollbar>\n  </v-navigation-drawer>\n</template>\n<script>\nimport menu from '@/api/menu';\nimport VuePerfectScrollbar from 'vue-perfect-scrollbar';\nimport configs from \"@/configs\";\nexport default {\n  name: 'app-drawer',\n  components: {\n    VuePerfectScrollbar,\n  },\n  props: {\n    expanded: {\n      type: Boolean,\n      default: true\n    },\n  },\n  data: () => ({\n    mini: false,\n    menus: menu,\n    scrollSettings: {\n      maxScrollbarLength: 160,\n      wheelPropagation: true\n    }    \n  }),\n  computed: {\n    sidebarExpanded: {\n      get() {\n        return this.$store.state.commons.sidebarExpanded;\n      },\n      set(val) {\n        this.$store.commit(\"commons/setSidebarExpanded\", { expanded: val });\n      }\n    },\n    computeGroupActive () {\n      return true;\n    },\n    computeLogo () {\n      return '/static/logo.png';\n    },\n    userRole() {\n      const role_type = _.find(configs.ROLES, {'value': this.$store.state.authentication.user.roleid})\n      return role_type ? role_type.modules : 0;\n    },\n    sideToolbarColor () {\n      return this.$vuetify.options.extra.sideNav;\n    }\n  },\n  methods: {\n    genChildTarget (item, subItem) {\n      if (subItem.href) return;\n      if (subItem.component) {\n        return {\n          name: subItem.component,\n        };\n      }\n      return { name: `${item.group}/${(subItem.name)}` };\n    },\n    checkAuth() {\n      if(localStorage.getItem('jwt') == null) {\n        setTimeout(this.$router.replace({ path: '/login' }),100);\n      }\n    },\n  },\n  created() {\n    this.checkAuth();\n    this.timer = setInterval(this.checkAuth, 1000);\n  },\n  destroyed() {\n    clearInterval(this.timer);\n  },\n};\n</script>\n\n\n<style lang=\"stylus\">\n#appDrawer\n  overflow: hidden\n  .drawer-menu--scroll\n    height: calc(100vh - 48px)\n    overflow: auto\n\n</style>\n","import mod from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppDrawer.vue?vue&type=template&id=53e4ed56&\"\nimport script from \"./AppDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDrawer.vue?vue&type=style&index=0&id=53e4ed56&prod&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app-bar',{staticClass:\"hpo_color\",attrs:{\"fixed\":\"\"}},[_c('v-app-bar-nav-icon',{staticClass:\"hpo_color\",on:{\"click\":function($event){$event.stopPropagation();return _vm.handleDrawerToggle.apply(null, arguments)}}}),_c('v-spacer'),_c('language-selector'),_c('v-menu',{staticClass:\"pr-3\",attrs:{\"offset-y\":\"\",\"origin\":\"center center\",\"nudge-bottom\":10,\"transition\":\"scale-transition\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"large\":\"\",\"text\":\"\"}},on),[_c('v-label',[_vm._v(_vm._s(_vm.userName))]),_c('v-avatar',{attrs:{\"size\":\"30px\"}},[_c('img',{attrs:{\"src\":\"/static/avatar/avatar.png\",\"alt\":\"HPO\"}})])],1)]}}])},[_c('v-list',{staticClass:\"pa-0\"},_vm._l((_vm.items),function(item,index){return _c('v-list-item',{key:index,attrs:{\"to\":!item.href ? { name: item.name } : null,\"href\":item.href,\"ripple\":\"ripple\",\"disabled\":item.disabled,\"target\":item.target,\"rel\":\"noopener\"},on:{\"click\":item.click}},[(item.icon)?_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n// export function camel (str) {\n//   const camel = (str || '').replace(/-([^-])/g, g => g[1].toUpperCase());\n\n//   return capitalize(camel);\n// }\n\n// export function camelActual (str) {\n//   return (str || '').replace(/-(\\w)/g, (_, c) => (c ? c.toUpperCase() : ''));\n// }\n\n// export function kebab (str) {\n//   return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n// }\n\n// export function capitalize (str) {\n//   str = str || '';\n\n//   return `${str.substr(0, 1).toUpperCase()}${str.slice(1)}`;\n// }\n\n// export function findProduct (store, id) {\n//   return store.state.store.products.find(p => p.id === id);\n// }\n\n// export function isOnSale (variants) {\n//   return variants.some(variant => {\n//     return parseFloat(variant.price) < parseFloat(variant.compareAtPrice);\n//   });\n// }\n\n// export function randomNumber (min, max) {\n//   return Math.floor(Math.random() * max) + min;\n// }\n\n// export function randomString (length = 5) {\n//   let text = '';\n//   const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n//   for (let i = 0; i < length; i++) {\n//     text += possible.charAt(Math.floor(Math.random() * possible.length));\n//   }\n\n//   return text;\n// }\nconst randomElement = (arr = []) => {\n  return arr[Math.floor(Math.random() * arr.length)];\n};\n\nconst kebab =  (str) => {\n  return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n};\n\nconst toggleFullScreen = () => {\n  let doc = window.document;\n  let docEl = doc.documentElement;\n\n  let requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;\n  let cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;\n\n  if (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {\n    requestFullScreen.call(docEl);\n  }\n  else {\n    cancelFullScreen.call(doc);\n  }\n};\n\nexport default {\n  randomElement,\n  toggleFullScreen,\n  kebab\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"elevation\":\"2\",\"title\":_vm.$t('language.select_language'),\"rounded\":\"\"}},'v-btn',attrs,false),on),[_c('v-avatar',{staticClass:\"mr-2\",attrs:{\"size\":\"18\"}},[_c('v-img',{attrs:{\"src\":_vm.languages.find(l => l.code === _vm.currentLanguage).flag}})],1),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.languages.find(l => l.code === _vm.currentLanguage).name))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-chevron-down\")])],1)]}}])},[_c('v-list',_vm._l((_vm.languages),function(language){return _c('v-list-item',{key:language.code,class:{ 'v-list-item--active': _vm.currentLanguage === language.code },on:{\"click\":function($event){return _vm.changeLanguage(language.code)}}},[_c('v-list-item-avatar',[_c('v-img',{attrs:{\"src\":language.flag,\"contain\":\"\",\"height\":\"20\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(language.name))])],1),(_vm.currentLanguage === language.code)?_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"fa fa-check\")])],1):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-menu offset-y>\n    <template v-slot:activator=\"{ on, attrs }\">\n      <v-btn\n        elevation=\"2\"\n        v-bind=\"attrs\"\n        v-on=\"on\"\n        class=\"ma-2\"\n        :title=\"$t('language.select_language')\"\n        rounded\n      >\n        <v-avatar size=\"18\" class=\"mr-2\">\n          <v-img :src=\"languages.find(l => l.code === currentLanguage).flag\" />\n        </v-avatar>\n        <span class=\"font-weight-bold\">{{ languages.find(l => l.code === currentLanguage).name }}</span>\n        <v-icon right>mdi-chevron-down</v-icon>\n      </v-btn>\n    </template>\n    \n    <v-list>\n      <v-list-item\n        v-for=\"language in languages\"\n        :key=\"language.code\"\n        @click=\"changeLanguage(language.code)\"\n        :class=\"{ 'v-list-item--active': currentLanguage === language.code }\"\n      >\n        <v-list-item-avatar>\n          <v-img :src=\"language.flag\" contain height=\"20\"></v-img>\n        </v-list-item-avatar>\n        <v-list-item-content>\n          <v-list-item-title>{{ language.name }}</v-list-item-title>\n        </v-list-item-content>\n        <v-list-item-action v-if=\"currentLanguage === language.code\">\n          <v-icon color=\"primary\">fa fa-check</v-icon>\n        </v-list-item-action>\n      </v-list-item>\n    </v-list>\n  </v-menu>\n</template>\n\n<script>\nexport default {\n  name: 'LanguageSelector',\n  data() {\n    return {\n      languages: [\n        {\n          code: 'vi',\n          name: 'Tiếng Việt',\n          flag: 'https://flagcdn.com/w20/vn.png'\n        },\n        {\n          code: 'zh',\n          name: '中文',\n          flag: 'https://flagcdn.com/w20/cn.png'\n        }\n      ]\n    }\n  },\n  computed: {\n    currentLanguage() {\n      return this.$i18n.locale\n    }\n  },\n  methods: {\n    changeLanguage(languageCode) {\n      this.$i18n.locale = languageCode\n      localStorage.setItem('locale', languageCode)\n      \n      // Reload trang để đảm bảo tất cả component được cập nhật\n      this.$nextTick(() => {\n        window.location.reload()\n      })\n    }\n  }\n}\n</script>\n\n<style scoped>\n.v-list-item--active {\n  background-color: rgba(25, 118, 210, 0.12);\n}\n</style>","import mod from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageSelector.vue?vue&type=template&id=6e92ad1e&scoped=true&\"\nimport script from \"./LanguageSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageSelector.vue?vue&type=style&index=0&id=6e92ad1e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6e92ad1e\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <v-app-bar fixed class=\"hpo_color\">\n    <v-app-bar-nav-icon @click.stop=\"handleDrawerToggle\" class=\"hpo_color\"></v-app-bar-nav-icon>\n    <v-spacer></v-spacer>\n     <!-- Language Selector -->\n    <language-selector></language-selector>\n    \n    <v-menu\n      offset-y\n      origin=\"center center\"\n      :nudge-bottom=\"10\"\n      transition=\"scale-transition\"\n      class=\"pr-3\"\n    >\n      <template v-slot:activator=\"{ on }\">\n        <v-btn large text v-on=\"on\">\n          <v-label>{{userName}}</v-label>\n          <v-avatar size=\"30px\">\n            <img src=\"/static/avatar/avatar.png\" alt=\"HPO\" />\n          </v-avatar>\n        </v-btn>\n      </template>\n      <v-list class=\"pa-0\">\n        <v-list-item\n          v-for=\"(item,index) in items\"\n          :to=\"!item.href ? { name: item.name } : null\"\n          :href=\"item.href\"\n          @click=\"item.click\"\n          ripple=\"ripple\"\n          :disabled=\"item.disabled\"\n          :target=\"item.target\"\n          rel=\"noopener\"\n          :key=\"index\"\n        >\n          <v-list-item-action v-if=\"item.icon\">\n            <v-icon>{{ item.icon }}</v-icon>\n          </v-list-item-action>\n          <v-list-item-content>\n            <v-list-item-title>{{ item.title }}</v-list-item-title>\n          </v-list-item-content>\n        </v-list-item>\n      </v-list>\n    </v-menu>\n  </v-app-bar>\n</template>\n\n<script>\n// import NotificationList from \"@/components/widgets/list/NotificationList\";\nimport Util from \"@/util\";\nimport LanguageSelector from \"@/components/general/LanguageSelector\";\n// import { mapState } from \"vuex\";\n// import moment from \"moment\";\nimport _ from \"lodash\";\nexport default {\n  name: \"app-toolbar\",\n  components: {\n    LanguageSelector\n  },\n  data: () => ({\n    items: [\n      {\n        icon: \"manage_accounts\",\n        href: \"/tai-khoan\",\n        title: \"Tài khoản\",\n        click: e => {\n          this.$router.push({ path: \"tai-khoan\" });\n        }\n      },\n      {\n        icon: \"logout\",\n        href: \"#\",\n        title: \"Đăng xuất\",\n        click: () => {\n          window.getApp.$emit(\"APP_LOGOUT\");\n        }\n      }\n    ]\n  }),\n  computed: {\n    toolbarColor() {\n      return this.$vuetify.options.extra.mainNav;\n    },\n    userName() {\n      return this.$store.state.authentication.user.username;\n    },\n  },\n  methods: {\n    handleDrawerToggle() {\n      window.getApp.$emit(\"APP_DRAWER_TOGGLED\");\n    },\n    handleFullScreen() {\n      Util.toggleFullScreen();\n    }\n  },\n  destroyed() {\n    clearInterval(this.timer);\n  }\n};\n</script>\n","import mod from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppToolbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppToolbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppToolbar.vue?vue&type=template&id=44edc310&\"\nimport script from \"./AppToolbar.vue?vue&type=script&lang=js&\"\nexport * from \"./AppToolbar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-fab-transition',[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fab),expression:\"fab\"}],attrs:{\"fab\":\"fab\",\"small\":\"\",\"dark\":\"dark\",\"fixed\":\"fixed\",\"bottom\":\"bottom\",\"right\":\"right\",\"color\":\"#0051a2\"},on:{\"click\":_vm.toTop}},[_c('v-icon',[_vm._v(\"keyboard_arrow_up\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-fab-transition>\n    <v-btn fab=\"fab\" small dark=\"dark\" fixed=\"fixed\" bottom=\"bottom\" right=\"right\" color=\"#0051a2\"  v-show=\"fab\" @click=\"toTop\">\n      <v-icon>keyboard_arrow_up</v-icon>\n    </v-btn>\n  </v-fab-transition>\n</template>\n\n<script>\nexport default {\n  name: 'app-fab',\n\n  data: () => ({\n    fab: false\n  }),\n\n  methods: {\n    onScroll () {\n      if (typeof window === 'undefined') return;\n\n      const top = window.pageYOffset ||\n        document.documentElement.offsetTop ||\n        0;\n\n      this.fab = top > 300;\n    },\n    toTop () {\n      this.$router.push({ hash: '' });\n      this.$vuetify.goTo(0);\n    }\n  }\n};\n</script>\n","import mod from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppFab.vue?vue&type=template&id=9f6ef06a&\"\nimport script from \"./AppFab.vue?vue&type=script&lang=js&\"\nexport * from \"./AppFab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-layout',{staticClass:\"align-center layout pl-0 pt-0 app--page-header\",attrs:{\"row\":\"\"}},[_c('div',{staticClass:\"page-header-left\"},[_c('v-breadcrumbs',{attrs:{\"divider\":\"-\",\"items\":_vm.breadcrumbs},scopedSlots:_vm._u([{key:\"item\",fn:function(props){return [_c('v-breadcrumbs-item',{class:[props.item.disabled && 'disabled'],attrs:{\"href\":props.item.href}},[_c('h3',[_vm._v(_vm._s(props.item.text))])])]}}])}),(_vm.breadcrumbs.length == 0)?[_c('v-breadcrumbs',[_c('v-breadcrumbs-item',[_c('h3',[_vm._v(_vm._s(_vm.routeName))])])],1)]:_vm._e()],2),_c('v-spacer'),_c('div',{staticClass:\"page-header-right pr-6\"},[(_vm.$route.meta.importButton && !_vm.options.invisibleImportButton)?_c('v-btn',{attrs:{\"small\":\"\"},on:{\"click\":_vm.importAction}},[_c('v-icon',{attrs:{\"color\":\"#0051a2\"}},[_vm._v(_vm._s(_vm.$route.meta.importButtonIcon ? _vm.$route.meta.importButtonIcon : 'upload'))]),_vm._v(\"  \"+_vm._s(_vm.$route.meta.importButtonText ? _vm.$route.meta.importButtonText : _vm.$t('actions.import'))+\"\\n        \")],1):_vm._e(),(_vm.$route.meta.exportButton && !_vm.options.invisibleExportButton)?_c('v-btn',{attrs:{\"small\":\"\"},on:{\"click\":_vm.exportAction}},[_c('v-icon',{attrs:{\"color\":\"#0051a2\"}},[_vm._v(_vm._s(_vm.$route.meta.exportButtonIcon ? _vm.$route.meta.exportButtonIcon : 'download'))]),_vm._v(\"  \"+_vm._s(_vm.$route.meta.exportButtonText ? _vm.$route.meta.exportButtonText : _vm.$t('actions.export'))+\"\\n        \")],1):_vm._e(),(_vm.$route.meta.saveButton && !_vm.options.invisibleSaveButton)?_c('v-btn',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['ctrl', 's']),expression:\"['ctrl', 's']\",modifiers:{\"once\":true}}],attrs:{\"small\":\"\"},on:{\"click\":_vm.saveData,\"shortkey\":_vm.saveData}},[_c('v-icon',{attrs:{\"color\":\"#0051a2\"}},[_vm._v(_vm._s(_vm.$route.meta.saveButtonIcon ? _vm.$route.meta.saveButtonIcon : 'save'))]),_vm._v(\"  \"+_vm._s(_vm.$route.meta.saveButtonText ? _vm.$route.meta.saveButtonText : _vm.$t('actions.save'))+\"\\n        \")],1):_vm._e(),(_vm.$route.meta.createButton && !_vm.options.invisibleCreateButton)?_c('v-btn',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['alt', 'n']),expression:\"['alt', 'n']\",modifiers:{\"once\":true}}],attrs:{\"small\":\"\"},on:{\"click\":_vm.createData,\"shortkey\":_vm.createData}},[_c('v-icon',{attrs:{\"color\":\"#0051a2\"}},[_vm._v(_vm._s(_vm.$route.meta.createButtonIcon ? _vm.$route.meta.createButtonIcon : 'add'))]),_vm._v(\"  \"+_vm._s(_vm.$route.meta.createButtonText ? _vm.$route.meta.createButtonText : _vm.$t('actions.add'))+\"\\n        \")],1):_vm._e(),(_vm.$route.meta.refreshButton)?_c('v-btn',{directives:[{name:\"shortkey\",rawName:\"v-shortkey.once\",value:(['alt','f5']),expression:\"['alt','f5']\",modifiers:{\"once\":true}}],attrs:{\"small\":\"\"},on:{\"click\":_vm.refreshData,\"shortkey\":_vm.refreshData}},[_c('v-icon',{staticClass:\"text--secondary\"},[_vm._v(\"refresh\")])],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default [\n\n  {\n    path: '*',\n    meta: {\n      public: true,\n    },\n    redirect: {\n      path: '/404'\n    }\n  },\n  {\n    path: '/404',\n    meta: {\n      public: true,\n    },\n    name: 'NotFound',\n    component: () => import(\n      /* webpackChunkName: \"routes\" */\n      `@/views/NotFound.vue`\n    )\n  },\n  {\n    path: '/403',\n    meta: {\n      public: true,\n    },\n    name: 'AccessDenied',\n    component: () => import(\n      /* webpackChunkName: \"routes\" */\n      `@/views/Deny.vue`\n    )\n  },\n  {\n    path: '/500',\n    meta: {\n      public: true,\n    },\n    name: 'ServerError',\n    component: () => import(\n      /* webpackChunkName: \"routes\" */\n      `@/views/Error.vue`\n    )\n  },\n  {\n    path: '/',\n    meta: {roleId: 1, saveButton: false},\n    name: 'Root',\n    redirect: {\n      name: 'Dashboard'\n    }\n  },\n  {\n    path: '/login',\n    meta: {\n      title: 'Đăng nhập',\n      titleKey: 'routes.login',\n      public: true,\n    },\n    name: 'Login',\n    component: () => import(\n      /* webpackChunkName: \"routes\" */\n      `@/views/Login.vue`\n    )\n  },\n  {\n    path: '/tai-khoan',\n    meta: { title: 'Tài khoản', titleKey: 'routes.profile', breadcrumb: true, requiresAuth: true, saveButton: true, roleId: 1},\n    name: 'Profile',\n    component: () => import(\n      `@/views/Profile.vue`\n    )\n  },\n  {\n    path: '/tong-quan',\n    meta: { title: 'Tổng quan', titleKey: 'routes.dashboard', breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 1},\n    name: 'Dashboard',\n    component: () => import(\n      `@/views/Dashboard.vue`\n    )\n  },\n  {\n    path: '/khach-hang/',\n    meta: { title: 'Khách hàng', titleKey: 'routes.customers', breadcrumb: true, requiresAuth: true, createButton: true, exportButton: true, refreshButton: true, roleId: 2 },\n    name: 'CustomerList',\n    component: () => import(\n      `@/views/Customer/list.vue`\n    )\n  },\n  {\n    path: '/khach-hang/:Pid',\n    meta: { title: 'Khách hàng', titleKey: 'routes.customer_detail', breadcrumb: true, requiresAuth: true, saveButton: true, createButton: true, createButtonText: 'Reset password', createButtonIcon: 'refresh', roleId: 4 },\n    name: 'CustomerDetail',\n    component: () => import(\n      `@/views/Customer/detail.vue`\n    )\n  },  \n  // {\n  //   path: '/thanh-toan-don-hang/',\n  //   meta: { breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 8 },\n  //   name: 'PayOrderList',\n  //   component: () => import(\n  //     `@/views/PayOrder/list.vue`\n  //   )\n  // },\n  // {\n  //   path: '/lich-su-thanh-toan/',\n  //   meta: { breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 16 },\n  //   name: 'PayHistoryList',\n  //   component: () => import(\n  //     `@/views/PaymentHistory/PaymentHistoryList.vue`\n  //   )\n  // },\n  {\n    path: '/nap-tien/',\n    meta: { titleKey: 'routes.deposit', breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 512 },\n    name: 'RechargeHistory',\n    component: () => import(\n      `@/views/RechargeHistory/detail.vue`\n    )\n  },\n  {\n    path: '/bao-cao/doanh-thu/',\n    meta: { title: 'Báo cáo doanh thu', titleKey: 'routes.revenue_report', breadcrumb: true, requiresAuth: true, exportButton: true, refreshButton: true, roleId: 1024 },\n    name: 'bao-cao-doanh-thu',\n    component: () => import(\n      `@/views/Reports/bao-cao-doanh-thu.vue`\n    )\n  },\n  {\n    path: '/bao-cao/xe-hang/',\n    meta: { title: 'Báo cáo xe hàng', titleKey: 'routes.truck_report', breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 1024 },\n    name: 'bao-cao-xe-hang',\n    component: () => import(\n      `@/views/Reports/bao-cao-xe-hang.vue`\n    )\n  },\n  {\n    path: '/bao-cao/cong-no-khach-hang/',\n    meta: { title: 'Báo cáo công nợ khách hàng', titleKey: 'routes.customer_debt_report', breadcrumb: true, requiresAuth: true, exportButton: false, refreshButton: true, roleId: 1024 },\n    name: 'bao-cao-cong-no-khach-hang',\n    component: () => import(\n      `@/views/CustomerDebt/list.vue`\n    )\n  },\n  // {\n  //   path: '/ma-van-don/',\n  //   meta: { breadcrumb: true, requiresAuth: true, createButton: true, createButtonText: 'Nhập kho', createButtonIcon: 'publish', refreshButton: true, roleId: 32 },\n  //   name: 'SmallPackage',\n  //   component: () => import(\n  //     `@/views/Tracking/list.vue`\n  //   )\n  // },\n  {\n    path: '/ma-bill/tat-ca/',\n    meta: { title: 'Mã bill', titleKey: 'routes.bill_detail', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, importButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/nhap-kho-tq/',\n    meta: { title: 'Nhập kho TQ', titleKey: 'routes.import_tq', package_status: [1], breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, importButton: true, roleId: 32 },\n    name: 'ProductList_TQ',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/cho-xep-xe/',\n    meta: { title: 'Chờ xếp xe', titleKey: 'routes.waiting_for_truck', package_status: [2], breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, importButton: true, roleId: 32 },\n    name: 'ProductList_Wait',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/hang-da-xep-xe/',\n    meta: { title: 'Hàng đã xếp xe', titleKey: 'routes.on_the_way', package_status: [3], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_OnWay',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/cho-thong-quan-tq/',\n    meta: { title: 'Chờ thông quan TQ', titleKey: 'routes.processing_tq', package_status: [4], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_Processing_TQ',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/kiem-hoa/',\n    meta: { title: 'Kiểm hóa', titleKey: 'routes.check', package_status: [5], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_Check',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/cho-thong-quan-vn/',\n    meta: { title: 'Chờ thông quan VN', titleKey: 'routes.processing_vn', package_status: [6], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_Processing_VN',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/nhap-kho-vn/',\n    meta: { title: 'Nhập kho VN', titleKey: 'routes.import_vn', package_status: [7], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_VN',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/xuat-kho-vn/',\n    meta: { title: 'Hàng đã xuất kho', titleKey: 'routes.exported', package_status: [8,9], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_Ex',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/hang-khong-ten/',\n    meta: { title: 'Hàng không tên', titleKey: 'routes.no_owner', breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductNoneOwnerList',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/ma-bill/:id',\n    meta: { title: 'Chi tiết mã bill', titleKey: 'routes.product_detail', breadcrumb: true, requiresAuth: true, saveButton: true, roleId: 32 },\n    name: 'ProductDetail',\n    component: () => import(\n      `@/views/Product/detail.vue`\n    )\n  },\n  {\n    path: '/hang-ton/ton-kho-tq/',\n    meta: { title: 'Tồn kho TQ', titleKey: 'routes.product_inventory_in_tq', breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_In_TQ',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/hang-ton/ton-kho-vn/',\n    meta: { title: 'Tồn kho VN', titleKey: 'routes.product_inventory_in_vn', package_status: [7, 8], breadcrumb: true, requiresAuth: true, refreshButton: true, exportButton: true, roleId: 32 },\n    name: 'ProductList_In_VN',\n    component: () => import(\n      `@/views/Product/list.vue`\n    )\n  },\n  {\n    path: '/quan-ly-xep-xe/',\n    meta: { title: 'Xếp xe', titleKey: 'routes.truck', breadcrumb: true, requiresAuth: true, createButton: true, exportButton: true, refreshButton: true, roleId: 32 },\n    name: 'TruckList',\n    component: () => import(\n      `@/views/Truck/list.vue`\n    )\n  },\n  {\n    path: '/quan-ly-xep-xe/:Pid',\n    meta: { title: 'Xếp xe', titleKey: 'routes.truck_detail', breadcrumb: true, requiresAuth: true, saveButton: true, roleId: 32 },\n    name: 'TruckDetail',\n    component: () => import(\n      `@/views/Truck/detail.vue`\n    )\n  },\n  {\n    path: '/bao-gia/',\n    meta: { title: 'Khai báo', titleKey: 'routes.quotes', breadcrumb: true, requiresAuth: true, createButton: true, importButton: true, exportButton: true, refreshButton: true, roleId: 32 },\n    name: 'QuoteList',\n    component: () => import(\n      `@/views/Quote/list.vue`\n    )\n  },\n  {\n    path: '/bao-gia/:Pid',\n    meta: { title: 'Báo giá', titleKey: 'routes.quote_detail', breadcrumb: true, requiresAuth: true, saveButton: true, saveButtonText: \"Lưu khai báo\", createButton: true, createButtonText: 'Xuất file', createButtonIcon: 'download', importButton: true, importButtonText: 'In nhãn', importButtonIcon: 'print', roleId: 32 },\n    name: 'QuoteDetail',\n    component: () => import(\n      `@/views/Quote/detail.vue`\n    )\n  },\n  // {\n  //   path: '/tracking/',\n  //   meta: { breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 2048 },\n  //   name: 'Tracking',\n  //   component: () => import(\n  //     `@/views/Tracking/tracking.vue`\n  //   )\n  // },\n  // {\n  //   path: '/quan-ly-kho/',\n  //   meta: { breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 128 },\n  //   name: 'StoreManager',\n  //   component: () => import(\n  //     `@/views/StoreManager/list.vue`\n  //   )\n  // }, \n  // {\n  //   path: '/quan-ly-bao-hang/',\n  //   meta: { breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 64 },\n  //   name: 'BigPackage',\n  //   component: () => import(\n  //     `@/views/BigPackage/list.vue`\n  //   )\n  // },\n  {\n    path: '/xuat-kho/',\n    meta: { title: 'Xuất kho VN', titleKey: 'routes.warehouse_export', breadcrumb: true, requiresAuth: true, createButton: true, exportButton: true, refreshButton: true, roleId: 4096 },\n    name: 'BillList',\n    component: () => import(\n      `@/views/Bill/list.vue`\n    )\n  },\n  {\n    path: '/xuat-kho/:Pid',\n    meta: { title: 'Xuất kho VN', titleKey: 'routes.bill_detail', breadcrumb: true, requiresAuth: true, createButton: true, createButtonText: 'In phiếu', createButtonIcon: 'print', saveButton: true, roleId: 4096 },\n    name: 'BillDetail',\n    component: () => import(\n      `@/views/Bill/detail.vue`\n    )\n  },\n  {\n    path: '/cai-dat/phi-can-nang/',\n    meta: { title: 'Phí cân nặng', titleKey: 'routes.fee_weight', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'FeeWeightList',\n    component: () => import(\n      `@/views/FeeWeight/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/phi-khoi/',\n    meta: { title: 'Phí khối', titleKey: 'routes.fee_volume', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'FeeVolumeList',\n    component: () => import(\n      `@/views/FeeVolume/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/gia-goc/',\n    meta: { title: 'Giá gốc', titleKey: 'routes.cost_weight', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'CostWeightList',\n    component: () => import(\n      `@/views/CostWeight/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/cau-hinh-chung',\n    meta: {  title: 'Cấu hình chung', titleKey: 'routes.general_config', breadcrumb: true, requiresAuth: true, saveButton: true, roleId: 256},\n    name: 'Configuration',\n    component: () => import(\n      `@/views/Configuration/detail.vue`\n    )\n  },\n  {\n    path: '/cai-dat/nhan-vien/',\n    meta: { title: 'Nhân viên', titleKey: 'routes.staff', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'StaffList',\n    component: () => import(\n      `@/views/Staff/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/nhan-vien/:Pid',\n    meta: { title: 'Nhân viên', titleKey: 'routes.staff_detail', breadcrumb: true, requiresAuth: true, saveButton: true, roleId: 256 },\n    name: 'StaffDetail',\n    component: () => import(\n      `@/views/Staff/detail.vue`\n    )\n  },\n  {\n    path: '/cai-dat/kho-nhan/',\n    meta: { title: 'Kho nhận', titleKey: 'routes.storage_list', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'StorageList',\n    component: () => import(\n      `@/views/Storage/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/loai-hang/',\n    meta: { title: 'Loại hàng', titleKey: 'routes.product_type', breadcrumb: true, requiresAuth: true, createButton: true, refreshButton: true, roleId: 256 },\n    name: 'ProductTypeList',\n    component: () => import(\n      `@/views/ProductType/list.vue`\n    )\n  },\n  {\n    path: '/cai-dat/nhat-ky-thao-tac/',\n    meta: { title: 'Nhật ký thao tác', titleKey: 'routes.audit_log', breadcrumb: true, requiresAuth: true, refreshButton: true, roleId: 256 },\n    name: 'AuditLogList',\n    component: () => import(\n      `@/views/AuditLog/list.vue`\n    )\n  }\n];\n","<template>\n<v-layout row class=\"align-center layout pl-0 pt-0 app--page-header\">\n    <div class=\"page-header-left\">\n        <v-breadcrumbs divider=\"-\" :items=\"breadcrumbs\">\n            <template v-slot:item=\"props\">\n                <v-breadcrumbs-item :href=\"props.item.href\" :class=\"[props.item.disabled && 'disabled']\">\n                    <h3>{{ props.item.text }}</h3>\n                </v-breadcrumbs-item>\n            </template>\n        </v-breadcrumbs>\n        <template v-if=\"breadcrumbs.length == 0\">\n            <v-breadcrumbs>\n                <v-breadcrumbs-item>\n                    <h3>{{ routeName }}</h3>\n                </v-breadcrumbs-item>\n            </v-breadcrumbs>\n        </template>\n    </div>\n    <v-spacer></v-spacer>\n    <div class=\"page-header-right pr-6\">\n        <v-btn small v-if=\"$route.meta.importButton && !options.invisibleImportButton\" @click=\"importAction\">\n            <v-icon color=\"#0051a2\">{{$route.meta.importButtonIcon ? $route.meta.importButtonIcon : 'upload'}}</v-icon>  {{$route.meta.importButtonText ? $route.meta.importButtonText : $t('actions.import')}}\n        </v-btn>\n        <v-btn small v-if=\"$route.meta.exportButton && !options.invisibleExportButton\" @click=\"exportAction\">\n            <v-icon color=\"#0051a2\">{{$route.meta.exportButtonIcon ? $route.meta.exportButtonIcon : 'download'}}</v-icon>  {{$route.meta.exportButtonText ? $route.meta.exportButtonText : $t('actions.export')}}\n        </v-btn>\n        <v-btn small v-if=\"$route.meta.saveButton && !options.invisibleSaveButton\" @click=\"saveData\" v-shortkey.once=\"['ctrl', 's']\" @shortkey=\"saveData\">\n            <v-icon color=\"#0051a2\">{{$route.meta.saveButtonIcon ? $route.meta.saveButtonIcon : 'save'}}</v-icon>  {{$route.meta.saveButtonText ? $route.meta.saveButtonText : $t('actions.save')}}\n        </v-btn>\n        <v-btn small v-if=\"$route.meta.createButton && !options.invisibleCreateButton\" @click=\"createData\" v-shortkey.once=\"['alt', 'n']\" @shortkey=\"createData\">\n            <v-icon color=\"#0051a2\">{{$route.meta.createButtonIcon ? $route.meta.createButtonIcon : 'add'}}</v-icon>  {{$route.meta.createButtonText ? $route.meta.createButtonText : $t('actions.add')}}\n        </v-btn>\n        <v-btn small v-if=\"$route.meta.refreshButton\" @click=\"refreshData\" v-shortkey.once=\"['alt','f5']\" @shortkey=\"refreshData\">\n            <v-icon class=\"text--secondary\">refresh</v-icon>\n        </v-btn>\n    </div>\n</v-layout>\n</template>\n\n<script>\nimport menu from \"@/api/menu\";\nimport paths from \"@/router/paths\";\nimport {\n    buildBreadcrumb\n} from \"@/commons/utils\";\nexport default {\n     data() {\n        return {\n            options: {}\n        }\n     },\n    computed: {\n        routeName() {\n            if (this.$route.meta.titleKey) {\n                return this.$t(`${this.$route.meta.titleKey}`);\n            }\n            var title = this.$route.meta.title ? this.$route.meta.title : this.$route.params.title;\n            return title ? title : this.$route.name;\n        },\n        breadcrumbs: function () {\n            let breadcrumbs = [];\n            if(this.$route.params.manualTitle) {\n                return breadcrumbs;\n            }\n            let routeName = this.$route.name;\n            breadcrumbs = buildBreadcrumb(routeName, this.$route.path, this.$route.params.Pid, this.$route.params.titleKey, menu, paths);\n            return breadcrumbs;\n        }\n    },\n    methods: {\n        exportAction() {\n            window.getApp.$emit('EXPORT_ACTION');\n        },\n        importAction() {\n            window.getApp.$emit('IMPORT_ACTION');\n        },\n        saveData() {\n            window.getApp.$emit('PRE_SAVE_DATA');\n        },\n        createData() {\n          this.$root.$emit('REQUEST_CREATE_DATA');\n        },\n        refreshData() {\n          this.$root.$emit('REQUEST_REFRESH_DATA');\n        },\n        changeOption(options) {\n            this.options = options;\n        }\n    },\n    mounted() {\n        this.$root.$on(\"REQUEST_ROOT_OPTION\", this.changeOption);\n    }\n};\n</script>\n","import mod from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./PageHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./PageHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageHeader.vue?vue&type=template&id=6491e1c4&\"\nimport script from \"./PageHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./PageHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import paths from '@/router/paths';\nexport default [\n  {\n    name: 'APP_LOGIN_SUCCESS',\n    callback: function (e) {\n      this.snackbar = {\n        show: true,\n        color: 'success',\n        text: 'Đăng nhập thành công'\n      };\n      setTimeout(this.$router.replace({ path: 'tong-quan' }), 300);\n    }\n  },\n  {\n    name: 'APP_LOGOUT',\n    callback: function (e) {\n      this.snackbar = {\n        show: true,\n        color: 'success',\n        text: 'Đăng xuất thành công'\n      };\n      localStorage.clear();\n      setTimeout(this.$router.replace('/login'), 1000);\n    }\n  },\n  {\n    name: 'APP_PAGE_LOADED',\n    callback: function (e) {\n    }\n  },\n  {\n    name: 'APP_AUTH_FAILED',\n    callback: function (e) {\n      localStorage.clear();\n      setTimeout(this.$router.replace('/login'), 300);\n    }\n  },\n  {\n    name: 'APP_BAD_REQUEST',\n    // @error api response data\n    callback: function (msg) {\n      // this.$message.error(msg);\n    }\n  },\n  {\n    name: 'APP_ACCESS_DENIED',\n    // @error api response data\n    callback: function (msg) {\n      // this.$message.error(msg);\n      this.$router.push('/forbidden');\n    }\n  },\n  {\n    name: 'APP_RESOURCE_DELETED',\n    // @error api response data\n    callback: function (msg) {\n      // this.$message.success(msg);\n    }\n  },\n  {\n    name: 'APP_RESOURCE_UPDATED',\n    // @error api response data\n    callback: function (msg) {\n      this.snackbar = {\n        show: true,\n        color: 'success',\n        text: msg\n      };\n    }\n  },\n  {\n    name: 'APP_RESOURCE_FAILED',\n    // @error api response data\n    callback: function (msg) {\n      this.snackbar = {\n        show: true,\n        color: 'error',\n        text: msg\n      };\n    },\n  },\n  {\n    name: 'APP_NOTIFY',\n    // @error api response data\n    callback: function (msg) {\n      this.snackbar = {\n        show: true,\n        timeout: 6000,\n        color: '#3E8AEB',\n        text: msg\n      };\n    }\n  },\n  {\n    name: 'APP_NAVIGATE',\n    callback: function (viewName) {\n      const item = _.find(paths, {name: viewName})\n      if(item) {\n        this.$router.replace({ path: item.path });\n      }\n    }\n  },\n  {\n    name: 'PRE_SAVE_DATA',\n    callback: function () {\n      if(this.$refs.form.validate()) {\n        this.$root.$emit('REQUEST_SAVE_DATA');\n      }\n    }\n  },\n  {\n    name: 'REQUEST_REFRESH_DATA',\n    callback: function () {\n      this.$root.$emit('REQUEST_REFRESH_DATA');\n    }\n  },\n  {\n    name: 'REQUEST_DELETE_DATA',\n    callback: function (id, message = '') {\n      this.delDialog = true;\n      this.delId = id;\n      this.delMessage = message;\n    }\n  },\n  {\n    name: 'EXPORT_ACTION',\n    callback: function () {\n      this.$root.$emit('REQUEST_EXPORT_ACTION');\n    }\n  },\n  {\n    name: 'IMPORT_ACTION',\n    callback: function () {\n      this.$root.$emit('REQUEST_IMPORT_ACTION');\n    }\n  },\n];\n","<template>\n  <div id=\"appRoot\">\n    <template v-if=\"!$route.meta.public\">\n      <v-app id=\"inspire\" class=\"app\">\n        <v-form ref=\"form\" lazy-validation>\n          <app-drawer class=\"app--drawer\"></app-drawer>\n          <app-toolbar class=\"app--toolbar\" v-bind:class=\"{ 'toolbar-expanded': sidebarExpanded}\"></app-toolbar>\n          <v-main>\n            <!-- Page Header -->\n            <page-header v-if=\"$route.meta.breadcrumb\"></page-header>\n            <div class=\"page-wrapper\">\n              <router-view></router-view>\n            </div>\n            <!-- App Footer -->\n            <v-footer height=\"auto\" class=\"pa-3 pt-10 app--footer\">\n              <span class=\"caption\">thpglobal.vn design &copy; {{ new Date().getFullYear() }}</span>\n              <v-spacer></v-spacer>\n            </v-footer>\n          </v-main>\n          <!-- Go to top -->\n          <app-fab></app-fab>\n          <v-navigation-drawer\n            class=\"setting-drawer\"\n            temporary\n            right\n            v-model=\"rightDrawer\"\n            hide-overlay\n            fixed\n          ></v-navigation-drawer>\n          <v-snackbar transition=\"slide-x-transition\" :timeout=\"snackbar.timeout ? snackbar.timeout : 5000\" :color=\"snackbar.color\" v-model=\"snackbar.show\" top centered multi-line rounded>\n            {{ snackbar.text }}\n            <template v-slot:action=\"{ attrs }\">\n              <v-btn\n                color=\"white\"\n                icon\n                v-bind=\"attrs\"\n                @click=\"snackbar.show = false\"\n              >\n                <v-icon>mdi-close-circle-outline</v-icon>\n              </v-btn>\n            </template>\n          </v-snackbar>\n          <v-dialog v-model=\"delDialog\" persistent max-width=\"320\">\n            <v-card>\n              <v-card-title class=\"subheading\">{{ $t('actions.confirm') }}</v-card-title>\n              <v-card-text>{{ delMessage || $t('messages.confirm_delete') }}</v-card-text>\n              <v-card-actions>\n                <div class=\"flex-grow-1\"></div>\n                <v-btn @click=\"delConfirmed\">{{ $t('actions.confirm') }}</v-btn>\n                <v-btn color=\"red darken-1 white--text\" @click=\"delDialog = false\">{{ $t('actions.cancel') }}</v-btn>\n              </v-card-actions>\n            </v-card>\n          </v-dialog>\n        </v-form>\n      </v-app>\n    </template>\n    <template v-else>\n      <transition>\n        <keep-alive>\n          <router-view :key=\"$route.fullpath\"></router-view>\n        </keep-alive>\n      </transition>\n    </template>\n    <v-dialog v-model=\"dialogMessage\" width=\"500\" v-if=\"isConfirm\">\n      <v-card>\n        <v-card-title class=\"grey lighten-2\">\n          Thông báo\n        </v-card-title>\n        <v-card-text class=\"pt-6\" v-html=\"configuration.MessageContent\">\n        </v-card-text>\n\n        <v-divider></v-divider>\n\n        <v-card-actions>\n          <v-spacer></v-spacer>\n          <v-btn color=\"primary\" text @click=\"dialogMessage = false\">\n            Đóng\n          </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-dialog>\n  </div>\n</template>\n\n<script>\nimport AppDrawer from \"@/components/AppDrawer\";\nimport AppToolbar from \"@/components/AppToolbar\";\nimport AppFab from \"@/components/AppFab\";\nimport PageHeader from \"@/components/PageHeader\";\nimport AppEvents from \"./event\";\nimport { mapState } from \"vuex\";\nimport Vue from 'vue';\nexport default {\n  components: {\n    AppDrawer,\n    AppToolbar,\n    AppFab,\n    PageHeader\n  },\n  data: () => ({\n    dialogMessage: false,\n    delMessage: \"\",\n    delDialog: false,\n    delId: 0,\n    rightDrawer: false,\n    isConfirm: false,\n    snackbar: {\n      show: false,\n      text: \"\",\n      color: \"\"\n    }\n  }),\n  computed: {\n    ...mapState({\n        sidebarExpanded: state => state.commons.sidebarExpanded,\n        configuration: state => state.configuration.selected\n    }),\n    showCustomerMessage() {\n      return Vue.$cookies.get('showCustomerMessage');\n    }\n  },\n  methods: {\n    delConfirmed() {\n      this.delDialog = false;\n      this.$root.$emit('CONFIRMED_REMOVE_DATA', this.delId);\n    }\n  },\n  // watch: {\n  //   configuration() {\n  //       if(this.configuration && !this.showCustomerMessage) {\n  //         this.isConfirm = this.configuration.MessageContent !== null && this.configuration.MessageContent !== '';\n  //         if(this.isConfirm) {\n  //           Vue.$cookies.set('showCustomerMessage', true, 60 * 60);\n  //         }\n  //       }\n  //   }\n  // },\n  mounted() {\n    if(this.$store.state.authentication.user) {\n      this.$store.dispatch(\"configuration/getDetail\", 1);\n    }\n  },\n  created() {\n    AppEvents.forEach(item => {\n      this.$on(item.name, item.callback);\n    });\n    window.getApp = this;\n    window.getApp.$on(\"APP_DRAWER_TOGGLED\", () => {\n      this.$store.commit(\"commons/setSidebarExpanded\", {\n        expanded: !this.sidebarExpanded\n      });\n    });\n  }\n};\n</script>\n\n<style lang=\"stylus\" scoped>\n.setting-fab {\n  top: 50% !important;\n  right: 0;\n  border-radius: 0;\n}\n\n.page-wrapper {\n  min-height: calc(100vh - 64px - 50px - 81px);\n}\n\n.toolbar-expanded {\n  padding: 0 0 0 230px;\n}\n</style>\n","import mod from \"-!../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=77336bd8&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=77336bd8&prod&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"77336bd8\",\n  null\n  \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Router from 'vue-router';\nimport paths from './paths';\nimport i18n from '@/i18n';\nimport NProgress from 'nprogress';\nimport 'nprogress/nprogress.css';\nimport configs from \"@/configs\";\n\nVue.use(Router);\nconst router = new Router({\n    base: '/',\n    mode: 'hash',\n    linkActiveClass: 'active',\n    routes: paths,\n    mode: 'history'\n});\nconst DEFAULT_TITLE = 'THPGLOBAL';\n// router gards\nrouter.beforeEach((to, from, next) => {\n    NProgress.start();\n    if (to.matched.some(record => record.meta.requiresAuth)) {\n        if (localStorage.getItem('jwt') == null) {\n            next({\n                path: '/login',\n                params: { nextUrl: to.fullPath }\n            })\n        } else {\n            let user = JSON.parse(localStorage.getItem('user'))\n            const role_type = _.find(configs.ROLES, {'value': user.roleid})\n            if(role_type && (role_type.modules & to.meta.roleId)){\n                next()\n            }\n            else {\n                next({\n                    path: '/'\n                })\n            }\n        }\n    } else if (to.matched.some(record => record.meta.public)) {\n        if (localStorage.getItem('jwt') == null) {\n            next()\n        }\n        else {\n            next({\n                path: '/'\n            })\n        }\n    } else {\n        next()\n    }\n    Vue.nextTick(() => {\n        const title = to.meta.titleKey ? i18n.t(`${to.meta.titleKey}`) : to.meta.title;\n        document.title = title ? title + (to.params.Pid ? ' #' + to.params.Pid : '') + ' | ' + DEFAULT_TITLE : DEFAULT_TITLE;\n    });\n});\n\nrouter.afterEach((to, from) => {\n    NProgress.done();\n});\n\nexport default router;\n","import { sendSuccessNotice, sendErrorNotice, getCurrentTime, refreshResource } from '@/commons/utils';\nimport { request_detail, request_list, update_detail, create_detail, remove_detail, export_list } from '@/commons/hpod';\nvar FileSaver = require('file-saver');\nimport Vue from 'vue';\nconst endpoint = 'customers'\n\n// initial state\nconst state = {\n    loading: false,\n    master: {},\n    all: {},\n    selected: {\n        ID: 0,\n        RoleID: 8,\n        Status: 1,\n        is_active: 1,\n        is_admin: 0\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getCustomerList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            if(param.is_master) {\n                commit('setMasterList', data);\n            }\n            else {\n                commit('setCustomerList', data);\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getCustomerDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setCustomerDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    removeCustomerDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        remove_detail(endpoint, res => {\n            if (res.data.status === false) {\n                sendErrorNotice('Không thể xóa khách hàng.')\n            }\n            else {\n                sendSuccessNotice('Đã xóa khách hàng thành công.')\n                refreshResource();\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    setCustomerDetail({ commit }, {data, id, resetPwd}) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                commit(\"setLoading\", { loading: true });\n                if(id > 0) {\n                    delete data.CreatedDate;\n                    delete data.Createdby;\n                    update_detail(endpoint, res => {\n                        if (res.status === 202) {\n                            sendErrorNotice(res.reason);\n                            reject(res);\n                        }\n                        else if (res.data.status === 'fail') {\n                            sendErrorNotice('Không thể cập nhật khách hàng.')\n                            reject(res);\n                        }\n                        else if(resetPwd) {\n                            sendSuccessNotice('Mật khẩu đã được reset về 123@456.')\n                            resolve(res);\n                        }\n                        else {\n                            sendSuccessNotice('Cập nhật khách hàng thành công.')\n                            refreshResource();\n                            resolve(res);\n                        }\n                        commit(\"setLoading\", { loading: false });\n                    }, Vue.http, data, id, this.state.authentication.token);\n                }\n                else {\n                    create_detail(endpoint, res => {\n                        if (res.status === 202) {\n                            sendErrorNotice(res.reason);\n                            reject(res);\n                        }\n                        else if (res.data.status === 'fail') {\n                            sendErrorNotice('Không thể thêm mới khách hàng.')\n                            reject(res);\n                        }\n                        else {\n                            sendSuccessNotice('Thêm mới khách hàng thành công, mật khẩu 123@456.')\n                            refreshResource();\n                            resolve(res);\n                        }\n                        commit(\"setLoading\", { loading: false });\n                    }, Vue.http, data, this.state.authentication.token);\n                }\n            }, 100)\n        })        \n    },\n    exportList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        export_list(endpoint, res => {\n            commit(\"setLoading\", { loading: false });\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `khach_hang_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n};\n\n// mutations\nconst mutations = {\n    setCustomerList(state, data) {\n        state.all = data;\n    },\n    setMasterList(state, data) {\n        state.master = data;\n    },\n    setCustomerDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import config from '../configs';\n\n\nfunction login (cb, $http, username, password) {\n  var req = {\n      'username': username,\n      'password': password,\n  }\n  var endpoint = config.API; \n  $http.post(`${endpoint}/api-token-auth/`,req).then(function(res){ \n      setTimeout(() => cb(res.data), 100);\n  },function(res){ \n    setTimeout(() => cb({'status': 'error', 'message': res}), 100);\n  });        \n}\n\nfunction getAllUsers(cb, $http, token){\n  const req = {\n    headers: {\n      \"Authorization\": `Bearer ${token}`,\n      \"Content-Type\": \"application/json\",\n      \"accept\": \"application/json\",\n    }\n  };\n  var endpoint = config.API; \n  $http.get(`${endpoint}/api/users/`,req).then(function(res){ \n      setTimeout(() => cb(res.data), 100);\n  },function(res){ \n    setTimeout(() => cb({'status': 'error', 'message': res}), 100);\n  });\n}\n\n\nconst Items =  [\n  {\n    'uuid': '65a6eb21-67b5-45c3-9af7-faca2d9b60d4',\n    'name': 'Dessie',\n    'email': 'Dessie7937@gmail.com',\n    'username': 'Dessie79',\n    'jobTitle': 'Web Developer',\n    'phone': '1-360-812-9380 x511',\n    'avatar': '/static/avatar/a2.jpg',\n    'address': {\n      'street': '655 Archibald Groves',\n      'suite': 'Apt. 818',\n      'city': 'Carlosshire',\n      'state': 'Arkansas',\n      'country': 'Somalia',\n      'zipcode': '10406',\n      'geo': {\n        'lat': '-44.6063',\n        'lng': '-169.7706'\n      }\n    }\n  },\n  {\n    'uuid': '28d9f265-74d7-4f85-83d4-6a21fca57dcf',\n    'name': 'Jakayla',\n    'jobTitle': 'Web Designer',\n    'email': 'Jakayla_Crooks867@yahoo.com',\n    'username': 'Jakayla_Crooks86',\n    'phone': '610.499.1240',\n    'avatar': '/static/avatar/a3.jpg',\n    'address': {\n      'street': '281 Tillman Forge',\n      'suite': 'Apt. 381',\n      'city': 'New Sandrinemouth',\n      'state': 'North Dakota',\n      'country': 'Reunion',\n      'zipcode': '19540-8186',\n      'geo': {\n        'lat': '-12.3375',\n        'lng': '-117.9067'\n      }\n    }\n  },\n  {\n    'uuid': '14ddae1e-986d-42f4-8d17-46a02d469b2b',\n    'name': 'Hobart',\n    'jobTitle': 'Sales',\n    'email': 'Hobart_Mueller.Thiel@hotmail.com',\n    'username': 'Hobart_Mueller',\n    'phone': '1-590-385-3349',\n    'avatar': 'static/avatar/a1.jpg',\n    'address': {\n      'street': '706 Padberg Knoll',\n      'suite': 'Suite 818',\n      'city': 'Port Mablefurt',\n      'state': 'Arkansas',\n      'country': 'Netherlands Antilles',\n      'zipcode': '89975-6584',\n      'geo': {\n        'lat': '-42.9187',\n        'lng': '8.5866'\n      }\n    }\n  },\n  {\n    'uuid': '6a03248b-1752-4332-a3a9-7108528cc9d3',\n    'name': 'Celestine',\n    'jobTitle': 'Marketing',\n    'email': 'Celestine.Casper59@hotmail.com',\n    'username': 'Celestine.Casper',\n    'phone': '1-830-046-3289',\n    'avatar': '/static/avatar/a4.jpg',\n    'address': {\n      'street': '9528 Schroeder Track',\n      'suite': 'Apt. 443',\n      'city': 'Godfreyburgh',\n      'state': 'Montana',\n      'country': 'Slovenia',\n      'zipcode': '10220',\n      'geo': {\n        'lat': '36.8638',\n        'lng': '20.0047'\n      }\n    }\n  },\n  {\n    'uuid': 'ee272550-36e8-4fe2-889d-c1ee701c5863',\n    'name': 'Hortense',\n    'email': 'Hortense99.Jakubowski@yahoo.com',\n    'jobTitle': 'Project Manager',\n    'username': 'Hortense99',\n    'phone': '712.916.2569 x0663',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/moscoz/128.jpg',\n    'address': {\n      'street': '9046 Allen Ferry',\n      'suite': 'Suite 429',\n      'city': 'Angushaven',\n      'state': 'Michigan',\n      'country': 'Costa Rica',\n      'zipcode': '92378-7065',\n      'geo': {\n        'lat': '78.1292',\n        'lng': '-134.6632'\n      }\n    }\n  },\n  {\n    'uuid': '77f4b102-9df5-43ba-966a-6f816806c5e2',\n    'name': 'Pat',\n    'jobTitle': 'Product Manager',\n    'email': 'Pat_Zulauf81.Bartell86@gmail.com',\n    'username': 'Pat_Zulauf81',\n    'phone': '(058) 200-7342',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/rehatkathuria/128.jpg',\n    'address': {\n      'street': '62268 Favian Coves',\n      'suite': 'Suite 993',\n      'city': 'Baumbachstad',\n      'state': 'New Mexico',\n      'country': 'Montserrat',\n      'zipcode': '44440',\n      'geo': {\n        'lat': '-34.7835',\n        'lng': '148.8907'\n      }\n    }\n  },\n  {\n    'uuid': '36a1ead7-57a0-4275-8a21-956194ab7cdf',\n    'name': 'Solon',\n    'jobTitle': 'Web Developer',\n    'email': 'Solon.Bauch4_Rath@hotmail.com',\n    'username': 'Solon.Bauch4',\n    'phone': '789-914-4904 x173',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/spacewood_/128.jpg',\n    'address': {\n      'street': '8153 Favian Walk',\n      'suite': 'Apt. 495',\n      'city': 'East Preston',\n      'state': 'Idaho',\n      'country': 'Iceland',\n      'zipcode': '24555',\n      'geo': {\n        'lat': '-42.5691',\n        'lng': '-2.5791'\n      }\n    }\n  },\n  {\n    'uuid': 'b5899bef-d01e-42d8-af2d-edfb16b6b21e',\n    'name': 'Calista',\n    'jobTitle': 'Programmer',\n    'email': 'Calista_Mertz1757@hotmail.com',\n    'username': 'Calista_Mertz17',\n    'phone': '961-703-4134',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/moscoz/128.jpg',\n    'address': {\n      'street': '886 Wendy Circles',\n      'suite': 'Apt. 933',\n      'city': 'Lake Loy',\n      'state': 'Rhode Island',\n      'country': 'South Africa',\n      'zipcode': '65261',\n      'geo': {\n        'lat': '-58.9245',\n        'lng': '-43.6330'\n      }\n    }\n  },\n  {\n    'uuid': '7d910620-84e1-49fc-951e-d375587b8189',\n    'name': 'Jackeline',\n    'jobTitle': 'Sales Executive',\n    'email': 'Jackeline.Abshire_Dach@yahoo.com',\n    'username': 'Jackeline.Abshire',\n    'phone': '(326) 903-5706 x6854',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/larrybolt/128.jpg',\n    'address': {\n      'street': '416 Cathy Spur',\n      'suite': 'Apt. 431',\n      'city': 'North Camila',\n      'state': 'Pennsylvania',\n      'country': 'Libyan Arab Jamahiriya',\n      'zipcode': '31751',\n      'geo': {\n        'lat': '64.0673',\n        'lng': '154.7671'\n      }\n    }\n  },\n  {\n    'uuid': 'afdb5033-5bcc-4cec-b932-353a83410b44',\n    'name': 'Jamey',\n    'jobTitle': 'PHP Developer',\n    'email': 'Jamey_Grant_Cruickshank73@gmail.com',\n    'username': 'Jamey_Grant',\n    'phone': '545-939-2404 x32373',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/mikebeecham/128.jpg',\n    'address': {\n      'street': '38372 Mante Glen',\n      'suite': 'Suite 090',\n      'city': 'Robertsside',\n      'state': 'Texas',\n      'country': 'Equatorial Guinea',\n      'zipcode': '86558-7214',\n      'geo': {\n        'lat': '-55.0222',\n        'lng': '-100.5977'\n      }\n    }\n  },\n  {\n    'uuid': '60d07662-bfec-42c7-b044-c81bc4ff8c7a',\n    'name': 'Barton',\n    'email': 'Barton85_Emard@gmail.com',\n    'jobTitle': 'Web Developer',\n    'username': 'Barton85',\n    'phone': '(979) 560-8322 x174',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/a_harris88/128.jpg',\n    'address': {\n      'street': '185 Florine Spurs',\n      'suite': 'Suite 178',\n      'city': 'Port Carrollburgh',\n      'state': 'Alaska',\n      'country': 'Saint Barthelemy',\n      'zipcode': '30126',\n      'geo': {\n        'lat': '24.0545',\n        'lng': '-88.8499'\n      }\n    }\n  },\n  {\n    'uuid': '5c44b666-baca-4f18-a3cb-23068c6edc14',\n    'name': 'Gloria',\n    'jobTitle': 'Assets',\n    'email': 'Gloria78.Nicolas83@hotmail.com',\n    'username': 'Gloria78',\n    'phone': '188.890.3246',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/nehfy/128.jpg',\n    'address': {\n      'street': '643 Arch Mews',\n      'suite': 'Apt. 171',\n      'city': 'Wymanland',\n      'state': 'Indiana',\n      'country': 'Jersey',\n      'zipcode': '73594-9840',\n      'geo': {\n        'lat': '-70.9980',\n        'lng': '-151.6234'\n      }\n    }\n  },\n  {\n    'uuid': '46d6f992-5729-4588-b7f8-ce74f21157ba',\n    'name': 'Olin',\n    'jobTitle': 'Finaice',\n    'email': 'Olin.Robel49.Schowalter24@yahoo.com',\n    'username': 'Olin.Robel49',\n    'phone': '1-982-234-7756',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/jcubic/128.jpg',\n    'address': {\n      'street': '0813 Mayer Greens',\n      'suite': 'Apt. 551',\n      'city': 'Bergstromburgh',\n      'state': 'Ohio',\n      'country': 'Anguilla',\n      'zipcode': '42502-9731',\n      'geo': {\n        'lat': '-48.2520',\n        'lng': '60.6556'\n      }\n    }\n  },\n  {\n    'uuid': 'bd30e201-cceb-410e-8497-a4072bc399f5',\n    'name': 'Rollin',\n    'jobTitle': 'Supporting',\n    'email': 'Rollin43_Fay@yahoo.com',\n    'username': 'Rollin43',\n    'phone': '477-651-5715 x502',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/128.jpg',\n    'address': {\n      'street': '5704 Spinka Causeway',\n      'suite': 'Suite 388',\n      'city': 'Pollyburgh',\n      'state': 'Arizona',\n      'country': 'Virgin Islands, U.S.',\n      'zipcode': '45048',\n      'geo': {\n        'lat': '55.3046',\n        'lng': '3.8129'\n      }\n    }\n  },\n  {\n    'uuid': 'da95e977-cd54-4077-a767-1b7f33ef6919',\n    'name': 'Murl',\n    'email': 'Murl_Abshire41_Lakin@hotmail.com',\n    'username': 'Murl_Abshire41',\n    'jobTitle': 'Web Developer',\n    'phone': '107-733-1219 x0615',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/stayuber/128.jpg',\n    'address': {\n      'street': '4880 Tanner Circles',\n      'suite': 'Apt. 994',\n      'city': 'Bauchside',\n      'state': 'Ohio',\n      'country': 'Uganda',\n      'zipcode': '11259',\n      'geo': {\n        'lat': '11.6209',\n        'lng': '-45.1766'\n      }\n    }\n  },\n  {\n    'uuid': '6124d4e8-77ed-4b34-868d-d312bfab5de2',\n    'name': 'Breanna',\n    'jobTitle': 'Web Developer',\n    'email': 'Breanna.Bartoletti21@hotmail.com',\n    'username': 'Breanna.Bartoletti',\n    'phone': '645.045.0876 x35882',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/flexrs/128.jpg',\n    'address': {\n      'street': '431 Grimes Common',\n      'suite': 'Apt. 530',\n      'city': 'East Lunahaven',\n      'state': 'Virginia',\n      'country': 'Hungary',\n      'zipcode': '12012-3038',\n      'geo': {\n        'lat': '29.7991',\n        'lng': '-70.4033'\n      }\n    }\n  },\n  {\n    'uuid': 'eef93cb1-7766-4413-a5cf-ecbf71fa3674',\n    'name': 'Maya',\n    'email': 'Maya55_Dickens16@yahoo.com',\n    'username': 'Maya55',\n    'jobTitle': 'Web Developer',\n    'phone': '199.260.3770 x2815',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/nvkznemo/128.jpg',\n    'address': {\n      'street': '58581 Guillermo Springs',\n      'suite': 'Suite 574',\n      'city': 'Cloydville',\n      'state': 'Delaware',\n      'country': 'Saint Barthelemy',\n      'zipcode': '95633-3394',\n      'geo': {\n        'lat': '-57.5740',\n        'lng': '104.5634'\n      }\n    }\n  },\n  {\n    'uuid': '899d0e31-b71e-4d95-a8a0-6a8bceb314bd',\n    'name': 'Santiago',\n    'jobTitle': 'Web Developer',\n    'email': 'Santiago41_Crooks15@yahoo.com',\n    'username': 'Santiago41',\n    'phone': '1-489-921-2159 x8655',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/ernestsemerda/128.jpg',\n    'address': {\n      'street': '7868 Windler Dam',\n      'suite': 'Suite 876',\n      'city': 'Port Emmetfurt',\n      'state': 'Alabama',\n      'country': 'Belarus',\n      'zipcode': '63739-4581',\n      'geo': {\n        'lat': '-28.7166',\n        'lng': '-167.7070'\n      }\n    }\n  },\n  {\n    'uuid': 'a41c6c4a-9cb1-45d1-8c6f-091044ba51ff',\n    'name': 'Leonardo',\n    'email': 'Leonardo10.Macejkovic@yahoo.com',\n    'username': 'Leonardo10',\n    'phone': '445-761-1519',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/adobi/128.jpg',\n    'address': {\n      'street': '146 Lemke Mountains',\n      'suite': 'Apt. 407',\n      'city': 'North Toyfort',\n      'state': 'Connecticut',\n      'country': 'Senegal',\n      'zipcode': '90211-1855',\n      'geo': {\n        'lat': '-56.3849',\n        'lng': '-167.1372'\n      }\n    }\n  },\n  {\n    'uuid': '3782c174-1f2c-4dc4-b75d-0bedf400e023',\n    'name': 'Lora',\n    'jobTitle': 'Web Developer',\n    'email': 'Lora_Kessler586@hotmail.com',\n    'username': 'Lora_Kessler5',\n    'phone': '315-215-2852 x69280',\n    'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/antongenkin/128.jpg',\n    'address': {\n      'street': '4018 Willms Turnpike',\n      'suite': 'Suite 573',\n      'city': 'Leuschkemouth',\n      'state': 'Kentucky',\n      'country': 'Dominican Republic',\n      'zipcode': '70964',\n      'geo': {\n        'lat': '80.2384',\n        'lng': '38.1323'\n      }\n    }\n  }\n];\n\nconst getUserById = (uuid) => {\n  return (uuid === undefined) ? Items[0] : Items.find(x => x.uuid === uuid);\n};\n\nconst getUser = (limit) => {\n  return (limit) ? Items.slice(0, limit) : Items;\n};\n\nexport {\n  Items,\n  getUser,\n  getUserById,  \n};\n\nexport default{\n  login,\n  getAllUsers\n}","import user_api from '@/api/user';\nimport Vue from 'vue';\n\nconst state = {\n    token: '',\n    user: {},\n    resData: {},\n};\n\nconst getters = {};\n\nconst actions = {\n    login({ commit }, loginInfo) {   \n        user_api.login(data => {\n            commit('setToken', data);        \n        }, Vue.http, loginInfo.username, loginInfo.password);\n    },\n    // changePass({ commit },changePassInfo) {   \n    //     authenAccount.changePass(Change => {\n    //         commit('setChange', Change);        \n    //     }, Vue.http, this.state.authen.token, changePassInfo.current_password, changePassInfo.new_password, changePassInfo.retype_new_password, this.state.authen.user.email);\n    // },\n    // forgotPassword({ commit }, email) {   \n    //     authenAccount.forgotPass(data => {\n    //         commit('forgotPass', data);        \n    //     }, Vue.http, email);\n    // }\n    \n};\n\nconst mutations = {\n    setToken(state, data) {\n        state.resData = data;\n        if(data.status_code == 400){\n            return;\n        }\n\n        state.token = data.token;\n        state.user = data.user;\n        localStorage.setItem('jwt', data.token);\n        localStorage.setItem('user', JSON.stringify(data.user));  \n    },\n    // setChange(state, Change) {\n    //     state.resData = Change;\n    // },\n    // forgotPass(state, data) {\n    //     state.resData = data;\n    // },\n};\n\nexport default {\n  namespaced: true,\n  state,\n  getters,\n  actions,\n  mutations\n};\n","import { request_list } from '@/commons/hpod';\nimport Vue from 'vue';\nconst endpoint = 'tracking'\n\n// initial state\nconst state = {\n    loading: false,\n    all: {},\n    track_items: {},\n    listOfDay: {},\n    selected: {\n        id: 0,\n        TransactionCode: '',\n        FeeShip: 0,\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getListTracking({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('tracking/find', data => {\n            commit('setListTracking', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    }\n};\n\n// mutations\nconst mutations = {\n    setList(state, data) {\n        state.all = data;\n    },\n    setListTracking(state, data) {\n        state.track_items = data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, request_list, update_detail, create_detail, remove_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'bigpackage'\n\n// initial state\nconst state = {\n    loading: false,\n    notTransit: [],\n    all: {},\n    selected: {\n        ID: 0,\n        PackageCode: '',\n        Weight: 0,\n        Volume: 0,\n        Amount: 0,\n        Status: 0,\n        FeeType: 0,\n        Packages: []\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setBigPackageList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getListNotTransit({ commit }) {\n        var param = {'not_tran': true}\n        request_list(endpoint, data => {\n            commit('setListNotTransit', data);\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, {id, param}) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token, param);\n    },\n    setDetail({ commit, dispatch }, {data, id, param}) {\n        if(id > 0) {\n            data.ModifiedBy = this.state.authentication.user.username;\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể cập nhật bao hàng.')\n                }\n                else {\n                    sendSuccessNotice('Cập nhật bao hàng thành công.')\n                    refreshResource();\n                }\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            data.CreatedBy = this.state.authentication.user.username;\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể thêm mới bao hàng.')\n                }\n                else {\n                    sendSuccessNotice('Thêm mới bao hàng thành công.');\n                    refreshResource();\n                }\n            }, Vue.http, data, this.state.authentication.token);\n        }\n    },\n    removeDetail({ commit }, id) {\n        if(id == 0) {\n            return;\n        }\n        commit(\"setLoading\", { loading: true });\n        remove_detail(endpoint, res => {\n            if (res.data.status === false) {\n                sendErrorNotice('Không thể xóa bao hàng.')\n            }\n            else {\n                sendSuccessNotice('Đã xóa bao hàng thành công.')\n                refreshResource();\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    setBigPackageList(state, data) {\n        state.all = data;\n    },\n    setListNotTransit(state, data) {\n        state.notTransit = data.data;\n    },\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, request_list, update_detail, create_detail, remove_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'bigpackagevn'\n\n// initial state\nconst state = {\n    loading: false,\n    notTransit: [],\n    all: {},\n    selected: {\n        ID: 0,\n        PackageCode: '',\n        Weight: 0,\n        Volume: 0,\n        Amount: 0,\n        Status: 0,\n        FeeType: 0,\n        Packages: []\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setBigPackageList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getListNotTransit({ commit }) {\n        var param = {'not_tran': true}\n        request_list(endpoint, data => {\n            commit('setListNotTransit', data);\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, {id, param}) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token, param);\n    },\n    setDetail({ commit, dispatch }, {data, id, param}) {\n        if(id > 0) {\n            data.ModifiedBy = this.state.authentication.user.username;\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể cập nhật bao hàng.')\n                }\n                else {\n                    sendSuccessNotice('Cập nhật bao hàng thành công.')\n                    refreshResource();\n                }\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            data.CreatedBy = this.state.authentication.user.username;\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể thêm mới bao hàng.')\n                }\n                else {\n                    sendSuccessNotice('Thêm mới bao hàng thành công.');\n                    refreshResource();\n                }\n            }, Vue.http, data, this.state.authentication.token);\n        }\n    },\n    removeDetail({ commit }, id) {\n        if(id == 0) {\n            return;\n        }\n        commit(\"setLoading\", { loading: true });\n        remove_detail(endpoint, res => {\n            if (res.data.status === false) {\n                sendErrorNotice('Không thể xóa bao hàng.')\n            }\n            else {\n                sendSuccessNotice('Đã xóa bao hàng thành công.')\n                refreshResource();\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    setBigPackageList(state, data) {\n        state.all = data;\n    },\n    setListNotTransit(state, data) {\n        state.notTransit = data.data;\n    },\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, update_detail, create_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'configuration'\nconst viewTitle = 'cấu hình chung'\n\n// initial state\nconst state = {\n    loading: false,\n    selected: {\n        ID: 0\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    setDetail({ commit }, {data, id}) {\n        if(id > 0) {\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice(`Không thể cập nhật ${viewTitle}.`)\n                }\n                else {\n                    sendSuccessNotice(`Cập nhật ${viewTitle} thành công.`)\n                }\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice(`Không thể thêm mới ${viewTitle}.`)\n                }\n                else {\n                    sendSuccessNotice(`Thêm mới ${viewTitle} thành công.`);\n                }\n            }, Vue.http, data, this.state.authentication.token);\n        }\n    }\n};\n\n// mutations\nconst mutations = {\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, request_list, update_detail, create_detail, remove_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'users'\nconst viewTitle = 'nhân viên'\n\n// initial state\nconst state = {\n    loading: false,\n    all: {},\n    selected: {\n        ID: 0,\n        Username: '',\n        Email: '',\n        RoleID: 0,\n        is_active: 0,\n        is_admin: 0\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    setDetail({ commit, dispatch }, {data, id, param, notify = ''}) {\n        if(id > 0) {\n            data.ModifiedBy = this.state.authentication.user.username;\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice(`Không thể cập nhật ${viewTitle}.`)\n                }\n                else if(notify == ''){\n                    sendSuccessNotice(`Cập nhật ${viewTitle} thành công.`)\n                }\n                else {\n                    sendSuccessNotice(notify)\n                }\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            data.CreatedBy = this.state.authentication.user.username;\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice(`Không thể thêm mới ${viewTitle}.`)\n                }\n                else {\n                    sendSuccessNotice(`Thêm mới ${viewTitle} thành công. Mật khẩu Apl@68`);\n                }\n            }, Vue.http, data, this.state.authentication.token);\n        }\n        dispatch('getList', param);\n    },\n    removeDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        remove_detail(endpoint, res => {\n            if (res.data.status === false) {\n                sendErrorNotice(`Không thể xóa ${viewTitle}.`)\n            }\n            else {\n                sendSuccessNotice(`Đã xóa ${viewTitle} thành công.`)\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    setList(state, data) {\n        state.all = data;\n    },\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import configs from '@/configs';\nimport {request_header, request_list} from '@/commons/hpod';\n\nexport default {\n    getPayOrderList(cb, $http, param, token) {\n        request_list('pay_order', cb, $http, param, token)\n    },\n    getPayOrderDetail(cb, $http, customerId, token) {\n        const req = {\n            headers: request_header(token)\n        };\n        $http.get(`${configs.API}/api/pay_order/${customerId}`, req).then(function (res) {\n            setTimeout(() => cb(res.data), 100);\n        });\n    },\n    updatePayOrder(cb, $http, {package_ids, otherFee, uid}, token) {\n        const header = {\n            headers: request_header(token)\n        };\n        let req = _.cloneDeep({package_ids: package_ids.join(','), otherFee, uid});\n        $http.post(`${configs.API}/api/pay_order/${uid}`, req, header).then(function (res) {\n            setTimeout(() => cb(res.data), 100);\n        });\n    }\n}\n","import shop from '../../api/payOrder';\nimport { sendSuccessNotice, sendErrorNotice, getCurrentTime } from '@/commons/utils';\nimport Vue from 'vue';\n\n// initial state\nconst state = {\n    loading: false,\n    selectedItem: {},\n    all: [],\n    total: 0\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getPayOrderList({ commit }, param) {\n        commit('setLoading', {loading: true});\n        shop.getPayOrderList(data => {\n            commit('setPayOrderList', data);\n            commit('setLoading', {loading: false});\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getPayOrderDetail({ commit }, customerId) {\n        commit('setLoading', {loading: true});\n        shop.getPayOrderDetail(data => {\n            commit('setPayOrderDetail', data);\n            commit('setLoading', {loading: false});\n        }, Vue.http, customerId, this.state.authentication.token);\n    },\n    updatePayOrder({ commit, dispatch }, {package_ids, otherFee, uid, param}) {\n        shop.updatePayOrder(data => {\n            dispatch('getPayOrderList', param);\n            dispatch('paymentHistory/getPaymentHistoryList', param, {root: true});\n            sendSuccessNotice('Thanh toán thành công.')\n        }, Vue.http, {package_ids, otherFee, uid}, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    setPayOrderList(state, res) {\n        state.all = res.data;\n        state.total = res.total;\n    },\n    setPayOrderDetail(state, item) {\n        state.selectedItem = item.data;\n    },\n    setLoading(state, { loading }) {\n        _.debounce(function () { state.loading = loading; }, 400, {\n            'leading': false,\n            'trailing': true\n        });\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import configs from '@/configs';\nimport {request_header, request_list} from '@/commons/hpod';\n\nexport default {\n    getPaymentHistoryList(cb, $http, param, token) {\n        request_list('payment_histories', cb, $http, param, token)\n    },\n    getPaymentHistoryDetail(cb, $http, id, token) {\n        const header = {\n            headers: request_header(token)\n        };\n\n        $http.get(`${configs.API}/api/payment_histories/${id}`, header).then(function (res) {\n            setTimeout(() => cb(res.data), 100);\n        });\n    }\n}\n","import shop from '../../api/paymentHistory';\nimport {request_detail, request_list} from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'payment_histories'\nconst viewTitle = 'Lịch sử thanh toán'\n// initial state\nconst state = {\n    loading: false,\n    all: {},\n    selected: {\n        Packages: []\n    },\n    packageByRef: []\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getPaymentHistoryList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        shop.getPaymentHistoryList(data => {\n            commit('setPaymentHistoryList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getPaymentHistoryDetail({ commit }, paymentID) {\n        commit(\"setLoading\", { loading: true });\n        shop.getPaymentHistoryDetail(data => {\n            commit('setPaymentHistoryDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, paymentID, this.state.authentication.token);\n    },\n    getPackageByRef({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('bigpackagebyref', data => {\n            commit('setPackageByRef', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, {id, params}) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                    commit(\"setLoading\", { loading: true });\n                    request_detail(endpoint, item => {\n                        commit('setDetail', item);\n                        commit(\"setLoading\", { loading: false });\n                        resolve(item.data ? item.data : item);\n                        if(params && params.action) {\n                            refreshResource();\n                        }\n                }, Vue.http, id, this.state.authentication.token, params);\n            }, 100)\n        })\n    },\n};\n\n// mutations\nconst mutations = {\n    setPaymentHistoryList(state, data) {\n        state.all = data;\n    },\n    setPaymentHistoryDetail(state, item) {\n        state.selected = item.data;\n    },\n    setPackageByRef(state, item) {\n        state.packageByRef = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, request_list, update_detail, create_detail, export_list } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource } from '@/commons/utils';\nimport Vue from 'vue';\nimport configs from '@/configs'\nvar FileSaver = require('file-saver');\nconst endpoint = 'recharge_histories'\n\n// initial state\nconst state = {\n    loading: false,\n    all: {},\n    selected: {\n        ID: 0,\n        UID: 0,\n        Method: 4,\n        Username: '',\n        Amount: 0,\n        Status: configs.RECHARGE_STATUS.Pending,\n        TradeContent: ''\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setRechargeHistoryList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    setDetail({ commit }, {data, id, cancel}) {\n        commit(\"setLoading\", { loading: true });\n        if(id > 0) {\n            delete data.CreatedDate;\n            delete data.CreatedBy;\n            // data.ModifiedDate = getCurrentTime().format(configs.SQL_DATE_FORMAT);\n            data.ModifiedBy = this.state.authentication.user.username;\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể cập nhật lệnh nạp tiền.')\n                }\n                else if(cancel) {\n                    sendSuccessNotice('Hủy lệnh nạp tiền thành công.')\n                    refreshResource();\n                }\n                else {\n                    sendSuccessNotice('Cập nhật lệnh nạp tiền thành công.')\n                    refreshResource();\n                }\n                commit(\"setLoading\", { loading: false });\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            // data.CreatedDate = getCurrentTime().format(configs.SQL_DATE_FORMAT);\n            data.CreatedBy = this.state.authentication.user.username;\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể thêm mới lệnh nạp tiền.')\n                }\n                else {\n                    sendSuccessNotice('Thêm mới lệnh nạp tiền thành công.')\n                    refreshResource();\n                }\n                commit(\"setLoading\", { loading: false });\n            }, Vue.http, data, this.state.authentication.token);\n        }\n    },\n    exportList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        export_list(endpoint, res => {\n            commit(\"setLoading\", { loading: false });\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `nap_tien_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n};\n\n// mutations\nconst mutations = {\n    setRechargeHistoryList(state, data) {\n        state.all = data;\n    },\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_list, export_list } from '@/commons/hpod';\nvar FileSaver = require('file-saver');\nimport Vue from 'vue';\n// initial state\nconst state = {\n    loading: false,\n    revenues: {},\n    truckReport: {\n        chart: [],\n        items: [],\n        plates: [],\n        summary: {}\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {    \n    getRevenueReport({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('report/revenue-report', data => {\n            commit('setRevenueReport', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getTruckReport({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('report/truck', data => {\n            commit('setTruckReport', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    exportList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        export_list('report/revenue-report', res => {\n            commit(\"setLoading\", { loading: false });\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `bao_cao_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n};\n\n// mutations\nconst mutations = {\n    setRevenueReport(state, data) {\n        state.revenues = data;\n    },\n    setTruckReport(state, data) {\n        const payload = data && data.data ? data.data : {};\n        state.truckReport = {\n            chart: payload.chart || [],\n            items: payload.items || [],\n            plates: payload.plates || [],\n            summary: payload.summary || {}\n        };\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import user_api from '@/api/user';\nimport { request_list } from '@/commons/hpod';\nimport moment from 'moment';\nimport Vue from 'vue';\n\nconst state = {\n    date_range: [],\n    period_date: [],\n    compare_date: false,\n    allowCompare: false,\n    start_time: undefined,\n    end_time: undefined,\n    compare_start_time: undefined,\n    compare_end_time: undefined,\n    rangeSelect: '',\n    rangeSelectCompare: '',\n    all_users: [],\n    stores: [],\n    customers: [],\n    sidebarExpanded: true,\n    orderWidgets: {\n        customer: true,\n        staff: true,\n        product: true,\n        chat: true,\n        paymentHistory: false,\n        paymentArea: true,\n        complain: false,\n        changeHistory: false,\n        transaction: true,\n    },\n    filters: {\n        \"customer_list\": [],\n        \"customer_level\": [],\n        \"order_list\": [],\n        \"payment_history_list\": [],\n        \"payorder_list\": [],\n        \"recharge_list\": [],\n        \"withdraw_list\": [],\n        \"transactioncode_list\": [],\n        \"deposit_list\": [],\n        \"complain_list\": [],\n        \"storemanager_list\": [],\n        \"bigpackage_list\": [],\n        \"feeWeight_list\": [],\n        \"feeBuy_list\": [],\n        \"staff_list\": [],\n        \"notification_list\": [],\n        \"historypaywallet\": [],\n        \"bigpackagevn_list\": [],\n        \"product_list\": [],\n        \"order_list\": [],\n        \"storage_list\": [],\n        \"productType_list\": [],\n        \"quote_list\": [],\n    },\n    filterConditions: {\n        \"customer_list\": [],\n        \"customer_level\": [],\n        \"order_list\": [],\n        \"payment_history_list\": [],\n        \"payorder_list\": [],\n        \"recharge_list\": [],\n        \"withdraw_list\": [],\n        \"transactioncode_list\": [],\n        \"deposit_list\": [],\n        \"complain_list\": [],\n        \"storemanager_list\": [],\n        \"bigpackage_list\": [],\n        \"feeWeight_list\": [],\n        \"feeBuy_list\": [],\n        \"staff_list\": [],\n        \"notification_list\": [],\n        \"historypaywallet\": [],\n        \"bigpackagevn_list\": [],\n        \"product_list\": [],\n        \"order_list\": [],\n        \"storage_list\": [],\n        \"productType_list\": [],\n        \"quote_list\": [],\n    }\n};\n\nconst getters = {};\n\nconst actions = {\n    getAllUsers({ commit }) {\n        user_api.getAllUsers(res => {\n            commit('setAllUsers', res);\n        }, Vue.http, this.state.authentication.token);\n    },\n    getAllStores({ commit }) {\n        request_list('stores', data => {\n            commit('setListStores', data);\n        }, Vue.http, {}, this.state.authentication.token);\n    },\n    getAllCustomer({ commit }) {\n        request_list('customers', data => {\n            commit('setListCustomers', data);\n        }, Vue.http, {}, this.state.authentication.token);\n    },\n    setDateRange({commit }, date_range_val) {\n        commit('setDates', date_range_val);\n    },\n    setPeriodDates({commit }, date_range_val) {\n        commit('setPeriodDates', date_range_val);\n    },\n    setCompareDate({commit }, compare_date_val) {\n        commit('setCompareDate', compare_date_val);\n    },\n    setRangeSelect({commit }, rangeSelectVal) {\n        commit('setRangeSelect', rangeSelectVal);\n    },\n    setRangeSelectCompare({commit }, rangeSelectCompareVal) {\n        commit('setRangeSelectCompare', rangeSelectCompareVal);\n    },\n    setOrderWidgets({commit }, { widgets }) {\n        commit('setOrderWidgets', { widgets });\n    },\n};\n\nconst mutations = {\n    setAllUsers(state, res) {\n        state.all_users = res.data || [];\n    },\n    setListStores(state, res) {\n        state.stores = res.data || [];\n    },\n    setListCustomers(state, res) {\n        state.customers = res.data || [];\n    },\n    setOrderWidgets(state, { widgets }) {\n        state.orderWidgets = widgets;\n    },\n    setSidebarExpanded(state, { expanded }) {\n        state.sidebarExpanded = expanded;\n    },\n    setFilters(state, { filter }) {\n        state.filters = filter;\n    },\n    setFilterConditions(state, { filter }){\n        state.filterConditions = filter;\n    },\n    setDates(state, date_range_val) {\n        state.start_time = moment(date_range_val[0]).startOf('d').add(60 * moment().utcOffset(), 'seconds').unix();\n        state.end_time = moment(date_range_val[1]).endOf('d').add(60 * moment().endOf('d').utcOffset(), 'seconds').unix();\n\n        state.date_range = date_range_val;\n    },\n    setPeriodDates(state, val) {\n        state.compare_start_time = moment(val[0]).startOf('d').add(60 * moment().utcOffset(), 'seconds').unix();\n        state.compare_end_time = moment(val[1]).endOf('d').add(60 * moment().endOf('d').utcOffset(), 'seconds').unix();\n\n        state.period_date = val;\n    },\n    setCompareDate(state, compare_date_val) {\n        state.compare_date = compare_date_val;\n        if(!compare_date_val){\n            state.period_date = [];\n            state.compare_start_time = null;\n            state.compare_end_time = null;\n        }\n    },\n    setRangeSelect(state, rangeSelectVal) {\n        state.rangeSelect = rangeSelectVal;\n    },\n    setRangeSelectCompare(state, rangeSelectCompareVal) {\n        state.rangeSelectCompare = rangeSelectCompareVal;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_detail, request_list, update_detail, create_detail, remove_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource, loadingData } from '@/commons/utils';\nimport moment from 'moment';\nimport Vue from 'vue';\nexport default class {\n    constructor(endpoint, viewTitle) {\n        this.endpoint = endpoint;\n        this.viewTitle = viewTitle;\n        this.state = {\n            loading: false,\n            all: {},\n            selected: {}\n        };\n        this.getters = {\n            selectedObject: state => {\n                return state.selected\n            }\n        };\n        this.actions = {\n            getList({ commit }, param) {\n                return new Promise((resolve, reject) => {\n                    setTimeout(() => {\n                        commit(\"setLoading\", { loading: true });\n                        request_list(endpoint, data => {\n                        commit('setList', data);\n                        commit(\"setLoading\", { loading: false });\n                    }, Vue.http, param, this.state.authentication.token);\n                    }, 100)\n                })\n            },\n            getDetail({ commit }, id) {\n                return new Promise((resolve, reject) => {\n                    setTimeout(() => {\n                            commit(\"setLoading\", { loading: true });\n                            request_detail(endpoint, item => {\n                            commit('setDetail', item);\n                            commit(\"setLoading\", { loading: false });\n                            resolve(item.data ? item.data : item);\n                        }, Vue.http, id, this.state.authentication.token);\n                    }, 100)\n                })\n            },\n            setDetail({ commit, getters }, { data, id, notify, ignore_compare = true}) {\n                return new Promise((resolve, reject) => {\n                    setTimeout(() => {\n                        if (id > 0) {\n                            let updateObject = {};\n                            if(!ignore_compare) {\n                                const selectedObj = getters.selectedObject;\n                                for (const prop in data) {\n                                    if(prop.indexOf('Date') > 0 && moment(data[prop]).startOf('day').unix() != moment(selectedObj[prop]).startOf('day').unix()) {\n                                        updateObject[prop] = data[prop];\n                                    }\n                                    else if(prop.indexOf('Date') <= 0 && data[prop] != selectedObj[prop]) {\n                                        updateObject[prop] = data[prop];\n                                    }\n                                }\n                                if(_.isEmpty(updateObject)) {\n                                    // sendErrorNotice('Không có thay đổi dữ liệu.')\n                                    return;\n                                }\n                            }\n                            else {\n                                updateObject = data;\n                            }                            \n                            update_detail(endpoint, res => {\n                                if (res.status === 202) {\n                                    sendErrorNotice(res.reason)\n                                }\n                                else if (res.status !== 200) {\n                                    sendErrorNotice(`Không thể cập nhật ${viewTitle}.`)\n                                }\n                                else {\n                                    if(notify && notify != '') {\n                                        sendSuccessNotice(notify);\n                                    }\n                                    else {\n                                        sendSuccessNotice(`Cập nhật ${viewTitle} thành công.`)\n                                    }\n                                    resolve(res);\n                                    refreshResource();\n                                }\n                            }, Vue.http, updateObject, id, this.state.authentication.token);\n                        }\n                        else {\n                            delete data.id;\n                            create_detail(endpoint, res => {\n                                if (res.status === 202) {\n                                    sendErrorNotice(res.reason)\n                                }\n                                if (res.status !== 200) {\n                                    sendErrorNotice(`Không thể thêm mới ${viewTitle}.`);\n                                }\n                                else {\n                                    sendSuccessNotice(`Thêm mới ${viewTitle} thành công.`);\n                                    resolve(res);\n                                    refreshResource();\n                                }\n                            }, Vue.http, data, this.state.authentication.token);\n                        }\n                    }, 100)\n                })\n            },\n            removeDetail({ commit }, id) {\n                commit(\"setLoading\", { loading: true });\n                remove_detail(endpoint, res => {\n                    if (res.data.status === false) {\n                        sendErrorNotice(`Không thể xóa ${viewTitle}.`);\n                    }\n                    else {\n                        sendSuccessNotice(`Đã xóa ${viewTitle} thành công.`);\n                        refreshResource();\n                    }\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, id, this.state.authentication.token);\n            },\n            removeBatch({ commit }, ids) {\n                commit(\"setLoading\", { loading: true });\n                update_detail(`${endpoint}/delete`, res => {\n                    if (res.data.status === false) {\n                        sendErrorNotice(`Không thể xóa ${viewTitle}.`);\n                    }\n                    else {\n                        sendSuccessNotice(`Đã xóa ${viewTitle} thành công.`);\n                        refreshResource();\n                    }\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, {'ids': ids}, 0, this.state.authentication.token);\n            }\n        };\n        this.mutations = {\n            setList(state, data) {\n                state.all = data;\n            },\n            setDetail(state, item) {\n                state.selected = item.data ? item.data : item;\n            },\n            setLoading(state, { loading }) {\n                loadingData(loading);\n                state.loading = loading;\n            }\n        };\n    }\n}","import Crud from './crud'\nimport { request_list, export_list, export_detail } from '@/commons/hpod';\nvar FileSaver = require('file-saver');\nimport Vue from 'vue';\nvar crud = new Crud('orders', 'xe hàng');\n\nconst state = {\n    ...crud.state,\n    order_detail: {},\n    selected: {\n        ID: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions,\n    getDetailList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('products', data => {\n            commit('setDetailList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    exportList({ commit }, param) {\n        export_list('orders', res => {\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `XepXe_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n    exportDetail({ commit }, param) {\n        export_detail('orders', res => {\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `XepXe_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export');\n    }\n};\nconst mutations = {\n    ...crud.mutations,\n    setDetailList(state, data) {\n        state.order_detail = data;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import { sendErrorNotice, sendSuccessNotice, refreshResource } from '@/commons/utils';\nimport { upload_file, request_list, request_detail, export_list } from '@/commons/hpod';\nimport Vue from 'vue';\nimport Crud from './crud'\nvar FileSaver = require('file-saver');\nvar crud = new Crud('products', 'hàng hóa');\n\nconst state = {\n    ...crud.state,\n    availableList: [],\n    orderList: {},\n    quoteList: {},\n    billList: {},\n    selected: {\n        ID: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions,\n    import_data({ commit }, formData) {\n        commit(\"setLoading\", { loading: true });\n        upload_file(crud.endpoint, res => {\n            commit(\"setLoading\", { loading: false });\n            if(res.status == 202) {\n                sendErrorNotice(res.data.reason);\n            }\n            else {\n                refreshResource();\n                var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,\"});\n                FileSaver.saveAs(blob, `Import_Result_${new Date().getTime()}.xlsx`);\n                sendSuccessNotice('Import file thành công.');\n            }\n        }, Vue.http, formData, this.state.authentication.token, 'import');\n    },\n    getAvailableList({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                commit(\"setLoading\", { loading: true });\n                request_list(`${crud.endpoint}/available`, data => {\n                    commit('setAvailableList', data);\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, param, this.state.authentication.token);\n            }, 100)\n        })\n    },\n    getOrderList({ commit }, id) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                commit(\"setLoading\", { loading: true });\n                request_detail(`${crud.endpoint}/order`, data => {\n                    commit('setOrderList', data);\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, id, this.state.authentication.token);\n            }, 100)\n        })\n    },\n    getBillList({ commit }, id) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                commit(\"setLoading\", { loading: true });\n                request_detail(`${crud.endpoint}/bill`, data => {\n                    commit('setBillList', data);\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, id, this.state.authentication.token);\n            }, 100)\n        })\n    },\n    getQuoteList({ commit }, id) {\n        return new Promise((resolve, reject) => {\n            setTimeout(() => {\n                commit(\"setLoading\", { loading: true });\n                request_detail(`${crud.endpoint}/quote`, data => {\n                    commit('setQuoteList', data);\n                    commit(\"setLoading\", { loading: false });\n                }, Vue.http, id, this.state.authentication.token);\n            }, 100)\n        })\n    },\n    exportList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        export_list('products', res => {\n            commit(\"setLoading\", { loading: false });\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `ma_bill_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n    exportTieuNgach({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            commit(\"setLoading\", { loading: true });\n            export_list('products', res => {\n                commit(\"setLoading\", { loading: false });\n                var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n                FileSaver.saveAs(blob, `tieu_ngach_${new Date().getTime()}.xlsx`);\n                resolve(res);\n            }, Vue.http, param, this.state.authentication.token, 'export_tieu_ngach', error => {\n                commit(\"setLoading\", { loading: false });\n                sendErrorNotice('Lỗi khi xuất file tiểu ngạch!');\n                reject(error);\n            });\n        });\n    },\n    exportChinhNgach({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            commit(\"setLoading\", { loading: true });\n            export_list('products', res => {\n                commit(\"setLoading\", { loading: false });\n                var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n                FileSaver.saveAs(blob, `导出文件-大额贸易_${new Date().getTime()}.xlsx`);\n                resolve(res);\n            }, Vue.http, param, this.state.authentication.token, 'export_chinh_ngach', error => {\n                commit(\"setLoading\", { loading: false });\n                sendErrorNotice('Lỗi khi xuất file chính ngạch!');\n                reject(error);\n            });\n        });\n    },\n    exportChinhNgachVi({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            commit(\"setLoading\", { loading: true });\n            export_list('products', res => {\n                commit(\"setLoading\", { loading: false });\n                var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n                FileSaver.saveAs(blob, `chinh_ngach_vi_${new Date().getTime()}.xlsx`);\n                resolve(res);\n            }, Vue.http, param, this.state.authentication.token, 'export_chinh_ngach_vi', error => {\n                commit(\"setLoading\", { loading: false });\n                sendErrorNotice('Lỗi khi xuất file chính ngạch!');\n                reject(error);\n            });\n        });\n    },\n};\nconst mutations = {\n    ...crud.mutations,\n    setAvailableList(state, ret) {\n        state.availableList = ret.data;\n    },\n    setOrderList(state, ret) {\n        state.orderList = ret;\n    },\n    setQuoteList(state, ret) {\n        state.quoteList = ret;\n    },\n    setBillList(state, ret) {\n        state.billList = ret;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nimport { request_list, export_list } from '@/commons/hpod';\nimport Vue from 'vue';\nvar FileSaver = require('file-saver');\nvar crud = new Crud('bills', 'xuất kho');\n\nconst state = {\n    ...crud.state,\n    bill_detail: {},\n    selected: {\n        ID: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions,\n    getDetailList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('products', data => {\n            commit('setDetailList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    exportList({ commit }, param) {\n        export_list('bills', res => {\n            var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n            FileSaver.saveAs(blob, `XuatKho_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export_list');\n    },\n};\nconst mutations = {\n    ...crud.mutations,\n    setDetailList(state, data) {\n        state.bill_detail = data;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import { request_list } from '@/commons/hpod';\nimport Vue from 'vue';\nconst viewTitle = 'dashboard'\n// initial state\nconst state = {\n    loading: false,\n    three_month_report: {},\n    sale_monthly_report: {},\n    sale_warning_report: {},\n    debt_summary: {},\n    truck_status_chart: [],\n    order_status_chart: []\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    get_3month_report({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/three-month-report', data => {\n            commit('set_3month_report', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    get_sale_monthly_report({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/sale-monthly-report', data => {\n            commit('set_sale_monthly_report', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    get_sale_warning_report({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/sale-warning-report', data => {\n            commit('set_sale_warning_report', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDebtSummary({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/debt-summary', data => {\n            commit('setDebtSummary', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getTruckStatusChart({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/truck-status-chart', data => {\n            commit('setTruckStatusChart', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getOrderStatusChart({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('dashboard/order-status-chart', data => {\n            commit('setOrderStatusChart', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    set_3month_report(state, data) {\n        state.three_month_report = data;\n    },\n    set_sale_monthly_report(state, data) {\n        state.sale_monthly_report = data;\n    },\n    set_sale_warning_report(state, data) {\n        state.sale_warning_report = data;\n    },\n    setDebtSummary(state, ret) {\n        state.debt_summary = ret.data;\n    },\n    setTruckStatusChart(state, ret) {\n        state.truck_status_chart = ret.data;\n    },\n    setOrderStatusChart(state, ret) {\n        state.order_status_chart = ret.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    }\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import Crud from './crud'\nvar crud = new Crud('storages', 'kho nhận');\n\nconst state = {\n    ...crud.state,\n    selected: {\n        ID: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('product_types', 'loại hàng');\n\nconst state = {\n    ...crud.state,\n    selected: {\n        ID: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('fee_weights', 'phí cân');\n\nconst state = {\n    ...crud.state,\n    selected: {\"ID\":0,\"UID\":0,\"StorageID\":0,\"ProductType\":0,\"ValueMin\":0,\"ValueMax\":0,\"Amount\":0}\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('fee_volumes', 'phí khối');\n\nconst state = {\n    ...crud.state,\n    selected: {\"ID\":0,\"UID\":0,\"StorageID\":0,\"ProductType\":0,\"ValueMin\":0,\"ValueMax\":0,\"Amount\":0}\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('cost_weights', 'giá gốc');\n\nconst state = {\n    ...crud.state,\n    selected: {\n        ID: 0,\n        StorageID: null,\n        ProductType: null,\n        CostWeight: 0,\n        CostVolume: 0\n    }\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import Crud from './crud'\nvar crud = new Crud('order_products', 'chi tiết xe');\n\nconst state = {\n    ...crud.state,\n    selected: {TruckID: 0}\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions,\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('bill_products', 'chi tiết phiếu xuất');\n\nconst state = {\n    ...crud.state,\n    selected: {TruckID: 0}\n};\nconst getters = {\n    ...crud.getters,\n};\nconst actions = {\n    ...crud.actions,\n};\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nimport { upload_file, export_list, export_detail } from '@/commons/hpod';\nimport { sendErrorNotice, sendSuccessNotice, refreshResource } from '@/commons/utils';\nimport configs from '@/configs';\nvar FileSaver = require('file-saver');\nimport Vue from 'vue';\n\nvar crud = new Crud('quotes', 'khai báo');\n\nconst state = {\n    ...crud.state,\n    selected: {\n        ID: 0,\n        UID: '',\n        Username: '',\n        ProductInfo: '',\n        HsCode: '',\n        ImageUrl: '',\n        CustomsPriceCNY: 0,\n        CustomsAmountCNY: 0,\n        CustomsPriceVND: 0,\n        CustomsAmountVND: 0,\n        ExchangeRate: 23000,\n        WeightPrice: 0,\n        VolumePrice: 0,\n        NumberOfPack: 0,\n        Weight: 0,\n        Volume: 0,\n        TotalAmount: 0,\n        PaidAmount: 0,\n        ImportTax: 0,\n        VatTax: 10,\n        ServiceFee: 0,\n        TotalFeeAmount: 0,\n        EstimateTransitPrice: 0,\n        EstimateTransitAmount: 0,\n        IsQuoted: false,\n        Status: 0,\n        ProductCapacity: '',\n        ProductMaterial: '',\n        PackType: '',\n        ProductSize: '',\n        ProductNumber: 0\n    }\n};\n\nconst getters = {\n    ...crud.getters,\n};\n\nconst actions = {\n    ...crud.actions,\n    import_data({ commit }, formData) {\n        commit(\"setLoading\", { loading: true });\n        upload_file(crud.endpoint, res => {\n            commit(\"setLoading\", { loading: false });\n            if(res.status == 202) {\n                sendErrorNotice(res.data.reason);\n            }\n            else {\n                refreshResource();\n                sendSuccessNotice('Import file thành công.');\n            }\n        }, Vue.http, formData, this.state.authentication.token, 'import');\n    },\n    getProductSuggestions({ commit }, productInfo) {\n        return new Promise((resolve, reject) => {\n            Vue.http.get(`${configs.API}/api/quotes/suggestions?product_info=${productInfo}`, {\n                headers: { Authorization: `Bearer ${this.state.authentication.token}` }\n            }).then(response => {\n                if (response.data.success) {\n                    resolve(response.data.data);\n                } else {\n                    reject(response.data.message);\n                }\n            }).catch(error => {\n                reject(error);\n            });\n        });\n    },\n    exportList({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            commit(\"setLoading\", { loading: true });\n            export_list('quotes', res => {\n                try {\n                    var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n                    FileSaver.saveAs(blob, `DanhSachBaoGia_${new Date().getTime()}.xlsx`);\n                    resolve(res);\n                    commit(\"setLoading\", { loading: false });\n                } catch (error) {\n                    reject(error);\n                    commit(\"setLoading\", { loading: false });\n                }\n            }, Vue.http, param, this.state.authentication.token, 'export_list', (error) => {\n                reject(error);\n            });\n        });\n    },\n    getQuotesByCustomer({ commit }, customerId) {\n        return new Promise((resolve, reject) => {\n            if (!customerId) {\n                resolve([]);\n                return;\n            }\n            Vue.http.get(`${configs.API}/api/quotes/by-customer/${customerId}`, {\n                headers: { Authorization: `Bearer ${this.state.authentication.token}` }\n            }).then(response => {\n                if (response.data.status === 200) {\n                    resolve(response.data.data);\n                } else {\n                    reject(response.data.message);\n                }\n            }).catch(error => {\n                reject(error);\n            });\n        });\n    },\n    exportDetail({ commit }, param) {\n        return new Promise((resolve, reject) => {\n            export_detail('quotes', res => {\n                try {\n                    var blob = new Blob([res.data], {type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"});\n                    FileSaver.saveAs(blob, `BaoGia_${new Date().getTime()}.xlsx`);\n                    resolve(res);\n                } catch (error) {\n                    reject(error);\n                }\n            }, Vue.http, param, this.state.authentication.token, 'export', (error) => {\n                reject(error);\n            });\n        });\n    }\n};\n\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\nvar crud = new Crud('quote_packages', 'kiện hàng');\n\nconst state = {\n    ...crud.state,\n    selected: {\n        ID: 0\n    }\n};\n\nconst getters = {\n    ...crud.getters,\n};\n\nconst actions = {\n    ...crud.actions\n};\n\nconst mutations = {\n    ...crud.mutations,\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};","import Crud from './crud'\n\nvar crud = new Crud('audit_logs', 'nhật ký thao tác');\n\nconst state = {\n    ...crud.state,\n    selected: { id: 0 }\n};\n\nconst getters = { ...crud.getters };\nconst actions = { ...crud.actions };\nconst mutations = { ...crud.mutations };\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import { request_list, export_list } from '@/commons/hpod';\nimport Vue from 'vue';\nvar FileSaver = require('file-saver');\n\nconst state = {\n    all: {\n        data: [],\n        total: 0,\n        totals: {}\n    },\n    loading: false,\n    selected: {}\n};\n\nconst getters = {\n};\n\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list('report/customer-debt', data => {\n            commit('setList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    \n    exportList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        export_list('report/customer-debt', res => {\n            commit(\"setLoading\", { loading: false });\n            var blob = new Blob([res.data], {\n                type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\"\n            });\n            FileSaver.saveAs(blob, `BaoCaoCongNoKhachHang_${new Date().getTime()}.xlsx`);\n        }, Vue.http, param, this.state.authentication.token, 'export');\n    }\n};\n\nconst mutations = {\n    setList(state, data) {\n        state.all = {\n            data: data.data || [],\n            total: data.total || 0,\n            totals: data.totals || {}\n        };\n    },\n    \n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n    \n    setSelected(state, item) {\n        state.selected = item;\n    }\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport customer from './modules/customer'\nimport authentication from './modules/authentication'\nimport storeManager from './modules/storeManager'\nimport tracking from './modules/tracking'\nimport bigPackage from './modules/bigPackage'\nimport bigPackageVN from './modules/bigPackageVN'\nimport configuration from './modules/configuration'\nimport staff from './modules/staff'\nimport payOrder from './modules/payOrder'\nimport paymentHistory from './modules/paymentHistory'\nimport rechargeHistory from './modules/rechargeHistory'\nimport report from './modules/report'\nimport commons from './modules/commons'\nimport order from './modules/order'\nimport product from './modules/product'\nimport bill from './modules/bill'\nimport dashboard from './modules/dashboard'\nimport storage from './modules/storage'\nimport productType from './modules/productType'\nimport feeWeight from './modules/feeWeight'\nimport feeVolume from './modules/feeVolume'\nimport costWeight from './modules/costWeight'\nimport orderProduct from './modules/orderProduct'\nimport billProduct from './modules/billProduct'\nimport quote from './modules/quote'\nimport quote_packages from \"./modules/quote_packages\";\nimport auditLog from './modules/auditLog'\nimport customerDebt from './modules/customerDebt'\nimport createPersistedState from 'vuex-persistedstate';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n  modules: {\n    customer,\n    authentication,\n    tracking,\n    storeManager,\n    bigPackage,\n    bigPackageVN,\n    feeWeight,\n    feeVolume,\n    costWeight,\n    configuration,\n    staff,\n    payOrder,\n    paymentHistory,\n    report,\n    rechargeHistory,\n    commons,\n    product,\n    order,\n    bill,\n    dashboard,\n    storage,\n    productType,\n    orderProduct,\n    quote,\n    billProduct,\n    quote_packages,\n    auditLog,\n    customerDebt\n  },\n  state: {},\n  mutations: {},\n  actions: {},\n  strict: false,\n  plugins: [createPersistedState({paths:['authentication', 'commons', 'roles'], storage: window.localStorage})]\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-img',{attrs:{\"src\":\"/static/icon/b-gem.png\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./gem.vue?vue&type=template&id=c57843a4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-img',{attrs:{\"src\":\"/static/icon/empty-gem.png\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./empty-gem.vue?vue&type=template&id=263528ce&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import '@mdi/font/css/materialdesignicons.css'\nimport 'babel-polyfill'\nimport Vue from 'vue'\nimport Vuetify from 'vuetify/lib'\nimport 'vuetify/dist/vuetify.min.css'\nimport gem from '@/components/icons/gem.vue'\nimport emptyGem from '@/components/icons/empty-gem.vue'\n// import 'vuetify/src/stylus/app.styl'\n// import '../theme/default.styl'\nVue.use(Vuetify);\n\nexport default new Vuetify({\n  icons: {\n    iconfont: 'mdi',\n    values: {\n      gem: {\n        component: gem\n      },\n      emptyGem: {\n        component: emptyGem\n      }\n    }\n  },\n});\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.isInputActive)?_c('v-text-field',{class:_vm.showClass,attrs:{\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\",\"rules\":_vm.rules,\"step\":_vm.decimal == undefined || _vm.decimal == 0 ? 1 : .1,\"color\":_vm.color,\"label\":_vm.label,\"readonly\":_vm.readonly,\"disabled\":Number(_vm.disabled) === 1 || _vm.disabled === ''},on:{\"blur\":_vm.on_blur,\"focus\":function($event){_vm.isInputActive = true},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.press_enter.apply(null, arguments)}},model:{value:(_vm.displayValue),callback:function ($$v) {_vm.displayValue=$$v},expression:\"displayValue\"}}):_vm._e(),(!_vm.isInputActive)?_c('v-text-field',{class:_vm.showClass,attrs:{\"outlined\":\"\",\"dense\":\"\",\"type\":\"text\",\"rules\":_vm.rules,\"color\":_vm.color,\"label\":_vm.label,\"readonly\":_vm.readonly,\"disabled\":Number(_vm.disabled) === 1 || _vm.disabled === ''},on:{\"blur\":_vm.on_blur,\"focus\":function($event){_vm.isInputActive = true},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.press_enter.apply(null, arguments)}},model:{value:(_vm.displayValue),callback:function ($$v) {_vm.displayValue=$$v},expression:\"displayValue\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div>\n        <v-text-field outlined dense type=\"number\" :rules=\"rules\" :step=\"decimal == undefined || decimal == 0 ? 1 : .1\" v-if=\"isInputActive\" v-bind:class='showClass' :color=\"color\" :label=\"label\" v-model=\"displayValue\" @blur=\"on_blur\" @focus=\"isInputActive = true\" :readonly=\"readonly\" :disabled=\"Number(disabled) === 1 || disabled === ''\" @keyup.enter=\"press_enter\"/>\n        <v-text-field outlined dense type=\"text\" :rules=\"rules\" v-if=\"!isInputActive\" v-bind:class='showClass' :color=\"color\" :label=\"label\" v-model=\"displayValue\" @blur=\"on_blur\" @focus=\"isInputActive = true\" :readonly=\"readonly\" :disabled=\"Number(disabled) === 1 || disabled === ''\" @keyup.enter=\"press_enter\"/>\n    </div>\n</template>\n<script>\nexport default {\n    name: 'h-currency-input',\n    // props: [\"value\", \"label\", \"disabled\", \"decimal\", \"showClass\", \"readonly\", \"color\", \"rules\", autoEmit = { type: Boolean, default: true }],\n    props: {\n        value: Number,\n        label: String,\n        disabled: Boolean,\n        decimal: Number,\n        showClass: String,\n        readonly: Boolean,\n        color: String,\n        rules: Array,\n        autoEmit: { type: Boolean, default: false }\n    },\n    data: function() {\n        return {\n            isInputActive: false,\n            tempValue: null,\n            lastValue: null,\n        }\n    },   \n    computed: {\n        displayValue: {\n            get: function() {\n                if (this.isInputActive) {\n                    // Cursor is inside the input field. unformat display value for user\n                    return (this.value || '').toString()\n                } else {\n                    // User is not modifying now. Format display value for user interface\n                    var parseValue = Number(this.value)\n                    return this.value ? parseValue.toFixed(this.decimal !== undefined ? this.decimal : 2).replace(/(\\d)(?=(\\d{3})+(?:\\.\\d+)?$)/g, \"$1,\") : '0'\n                }\n            },\n            set: function(modifiedValue) {\n                // Recalculate value after ignoring \"$\" and \",\" in user input\n                let newValue = parseFloat(modifiedValue.replace(/[^\\d\\.]/g, \"\"))\n                // Ensure that it is not NaN\n                if (isNaN(newValue)) {\n                    newValue = 0\n                }\n                // Store last value for blur event\n                this.lastValue = newValue;\n                // Note: we cannot set this.value as it is a \"prop\". It needs to be passed to parent component\n                // $emit the event so that parent component gets it\n                if(this.autoEmit) {\n                    this.$emit('input', newValue)\n                }\n                else{\n                    this.tempValue = newValue;\n                }\n            }\n        }\n    },\n    methods: {\n        press_enter() {\n            const valueToEmit = this.autoEmit ? this.lastValue : this.tempValue;\n            if(valueToEmit !== null && valueToEmit != this.value) {\n                if(!this.autoEmit) {\n                    this.$emit('input', Number(this.tempValue))\n                }\n                this.$emit('press_enter')   \n            }            \n            this.tempValue = null;\n            this.lastValue = null;\n        },\n        on_blur() {\n            this.isInputActive = false;\n            \n            // When autoEmit is true, use lastValue; otherwise use tempValue\n            const valueToEmit = this.autoEmit ? this.lastValue : this.tempValue;\n            \n            if(valueToEmit !== null && valueToEmit != this.value) {\n                if(!this.autoEmit) {\n                    this.$emit('input', Number(this.tempValue))\n                }\n                this.$emit('on_blur')   \n            }            \n            this.tempValue = null;\n            this.lastValue = null;\n        }\n    }\n}\n</script>\n","import mod from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrencyInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrencyInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CurrencyInput.vue?vue&type=template&id=01dad864&\"\nimport script from \"./CurrencyInput.vue?vue&type=script&lang=js&\"\nexport * from \"./CurrencyInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"widget\",staticClass:\"widget-block clearfix\"},[_c('div',{staticClass:\"header-widget clearfix\"},[_c('h2',{staticClass:\"title-widget fl\"},[_vm._v(_vm._s(_vm.widgetTitle))]),_c('div',{staticClass:\"right-action fr\"},[_c('a',{attrs:{\"href\":\"#zoomChart\",\"data-toggle\":\"modal\"},on:{\"click\":_vm.zoomChart}},[_c('i',{staticClass:\"ico-zoom\"})]),_c('a',{attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.hideWidget}},[_c('i',{staticClass:\"ico-close\"})])])]),_c('div',{staticClass:\"content-widget\"},[_vm._t(\"widget-content\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <div class=\"widget-block clearfix\" ref=\"widget\">\n        <div class=\"header-widget clearfix\">\n            <h2 class=\"title-widget fl\">{{widgetTitle}}</h2>\n            <div class=\"right-action fr\">\n            <a href=\"#zoomChart\" data-toggle=\"modal\" @click=\"zoomChart\">\n                <i class=\"ico-zoom\"></i>\n            </a>\n            <a href=\"javascript:void(0)\" @click=\"hideWidget\">\n                <i class=\"ico-close\"></i>\n            </a>\n            </div>\n        </div>\n        <div class=\"content-widget\">\n            <slot name=\"widget-content\"></slot>\n        </div>\n    </div>\n</template>\n<script>\nexport default {\n    name: 'widget-temp',\n    props:{\n        widgetName:{\n            type: String,\n            default: 'widget-temp'\n        },\n        widgetTitle:{\n            type: String,\n            default: 'Default Title'\n        },\n        widgetId:{\n            type: Number,\n            default: -1\n        }\n    },\n    methods: {\n        zoomChart(){\n            this.$root.$emit(\"zoomChart\", {widgetName: this.widgetName, widgetTitle: this.widgetTitle, widgetId: this.widgetId});\n        },\n        hideWidget(){\n            this.$root.$emit(\"hideWidget\", {widgetId: this.widgetId})\n        }\n    },\n}\n</script>","import mod from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetTemp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../nguonhangchina/admin/node_modules/thread-loader/dist/cjs.js!../../../../../../../nguonhangchina/admin/node_modules/babel-loader/lib/index.js!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./WidgetTemp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WidgetTemp.vue?vue&type=template&id=621b1d8f&\"\nimport script from \"./WidgetTemp.vue?vue&type=script&lang=js&\"\nexport * from \"./WidgetTemp.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router/\";\nimport store from \"./store/\";\nimport 'roboto-fontface/css/roboto/roboto-fontface.css'\nimport 'font-awesome/css/font-awesome.css'\nimport './assets/main.css'\nimport { currency } from './commons/currency'\nimport { display_date, vip_level, vip_level_color, capitalize, display_value, display_color, display_text_color } from './commons/formater'\nimport VueResource from 'vue-resource'\nimport vuetify from './plugins/vuetify'\nimport VueMuuriGrid from 'vue-muuri-grid'\nimport VueCookies from 'vue-cookies'\nimport HighchartsVue from 'highcharts-vue'\nimport firebase from 'firebase';\nimport i18n from \"./i18n/\";\n\ntry {\n  const firebaseConfig = {\n    authDomain: 'oee-app-cc5a1.firebaseapp.com',\n    projectId: 'oee-app-cc5a1',\n    storageBucket: 'oee-app-cc5a1.appspot.com',\n  };\n  // Initialize Firebase\n  firebase.initializeApp(firebaseConfig);\n  firebase.analytics();\n} catch (error) {\n  // expected output: ReferenceError: nonExistentFunction is not defined\n  // Note - error messages will vary depending on browser\n}\n\nVue.use(VueCookies)\nVue.use(VueResource);\nVue.use(VueMuuriGrid);\nVue.use(HighchartsVue);\nVue.use(require('vue-shortkey'))\n// Vue.use(VueMuuriGrid);\nVue.filter('currency', currency)\nVue.filter('display_date', display_date)\nVue.filter('vip_level', vip_level)\nVue.filter('vip_level_color', vip_level_color)\nVue.filter('capitalize', capitalize)\nVue.filter('display_value', display_value)\nVue.filter('display_color', display_color)\nVue.filter('display_text_color', display_text_color)\n\nimport currencyInput from './components/general/CurrencyInput';\nVue.component('h-currency-input', currencyInput);\nimport widgetTemp from '@/components/dashboard/WidgetTemp';\nVue.component('widget-temp', widgetTemp);\n\n// Global directive for dual scrollbar on v-data-table\nVue.directive('dual-scroll', {\n  inserted(el) {\n    setTimeout(() => {\n      setupDualScrollbar(el);\n    }, 500);\n  },\n  componentUpdated(el) {\n    setTimeout(() => {\n      setupDualScrollbar(el);\n    }, 100);\n  }\n});\n\nfunction setupDualScrollbar(el) {\n  const wrapper = el.querySelector('.v-data-table__wrapper');\n  if (!wrapper) return;\n\n  // Skip if already setup\n  if (wrapper.dataset.dualScrollSetup === 'true') return;\n\n  const table = wrapper.querySelector('table');\n  if (!table) return;\n\n  // Check if scrollable\n  if (table.offsetWidth <= wrapper.offsetWidth) {\n    // Remove top scroll if exists but not needed\n    const existingTopScroll = wrapper.previousElementSibling;\n    if (existingTopScroll && existingTopScroll.classList.contains('dual-scroll-top')) {\n      existingTopScroll.remove();\n    }\n    return;\n  }\n\n  wrapper.dataset.dualScrollSetup = 'true';\n\n  // Create or update top scrollbar\n  let topScroll = wrapper.previousElementSibling;\n  if (!topScroll || !topScroll.classList.contains('dual-scroll-top')) {\n    topScroll = document.createElement('div');\n    topScroll.className = 'dual-scroll-top';\n    topScroll.style.overflowX = 'auto';\n    topScroll.style.overflowY = 'hidden';\n    topScroll.style.height = '8px';\n    const topScrollInner = document.createElement('div');\n    topScrollInner.style.height = '1px';\n    topScroll.appendChild(topScrollInner);\n    wrapper.parentNode.insertBefore(topScroll, wrapper);\n  }\n\n  // Update inner width\n  const topScrollInner = topScroll.querySelector('div');\n  topScrollInner.style.width = table.offsetWidth + 'px';\n\n  // Remove old listeners\n  if (topScroll._scrollHandler) {\n    topScroll.removeEventListener('scroll', topScroll._scrollHandler);\n  }\n  if (wrapper._scrollHandler) {\n    wrapper.removeEventListener('scroll', wrapper._scrollHandler);\n  }\n\n  // Sync scroll\n  let isTopScrolling = false;\n  let isWrapperScrolling = false;\n\n  topScroll._scrollHandler = () => {\n    if (!isWrapperScrolling) {\n      isTopScrolling = true;\n      wrapper.scrollLeft = topScroll.scrollLeft;\n      setTimeout(() => { isTopScrolling = false; }, 50);\n    }\n  };\n\n  wrapper._scrollHandler = () => {\n    if (!isTopScrolling) {\n      isWrapperScrolling = true;\n      topScroll.scrollLeft = wrapper.scrollLeft;\n      setTimeout(() => { isWrapperScrolling = false; }, 50);\n    }\n  };\n\n  topScroll.addEventListener('scroll', topScroll._scrollHandler);\n  wrapper.addEventListener('scroll', wrapper._scrollHandler);\n}\n\n// Apply to all v-data-table on mount\nVue.mixin({\n  mounted() {\n    this.$nextTick(() => {\n      if (this.$el && this.$el.querySelectorAll) {\n        const tables = this.$el.querySelectorAll('.v-data-table');\n        tables.forEach(table => {\n          setupDualScrollbar(table);\n        });\n      }\n    });\n  },\n  updated() {\n    this.$nextTick(() => {\n      if (this.$el && this.$el.querySelectorAll) {\n        const tables = this.$el.querySelectorAll('.v-data-table');\n        tables.forEach(table => {\n          setupDualScrollbar(table);\n        });\n      }\n    });\n  }\n});\n\nVue.config.productionTip = false;\n\nnew Vue({\n  router,\n  store,\n  vuetify,\n  i18n,\n  render: h => h(App)\n}).$mount(\"#app\");\n","export * from \"-!../../../../../../../nguonhangchina/admin/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../nguonhangchina/admin/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../nguonhangchina/admin/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSelector.vue?vue&type=style&index=0&id=6e92ad1e&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../../nguonhangchina/admin/node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../../nguonhangchina/admin/node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../nguonhangchina/admin/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../../nguonhangchina/admin/node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=style&index=0&id=53e4ed56&prod&lang=stylus&\"","import { request_detail, request_list, update_detail, create_detail, remove_detail } from '@/commons/hpod';\nimport { sendSuccessNotice, sendErrorNotice, refreshResource } from '@/commons/utils';\nimport Vue from 'vue';\nconst endpoint = 'storemanager'\n\n// initial state\nconst state = {\n    loading: false,\n    all: {},\n    listOfDay: {},\n    selected: {\n        id: 0,\n        TransactionCode: '',\n        FeeShip: 0,\n    }\n};\n\n// getters\nconst getters = {};\n\n// actions\nconst actions = {\n    getList({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setStoreManagerList', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getListOfDay({ commit }, param) {\n        commit(\"setLoading\", { loading: true });\n        request_list(endpoint, data => {\n            commit('setStoreManagerListOfDay', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    getDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        request_detail(endpoint, data => {\n            commit('setDetail', data);\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    getDetailByCode({ commit }, code, callback) {\n        var param = {\n            filter: [{\n                column: \"TransactionCode\",\n                value: code,\n                condition: \"s_equal\"\n            }]\n        };\n        request_list(endpoint, ret => {\n            callback(ret);\n        }, Vue.http, param, this.state.authentication.token);\n    },\n    setDetail({ commit }, {data, id}) {\n        if(id > 0) {\n            data.ModifiedBy = this.state.authentication.user.username;\n            update_detail(endpoint, res => {\n                if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể cập nhật mã vận đơn.')\n                }\n                else {\n                    sendSuccessNotice('Cập nhật mã vận đơn thành công.')\n                    refreshResource();\n                }\n            }, Vue.http, data, id, this.state.authentication.token);\n        }\n        else {\n            data.CreatedBy = this.state.authentication.user.username;\n            delete data.ID;\n            create_detail(endpoint, res => {\n                if(res.status == 204) {\n                    sendErrorNotice('Mã vận đơn đã tồn tại.')\n                }\n                else if (res.data.status === 'fail') {\n                    sendErrorNotice('Không thể thêm mới mã vận đơn.')\n                }\n                else {\n                    sendSuccessNotice('Thêm mới mã vận đơn thành công.');\n                    refreshResource();\n                }\n            }, Vue.http, data, this.state.authentication.token);\n        }\n    },\n    removeDetail({ commit }, id) {\n        commit(\"setLoading\", { loading: true });\n        remove_detail(endpoint, res => {\n            if (res.data.status === false) {\n                sendErrorNotice('Không thể xóa mã vận đơn.')\n            }\n            else {\n                sendSuccessNotice('Đã xóa mã vận đơn thành công.')\n                commit(\"removeItemFromListOfDay\", id);\n                refreshResource();\n            }\n            commit(\"setLoading\", { loading: false });\n        }, Vue.http, id, this.state.authentication.token);\n    },\n    updateMultiple({ commit }, {data}) {\n        update_detail('storemanager/update_multiple', res => {\n            if (res.data.status === 'fail') {\n                sendErrorNotice('Không thể thực hiện nhập kho VN.');\n            }\n            else {\n                sendSuccessNotice('Nhập kho VN thành công.');\n                refreshResource();\n            }\n        }, Vue.http, data, 0, this.state.authentication.token);\n    },\n};\n\n// mutations\nconst mutations = {\n    updateStoreManager(state, item) {\n        state.listOfDay.total +=1;\n        state.listOfDay.data.unshift(item);        \n    },\n    setStoreManagerList(state, data) {\n        state.all = data;\n    },\n    removeItemFromListOfDay(state, id){\n        _.remove(state.listOfDay.data, {\n            'ID': id\n        });\n        state.listOfDay.total -=1;\n    },\n    setStoreManagerListOfDay(state, data) {\n        state.listOfDay = data;\n    },\n    setDetail(state, item) {\n        state.selected = item.data;\n    },\n    setLoading(state, { loading }) {\n        state.loading = loading;\n    },\n};\n\nexport default {\n    namespaced: true,\n    state,\n    getters,\n    actions,\n    mutations\n};\n","import moment from \"moment\"\nimport i18n from '@/i18n';\n  export function sendSuccessNotice (notice) {\n    window.getApp.$emit('APP_RESOURCE_UPDATED', notice);\n  }\n  \n  export function sendErrorNotice (notice) {\n    window.getApp.$emit('APP_RESOURCE_FAILED', notice);\n  }\n\n  export function refreshResource () {\n    window.getApp.$emit('REQUEST_REFRESH_DATA');\n  }\n\n  export function loadingData (value) {\n    window.getApp.$emit('APP_LOADING', value);\n  }\n\n  export function buildBreadcrumb(routeName, routePath, pId, titleKey, menu, paths) {\n    let breadcrumbs = [];\n    // Lấy i18n instance từ window hoặc import nếu cần\n    let i18n = null;\n    if (typeof window !== 'undefined' && window.vm && window.vm.$i18n) {\n      i18n = window.vm.$i18n;\n    } else if (typeof require !== 'undefined') {\n      try {\n        i18n = require('@/i18n').default;\n      } catch (e) {}\n    }\n\n    menu.forEach(item => {\n      if (item.name === routeName) {\n        breadcrumbs.push({\n          text: i18n && item.titleKey ? i18n.t(`routes.${item.titleKey}`) : (item.titleKey || item.title),\n          link: false,\n          href: \"\"\n        });\n      } else if (item.items) {\n        breadcrumbs = _.concat(breadcrumbs, buildBreadcrumb(routeName, routePath, pId, titleKey, item.items, paths))\n      } else if (item.children) {\n        let child = item.children.find(i => {\n          return i.component === routeName;\n        });\n        if (child) {\n          let path = _.find(paths, { name: item.name });\n          breadcrumbs.push({\n            text: i18n && item.titleKey ? i18n.t(`routes.${item.titleKey}`) : (item.titleKey || item.title),\n            disabled: false,\n            href: path ? path.path : \"\"\n          });\n          breadcrumbs.push({\n            text: i18n && titleKey ? i18n.t(`routes.${titleKey}`) : (titleKey || `${child.title} (#${pId})`),\n            link: false,\n            href: \"\"\n          });\n        }\n      }\n    });\n    return breadcrumbs;\n  }\n\n  export function getCurrentTime() {\n    var d = new Date();\n    d.setTime( d.getTime());\n    return moment(d);\n  }\n\n  export function pad(num, size) {\n    num = num.toString();\n    while (num.length < size) num = \"0\" + num;\n    return num;\n  }\n\n  export function makeid(length) {\n    var result           = '';\n    var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n    var charactersLength = characters.length;\n    for ( var i = 0; i < length; i++ ) {\n       result += characters.charAt(Math.floor(Math.random() * charactersLength));\n    }\n    return result;\n  }","var map = {\n\t\"./af\": \"0f89\",\n\t\"./af.js\": \"0f89\",\n\t\"./ar\": \"9e3c\",\n\t\"./ar-dz\": \"1d06\",\n\t\"./ar-dz.js\": \"1d06\",\n\t\"./ar-kw\": \"8f9f\",\n\t\"./ar-kw.js\": \"8f9f\",\n\t\"./ar-ly\": \"8cff\",\n\t\"./ar-ly.js\": \"8cff\",\n\t\"./ar-ma\": \"0658\",\n\t\"./ar-ma.js\": \"0658\",\n\t\"./ar-sa\": \"f6ec\",\n\t\"./ar-sa.js\": \"f6ec\",\n\t\"./ar-tn\": \"539e\",\n\t\"./ar-tn.js\": \"539e\",\n\t\"./ar.js\": \"9e3c\",\n\t\"./az\": \"5818\",\n\t\"./az.js\": \"5818\",\n\t\"./be\": \"7cb2\",\n\t\"./be.js\": \"7cb2\",\n\t\"./bg\": \"ec96\",\n\t\"./bg.js\": \"ec96\",\n\t\"./bm\": \"b99f\",\n\t\"./bm.js\": \"b99f\",\n\t\"./bn\": \"b778\",\n\t\"./bn-bd\": \"ecb4\",\n\t\"./bn-bd.js\": \"ecb4\",\n\t\"./bn.js\": \"b778\",\n\t\"./bo\": \"f5cb\",\n\t\"./bo.js\": \"f5cb\",\n\t\"./br\": \"db8b\",\n\t\"./br.js\": \"db8b\",\n\t\"./bs\": \"79ec\",\n\t\"./bs.js\": \"79ec\",\n\t\"./ca\": \"3b44\",\n\t\"./ca.js\": \"3b44\",\n\t\"./cs\": \"c533\",\n\t\"./cs.js\": \"c533\",\n\t\"./cv\": \"e7cf\",\n\t\"./cv.js\": \"e7cf\",\n\t\"./cy\": \"1e87\",\n\t\"./cy.js\": \"1e87\",\n\t\"./da\": \"ff31\",\n\t\"./da.js\": \"ff31\",\n\t\"./de\": \"4244\",\n\t\"./de-at\": \"1655\",\n\t\"./de-at.js\": \"1655\",\n\t\"./de-ch\": \"f812\",\n\t\"./de-ch.js\": \"f812\",\n\t\"./de.js\": \"4244\",\n\t\"./dv\": \"a4e0\",\n\t\"./dv.js\": \"a4e0\",\n\t\"./el\": \"d87b\",\n\t\"./el.js\": \"d87b\",\n\t\"./en-au\": \"1e91\",\n\t\"./en-au.js\": \"1e91\",\n\t\"./en-ca\": \"8e4e\",\n\t\"./en-ca.js\": \"8e4e\",\n\t\"./en-gb\": \"4724\",\n\t\"./en-gb.js\": \"4724\",\n\t\"./en-ie\": \"bd3b\",\n\t\"./en-ie.js\": \"bd3b\",\n\t\"./en-il\": \"aa0f\",\n\t\"./en-il.js\": \"aa0f\",\n\t\"./en-in\": \"0be3\",\n\t\"./en-in.js\": \"0be3\",\n\t\"./en-nz\": \"1a69\",\n\t\"./en-nz.js\": \"1a69\",\n\t\"./en-sg\": \"2d86\",\n\t\"./en-sg.js\": \"2d86\",\n\t\"./eo\": \"d931\",\n\t\"./eo.js\": \"d931\",\n\t\"./es\": \"8a0e\",\n\t\"./es-do\": \"008c\",\n\t\"./es-do.js\": \"008c\",\n\t\"./es-mx\": \"038d\",\n\t\"./es-mx.js\": \"038d\",\n\t\"./es-us\": \"5f77\",\n\t\"./es-us.js\": \"5f77\",\n\t\"./es.js\": \"8a0e\",\n\t\"./et\": \"dbf3\",\n\t\"./et.js\": \"dbf3\",\n\t\"./eu\": \"ccb6\",\n\t\"./eu.js\": \"ccb6\",\n\t\"./fa\": \"4822\",\n\t\"./fa.js\": \"4822\",\n\t\"./fi\": \"dca2\",\n\t\"./fi.js\": \"dca2\",\n\t\"./fil\": \"4b33\",\n\t\"./fil.js\": \"4b33\",\n\t\"./fo\": \"9d92\",\n\t\"./fo.js\": \"9d92\",\n\t\"./fr\": \"6bd7\",\n\t\"./fr-ca\": \"5fd9\",\n\t\"./fr-ca.js\": \"5fd9\",\n\t\"./fr-ch\": \"bf5a\",\n\t\"./fr-ch.js\": \"bf5a\",\n\t\"./fr.js\": \"6bd7\",\n\t\"./fy\": \"368b\",\n\t\"./fy.js\": \"368b\",\n\t\"./ga\": \"7f55\",\n\t\"./ga.js\": \"7f55\",\n\t\"./gd\": \"6d12\",\n\t\"./gd.js\": \"6d12\",\n\t\"./gl\": \"9454\",\n\t\"./gl.js\": \"9454\",\n\t\"./gom-deva\": \"bf55\",\n\t\"./gom-deva.js\": \"bf55\",\n\t\"./gom-latn\": \"0f65\",\n\t\"./gom-latn.js\": \"0f65\",\n\t\"./gu\": \"4c1e\",\n\t\"./gu.js\": \"4c1e\",\n\t\"./he\": \"a12f\",\n\t\"./he.js\": \"a12f\",\n\t\"./hi\": \"b1a5\",\n\t\"./hi.js\": \"b1a5\",\n\t\"./hr\": \"dfae\",\n\t\"./hr.js\": \"dfae\",\n\t\"./hu\": \"8a7d\",\n\t\"./hu.js\": \"8a7d\",\n\t\"./hy-am\": \"21ab\",\n\t\"./hy-am.js\": \"21ab\",\n\t\"./id\": \"6340\",\n\t\"./id.js\": \"6340\",\n\t\"./is\": \"9383\",\n\t\"./is.js\": \"9383\",\n\t\"./it\": \"2a28\",\n\t\"./it-ch\": \"bab3\",\n\t\"./it-ch.js\": \"bab3\",\n\t\"./it.js\": \"2a28\",\n\t\"./ja\": \"4071\",\n\t\"./ja.js\": \"4071\",\n\t\"./jv\": \"af46\",\n\t\"./jv.js\": \"af46\",\n\t\"./ka\": \"6322\",\n\t\"./ka.js\": \"6322\",\n\t\"./kk\": \"1166\",\n\t\"./kk.js\": \"1166\",\n\t\"./km\": \"7527\",\n\t\"./km.js\": \"7527\",\n\t\"./kn\": \"1f1b\",\n\t\"./kn.js\": \"1f1b\",\n\t\"./ko\": \"c495\",\n\t\"./ko.js\": \"c495\",\n\t\"./ku\": \"03d6\",\n\t\"./ku.js\": \"03d6\",\n\t\"./ky\": \"071e\",\n\t\"./ky.js\": \"071e\",\n\t\"./lb\": \"6a63\",\n\t\"./lb.js\": \"6a63\",\n\t\"./lo\": \"dcfd\",\n\t\"./lo.js\": \"dcfd\",\n\t\"./lt\": \"e3ca\",\n\t\"./lt.js\": \"e3ca\",\n\t\"./lv\": \"2efa\",\n\t\"./lv.js\": \"2efa\",\n\t\"./me\": \"d77d\",\n\t\"./me.js\": \"d77d\",\n\t\"./mi\": \"4bc5\",\n\t\"./mi.js\": \"4bc5\",\n\t\"./mk\": \"98fd\",\n\t\"./mk.js\": \"98fd\",\n\t\"./ml\": \"e939\",\n\t\"./ml.js\": \"e939\",\n\t\"./mn\": \"3762\",\n\t\"./mn.js\": \"3762\",\n\t\"./mr\": \"e64e\",\n\t\"./mr.js\": \"e64e\",\n\t\"./ms\": \"41eb\",\n\t\"./ms-my\": \"da04\",\n\t\"./ms-my.js\": \"da04\",\n\t\"./ms.js\": \"41eb\",\n\t\"./mt\": \"e6a8\",\n\t\"./mt.js\": \"e6a8\",\n\t\"./my\": \"0631\",\n\t\"./my.js\": \"0631\",\n\t\"./nb\": \"4629\",\n\t\"./nb.js\": \"4629\",\n\t\"./ne\": \"7c2b\",\n\t\"./ne.js\": \"7c2b\",\n\t\"./nl\": \"d1bb\",\n\t\"./nl-be\": \"647c\",\n\t\"./nl-be.js\": \"647c\",\n\t\"./nl.js\": \"d1bb\",\n\t\"./nn\": \"60db\",\n\t\"./nn.js\": \"60db\",\n\t\"./oc-lnc\": \"ced3\",\n\t\"./oc-lnc.js\": \"ced3\",\n\t\"./pa-in\": \"c9e7\",\n\t\"./pa-in.js\": \"c9e7\",\n\t\"./pl\": \"6ea5\",\n\t\"./pl.js\": \"6ea5\",\n\t\"./pt\": \"8a94\",\n\t\"./pt-br\": \"9eba\",\n\t\"./pt-br.js\": \"9eba\",\n\t\"./pt.js\": \"8a94\",\n\t\"./ro\": \"d7fe\",\n\t\"./ro.js\": \"d7fe\",\n\t\"./ru\": \"0914\",\n\t\"./ru.js\": \"0914\",\n\t\"./sd\": \"ef5c\",\n\t\"./sd.js\": \"ef5c\",\n\t\"./se\": \"65ed\",\n\t\"./se.js\": \"65ed\",\n\t\"./si\": \"d293\",\n\t\"./si.js\": \"d293\",\n\t\"./sk\": \"2fc3\",\n\t\"./sk.js\": \"2fc3\",\n\t\"./sl\": \"d312\",\n\t\"./sl.js\": \"d312\",\n\t\"./sq\": \"eb09\",\n\t\"./sq.js\": \"eb09\",\n\t\"./sr\": \"8796\",\n\t\"./sr-cyrl\": \"39f8\",\n\t\"./sr-cyrl.js\": \"39f8\",\n\t\"./sr.js\": \"8796\",\n\t\"./ss\": \"5e19\",\n\t\"./ss.js\": \"5e19\",\n\t\"./sv\": \"86bb\",\n\t\"./sv.js\": \"86bb\",\n\t\"./sw\": \"d900\",\n\t\"./sw.js\": \"d900\",\n\t\"./ta\": \"99a0\",\n\t\"./ta.js\": \"99a0\",\n\t\"./te\": \"e0b9\",\n\t\"./te.js\": \"e0b9\",\n\t\"./tet\": \"aac5\",\n\t\"./tet.js\": \"aac5\",\n\t\"./tg\": \"74fc\",\n\t\"./tg.js\": \"74fc\",\n\t\"./th\": \"7c5b\",\n\t\"./th.js\": \"7c5b\",\n\t\"./tk\": \"b260\",\n\t\"./tk.js\": \"b260\",\n\t\"./tl-ph\": \"b433\",\n\t\"./tl-ph.js\": \"b433\",\n\t\"./tlh\": \"c650\",\n\t\"./tlh.js\": \"c650\",\n\t\"./tr\": \"1d21\",\n\t\"./tr.js\": \"1d21\",\n\t\"./tzl\": \"8196\",\n\t\"./tzl.js\": \"8196\",\n\t\"./tzm\": \"c55e\",\n\t\"./tzm-latn\": \"49a3\",\n\t\"./tzm-latn.js\": \"49a3\",\n\t\"./tzm.js\": \"c55e\",\n\t\"./ug-cn\": \"7d84\",\n\t\"./ug-cn.js\": \"7d84\",\n\t\"./uk\": \"478c\",\n\t\"./uk.js\": \"478c\",\n\t\"./ur\": \"7f62\",\n\t\"./ur.js\": \"7f62\",\n\t\"./uz\": \"ab78\",\n\t\"./uz-latn\": \"caa4\",\n\t\"./uz-latn.js\": \"caa4\",\n\t\"./uz.js\": \"ab78\",\n\t\"./vi\": \"d3a2\",\n\t\"./vi.js\": \"d3a2\",\n\t\"./x-pseudo\": \"23d3\",\n\t\"./x-pseudo.js\": \"23d3\",\n\t\"./yo\": \"e35e\",\n\t\"./yo.js\": \"e35e\",\n\t\"./zh-cn\": \"7139\",\n\t\"./zh-cn.js\": \"7139\",\n\t\"./zh-hk\": \"f144\",\n\t\"./zh-hk.js\": \"f144\",\n\t\"./zh-mo\": \"fea1\",\n\t\"./zh-mo.js\": \"fea1\",\n\t\"./zh-tw\": \"ac28\",\n\t\"./zh-tw.js\": \"ac28\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"8632\";","import moment from \"moment\";\nimport i18n from '@/i18n';\nexport function display_date(value, strFormat) {\n  // Giả định value là GMT, chuyển sang GMT+7 khi hiển thị\n  return value ? moment.utc(value).utcOffset(7 * 60).format(strFormat ? strFormat : 'DD-MM-YYYY HH:mm:ss') : '';\n}\n\nimport config from '../configs'\n\nexport function vip_level(value){\n  const objRet = config.VIP_LEVEL.find(obj => obj.value === value);\n  return objRet ? objRet.name : '';\n}\n\nexport function vip_level_color(value){\n  const objRet = config.VIP_LEVEL.find(obj => obj.value === value);\n  return objRet ? objRet.color : '';\n}\n\nexport function capitalize(value){\n  return value.toLowerCase().replace(/^.|\\s\\S/g, function(a) { return a.toUpperCase(); });\n};\n\nexport function display_value(value, enums, key_field = 'value', value_field = 'name') {\n  const item = enums.find(obj => obj[key_field] === value);\n  return item ? item.i18n ? i18n.t(item.i18n) : item[value_field] : '';\n}\n\nexport function display_color(value, enums) {\n  const item = enums.find(obj => obj.value === value);\n  return item ? item.color : '';\n}\n\nexport function display_text_color(value, enums) {\n  const item = enums.find(obj => obj.value === value);\n  return item ? item.textColor : '';\n}","export * from \"-!../../../../../nguonhangchina/admin/node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../../nguonhangchina/admin/node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../nguonhangchina/admin/node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../../nguonhangchina/admin/node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../../../nguonhangchina/admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../nguonhangchina/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=77336bd8&prod&lang=stylus&scoped=true&\"","import config from '@/configs'\nimport moment from \"moment\"\nimport { currency } from \"@/commons/currency\";\nimport { sendErrorNotice, refreshResource } from '@/commons/utils';\n\nexport function request_header(token) {\n  return {\n    \"Authorization\": `Bearer ${token}`,\n    \"Content-Type\": \"application/json\",\n    \"accept\": \"application/json\",\n  };\n}\n\nexport function request_payload(param) {\n  let query = '';\n  let q_params = [];\n  if(param && (param.pagination || param.qObject || param.filter || param.quickFilter)) {\n    const page = param.pagination && param.pagination.page ? param.pagination.page : 1\n    const rowsPerPage = param.pagination && param.pagination.itemsPerPage ? param.pagination.itemsPerPage : 1000000\n    const sortBy = param.pagination ? param.pagination.sortBy[0] : 'ID'\n    const descending = param.pagination ? param.pagination.sortDesc[0] : 1\n    const qObject = param.qObject ? Buffer.from(JSON.stringify({ qObject: param.qObject })).toString(\"base64\") : '';\n    const filter = param.filter && param.filter.length > 0 ? Buffer.from(JSON.stringify({ filter: param.filter })).toString(\"base64\") : '';\n    const quickFilter = param.quickFilter && param.quickFilter.length > 0 ? Buffer.from(JSON.stringify({ filter: param.quickFilter })).toString(\"base64\") : '';\n    q_params.push(`filter=${encodeURIComponent(filter)}&qObject=${encodeURIComponent(qObject)}&page=${page}&rowsPerPage=${rowsPerPage}&sortBy=${sortBy}&descending=${descending}&q=${encodeURIComponent(quickFilter)}`)\n  }\n\n  if(param) {\n    var fields = []\n    Object.keys(param).forEach((key) => {\n      if(!['pagination', 'qObject', 'filter', 'quickFilter', 'fields'].includes(key)) {\n        fields.push(`${key}=${param[key] == null ? '' : param[key]}`)\n      }\n      else if(key == 'fields') {\n        fields.push(`${key}=${param[key] == null ? '' : param[key].join(',')}`)\n      }\n    });\n    q_params.push(`${fields.join('&')}`);\n  }\n  query = `?${q_params.join('&')}`;\n  return query;\n}\n\nexport function upload_file(endpoint, cb, $http, param, token, func) {\n  const header = {\n    headers: request_header(token),\n    responseType: 'blob'\n  };\n  header.headers['Content-Type'] = 'multipart/form-data';\n  func = func ? func : 'import'\n\n  $http.post(`${config.API}/api/${endpoint}/${func}/`, param, header).then(function (res) {\n    setTimeout(() => cb(res), 100);\n  });\n}\n\nexport function request_list(endpoint, cb, $http, param, token) {\n  const req = {\n    headers: request_header(token)\n  };\n  \n  const query = request_payload(param);\n\n  $http.get(`${config.API}/api/${endpoint}/${query}`, req).then(function (res) {\n    setTimeout(() => cb(res.data), 100);\n  },\n  function (err) {\n    if(err.status == 401) {\n      window.getApp.$emit(\"APP_AUTH_FAILED\");\n    }\n  });\n}\n\nexport function request_detail(endpoint, cb, $http, id, token, param) {\n  const header = {\n    headers: request_header(token)\n  };\n  let query = '';\n  if(param) {\n    if(param.pagination) {\n      const page = param.pagination ? param.pagination.page : 1\n      const rowsPerPage = param.pagination ? param.pagination.itemsPerPage : 1000000\n      const sortBy = param.pagination ? param.pagination.sortBy[0] : 'ID'\n      const descending = param.pagination ? param.pagination.sortDesc[0] : 1\n      query = `?page=${page}&rowsPerPage=${rowsPerPage}&sortBy=${sortBy}&descending=${descending}`;\n      delete param.pagination;\n    }\n    var fields = []\n    Object.keys(param).forEach((key) => fields.push(`${key}=${param[key]}`));\n    query = query == '' ? `?${fields.join('&')}` : `${query}&${fields.join('&')}`;\n  }\n  $http.get(`${config.API}/api/${endpoint}/${id}${query}`, header).then(function (res) {\n    setTimeout(() => cb(res.data), 100);\n  },\n  function (err) {\n    if(err.status == 401) {\n      window.getApp.$emit(\"APP_AUTH_FAILED\");\n    }\n  });\n}\n\nexport function update_detail(endpoint, cb, $http, param, pId, token) {\n  const header = {\n    headers: request_header(token)\n  };\n  let req = _.cloneDeep(param);\n  Object.keys(req).forEach((key) => (req[key] == null) && delete req[key]);\n  Object.keys(req).forEach((key) => {if(typeof(req[key]) == 'boolean'){req[key] = Number(req[key])}});\n  let path = pId == 0 ? `${config.API}/api/${endpoint}/` : `${config.API}/api/${endpoint}/${pId}`;\n  $http.post(path, req, header).then(function (res) {\n    setTimeout(() => cb(res.data), 100);\n  },\n  function (err) {\n    if(err.status == 401) {\n      window.getApp.$emit(\"APP_AUTH_FAILED\");\n    }\n    else if(err.status == 406) {\n      sendErrorNotice(err.data.reason);\n    }\n  });\n}\n\nexport function remove_detail(endpoint, cb, $http, id, token) {\n  const header = {\n    headers: request_header(token)\n  };\n  $http.delete(`${config.API}/api/${endpoint}/${id}`, header).then(function (res) {\n    setTimeout(() => cb(res.data), 100);\n  },\n  function (err) {\n    if(err.status == 401) {\n      window.getApp.$emit(\"APP_AUTH_FAILED\");\n    }\n    else if(err.status == 406) {\n      sendErrorNotice(err.data.reason);\n      refreshResource();\n    }\n  });\n}\n\nexport function create_detail(endpoint, cb, $http, param, token) {\n  const header = {\n    headers: request_header(token)\n  };\n  let req = _.cloneDeep(param);\n  delete req['ID'];\n  Object.keys(req).forEach((key) => (req[key] == null) && delete req[key]);\n  Object.keys(req).forEach((key) => {if(typeof(req[key]) == 'boolean'){req[key] = Number(req[key])}});\n  $http.put(`${config.API}/api/${endpoint}/`, req, header).then(function (res) {\n    setTimeout(() => cb(res.data), 100);\n  },\n  function (err) {\n    if(err.status == 401) {\n      window.getApp.$emit(\"APP_AUTH_FAILED\");\n    }\n    else if(err.status == 406) {\n      sendErrorNotice(err.data.reason);\n    }\n  });\n}\n\nexport function export_list(endpoint, cb, $http, param, token, func, errorCb) {\n  const req = {\n    headers: request_header(token),\n    responseType: 'blob'\n  };\n  func = func ? func : 'export'\n  const query = request_payload(param)\n\n  $http.get(`${config.API}/api/${endpoint}/${func}/${query}`, req).then(function (res) {\n    setTimeout(() => cb(res), 100);\n  }).catch(function (error) {\n    console.error('Export error:', error);\n    if (errorCb) {\n      errorCb(error);\n    } else {\n      sendErrorNotice('Lỗi khi xuất file!');\n    }\n  });\n}\n\nexport function export_detail(endpoint, cb, $http, id, token, func, errorCb) {\n  const req = {\n    headers: request_header(token),\n    responseType: 'blob'\n  };\n  func = func ? func : 'export'\n\n  $http.get(`${config.API}/api/${endpoint}/${func}/${id}`, req).then(function (res) {\n    setTimeout(() => cb(res), 100);\n  }).catch(function (error) {\n    console.error('Export error:', error);\n    if (errorCb) {\n      errorCb(error);\n    } else {\n      sendErrorNotice('Lỗi khi xuất file!');\n    }\n  });\n}\n\nexport function comment_type(value) {\n  const cmtType = config.COMMENT_TYPE.find(obj => obj.id === value);\n  return cmtType ? cmtType.name : '';\n}\n\nexport function comment_type_color(value) {\n  const cmtType = config.COMMENT_TYPE.find(obj => obj.id === value);\n  return cmtType ? cmtType.color : '#e6c87f';\n}\n\nexport function comment_avatar(value) {\n  if (value !== null) {\n    return '/static/avatar/avatar.png';\n  }\n  return '/static/avatar/no_avatar.png';\n}\n\nexport function comment_color(value) {\n  if (value) {\n    return '#ff0000';\n  }\n  return '#0000ff';\n}\n\nexport function payment_type(value) {\n  switch (value) {\n    case 2:\n    case 3:\n      return \"Đặt cọc\";\n    case 12:\n      return \"Hoàn tiền\"\n    default:\n      return \"Thanh toán\";\n  }\n}\n\nexport function payment_type_color(value) {\n  switch (value) {\n    case 2:\n      return \"#e6c87f\";\n    case 3:\n      return \"#ffff00\";\n    case 12:\n      return \"#ff0000\"\n    default:\n      return \"#0000ff\";\n  }\n}\n\nexport function complain_type(value) {\n  switch (value) {\n    case 1:\n      return \"Chờ xử lý\";\n    case 2:\n      return \"Đang xử lý\";\n    case 3:\n      return \"Đã xử lý\"\n    default:\n      return \"Đã hủy\";\n  }\n}\n\nexport function complain_type_color(value) {\n  switch (value) {\n    case 1:\n      return \"#ff0000\";\n    case 2:\n      return \"#797960\";\n    case 3:\n      return \"#0000ff\"\n    default:\n      return \"#e6c87f\";\n  }\n}\n\nexport function trade_type(value) {\n  const cmtType = config.TRADE_TYPE.find(obj => obj.value === value);\n  return cmtType ? cmtType.name : '';\n}\n\nexport function print_transaction(weight, transactionCode, customerName, orderId) {\n  var mywindow = window.open(\"\", \"PRINT\");\n\n  mywindow.document.write(\"<html><head><title></title>\");\n  mywindow.document.write(\n    \"<style>.row {display: flex;}.flex {flex: 1 1 auto;}.flex.lg6 {flex-basis: 50%;flex-grow: 0;max-width: 50%;}\"\n  );\n  mywindow.document.write(\n    \".flex.lg12 {flex-basis: 100%;flex-grow: 0;max-width: 100%;}.title {font-size: 24px; font-weight: bold; text-align: center; margin: 5px 0 3px 0 !important;}\"\n  );\n  mywindow.document.write(\n    \".sub-title {font-size: 16px; font-weight: bold; margin: 0 0 8px 0 !important;}.l-text {text-align: left;}.r-text {text-align: right;}.note-text {font-size: 14px; font-weight: bold; font-style: italic; text-align: center;}\"\n  );\n  mywindow.document.write(\n    \"</style></head><body style='height:8cm; width:9cm; margin-left: 5px; margin-right:5px;'>\"\n  );\n  mywindow.document.write(\"<div class='layout wrap'>\");\n  mywindow.document.write(\n    `<div class='flex lg12'><p class='title'>${customerName}</p></div>`\n  );\n  mywindow.document.write(\n    `<div class='flex lg12'><hr class='v-divider theme--light'></div>`\n  );\n  mywindow.document.write(\n    `<div class='flex lg12'><p class='title'>${orderId}</p></div>`\n  );\n  mywindow.document.write(\n    `<div class='row'><div class='flex lg6'><p class='sub-title l-text'>Khối lượng</p></div><div class='flex lg6'><p class='sub-title r-text'>${weight} kg</p></div></div>`\n  );\n  mywindow.document.write(\n    `<div class='row'><div class='flex lg6'><p class='sub-title l-text'>Mã vận đơn</p></div><div class='flex lg6'><p class='sub-title r-text'>${transactionCode}</p></div></div>`\n  );\n  mywindow.document.write(\n    `<div class='row'><div class='flex lg6'><p class='sub-title l-text'>Ngày tạo</p></div><div class='flex lg6'><p class='sub-title r-text'>${moment(\n      new Date()\n    ).format(\"DD-MM-YYYY\")}</p></div></div>`\n  );\n  mywindow.document.write(\n    `<div class='flex lg12'><p class='note-text'>Lưu ý</p></div>`\n  );\n  mywindow.document.write(\n    `<div class='flex lg12'><p class='note-text'>Qúy khách khi bóc hàng vui lòng giữ lại mã vận đơn Trung Quốc để sử dụng trong trường hợp Khiếu nại với nhà cung cấp</p></div>`\n  );\n  mywindow.document.write(`<hr class='v-divider theme--light'>`);\n  mywindow.document.write(\n    `<div class='flex lg12'><p class='note-text'>https://thpglobal.vn</p></div>`\n  );\n  mywindow.document.write(\"</div>\");\n  mywindow.document.write(\"</body></html>\");\n\n  mywindow.document.close(); // necessary for IE >= 10\n  mywindow.focus(); // necessary for IE >= 10*/\n  mywindow.print();\n  mywindow.close();\n  return true;\n}\nexport function print_quote_label(item) {\n  const print_content = `<html>\n  <head>\n    <title></title>\n    <style>\n      .row { display: flex; } .flex { flex: 1 1 auto; } .flex.lg6 { flex-basis: 50%; flex-grow: 0; max-width: 50%; } .flex.lg8 { flex-basis: 66%; flex-grow: 0; max-width: 66%; } .flex.lg4 { flex-basis: 34%; flex-grow: 0; max-width: 34%; } \n      .flex.lg3 { flex-basis: 25%; flex-grow: 0; max-width: 25%; } .flex.lg12 { flex-basis: 100%; flex-grow: 0; max-width: 100%; } .title { font-size: 16px; font-weight: bold; text-align: center; } .sub-title { font-size: 20px; font-weight: bold; } \n      .l-text { text-align: left; } .r-text { text-align: right; } .m-text { text-align: center; } .note-text { font-size: 11px; font-weight: bold; font-style: italic; text-align: center; } .body-text { font-size: 13px; } \n      table { border-collapse: collapse; width: 100%; } td, th { border: 1px solid #4a4a4a; text-align: left; padding: 1px; } hr { border: 0.5px solid #dddddd; } \n      tr, td, th { page-break-inside: avoid !important; height: 20px; padding: 5px} @media print { @page { size: auto; margin: 20mm 8mm 8mm 20mm; } html { background-color: #FFFFFF; margin: 0px; } \n      body { margin: 0mm 0mm 0mm 0mm; } } .no-boder {border: 0px !important;} .quantity {width: 60px;} .width-volumn {width: 50px;}\n    </style>\n  </head>\n  \n  <body style='width:80mm;font-family: Roboto,sans-serif;'>\n    <div class='layout wrap'>\n      <table>\n        <tr>\n          <td class='no-boder body-text'>Product Name: ${item.ProductName}</td>\n        </tr>\t\n        <tr>\n          <td class='no-boder body-text'>Manufacturer: ${item.Manufacturer || ''}</td>\n        </tr>\n        <tr>\n          <td class='no-boder body-text'>Address: ${item.ManufacturerAddress || ''}</td>\n        </tr>\n        <tr>\n          <td class='no-boder body-text'>Code: ${item.LabelCode || ''}</td>\n        </tr>\n        <tr>\n          <td class='no-boder body-text'>Date: ${item.LabelDate || ''}</td>\n        </tr>\n        <tr>\n          <td class='no-boder body-text'>MADE IN CHINA</td>\n        </tr>\n        <tr>\n          <td class='no-boder sub-title m-text'>${item.Username} - ${item.NumberOfPack}</td>\n        </tr>\n      </table>\n      </div>\n  </body>\n</html>`;\n\n  var doc = document.getElementById('print_frame').contentWindow.document;\n  doc.open();\n  doc.write(print_content);\n  doc.close();\n  setTimeout(function(){ window.frames[\"print_frame\"].window.print(); }, 1000);\n}\nexport function print_quote(item, products = []) {\n  const print_content = `<html>\n  <head>\n    <title>Báo giá #${item.ID}</title>\n    <style>\n      body { \n        font-family: 'Times New Roman', serif; \n        margin: 0; \n        padding: 20px; \n        font-size: 14px; \n        line-height: 1.4;\n        color: #333;\n      }\n      .header {\n        text-align: center;\n        margin-bottom: 30px;\n        border-bottom: 2px solid #2196F3;\n        padding-bottom: 20px;\n      }\n      .company-name {\n        font-size: 24px;\n        font-weight: bold;\n        color: #2196F3;\n        margin-bottom: 5px;\n      }\n      .company-info {\n        font-size: 12px;\n        color: #666;\n        margin-bottom: 10px;\n      }\n      .quote-title {\n        font-size: 20px;\n        font-weight: bold;\n        color: #333;\n        margin-top: 15px;\n      }\n      .quote-number {\n        font-size: 16px;\n        color: #666;\n        margin-top: 5px;\n      }\n      \n      .customer-section {\n        margin-bottom: 25px;\n        background: #f8f9fa;\n        padding: 15px;\n        border-radius: 5px;\n      }\n      .section-title {\n        font-size: 16px;\n        font-weight: bold;\n        color: #2196F3;\n        margin-bottom: 10px;\n        border-bottom: 1px solid #ddd;\n        padding-bottom: 5px;\n      }\n      .info-row {\n        display: flex;\n        margin-bottom: 8px;\n      }\n      .info-label {\n        font-weight: bold;\n        width: 180px;\n        color: #555;\n      }\n      .info-value {\n        flex: 1;\n        color: #333;\n      }\n      \n      .quote-details {\n        margin-bottom: 25px;\n      }\n      .details-table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 20px;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n      }\n      .details-table th {\n        background: #2196F3;\n        color: white;\n        padding: 12px 8px;\n        text-align: left;\n        font-weight: bold;\n        border: 1px solid #1976D2;\n      }\n      .details-table td {\n        padding: 10px 8px;\n        border: 1px solid #ddd;\n        background: white;\n        vertical-align: middle;\n      }\n      .details-table tr:nth-child(even) td {\n        background: #f8f9fa;\n      }\n      .details-table img {\n        display: block;\n        margin: 0 auto;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n      }\n      .image-cell {\n        text-align: center;\n        vertical-align: middle;\n        padding: 8px;\n        min-height: 70px;\n      }\n      .number-cell {\n        text-align: right;\n        font-family: 'Courier New', monospace;\n        font-weight: bold;\n      }\n      .highlight-row {\n        background: #e3f2fd !important;\n        font-weight: bold;\n      }\n      \n      .summary-section {\n        margin-top: 25px;\n        border: 2px solid #2196F3;\n        border-radius: 5px;\n        overflow: hidden;\n      }\n      .summary-header {\n        background: #2196F3;\n        color: white;\n        padding: 12px;\n        font-weight: bold;\n        font-size: 16px;\n      }\n      .summary-content {\n        padding: 15px;\n        background: white;\n      }\n      .summary-row {\n        display: flex;\n        justify-content: space-between;\n        margin-bottom: 8px;\n        padding: 5px 0;\n      }\n      .summary-label {\n        font-weight: bold;\n        color: #555;\n      }\n      .summary-value {\n        font-family: 'Courier New', monospace;\n        font-weight: bold;\n        color: #333;\n      }\n      .total-row {\n        border-top: 2px solid #2196F3;\n        margin-top: 10px;\n        padding-top: 10px;\n        font-size: 16px;\n      }\n      .total-row .summary-value {\n        color: #2196F3;\n        font-size: 18px;\n      }\n      \n      .notes-section {\n        margin-top: 25px;\n        background: #fff3cd;\n        border: 1px solid #ffeaa7;\n        border-radius: 5px;\n        padding: 15px;\n      }\n      .notes-title {\n        font-weight: bold;\n        color: #856404;\n        margin-bottom: 10px;\n      }\n      .notes-content {\n        color: #856404;\n        font-style: italic;\n      }\n      \n      .footer {\n        margin-top: 40px;\n        text-align: center;\n        border-top: 1px solid #ddd;\n        padding-top: 20px;\n        color: #666;\n        font-size: 12px;\n      }\n      .signature-section {\n        margin-top: 30px;\n        display: flex;\n        justify-content: space-between;\n      }\n      .signature-box {\n        width: 200px;\n        text-align: center;\n      }\n      .signature-line {\n        border-bottom: 1px solid #333;\n        height: 60px;\n        margin-bottom: 5px;\n      }\n      \n      @media print {\n        @page { \n          size: A4; \n          margin: 15mm; \n        }\n        body { \n          print-color-adjust: exact;\n          -webkit-print-color-adjust: exact;\n        }\n        .no-print { \n          display: none; \n        }\n      }\n      \n      .currency {\n        font-family: 'Courier New', monospace;\n      }\n      .status-badge {\n        display: inline-block;\n        padding: 4px 8px;\n        border-radius: 3px;\n        font-size: 12px;\n        font-weight: bold;\n      }\n      .status-quoted {\n        background: #d4edda;\n        color: #155724;\n      }\n      .status-pending {\n        background: #fff3cd;\n        color: #856404;\n      }\n    </style>\n  </head>\n  \n  <body>\n    <!-- Header -->\n    <div class=\"header\">\n      <div class=\"company-name\">THP GLOBAL</div>\n      <div class=\"company-info\">\n        Dịch vụ vận chuyển hàng hóa Trung Quốc - Việt Nam<br>\n        Điện thoại: 0945 423 888 | Email: thpglobal@gmail.com<br>\n        Website: https://thpglobal.vn\n      </div>\n      <div class=\"quote-title\">BÁO GIÁ DỊCH VỤ VẬN CHUYỂN</div>\n      <div class=\"info-row\" style=\"justify-content: space-between; display: flex; margin-top: 15px;\">\n        <div>\n          <span style=\"font-weight: bold; color: #555;\">Mã khai báo: </span>\n          <span>#${item.ID || 'N/A'}</span>\n        </div>\n        <div>\n          <span style=\"font-weight: bold; color: #555;\">Trạng thái: </span>\n          <span class=\"status-badge ${item.IsQuoted ? 'status-quoted' : 'status-pending'}\">\n            ${item.IsQuoted ? 'Đã khai báo' : 'Chưa khai báo'}\n          </span>\n        </div>\n      </div>\n    </div>\n\n    <!-- Customer Information -->\n    <div class=\"customer-section\">\n      <div class=\"section-title\">THÔNG TIN KHÁCH HÀNG</div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Mã khách hàng:</div>\n        <div class=\"info-value\">${item.UID || 'N/A'}</div>\n      </div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Tên khách hàng:</div>\n        <div class=\"info-value\">${item.Username || item.CustomerName || 'N/A'}</div>\n      </div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Ngày tạo khai báo:</div>\n        <div class=\"info-value\">${moment().format('DD/MM/YYYY HH:mm')}</div>\n      </div>\n    </div>\n\n    <!-- Product Information -->\n    <div class=\"quote-details\">\n      <div class=\"section-title\">THÔNG TIN HÀNG HÓA</div>\n      <table class=\"details-table\">\n        <tr>\n          <th style=\"width: 25%\">Tên loại hàng</th>\n          <th style=\"width: 15%\">Mã HS</th>\n          <th style=\"width: 15%\">Số sản phẩm</th>\n          <th style=\"width: 15%\">Số kiện</th>\n          <th style=\"width: 15%\">Cân nặng (kg)</th>\n          <th style=\"width: 15%\">Thể tích (m³)</th>\n          <th style=\"width: 15%\">Hình ảnh</th>\n        </tr>\n        ${item.Packages && item.Packages.length > 0 ? \n          item.Packages.map((pkg, index) => `\n        <tr>\n          <td>${pkg.ProductInfo || 'N/A'}</td>\n          ${index === 0 ? `\n          <td rowspan=\"${item.Packages.length}\">${item.HsCode || 'N/A'}</td>\n          <td rowspan=\"${item.Packages.length}\" class=\"number-cell\">${currency(item.ProductNumber || 0, '', 0)}</td>\n          <td rowspan=\"${item.Packages.length}\" class=\"number-cell\">${currency(item.NumberOfPack || 0, '', 0)}</td>\n          <td rowspan=\"${item.Packages.length}\" class=\"number-cell\">${currency(item.Weight || 0, '', 1)}</td>\n          <td rowspan=\"${item.Packages.length}\" class=\"number-cell\">${currency(item.Volume || 0, '', 3)}</td>\n          <td rowspan=\"${item.Packages.length}\" style=\"text-align: center; padding: 8px;\">\n            ${item.ImageUrl ? \n              `<img src=\"${item.ImageUrl}\" style=\"max-width: 80px; max-height: 60px; object-fit: contain; border-radius: 4px; border: 1px solid #ddd;\" onerror=\"this.style.display='none'; this.nextElementSibling.style.display='inline';\" />\n               <span style=\"display: none; color: #666; font-style: italic;\">Lỗi tải ảnh</span>` \n              : '<span style=\"color: #999; font-style: italic;\">Không có ảnh</span>'\n            }\n          </td>\n          ` : ''}\n        </tr>\n          `).join('')\n        : `\n        <tr>\n          <td>N/A</td>\n          <td>${item.HsCode || 'N/A'}</td>\n          <td class=\"number-cell\">${currency(item.ProductNumber || 0, '', 0)}</td>\n          <td class=\"number-cell\">${currency(item.NumberOfPack || 0, '', 0)}</td>\n          <td class=\"number-cell\">${currency(item.Weight || 0, '', 1)}</td>\n          <td class=\"number-cell\">${currency(item.Volume || 0, '', 3)}</td>\n          <td style=\"text-align: center; padding: 8px;\">\n            ${item.ImageUrl ? \n              `<img src=\"${item.ImageUrl}\" style=\"max-width: 80px; max-height: 60px; object-fit: contain; border-radius: 4px; border: 1px solid #ddd;\" onerror=\"this.style.display='none'; this.nextElementSibling.style.display='inline';\" />\n               <span style=\"display: none; color: #666; font-style: italic;\">Lỗi tải ảnh</span>` \n              : '<span style=\"color: #999; font-style: italic;\">Không có ảnh</span>'\n            }\n          </td>\n        </tr>\n        `}\n      </table>\n    </div>\n\n    <!-- Detailed Products List -->\n    ${products && products.length > 0 ? `\n    <div class=\"quote-details\">\n      <div class=\"section-title\">CHI TIẾT CÁC SẢN PHẨM TRONG BÁO GIÁ</div>\n      <table class=\"details-table\">\n        <tr>\n          <th style=\"width: 8%\">STT</th>\n          <th style=\"width: 20%\">Tên sản phẩm</th>\n          <th style=\"width: 12%\">Mã HS</th>\n          <th style=\"width: 10%\">Số lượng</th>\n          <th style=\"width: 10%\">Cân nặng (kg)</th>\n          <th style=\"width: 10%\">Thể tích (m³)</th>\n          <th style=\"width: 12%\">Đơn giá (CNY)</th>\n          <th style=\"width: 18%\">Hình ảnh</th>\n        </tr>\n        ${products.map((product, index) => `\n        <tr>\n          <td class=\"number-cell\">${index + 1}</td>\n          <td>${product.ProductInfo || 'N/A'}</td>\n          <td>${product.HsCode || 'N/A'}</td>\n          <td class=\"number-cell\">${currency(product.NumberOfPack || 0, '', 0)}</td>\n          <td class=\"number-cell\">${currency(product.Weight || 0, '', 1)}</td>\n          <td class=\"number-cell\">${currency(product.Volume || 0, '', 3)}</td>\n          <td class=\"number-cell currency\">${currency(product.UnitPrice || 0, '', 2)} CNY</td>\n          <td class=\"image-cell\">\n            ${product.ImageUrl ? \n              `<img src=\"${product.ImageUrl}\" alt=\"${product.ProductInfo}\" \n                   style=\"max-width: 80px; max-height: 60px; object-fit: contain; border-radius: 4px; border: 1px solid #ddd;\" \n                   onerror=\"this.style.display='none'; this.nextElementSibling.style.display='inline';\" />\n               <span style=\"display: none; color: #666; font-style: italic;\">Lỗi tải ảnh</span>` \n              : '<span style=\"color: #999; font-style: italic;\">Không có ảnh</span>'\n            }\n          </td>\n        </tr>\n        `).join('')}\n      </table>\n    </div>\n    ` : ''}\n\n    <!-- Pricing Details -->\n    <div class=\"quote-details\">\n      <div class=\"section-title\">CHI TIẾT GIÁ DỊCH VỤ</div>\n      <table class=\"details-table\">\n        <tr>\n          <th style=\"width: 50%\">Nội dung</th>\n          <th style=\"width: 20%\">Đơn giá</th>\n          <th style=\"width: 15%\">Tỷ lệ (%)</th>\n          <th style=\"width: 15%\">Thành tiền</th>\n        </tr>\n        <tr>\n          <td>Giá cần khai báo</td>\n          <td class=\"number-cell currency\">${currency(item.CustomsPriceVND || 0, '', 0)} VND</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency(item.CustomsAmountVND || 0, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Thuế nhập khẩu</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell\">${currency(item.ImportTax || 0, '', 2)}%</td>\n          <td class=\"number-cell currency\">${currency((item.CustomsAmountVND || 0) * (item.ImportTax || 0) / 100, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Thuế VAT</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell\">${currency(item.VatTax || 0, '', 2)}%</td>\n          <td class=\"number-cell currency\">${currency((item.CustomsAmountVND || 0) * (item.VatTax || 0) / 100, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Phí dịch vụ</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell\">${currency(item.ServiceFee || 0, '', 2)}%</td>\n          <td class=\"number-cell currency\">${currency((item.CustomsAmountVND || 0) * (item.ServiceFee || 0) / 100, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Chi phí ngoài</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency(item.OtherFeeAmount || 0, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Tổng phí dịch vụ</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency(item.TotalFeeAmount || 0, '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Giá vận chuyển theo cân (kg)</td>\n          <td class=\"number-cell currency\">${currency(item.WeightPrice || 0, '', 0)} VND</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency((item.Weight || 0) * (item.WeightPrice || 0), '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Giá vận chuyển theo thể tích (m³)</td>\n          <td class=\"number-cell currency\">${currency(item.VolumePrice || 0, '', 0)} VND</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency((item.Volume || 0) * (item.VolumePrice || 0), '', 0)} VND</td>\n        </tr>\n        <tr>\n          <td>Phí vận chuyển dự kiến TQ-VN</td>\n          <td class=\"number-cell currency\">${currency(item.EstimateTransitPrice || 0, '', 0)} VND</td>\n          <td class=\"number-cell\">-</td>\n          <td class=\"number-cell currency\">${currency(item.EstimateTransitAmount || 0, '', 0)} VND</td>\n        </tr>\n      </table>\n    </div>\n\n    <!-- Summary -->\n    <div class=\"summary-section\">\n      <div class=\"summary-header\">TỔNG KẾT CHI PHÍ</div>\n      <div class=\"summary-content\">\n        <div class=\"summary-row\">\n          <div class=\"summary-label\">Tổng tiền khai báo hải quan:</div>\n          <div class=\"summary-value currency\">${currency(item.CustomsAmountVND || 0, '', 0)} VND</div>\n        </div>\n        <div class=\"summary-row\">\n          <div class=\"summary-label\">Tổng các loại thuế và phí:</div>\n          <div class=\"summary-value currency\">${currency(item.TotalFeeAmount || 0, '', 0)} VND</div>\n        </div>\n        <div class=\"summary-row\">\n          <div class=\"summary-label\">Tổng phí vận chuyển dự kiến:</div>\n          <div class=\"summary-value currency\">${currency(item.EstimateTransitAmount || 0, '', 0)} VND</div>\n        </div>\n        <div class=\"summary-row total-row\">\n          <div class=\"summary-label\">TỔNG CỘNG:</div>\n          <div class=\"summary-value currency\">${currency(item.TotalAmount || 0, '', 0)} VND</div>\n        </div>\n        <div class=\"summary-row\">\n          <div class=\"summary-label\">Đã thanh toán:</div>\n          <div class=\"summary-value currency\">${currency(item.PaidAmount || 0, '', 0)} VND</div>\n        </div>\n        <div class=\"summary-row\">\n          <div class=\"summary-label\">Còn lại:</div>\n          <div class=\"summary-value currency\">${currency((item.TotalAmount || 0) - (item.PaidAmount || 0), '', 0)} VND</div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Notes -->\n    <div class=\"notes-section\">\n      <div class=\"notes-title\">GHI CHÚ QUAN TRỌNG:</div>\n      <div class=\"notes-content\">\n        • Báo giá này có hiệu lực trong vòng 7 ngày kể từ ngày lập.<br>\n        • Giá trên chưa bao gồm các phí phát sinh khác (nếu có).<br>\n        • Tỷ giá có thể thay đổi theo thời gian thực.<br>\n        • Thuế và phí có thể thay đổi theo quy định của cơ quan hải quan.<br>\n        • Quý khách vui lòng xác nhận khai báo trước khi tiến hành giao dịch.<br>\n        • Mọi thắc mắc xin liên hệ hotline: 0945 423 888\n      </div>\n    </div>\n\n    <!-- Signatures -->\n    <div class=\"signature-section\">\n      <div class=\"signature-box\">\n        <div class=\"signature-line\"></div>\n        <div><strong>Người lập khai báo</strong></div>\n        <div><em>(Ký và ghi rõ họ tên)</em></div>\n      </div>\n      <div class=\"signature-box\">\n        <div class=\"signature-line\"></div>\n        <div><strong>Khách hàng xác nhận</strong></div>\n        <div><em>(Ký và ghi rõ họ tên)</em></div>\n      </div>\n    </div>\n\n    <!-- Footer -->\n    <div class=\"footer\">\n      <div>Cảm ơn Quý khách đã tin tưởng sử dụng dịch vụ của THP GLOBAL</div>\n      <div>Báo giá được tạo tự động vào lúc ${moment().format('DD/MM/YYYY HH:mm:ss')}</div>\n    </div>\n  </body>\n</html>`;\n\n  // Create and open print window\n  var printWindow = window.open('', 'PRINT', 'height=800,width=1200');\n  \n  printWindow.document.write(print_content);\n  // printWindow.document.close();\n  \n  // Wait for content to load then print\n  // setTimeout(function() {\n  //   printWindow.focus();\n  //   printWindow.print();\n  //   printWindow.close();\n  // }, 1000);\n  \n  return true;\n}\n\nexport function print_export_receipt(item, packages) {\n  // Tính tổng\n  let totalPacks = 0;\n  let totalWeight = 0;\n  let totalVolume = 0;\n  let totalAmount = 0;\n  let totalFeeWeight = 0;\n  let totalDiscount = 0;\n  let totalLineAmount = 0;\n  let totalTax = 0;\n  let totalOtherFees = 0;\n\n  let html_packages = ''\n  for (let i = 0; i < packages.length; i++) {\n    const p = packages[i];\n    const taxAmount = (p.ImportTaxAmount || 0) + (p.VatTaxAmount || 0) + (p.ServiceFeeAmount || 0);\n    const otherFees = (p.TransactionDeposit || 0) + (p.PedicabDeposit || 0) + (p.LoadDeposit || 0) + (p.FeeCare || 0);\n    \n    totalPacks += p.NumberOfPack || 0;\n    totalWeight += p.Weight || 0;\n    totalVolume += p.Volume || 0;\n    totalAmount += p.Amount || 0;\n    totalFeeWeight += p.TotalFeeWeight || 0;\n    totalDiscount += p.DiscountAmount || 0;\n    totalLineAmount += p.LineAmount || 0;\n    totalTax += taxAmount;\n    totalOtherFees += otherFees;\n\n    html_packages = html_packages + `<tr>\n                        <td class='body-text text-center'>${i+1}</td>\n                        <td class='body-text'>${p.ProductNameCN || ''}</td>\n                        <td class='body-text text-right'>${currency(p.NumberOfPack || 0,'',0)}</td>\n                        <td class='body-text text-right'>${currency(p.Weight || 0,'',1)}</td>\n                        <td class='body-text text-right'>${currency(p.Volume || 0,'',3)}</td>\n                        <td class='body-text text-right'>${currency(p.WeightPrice || 0,'',0)}</td>\n                        <td class='body-text text-right'>${currency(p.VolumePrice || 0,'',0)}</td>\n                        <td class='body-text text-right'>${currency(p.TotalFeeWeight || 0,'',0)}</td>\n                        <td class='body-text text-right small-text'>\n                          <div>NK: ${currency(p.ImportTaxAmount || 0,'',0)}</div>\n                          <div>VAT: ${currency(p.VatTaxAmount || 0,'',0)}</div>\n                          <div>DV: ${currency(p.ServiceFeeAmount || 0,'',0)}</div>\n                        </td>\n                        <td class='body-text text-right small-text'>\n                          <div>Ship: ${currency(p.TransactionDeposit || 0,'¥',0)}</div>\n                          <div>Kéo: ${currency(p.PedicabDeposit || 0,'¥',0)}</div>\n                          <div>Nâng: ${currency(p.LoadDeposit || 0,'¥',0)}</div>\n                          <div>BH: ${currency(p.FeeCare || 0,'¥',0)}</div>\n                        </td>\n                        <td class='body-text text-right'>${currency((p.Amount || 0),'',0)}</td>\n                        <td class='body-text text-right'>${currency((p.DiscountAmount || 0),'',0)}</td>\n                        <td class='body-text text-right'>${currency((p.LineAmount || 0),'',0)}</td>\n                        <td class='body-text small-text'>${p.Note || ''}</td>\n                      </tr>`\n  }\n\n  const print_content = `<html>\n  <head>\n    <title>Phiếu xuất kho #${item.ID || ''}</title>\n    <style>\n      body { \n        font-family: 'Times New Roman', serif; \n        margin: 0; \n        padding: 15px; \n        font-size: 13px; \n        line-height: 1.4;\n        color: #333;\n      }\n      \n      .header {\n        text-align: center;\n        margin-bottom: 25px;\n        border-bottom: 2px solid #2196F3;\n        padding-bottom: 15px;\n      }\n      .company-name {\n        font-size: 20px;\n        font-weight: bold;\n        color: #2196F3;\n        margin-bottom: 5px;\n      }\n      .company-info {\n        font-size: 11px;\n        color: #666;\n        margin-bottom: 10px;\n      }\n      .document-title {\n        font-size: 18px;\n        font-weight: bold;\n        color: #333;\n        margin-top: 10px;\n      }\n      .document-info {\n        font-size: 12px;\n        color: #666;\n        margin-top: 5px;\n      }\n      \n      .receipt-info {\n        margin-bottom: 20px;\n        background: #f8f9fa;\n        padding: 12px;\n        border-radius: 5px;\n        border-left: 4px solid #2196F3;\n      }\n      .info-row {\n        display: flex;\n        margin-bottom: 6px;\n      }\n      .info-label {\n        font-weight: bold;\n        width: 140px;\n        color: #555;\n      }\n      .info-value {\n        flex: 1;\n        color: #333;\n      }\n      \n      .products-table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 20px;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        font-size: 11px;\n      }\n      .products-table th {\n        background: #2196F3;\n        color: white;\n        padding: 8px 4px;\n        text-align: center;\n        font-weight: bold;\n        border: 1px solid #1976D2;\n        font-size: 10px;\n      }\n      .products-table td {\n        padding: 6px 4px;\n        border: 1px solid #ddd;\n        vertical-align: top;\n        background: white;\n      }\n      .products-table tr:nth-child(even) td {\n        background: #f8f9fa;\n      }\n      \n      .text-center { text-align: center; }\n      .text-right { text-align: right; }\n      .text-left { text-align: left; }\n      \n      .body-text { font-size: 11px; }\n      .small-text { font-size: 9px; line-height: 1.3; }\n      .small-text div { margin-bottom: 1px; padding: 1px 0; }\n      .sub-title { font-size: 12px; font-weight: bold; }\n      \n      .summary-row {\n        background: #e3f2fd !important;\n        font-weight: bold;\n      }\n      .summary-row td {\n        background: #e3f2fd !important;\n        color: #1976D2;\n        font-weight: bold;\n      }\n      \n      .signature-section {\n        margin-top: 30px;\n        display: flex;\n        justify-content: space-between;\n        border-top: 1px solid #ddd;\n        padding-top: 20px;\n      }\n      .signature-box {\n        width: 30%;\n        text-align: center;\n        padding: 10px;\n      }\n      .signature-title {\n        font-weight: bold;\n        margin-bottom: 40px;\n        font-size: 12px;\n      }\n      .signature-note {\n        font-size: 10px;\n        font-style: italic;\n        color: #666;\n      }\n      \n      .footer {\n        margin-top: 20px;\n        text-align: center;\n        border-top: 1px solid #ddd;\n        padding-top: 10px;\n        color: #666;\n        font-size: 10px;\n      }\n      \n      .no-border { border: 0px !important; }\n      \n      .col-stt { width: 4%; }\n      .col-code { width: 9%; }\n      .col-name { width: 18%; }\n      .col-number { width: 7%; }\n      .col-weight { width: 7%; }\n      .col-volume { width: 7%; }\n      .col-price { width: 7%; }\n      .col-amount { width: 9%; }\n      .col-tax { width: 11%; }\n      .col-fees { width: 15%; }\n      .col-total { width: 9%; }\n      .col-note { width: 12%; }\n      \n      @media print {\n        @page { \n          size: A4 landscape; \n          margin: 10mm; \n        }\n        body { \n          print-color-adjust: exact;\n          -webkit-print-color-adjust: exact;\n        }\n        .no-print { \n          display: none; \n        }\n      }\n    </style>\n  </head>\n  \n  <body>\n    <!-- Header -->\n    <div class=\"header\">\n      <div class=\"company-name\">THP GLOBAL</div>\n      <div class=\"company-info\">\n        Dịch vụ vận chuyển hàng hóa Trung Quốc - Việt Nam<br>\n        Điện thoại: 0945 423 888 | Email: thpglobal@gmail.com | Website: https://thpglobal.vn\n      </div>\n      <div class=\"document-title\">PHIẾU XUẤT KHO</div>\n      <div class=\"document-info\">\n        Mã phiếu: #${item.ID || 'N/A'} | Ngày ${moment().format('DD/MM/YYYY')} | Giờ: ${moment().format('HH:mm')}\n      </div>\n    </div>\n\n    <!-- Receipt Information -->\n    <div class=\"receipt-info\">\n      <div class=\"info-row\">\n        <div class=\"info-label\">Người nhận hàng:</div>\n        <div class=\"info-value\">${item.ReceiveName || 'N/A'}</div>\n      </div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Số điện thoại:</div>\n        <div class=\"info-value\">${item.ReceivePhone || 'N/A'}</div>\n      </div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Địa chỉ nhận hàng:</div>\n        <div class=\"info-value\">${item.ReceiveAddress || 'N/A'}</div>\n      </div>\n      <div class=\"info-row\">\n        <div class=\"info-label\">Mã bill:</div>\n        <div class=\"info-value\">${item.Code || 'N/A'}</div>\n      </div>\n    </div>\n\n    <!-- Products Table -->\n    <table class=\"products-table\">\n      <thead>\n        <tr>\n          <th class=\"col-stt\">STT</th>\n          <th class=\"col-name\">Tên hàng</th>\n          <th class=\"col-number\">Số kiện</th>\n          <th class=\"col-weight\">Cân nặng (kg)</th>\n          <th class=\"col-volume\">Thể tích (m³)</th>\n          <th class=\"col-price\">Giá cân</th>\n          <th class=\"col-price\">Giá khối</th>\n          <th class=\"col-amount\">Phí vận chuyển</th>\n          <th class=\"col-tax\">Thuế & Phí</th>\n          <th class=\"col-fees\">Chi phí khác</th>\n          <th class=\"col-total\">Tổng tiền</th>\n          <th class=\"col-total\">Chiết khấu</th>\n          <th class=\"col-total\">Thành tiền</th>\n          <th class=\"col-note\">Ghi chú</th>\n        </tr>\n      </thead>\n      <tbody>\n        ${html_packages}\n        <tr class=\"summary-row\">\n          <td class=\"text-center sub-title\" colspan=\"2\">TỔNG CỘNG</td>\n          <td class=\"text-right sub-title\">${currency(totalPacks,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalWeight,'',1)}</td>\n          <td class=\"text-right sub-title\">${currency(totalVolume,'',3)}</td>\n          <td class=\"text-center sub-title\">-</td>\n          <td class=\"text-center sub-title\">-</td>\n          <td class=\"text-right sub-title\">${currency(totalFeeWeight,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalTax,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalOtherFees,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalAmount,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalDiscount,'',0)}</td>\n          <td class=\"text-right sub-title\">${currency(totalLineAmount,'',0)}</td>\n          <td class=\"text-center sub-title\">-</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <!-- Signatures -->\n    <div class=\"signature-section\">\n      <div class=\"signature-box\">\n        <div class=\"signature-title\">Người lập phiếu</div>\n        <div class=\"signature-note\">(Ký và ghi rõ họ tên)</div>\n      </div>\n      <div class=\"signature-box\">\n        <div class=\"signature-title\">Lái xe vận chuyển</div>\n        <div class=\"signature-note\">(Ký và ghi rõ họ tên)</div>\n      </div>\n      <div class=\"signature-box\">\n        <div class=\"signature-title\">Người nhận hàng</div>\n        <div class=\"signature-note\">(Ký và ghi rõ họ tên)</div>\n      </div>\n    </div>\n\n    <!-- Footer -->\n    <div class=\"footer\">\n      <div>Cảm ơn Quý khách đã tin tưởng sử dụng dịch vụ của THP GLOBAL</div>\n      <div>Phiếu xuất kho được tạo tự động vào lúc ${moment().format('DD/MM/YYYY HH:mm:ss')}</div>\n    </div>\n  </body>\n</html>`;\n\n  var doc = document.getElementById('print_frame').contentWindow.document;\n  doc.open();\n  doc.write(print_content);\n  doc.close();\n  setTimeout(function(){ window.frames[\"print_frame\"].window.print(); }, 1000);\n}","const digitsRE = /(\\d{3})(?=\\d)/g\n\nexport function currency (value, currency, decimals) {\n  value = parseFloat(value)\n  if (!isFinite(value) || (!value && value !== 0)) return '0'  \n  currency = currency == 'CNY' ? '¥' : currency == null ? '' : currency\n  decimals = decimals != null ? decimals : 0\n  var stringified = Math.abs(value).toFixed(decimals)\n  var _int = decimals\n    ? stringified.slice(0, -1 - decimals)\n    : stringified\n  var i = _int.length % 3\n  var head = i > 0\n    ? (_int.slice(0, i) + (_int.length > 3 ? ',' : ''))\n    : ''\n  var _float = decimals\n    ? stringified.slice(-1 - decimals)\n    : ''\n  var sign = value < 0 ? '-' : ''\n  return currency !== '%' ? currency + ' ' + sign + head +\n    _int.slice(i).replace(digitsRE, '$1,') +\n    _float : sign + head +\n    _int.slice(i).replace(digitsRE, '$1,') +\n    _float + ' ' + currency\n}\n","export default {\n  API:process.env.VUE_APP_ENDPOINT,\n  SHORT_DATE_FORMAT: \"DD-MM-YYYY\",\n  DATE_FORMAT: \"DD/MM/YYYY HH:mm:ss\",\n  SQL_DATE_FORMAT: \"YYYY-MM-DD HH:mm:ss\",\n  IMAGE_PROXY: \"https://images.weserv.nl/?url=\",\n  SYSTEM_CONFIG: {\n    domain: 'https://kygui.thpglobal.vn',\n    firebase_prefix: 'thpglobal',\n    firebase_storage: 'https://firebasestorage.googleapis.com/v0/b/oee-app-cc5a1.appspot.com/o',\n    quick_store_import: false,\n    notification_time: 30,\n    auto_pack_code: false,\n    accountant_order_fee_column: false\n  },\n  PAGINATION: {\n    page: 1,\n    itemsPerPage: 20,\n    mustSort: true,\n    sortDesc: [1],\n    sortBy: [\"ID\"]\n  },\n  ITEMS_PER_PAGE:{\n    'items-per-page-options': [20, 30, 40, 50]\n  },\n  COLOR_CHART: {\n    blue: '#4C84FF',\n    blue_light: '#A9C4FF',\n    red: '#0051a2',\n    red_light: '#FE9FA5'\n  },\n  COMPARE_PERIOD: [\n    'Previous period',\n    'Previous month',\n    'Previous year'\n  ],\n  \n  VIP_LEVEL: [\n    { value: 1, name: '', color: '' },\n    { value: 2, name: 'v1', color: '#FFCC80' },\n    { value: 3, name: 'v2', color: '#FFB74D' },\n    { value: 4, name: 'v3', color: '#FFA726' },\n    { value: 5, name: 'v4', color: '#FB8C00' },\n    { value: 6, name: 'v5', color: '#F57C00' },\n    { value: 7, name: 'v6', color: '#EF6C00' },\n  ],\n\n  PACKAGE_STATUS_ENUM: {\n    DANG_VAN_CHUYEN: 0,\n    DA_NHAP_KHO_TQ: 1,\n    DA_DONG_BAO: 2,\n    DA_NHAP_KHO_VN: 3,\n    DA_GIAO_HANG: 4\n  },\n  PACKAGE_STATUS: [\n    { value: 0, name: 'Đang vận chuyển', disabled: false, color: 'black', textColor: '#FFF' },\n    { value: 1, name: 'Đã nhập kho TQ', disabled: false, color: 'orange', textColor: '#FFF' },\n    { value: 2, name: 'Đã đóng bao', disabled: false, color: 'blue', textColor: '#FFF' },\n    { value: 3, name: 'Đã nhập kho VN', disabled: false, color: 'green', textColor: '#FFF' },\n    { value: 4, name: 'Đã giao hàng', disabled: false, color: '#0051a2', textColor: '#FFF' },\n  ],\n  COMMENT_TYPE: [\n    { value: 1, name: 'Công khai', color: '#2EBB32' },\n    { value: 2, name: 'Nội bộ', color: '#0051a2' }\n  ],\n  LOCATION_STORE: [\n    { value: 1, name: 'Kho Hà Nội', shortname: 'HN' },\n    { value: 2, name: 'Thái Nguyên', shortname: 'TN' },\n    { value: 3, name: 'Kho Hồ Chí Minh', shortname: 'HCM' },\n  ],\n  CUSTOMER_STATUS: {\n    Actived: 1,\n    Blocked: 2\n  },\n  CUSTOMER_STATUS_LIST: [\n    { value: 1, name: 'Đã kích hoạt', color: '#0059b3' },\n    { value: 2, name: 'Đang bị khóa', color: '#e63900' },\n  ],\n  RECHARGE_STATUS: {\n    Pending: 1,\n    Approved: 2,\n    Cancel: 3,\n    Transferred: 4,\n    Cash: 5,\n  },\n  RECHARGE_STATUS_LIST: [\n    // { value: 1, name: 'Chờ duyệt', color: '#808080', textColor: '#000' },\n    { value: 2, name: 'Thành công', color: '#0059b3', textColor: '#FFF' },\n    { value: 3, name: 'Hủy', color: '#e63900', textColor: '#000' },\n    // { value: 4, name: 'Chuyển khoản', color: '#00b300', textColor: '#FFF' },\n    // { value: 5, name: 'Tiền mặt', color: '#2d8659', textColor: '#FFF' },\n  ],\n  WITHDRAW_STATUS: {\n    Pending: 1,\n    Approved: 2,\n    Cancel: 3,\n  },\n  WITHDRAW_STATUS_LIST: [\n    { value: 1, name: 'Chờ duyệt', color: '#0051a2', textColor: '#000' },\n    { value: 2, name: 'Đã duyệt', color: '#0059b3', textColor: '#FFF' },\n    { value: 3, name: 'Hủy lệnh', color: '#e63900', textColor: '#000' }\n  ],\n  PAYMENT_TYPE: {\n    Deposit: 1,\n    Complete: 2,\n  },\n  PAYMENT_TYPE_LIST: [\n    { value: 1, name: 'Đặt cọc', color: '#2d8659', textColor: '#FFF' },\n    { value: 2, name: 'Thanh toán', color: '#0059b3', textColor: '#FFF' },\n  ],\n  PAYMENT_STATUS_LIST: [\n    { value: 2, name: 'Đặt cọc', color: '#2d8659', textColor: '#FFF' },\n    { value: 9, name: 'Thanh toán', color: '#0059b3', textColor: '#FFF' },\n    { value: 10, name: 'Phí ship', color: '#808080', textColor: '#FFF' },\n    { value: 12, name: 'Nhận lại cọc', color: '#FFB74D', textColor: '#000' },\n  ],\n  COMPLAIN_STATUS: {\n    Cancel: 0,\n    Processing: 2,\n    Pending: 1,    \n    Done: 3,\n  },\n  COMPLAIN_STATUS_LIST: [\n    { value: 0, name: 'Hủy', color: 'orange' },\n    { value: 2, name: 'Đang xử lý', color: 'green' },\n    { value: 1, name: 'Chờ xử lý', color: 'red' },    \n    { value: 3, name: 'Đã xử lý', color: 'blue' }\n  ],\n  RECHARGE_TYPE: {\n    Techcombank: 1,\n    Vietcombank: 2,\n    BIDV: 3,\n    Cash: 4,\n    COD: 5,\n  },\n  RECHARGE_METHODS: [\n    { value: 1, name: 'Techcombank'},\n    { value: 2, name: 'Vietcombank'},\n    { value: 3, name: 'BIDV'},\n    { value: 4, name: 'Cash'},\n    { value: 5, name: 'COD'},\n  ],\n  DATA_TYPE: {\n    String: 0,\n    Number: 1,\n    Enum: 2,\n    Date: 3\n  },\n  LIST_COMPARISON: [\n  { name: 'Có chứa', value: 'contain', display: '({0})', dataType: 0, i18n: 'comparison.contain' },\n  { name: 'Không chứa', value: 'does_not_contain', display: '-({0})', dataType: 0, i18n: 'comparison.does_not_contain' },\n  { name: 'Bằng', value: 's_equal', display: '= {0}', dataType: 0, i18n: 'comparison.s_equal' },\n  { name: 'Khác', value: 's_does_not_equal', display: '!= {0}', dataType: 0, i18n: 'comparison.s_does_not_equal' },\n  { name: 'Bằng', value: 'equal', display: '= {0}', dataType: 1, i18n: 'comparison.equal' },\n  { name: 'Khác', value: 'does_not_equal', display: '!= {0}', dataType: 1, i18n: 'comparison.does_not_equal' },\n  { name: 'Lớn hơn', value: 'greater_than', display: '> {0}', dataType: 1, i18n: 'comparison.greater_than' },\n  { name: 'Lớn hơn hoặc bằng', value: 'greater_than_or_equal', display: '>= {0}', dataType: 1, i18n: 'comparison.greater_than_or_equal' },\n  { name: 'Nhỏ hơn', value: 'less_than', display: '< {0}', dataType: 1, i18n: 'comparison.less_than' },\n  { name: 'Nhỏ hơn hoặc bằng', value: 'less_than_or_equal', display: '<= {0}', dataType: 1, i18n: 'comparison.less_than_or_equal' },\n  { name: 'Bằng', value: 'in', display: '= [{0}]', dataType: 2, i18n: 'comparison.in' },\n  { name: 'Khác', value: 'not_in', display: '!= [{0}]', dataType: 2, i18n: 'comparison.not_in' },\n  { name: 'Bằng', value: 'd_equal', display: '= {0}', dataType: 3, i18n: 'comparison.d_equal' },\n  { name: 'Khác', value: 'd_does_not_equal', display: '!= {0}', dataType: 3, i18n: 'comparison.d_does_not_equal' },\n  { name: 'Lớn hơn', value: 'd_greater_than', display: '> {0}', dataType: 3, i18n: 'comparison.d_greater_than' },\n  { name: 'Lớn hơn hoặc bằng', value: 'd_greater_than_or_equal', display: '>= {0}', dataType: 3, i18n: 'comparison.d_greater_than_or_equal' },\n  { name: 'Nhỏ hơn', value: 'd_less_than', display: '< {0}', dataType: 3, i18n: 'comparison.d_less_than' },\n  { name: 'Nhỏ hơn hoặc bằng', value: 'd_less_than_or_equal', display: '<= {0}', dataType: 3, i18n: 'comparison.d_less_than_or_equal' },\n  ],\n  ROLE_TYPE: {\n    Admin: 1,\n    Sale: 2,\n    Store: 4,\n    Customer: 8,\n    Accountant: 16,\n    CustomerSupport: 32,\n    StoreVN: 64,\n    StoreManager: 128\n  },\n  ROLES: [\n    { value: 1, name: 'Admin', modules: 6127},\n    { value: 2, name: 'Sale', modules: 5247},\n    { value: 4, name: 'Kho TQ', modules: 233},\n    { value: 8, name: 'Khách hàng', modules: 6201},\n    { value: 16, name: 'Kế toán', modules: 6127},\n    { value: 32, name: 'Điều vận', modules: 5247},\n    { value: 64, name: 'Kho VN', modules: 5247},\n    { value: 128, name: 'Chứng từ', modules: 5247},\n  ],\n  TRADE_TYPE: [\n    { value: 1, name: 'Đặt cọc'},\n    { value: 2, name: 'Nhận lại tiền đặt cọc' },\n    { value: 3, name: 'Thanh toán hóa đơn' },\n    { value: 4, name: 'Nạp tiền' },\n    { value: 5, name: 'Rút tiền' },\n    { value: 6, name: 'Hủy lệnh rút tiền' },\n    { value: 7, name: 'Xử lý khiếu nại' },\n    { value: 8, name: 'Hủy lệnh chuyển tiền' },\n  ],\n  FEE_TYPE: {\n    ByWeight: 0,\n    ByVolume: 1\n  },\n  FEE_TYPES: [\n    { value: 0, name: 'Theo cân'},\n    { value: 1, name: 'Theo khối' }\n  ],\n  BIGPACKAGE_STATUS_TYPE: {\n    Chua_thanh_toan: 0,\n    Da_thanh_toan: 1\n  },\n  BIGPACKAGE_STATUS: [\n    { value: 0, name: 'Chưa thanh toán', color: 'red'},\n    { value: 1, name: 'Đã thanh toán', color: 'blue' }\n  ],\n  BIGPACKAGE_STATUS_ENUM: {\n    da_dong_bao: 0, \n    da_gui: 1, \n    da_nhan: 2,\n    da_thanh_toan: 3\n  },\n  BIGPACKAGE_STATUS_LIST: [\n    { value: 0, name: 'Đã đóng bao', color: '#808080', textColor: '#FFF' },\n    { value: 1, name: 'Đã xuất kho', color: '#0059b3', textColor: '#FFF' },\n    { value: 2, name: 'Đã nhận', color: '#2d8659', textColor: '#FFF' },\n    { value: 3, name: 'Đã thanh toán', color: '#FFB74D', textColor: '#000' }\n  ],\n  PRODUCT_TYPE: {\n    Kuaidi: 1,\n    Shipment: 2\n  },\n  PRODUCT_TYPE_LIST: [\n    { value: 1, name: 'Kuaidi', color: '#000000'},\n    { value: 2, name: 'Hàng lô', color: 'blue' }\n  ],\n  RECEIVE_TYPE: {\n    cho_xep_xe: 0,\n    xep_xe: 1,\n    cho_thong_quan_tq: 2,\n    kiem_hoa: 3,\n    cho_thong_quan_vn: 4,\n    nhap_kho_vn: 5\n  },\n  RECEIVE_TYPE_LIST: [\n    { value: 0, name: 'Chờ xếp xe', color: '#b29703ff', i18n: 'receive_type.cho_xep_xe' },\n    { value: 1, name: 'Xếp xe', color: 'black', i18n: 'receive_type.xep_xe' },\n    // { value: 2, name: 'Chờ thông quan TQ', color: '#2d8659', i18n: 'receive_type.cho_thong_quan_tq' },\n    { value: 3, name: 'Kiểm hóa', color: 'red', i18n: 'receive_type.kiem_hoa' },\n    { value: 4, name: 'Chờ thông quan VN', color: '#0059b3', i18n: 'receive_type.cho_thong_quan_vn' },\n    { value: 5, name: 'Nhập kho VN', color: '#048a45ff', i18n: 'receive_type.nhap_kho_vn' }\n  ],\n  PRODUCT_STATUS: {\n    nhap_kho_tq: 1,\n    cho_xep_xe: 2,\n    xep_xe: 3,\n    cho_thong_quan_tq: 4,\n    kiem_hoa: 5,\n    cho_thong_quan_vn: 6,\n    nhap_kho_vn: 7,\n    xuat_thieu: 8,\n    xuat_du: 9\n  },\n  PRODUCT_STATUS_LIST: [\n    { value: 1, name: 'Nhập kho TQ', color: '#808080', i18n: 'product_status.nhap_kho_tq' },\n    { value: 2, name: 'Chờ xếp xe', color: '#0051a2', i18n: 'product_status.cho_xep_xe' },\n    { value: 3, name: 'Xếp xe TQ', color: '#0051a2', i18n: 'product_status.xep_xe' },\n    // { value: 4, name: 'Chờ thông quan TQ', color: '#2d8659', i18n: 'product_status.cho_thong_quan_tq' },\n    { value: 5, name: 'Kiểm hóa', color: '#2d8659', i18n: 'product_status.kiem_hoa' },\n    { value: 6, name: 'Chờ thông quan VN', color: '#2d8659', i18n: 'product_status.cho_thong_quan_vn' },\n    { value: 7, name: 'Nhập kho VN', color: '#FFB74D', i18n: 'product_status.nhap_kho_vn' },\n    { value: 8, name: 'Xuất thiếu', color: '#2d8659', i18n: 'product_status.xuat_thieu' },\n    { value: 9, name: 'Xuất đủ', color: '#0059b3', i18n: 'product_status.xuat_du' },\n  ],\n  BILL_STATUS: {\n    chua_xuat: 1,\n    da_xuat: 2,\n    da_thanh_toan: 3,\n  },\n  BILL_STATUS_LIST: [\n    { value: 1, name: 'Chưa xuất', color: '#0059b3', i18n: 'bill_status.chua_xuat' },\n    { value: 2, name: 'Đã xuất', color: '#FFB74D', i18n: 'bill_status.da_xuat' },\n    { value: 3, name: 'Đã thanh toán', color: '#2d8659', i18n: 'bill_status.da_thanh_toan' },\n  ],\n  PRICE_TYPE_LIST: [\n    { value: 0, name: 'Tự động', i18n: 'price_type.tu_dong' },\n    { value: 1, name: 'Theo cân', i18n: 'price_type.theo_can' },\n    { value: 2, name: 'Theo khối', i18n: 'price_type.theo_khoi' }\n  ],\n  FEE_CNY_LIST: [\n    { value: 1, name: 'Ship nội địa' },\n    { value: 2, name: 'Phí nâng hàng' },\n    { value: 3, name: 'Phí hạ hàng' },\n    { value: 4, name: 'Phí kéo hàng' },\n    { value: 5, name: 'Phí gia cố' },\n    { value: 6, name: 'Phí đóng gỗ' },\n    { value: 7, name: 'Phí kiểm đếm' },\n    { value: 8, name: 'Phí lưu kho' },\n    { value: 9, name: 'Phí cân' },\n    { value: 10, name: 'Phí kiểm tra chất lượng' },\n    { value: 11, name: 'Phí tự công bố' },\n    { value: 12, name: 'Phí xử lý hải quan' },\n    { value: 13, name: 'Phí thương kiểm' },\n    { value: 99, name: 'Phí khác' }\n  ],\n  TRUCK_CALLER: [\n    { value: '', name: '' },\n    { value: 'bich_thuy', name: 'Bích Thủy' },\n    { value: 'trung_dung', name: 'Trung Dũng' },\n    { value: 'dung_than_tsl', name: 'Dũng Thân (TSL)' },\n  ]\n};"],"sourceRoot":""}